@class wxPropertyGridManager
wxPropertyGridManager is an efficient multi-page version of wxPropertyGrid,
- which can optionally have toolbar for mode and page selection, and a help text
- box.
+ which can optionally have toolbar for mode and page selection, a help text
+ box, and a header.
wxPropertyGridManager inherits from wxPropertyGridInterface, and as such
it has most property manipulation functions. However, only some of them affect
wxPropertyGridPage* page;
- page = pgMan->AddPage(wxT("First Page"));
+ page = pgMan->AddPage("First Page");
- page->Append( new wxPropertyCategory(wxT("Category A1")) );
+ page->Append( new wxPropertyCategory("Category A1") );
- page->Append( new wxIntProperty(wxT("Number"),wxPG_LABEL,1) );
+ page->Append( new wxIntProperty("Number",wxPG_LABEL,1) );
- page->Append( new wxColourProperty(wxT("Colour"),wxPG_LABEL,*wxWHITE) );
+ page->Append( new wxColourProperty("Colour",wxPG_LABEL,*wxWHITE) );
- page = pgMan->AddPage(wxT("Second Page"));
+ page = pgMan->AddPage("Second Page");
- page->Append( wxT("Text"),wxPG_LABEL,wxT("(no text)") );
+ page->Append( "Text",wxPG_LABEL,"(no text)" );
- page->Append( new wxFontProperty(wxT("Font"),wxPG_LABEL) );
+ page->Append( new wxFontProperty("Font",wxPG_LABEL) );
+
+ // Display a header above the grid
+ pgMan->ShowHeader();
@endcode
@section propgridmanager_window_styles_ Window Styles
*/
bool IsPageModified( size_t index ) const;
+ /**
+ Returns true if property is selected. Since selection is page
+ based, this function checks every page in the manager.
+ */
+ virtual bool IsPropertySelected( wxPGPropArg id ) const;
+
/**
Removes a page.
/** Select and displays a given page. */
void SelectPage( wxPropertyGridPage* page );
- /** Select a property. */
+ /**
+ Select a property.
+
+ @see wxPropertyGrid::SelectProperty(),
+ wxPropertyGridInterface::ClearSelection()
+ */
bool SelectProperty( wxPGPropArg id, bool focus = false );
/**
Sets number of columns on given page (default is current page).
+
+ @remarks If you use header, then you should always use this
+ member function to set the column count, instead of
+ ones present in wxPropertyGrid or wxPropertyGridPage.
*/
void SetColumnCount( int colCount, int page = -1 );
+ /**
+ Sets a column title. Default title for column 0 is "Property",
+ and "Value" for column 1.
+
+ @remarks If header is not shown yet, then calling this
+ member function will make it visible.
+ */
+ void SetColumnTitle( int idx, const wxString& title );
+
/**
Sets label and text in description box.
*/
*/
void SetSplitterLeft( bool subProps = false, bool allPages = true );
- /** Sets splitter position on individual page. */
+ /**
+ Sets splitter position on individual page.
+
+ @remarks If you use header, then you should always use this
+ member function to set the splitter position, instead of
+ ones present in wxPropertyGrid or wxPropertyGridPage.
+ */
void SetPageSplitterPosition( int page, int pos, int column = 0 );
/**
Sets splitter position for all pages.
- @remarks Splitter position cannot exceed grid size, and therefore setting
- it during form creation may fail as initial grid size is often
- smaller than desired splitter position, especially when sizers
- are being used.
+ @remarks Splitter position cannot exceed grid size, and therefore
+ setting it during form creation may fail as initial grid
+ size is often smaller than desired splitter position,
+ especially when sizers are being used.
+
+ If you use header, then you should always use this
+ member function to set the splitter position, instead of
+ ones present in wxPropertyGrid or wxPropertyGridPage.
*/
void SetSplitterPosition( int pos, int column = 0 );
/** Synonyme for SelectPage(name). */
void SetStringSelection( const wxChar* name );
+ /**
+ Show or hide the property grid header control. It is hidden
+ by the default.
+
+ @remarks Grid may look better if you use wxPG_NO_INTERNAL_BORDER
+ window style when showing a header.
+ */
+ void ShowHeader(bool show = true);
+
protected:
//
//
/**
- Creates property grid for the manager.
- Override to use subclassed wxPropertyGrid.
+ Creates property grid for the manager. Reimplement in derived class to
+ use subclassed wxPropertyGrid. However, if you you do this then you
+ must also use the two-step construction (ie. default constructor and
+ Create() instead of constructor with arguments) when creating the
+ manager.
*/
virtual wxPropertyGrid* CreatePropertyGrid() const;
};