Moved the [Set|Get]Client[Data|Object] and such out of wxWindowBase
and into a mixin class. Mixed it with wxEvtHandler. Regenerated files lists and makefiles. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -49,7 +49,6 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLEXPORT wxCaret;
|
||||
class WXDLLEXPORT wxClientData;
|
||||
class WXDLLEXPORT wxControl;
|
||||
class WXDLLEXPORT wxCursor;
|
||||
class WXDLLEXPORT wxDC;
|
||||
@@ -74,39 +73,6 @@ WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode, class
|
||||
|
||||
WXDLLEXPORT_DATA(extern wxWindowList) wxTopLevelWindows;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// helper classes used by [SG]etClientObject/Data
|
||||
//
|
||||
// TODO move into a separate header?
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// what kind of client data do we have?
|
||||
enum wxClientDataType
|
||||
{
|
||||
wxClientData_None, // we don't know yet because we don't have it at all
|
||||
wxClientData_Object, // our client data is typed and we own it
|
||||
wxClientData_Void // client data is untyped and we don't own it
|
||||
};
|
||||
|
||||
class wxClientData
|
||||
{
|
||||
public:
|
||||
wxClientData() { }
|
||||
virtual ~wxClientData() { }
|
||||
};
|
||||
|
||||
class wxStringClientData : public wxClientData
|
||||
{
|
||||
public:
|
||||
wxStringClientData() { }
|
||||
wxStringClientData( const wxString &data ) : m_data(data) { }
|
||||
void SetData( const wxString &data ) { m_data = data; }
|
||||
const wxString& GetData() const { return m_data; }
|
||||
|
||||
private:
|
||||
wxString m_data;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxWindowBase is the base class for all GUI controls/widgets, this is the public
|
||||
// interface of this class.
|
||||
@@ -447,18 +413,6 @@ public:
|
||||
virtual wxValidator *GetValidator() { return m_windowValidator; }
|
||||
#endif // wxUSE_VALIDATORS
|
||||
|
||||
// client data
|
||||
// -----------
|
||||
|
||||
// each window may have associated client data: either a pointer to
|
||||
// wxClientData object in which case it is managed by the window (i.e.
|
||||
// it will delete the data when it's destroyed) or an untyped pointer
|
||||
// which won't be deleted by the window - but not both of them
|
||||
void SetClientObject( wxClientData *data ) { DoSetClientObject(data); }
|
||||
wxClientData *GetClientObject() const { return DoGetClientObject(); }
|
||||
|
||||
void SetClientData( void *data ) { DoSetClientData(data); }
|
||||
void *GetClientData() const { return DoGetClientData(); }
|
||||
|
||||
// dialog oriented functions
|
||||
// -------------------------
|
||||
@@ -842,17 +796,6 @@ protected:
|
||||
wxAcceleratorTable m_acceleratorTable;
|
||||
#endif // wxUSE_ACCEL
|
||||
|
||||
// user data associated with the window: either an object which will be
|
||||
// deleted by the window when it's deleted or some raw pointer which we do
|
||||
// nothing with - only one type of data can be used with the given window
|
||||
// (i.e. you cannot set the void data and then associate the window with
|
||||
// wxClientData or vice versa)
|
||||
union
|
||||
{
|
||||
wxClientData *m_clientObject;
|
||||
void *m_clientData;
|
||||
};
|
||||
|
||||
// the tooltip for this window (may be NULL)
|
||||
#if wxUSE_TOOLTIPS
|
||||
wxToolTip *m_tooltip;
|
||||
@@ -969,20 +912,10 @@ protected:
|
||||
virtual bool DoPopupMenu( wxMenu *menu, int x, int y ) = 0;
|
||||
#endif // wxUSE_MENUS
|
||||
|
||||
// client data accessors
|
||||
virtual void DoSetClientObject( wxClientData *data );
|
||||
virtual wxClientData *DoGetClientObject() const;
|
||||
|
||||
virtual void DoSetClientData( void *data );
|
||||
virtual void *DoGetClientData() const;
|
||||
|
||||
// Makes an adjustment to the window position (for example, a frame that has
|
||||
// a toolbar that it manages itself).
|
||||
virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags);
|
||||
|
||||
// what kind of data do we have?
|
||||
wxClientDataType m_clientDataType;
|
||||
|
||||
private:
|
||||
// contains the last id generated by NewControlId
|
||||
static int ms_lastControlId;
|
||||
|
Reference in New Issue
Block a user