switching from native rtti to wxrtti

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2006-12-08 15:06:38 +00:00
parent 589abe2cdb
commit bf9a1615ed
5 changed files with 47 additions and 18 deletions

View File

@@ -487,12 +487,13 @@ Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxS
ControlActionUPP GetwxMacLiveScrollbarActionProc(); ControlActionUPP GetwxMacLiveScrollbarActionProc();
class wxMacControl class wxMacControl : public wxObject
{ {
public : public :
wxMacControl( wxWindow* peer , bool isRootControl = false ); wxMacControl( wxWindow* peer , bool isRootControl = false );
wxMacControl( wxWindow* peer , ControlRef control ); wxMacControl( wxWindow* peer , ControlRef control );
wxMacControl( wxWindow* peer , WXWidget control ); wxMacControl( wxWindow* peer , WXWidget control );
wxMacControl() ;
virtual ~wxMacControl(); virtual ~wxMacControl();
void Init(); void Init();
@@ -656,6 +657,7 @@ protected :
wxWindow* m_peer; wxWindow* m_peer;
bool m_needsFocusRect; bool m_needsFocusRect;
bool m_isRootControl; bool m_isRootControl;
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacControl)
}; };
// ============================================================================ // ============================================================================
@@ -669,6 +671,7 @@ class wxMacDataBrowserControl : public wxMacControl
{ {
public : public :
wxMacDataBrowserControl( wxWindow* peer, const wxPoint& pos, const wxSize& size, long style); wxMacDataBrowserControl( wxWindow* peer, const wxPoint& pos, const wxSize& size, long style);
wxMacDataBrowserControl() {}
OSStatus SetCallbacks( const DataBrowserCallbacks *callbacks ); OSStatus SetCallbacks( const DataBrowserCallbacks *callbacks );
@@ -793,6 +796,7 @@ protected :
virtual Boolean CompareItems(DataBrowserItemID itemOneID, virtual Boolean CompareItems(DataBrowserItemID itemOneID,
DataBrowserItemID itemTwoID, DataBrowserItemID itemTwoID,
DataBrowserPropertyID sortProperty) = 0; DataBrowserPropertyID sortProperty) = 0;
DECLARE_ABSTRACT_CLASS(wxMacDataBrowserControl)
}; };
// ============================================================================ // ============================================================================
@@ -903,7 +907,7 @@ class wxMacDataItemBrowserControl : public wxMacDataBrowserControl, public wxMac
{ {
public : public :
wxMacDataItemBrowserControl( wxWindow* peer , const wxPoint& pos, const wxSize& size, long style); wxMacDataItemBrowserControl( wxWindow* peer , const wxPoint& pos, const wxSize& size, long style);
wxMacDataItemBrowserControl() {}
// create a list item (can be a subclass of wxMacListBoxItem) // create a list item (can be a subclass of wxMacListBoxItem)
virtual wxMacDataItem* CreateItem(); virtual wxMacDataItem* CreateItem();
@@ -1030,6 +1034,7 @@ protected:
private : private :
bool m_suppressSelection; bool m_suppressSelection;
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataItemBrowserControl)
}; };
class wxMacDataItemBrowserSelectionSuppressor class wxMacDataItemBrowserSelectionSuppressor
@@ -1066,6 +1071,7 @@ class wxMacDataBrowserListControl : public wxMacDataItemBrowserControl
{ {
public: public:
wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style ); wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style );
wxMacDataBrowserListControl() {}
virtual ~wxMacDataBrowserListControl(); virtual ~wxMacDataBrowserListControl();
virtual wxMacDataItem* CreateItem(); virtual wxMacDataItem* CreateItem();
@@ -1074,6 +1080,7 @@ public:
wxWindow * GetPeer() const; wxWindow * GetPeer() const;
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataBrowserListControl)
}; };
// ============================================================================ // ============================================================================

View File

