initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
163
libs/wxWidgets-3.3.1/include/wx/qt/mdi.h
Normal file
163
libs/wxWidgets-3.3.1/include/wx/qt/mdi.h
Normal file
@@ -0,0 +1,163 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/qt/mdi.h
|
||||
// Author: Peter Most, Mariano Reingart
|
||||
// Copyright: (c) 2010 wxWidgets dev team
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_QT_MDI_H_
|
||||
#define _WX_QT_MDI_H_
|
||||
|
||||
class QMdiArea;
|
||||
class QMdiSubWindow;
|
||||
|
||||
class WXDLLIMPEXP_CORE wxMDIParentFrame : public wxMDIParentFrameBase
|
||||
{
|
||||
public:
|
||||
wxMDIParentFrame() = default;
|
||||
|
||||
wxMDIParentFrame(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxString& title,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
|
||||
const wxString& name = wxASCII_STR(wxFrameNameStr));
|
||||
|
||||
~wxMDIParentFrame();
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxString& title,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
|
||||
const wxString& name = wxASCII_STR(wxFrameNameStr));
|
||||
|
||||
QMdiArea* GetQtMdiArea() const;
|
||||
|
||||
enum class Layout
|
||||
{
|
||||
MDI,
|
||||
Tabbed
|
||||
};
|
||||
|
||||
void QtSetPreferredDILayout(Layout layout);
|
||||
|
||||
// override/implement base class [pure] virtual methods
|
||||
// ----------------------------------------------------
|
||||
|
||||
// The default is to return what wxMDIParentFrame::IsTDI() is supposed to
|
||||
// return under the target platform. i.e. wxMSW and wxOSX return false,
|
||||
// while wxGTK returns true. Use QtSetPreferredDILayout() to change that.
|
||||
static bool IsTDI() { return ms_layout == Layout::Tabbed; }
|
||||
|
||||
virtual void Cascade() override;
|
||||
virtual void Tile(wxOrientation orient = wxHORIZONTAL) override;
|
||||
virtual void ActivateNext() override;
|
||||
virtual void ActivatePrevious() override;
|
||||
|
||||
// implementation only from now on
|
||||
|
||||
// MDI helpers
|
||||
// -----------
|
||||
|
||||
#if wxUSE_MENUS
|
||||
// called by wxMDIChildFrame after it was successfully created
|
||||
void AddMDIChild(wxMDIChildFrame* child);
|
||||
|
||||
// called by wxMDIChildFrame just before it is destroyed
|
||||
void RemoveMDIChild(wxMDIChildFrame* child);
|
||||
#endif // wxUSE_MENUS
|
||||
|
||||
private:
|
||||
void OnMDICommand(wxCommandEvent& event);
|
||||
|
||||
// add/remove window menu if we have it (i.e. m_windowMenu != nullptr)
|
||||
void AddWindowMenu();
|
||||
void RemoveWindowMenu();
|
||||
|
||||
// update the window menu (if we have it) to enable or disable the commands
|
||||
// which only make sense when we have more than one child
|
||||
void UpdateWindowMenu(bool enable);
|
||||
|
||||
// return the number of child frames we currently have (maybe 0)
|
||||
int GetChildFramesCount() const;
|
||||
|
||||
// TDI=true, MDI=false
|
||||
// Default to false under Windows, true otherwise.
|
||||
static Layout ms_layout;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxMDIParentFrame);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class WXDLLIMPEXP_CORE wxMDIChildFrame : public wxMDIChildFrameBase
|
||||
{
|
||||
public:
|
||||
wxMDIChildFrame() = default;
|
||||
|
||||
wxMDIChildFrame(wxMDIParentFrame *parent,
|
||||
wxWindowID id,
|
||||
const wxString& title,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxDEFAULT_FRAME_STYLE,
|
||||
const wxString& name = wxASCII_STR(wxFrameNameStr));
|
||||
|
||||
~wxMDIChildFrame();
|
||||
|
||||
bool Create(wxMDIParentFrame *parent,
|
||||
wxWindowID id,
|
||||
const wxString& title,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxDEFAULT_FRAME_STYLE,
|
||||
const wxString& name = wxASCII_STR(wxFrameNameStr));
|
||||
|
||||
virtual void Activate() override;
|
||||
|
||||
virtual void SetMenuBar(wxMenuBar* menubar) override;
|
||||
|
||||
// This function is responsible for attaching/detaching this frame's menubar
|
||||
// to m_mdiParent. i.e. the menubar is attached when this frame becomes active
|
||||
// Otherwise, it will be detached and the m_mdiParent's menubar will be restored.
|
||||
void InternalSetMenuBar();
|
||||
|
||||
// wxMDIChildFrame doesn't have toolbar nor statusbar
|
||||
// --------------------------------------------------
|
||||
|
||||
#if wxUSE_STATUSBAR
|
||||
virtual void SetStatusBar(wxStatusBar* WXUNUSED(statusBar)) override {}
|
||||
#endif // wxUSE_STATUSBAR
|
||||
|
||||
#if wxUSE_TOOLBAR
|
||||
virtual void SetToolBar(wxToolBar* WXUNUSED(toolbar)) override {}
|
||||
#endif // wxUSE_TOOLBAR
|
||||
|
||||
virtual void SetWindowStyleFlag( long style ) override;
|
||||
|
||||
private:
|
||||
void AttachWindowMenuTo(wxMenuBar* attachedMenuBar, wxMenuBar* detachedMenuBar);
|
||||
|
||||
wxMenuBar* m_menuBar = nullptr;
|
||||
|
||||
QMdiSubWindow* m_qtSubWindow = nullptr;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxMDIChildFrame);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class WXDLLIMPEXP_CORE wxMDIClientWindow : public wxMDIClientWindowBase
|
||||
{
|
||||
public:
|
||||
wxMDIClientWindow() = default;
|
||||
|
||||
virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL) override;
|
||||
|
||||
wxDECLARE_DYNAMIC_CLASS(wxMDIClientWindow);
|
||||
};
|
||||
|
||||
#endif // _WX_QT_MDI_H_
|
||||
Reference in New Issue
Block a user