1/////////////////////////////////////////////////////////////////////////////// 2// Name: wx/os2/toplevel.h 3// Purpose: wxTopLevelWindowOS2 is the OS2 implementation of wxTLW 4// Author: Vadim Zeitlin 5// Modified by: 6// Created: 20.09.01 7// RCS-ID: $Id: toplevel.h 36088 2005-11-04 21:13:03Z ABX $ 8// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) 9// Licence: wxWindows licence 10/////////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_MSW_TOPLEVEL_H_ 13#define _WX_MSW_TOPLEVEL_H_ 14 15enum ETemplateID 16{ 17 kResizeableDialog = 130, 18 kCaptionDialog, 19 kNoCaptionDialog 20}; 21 22// ---------------------------------------------------------------------------- 23// wxTopLevelWindowOS2 24// ---------------------------------------------------------------------------- 25 26class WXDLLEXPORT wxTopLevelWindowOS2 : public wxTopLevelWindowBase 27{ 28public: 29 // constructors and such 30 wxTopLevelWindowOS2() { Init(); } 31 32 wxTopLevelWindowOS2( wxWindow* pParent 33 ,wxWindowID vId 34 ,const wxString& rsTitle 35 ,const wxPoint& rPos = wxDefaultPosition 36 ,const wxSize& rSize = wxDefaultSize 37 ,long lStyle = wxDEFAULT_FRAME_STYLE 38 ,const wxString& rsName = wxFrameNameStr 39 ) 40 { 41 Init(); 42 43 (void)Create(pParent, vId, rsTitle, rPos, rSize, lStyle, rsName); 44 } 45 46 bool Create( wxWindow* pParent 47 ,wxWindowID vId 48 ,const wxString& rsTitle 49 ,const wxPoint& rPos = wxDefaultPosition 50 ,const wxSize& rSize = wxDefaultSize 51 ,long lStyle = wxDEFAULT_FRAME_STYLE 52 ,const wxString& rsName = wxFrameNameStr 53 ); 54 55 virtual ~wxTopLevelWindowOS2(); 56 57 // 58 // Implement base class pure virtuals 59 // 60 virtual void SetTitle( const wxString& title); 61 virtual wxString GetTitle() const; 62 63 virtual void Iconize(bool bIconize = true); 64 virtual bool IsFullScreen(void) const { return m_bFsIsShowing; } 65 virtual bool IsIconized(void) const; 66 virtual bool IsMaximized(void) const; 67 virtual void Maximize(bool bMaximize = true); 68 virtual void Restore(void); 69 virtual void SendSizeEvent(void); 70 virtual void SetIcon(const wxIcon& rIcon); 71 virtual void SetIcons(const wxIconBundle& rIcons); 72 73 virtual bool Show(bool bShow = true); 74 virtual bool ShowFullScreen( bool bShow, 75 long lStyle = wxFULLSCREEN_ALL ); 76 77 // 78 // EnableCloseButton(false) may be used to remove the "Close" 79 // button from the title bar 80 // 81 bool EnableCloseButton(bool bEnable = true); 82 HWND GetFrame(void) const { return m_hFrame; } 83 84 // 85 // Implementation from now on 86 // -------------------------- 87 // 88 PSWP GetSwpClient(void) { return &m_vSwpClient; } 89 90 void OnActivate(wxActivateEvent& rEvent); 91 92 void SetLastFocus(wxWindow *pWin) { m_pWinLastFocused = pWin; } 93 wxWindow* GetLastFocus(void) const { return m_pWinLastFocused; } 94 95protected: 96 97 // 98 // Common part of all ctors 99 // 100 void Init(void); 101 102 // 103 // Create a new frame, return false if it couldn't be created 104 // 105 bool CreateFrame( const wxString& rsTitle 106 ,const wxPoint& rPos 107 ,const wxSize& rSize 108 ); 109 110 // 111 // Create a new dialog using the given dialog template from resources, 112 // return false if it couldn't be created 113 // 114 bool CreateDialog( ULONG ulDlgTemplate 115 ,const wxString& rsTitle 116 ,const wxPoint& rPos 117 ,const wxSize& rSize 118 ); 119 120 // 121 // Common part of Iconize(), Maximize() and Restore() 122 // 123 void DoShowWindow(int nShowCmd); 124 125 // 126 // Implement the geometry-related methods for a top level window 127 // 128 virtual void DoSetClientSize( int nWidth 129 ,int nHeight 130 ); 131 virtual void DoGetClientSize( int* pnWidth 132 ,int* pnHeight 133 ) const; 134 135 // 136 // Translate wxWidgets flags into OS flags 137 // 138 virtual WXDWORD OS2GetStyle( long lFlag 139 ,WXDWORD* pdwExstyle 140 ) const; 141 142 // 143 // Choose the right parent to use with CreateWindow() 144 // 145 virtual WXHWND OS2GetParent(void) const; 146 147 // 148 // Is the frame currently iconized? 149 // 150 bool m_bIconized; 151 152 // 153 // Should the frame be maximized when it will be shown? set by Maximize() 154 // when it is called while the frame is hidden 155 // 156 bool m_bMaximizeOnShow; 157 158 // 159 // Data to save/restore when calling ShowFullScreen 160 // 161 long m_lFsStyle; // Passed to ShowFullScreen 162 wxRect m_vFsOldSize; 163 long m_lFsOldWindowStyle; 164 bool m_bFsIsMaximized; 165 bool m_bFsIsShowing; 166 167 wxWindow* m_pWinLastFocused; 168 169 WXHWND m_hFrame; 170 SWP m_vSwp; 171 SWP m_vSwpClient; 172 static bool m_sbInitialized; 173 static wxWindow* m_spHiddenParent; 174 175 DECLARE_EVENT_TABLE() 176}; // end of CLASS wxTopLevelWindowOS2 177 178#endif // _WX_MSW_TOPLEVEL_H_ 179