00001 // wg_view.h 00002 // 00003 // CView interface 00004 // 00005 // 00006 // Copyright (c) 2002-2004 Rob Wiskow 00007 // rob-dev@boxedchaos.com 00008 // 00009 // This library is free software; you can redistribute it and/or 00010 // modify it under the terms of the GNU Lesser General Public 00011 // License as published by the Free Software Foundation; either 00012 // version 2.1 of the License, or (at your option) any later version. 00013 // 00014 // This library is distributed in the hope that it will be useful, 00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 // Lesser General Public License for more details. 00018 // 00019 // You should have received a copy of the GNU Lesser General Public 00020 // License along with this library; if not, write to the Free Software 00021 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 // 00023 00024 00025 #ifndef _WG_VIEW_H_ 00026 #define _WG_VIEW_H_ 00027 00028 #include "wg_window.h" 00029 #include "SDL.h" 00030 #include "wg_menu.h" 00031 00032 00033 namespace wGui 00034 { 00035 00037 00041 00042 class CView : public CWindow 00043 { 00044 public: 00049 CView(const CRect& Rect, std::wstring sTitle, bool bResizable = true, bool bFullScreen = false); 00050 00052 virtual ~CView(void); 00053 00056 bool IsResizable(void) const { return m_bResizable; } 00057 00060 bool IsFullScreen(void) const { return m_bFullScreen; } 00061 00064 void AttachMenu(CMenu* pMenu); 00065 00068 CMenu* GetMenu(void) const { return m_pMenu; } 00069 00074 virtual void SwitchMode( const CRect& WindowRect, bool bResizable, bool bFullScreen ); 00075 00078 void SetFloatingWindow(CWindow* pWindow) { m_pFloatingWindow = pWindow; } 00079 00082 CWindow* GetFloatingWindow(void) const { return m_pFloatingWindow; } 00083 00084 00085 // CWindow Overrides 00088 virtual void SetWindowText(const std::wstring& sText); 00089 00090 // CWindow Overrides 00093 virtual void SetWindowRect(const CRect& WindowRect); 00094 00095 00096 // CMessageClient overrides 00098 virtual bool HandleMessage(CMessage* pMessage); 00099 00100 00101 protected: 00102 bool m_bResizable; 00103 bool m_bFullScreen; 00104 CMenu* m_pMenu; 00105 CWindow* m_pFloatingWindow; 00106 SDL_Surface* m_pScreenSurface; 00107 00108 00109 private: 00111 static CView* m_pInstance; 00112 void operator=(CView) { } 00113 }; 00114 00115 } 00116 00117 00118 #include "unit_tests/wg_view_unittests.h" 00119 00120 #endif // _WG_VIEW_H_ 00121