@@ -37,14 +37,18 @@ class wxMacDataBrowserCheckListControl : public wxMacDataBrowserListControl , pu
{ {
public: public:
wxMacDataBrowserCheckListControl( wxListBox *peer, const wxPoint& pos, const wxSize& size, long style ); wxMacDataBrowserCheckListControl( wxListBox *peer, const wxPoint& pos, const wxSize& size, long style );
wxMacDataBrowserCheckListControl() {}
virtual ~wxMacDataBrowserCheckListControl(); virtual ~wxMacDataBrowserCheckListControl();
virtual wxMacDataItem* CreateItem(); virtual wxMacDataItem* CreateItem();
virtual bool MacIsChecked(unsigned int n) const; virtual bool MacIsChecked(unsigned int n) const;
virtual void MacCheck(unsigned int n, bool bCheck = true); virtual void MacCheck(unsigned int n, bool bCheck = true);
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataBrowserCheckListControl)
}; };
IMPLEMENT_DYNAMIC_CLASS( wxMacDataBrowserCheckListControl , wxMacDataBrowserListControl )
void wxCheckListBox::Init() void wxCheckListBox::Init()
{ {
} }
@@ -124,7 +128,8 @@ void wxCheckListBox::Check(unsigned int item, bool check)
wxMacCheckListControl* wxCheckListBox::GetPeer() const wxMacCheckListControl* wxCheckListBox::GetPeer() const
{ {
return dynamic_cast<wxMacCheckListControl*>(m_peer); wxMacDataBrowserCheckListControl *lb = wxDynamicCast(m_peer,wxMacDataBrowserCheckListControl);
return lb ? wx_static_cast(wxMacCheckListControl*,lb) : 0 ;
} }
const short kCheckboxColumnId = 1026; const short kCheckboxColumnId = 1026;
@@ -256,14 +261,14 @@ wxMacDataItem* wxMacDataBrowserCheckListControl::CreateItem()
void wxMacDataBrowserCheckListControl::MacCheck( unsigned int n, bool bCheck) void wxMacDataBrowserCheckListControl::MacCheck( unsigned int n, bool bCheck)
{ {
wxMacCheckListBoxItem* item = dynamic_cast<wxMacCheckListBoxItem*>( GetItemFromLine( n) ); wxMacCheckListBoxItem* item = wx_static_cast(wxMacCheckListBoxItem*, GetItemFromLine( n) );
item->Check( bCheck); item->Check( bCheck);
UpdateItem(wxMacDataBrowserRootContainer, item , kCheckboxColumnId); UpdateItem(wxMacDataBrowserRootContainer, item , kCheckboxColumnId);
} }
bool wxMacDataBrowserCheckListControl::MacIsChecked( unsigned int n) const bool wxMacDataBrowserCheckListControl::MacIsChecked( unsigned int n) const
{ {
wxMacCheckListBoxItem * item = dynamic_cast<wxMacCheckListBoxItem*>( GetItemFromLine( n ) ); wxMacCheckListBoxItem * item = wx_static_cast( wxMacCheckListBoxItem*, GetItemFromLine( n ) );
return item->IsChecked(); return item->IsChecked();
} }

View File

