git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			183 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// 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 wxWindows 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_
 | 
						|
 |