00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CSWINDOW_H__
00021 #define __CSWINDOW_H__
00022
00023 #include "cscomp.h"
00024 #include "csbutton.h"
00025
00027 #define CSWID_BUTSYSMENU 0xC500
00028
00029 #define CSWID_BUTCLOSE 0xC501
00030
00031 #define CSWID_BUTHIDE 0xC502
00032
00033 #define CSWID_BUTMAXIMIZE 0xC503
00034
00035 #define CSWID_TITLEBAR 0xC504
00036
00037 #define CSWID_MENUBAR 0xC505
00038
00039 #define CSWID_CLIENT 0xC506
00040
00041 #define CSWID_SYSMENU 0xC507
00042
00043 #define CSWID_TOOLBAR 0xC508
00044
00046 #define CSWS_BUTSYSMENU 0x00000001
00047
00048 #define CSWS_BUTCLOSE 0x00000002
00049
00050 #define CSWS_BUTHIDE 0x00000004
00051
00052 #define CSWS_BUTMAXIMIZE 0x00000008
00053
00054 #define CSWS_TITLEBAR 0x00000010
00055
00056 #define CSWS_MENUBAR 0x00000020
00057
00058 #define CSWS_CLIENTBORDER 0x00000040
00059
00060 #define CSWS_TOOLBAR 0x00000080
00061
00062 #define CSWS_TBPOS_MASK 0x00000300
00063
00064 #define CSWS_TBPOS_TOP 0x00000000
00065
00066 #define CSWS_TBPOS_BOTTOM 0x00000100
00067
00068 #define CSWS_TBPOS_LEFT 0x00000200
00069
00070 #define CSWS_TBPOS_RIGHT 0x00000300
00071
00072 #define CSWS_DEFAULTVALUE (CSWS_BUTSYSMENU | CSWS_BUTCLOSE | \
00073 CSWS_BUTHIDE | CSWS_BUTMAXIMIZE | \
00074 CSWS_TITLEBAR | CSWS_MENUBAR)
00075
00077 enum csWindowFrameStyle
00078 {
00079 cswfsNone,
00080 cswfsThin,
00081 cswfs3D
00082 };
00083
00090 enum
00091 {
00095 cscmdWindowSysMenu = 0x00000100,
00103 cscmdWindowSetClient
00104 };
00105
00112 class csWindow : public csComponent
00113 {
00114 protected:
00116 int WindowStyle;
00118 csWindowFrameStyle FrameStyle;
00120 int BorderWidth, BorderHeight;
00122 int TitlebarHeight;
00124 int MenuHeight;
00126 uint8 Alpha;
00127
00128 public:
00130 csWindow (csComponent *iParent, const char *iTitle, int iWindowStyle = CSWS_DEFAULTVALUE,
00131 csWindowFrameStyle iFrameStyle = cswfs3D);
00132
00134 virtual bool SetRect (int xmin, int ymin, int xmax, int ymax);
00135
00137 virtual bool HandleEvent (iEvent &Event);
00138
00140 virtual void FixSize (int &newW, int &newH);
00141
00143 virtual bool Maximize ();
00144
00146 virtual bool Restore ();
00147
00149 virtual void SetText (const char *iText);
00151 virtual void GetText (char *oText, int iTextSize) const;
00153 virtual const char *GetText () const;
00154
00156 virtual void SetState (int mask, bool enable);
00157
00159 void SetBorderSize (int w, int h);
00161 void GetBorderSize (int &bw, int &bh)
00162 { bw = BorderWidth; bh = BorderHeight; }
00163
00165 void SetTitlebarHeight (int iHeight);
00167 int GetTitlebarHeight ()
00168 { return TitlebarHeight; }
00169
00171 void SetMenuBarHeight (int iHeight);
00173 int GetMenuHeight ()
00174 { return MenuHeight; }
00175
00177 void ClientToWindow (int &ClientW, int &ClientH);
00179 void WindowToClient (int &ClientW, int &ClientH);
00180
00182 inline int GetWindowStyle ()
00183 { return WindowStyle; }
00184
00186 void SetFrameStyle (csWindowFrameStyle iFrameStyle);
00188 inline csWindowFrameStyle GetFrameStyle ()
00189 { return FrameStyle; }
00190
00192 virtual char *GetSkinName ()
00193 { return "Window"; }
00194
00196 void SetAlpha (uint8 iAlpha);
00198 uint8 GetAlpha ()
00199 { return GetState (CSS_TRANSPARENT) ? Alpha : 0; }
00200 };
00201
00202 #endif // __CSWINDOW_H__