wxPGCachedString m_strbool;
wxPGCachedString m_strlist;
+ wxPGCachedString m_strDefaultValue;
wxPGCachedString m_strMin;
wxPGCachedString m_strMax;
wxPGCachedString m_strUnits;
int m_extraStyle; // global extra style
-#ifdef __WXDEBUG__
int m_warnings;
-#endif
int HasExtraStyle( int style ) const { return (m_extraStyle & style); }
};
#define wxPGVariant_Bool(A) (A?wxPGVariant_True:wxPGVariant_False)
+// When wxPG is loaded dynamically after the application is already running
+// then the built-in module system won't pick this one up. Add it manually.
+WXDLLIMPEXP_PROPGRID void wxPGInitResourceModule();
+
#endif // !SWIG
// -----------------------------------------------------------------------
friend class wxPropertyGridManager;
friend class wxPGCanvas;
-#ifndef SWIG
DECLARE_DYNAMIC_CLASS(wxPropertyGrid)
-#endif
public:
-#ifdef SWIG
- %pythonAppend wxPropertyGrid {
- self._setOORInfo(self)
- self.DoDefaultTypeMappings()
- self.edited_objects = {}
- self.DoDefaultValueTypeMappings()
- if not hasattr(self.__class__,'_vt2setter'):
- self.__class__._vt2setter = {}
- }
- %pythonAppend wxPropertyGrid() ""
-
- wxPropertyGrid( wxWindow *parent, wxWindowID id = wxID_ANY,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxPG_DEFAULT_STYLE,
- const wxChar* name = wxPyPropertyGridNameStr );
- %RenameCtor(PrePropertyGrid, wxPropertyGrid());
-#else
-
+#ifndef SWIG
/**
Two step constructor.
wxPropertyGrid
*/
wxPropertyGrid();
+#endif
/** The default constructor. The styles to be used are styles valid for
the wxWindow and wxScrolledWindow.
/** Destructor */
virtual ~wxPropertyGrid();
-#endif
/** Adds given key combination to trigger given action.
/** Returns current vertical spacing. */
int GetVerticalSpacing() const { return (int)m_vspacing; }
+ /**
+ Returns @true if a property editor control has focus.
+ */
+ bool IsEditorFocused() const;
+
/** Returns true if editor's value was marked modified.
*/
bool IsEditorsValueModified() const
{ return ( m_iFlags & wxPG_FL_VALUE_MODIFIED ) ? true : false; }
- /** Returns information about arbitrary position in the grid.
+ /**
+ Returns information about arbitrary position in the grid.
- For wxPropertyGridHitTestResult definition, see
- wxPropertyGridPageState::HitTest().
+ @param pt
+ Coordinates in the virtual grid space. You may need to use
+ wxScrolledWindow::CalcScrolledPosition() for translating
+ wxPropertyGrid client coordinates into something this member
+ function can use.
*/
wxPropertyGridHitTestResult HitTest( const wxPoint& pt ) const;
*/
bool IsFrozen() const { return (m_frozen>0)?true:false; }
+ /**
+ Call this any time your code causes wxPropertyGrid's top-level parent
+ to change.
+
+ @param newTLP
+ New top-level parent that is about to be set. Old top-level parent
+ window should still exist as the current one.
+
+ @remarks This function is automatically called from wxPropertyGrid::
+ Reparent() and wxPropertyGridManager::Reparent(). You only
+ need to use it if you reparent wxPropertyGrid indirectly.
+ */
+ void OnTLPChanging( wxWindow* newTLP );
+
/** Redraws given property.
*/
virtual void RefreshProperty( wxPGProperty* p );
Pointer to the editor class instance that should be used.
*/
static wxPGEditor* RegisterEditorClass( wxPGEditor* editor,
- bool noDefCheck = false );
+ bool noDefCheck = false )
+ {
+ return DoRegisterEditorClass(editor, wxEmptyString, noDefCheck);
+ }
+
+ static wxPGEditor* DoRegisterEditorClass( wxPGEditor* editorClass,
+ const wxString& editorName,
+ bool noDefCheck = false );
#endif
/** Resets all colours to the original system values.
virtual void SetWindowStyleFlag( long style );
+ void DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 );
+
+ void DrawItem( wxPGProperty* p )
+ {
+ DrawItems(p,p);
+ }
+
+ virtual void DrawItemAndChildren( wxPGProperty* p );
+
+ /**
+ Draws item, children, and consequtive parents as long as category is
+ not met.
+ */
+ void DrawItemAndValueRelated( wxPGProperty* p );
+
protected:
/**
virtual void Freeze();
virtual void SetExtraStyle( long exStyle );
virtual void Thaw();
-
+ virtual bool Reparent( wxWindowBase *newParent );
protected:
virtual wxSize DoGetBestSize() const;
// handling mess).
wxWindow* m_curFocused;
- // wxPGTLWHandler
- wxEvtHandler* m_tlwHandler;
-
- // Top level parent
+ // Last known top-level parent
wxWindow* m_tlp;
// Sort function
void OnSysColourChanged( wxSysColourChangedEvent &event );
+ void OnTLPClose( wxCloseEvent& event );
+
protected:
/**
*/
void CorrectEditorWidgetPosY();
-#ifdef __WXDEBUG__
- void _log_items();
- void OnScreenNote( const wxChar* format, ... );
-#endif
-
/** Deselect current selection, if any. Returns true if success
(ie. validator did not intercept). */
bool DoClearSelection();
int DoDrawItems( wxDC& dc,
- const wxPGProperty* first_item,
- const wxPGProperty* last_item,
- const wxRect* clip_rect,
+ const wxRect* clipRect,
bool isBuffered ) const;
/** Draws an expand/collapse (ie. +/-) button.
void DrawItems( wxDC& dc, unsigned int topitemy, unsigned int bottomitemy,
const wxRect* clip_rect = (const wxRect*) NULL );
- void DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 );
-
- void DrawItem( wxPGProperty* p )
- {
- DrawItems(p,p);
- }
-
- virtual void DrawItemAndChildren( wxPGProperty* p );
-
- /**
- Draws item, children, and consequtive parents as long as category is
- not met.
- */
- void DrawItemAndValueRelated( wxPGProperty* p );
-
// Translate wxKeyEvent to wxPG_ACTION_XXX
int KeyEventToActions(wxKeyEvent &event, int* pSecond) const;
void ImprovedClientToScreen( int* px, int* py );
- // Returns True if editor control has focus
- bool IsEditorFocused() const;
-
// Called by focus event handlers. newFocused is the window that becomes
// focused.
void HandleFocusChange( wxWindow* newFocused );
return 0;
}
+inline void wxPGProperty::SetDefaultValue( wxVariant& value )
+{
+ SetAttribute(wxPG_ATTR_DEFAULT_VALUE, value);
+}
+
inline void wxPGProperty::SetEditor( const wxString& editorName )
{
m_customEditor = wxPropertyGridInterface::GetEditorByName(editorName);
#ifndef SWIG
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_SELECTED, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGING, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGED, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_HIGHLIGHTED, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_RIGHT_CLICK, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_PAGE_CHANGED, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_COLLAPSED, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_EXPANDED, wxPropertyGridEvent )
-wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_DOUBLE_CLICK, wxPropertyGridEvent )
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_SELECTED, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGING, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGED, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_HIGHLIGHTED, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_RIGHT_CLICK, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_PAGE_CHANGED, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_COLLAPSED, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_EXPANDED, wxPropertyGridEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_DOUBLE_CLICK, wxPropertyGridEvent );
#else
enum {