2002-01-07 11:40:17 -05:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// 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
|
|
|
|
|
2002-07-21 23:27:36 -04:00
|
|
|
enum ETemplateID { kResizeableDialog = 130
|
2002-01-07 11:40:17 -05:00
|
|
|
,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);
|
2002-01-27 22:24:34 -05:00
|
|
|
virtual void SendSizeEvent(void);
|
2002-01-07 11:40:17 -05:00
|
|
|
virtual void SetIcon(const wxIcon& rIcon);
|
2002-04-05 17:09:25 -05:00
|
|
|
virtual void SetIcons(const wxIconBundle& rIcons);
|
2002-03-26 16:54:23 -05:00
|
|
|
|
2002-01-07 11:40:17 -05:00
|
|
|
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
|
|
|
|
// --------------------------
|
|
|
|
//
|
2002-02-03 23:19:14 -05:00
|
|
|
PSWP GetSwpClient(void) { return &m_vSwpClient; }
|
2002-06-17 18:08:57 -04:00
|
|
|
|
|
|
|
void OnActivate(wxActivateEvent& rEvent);
|
|
|
|
|
|
|
|
void SetLastFocus(wxWindow *pWin) { m_pWinLastFocused = pWin; }
|
|
|
|
wxWindow* GetLastFocus(void) const { return m_pWinLastFocused; }
|
2002-01-07 11:40:17 -05:00
|
|
|
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;
|
|
|
|
|
|
|
|
//
|
2002-02-22 18:30:31 -05:00
|
|
|
// Translate wxWindows flags into OS flags
|
2002-01-07 11:40:17 -05:00
|
|
|
//
|
2002-02-22 18:30:31 -05:00
|
|
|
virtual WXDWORD OS2GetStyle( long lFlag
|
|
|
|
,WXDWORD* pdwExstyle
|
|
|
|
) const;
|
2002-05-28 17:50:34 -04:00
|
|
|
|
|
|
|
//
|
|
|
|
// Choose the right parent to use with CreateWindow()
|
|
|
|
//
|
|
|
|
virtual WXHWND OS2GetParent(void) const;
|
|
|
|
|
2002-01-07 11:40:17 -05:00
|
|
|
//
|
|
|
|
// 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;
|
|
|
|
|
2002-06-17 18:08:57 -04:00
|
|
|
wxWindow* m_pWinLastFocused;
|
|
|
|
|
2002-01-07 11:40:17 -05:00
|
|
|
WXHWND m_hFrame;
|
|
|
|
SWP m_vSwp;
|
|
|
|
SWP m_vSwpClient;
|
2002-02-03 23:19:14 -05:00
|
|
|
static bool m_sbInitialized;
|
2002-05-28 17:50:34 -04:00
|
|
|
static wxWindow* m_spHiddenParent;
|
2002-06-17 18:08:57 -04:00
|
|
|
|
|
|
|
DECLARE_EVENT_TABLE()
|
2002-01-07 11:40:17 -05:00
|
|
|
}; // end of CLASS wxTopLevelWindowOS2
|
|
|
|
|
|
|
|
//
|
|
|
|
// List of all frames and modeless dialogs
|
|
|
|
//
|
|
|
|
extern WXDLLEXPORT_DATA(wxWindowList) wxModelessWindows;
|
|
|
|
|
|
|
|
#endif // _WX_MSW_TOPLEVEL_H_
|
|
|
|
|