2 * PROJECT: ReactOS Applications Manager
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/applications/rapps/toolbar.c
5 * PURPOSE: ToolBar functions
6 * PROGRAMMERS: Dmitry Chapyshev (dmitry@reactos.org)
11 #define TOOLBAR_HEIGHT 24
16 static WCHAR szInstallBtn
[MAX_STR_LEN
];
17 static WCHAR szUninstallBtn
[MAX_STR_LEN
];
18 static WCHAR szModifyBtn
[MAX_STR_LEN
];
21 static const TBBUTTON Buttons
[] =
22 { /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */
23 { 0, ID_INSTALL
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, (INT_PTR
)szInstallBtn
},
24 { 1, ID_UNINSTALL
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, (INT_PTR
)szUninstallBtn
},
25 { 2, ID_MODIFY
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, (INT_PTR
)szModifyBtn
},
26 { 5, 0, TBSTATE_ENABLED
, BTNS_SEP
, {0}, 0, 0},
27 { 3, ID_REFRESH
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, 0},
28 { 4, ID_RESETDB
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, 0},
29 { 5, 0, TBSTATE_ENABLED
, BTNS_SEP
, {0}, 0, 0},
30 { 5, ID_SETTINGS
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, 0},
31 { 6, ID_EXIT
, TBSTATE_ENABLED
, BTNS_BUTTON
| BTNS_AUTOSIZE
, {0}, 0, 0}
36 ToolBarOnGetDispInfo(LPTOOLTIPTEXT lpttt
)
38 UINT idButton
= (UINT
)lpttt
->hdr
.idFrom
;
43 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_EXIT
);
47 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_INSTALL
);
51 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_UNINSTALL
);
55 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_MODIFY
);
59 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_SETTINGS
);
63 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_REFRESH
);
67 lpttt
->lpszText
= MAKEINTRESOURCE(IDS_TOOLTIP_UPDATE_DB
);
73 AddImageToImageList(HIMAGELIST hImageList
, UINT ImageIndex
)
77 if (!(hImage
= LoadImage(hInst
,
78 MAKEINTRESOURCE(ImageIndex
),
84 /* TODO: Error message */
87 ImageList_AddIcon(hImageList
, hImage
);
94 HIMAGELIST hImageList
;
96 /* Create the toolbar icon image list */
97 hImageList
= ImageList_Create(TOOLBAR_HEIGHT
,//GetSystemMetrics(SM_CXSMICON),
98 TOOLBAR_HEIGHT
,//GetSystemMetrics(SM_CYSMICON),
99 ILC_MASK
| GetSystemColorDepth(),
104 /* TODO: Error message */
108 AddImageToImageList(hImageList
, IDI_INSTALL
);
109 AddImageToImageList(hImageList
, IDI_UNINSTALL
);
110 AddImageToImageList(hImageList
, IDI_MODIFY
);
111 AddImageToImageList(hImageList
, IDI_REFRESH
);
112 AddImageToImageList(hImageList
, IDI_UPDATE_DB
);
113 AddImageToImageList(hImageList
, IDI_SETTINGS
);
114 AddImageToImageList(hImageList
, IDI_EXIT
);
121 CreateSearchBar(VOID
)
123 WCHAR szBuf
[MAX_STR_LEN
];
125 hSearchBar
= CreateWindowExW(WS_EX_CLIENTEDGE
,
128 WS_CHILD
| WS_VISIBLE
| ES_LEFT
| ES_AUTOHSCROLL
,
138 SendMessageW(hSearchBar
, WM_SETFONT
, (WPARAM
)GetStockObject(DEFAULT_GUI_FONT
), 0);
140 LoadStringW(hInst
, IDS_SEARCH_TEXT
, szBuf
, sizeof(szBuf
) / sizeof(WCHAR
));
141 SetWindowTextW(hSearchBar
, szBuf
);
143 SetParent(hSearchBar
, hToolBar
);
149 CreateToolBar(HWND hwnd
)
151 INT NumButtons
= sizeof(Buttons
) / sizeof(Buttons
[0]);
152 HIMAGELIST hImageList
;
154 LoadStringW(hInst
, IDS_INSTALL
, szInstallBtn
, sizeof(szInstallBtn
) / sizeof(WCHAR
));
155 LoadStringW(hInst
, IDS_UNINSTALL
, szUninstallBtn
, sizeof(szUninstallBtn
) / sizeof(WCHAR
));
156 LoadStringW(hInst
, IDS_MODIFY
, szModifyBtn
, sizeof(szModifyBtn
) / sizeof(WCHAR
));
158 hToolBar
= CreateWindowExW(0,
161 WS_CHILD
| WS_VISIBLE
| TBSTYLE_FLAT
| TBSTYLE_TOOLTIPS
| TBSTYLE_LIST
,
170 /* TODO: Show error message */
174 SendMessageW(hToolBar
, TB_SETEXTENDEDSTYLE
, 0, TBSTYLE_EX_HIDECLIPPEDBUTTONS
);
175 SendMessageW(hToolBar
, TB_BUTTONSTRUCTSIZE
, sizeof(Buttons
[0]), 0);
177 hImageList
= InitImageList();
181 /* TODO: Show error message */
185 ImageList_Destroy((HIMAGELIST
)SendMessageW(hToolBar
,
188 (LPARAM
)hImageList
));
190 SendMessageW(hToolBar
, TB_ADDBUTTONS
, NumButtons
, (LPARAM
)Buttons
);