diff --git a/include/wx/generic/propdlg.h b/include/wx/generic/propdlg.h index 5072dfdf0a..eacc73e1b6 100644 --- a/include/wx/generic/propdlg.h +++ b/include/wx/generic/propdlg.h @@ -106,7 +106,7 @@ public: virtual wxWindow* GetContentWindow() const wxOVERRIDE; // Set and get the inner sizer - void SetInnerSize(wxSizer* sizer) { m_innerSizer = sizer; } + void SetInnerSizer(wxSizer* sizer) { m_innerSizer = sizer; } wxSizer* GetInnerSizer() const { return m_innerSizer ; } // Set and get the book style diff --git a/include/wx/listbase.h b/include/wx/listbase.h index 6a3bcf6016..4309817822 100644 --- a/include/wx/listbase.h +++ b/include/wx/listbase.h @@ -472,9 +472,17 @@ public: long GetMask() const { return m_item.m_mask; } const wxListItem& GetItem() const { return m_item; } + void SetKeyCode(int code) { m_code = code; } + void SetIndex(long index) { m_itemIndex = index; } + void SetColumn(int col) { m_col = col; } + void SetPoint(const wxPoint& point) { m_pointDrag = point; } + void SetItem(const wxListItem& item) { m_item = item; } + // for wxEVT_LIST_CACHE_HINT only long GetCacheFrom() const { return m_oldItemIndex; } long GetCacheTo() const { return m_itemIndex; } + void SetCacheFrom(long cacheFrom) { m_oldItemIndex = cacheFrom; } + void SetCacheTo(long cacheTo) { m_itemIndex = cacheTo; } // was label editing canceled? (for wxEVT_LIST_END_LABEL_EDIT only) bool IsEditCancelled() const { return m_editCancelled; } diff --git a/include/wx/propgrid/property.h b/include/wx/propgrid/property.h index 4d3b6f002f..46591191d6 100644 --- a/include/wx/propgrid/property.h +++ b/include/wx/propgrid/property.h @@ -677,6 +677,7 @@ public: private: wxVector m_items; +protected: virtual ~wxPGChoicesData(); }; diff --git a/include/wx/ribbon/gallery.h b/include/wx/ribbon/gallery.h index 4c1b2fd726..cf7b9875de 100644 --- a/include/wx/ribbon/gallery.h +++ b/include/wx/ribbon/gallery.h @@ -179,10 +179,13 @@ typedef void (wxEvtHandler::*wxRibbonGalleryEventFunction)(wxRibbonGalleryEvent& // wxpython/swig event work %constant wxEventType wxEVT_RIBBONGALLERY_HOVER_CHANGED; %constant wxEventType wxEVT_RIBBONGALLERY_SELECTED; +%constant wxEventType wxEVT_RIBBONGALLERY_CLICKED; + %pythoncode { EVT_RIBBONGALLERY_HOVER_CHANGED = wx.PyEventBinder( wxEVT_RIBBONGALLERY_HOVER_CHANGED, 1 ) EVT_RIBBONGALLERY_SELECTED = wx.PyEventBinder( wxEVT_RIBBONGALLERY_SELECTED, 1 ) + EVT_RIBBONGALLERY_CLICKED = wx.PyEventBinder( wxEVT_RIBBONGALLERY_CLICKED, 1 ) } #endif // SWIG diff --git a/interface/wx/aboutdlg.h b/interface/wx/aboutdlg.h index f23b9b917f..f92ce60106 100644 --- a/interface/wx/aboutdlg.h +++ b/interface/wx/aboutdlg.h @@ -161,6 +161,16 @@ public: */ void SetDocWriters(const wxArrayString& docwriters); + /** + Returns @true if an icon has been set for the about dialog. + */ + bool HasIcon() const; + + /** + Returns the icon set by SetIcon(). + */ + wxIcon GetIcon() const; + /** Set the icon to be shown in the dialog. By default the icon of the main frame will be shown if the native about dialog supports custom icons. If it doesn't @@ -170,6 +180,18 @@ public: */ void SetIcon(const wxIcon& icon); + /** + Returns @true if the licence string has been set. + */ + bool HasLicence() const; + + /** + Returns the licence string. + + @see SetLicence() + */ + const wxString& GetLicence() const; + /** Set the long, multiline string containing the text of the program licence. @@ -213,6 +235,35 @@ public: */ void SetVersion(const wxString& version, const wxString& longVersion = wxString()); + /** + Return the short version string. + + @see SetVersion() + */ + const wxString& GetVersion() const; + + /** + Return the long version string if set. + + @see SetVersion() + */ + const wxString& GetLongVersion() const; + + /** + Returns @true if the website info has been set. + */ + bool HasWebSite() const; + + /** + Returns the website URL set for the dialog. + */ + const wxString& GetWebSiteURL() const; + + /** + Returns the description of the website URL set for the dialog. + */ + const wxString& GetWebSiteDescription() const; + /** Set the web site for the program and its description (which defaults to @a url itself if empty). @@ -223,6 +274,49 @@ public: */ void SetWebSite(const wxString& url, const wxString& desc = wxEmptyString); + + + /** + Returns @true if developers have been set in the dialog info. + */ + bool HasDevelopers() const; + + /** + Returns an array of the developer strings set in the dialog info. + */ + const wxArrayString& GetDevelopers() const; + + /** + Returns @true if writers have been set in the dialog info. + */ + bool HasDocWriters() const; + + /** + Returns an array of the writer strings set in the dialog info. + */ + const wxArrayString& GetDocWriters() const; + + /** + Returns @true if artists have been set in the dialog info. + */ + bool HasArtists() const; + + /** + Returns an array of the artist strings set in the dialog info. + */ + const wxArrayString& GetArtists() const; + + /** + Returns @true if translators have been set in the dialog info. + */ + bool HasTranslators() const; + + /** + Returns an array of the translator strings set in the dialog info. + */ + const wxArrayString& GetTranslators() const; + + }; diff --git a/interface/wx/artprov.h b/interface/wx/artprov.h index aff555eb29..d0581d9913 100644 --- a/interface/wx/artprov.h +++ b/interface/wx/artprov.h @@ -409,7 +409,7 @@ protected: wxArtID unique identifier of the bitmap. @param client wxArtClient identifier of the client (i.e. who is asking for the bitmap). - This only servers as a hint. + This only serves as a hint. @param size Preferred size of the bitmap. The function may return a bitmap of different dimensions, it will be automatically rescaled to meet client's request. diff --git a/interface/wx/aui/auibar.h b/interface/wx/aui/auibar.h index 8cdc0a62c3..1c2dfba0e9 100644 --- a/interface/wx/aui/auibar.h +++ b/interface/wx/aui/auibar.h @@ -148,6 +148,10 @@ enum wxAuiToolBarToolTextOrientation class wxAuiToolBarEvent : public wxNotifyEvent { public: + wxAuiToolBarEvent(wxEventType commandType = wxEVT_NULL, + int winId = 0); + wxAuiToolBarEvent(const wxAuiToolBarEvent& c); + /** Returns whether the drop down menu has been clicked. */ @@ -167,8 +171,20 @@ public: Returns the wxAuiToolBarItem identifier. */ int GetToolId() const; + + + void SetDropDownClicked(bool c); + void SetClickPoint(const wxPoint& p); + void SetItemRect(const wxRect& r); + void SetToolId(int toolId); }; +wxEventType wxEVT_AUITOOLBAR_TOOL_DROPDOWN; +wxEventType wxEVT_AUITOOLBAR_OVERFLOW_CLICK; +wxEventType wxEVT_AUITOOLBAR_RIGHT_CLICK; +wxEventType wxEVT_AUITOOLBAR_MIDDLE_CLICK; +wxEventType wxEVT_AUITOOLBAR_BEGIN_DRAG; + /** @class wxAuiToolBarItem diff --git a/interface/wx/aui/auibook.h b/interface/wx/aui/auibook.h index 59eed12556..50db1b0d02 100644 --- a/interface/wx/aui/auibook.h +++ b/interface/wx/aui/auibook.h @@ -5,6 +5,32 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +enum wxAuiNotebookOption +{ + wxAUI_NB_TOP = 1 << 0, + wxAUI_NB_LEFT = 1 << 1, // not implemented yet + wxAUI_NB_RIGHT = 1 << 2, // not implemented yet + wxAUI_NB_BOTTOM = 1 << 3, + wxAUI_NB_TAB_SPLIT = 1 << 4, + wxAUI_NB_TAB_MOVE = 1 << 5, + wxAUI_NB_TAB_EXTERNAL_MOVE = 1 << 6, + wxAUI_NB_TAB_FIXED_WIDTH = 1 << 7, + wxAUI_NB_SCROLL_BUTTONS = 1 << 8, + wxAUI_NB_WINDOWLIST_BUTTON = 1 << 9, + wxAUI_NB_CLOSE_BUTTON = 1 << 10, + wxAUI_NB_CLOSE_ON_ACTIVE_TAB = 1 << 11, + wxAUI_NB_CLOSE_ON_ALL_TABS = 1 << 12, + wxAUI_NB_MIDDLE_CLICK_CLOSE = 1 << 13, + + wxAUI_NB_DEFAULT_STYLE = wxAUI_NB_TOP | + wxAUI_NB_TAB_SPLIT | + wxAUI_NB_TAB_MOVE | + wxAUI_NB_SCROLL_BUTTONS | + wxAUI_NB_CLOSE_ON_ACTIVE_TAB | + wxAUI_NB_MIDDLE_CLICK_CLOSE +}; + + /** @class wxAuiNotebook @@ -20,9 +46,9 @@ splitter configurations, and toggle through different themes to customize the control's look and feel. - The appearance of this class is configurable and can be changed by calling - wxAuiNotebook::SetArtProvider(). By default, native art provider is used if - available (currently only in wxGTK and wxMSW) and wxAuiGenericTabArt otherwise. + The default theme that is used is wxAuiDefaultTabArt, which provides a modern, + glossy look and feel. + The theme can be changed by calling wxAuiNotebook::SetArtProvider. @beginStyleTable @style{wxAUI_NB_DEFAULT_STYLE} @@ -270,7 +296,7 @@ public: @since 2.9.3 */ virtual bool InsertPage(size_t index, wxWindow *page, const wxString &text, - bool select=false, int imageId=NO_IMAGE); + bool select, int imageId); /** Removes a page, without deleting the window pointer. @@ -373,8 +399,35 @@ public: and returns @true if a selection was made. */ bool ShowWindowMenu(); + + + /** + Returns the image index for the given page. + */ + virtual int GetPageImage(size_t nPage) const; }; + +/** + @class wxAuiNotebookPage + + A simple class which holds information about the notebook's pages and their state. + + @library{wxaui} + @category{aui} +*/ +class wxAuiNotebookPage +{ +public: + wxWindow* window; // page's associated window + wxString caption; // caption displayed on the tab + wxString tooltip; // tooltip displayed when hovering over tab title + wxBitmap bitmap; // tab's bitmap + wxRect rect; // tab's hit rectangle + bool active; // true if the page is currently active +}; + + /** @class wxAuiTabContainerButton diff --git a/interface/wx/aui/dockart.h b/interface/wx/aui/dockart.h index cf23c1693f..89287d0132 100644 --- a/interface/wx/aui/dockart.h +++ b/interface/wx/aui/dockart.h @@ -281,3 +281,102 @@ public: virtual void SetMetric(int id, int new_val) = 0; }; + + + +/** + @class wxAuiDefaultDockArt + + This is the default art provider for @ref wxAuiManager. Dock art + can be customized by creating a class derived from this one, + or replacing this class entirely. +*/ +class wxAuiDefaultDockArt : public wxAuiDockArt +{ +public: + + wxAuiDefaultDockArt(); + + int GetMetric(int metricId); + void SetMetric(int metricId, int newVal); + wxColour GetColour(int id); + void SetColour(int id, const wxColour& colour); + void SetFont(int id, const wxFont& font); + wxFont GetFont(int id); + + void DrawSash(wxDC& dc, + wxWindow *window, + int orientation, + const wxRect& rect); + + void DrawBackground(wxDC& dc, + wxWindow *window, + int orientation, + const wxRect& rect); + + void DrawCaption(wxDC& dc, + wxWindow *window, + const wxString& text, + const wxRect& rect, + wxAuiPaneInfo& pane); + + void DrawGripper(wxDC& dc, + wxWindow *window, + const wxRect& rect, + wxAuiPaneInfo& pane); + + void DrawBorder(wxDC& dc, + wxWindow *window, + const wxRect& rect, + wxAuiPaneInfo& pane); + + void DrawPaneButton(wxDC& dc, + wxWindow *window, + int button, + int buttonState, + const wxRect& rect, + wxAuiPaneInfo& pane); + + void DrawIcon(wxDC& dc, + const wxRect& rect, + wxAuiPaneInfo& pane); + +protected: + + void DrawCaptionBackground(wxDC& dc, const wxRect& rect, bool active); + + void InitBitmaps(); + +protected: + + wxPen m_borderPen; + wxBrush m_sashBrush; + wxBrush m_backgroundBrush; + wxBrush m_gripperBrush; + wxFont m_captionFont; + wxBitmap m_inactiveCloseBitmap; + wxBitmap m_inactivePinBitmap; + wxBitmap m_inactiveMaximizeBitmap; + wxBitmap m_inactiveRestoreBitmap; + wxBitmap m_activeCloseBitmap; + wxBitmap m_activePinBitmap; + wxBitmap m_activeMaximizeBitmap; + wxBitmap m_activeRestoreBitmap; + wxPen m_gripperPen1; + wxPen m_gripperPen2; + wxPen m_gripperPen3; + wxColour m_baseColour; + wxColour m_activeCaptionColour; + wxColour m_activeCaptionGradientColour; + wxColour m_activeCaptionTextColour; + wxColour m_inactiveCaptionColour; + wxColour m_inactiveCaptionGradientColour; + wxColour m_inactiveCaptionTextColour; + int m_borderSize; + int m_captionSize; + int m_sashSize; + int m_buttonSize; + int m_gripperSize; + int m_gradientType; +}; + diff --git a/interface/wx/aui/framemanager.h b/interface/wx/aui/framemanager.h index c37430727a..df94c7a320 100644 --- a/interface/wx/aui/framemanager.h +++ b/interface/wx/aui/framemanager.h @@ -917,6 +917,63 @@ public: Makes a copy of the wxAuiPaneInfo object. */ wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c); + + + /// name of the pane + wxString name; + + /// caption displayed on the window + wxString caption; + + /// icon of the pane, may be invalid + wxBitmap icon; + + /// window that is in this pane + wxWindow* window; + + /// floating frame window that holds the pane + wxFrame* frame; + + /// a combination of wxPaneState values + unsigned int state; + + /// dock direction (top, bottom, left, right, center) + int dock_direction; + + /// layer number (0 = innermost layer) + int dock_layer; + + /// row number on the docking bar (0 = first row) + int dock_row; + + /// position inside the row (0 = first position) + int dock_pos; + + /// size that the layout engine will prefer + wxSize best_size; + + /// minimum size the pane window can tolerate + wxSize min_size; + + /// maximum size the pane window can tolerate + wxSize max_size; + + /// position while floating + wxPoint floating_pos; + + /// size while floating + wxSize floating_size; + + /// proportion while docked + int dock_proportion; + + /// buttons on the pane + wxAuiPaneButtonArray buttons; + + /// current rectangle (populated by wxAUI) + wxRect rect; + + bool IsValid() const; }; @@ -1023,3 +1080,74 @@ public: void Veto(bool veto = true); }; + + +wxEventType wxEVT_AUI_PANE_BUTTON; +wxEventType wxEVT_AUI_PANE_CLOSE; +wxEventType wxEVT_AUI_PANE_MAXIMIZE; +wxEventType wxEVT_AUI_PANE_RESTORE; +wxEventType wxEVT_AUI_PANE_ACTIVATED; +wxEventType wxEVT_AUI_RENDER; +wxEventType wxEVT_AUI_FIND_MANAGER; + + + +class wxAuiDockInfo +{ +public: + wxAuiDockInfo(); + wxAuiDockInfo(const wxAuiDockInfo& c); + wxAuiDockInfo& operator=(const wxAuiDockInfo& c); + + bool IsOk() const; + bool IsHorizontal() const; + bool IsVertical() const; + + wxAuiPaneInfoPtrArray panes; // array of panes + wxRect rect; // current rectangle + 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 size; // size of the dock + int min_size; // minimum size of a dock (0 if there is no min) + bool resizable; // flag indicating whether the dock is resizable + bool toolbar; // flag indicating dock contains only toolbars + bool fixed; // flag indicating that the dock operates on + // absolute coordinates as opposed to proportional + bool reserved1; +}; + + +class wxAuiDockUIPart +{ +public: + enum + { + typeCaption, + typeGripper, + typeDock, + typeDockSizer, + typePane, + typePaneSizer, + typeBackground, + typePaneBorder, + typePaneButton + }; + + int type; // ui part type (see enum above) + int orientation; // orientation (either wxHORIZONTAL or wxVERTICAL) + wxAuiDockInfo* dock; // which dock the item is associated with + wxAuiPaneInfo* pane; // which pane the item is associated with + wxAuiPaneButton* button; // which pane button the item is associated with + wxSizer* cont_sizer; // the part's containing sizer + wxSizerItem* sizer_item; // the sizer item of the part + wxRect rect; // client coord rectangle of the part itself +}; + + + +class wxAuiPaneButton +{ +public: + int button_id; // id of the button (e.g. buttonClose) +}; diff --git a/interface/wx/aui/tabmdi.h b/interface/wx/aui/tabmdi.h new file mode 100644 index 0000000000..4092edcdfc --- /dev/null +++ b/interface/wx/aui/tabmdi.h @@ -0,0 +1,140 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/aui/tabmdi.h +// Purpose: Documentation of wxAui MDI classes. +// Created: 2016-10-27 +// Copyright: (c) 2016 wxWidgets development team +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + + +class wxAuiMDIParentFrame : public wxFrame +{ +public: + wxAuiMDIParentFrame(); + wxAuiMDIParentFrame(wxWindow *parent, + wxWindowID winid, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, + const wxString& name = wxFrameNameStr); + + ~wxAuiMDIParentFrame(); + + bool Create(wxWindow *parent, + wxWindowID winid, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, + const wxString& name = wxFrameNameStr ); + + void SetArtProvider(wxAuiTabArt* provider); + wxAuiTabArt* GetArtProvider(); + wxAuiNotebook* GetNotebook() const; + + wxMenu* GetWindowMenu() const; + void SetWindowMenu(wxMenu* pMenu); + + virtual void SetMenuBar(wxMenuBar *pMenuBar); + + void SetChildMenuBar(wxAuiMDIChildFrame *pChild); + + wxAuiMDIChildFrame *GetActiveChild() const; + void SetActiveChild(wxAuiMDIChildFrame* pChildFrame); + + wxAuiMDIClientWindow *GetClientWindow() const; + virtual wxAuiMDIClientWindow *OnCreateClient(); + + virtual void Cascade(); + virtual void Tile(wxOrientation orient = wxHORIZONTAL); + virtual void ArrangeIcons(); + virtual void ActivateNext(); + virtual void ActivatePrevious(); +}; + + + +class wxAuiMDIChildFrame : public wxPanel +{ +public: + wxAuiMDIChildFrame(); + wxAuiMDIChildFrame(wxAuiMDIParentFrame *parent, + wxWindowID winid, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); + + virtual ~wxAuiMDIChildFrame(); + bool Create(wxAuiMDIParentFrame *parent, + wxWindowID winid, + const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = wxFrameNameStr); + + virtual void SetMenuBar(wxMenuBar *menuBar); + virtual wxMenuBar *GetMenuBar() const; + + virtual void SetTitle(const wxString& title); + virtual wxString GetTitle() const; + + virtual void SetIcons(const wxIconBundle& icons); + virtual const wxIconBundle& GetIcons() const; + + virtual void SetIcon(const wxIcon& icon); + virtual const wxIcon& GetIcon() const; + + virtual void Activate(); + virtual bool Destroy(); + + virtual bool Show(bool show = true); + + // no status bars + virtual wxStatusBar* CreateStatusBar(int number = 1, + long style = 1, + wxWindowID winid = 1, + const wxString& name = wxEmptyString); + + virtual wxStatusBar *GetStatusBar() const; + virtual void SetStatusText( const wxString &text, int number=0 ); + virtual void SetStatusWidths( int n, const int widths_field[] ); + + // no toolbar bars + virtual wxToolBar* CreateToolBar(long style, + wxWindowID winid, + const wxString& name); + virtual wxToolBar *GetToolBar() const; + + // no maximize etc + virtual void Maximize(bool maximize = true); + virtual void Restore(); + virtual void Iconize(bool iconize = true); + virtual bool IsMaximized() const; + virtual bool IsIconized() const; + virtual bool ShowFullScreen(bool show, long style); + virtual bool IsFullScreen() const; + + virtual bool IsTopLevel() const; + + void SetMDIParentFrame(wxAuiMDIParentFrame* parent); + wxAuiMDIParentFrame* GetMDIParentFrame() const; +}; + + +class wxAuiMDIClientWindow : public wxAuiNotebook +{ +public: + wxAuiMDIClientWindow(); + wxAuiMDIClientWindow(wxAuiMDIParentFrame *parent, long style = 0); + + virtual bool CreateClient(wxAuiMDIParentFrame *parent, + long style = wxVSCROLL | wxHSCROLL); + + virtual int SetSelection(size_t page); + virtual wxAuiMDIChildFrame* GetActiveChild(); + virtual void SetActiveChild(wxAuiMDIChildFrame* pChildFrame); +}; diff --git a/interface/wx/font.h b/interface/wx/font.h index e5c9d04c9c..b16e12b507 100644 --- a/interface/wx/font.h +++ b/interface/wx/font.h @@ -470,7 +470,7 @@ public: @since 2.9.5 */ - wxFont(const wxFontInfo& font); + wxFont(const wxFontInfo& fontInfo); /** Creates a font object with the specified attributes and size in points. diff --git a/interface/wx/fs_mem.h b/interface/wx/fs_mem.h index a083bbc0c6..546ced5b2b 100644 --- a/interface/wx/fs_mem.h +++ b/interface/wx/fs_mem.h @@ -90,6 +90,9 @@ public: */ static void AddFile(const wxString& filename, wxImage& image, wxBitmapType type); static void AddFile(const wxString& filename, const wxBitmap& bitmap, wxBitmapType type); + static void AddFile(const wxString& filename, const wxString& textdata); + static void AddFile(const wxString& filename, const void *binarydata, size_t size); + //@} //@{ diff --git a/interface/wx/grid.h b/interface/wx/grid.h index a250db796f..c363027bc0 100644 --- a/interface/wx/grid.h +++ b/interface/wx/grid.h @@ -801,7 +801,10 @@ public: Row, /// Return the attribute set for this cells column. - Col + Col, + + Default, + Merged }; /** @@ -978,6 +981,22 @@ public: */ void SetTextColour(const wxColour& colText); + + void MergeWith(wxGridCellAttr *mergefrom); + + void SetSize(int num_rows, int num_cols); + void SetOverflow(bool allow = true); + void SetKind(wxAttrKind kind); + + bool HasReadWriteMode() const; + bool HasOverflowMode() const; + bool HasSize() const; + + void GetSize(int *num_rows, int *num_cols) const; + bool GetOverflow() const; + wxAttrKind GetKind(); + + protected: /** diff --git a/interface/wx/html/htmlcell.h b/interface/wx/html/htmlcell.h index 9abac27be7..085f4afd4c 100644 --- a/interface/wx/html/htmlcell.h +++ b/interface/wx/html/htmlcell.h @@ -435,6 +435,13 @@ public: Sets the cell's position within parent container. */ virtual void SetPos(int x, int y); + + /** + Converts the cell into text representation. If sel != NULL then + only part of the cell inside the selection is converted. + */ + virtual wxString ConvertToText(wxHtmlSelection* sel) const; + }; diff --git a/interface/wx/html/htmlwin.h b/interface/wx/html/htmlwin.h index 498cecbd6b..d6b03dd7d4 100644 --- a/interface/wx/html/htmlwin.h +++ b/interface/wx/html/htmlwin.h @@ -221,6 +221,11 @@ public: */ wxString GetOpenedPageTitle() const; + /** + Returns a pointer to the current parser. + */ + wxHtmlWinParser *GetParser() const; + /** Returns the related frame. */ diff --git a/interface/wx/listctrl.h b/interface/wx/listctrl.h index 14fffe2f0e..ea71e997df 100644 --- a/interface/wx/listctrl.h +++ b/interface/wx/listctrl.h @@ -1505,6 +1505,44 @@ public: admittedly rare case when the user wants to rename it to an empty string). */ bool IsEditCancelled() const; + + + /** + @see GetKeyCode() + */ + void SetKeyCode(int code); + + /** + @see GetIndex() + */ + void SetIndex(long index); + + /** + @see GetColumn() + */ + void SetColumn(int col); + + /** + @see GetPoint() + */ + void SetPoint(const wxPoint& point); + + /** + @see GetItem() + */ + void SetItem(const wxListItem& item); + + + /** + @see GetCacheFrom() + */ + void SetCacheFrom(long cacheFrom); + + /** + @see GetCacheTo() + */ + void SetCacheTo(long cacheTo); + }; diff --git a/interface/wx/mediactrl.h b/interface/wx/mediactrl.h index 2184fd6e3d..1dd6db3283 100644 --- a/interface/wx/mediactrl.h +++ b/interface/wx/mediactrl.h @@ -372,13 +372,13 @@ public: /** Same as Load(const wxURI& uri). Kept for wxPython compatibility. */ - bool LoadURI(const wxString& fileName); + bool LoadURI(const wxString& uri); /** Same as Load(const wxURI& uri, const wxURI& proxy). Kept for wxPython compatibility. */ - bool LoadURIWithProxy(const wxString& fileName, const wxString& proxy); + bool LoadURIWithProxy(const wxString& uri, const wxString& proxy); /** Pauses playback of the movie. diff --git a/interface/wx/propdlg.h b/interface/wx/propdlg.h index 06706f46a8..9593e88a4f 100644 --- a/interface/wx/propdlg.h +++ b/interface/wx/propdlg.h @@ -107,6 +107,11 @@ enum wxPropertySheetDialogFlags class wxPropertySheetDialog : public wxDialog { public: + /** + Default constructor. Call Create if using this form of constructor. + */ + wxPropertySheetDialog(); + /** Constructor. */ @@ -159,6 +164,11 @@ public: */ wxSizer* GetInnerSizer() const; + /** + Set the inner sizer that contains the book control and button sizer. + */ + void SetInnerSizer(wxSizer* sizer); + /** Returns the sheet style. @@ -186,5 +196,31 @@ public: It is a bit list of the ::wxPropertySheetDialogFlags values. */ void SetSheetStyle(long style); + + + /** + Set the border around the whole dialog + */ + void SetSheetOuterBorder(int border); + + /** + Returns the border around the whole dialog + */ + int GetSheetOuterBorder() const; + + + /** + Set the border around the book control only. + */ + void SetSheetInnerBorder(int border); + + /** + Returns the border around the book control only. + */ + int GetSheetInnerBorder() const; + + + virtual wxWindow* GetContentWindow() const; + }; diff --git a/interface/wx/propgrid/editors.h b/interface/wx/propgrid/editors.h index 0d5ae8f349..cddb8fc900 100644 --- a/interface/wx/propgrid/editors.h +++ b/interface/wx/propgrid/editors.h @@ -5,6 +5,26 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +/** + @class wxPGWindowList + + Contains a list of editor windows returned by CreateControls. +*/ + +class wxPGWindowList +{ +public: + wxPGWindowList(); + void SetSecondary( wxWindow* secondary ); + + wxWindow* m_primary; + wxWindow* m_secondary; + + wxPGWindowList( wxWindow* a ); + wxPGWindowList( wxWindow* a, wxWindow* b ); +}; + + /** @class wxPGEditor @@ -18,7 +38,7 @@ calling wxPropertyGrid::RegisterAdditionalEditors() prior use. - Pointer to built-in editor is available as wxPGEditor_EditorName - (eg. wxPGEditor_TextCtrl). + (e.g. wxPGEditor_TextCtrl). - Before you start using new editor you just created, you need to register it using static function @@ -93,7 +113,7 @@ public: @remarks wxPropertyGrid will automatically unfocus the editor when @c wxEVT_TEXT_ENTER is received and when it results in property value being modified. This happens regardless of - editor type (ie. behaviour is same for any wxTextCtrl and + editor type (i.e. behaviour is same for any wxTextCtrl and wxComboBox based editor). */ virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, @@ -109,7 +129,7 @@ public: /** Sets value in control to unspecified. */ virtual void SetValueToUnspecified( wxPGProperty* property, - wxWindow* ctrl ) const = 0; + wxWindow* ctrl ) const; /** Called by property grid to set new appearance for the control. @@ -166,6 +186,228 @@ public: Default implementation returns @false. */ virtual bool CanContainCustomImage() const; + + // + // This member is public so scripting language bindings + // wrapper code can access it freely. + void* m_clientData; + +}; + + + + +class wxPGTextCtrlEditor : public wxPGEditor +{ +public: + wxPGTextCtrlEditor(); + virtual ~wxPGTextCtrlEditor(); + + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; + virtual void UpdateControl( wxPGProperty* property, + wxWindow* ctrl ) const; + virtual bool OnEvent( wxPropertyGrid* propgrid, + wxPGProperty* property, + wxWindow* primaryCtrl, + wxEvent& event ) const; + virtual bool GetValueFromControl( wxVariant& variant, + wxPGProperty* property, + wxWindow* ctrl ) const; + + virtual wxString GetName() const; + + virtual void SetControlStringValue( wxPGProperty* property, + wxWindow* ctrl, + const wxString& txt ) const; + virtual void OnFocus( wxPGProperty* property, wxWindow* wnd ) const; + + static bool OnTextCtrlEvent( wxPropertyGrid* propgrid, + wxPGProperty* property, + wxWindow* ctrl, + wxEvent& event ); + + static bool GetTextCtrlValueFromControl( wxVariant& variant, + wxPGProperty* property, + wxWindow* ctrl ); +}; + + +class wxPGChoiceEditor : public wxPGEditor +{ +public: + wxPGChoiceEditor() + virtual ~wxPGChoiceEditor(); + + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; + virtual void UpdateControl( wxPGProperty* property, + wxWindow* ctrl ) const; + virtual bool OnEvent( wxPropertyGrid* propgrid, + wxPGProperty* property, + wxWindow* primaryCtrl, + wxEvent& event ) const; + virtual bool GetValueFromControl( wxVariant& variant, + wxPGProperty* property, + wxWindow* ctrl ) const; + virtual void SetValueToUnspecified( wxPGProperty* property, + wxWindow* ctrl ) const; + virtual wxString GetName() const; + + virtual void SetControlIntValue( wxPGProperty* property, + wxWindow* ctrl, + int value ) const; + virtual void SetControlStringValue( wxPGProperty* property, + wxWindow* ctrl, + const wxString& txt ) const; + + virtual int InsertItem( wxWindow* ctrl, + const wxString& label, + int index ) const; + virtual void DeleteItem( wxWindow* ctrl, int index ) const; + virtual bool CanContainCustomImage() const; + + wxWindow* CreateControlsBase( wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& sz, + long extraStyle ) const; + +}; + + +class wxPGComboBoxEditor : public wxPGChoiceEditor +{ +public: + wxPGComboBoxEditor(); + virtual ~wxPGComboBoxEditor(); + + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; + + virtual wxString GetName() const; + + virtual void UpdateControl( wxPGProperty* property, wxWindow* ctrl ) const; + + virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, + wxWindow* ctrl, wxEvent& event ) const; + + virtual bool GetValueFromControl( wxVariant& variant, + wxPGProperty* property, + wxWindow* ctrl ) const; + + virtual void OnFocus( wxPGProperty* property, wxWindow* wnd ) const; + +}; + + +class wxPGChoiceAndButtonEditor : public wxPGChoiceEditor +{ +public: + wxPGChoiceAndButtonEditor(); + virtual ~wxPGChoiceAndButtonEditor(); + virtual wxString GetName() const; + + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; +}; + +class wxPGTextCtrlAndButtonEditor : public wxPGTextCtrlEditor +{ +public: + wxPGTextCtrlAndButtonEditor(); + virtual ~wxPGTextCtrlAndButtonEditor(); + virtual wxString GetName() const; + + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; +}; + + + + + +class wxPGCheckBoxEditor : public wxPGEditor +{ +public: + wxPGCheckBoxEditor(); + virtual ~wxPGCheckBoxEditor(); + + virtual wxString GetName() const; + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; + virtual void UpdateControl( wxPGProperty* property, + wxWindow* ctrl ) const; + virtual bool OnEvent( wxPropertyGrid* propgrid, + wxPGProperty* property, + wxWindow* primaryCtrl, + wxEvent& event ) const; + virtual bool GetValueFromControl( wxVariant& variant, + wxPGProperty* property, + wxWindow* ctrl ) const; + virtual void SetValueToUnspecified( wxPGProperty* property, + wxWindow* ctrl ) const; + + virtual void DrawValue( wxDC& dc, + const wxRect& rect, + wxPGProperty* property, + const wxString& text ) const; + + virtual void SetControlIntValue( wxPGProperty* property, + wxWindow* ctrl, + int value ) const; +}; + + + +/** + @class wxPGEditorDialogAdapter + + Derive a class from this to adapt an existing editor dialog or function to + be used when editor button of a property is pushed. + + You only need to derive class and implement DoShowDialog() to create and + show the dialog, and finally submit the value returned by the dialog + via SetValue(). + + @library{wxpropgrid} + @category{propgrid} +*/ +class wxPGEditorDialogAdapter : public wxObject +{ +public: + wxPGEditorDialogAdapter(); + virtual ~wxPGEditorDialogAdapter(); + + bool ShowDialog( wxPropertyGrid* propGrid, wxPGProperty* property ); + + virtual bool DoShowDialog( wxPropertyGrid* propGrid, + wxPGProperty* property ) = 0; + + void SetValue( wxVariant value ); + + /** + This method is typically only used if deriving class from existing + adapter with value conversion purposes. + */ + wxVariant& GetValue() { return m_value; } + + // + // This member is public so scripting language bindings + // wrapper code can access it freely. + void* m_clientData; }; diff --git a/interface/wx/propgrid/manager.h b/interface/wx/propgrid/manager.h index 022eb726c6..a51ff229e9 100644 --- a/interface/wx/propgrid/manager.h +++ b/interface/wx/propgrid/manager.h @@ -36,8 +36,9 @@ @library{wxpropgrid} @category{propgrid} */ -class WXDLLIMPEXP_PROPGRID wxPropertyGridPage : public wxEvtHandler, - public wxPropertyGridInterface +class wxPropertyGridPage : public wxEvtHandler, + public wxPropertyGridInterface, + public wxPropertyGridPageState { friend class wxPropertyGridManager; @@ -171,6 +172,8 @@ public: wxPG_TOOLBAR | // Include description box. wxPG_DESCRIPTION | + // Include compactor. + wxPG_COMPACTOR | // Plus defaults. wxPGMAN_DEFAULT_STYLE ); @@ -211,8 +214,16 @@ class wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface { public: /** - The default constructor. The styles to be used are styles valid for - the wxWindow. + Two step constructor. + Call Create when this constructor is called to build up the + wxPropertyGridManager. + */ + wxPropertyGridManager(); + + /** + The default constructor. The styles to be used are styles valid for + the wxWindow. + @see @link wndflags Additional Window Styles @endlink */ wxPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, @@ -410,7 +421,7 @@ public: bool IsAnyModified() const; /** - Returns @true if updating is frozen (ie. Freeze() called but not yet Thaw() ). + Returns @true if updating is frozen (i.e. Freeze() called but not yet Thaw() ). */ bool IsFrozen() const; @@ -487,7 +498,7 @@ public: labels to be shown in full. @param subProps - If @false, will still allow sub-properties (ie. properties which + If @false, will still allow sub-properties (i.e. properties which parent is not root or category) to be cropped. @param allPages @@ -541,7 +552,7 @@ protected: /** Creates property grid for the manager. Reimplement in derived class to use subclassed wxPropertyGrid. However, if you do this then you - must also use the two-step construction (ie. default constructor and + must also use the two-step construction (i.e. default constructor and Create() instead of constructor with arguments) when creating the manager. */ diff --git a/interface/wx/propgrid/property.h b/interface/wx/propgrid/property.h index 02b365eb98..c53e0bd8ac 100644 --- a/interface/wx/propgrid/property.h +++ b/interface/wx/propgrid/property.h @@ -146,6 +146,8 @@ struct wxPGPaintData /** Specific to wxFileProperty and derivatives, long, default is 0. Sets a specific wxFileDialog style for the file dialog, e.g. ::wxFD_SAVE. + + @since 2.9.4 */ #define wxPG_FILE_DIALOG_STYLE wxS("DialogStyle") @@ -337,12 +339,12 @@ wxPG_PROP_USES_COMMON_VALUE = 0x00020000, */ wxPG_PROP_AUTO_UNSPECIFIED = 0x00040000, -/** Indicates the bit usable by derived properties. +/** Indicates the bit useable by derived properties. @hideinitializer */ wxPG_PROP_CLASS_SPECIFIC_1 = 0x00080000, -/** Indicates the bit usable by derived properties. +/** Indicates the bit useable by derived properties. @hideinitializer */ wxPG_PROP_CLASS_SPECIFIC_2 = 0x00100000, @@ -447,6 +449,7 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000 Like wxStringProperty, but converts text to a signed long integer. wxIntProperty seamlessly supports 64-bit integers (i.e. wxLongLong) on overlfow. To safely convert variant to integer, use code like this: + @code wxLongLong ll; ll << property->GetValue(); @@ -611,7 +614,7 @@ wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000 manually edit the flags as a text; a continuous sequence of spaces, commas and semicolons are considered as a flag id separator. - Note: When changing "choices" (ie. flag labels) of wxFlagsProperty, + Note: When changing "choices" (i.e. flag labels) of wxFlagsProperty, you will need to use wxPGProperty::SetChoices() - otherwise they will not get updated properly. @@ -1250,6 +1253,15 @@ public: */ int AddChoice( const wxString& label, int value = wxPG_INVALID_VALUE ); + /** + Adds a private child property. + + @deprecated Use AddPrivateChild() instead. + + @see AddPrivateChild() + */ + void AddChild( wxPGProperty* prop ); + /** Adds a private child property. If you use this instead of wxPropertyGridInterface::Insert() or @@ -1379,7 +1391,7 @@ public: */ const wxPGEditor* GetColumnEditor( int column ) const; - /** Returns property's base name (ie. parent's name is not added + /** Returns property's base name (i.e. parent's name is not added in any case). */ const wxString& GetBaseName() const; @@ -1559,6 +1571,14 @@ public: */ virtual wxString GetValueAsString( int argFlags = 0 ) const; + /** Synonymous to GetValueAsString(). + + @deprecated Use GetValueAsString() instead. + + @see GetValueAsString() + */ + wxString GetValueString( int argFlags = 0 ) const; + /** Returns value type used by this property. */ @@ -1667,10 +1687,11 @@ public: bool IsRoot() const; /** - Returns true if this is a sub-property. + Returns true if this is a sub-property. */ bool IsSubProperty() const; + /** Returns @true if candidateParent is some parent of this property. Use, for example, to detect if item is inside collapsed section. @@ -2368,6 +2389,55 @@ public: // ----------------------------------------------------------------------- + +/** + @class wxPGChoiceEntry + Data of a single wxPGChoices choice. +*/ +class wxPGChoiceEntry : public wxPGCell +{ +public: + wxPGChoiceEntry(); + wxPGChoiceEntry(const wxPGChoiceEntry& other); + wxPGChoiceEntry( const wxString& label, + int value = wxPG_INVALID_VALUE ); + + virtual ~wxPGChoiceEntry(); + + void SetValue( int value ); + int GetValue() const; + + wxPGChoiceEntry& operator=( const wxPGChoiceEntry& other ); +}; + + +class wxPGChoicesData : public wxObjectRefData +{ +public: + // Constructor sets m_refCount to 1. + wxPGChoicesData(); + + void CopyDataFrom( wxPGChoicesData* data ); + + wxPGChoiceEntry& Insert( int index, const wxPGChoiceEntry& item ); + + // Delete all entries + void Clear(); + + unsigned int GetCount() const; + + const wxPGChoiceEntry& Item( unsigned int i ) const; + wxPGChoiceEntry& Item( unsigned int i ); + +protected: + virtual ~wxPGChoicesData(); +}; + +#define wxPGChoicesEmptyData ((wxPGChoicesData*)NULL) + + + + /** @class wxPGChoices diff --git a/interface/wx/propgrid/propgrid.h b/interface/wx/propgrid/propgrid.h index 0ce99ecd48..b35b736d9c 100644 --- a/interface/wx/propgrid/propgrid.h +++ b/interface/wx/propgrid/propgrid.h @@ -331,7 +331,7 @@ wxPG_VFB_DEFAULT = wxPG_VFB_MARK_CELL | #define wxPGVFBFlags unsigned char /** - wxPGValidationInfo + @class wxPGValidationInfo Used to convey validation information to and from functions that actually perform validation. Mostly used in custom property classes. @@ -920,7 +920,7 @@ public: bool IsEditorFocused() const; /** - Returns true if updating is frozen (ie. Freeze() called but not + Returns true if updating is frozen (i.e. Freeze() called but not yet Thaw() ). */ bool IsFrozen() const; diff --git a/interface/wx/propgrid/propgridiface.h b/interface/wx/propgrid/propgridiface.h index 3316bec709..38131acb31 100644 --- a/interface/wx/propgrid/propgridiface.h +++ b/interface/wx/propgrid/propgridiface.h @@ -142,7 +142,7 @@ public: Refresh() when calling this function after control has been shown for the first time. - This functions deselects selected property, if any. Validation - failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. + failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. */ wxPGProperty* Append( wxPGProperty* property ); @@ -171,7 +171,7 @@ public: Deletes all properties. @remarks This functions deselects selected property, if any. Validation - failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. + failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. */ virtual void Clear() = 0; @@ -206,7 +206,7 @@ public: @return Returns @true if actually collapsed. @remarks This function may deselect selected property, if any. Validation - failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. + failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. */ bool Collapse( wxPGPropArg id ); @@ -218,7 +218,7 @@ public: Return @false if failed (may fail if editor value cannot be validated). @remarks This functions clears selection. Validation failure option - wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. selection + wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. */ bool CollapseAll(); @@ -244,7 +244,7 @@ public: This functions deselects selected property, if any. Validation failure option wxPG_VFB_STAY_IN_PROPERTY is not - respected, ie. selection is cleared even if editor had + respected, i.e. selection is cleared even if editor had invalid value. */ void DeleteProperty( wxPGPropArg id ); @@ -295,7 +295,7 @@ public: @return Returns @true if actually expanded. @remarks This function may deselect selected property, if any. Validation - failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. + failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. */ bool Expand( wxPGPropArg id ); @@ -304,7 +304,7 @@ public: Expands all items that can be expanded. @remarks This functions clears selection. Validation failure option - wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. selection + wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. */ bool ExpandAll( bool expand = true ); @@ -626,7 +626,7 @@ public: especially true if current mode is non-categoric. - This functions deselects selected property, if any. Validation - failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, ie. + failure option wxPG_VFB_STAY_IN_PROPERTY is not respected, i.e. selection is cleared even if editor had invalid value. Example of use: diff --git a/interface/wx/propgrid/propgridpagestate.h b/interface/wx/propgrid/propgridpagestate.h index 3f16b4faae..328af6c0c6 100644 --- a/interface/wx/propgrid/propgridpagestate.h +++ b/interface/wx/propgrid/propgridpagestate.h @@ -129,7 +129,7 @@ wxPG_ITERATOR_MASK_OP_PARENT = wxPG_ITERATOR_FLAGS_ALL, /** Combines all flags needed to iterate through visible properties - (ie. hidden properties and children of collapsed parents are skipped). + (i.e. hidden properties and children of collapsed parents are skipped). @hideinitializer */ wxPG_ITERATE_VISIBLE = wxPG_ITERATE_PROPERTIES | diff --git a/interface/wx/ribbon/art.h b/interface/wx/ribbon/art.h index febae28a1d..e22d092fea 100644 --- a/interface/wx/ribbon/art.h +++ b/interface/wx/ribbon/art.h @@ -278,7 +278,7 @@ public: @see SetColourScheme() */ - virtual void SetColour(int id, const wxColor& colour) = 0; + virtual void SetColour(int id, const wxColour& colour) = 0; /** @see wxRibbonArtProvider::GetColour() @@ -586,7 +586,7 @@ public: wxDC& dc, wxWindow* wnd, const wxRect& rect, - wxRibbonButtonBarButtonKind kind, + wxRibbonButtonKind kind, long state, const wxString& label, const wxBitmap& bitmap_large, @@ -862,7 +862,7 @@ public: /** Calculate the client size of a wxRibbonGallery control for a given size. This should act as the inverse to GetGallerySize(), and decrement - the given size by enough to fir the gallery border, buttons, and other + the given size by enough to fit the gallery border, buttons, and other chrome. @param dc @@ -950,7 +950,7 @@ public: virtual bool GetButtonBarButtonSize( wxDC& dc, wxWindow* wnd, - wxRibbonButtonBarButtonKind kind, + wxRibbonButtonKind kind, wxRibbonButtonBarButtonState size, const wxString& label, wxSize bitmap_size_large, @@ -1028,3 +1028,344 @@ public: */ virtual wxRect GetRibbonHelpButtonArea(const wxRect& rect) = 0; }; + + + +class wxRibbonMSWArtProvider : public wxRibbonArtProvider +{ +public: + wxRibbonMSWArtProvider(bool set_colour_scheme = true); + virtual ~wxRibbonMSWArtProvider(); + + wxRibbonArtProvider* Clone() const; + void SetFlags(long flags); + long GetFlags() const; + + int GetMetric(int id) const; + void SetMetric(int id, int new_val); + void SetFont(int id, const wxFont& font); + wxFont GetFont(int id) const; + wxColour GetColour(int id) const; + void SetColour(int id, const wxColour& colour); + void GetColourScheme(wxColour* primary, + wxColour* secondary, + wxColour* tertiary) const; + void SetColourScheme(const wxColour& primary, + const wxColour& secondary, + const wxColour& tertiary); + + int GetTabCtrlHeight( + wxDC& dc, + wxWindow* wnd, + const wxRibbonPageTabInfoArray& pages); + + void DrawTabCtrlBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawTab(wxDC& dc, + wxWindow* wnd, + const wxRibbonPageTabInfo& tab); + + void DrawTabSeparator( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + double visibility); + + void DrawPageBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawScrollButton( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + long style); + + void DrawPanelBackground( + wxDC& dc, + wxRibbonPanel* wnd, + const wxRect& rect); + + void DrawGalleryBackground( + wxDC& dc, + wxRibbonGallery* wnd, + const wxRect& rect); + + void DrawGalleryItemBackground( + wxDC& dc, + wxRibbonGallery* wnd, + const wxRect& rect, + wxRibbonGalleryItem* item); + + void DrawMinimisedPanel( + wxDC& dc, + wxRibbonPanel* wnd, + const wxRect& rect, + wxBitmap& bitmap); + + void DrawButtonBarBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawButtonBarButton( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + wxRibbonButtonKind kind, + long state, + const wxString& label, + const wxBitmap& bitmap_large, + const wxBitmap& bitmap_small); + + void DrawToolBarBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawToolGroupBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawTool( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + const wxBitmap& bitmap, + wxRibbonButtonKind kind, + long state); + + void DrawToggleButton( + wxDC& dc, + wxRibbonBar* wnd, + const wxRect& rect, + wxRibbonDisplayMode mode); + + void DrawHelpButton(wxDC& dc, + wxRibbonBar* wnd, + const wxRect& rect); + + void GetBarTabWidth( + wxDC& dc, + wxWindow* wnd, + const wxString& label, + const wxBitmap& bitmap, + int* ideal, + int* small_begin_need_separator, + int* small_must_have_separator, + int* minimum); + + wxSize GetScrollButtonMinimumSize( + wxDC& dc, + wxWindow* wnd, + long style); + + wxSize GetPanelSize( + wxDC& dc, + const wxRibbonPanel* wnd, + wxSize client_size, + wxPoint* client_offset); + + wxSize GetPanelClientSize( + wxDC& dc, + const wxRibbonPanel* wnd, + wxSize size, + wxPoint* client_offset); + + wxRect GetPanelExtButtonArea( + wxDC& dc, + const wxRibbonPanel* wnd, + wxRect rect); + + wxSize GetGallerySize( + wxDC& dc, + const wxRibbonGallery* wnd, + wxSize client_size); + + wxSize GetGalleryClientSize( + wxDC& dc, + const wxRibbonGallery* wnd, + wxSize size, + wxPoint* client_offset, + wxRect* scroll_up_button, + wxRect* scroll_down_button, + wxRect* extension_button); + + wxRect GetPageBackgroundRedrawArea( + wxDC& dc, + const wxRibbonPage* wnd, + wxSize page_old_size, + wxSize page_new_size); + + bool GetButtonBarButtonSize( + wxDC& dc, + wxWindow* wnd, + wxRibbonButtonKind kind, + wxRibbonButtonBarButtonState size, + const wxString& label, + wxSize bitmap_size_large, + wxSize bitmap_size_small, + wxSize* button_size, + wxRect* normal_region, + wxRect* dropdown_region); + + wxSize GetMinimisedPanelMinimumSize( + wxDC& dc, + const wxRibbonPanel* wnd, + wxSize* desired_bitmap_size, + wxDirection* expanded_panel_direction); + + wxSize GetToolSize( + wxDC& dc, + wxWindow* wnd, + wxSize bitmap_size, + wxRibbonButtonKind kind, + bool is_first, + bool is_last, + wxRect* dropdown_region); + + wxRect GetBarToggleButtonArea(const wxRect& rect); + + wxRect GetRibbonHelpButtonArea(const wxRect& rect); +}; + + +class wxRibbonAUIArtProvider : public wxRibbonMSWArtProvider +{ +public: + wxRibbonAUIArtProvider(); + virtual ~wxRibbonAUIArtProvider(); + + wxRibbonArtProvider* Clone() const; + + wxColour GetColour(int id) const; + void SetColour(int id, const wxColour& colour); + void SetColourScheme(const wxColour& primary, + const wxColour& secondary, + const wxColour& tertiary); + void SetFont(int id, const wxFont& font); + + wxSize GetScrollButtonMinimumSize( + wxDC& dc, + wxWindow* wnd, + long style); + + void DrawScrollButton( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + long style); + + wxSize GetPanelSize( + wxDC& dc, + const wxRibbonPanel* wnd, + wxSize client_size, + wxPoint* client_offset); + + wxSize GetPanelClientSize( + wxDC& dc, + const wxRibbonPanel* wnd, + wxSize size, + wxPoint* client_offset); + + wxRect GetPanelExtButtonArea( + wxDC& dc, + const wxRibbonPanel* wnd, + wxRect rect); + + void DrawTabCtrlBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + int GetTabCtrlHeight( + wxDC& dc, + wxWindow* wnd, + const wxRibbonPageTabInfoArray& pages); + + void GetBarTabWidth( + wxDC& dc, + wxWindow* wnd, + const wxString& label, + const wxBitmap& bitmap, + int* ideal, + int* small_begin_need_separator, + int* small_must_have_separator, + int* minimum); + + void DrawTab(wxDC& dc, + wxWindow* wnd, + const wxRibbonPageTabInfo& tab); + + void DrawTabSeparator( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + double visibility); + + void DrawPageBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawPanelBackground( + wxDC& dc, + wxRibbonPanel* wnd, + const wxRect& rect); + + void DrawMinimisedPanel( + wxDC& dc, + wxRibbonPanel* wnd, + const wxRect& rect, + wxBitmap& bitmap); + + void DrawGalleryBackground( + wxDC& dc, + wxRibbonGallery* wnd, + const wxRect& rect); + + void DrawGalleryItemBackground( + wxDC& dc, + wxRibbonGallery* wnd, + const wxRect& rect, + wxRibbonGalleryItem* item); + + void DrawButtonBarBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawButtonBarButton( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + wxRibbonButtonKind kind, + long state, + const wxString& label, + const wxBitmap& bitmap_large, + const wxBitmap& bitmap_small); + + void DrawToolBarBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawToolGroupBackground( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect); + + void DrawTool( + wxDC& dc, + wxWindow* wnd, + const wxRect& rect, + const wxBitmap& bitmap, + wxRibbonButtonKind kind, + long state); + +}; diff --git a/interface/wx/ribbon/bar.h b/interface/wx/ribbon/bar.h index 7b0926ef2c..3d98f0ca76 100644 --- a/interface/wx/ribbon/bar.h +++ b/interface/wx/ribbon/bar.h @@ -6,6 +6,22 @@ /////////////////////////////////////////////////////////////////////////////// +enum wxRibbonBarOption +{ + wxRIBBON_BAR_SHOW_PAGE_LABELS, + wxRIBBON_BAR_SHOW_PAGE_ICONS, + wxRIBBON_BAR_FLOW_HORIZONTAL, + wxRIBBON_BAR_FLOW_VERTICAL, + wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS, + wxRIBBON_BAR_SHOW_PANEL_MINIMISE_BUTTONS, + wxRIBBON_BAR_ALWAYS_SHOW_TABS, + wxRIBBON_BAR_SHOW_TOGGLE_BUTTON, + wxRIBBON_BAR_SHOW_HELP_BUTTON, + wxRIBBON_BAR_DEFAULT_STYLE, + wxRIBBON_BAR_FOLDBAR_STYLE +}; + + /** The possible display modes of the panel area of a wxRibbonBar widget. @@ -68,6 +84,35 @@ public: void SetPage(wxRibbonPage* page); }; + +wxEventType wxEVT_RIBBONBAR_PAGE_CHANGED; +wxEventType wxEVT_RIBBONBAR_PAGE_CHANGING; +wxEventType wxEVT_RIBBONBAR_TAB_MIDDLE_DOWN; +wxEventType wxEVT_RIBBONBAR_TAB_MIDDLE_UP; +wxEventType wxEVT_RIBBONBAR_TAB_RIGHT_DOWN; +wxEventType wxEVT_RIBBONBAR_TAB_RIGHT_UP; +wxEventType wxEVT_RIBBONBAR_TAB_LEFT_DCLICK; +wxEventType wxEVT_RIBBONBAR_TOGGLED; +wxEventType wxEVT_RIBBONBAR_HELP_CLICK; + + +class wxRibbonPageTabInfo +{ +public: + wxRect rect; + wxRibbonPage *page; + int ideal_width; + int small_begin_need_separator_width; + int small_must_have_separator_width; + int minimum_width; + bool active; + bool hovered; + bool highlight; + bool shown; +}; + + + /** @class wxRibbonBar diff --git a/interface/wx/ribbon/buttonbar.h b/interface/wx/ribbon/buttonbar.h index 6eebd7ca91..27ea3d46ce 100644 --- a/interface/wx/ribbon/buttonbar.h +++ b/interface/wx/ribbon/buttonbar.h @@ -69,7 +69,12 @@ enum wxRibbonButtonBarButtonState Only applicable to dropdown and hybrid buttons. */ wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE = 1 << 6, - + + /** + A mask to extract active flags + */ + wxRIBBON_BUTTONBAR_BUTTON_ACTIVE_MASK = wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE | wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE, + /** The button is disabled. Hover flags may still be set when a button is disabled, but should be ignored during drawing if the button is @@ -422,7 +427,7 @@ public: @since 2.9.5 */ - virtual int GetItemId(wxRibbonButtonBarButtonBase *) const; + virtual int GetItemId(wxRibbonButtonBarButtonBase *item) const; /** Calculate button layouts and positions. @@ -562,3 +567,7 @@ public: */ bool PopupMenu(wxMenu* menu); }; + + +wxEventType wxEVT_RIBBONBUTTONBAR_CLICKED; +wxEventType wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED; diff --git a/interface/wx/ribbon/gallery.h b/interface/wx/ribbon/gallery.h index e1525ee206..2b34f83a64 100644 --- a/interface/wx/ribbon/gallery.h +++ b/interface/wx/ribbon/gallery.h @@ -297,3 +297,9 @@ public: */ void SetGalleryItem(wxRibbonGalleryItem* item); }; + + +wxEventType wxEVT_RIBBONGALLERY_HOVER_CHANGED; +wxEventType wxEVT_RIBBONGALLERY_SELECTED; +wxEventType wxEVT_RIBBONGALLERY_CLICKED; + diff --git a/interface/wx/ribbon/panel.h b/interface/wx/ribbon/panel.h index a7cae829f4..ca83991a55 100644 --- a/interface/wx/ribbon/panel.h +++ b/interface/wx/ribbon/panel.h @@ -5,6 +5,18 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// + +enum wxRibbonPanelOption +{ + wxRIBBON_PANEL_NO_AUTO_MINIMISE, + wxRIBBON_PANEL_EXT_BUTTON, + wxRIBBON_PANEL_MINIMISE_BUTTON, + wxRIBBON_PANEL_STRETCH, + wxRIBBON_PANEL_FLEXIBLE, + wxRIBBON_PANEL_DEFAULT_STYLE +}; + + /** @class wxRibbonPanelEvent @@ -27,7 +39,7 @@ public: */ wxRibbonPanelEvent(wxEventType command_type = wxEVT_NULL, int win_id = 0, - wxRibbonPanel* panel = NULL) + wxRibbonPanel* panel = NULL); /** Returns the panel relating to this event. @@ -40,6 +52,9 @@ public: void SetPanel(wxRibbonPanel* page); }; +wxEventType wxEVT_RIBBONPANEL_EXTBUTTON_ACTIVATED; + + /** @class wxRibbonPanel diff --git a/interface/wx/ribbon/toolbar.h b/interface/wx/ribbon/toolbar.h index c73f96380c..588b6b3ea6 100644 --- a/interface/wx/ribbon/toolbar.h +++ b/interface/wx/ribbon/toolbar.h @@ -5,6 +5,7 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// + /** @class wxRibbonToolBar @@ -143,7 +144,7 @@ public: const wxBitmap& bitmap_disabled = wxNullBitmap, const wxString& help_string = wxEmptyString, wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - wxObject* client_data = NULL); + wxObject* clientData = NULL); /** Add a separator to the tool bar. @@ -248,7 +249,7 @@ public: const wxBitmap& bitmap_disabled = wxNullBitmap, const wxString& help_string = wxEmptyString, wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - wxObject* client_data = NULL); + wxObject* clientData = NULL); /** Insert a separator to the tool bar at the specified position. @@ -492,3 +493,20 @@ public: */ virtual void ToggleTool(int tool_id, bool checked); }; + + +class wxRibbonToolBarEvent : public wxCommandEvent +{ +public: + wxRibbonToolBarEvent(wxEventType command_type = wxEVT_NULL, + int win_id = 0, + wxRibbonToolBar* bar = NULL); + + wxRibbonToolBar* GetBar(); + void SetBar(wxRibbonToolBar* bar); + bool PopupMenu(wxMenu* menu); +}; + + +wxEventType wxEVT_RIBBONTOOLBAR_CLICKED; +wxEventType wxEVT_RIBBONTOOLBAR_DROPDOWN_CLICKED; diff --git a/interface/wx/richtext/richtextformatdlg.h b/interface/wx/richtext/richtextformatdlg.h index 43a7a3cb75..6fc9e34089 100644 --- a/interface/wx/richtext/richtextformatdlg.h +++ b/interface/wx/richtext/richtextformatdlg.h @@ -99,10 +99,10 @@ public: For example: @code wxRichTextRange range; - if (m_richTextCtrl-HasSelection()) - range = m_richTextCtrl-GetSelectionRange(); + if (m_richTextCtrl->HasSelection()) + range = m_richTextCtrl->GetSelectionRange(); else - range = wxRichTextRange(0, m_richTextCtrl-GetLastPosition()+1); + range = wxRichTextRange(0, m_richTextCtrl->GetLastPosition()+1); int pages = wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_INDENTS_SPACING| \ wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS; diff --git a/interface/wx/settings.h b/interface/wx/settings.h index ff4176bb37..11f913a2f6 100644 --- a/interface/wx/settings.h +++ b/interface/wx/settings.h @@ -265,7 +265,7 @@ enum wxSystemScreenType @see wxFont, wxColour, wxSystemOptions */ -class wxSystemSettings : public wxObject +class wxSystemSettings { public: /** diff --git a/interface/wx/sizer.h b/interface/wx/sizer.h index 38c2c66eb7..f1e3295f52 100644 --- a/interface/wx/sizer.h +++ b/interface/wx/sizer.h @@ -50,8 +50,8 @@ @section wxsizer_flags wxSizer flags - The "flag" argument accepted by wxSizeItem constructors and other - functions, e.g. wxSizer::Add(), is OR-combination of the following flags. + The "flag" argument accepted by wxSizerItem constructors and other + functions, e.g. wxSizer::Add(), is an OR-combination of the following flags. Two main behaviours are defined using these flags. One is the border around a window: the border parameter determines the border width whereas the flags given here determine which side(s) of the item that the border will diff --git a/src/osx/palette.cpp b/src/osx/palette.cpp index 86ced8bca7..428db12d2a 100644 --- a/src/osx/palette.cpp +++ b/src/osx/palette.cpp @@ -89,7 +89,7 @@ bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *gre M_PALETTEDATA->m_palette[i].Set( red[i] , green[i] , blue[i] ) ; } - return false; + return true; } int wxPalette::GetPixel(unsigned char red, unsigned char green, unsigned char blue) const