@@ -58,7 +58,8 @@ bool wxListBox::Create(
wxMacListControl* wxListBox::GetPeer() const wxMacListControl* wxListBox::GetPeer() const
{ {
return dynamic_cast<wxMacListControl*>(m_peer); wxMacDataBrowserListControl *lb = wxDynamicCast(m_peer,wxMacDataBrowserListControl);
return lb ? wx_static_cast(wxMacListControl*,lb) : 0 ;
} }
bool wxListBox::Create( bool wxListBox::Create(
@@ -463,7 +464,7 @@ void wxMacListBoxItem::Notification(wxMacDataItemBrowserControl *owner ,
DataBrowserItemNotification message, DataBrowserItemNotification message,
DataBrowserItemDataRef itemData ) const DataBrowserItemDataRef itemData ) const
{ {
wxMacDataBrowserListControl *lb = dynamic_cast<wxMacDataBrowserListControl*>(owner); wxMacDataBrowserListControl *lb = wxDynamicCast(owner,wxMacDataBrowserListControl);
// we want to depend on as little as possible to make sure tear-down of controls is safe // we want to depend on as little as possible to make sure tear-down of controls is safe
@@ -522,6 +523,8 @@ void wxMacListBoxItem::Notification(wxMacDataItemBrowserControl *owner ,
} }
} }
IMPLEMENT_DYNAMIC_CLASS( wxMacDataBrowserListControl , wxMacDataItemBrowserControl )
wxMacDataBrowserListControl::wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style) wxMacDataBrowserListControl::wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style)
: wxMacDataItemBrowserControl( peer, pos, size, style ) : wxMacDataItemBrowserControl( peer, pos, size, style )
{ {

View File

@@ -208,6 +208,7 @@ class wxMacDataBrowserListCtrlControl : public wxMacDataItemBrowserControl
{ {
public: public:
wxMacDataBrowserListCtrlControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style ); wxMacDataBrowserListCtrlControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style );
wxMacDataBrowserListCtrlControl() {}
virtual ~wxMacDataBrowserListCtrlControl(); virtual ~wxMacDataBrowserListCtrlControl();
// create a list item (can be a subclass of wxMacListBoxItem) // create a list item (can be a subclass of wxMacListBoxItem)
@@ -273,7 +274,7 @@ protected:
wxClientDataType m_clientDataItemsType; wxClientDataType m_clientDataItemsType;
bool m_isVirtual; bool m_isVirtual;
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacDataBrowserListCtrlControl)
}; };
class wxMacListCtrlEventDelegate : public wxEvtHandler class wxMacListCtrlEventDelegate : public wxEvtHandler
@@ -512,7 +513,8 @@ END_EVENT_TABLE()
wxMacListControl* wxListCtrl::GetPeer() const wxMacListControl* wxListCtrl::GetPeer() const
{ {
return dynamic_cast<wxMacListControl*>(m_peer); wxMacDataBrowserListCtrlControl *lb = wxDynamicCast(m_peer,wxMacDataBrowserListCtrlControl);
return lb ? wx_static_cast(wxMacListControl*,lb) : 0 ;
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -2207,7 +2209,7 @@ void wxMacListCtrlItem::Notification(wxMacDataItemBrowserControl *owner ,
DataBrowserItemDataRef itemData ) const DataBrowserItemDataRef itemData ) const
{ {
wxMacDataBrowserListCtrlControl *lb = dynamic_cast<wxMacDataBrowserListCtrlControl*>(owner); wxMacDataBrowserListCtrlControl *lb = wxDynamicCast(owner, wxMacDataBrowserListCtrlControl);
// we want to depend on as little as possible to make sure tear-down of controls is safe // we want to depend on as little as possible to make sure tear-down of controls is safe
if ( message == kDataBrowserItemRemoved) if ( message == kDataBrowserItemRemoved)
@@ -2285,6 +2287,8 @@ void wxMacListCtrlItem::Notification(wxMacDataItemBrowserControl *owner ,
} }
IMPLEMENT_DYNAMIC_CLASS(wxMacDataBrowserListCtrlControl, wxMacDataItemBrowserControl )
wxMacDataBrowserListCtrlControl::wxMacDataBrowserListCtrlControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style) wxMacDataBrowserListCtrlControl::wxMacDataBrowserListCtrlControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style)
: wxMacDataItemBrowserControl( peer, pos, size, style ) : wxMacDataItemBrowserControl( peer, pos, size, style )
{ {
@@ -2370,7 +2374,7 @@ pascal Boolean wxMacDataBrowserListCtrlControl::DataBrowserEditTextProc(
Boolean *shrinkToFit) Boolean *shrinkToFit)
{ {
Boolean result = false; Boolean result = false;
wxMacDataBrowserListCtrlControl* ctl = dynamic_cast<wxMacDataBrowserListCtrlControl*>( wxMacControl::GetReferenceFromNativeControl( browser ) ); wxMacDataBrowserListCtrlControl* ctl = wxDynamicCast(wxMacControl::GetReferenceFromNativeControl( browser ), wxMacDataBrowserListCtrlControl);
if ( ctl != 0 ) if ( ctl != 0 )
{ {
result = ctl->ConfirmEditText(itemID, property, theString, maxEditTextRect, shrinkToFit); result = ctl->ConfirmEditText(itemID, property, theString, maxEditTextRect, shrinkToFit);
@@ -2398,7 +2402,7 @@ pascal void wxMacDataBrowserListCtrlControl::DataBrowserDrawItemProc(
SInt16 gdDepth, SInt16 gdDepth,
Boolean colorDevice) Boolean colorDevice)
{ {
wxMacDataBrowserListCtrlControl* ctl = dynamic_cast<wxMacDataBrowserListCtrlControl*>( wxMacControl::GetReferenceFromNativeControl( browser ) ); wxMacDataBrowserListCtrlControl* ctl = wxDynamicCast(wxMacControl::GetReferenceFromNativeControl( browser ), wxMacDataBrowserListCtrlControl);
if ( ctl != 0 ) if ( ctl != 0 )
{ {
ctl->DrawItem(itemID, property, itemState, itemRect, gdDepth, colorDevice); ctl->DrawItem(itemID, property, itemState, itemRect, gdDepth, colorDevice);
@@ -2916,7 +2920,7 @@ void wxMacDataBrowserListCtrlControl::MacSetColumnInfo( unsigned int row, unsign
wxASSERT_MSG( dataItem, _T("could not obtain wxMacDataItem for row in MacSetColumnInfo. Is row a valid wxListCtrl row?") ); wxASSERT_MSG( dataItem, _T("could not obtain wxMacDataItem for row in MacSetColumnInfo. Is row a valid wxListCtrl row?") );
if (item) if (item)
{ {
wxMacListCtrlItem* listItem = dynamic_cast<wxMacListCtrlItem*>(dataItem); wxMacListCtrlItem* listItem = wx_static_cast(wxMacListCtrlItem*,dataItem);
bool hasInfo = listItem->HasColumnInfo( column ); bool hasInfo = listItem->HasColumnInfo( column );
listItem->SetColumnInfo( column, item ); listItem->SetColumnInfo( column, item );
UpdateState(dataItem, item); UpdateState(dataItem, item);
@@ -2958,7 +2962,7 @@ void wxMacDataBrowserListCtrlControl::MacGetColumnInfo( unsigned int row, unsign
// CS should this guard against dataItem = 0 ? , as item is not a pointer if (item) is not appropriate // CS should this guard against dataItem = 0 ? , as item is not a pointer if (item) is not appropriate
//if (item) //if (item)
{ {
wxMacListCtrlItem* listItem = dynamic_cast<wxMacListCtrlItem*>(dataItem); wxMacListCtrlItem* listItem =wx_static_cast(wxMacListCtrlItem*,dataItem);
if (!listItem->HasColumnInfo( column )) if (!listItem->HasColumnInfo( column ))
return; return;

View File

@@ -821,6 +821,13 @@ OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType in
// Control Access Support // Control Access Support
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS( wxMacControl , wxObject )
wxMacControl::wxMacControl()
{
Init();
}
wxMacControl::wxMacControl(wxWindow* peer , bool isRootControl ) wxMacControl::wxMacControl(wxWindow* peer , bool isRootControl )
{ {
Init(); Init();
@@ -1287,13 +1294,15 @@ wxMacControl* wxMacControl::GetReferenceFromNativeControl(ControlRef control)
// basing on DataBrowserItemIDs // basing on DataBrowserItemIDs
// //
IMPLEMENT_ABSTRACT_CLASS( wxMacDataBrowserControl , wxMacControl )
pascal void wxMacDataBrowserControl::DataBrowserItemNotificationProc( pascal void wxMacDataBrowserControl::DataBrowserItemNotificationProc(
ControlRef browser, ControlRef browser,
DataBrowserItemID itemID, DataBrowserItemID itemID,
DataBrowserItemNotification message, DataBrowserItemNotification message,
DataBrowserItemDataRef itemData ) DataBrowserItemDataRef itemData )
{ {
wxMacDataBrowserControl* ctl = dynamic_cast<wxMacDataBrowserControl*>( wxMacControl::GetReferenceFromNativeControl( browser ) ); wxMacDataBrowserControl* ctl = wxDynamicCast(wxMacControl::GetReferenceFromNativeControl( browser ), wxMacDataBrowserControl);
if ( ctl != 0 ) if ( ctl != 0 )
{ {
ctl->ItemNotification(itemID, message, itemData); ctl->ItemNotification(itemID, message, itemData);
@@ -1308,7 +1317,7 @@ pascal OSStatus wxMacDataBrowserControl::DataBrowserGetSetItemDataProc(
Boolean changeValue ) Boolean changeValue )
{ {
OSStatus err = errDataBrowserPropertyNotSupported; OSStatus err = errDataBrowserPropertyNotSupported;
wxMacDataBrowserControl* ctl = dynamic_cast<wxMacDataBrowserControl*>( wxMacControl::GetReferenceFromNativeControl( browser ) ); wxMacDataBrowserControl* ctl = wxDynamicCast(wxMacControl::GetReferenceFromNativeControl( browser ), wxMacDataBrowserControl);
if ( ctl != 0 ) if ( ctl != 0 )
{ {
err = ctl->GetSetItemData(itemID, property, itemData, changeValue); err = ctl->GetSetItemData(itemID, property, itemData, changeValue);
@@ -1322,7 +1331,7 @@ pascal Boolean wxMacDataBrowserControl::DataBrowserCompareProc(
DataBrowserItemID itemTwoID, DataBrowserItemID itemTwoID,
DataBrowserPropertyID sortProperty) DataBrowserPropertyID sortProperty)
{ {
wxMacDataBrowserControl* ctl = dynamic_cast<wxMacDataBrowserControl*>( wxMacControl::GetReferenceFromNativeControl( browser ) ); wxMacDataBrowserControl* ctl = wxDynamicCast(wxMacControl::GetReferenceFromNativeControl( browser ), wxMacDataBrowserControl);
if ( ctl != 0 ) if ( ctl != 0 )
{ {
return ctl->CompareItems(itemOneID, itemTwoID, sortProperty); return ctl->CompareItems(itemOneID, itemTwoID, sortProperty);
@@ -1678,7 +1687,7 @@ bool wxMacDataItem::IsLessThan(wxMacDataItemBrowserControl *owner ,
const wxMacDataItem* rhs, const wxMacDataItem* rhs,
DataBrowserPropertyID sortProperty) const DataBrowserPropertyID sortProperty) const
{ {
const wxMacDataItem* otherItem = dynamic_cast<const wxMacDataItem*>(rhs); const wxMacDataItem* otherItem = wx_const_cast(wxMacDataItem*,rhs);
bool retval = false; bool retval = false;
if ( sortProperty == m_colId ){ if ( sortProperty == m_colId ){
@@ -1729,6 +1738,7 @@ void wxMacDataItem::Notification(wxMacDataItemBrowserControl *owner ,
{ {
} }
IMPLEMENT_DYNAMIC_CLASS( wxMacDataItemBrowserControl , wxMacDataBrowserControl )
wxMacDataItemBrowserControl::wxMacDataItemBrowserControl( wxWindow* peer , const wxPoint& pos, const wxSize& size, long style) : wxMacDataItemBrowserControl::wxMacDataItemBrowserControl( wxWindow* peer , const wxPoint& pos, const wxSize& size, long style) :
wxMacDataBrowserControl( peer, pos, size, style ) wxMacDataBrowserControl( peer, pos, size, style )