update for HEAD-2003091401
[reactos.git] / subsys / system / explorer / taskbar / desktopbar.h
1 /*
2  * Copyright 2003 Martin Fuchs
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19
20  //
21  // Explorer and Desktop clone
22  //
23  // desktopbar.h
24  //
25  // Martin Fuchs, 22.08.2003
26  //
27
28
29 #define CLASSNAME_EXPLORERBAR   _T("Shell_TrayWnd")
30 #define TITLE_EXPLORERBAR               _T("")  // use an empty window title, so windows taskmanager does not show the window in its application list
31
32
33 #define WINMSG_TASKBARCREATED   _T("TaskbarCreated")
34
35
36 #define DESKTOPBARBAR_HEIGHT    29
37
38
39 #define IDC_START                               0x1000
40 #define IDC_LOGOFF                              0x1001
41 #define IDC_SHUTDOWN                    0x1002
42 #define IDC_LAUNCH                              0x1003
43 #define IDC_START_HELP                  0x1004
44 #define IDC_SEARCH                              0x1005
45 #define IDC_SEARCH_COMPUTER             0x1006
46 #define IDC_SETTINGS                    0x1007
47 #define IDC_ADMIN                               0x1008
48 #define IDC_DOCUMENTS                   0x1009
49 #define IDC_RECENT                              0x100A
50 #define IDC_FAVORITES                   0x100B
51 #define IDC_PROGRAMS                    0x100C
52 #define IDC_EXPLORE                             0x100D
53 #define IDC_NETWORK                             0x100E
54 #define IDC_CONNECTIONS                 0x100F
55 #define IDC_DRIVES                              0x1010
56 #define IDC_SETTINGS_WND                0x1011
57 #define IDC_PRINTERS                    0x1012
58
59 #define IDC_FIRST_MENU                  0x3000
60
61
62  /// desktop bar window, also known as "system tray"
63 struct DesktopBar : public OwnerDrawParent<Window>
64 {
65         typedef OwnerDrawParent<Window> super;
66
67         DesktopBar(HWND hwnd);
68         ~DesktopBar();
69
70         static HWND Create();
71
72 protected:
73         CommonControlInit _usingCmnCtrl;
74
75         int             WM_TASKBARCREATED;
76         RECT    _work_area_org;
77
78         LRESULT Init(LPCREATESTRUCT pcs);
79         LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
80         int             Command(int id, int code);
81
82         void    RegisterHotkeys();
83         void    ProcessHotKey(int id_hotkey);
84         void    ShowStartMenu();
85         LRESULT ProcessCopyData(COPYDATASTRUCT* pcd);
86
87         WindowHandle _hwndTaskBar;
88         WindowHandle _hwndNotify;
89         WindowHandle _hwndQuickLaunch;
90 };