⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framemanager.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////////// Name:        wx/aui/framemanager.h// Purpose:     wxaui: wx advanced user interface - docking window manager// Author:      Benjamin I. Williams// Modified by:// Created:     2005-05-17// RCS-ID:      $Id: framemanager.h,v 1.44 2006/11/23 18:24:15 BIW Exp $// Copyright:   (C) Copyright 2005, Kirix Corporation, All Rights Reserved.// Licence:     wxWindows Library Licence, Version 3.1///////////////////////////////////////////////////////////////////////////////#ifndef _WX_FRAMEMANAGER_H_#define _WX_FRAMEMANAGER_H_// ----------------------------------------------------------------------------// headers// ----------------------------------------------------------------------------#include "wx/defs.h"#if wxUSE_AUI#include "wx/dynarray.h"#include "wx/gdicmn.h"#include "wx/window.h"#include "wx/timer.h"#include "wx/sizer.h"enum wxAuiManagerDock{    wxAUI_DOCK_NONE = 0,    wxAUI_DOCK_TOP = 1,    wxAUI_DOCK_RIGHT = 2,    wxAUI_DOCK_BOTTOM = 3,    wxAUI_DOCK_LEFT = 4,    wxAUI_DOCK_CENTER = 5,    wxAUI_DOCK_CENTRE = wxAUI_DOCK_CENTER};enum wxAuiManagerOption{    wxAUI_MGR_ALLOW_FLOATING           = 1 << 0,    wxAUI_MGR_ALLOW_ACTIVE_PANE        = 1 << 1,    wxAUI_MGR_TRANSPARENT_DRAG         = 1 << 2,    wxAUI_MGR_TRANSPARENT_HINT         = 1 << 3,    wxAUI_MGR_VENETIAN_BLINDS_HINT     = 1 << 4,    wxAUI_MGR_RECTANGLE_HINT           = 1 << 5,    wxAUI_MGR_HINT_FADE                = 1 << 6,    wxAUI_MGR_NO_VENETIAN_BLINDS_FADE  = 1 << 7,    wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING |                        wxAUI_MGR_TRANSPARENT_HINT |                        wxAUI_MGR_HINT_FADE |                        wxAUI_MGR_NO_VENETIAN_BLINDS_FADE};enum wxAuiPaneDockArtSetting{    wxAUI_DOCKART_SASH_SIZE = 0,    wxAUI_DOCKART_CAPTION_SIZE = 1,    wxAUI_DOCKART_GRIPPER_SIZE = 2,    wxAUI_DOCKART_PANE_BORDER_SIZE = 3,    wxAUI_DOCKART_PANE_BUTTON_SIZE = 4,    wxAUI_DOCKART_BACKGROUND_COLOUR = 5,    wxAUI_DOCKART_SASH_COLOUR = 6,    wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR = 7,    wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR = 8,    wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR = 9,    wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR = 10,    wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR = 11,    wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR = 12,    wxAUI_DOCKART_BORDER_COLOUR = 13,    wxAUI_DOCKART_GRIPPER_COLOUR = 14,    wxAUI_DOCKART_CAPTION_FONT = 15,    wxAUI_DOCKART_GRADIENT_TYPE = 16};enum wxAuiPaneDockArtGradients{    wxAUI_GRADIENT_NONE = 0,    wxAUI_GRADIENT_VERTICAL = 1,    wxAUI_GRADIENT_HORIZONTAL = 2};enum wxAuiPaneButtonState{    wxAUI_BUTTON_STATE_NORMAL   = 0,    wxAUI_BUTTON_STATE_HOVER    = 1 << 1,    wxAUI_BUTTON_STATE_PRESSED  = 1 << 2,    wxAUI_BUTTON_STATE_DISABLED = 1 << 3,    wxAUI_BUTTON_STATE_HIDDEN   = 1 << 4,    wxAUI_BUTTON_STATE_CHECKED  = 1 << 5};enum wxAuiButtonId{    wxAUI_BUTTON_CLOSE = 101,    wxAUI_BUTTON_MAXIMIZE_RESTORE = 102,    wxAUI_BUTTON_MINIMIZE = 103,    wxAUI_BUTTON_PIN = 104,    wxAUI_BUTTON_OPTIONS = 105,    wxAUI_BUTTON_WINDOWLIST = 106,    wxAUI_BUTTON_LEFT = 107,    wxAUI_BUTTON_RIGHT = 108,    wxAUI_BUTTON_UP = 109,    wxAUI_BUTTON_DOWN = 110,    wxAUI_BUTTON_CUSTOM1 = 201,    wxAUI_BUTTON_CUSTOM2 = 202,    wxAUI_BUTTON_CUSTOM3 = 203};enum wxAuiPaneInsertLevel{    wxAUI_INSERT_PANE = 0,    wxAUI_INSERT_ROW = 1,    wxAUI_INSERT_DOCK = 2};// forwards and array declarationsclass wxAuiDockUIPart;class wxAuiPaneButton;class wxAuiPaneInfo;class wxAuiDockInfo;class wxAuiDockArt;class wxAuiManagerEvent;#ifndef SWIGWX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockInfo, wxAuiDockInfoArray, WXDLLIMPEXP_AUI);WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockUIPart, wxAuiDockUIPartArray, WXDLLIMPEXP_AUI);WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneButton, wxAuiPaneButtonArray, WXDLLIMPEXP_AUI);WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneInfo, wxAuiPaneInfoArray, WXDLLIMPEXP_AUI);WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiPaneInfo*, wxAuiPaneInfoPtrArray, class WXDLLIMPEXP_AUI);WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiDockInfo*, wxAuiDockInfoPtrArray, class WXDLLIMPEXP_AUI);#endif // SWIGextern WXDLLIMPEXP_AUI wxAuiDockInfo wxAuiNullDockInfo;extern WXDLLIMPEXP_AUI wxAuiPaneInfo wxAuiNullPaneInfo;class WXDLLIMPEXP_AUI wxAuiPaneInfo{public:    wxAuiPaneInfo()    {        window = NULL;        frame = NULL;        state = 0;        dock_direction = wxAUI_DOCK_LEFT;        dock_layer = 0;        dock_row = 0;        dock_pos = 0;        floating_pos = wxDefaultPosition;        floating_size = wxDefaultSize;        best_size = wxDefaultSize;        min_size = wxDefaultSize;        max_size = wxDefaultSize;        dock_proportion = 0;        DefaultPane();    }    ~wxAuiPaneInfo() {}    #ifndef SWIG    wxAuiPaneInfo(const wxAuiPaneInfo& c)    {        name = c.name;        caption = c.caption;        window = c.window;        frame = c.frame;        state = c.state;        dock_direction = c.dock_direction;        dock_layer = c.dock_layer;        dock_row = c.dock_row;        dock_pos = c.dock_pos;        best_size = c.best_size;        min_size = c.min_size;        max_size = c.max_size;        floating_pos = c.floating_pos;        floating_size = c.floating_size;        dock_proportion = c.dock_proportion;        buttons = c.buttons;        rect = c.rect;    }    wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c)    {        name = c.name;        caption = c.caption;        window = c.window;        frame = c.frame;        state = c.state;        dock_direction = c.dock_direction;        dock_layer = c.dock_layer;        dock_row = c.dock_row;        dock_pos = c.dock_pos;        best_size = c.best_size;        min_size = c.min_size;        max_size = c.max_size;        floating_pos = c.floating_pos;        floating_size = c.floating_size;        dock_proportion = c.dock_proportion;        buttons = c.buttons;        rect = c.rect;        return *this;    }#endif // SWIG    // Write the safe parts of a newly loaded PaneInfo structure "source" into "this"    // used on loading perspectives etc.    void SafeSet(wxAuiPaneInfo source)    {        // note source is not passed by reference so we can overwrite, to keep the        // unsafe bits of "dest"        source.window = window;        source.frame = frame;        source.buttons = buttons;        // now assign        *this = source;    }    bool IsOk() const { return (window != NULL) ? true : false; }    bool IsFixed() const { return !HasFlag(optionResizable); }    bool IsResizable() const { return HasFlag(optionResizable); }    bool IsShown() const { return !HasFlag(optionHidden); }    bool IsFloating() const { return HasFlag(optionFloating); }    bool IsDocked() const { return !HasFlag(optionFloating); }    bool IsToolbar() const { return HasFlag(optionToolbar); }    bool IsTopDockable() const { return HasFlag(optionTopDockable); }    bool IsBottomDockable() const { return HasFlag(optionBottomDockable); }    bool IsLeftDockable() const { return HasFlag(optionLeftDockable); }    bool IsRightDockable() const { return HasFlag(optionRightDockable); }    bool IsFloatable() const { return HasFlag(optionFloatable); }    bool IsMovable() const { return HasFlag(optionMovable); }    bool IsDestroyOnClose() const { return HasFlag(optionDestroyOnClose); }    bool IsMaximized() const { return HasFlag(optionMaximized); }    bool HasCaption() const { return HasFlag(optionCaption); }    bool HasGripper() const { return HasFlag(optionGripper); }    bool HasBorder() const { return HasFlag(optionPaneBorder); }    bool HasCloseButton() const { return HasFlag(buttonClose); }    bool HasMaximizeButton() const { return HasFlag(buttonMaximize); }    bool HasMinimizeButton() const { return HasFlag(buttonMinimize); }    bool HasPinButton() const { return HasFlag(buttonPin); }    bool HasGripperTop() const { return HasFlag(optionGripperTop); }#ifdef SWIG    %typemap(out) wxAuiPaneInfo& { $result = $self; Py_INCREF($result); }#endif    wxAuiPaneInfo& Window(wxWindow* w) { window = w; return *this; }    wxAuiPaneInfo& Name(const wxString& n) { name = n; return *this; }    wxAuiPaneInfo& Caption(const wxString& c) { caption = c; return *this; }    wxAuiPaneInfo& Left() { dock_direction = wxAUI_DOCK_LEFT; return *this; }    wxAuiPaneInfo& Right() { dock_direction = wxAUI_DOCK_RIGHT; return *this; }    wxAuiPaneInfo& Top() { dock_direction = wxAUI_DOCK_TOP; return *this; }    wxAuiPaneInfo& Bottom() { dock_direction = wxAUI_DOCK_BOTTOM; return *this; }    wxAuiPaneInfo& Center() { dock_direction = wxAUI_DOCK_CENTER; return *this; }    wxAuiPaneInfo& Centre() { dock_direction = wxAUI_DOCK_CENTRE; return *this; }    wxAuiPaneInfo& Direction(int direction) { dock_direction = direction; return *this; }    wxAuiPaneInfo& Layer(int layer) { dock_layer = layer; return *this; }    wxAuiPaneInfo& Row(int row) { dock_row = row; return *this; }    wxAuiPaneInfo& Position(int pos) { dock_pos = pos; return *this; }    wxAuiPaneInfo& BestSize(const wxSize& size) { best_size = size; return *this; }    wxAuiPaneInfo& MinSize(const wxSize& size) { min_size = size; return *this; }    wxAuiPaneInfo& MaxSize(const wxSize& size) { max_size = size; return *this; }    wxAuiPaneInfo& BestSize(int x, int y) { best_size.Set(x,y); return *this; }    wxAuiPaneInfo& MinSize(int x, int y) { min_size.Set(x,y); return *this; }    wxAuiPaneInfo& MaxSize(int x, int y) { max_size.Set(x,y); return *this; }    wxAuiPaneInfo& FloatingPosition(const wxPoint& pos) { floating_pos = pos; return *this; }    wxAuiPaneInfo& FloatingPosition(int x, int y) { floating_pos.x = x; floating_pos.y = y; return *this; }    wxAuiPaneInfo& FloatingSize(const wxSize& size) { floating_size = size; return *this; }    wxAuiPaneInfo& FloatingSize(int x, int y) { floating_size.Set(x,y); return *this; }    wxAuiPaneInfo& Fixed() { return SetFlag(optionResizable, false); }    wxAuiPaneInfo& Resizable(bool resizable = true) { return SetFlag(optionResizable, resizable); }    wxAuiPaneInfo& Dock() { return SetFlag(optionFloating, false); }    wxAuiPaneInfo& Float() { return SetFlag(optionFloating, true); }    wxAuiPaneInfo& Hide() { return SetFlag(optionHidden, true); }    wxAuiPaneInfo& Show(bool show = true) { return SetFlag(optionHidden, !show); }    wxAuiPaneInfo& CaptionVisible(bool visible = true) { return SetFlag(optionCaption, visible); }    wxAuiPaneInfo& Maximize() { return SetFlag(optionMaximized, true); }    wxAuiPaneInfo& Restore() { return SetFlag(optionMaximized, false); }    wxAuiPaneInfo& PaneBorder(bool visible = true) { return SetFlag(optionPaneBorder, visible); }    wxAuiPaneInfo& Gripper(bool visible = true) { return SetFlag(optionGripper, visible); }    wxAuiPaneInfo& GripperTop(bool attop = true) { return SetFlag(optionGripperTop, attop); }    wxAuiPaneInfo& CloseButton(bool visible = true) { return SetFlag(buttonClose, visible); }    wxAuiPaneInfo& MaximizeButton(bool visible = true) { return SetFlag(buttonMaximize, visible); }    wxAuiPaneInfo& MinimizeButton(bool visible = true) { return SetFlag(buttonMinimize, visible); }    wxAuiPaneInfo& PinButton(bool visible = true) { return SetFlag(buttonPin, visible); }    wxAuiPaneInfo& DestroyOnClose(bool b = true) { return SetFlag(optionDestroyOnClose, b); }    wxAuiPaneInfo& TopDockable(bool b = true) { return SetFlag(optionTopDockable, b); }    wxAuiPaneInfo& BottomDockable(bool b = true) { return SetFlag(optionBottomDockable, b); }    wxAuiPaneInfo& LeftDockable(bool b = true) { return SetFlag(optionLeftDockable, b); }    wxAuiPaneInfo& RightDockable(bool b = true) { return SetFlag(optionRightDockable, b); }    wxAuiPaneInfo& Floatable(bool b = true) { return SetFlag(optionFloatable, b); }    wxAuiPaneInfo& Movable(bool b = true) { return SetFlag(optionMovable, b); }    wxAuiPaneInfo& Dockable(bool b = true)    {        return TopDockable(b).BottomDockable(b).LeftDockable(b).RightDockable(b);    }    wxAuiPaneInfo& DefaultPane()    {        state |= optionTopDockable | optionBottomDockable |                 optionLeftDockable | optionRightDockable |                 optionFloatable | optionMovable | optionResizable |                 optionCaption | optionPaneBorder | buttonClose;        return *this;    }    wxAuiPaneInfo& CentrePane() { return CenterPane(); }    wxAuiPaneInfo& CenterPane()    {        state = 0;        return Center().PaneBorder().Resizable();    }    wxAuiPaneInfo& ToolbarPane()    {        DefaultPane();        state |= (optionToolbar | optionGripper);        state &= ~(optionResizable | optionCaption);        if (dock_layer == 0)            dock_layer = 10;        return *this;    }    wxAuiPaneInfo& SetFlag(unsigned int flag, bool option_state)    {        if (option_state)            state |= flag;             else            state &= ~flag;        return *this;    }    bool HasFlag(unsigned int flag) const    {        return (state & flag) ? true:false;    }#ifdef SWIG    %typemap(out) wxAuiPaneInfo& ;#endif    public:    // NOTE: You can add and subtract flags from this list,    // but do not change the values of the flags, because    // they are stored in a binary integer format in the     // perspective string.  If you really need to change the    // values around, you'll have to ensure backwards-compatibility    // in the perspective loading code.    enum wxAuiPaneState    {        optionFloating        = 1 << 0,        optionHidden          = 1 << 1,        optionLeftDockable    = 1 << 2,        optionRightDockable   = 1 << 3,        optionTopDockable     = 1 << 4,        optionBottomDockable  = 1 << 5,        optionFloatable       = 1 << 6,        optionMovable         = 1 << 7,        optionResizable       = 1 << 8,        optionPaneBorder      = 1 << 9,        optionCaption         = 1 << 10,        optionGripper         = 1 << 11,        optionDestroyOnClose  = 1 << 12,        optionToolbar         = 1 << 13,        optionActive          = 1 << 14,        optionGripperTop      = 1 << 15,        optionMaximized       = 1 << 16,        buttonClose           = 1 << 21,        buttonMaximize        = 1 << 22,        buttonMinimize        = 1 << 23,        buttonPin             = 1 << 24,                buttonCustom1         = 1 << 26,        buttonCustom2         = 1 << 27,        buttonCustom3         = 1 << 28,                savedHiddenState      = 1 << 30, // used internally        actionPane            = 1 << 31  // used internally    };public:    wxString name;        // name of the pane    wxString caption;     // caption displayed on the window    wxWindow* window;     // window that is in this pane    wxFrame* frame;       // floating frame window that holds the pane    unsigned int state;   // a combination of wxPaneState values    int dock_direction;   // dock direction (top, bottom, left, right, center)    int dock_layer;       // layer number (0 = innermost layer)    int dock_row;         // row number on the docking bar (0 = first row)    int dock_pos;         // position inside the row (0 = first position)    wxSize best_size;     // size that the layout engine will prefer    wxSize min_size;      // minimum size the pane window can tolerate    wxSize max_size;      // maximum size the pane window can tolerate    wxPoint floating_pos; // position while floating    wxSize floating_size; // size while floating    int dock_proportion;  // proportion while docked    wxAuiPaneButtonArray buttons; // buttons on the pane    wxRect rect;              // current rectangle (populated by wxAUI)};class WXDLLIMPEXP_AUI wxAuiFloatingFrame;class WXDLLIMPEXP_AUI wxAuiManager : public wxEvtHandler{friend class wxAuiFloatingFrame;public:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -