csws/cswindow.h
Go to the documentation of this file.00001 /* 00002 Crystal Space Windowing System: window class 00003 Copyright (C) 1998,1999 by Andrew Zabolotny <bit@eltech.ru> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public 00016 License along with this library; if not, write to the Free 00017 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 */ 00019 00020 #ifndef __CS_CSWINDOW_H__ 00021 #define __CS_CSWINDOW_H__ 00022 00031 #include "cscomp.h" 00032 #include "csbutton.h" 00033 00035 #define CSWID_BUTSYSMENU 0xC500 00036 00037 #define CSWID_BUTCLOSE 0xC501 00038 00039 #define CSWID_BUTHIDE 0xC502 00040 00041 #define CSWID_BUTMAXIMIZE 0xC503 00042 00043 #define CSWID_TITLEBAR 0xC504 00044 00045 #define CSWID_MENUBAR 0xC505 00046 00047 #define CSWID_CLIENT 0xC506 00048 00049 #define CSWID_SYSMENU 0xC507 00050 00051 #define CSWID_TOOLBAR 0xC508 00052 00056 00057 #define CSWS_BUTSYSMENU 0x00000001 00058 00059 #define CSWS_BUTCLOSE 0x00000002 00060 00061 #define CSWS_BUTHIDE 0x00000004 00062 00063 #define CSWS_BUTMAXIMIZE 0x00000008 00064 00065 #define CSWS_TITLEBAR 0x00000010 00066 00067 #define CSWS_MENUBAR 0x00000020 00068 00069 #define CSWS_CLIENTBORDER 0x00000040 00070 00071 #define CSWS_TOOLBAR 0x00000080 00072 00073 #define CSWS_TBPOS_MASK 0x00000300 00074 00075 #define CSWS_TBPOS_TOP 0x00000000 00076 00077 #define CSWS_TBPOS_BOTTOM 0x00000100 00078 00079 #define CSWS_TBPOS_LEFT 0x00000200 00080 00081 #define CSWS_TBPOS_RIGHT 0x00000300 00082 00083 #define CSWS_DEFAULTVALUE \ 00084 (CSWS_BUTSYSMENU | CSWS_BUTCLOSE | \ 00085 CSWS_BUTHIDE | CSWS_BUTMAXIMIZE | \ 00086 CSWS_TITLEBAR | CSWS_MENUBAR) 00087 00089 00090 enum csWindowFrameStyle 00091 { 00092 cswfsNone, 00093 cswfsThin, 00094 cswfs3D 00095 }; 00096 00103 enum 00104 { 00108 cscmdWindowSysMenu = 0x00000100, 00116 cscmdWindowSetClient 00117 }; 00118 00125 class csWindow : public csComponent 00126 { 00127 protected: 00129 int WindowStyle; 00131 csWindowFrameStyle FrameStyle; 00133 int BorderWidth, BorderHeight; 00135 int TitlebarHeight; 00137 int MenuHeight; 00139 uint8 Alpha; 00140 00141 public: 00143 csWindow (csComponent *iParent, const char *iTitle, int iWindowStyle = CSWS_DEFAULTVALUE, 00144 csWindowFrameStyle iFrameStyle = cswfs3D); 00145 00147 virtual bool SetRect (int xmin, int ymin, int xmax, int ymax); 00148 00150 virtual bool HandleEvent (iEvent &Event); 00151 00153 virtual void FixSize (int &newW, int &newH); 00154 00156 virtual bool Maximize (); 00157 00159 virtual bool Restore (); 00160 00162 virtual void SetText (const char *iText); 00164 virtual void GetText (char *oText, int iTextSize) const; 00166 virtual const char *GetText () const; 00167 00169 virtual void SetState (int mask, bool enable); 00170 00172 void SetBorderSize (int w, int h); 00174 void GetBorderSize (int &bw, int &bh) 00175 { bw = BorderWidth; bh = BorderHeight; } 00176 00178 void SetTitlebarHeight (int iHeight); 00180 int GetTitlebarHeight () 00181 { return TitlebarHeight; } 00182 00184 void SetMenuBarHeight (int iHeight); 00186 int GetMenuHeight () 00187 { return MenuHeight; } 00188 00190 void ClientToWindow (int &ClientW, int &ClientH); 00192 void WindowToClient (int &ClientW, int &ClientH); 00193 00195 inline int GetWindowStyle () 00196 { return WindowStyle; } 00197 00199 void SetFrameStyle (csWindowFrameStyle iFrameStyle); 00201 inline csWindowFrameStyle GetFrameStyle () 00202 { return FrameStyle; } 00203 00205 virtual char *GetSkinName () 00206 { return "Window"; } 00207 00209 void SetAlpha (uint8 iAlpha); 00211 uint8 GetAlpha () 00212 { return GetState (CSS_TRANSPARENT) ? Alpha : 0; } 00213 }; 00214 00217 #endif // __CS_CSWINDOW_H__
Generated for Crystal Space by doxygen 1.2.18