3 static const TCHAR szFloatWndClass
[] = TEXT("ImageSoftFloatWndClass");
7 TBBUTTON ToolsButtons
[] = {
8 /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */
9 {TBICON_RECTSEL
, ID_RECTSEL
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* rectangle select */
10 {TBICON_MOVESEL
, ID_MOVESEL
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* move selected pixels */
11 {TBICON_LASOO
, ID_LASOO
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* lasso select */
12 {TBICON_MOVE
, ID_MOVE
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* move selection */
13 {TBICON_ECLIPSESEL
, ID_ECLIPSESEL
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* elipse select */
14 {TBICON_ZOOM
, ID_ZOOM
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* zoom */
15 {TBICON_MAGICWAND
, ID_MAGICWAND
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* magic wand */
16 {TBICON_TEXT
, ID_TEXT
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* text */
17 {TBICON_PAINTBRUSH
, ID_PAINTBRUSH
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* paintbrush */
18 {TBICON_ERASER
, ID_ERASER
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* eraser */
19 {TBICON_PENCIL
, ID_PENCIL
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* pencil */
20 {TBICON_COLORPICKER
, ID_COLORPICKER
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* color picker */
21 {TBICON_CLONESTAMP
, ID_CLONESTAMP
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* clone stamp */
22 {TBICON_RECOLORING
, ID_RECOLORING
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* recolor */
23 {TBICON_PAINTBUCKET
, ID_PAINTBUCKET
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* paint bucket */
24 {TBICON_LINE
, ID_LINE
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* line */
25 {TBICON_RECTANGLE
, ID_RECTANGLE
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* rectangle */
26 {TBICON_ROUNDRECT
, ID_ROUNDRECT
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* round rectangle */
27 {TBICON_ECLIPSE
, ID_ECLIPSE
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* elipse */
28 {TBICON_FREEFORM
, ID_FREEFORM
, TBSTATE_ENABLED
, BTNS_BUTTON
, {0}, 0, 0}, /* free form */
30 {10, 0, TBSTATE_ENABLED
, BTNS_SEP
, {0}, 0, 0},
35 ShowHideWindow(HWND hwnd
)
37 static BOOL Hidden
= FALSE
;
39 ShowWindow(hwnd
, Hidden
? SW_SHOW
: SW_HIDE
);
47 FloatToolbarCreateToolsGui(PFLT_WND FltTools
)
50 HIMAGELIST hImageList
;
53 NumButtons
= sizeof(ToolsButtons
) / sizeof(ToolsButtons
[0]);
55 hTb
= CreateWindowEx(0,
58 WS_CHILD
| WS_VISIBLE
| TBSTYLE_FLAT
| TBSTYLE_WRAPABLE
| CCS_NODIVIDER
,
68 TBSTYLE_EX_HIDECLIPPEDBUTTONS
);
72 sizeof(ToolsButtons
[0]),
78 (LPARAM
)MAKELONG(16, 16));
80 hImageList
= InitImageList(20,
83 ImageList_Destroy((HIMAGELIST
)SendMessage(hTb
,
91 (LPARAM
)ToolsButtons
);
101 FloatToolbarCreateColorsGui(PFLT_WND FltColors
)
109 FloatToolbarCreateHistoryGui(PFLT_WND FltHistory
)
116 FloatToolbarWndProc(HWND hwnd
,
123 static BOOL bOpaque
= FALSE
;
130 GWL_EXSTYLE
) | WS_EX_LAYERED
);
132 /* set the tranclucency to 60% */
133 SetLayeredWindowAttributes(hwnd
,
151 if (GetCursorPos(&pt
))
155 if (GetWindowRect(hwnd
,
158 if (! PtInRect(&rect
,
169 GWL_EXSTYLE
) | WS_EX_LAYERED
);
171 /* set the tranclucency to 60% */
172 SetLayeredWindowAttributes(hwnd
,
185 if (bOpaque
== FALSE
)
190 GWL_EXSTYLE
) & ~WS_EX_LAYERED
);
195 RDW_ERASE
| RDW_INVALIDATE
| RDW_FRAME
| RDW_ALLCHILDREN
);
206 if (LOWORD(wParam
) == IDCANCEL
)
207 ShowHideWindow(hwnd
);
209 switch(LOWORD(wParam
))
212 MessageBox(hwnd
, _T("Kapow!"), _T("Hit test"), MB_OK
| MB_ICONEXCLAMATION
);
234 /*SendMessage(Info->hSelf,
243 /* FIXME: needs fully implementing */
244 return DefWindowProc(hwnd
,
250 ShowHideWindow(hwnd
);
254 return DefWindowProc(hwnd
,
265 InitFloatWndClass(VOID
)
269 wc
.cbSize
= sizeof(WNDCLASSEX
);
270 wc
.style
= CS_HREDRAW
| CS_VREDRAW
;
271 wc
.lpfnWndProc
= FloatToolbarWndProc
;
272 wc
.hInstance
= hInstance
;
274 wc
.hCursor
= LoadCursor(NULL
,
276 wc
.hbrBackground
= (HBRUSH
)(COLOR_BTNFACE
+ 1);
277 wc
.lpszClassName
= szFloatWndClass
;
280 return RegisterClassEx(&wc
) != (ATOM
)0;
284 UninitFloatWndImpl(VOID
)
286 UnregisterClass(szFloatWndClass
,