X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e2ca6599064412d76ad84076b8ba90db8cfef65c..0dd9646ea8b9e6f3a5fa8c42b6a4954cf8e3a48d:/include/wx/propgrid/propgrid.h diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 1dd48d53d4..650bacbb41 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -27,6 +27,7 @@ extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridNameStr[]; #endif +class wxPGComboBox; // ----------------------------------------------------------------------- // Global variables @@ -494,8 +495,8 @@ enum wxPG_KEYBOARD_ACTIONS #define wxPG_MAN_FL_PAGE_INSERTED 0x02000000 // Active editor control is abnormally large #define wxPG_FL_ABNORMAL_EDITOR 0x04000000 -// Recursion guard for OnCustomEditorEvent -#define wxPG_FL_IN_ONCUSTOMEDITOREVENT 0x08000000 +// Recursion guard for HandleCustomEditorEvent +#define wxPG_FL_IN_HANDLECUSTOMEDITOREVENT 0x08000000 #define wxPG_FL_VALUE_CHANGE_IN_EVENT 0x10000000 // Editor control width should not change on resize #define wxPG_FL_FIXED_WIDTH_EDITOR 0x20000000 @@ -1178,6 +1179,9 @@ public: return m_wndEditor2; } + // Events from editor controls are forward to this function + void HandleCustomEditorEvent( wxEvent &event ); + #ifndef SWIG /** @@ -1195,22 +1199,6 @@ public: // Mostly useful for page switching. void SwitchState( wxPropertyGridPageState* pNewState ); - /** - When creating custom property editors, connect required editor events to - this function. For instance: - - @code - control->Connect(control->GetId(), wxEVT_COMMAND_TEXT_UPDATED, - wxEventHandler(wxPropertyGrid::OnCustomEditorEvent), - NULL, propgrid); - @endcode - - @remarks You should never need to call this function directly! - - @see wxPGEditor::CreateControls(), wxEvtHandler::Connect() - */ - void OnCustomEditorEvent( wxEvent &event ); - long GetInternalFlags() const { return m_iFlags; } bool HasInternalFlag( long flag ) const { return (m_iFlags & flag) ? true : false; } @@ -1219,8 +1207,11 @@ public: void IncFrozen() { m_frozen++; } void DecFrozen() { m_frozen--; } - void OnComboItemPaint( wxPGCustomComboControl* pCb,int item,wxDC& dc, - wxRect& rect,int flags ); + void OnComboItemPaint( const wxPGComboBox* pCb, + int item, + wxDC* pDc, + wxRect& rect, + int flags ); /** Standardized double-to-string conversion. */ @@ -1323,6 +1314,8 @@ public: */ bool UnfocusEditor(); + virtual void SetWindowStyleFlag( long style ); + protected: /** @@ -1371,7 +1364,6 @@ public: // Overridden functions. virtual bool Destroy(); - virtual wxSize DoGetBestSize() const; // Returns property at given y coordinate (relative to grid's top left). wxPGProperty* GetItemAtY( int y ) const { return DoGetItemAtY(y); } @@ -1387,6 +1379,7 @@ public: protected: + virtual wxSize DoGetBestSize() const; #ifndef wxPG_ICON_WIDTH wxBitmap *m_expandbmp, *m_collbmp; @@ -1788,9 +1781,6 @@ protected: void CustomSetCursor( int type, bool override = false ); - virtual bool ProcessEvent(wxEvent& event); - virtual void SetWindowStyleFlag( long style ); - /** Repositions scrollbar and underlying panel according to changed virtual size. @@ -1866,22 +1856,20 @@ inline bool wxPGProperty::SetMaxLength( int maxLen ) // ----------------------------------------------------------------------- +#define wxPG_BASE_EVT_PRE_ID 1775 #ifndef SWIG -#define wxPG_BASE_EVT_PRE_ID 1775 +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_SELECTED; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_CHANGING; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_CHANGED; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_HIGHLIGHTED; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_RIGHT_CLICK; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_PAGE_CHANGED; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_ITEM_COLLAPSED; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_ITEM_EXPANDED; +extern WXDLLIMPEXP_PROPGRID const wxEventType wxEVT_PG_DOUBLE_CLICK; -BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_SELECTED, wxPG_BASE_EVT_PRE_ID) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGING, wxPG_BASE_EVT_PRE_ID+1) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGED, wxPG_BASE_EVT_PRE_ID+2) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_HIGHLIGHTED, wxPG_BASE_EVT_PRE_ID+3) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_RIGHT_CLICK, wxPG_BASE_EVT_PRE_ID+4) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_PAGE_CHANGED, wxPG_BASE_EVT_PRE_ID+5) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_COLLAPSED, wxPG_BASE_EVT_PRE_ID+6) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_EXPANDED, wxPG_BASE_EVT_PRE_ID+7) - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_PROPGRID, wxEVT_PG_DOUBLE_CLICK, wxPG_BASE_EVT_PRE_ID+8) -END_DECLARE_EVENT_TYPES() #else enum { wxEVT_PG_SELECTED = wxPG_BASE_EVT_PRE_ID,