extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridNameStr[];
#endif
+class wxPGComboBox;
// -----------------------------------------------------------------------
// Global variables
#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
return m_wndEditor2;
}
+ // Events from editor controls are forward to this function
+ void HandleCustomEditorEvent( wxEvent &event );
+
#ifndef SWIG
/**
// 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; }
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.
*/
*/
bool UnfocusEditor();
+ virtual void SetWindowStyleFlag( long style );
+
protected:
/**
// 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); }
protected:
+ virtual wxSize DoGetBestSize() const;
#ifndef wxPG_ICON_WIDTH
wxBitmap *m_expandbmp, *m_collbmp;
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.
// -----------------------------------------------------------------------
+#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,