]> cygwin.com Git - cygwin-apps/setup.git/blob - window.h
2001-01-04 Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
[cygwin-apps/setup.git] / window.h
1 #ifndef CINSTALL_WINDOW_H
2 #define CINSTALL_WINDOW_H
3
4 /*
5 * Copyright (c) 2001, Gary R. Van Sickle.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * A copy of the GNU General Public License can be found at
13 * http://www.gnu.org/
14 *
15 * Written by Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
16 *
17 */
18
19 // This is the header for the Window class. It serves both as a window class
20 // in its own right and as a base class for other window-like classes (e.g. PropertyPage,
21 // PropSheet).
22
23 #include <windows.h>
24
25 class Window
26 {
27 static ATOM WindowClassAtom;
28 static HINSTANCE AppInstance;
29
30
31 bool RegisterWindowClass ();
32 static LRESULT CALLBACK FirstWindowProcReflector (HWND hwnd, UINT uMsg,
33 WPARAM wParam,
34 LPARAM lParam);
35 static LRESULT CALLBACK WindowProcReflector (HWND hwnd, UINT uMsg,
36 WPARAM wParam, LPARAM lParam);
37
38 HWND WindowHandle;
39
40 Window *Parent;
41
42 // FIXME: replace with <vector> when we get a chance.
43 static const int MAXFONTS = 5;
44 HFONT Fonts[MAXFONTS];
45 int FontCounter;
46
47 protected:
48 void SetHWND (HWND h)
49 {
50 WindowHandle = h;
51 };
52
53 public:
54 Window ();
55 virtual ~ Window ();
56
57 static void SetAppInstance (HINSTANCE h)
58 {
59 AppInstance = h;
60 };
61
62 virtual LRESULT WindowProc (UINT uMsg, WPARAM wParam, LPARAM lParam);
63 virtual bool MessageLoop ();
64
65 virtual bool Create (Window * Parent = NULL,
66 DWORD Style =
67 WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CLIPCHILDREN);
68 void Show (int State);
69
70 HWND GetHWND () const
71 {
72 return WindowHandle;
73 };
74 HINSTANCE GetInstance () const
75 {
76 return AppInstance;
77 };
78
79 Window *GetParent () const
80 {
81 return Parent;
82 };
83 HWND GetDlgItem (int id) const
84 {
85 return::GetDlgItem (GetHWND (), id);
86 };
87 bool SetDlgItemFont(int id, const TCHAR *fontname, int Pointsize,
88 int Weight = FW_NORMAL, bool Italic = false, bool Underline = false, bool Strikeout = false);
89
90 UINT IsButtonChecked (int nIDButton) const;
91
92 void PostMessage (UINT uMsg, WPARAM wParam = 0, LPARAM lParam = 0);
93
94 virtual bool OnMessageApp (UINT uMsg, WPARAM wParam, LPARAM lParam)
95 {
96 return false;
97 };
98
99 virtual bool OnMessageCmd (int id, HWND hwndctl, UINT code)
100 {
101 // Not processed.
102 return false;
103 };
104
105 // Center the window on the parent, or on screen if no parent.
106 void CenterWindow ();
107
108 };
109
110 #endif // CINSTALL_WINDOW_H
This page took 0.038313 seconds and 5 git commands to generate.