]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/filed/win32/winabout.cpp
Use dcr more in SD + int to bool conversions
[bacula/bacula] / bacula / src / filed / win32 / winabout.cpp
1 /*
2    Copyright (C) 2000-2004 Kern Sibbald and John Walker
3
4    This program is free software; you can redistribute it and/or
5    modify it under the terms of the GNU General Public License as
6    published by the Free Software Foundation; either version 2 of
7    the License, or (at your option) any later version.
8
9    This program 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    General Public License for more details.
13
14    You should have received a copy of the GNU General Public
15    License along with this program; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
17    MA 02111-1307, USA.
18
19    This file is patterned after the VNC Win32 code by ATT
20   
21    Kern E. Sibbald, 2000
22 */
23
24 #include "winbacula.h"
25 #include "winabout.h"
26
27 bacAbout::bacAbout()
28 {
29    visible = false;
30 }
31
32 bacAbout::~bacAbout() { };
33
34 void bacAbout::Show(BOOL show)
35 {
36    if (show && !visible) {
37       DialogBoxParam(hAppInstance, MAKEINTRESOURCE(IDD_ABOUT), NULL,
38          (DLGPROC)DialogProc, (LONG)this);
39    }
40 }
41
42
43 BOOL CALLBACK
44 bacAbout::DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
45 {
46    /* Get the dialog class pointer from USERDATA */
47    bacAbout *_this;
48
49    switch (uMsg) {
50    case WM_INITDIALOG:
51       /* save the dialog class pointer */
52       SetWindowLong(hwnd, GWL_USERDATA, lParam);
53       _this = (bacAbout *)lParam;
54
55       /* Show the dialog */
56       SetForegroundWindow(hwnd);
57       _this->visible = true;
58       return TRUE;
59
60    case WM_COMMAND:
61       switch (LOWORD(wParam)) {
62       case IDCANCEL:
63       case IDOK:
64          EndDialog(hwnd, TRUE);
65          _this = (bacAbout *)GetWindowLong(hwnd, GWL_USERDATA);
66          _this->visible = false;
67          return TRUE;
68       }
69       break;
70
71    case WM_DESTROY:
72       EndDialog(hwnd, FALSE);
73       _this = (bacAbout *)GetWindowLong(hwnd, GWL_USERDATA);
74       _this->visible = false;
75       return TRUE;
76    }
77    return 0;
78 }