/////////////////////////////////////////////////////////////////////////////// // Name: wx/msw/toplevel.h // Purpose: wxTopLevelWindowMSW is the MSW implementation of wxTLW // Author: Vadim Zeitlin // Modified by: // Created: 20.09.01 // RCS-ID: $Id$ // Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_MSW_TOPLEVEL_H_ #define _WX_MSW_TOPLEVEL_H_ #ifdef __GNUG__ #pragma interface "toplevel.h" #endif enum ETemplateID { kResizeableDialog = 130 ,kCaptionDialog ,kNoCaptionDialog }; // ---------------------------------------------------------------------------- // wxTopLevelWindowOS2 // ---------------------------------------------------------------------------- class WXDLLEXPORT wxTopLevelWindowOS2 : public wxTopLevelWindowBase { public: // constructors and such wxTopLevelWindowOS2() { Init(); } wxTopLevelWindowOS2( wxWindow* pParent ,wxWindowID vId ,const wxString& rsTitle ,const wxPoint& rPos = wxDefaultPosition ,const wxSize& rSize = wxDefaultSize ,long lStyle = wxDEFAULT_FRAME_STYLE ,const wxString& rsName = wxFrameNameStr ) { Init(); (void)Create(pParent, vId, rsTitle, rPos, rSize, lStyle, rsName); } bool Create( wxWindow* pParent ,wxWindowID vId ,const wxString& rsTitle ,const wxPoint& rPos = wxDefaultPosition ,const wxSize& rSize = wxDefaultSize ,long lStyle = wxDEFAULT_FRAME_STYLE ,const wxString& rsName = wxFrameNameStr ); virtual ~wxTopLevelWindowOS2(); // // Implement base class pure virtuals // virtual void Iconize(bool bIconize = TRUE); inline virtual bool IsFullScreen(void) const { return m_bFsIsShowing; } virtual bool IsIconized(void) const; virtual bool IsMaximized(void) const; virtual void Maximize(bool bMaximize = TRUE); virtual void Restore(void); virtual void SendSizeEvent(void); virtual void SetIcon(const wxIcon& rIcon); virtual void SetIcons(const wxIconBundle& rIcons); virtual bool Show(bool bShow = TRUE); virtual bool ShowFullScreen( bool bShow ,long lStyle = wxFULLSCREEN_ALL ); // // EnableCloseButton(FALSE) may be used to remove the "Close" // button from the title bar // bool EnableCloseButton(bool bEnable = TRUE); HWND GetFrame(void) const { return m_hFrame; } // // Implementation from now on // -------------------------- // PSWP GetSwpClient(void) { return &m_vSwpClient; } void OnActivate(wxActivateEvent& rEvent); void SetLastFocus(wxWindow *pWin) { m_pWinLastFocused = pWin; } wxWindow* GetLastFocus(void) const { return m_pWinLastFocused; } protected: // // Common part of all ctors // void Init(void); // // Create a new frame, return FALSE if it couldn't be created // bool CreateFrame( const wxString& rsTitle ,const wxPoint& rPos ,const wxSize& rSize ); // // Create a new dialog using the given dialog template from resources, // return FALSE if it couldn't be created // bool CreateDialog( ULONG ulDlgTemplate ,const wxString& rsTitle ,const wxPoint& rPos ,const wxSize& rSize ); // // Common part of Iconize(), Maximize() and Restore() // void DoShowWindow(int nShowCmd); // // Implement the geometry-related methods for a top level window // virtual void DoSetClientSize( int nWidth ,int nHeight ); virtual void DoGetClientSize( int* pnWidth ,int* pnHeight ) const; // // Translate wxWidgets flags into OS flags // virtual WXDWORD OS2GetStyle( long lFlag ,WXDWORD* pdwExstyle ) const; // // Choose the right parent to use with CreateWindow() // virtual WXHWND OS2GetParent(void) const; // // Is the frame currently iconized? // bool m_bIconized; // // Should the frame be maximized when it will be shown? set by Maximize() // when it is called while the frame is hidden // bool m_bMaximizeOnShow; // // Data to save/restore when calling ShowFullScreen // long m_lFsStyle; // Passed to ShowFullScreen wxRect m_vFsOldSize; long m_lFsOldWindowStyle; bool m_bFsIsMaximized; bool m_bFsIsShowing; wxWindow* m_pWinLastFocused; WXHWND m_hFrame; SWP m_vSwp; SWP m_vSwpClient; static bool m_sbInitialized; static wxWindow* m_spHiddenParent; DECLARE_EVENT_TABLE() }; // end of CLASS wxTopLevelWindowOS2 // // List of all frames and modeless dialogs // extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows; #endif // _WX_MSW_TOPLEVEL_H_