#ifndef M_TOOLBAR_H #define M_TOOLBAR_H #define TOOLBARBUTTON_ICONIDPREFIX "MTB_" #define TOOLBARBUTTON_ICONIDPRIMARYSUFFIX "_Primary" #define TOOLBARBUTTON_ICONIDSECONDARYSUFFIX "_Secondary" #define TOOLBARBUTTON_ICONNAMEPRESSEDSUFFIX "Pressed" //button flags #define TBBF_DISABLED (1<<0) #define TBBF_VISIBLE (1<<1) #define TBBF_PUSHED (1<<2) #define TBBF_SHOWTOOLTIP (1<<3) #define TBBF_ISSEPARATOR (1<<5) #define TBBF_ISLBUTTON (1<<6) #define TBBF_FLEXSIZESEPARATOR (TBBF_ISSEPARATOR|TBBF_PUSHED) typedef struct _tagTBButton { int cbSize; // size of structure char * pszButtonID; // char id of button used to store button info in DB and know about icon char * pszButtonName; // name of button (not translated) char * pszServiceName; // service name to be executed LPARAM lParam; // param of service to be called char * pszTooltipUp, *pszTooltipDn; DWORD defPos; // default order pos of button (less values are nearer to edge).. please use values greater that 100. the default buttons has pos: 10,20..90 DWORD tbbFlags; // combine of TBBF_ flags above void (*ParamDestructor)(void *); //will be called on parameters deletion HANDLE hPrimaryIconHandle; HANDLE hSecondaryIconHandle; }TBButton; ////////////////////////////////////////////////////////////////////////// // Events // Only after this event module subscribers should register their buttons // wparam=lparam=0 // don't forget to return 0 to continue processing #define ME_TB_MODULELOADED "ToolBar/ModuleLoaded" ////////////////////////////////////////////////////////////////////////// // Services // ////////////////////////////////////////////////////////////////////////// // Adding a button // WPARAM = 0 // LPARAM = (TBButton *) &description // LRESULT = (HANDLE) hButton // in order to correctly process default icons via iconlib it should be // registered icolib icon with id named: // 'TBButton_'+pszButtonID+ 'Up' or +'Down' for Push (2-state) buttons #define MS_TB_ADDBUTTON "ToolBar/AddButton" ////////////////////////////////////////////////////////////////////////// // Remove button // WPARAM = (HANDLE) hButton; // LPARAM = 0; #define MS_TB_REMOVEBUTTON "ToolBar/RemoveButton" ////////////////////////////////////////////////////////////////////////// // SetState // WPARAM = (HANDLE) hButton; // LPARAM = one of below TBST_ states // LRESULT= old state #define TBST_PUSHED 1 #define TBST_RELEASED 0 #define MS_TB_SETBUTTONSTATE "ToolBar/SetButtonState" ////////////////////////////////////////////////////////////////////////// // SetStatebyId // WPARAM = (char *) szButtonID; // LPARAM = one of below TBST_ states // LRESULT= old state #define MS_TB_SETBUTTONSTATEBYID "ToolBar/SetButtonStateId" ////////////////////////////////////////////////////////////////////////// // GetState // WPARAM = (HANLDE) hButton; // LPARAM = 0 // LRESULT= current state #define MS_TB_GETBUTTONSTATE "ToolBar/GetButtonState" ////////////////////////////////////////////////////////////////////////// // GetState // WPARAM = (char *) szButtonID;; // LPARAM = 0 // LRESULT= current state #define MS_TB_GETBUTTONSTATEBYID "ToolBar/GetButtonStateId" #endif