ToolBar.def: Translation to Stony Brook Modula-2

Last updated: 1. 1.1998, 15: 2

DEFINITION MODULE ToolBar;
(*---------------------------------------
   TOOLBAR.C    -- Gadgets for a frame window.
                   (c) Paul Yao, 1996
   ToolBar.def  -- Translation to Stony Brook-Modula-2
                   (c) Peter Stadler, 30.05.1997
  ---------------------------------------*)
IMPORT WIN32;
IMPORT WINUSER;
IMPORT COMMCTRL;
IMPORT SYSTEM;
IMPORT h2d_gadgets;

VAR
 hwndCombo    :   WIN32.HWND;
 hwndToolTip  :   WIN32.HWND;
 hwndTB       :   WIN32.HWND;

 cyToolBar    :   INTEGER;

 bComboBox    :   BOOLEAN = FALSE;
 bStrings     :   BOOLEAN = FALSE;
 bLargeIcons  :   BOOLEAN = FALSE;

 dwToolBarStyles : WIN32.DWORD  = WINUSER.WS_CHILD BOR  WINUSER.WS_VISIBLE BOR  WINUSER.WS_CLIPSIBLINGS BOR
                        COMMCTRL.CCS_TOP BOR COMMCTRL.CCS_NODIVIDER BOR COMMCTRL.TBSTYLE_TOOLTIPS;
 hInst        :   WIN32.HINSTANCE;
TYPE 
 TEXT         =   ARRAY[0..100] OF CHAR;


VAR  
  szTbStrings :     TEXT  =
                                      {"New","",
                                       "Open","",
                                       "Save","",
                                       "Print","",
                                       "Preview","",
                                       "Cut","",
                                       "Copy","",
                                       "Paste","",
                                       "Undo","",
                                       "Properties","",
                                       "Help","",
                                       "Delete"
                                      };

TYPE
  TBButtonArray =   ARRAY[0..33] OF COMMCTRL.TBBUTTON;
TYPE
  BRES = ARRAY[0..1] OF SYSTEM.BYTE;
CONST
tbb = TBButtonArray
{
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {COMMCTRL.STD_FILENEW, h2d_gadgets.IDM_FILE_NEW, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 0},
    {COMMCTRL.STD_FILEOPEN, h2d_gadgets.IDM_FILE_OPEN, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 1},
    {COMMCTRL.STD_FILESAVE, h2d_gadgets.IDM_FILE_SAVE, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 2},
    {COMMCTRL.STD_PRINT, h2d_gadgets.IDM_FILE_PRINT, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 3},
    {COMMCTRL.STD_PRINTPRE, h2d_gadgets.IDM_FILE_PREVIEW, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_CHECK,
        {0, 0}, 0, 4},
    {0, 0, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_SEP, {0, 0}, 0, 0},
    {COMMCTRL.STD_CUT, h2d_gadgets.IDM_EDIT_CUT, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_CHECKGROUP,
        {0, 0}, 0, 5},
    {COMMCTRL.STD_COPY, h2d_gadgets.IDM_EDIT_COPY, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_CHECKGROUP,
        {0, 0}, 0, 6},
    {COMMCTRL.STD_PASTE, h2d_gadgets.IDM_EDIT_PASTE, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_CHECKGROUP,
        {0, 0}, 0, 7},
    {COMMCTRL.STD_UNDO, h2d_gadgets.IDM_EDIT_UNDO, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 8},
    {COMMCTRL.STD_PROPERTIES, h2d_gadgets.IDM_EDIT_PROP, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_CHECK,
        {0, 0}, 0, 9},
    {COMMCTRL.STD_HELP, h2d_gadgets.IDM_TB_HELP, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 10},
    {COMMCTRL.STD_DELETE, h2d_gadgets.IDM_TB_DELETE, COMMCTRL.TBSTATE_ENABLED, COMMCTRL.TBSTYLE_BUTTON,
        {0, 0}, 0, 11}
     };

TYPE
  nCustArray =   ARRAY[0..12] OF INTEGER;
CONST
nCust = nCustArray
{
21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, -1
};


CONST
tbStdLarge = COMMCTRL.TBADDBITMAP
     {
     COMMCTRL.HINST_COMMCTRL, COMMCTRL.IDB_STD_LARGE_COLOR
     };

CONST
tbStdSmall = COMMCTRL.TBADDBITMAP
     {
     COMMCTRL.HINST_COMMCTRL, COMMCTRL.IDB_STD_SMALL_COLOR
     };

(*++++*****************************************************************)
PROCEDURE InitToolBar (hwndParent : WIN32.HWND) : WIN32.HWND;
(**********************************************************************)
(*++++*****************************************************************)
PROCEDURE RebuildToolBar (hwndParent : WIN32.HWND; wFlag : WIN32.WORD) : WIN32.HWND;
(**********************************************************************)
(*++++*****************************************************************)
PROCEDURE ToolBarMessage ( hwndTB : WIN32.HWND; wMsg : WIN32.WORD);
(**********************************************************************)
(*++++*****************************************************************)
PROCEDURE ToolBarNotify (hwnd        : WIN32.HWND;
          wParam      : WIN32.WPARAM;
          lParam      : WIN32.LPARAM) : WIN32.LRESULT;
(**********************************************************************)
END ToolBar.