/*++

Copyright (c) 1998 Microsoft Corporation

Module Name:

  toolbar.cpp

Abstract:

  This module implements the toolbar functions for the fax queue viewer

Environment:

  WIN32 User Mode

Author:

  Andrew Ritz (andrewr) 14-jan-1998
  Steven Kehrli (steveke) 30-oct-1998 - major rewrite

--*/

#ifdef TOOLBAR_ENABLED

#include "faxqueue.h"

#define NUMIMAGES     5

#define IMAGEWIDTH    22
#define IMAGEHEIGHT   24

#define BUTTONWIDTH   22
#define BUTTONHEIGHT  24

TBBUTTON ToolBarButton[] =
{
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
//  {0, IDM_FAX_PAUSE_FAXING,      TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
//  {0, IDM_FAX_CANCEL_ALL_FAXES,  TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
    {1, IDM_DOCUMENT_PAUSE,        TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
    {2, IDM_DOCUMENT_RESUME,       TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, IDM_DOCUMENT_RESTART,      TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
    {0, IDM_DOCUMENT_CANCEL,       TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
//  {0, IDM_DOCUMENT_PROPERTIES,   TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
    {4, IDM_VIEW_REFRESH,          TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0},
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0},
    {3, IDM_HELP_TOPICS,           TBSTATE_ENABLED,  TBSTYLE_BUTTON, {0,0}, 0, 0}
//  {0, 0,                         TBSTATE_ENABLED,  TBSTYLE_SEP,    {0,0}, 0, 0}
};

TOOLBAR_MENU_STATE ToolbarMenuState[] =
{
    {IDM_FAX_PAUSE_FAXING,     FALSE, FALSE},
    {IDM_FAX_CANCEL_ALL_FAXES, FALSE, FALSE},
    {IDM_DOCUMENT_PAUSE,       FALSE, TRUE},
    {IDM_DOCUMENT_RESUME,      FALSE, TRUE},
    {IDM_DOCUMENT_RESTART,     FALSE, FALSE},
    {IDM_DOCUMENT_CANCEL,      FALSE, TRUE},
    {IDM_DOCUMENT_PROPERTIES,  FALSE, FALSE},
    {IDM_VIEW_REFRESH,         FALSE, TRUE},
    {IDM_HELP_TOPICS,          FALSE, TRUE},
};

VOID
EnableToolbarMenuState(
    HWND   hWndToolbar,
    DWORD  CommandId,
    BOOL   Enabled
)
{
    DWORD  dwIndex;

    dwIndex = CommandId - IDM_FAX_PAUSE_FAXING;

	// Set the toolbar menu state
    ToolbarMenuState[dwIndex].Enabled = Enabled;

    if ((hWndToolbar) && (ToolbarMenuState[dwIndex].Toolbar)) {
		if (CommandId == IDM_FAX_PAUSE_FAXING) {
			// Toolbar menu item is for pause faxing, so change the toolbar menu item bitmap
			SendMessage(hWndToolbar, TB_CHANGEBITMAP, CommandId, Enabled ? 0 : 1);
		}
		else {
			// Enable the toolbar menu item
	        SendMessage(hWndToolbar, TB_ENABLEBUTTON, CommandId, Enabled);
		}
    }
}

HWND
CreateToolbar(
    HWND  hWnd
)
{
    // hWndToolbar is the handle to the toolbar
    HWND  hWndToolbar;

    // Create the toolbar
    hWndToolbar = CreateToolbarEx(
        hWnd,
        WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT,
        IDM_TOOLBAR,
        NUMIMAGES,
        g_hInstance,
        IDB_TOOLBAR,
        ToolBarButton,
        sizeof(ToolBarButton) / sizeof(TBBUTTON),
        BUTTONWIDTH,
        BUTTONHEIGHT,
        IMAGEWIDTH,
        IMAGEHEIGHT,
        sizeof(TBBUTTON)
        );

    if (hWndToolbar) {
        SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
    }

    return hWndToolbar;
}

HWND
CreateToolTips(
    HWND  hWnd
)
{
    // hWndToolTips is the handle to the tooltips window
    HWND  hWndToolTips;

    // Create the tooltips window
    hWndToolTips = CreateWindowEx(
        WS_EX_TOOLWINDOW,
        TOOLTIPS_CLASS,
        NULL,
        WS_CHILD,
        0,
        0,
        0,
        0,
        hWnd,
        (HMENU) IDM_TOOLTIP,
        g_hInstance,
        NULL
        );

    return hWndToolTips;
}

#endif // TOOLBAR_ENABLED