1// Windows/Control/ToolBar.h
2
3#ifndef __WINDOWS_CONTROL_TOOLBAR_H
4#define __WINDOWS_CONTROL_TOOLBAR_H
5
6#include "../Window.h"
7
8namespace NWindows {
9namespace NControl {
10
11class CToolBar: public NWindows::CWindow
12{
13public:
14  void AutoSize() { SendMessage(TB_AUTOSIZE, 0, 0); }
15  DWORD GetButtonSize() { return (DWORD)SendMessage(TB_GETBUTTONSIZE, 0, 0); }
16
17  bool GetMaxSize(LPSIZE size)
18  #ifdef UNDER_CE
19  {
20    // maybe it must be fixed for more than 1 buttons
21    DWORD val = GetButtonSize();
22    size->cx = LOWORD(val);
23    size->cy = HIWORD(val);
24    return true;
25  }
26  #else
27  {
28    return LRESULTToBool(SendMessage(TB_GETMAXSIZE, 0, (LPARAM)size));
29  }
30  #endif
31
32  bool EnableButton(UINT buttonID, bool enable) { return LRESULTToBool(SendMessage(TB_ENABLEBUTTON, buttonID, MAKELONG(BoolToBOOL(enable), 0))); }
33  void ButtonStructSize() { SendMessage(TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON)); }
34  HIMAGELIST SetImageList(UINT listIndex, HIMAGELIST imageList) { return HIMAGELIST(SendMessage(TB_SETIMAGELIST, listIndex, (LPARAM)imageList)); }
35  bool AddButton(UINT numButtons, LPTBBUTTON buttons) { return LRESULTToBool(SendMessage(TB_ADDBUTTONS, numButtons, (LPARAM)buttons)); }
36  #ifndef _UNICODE
37  bool AddButtonW(UINT numButtons, LPTBBUTTON buttons) { return LRESULTToBool(SendMessage(TB_ADDBUTTONSW, numButtons, (LPARAM)buttons)); }
38  #endif
39};
40
41}}
42
43#endif
44