]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/filed/win32/wintray.h
Make win32 build - Add missing change to Makefile.in
[bacula/bacula] / bacula / src / filed / win32 / wintray.h
1 //  Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.
2 //
3 //  This file was part of the VNC system.
4 //
5 //  The VNC system is free software; you can redistribute it and/or modify
6 //  it under the terms of the GNU General Public License as published by
7 //  the Free Software Foundation; either version 2 of the License, or
8 //  (at your option) any later version.
9 //
10 //  This program is distributed in the hope that it will be useful,
11 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 //  GNU General Public License for more details.
14 //
15 //  You should have received a copy of the GNU General Public License
16 //  along with this program; if not, write to the Free Software
17 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
18 //  USA.
19 //
20 // If the source code for the VNC system is not available from the place
21 // whence you received this file, check http://www.uk.research.att.com/vnc or contact
22 // the authors on vnc@uk.research.att.com for information on obtaining it.
23 //
24 // This file has been adapted to the Win32 version of Bacula
25 // by Kern E. Sibbald.  Many thanks to ATT and James Weatherall,
26 // the original author, for providing an excellent template.
27 //
28 // Copyright (2000) Kern E. Sibbald
29 //
30
31
32
33 // winMenu
34
35 // This class handles creation of a system-tray icon & menu
36
37 class bacMenu;
38
39 #if (!defined(_win_bacMENU))
40 #define _win_bacMENU
41
42 #include <lmcons.h>
43 #include "winabout.h"
44 #include "winstat.h"
45 #include "winevents.h"
46
47 // Constants
48 extern const UINT MENU_ABOUTBOX_SHOW;
49 extern const UINT MENU_STATUS_SHOW;
50 extern const UINT MENU_EVENTS_SHOW;
51 extern const UINT MENU_SERVICEHELPER_MSG;
52 extern const UINT MENU_ADD_CLIENT_MSG;
53 extern const char *MENU_CLASS_NAME;
54
55 // The tray menu class itself
56 class bacMenu
57 {
58 public:
59    bacMenu();
60    ~bacMenu();
61 protected:
62    // Tray icon handling
63    void AddTrayIcon();
64    void DelTrayIcon();
65    void UpdateTrayIcon(int battstat);
66    void SendTrayMsg(DWORD msg, int battstat);
67
68    // Message handler for the tray window
69    static LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
70
71    // Fields
72 protected:
73
74    // About dialog for this server
75    bacAbout  m_about;
76
77    // Status dialog for this server
78    bacStatus m_status;
79
80    bacEvents m_events;
81
82    HWND  m_hwnd;
83    HMENU m_hmenu;
84    NOTIFYICONDATA m_nid;
85
86    // The icon handles
87    HICON m_idle_icon;
88    HICON m_running_icon;
89    HICON m_error_icon;
90    HICON m_warn_icon;
91 };
92
93
94 #endif