rtti informations

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2003-08-14 18:05:30 +00:00
parent 16a45a23d9
commit 5174130757
12 changed files with 206 additions and 61 deletions

View File

@@ -51,13 +51,15 @@ IMPLEMENT_DYNAMIC_CLASS_XTI(wxButton, wxControl,"wx/button.h")
WX_BEGIN_PROPERTIES_TABLE(wxButton)
WX_DELEGATE( OnClick , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEvent )
// default
WX_PROPERTY_SET_AND_GET_BY_REF_RET_BOOL( Font , wxFont , SetFont , GetFont , )
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxButton)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_5( wxButton , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size )
WX_CONSTRUCTOR_6( wxButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else

View File

@@ -47,13 +47,25 @@
// implementation
// ============================================================================
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxCheckBox, wxControl,"wx/checkbox.h")
WX_BEGIN_PROPERTIES_TABLE(wxCheckBox)
WX_DELEGATE( OnClick , wxEVT_COMMAND_CHECKBOX_CLICKED , wxCommandEvent )
WX_PROPERTY_SET_AND_GET_BY_REF_RET_BOOL( Font , wxFont , SetFont , GetFont , )
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
WX_PROPERTY( Value ,bool, SetValue, GetValue, )
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxCheckBox)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_6( wxCheckBox , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
#endif
/*
TODO PROPERTIES :
bool "checked" , 0
*/
// ----------------------------------------------------------------------------
// wxCheckBox

View File

@@ -83,6 +83,7 @@ END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS_XTI(wxFrame, wxTopLevelWindow,"wx/frame.h")
WX_BEGIN_PROPERTIES_TABLE(wxFrame)
WX_PROPERTY_SET_BY_REF( Title,wxString, SetTitle, GetTitle, wxT("") )
/*
TODO PROPERTIES
@@ -94,7 +95,7 @@ WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxFrame)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_5( wxFrame , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size )
WX_CONSTRUCTOR_6( wxFrame , wxWindow* , Parent , wxWindowID , Id , wxString , Title , wxPoint , Position , wxSize , Size , long , WindowStyle)
#else
IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)

View File

@@ -66,15 +66,27 @@
// wxWin macros
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxGauge95, wxControl)
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge95, wxControl,"wx/gauge.h")
WX_BEGIN_PROPERTIES_TABLE(wxGauge95)
WX_PROPERTY( Value , int , SetValue, GetValue, 0 )
WX_PROPERTY( Range , int , SetRange, GetRange, 0 )
WX_PROPERTY( ShadowWidth , int , SetShadowWidth, GetShadowWidth, 0 )
WX_PROPERTY( BezelFace , int , SetBezelFace, GetBezelFace, 0 )
/*
TODO PROPERTIES
range (long)
value (long)
shadow (ShadowWidth)
bezel (BezelFace)
style wxGA_HORIZONTAL
*/
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxGauge95)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_6( wxGauge95 , wxWindow* , Parent , wxWindowID , Id , int , Range , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxGauge95, wxControl)
#endif
// ============================================================================
// implementation

View File

@@ -68,16 +68,6 @@
#include "wx/panel.h"
#endif
/*
notebookpage
object
object_ref
label
selected
style
usenotebooksizer
*/
// ----------------------------------------------------------------------------
// macros
// ----------------------------------------------------------------------------
@@ -109,6 +99,10 @@
// event table
// ----------------------------------------------------------------------------
#include <wx/listimpl.cpp>
WX_DEFINE_LIST( wxNotebookPageInfoList ) ;
DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING)
@@ -123,9 +117,27 @@ BEGIN_EVENT_TABLE(wxNotebook, wxControl)
END_EVENT_TABLE()
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxControl,"wx/notebook.h")
IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebookPageInfo, wxObject , "wx/notebook.h" )
template<> const wxTypeInfo* wxGetTypeInfo( wxNotebookPageInfoList * )
{
static wxCollectionTypeInfo s_typeInfo( (wxTypeInfo*) wxGetTypeInfo( (wxNotebookPageInfo **) NULL) ) ;
return &s_typeInfo ;
}
WX_BEGIN_PROPERTIES_TABLE(wxNotebook)
WX_PROPERTY_COLLECTION( PageInfos , wxNotebookPageInfoList , wxNotebookPageInfo* , AddPageInfo , GetPageInfos )
/*
notebookpage
object
object_ref
label
selected
style
usenotebooksizer
*/
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxNotebook)
@@ -133,8 +145,22 @@ WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_4( wxNotebook , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size )
WX_BEGIN_PROPERTIES_TABLE(wxNotebookPageInfo)
WX_READONLY_PROPERTY( Page , wxNotebookPage* , GetPage , )
WX_READONLY_PROPERTY( Text , wxString , GetText , wxEmptyString )
WX_READONLY_PROPERTY( Selected , bool , GetSelected , false )
WX_READONLY_PROPERTY( ImageId , int , GetImageId , -1 )
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxNotebookPageInfo)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_4( wxNotebookPageInfo , wxNotebookPage* , Page , wxString , Text , bool , Selected , int , ImageId )
#else
IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxNotebookPageInfo, wxObject )
#endif
IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent)
@@ -146,6 +172,19 @@ IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent)
// wxNotebook construction
// ----------------------------------------------------------------------------
const wxNotebookPageInfoList& wxNotebook::GetPageInfos() const
{
wxNotebookPageInfoList* list = const_cast< wxNotebookPageInfoList* >( &m_pageInfos ) ;
WX_CLEAR_LIST( wxNotebookPageInfoList , *list ) ;
for( int i = 0 ; i < GetPageCount() ; ++i )
{
wxNotebookPageInfo *info = new wxNotebookPageInfo() ;
info->Create( const_cast<wxNotebook*>(this)->GetPage(i) , GetPageText(i) , GetSelection() == i , GetPageImage(i) ) ;
list->Append( info ) ;
}
return m_pageInfos ;
}
// common part of all ctors
void wxNotebook::Init()
{

View File

@@ -47,14 +47,26 @@
// wxRadioButton creation
// ----------------------------------------------------------------------------
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxRadioButton, wxControl,"wx/radiobut.h")
WX_BEGIN_PROPERTIES_TABLE(wxRadioButton)
WX_DELEGATE( OnClick , wxEVT_COMMAND_RADIOBUTTON_SELECTED , wxCommandEvent )
WX_PROPERTY_SET_AND_GET_BY_REF_RET_BOOL( Font , wxFont , SetFont , GetFont , )
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
WX_PROPERTY( Value ,bool, SetValue, GetValue, )
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxRadioButton)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_6( wxRadioButton , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
#endif
/*
TODO PROPERTIES
label
value (bool , 0 )
*/
void wxRadioButton::Init()
{

View File

@@ -55,17 +55,29 @@ IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
// wxWin macros
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinButton, wxControl,"wx/spinbut.h")
WX_BEGIN_PROPERTIES_TABLE(wxSpinButton)
WX_PROPERTY( Value , int , SetValue, GetValue, 0 )
WX_PROPERTY( Min , int , SetMin, GetMin, 0 )
WX_PROPERTY( Max , int , SetMax, GetMax, 0 )
/*
TODO PROPERTIES
style wxSP_VERTICAL | wxSP_ARROW_KEYS
value wxSP_DEFAULT_VALUE
min wxSP_DEFAULT_MIN
max wxSP_DEFAULT_MAX
*/
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxSpinButton)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_5( wxSpinButton , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
#endif
// ----------------------------------------------------------------------------
// wxSpinButton

View File

@@ -50,16 +50,26 @@
// macros
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
#if 0 // wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinCtrl, wxControl,"wx/spinbut.h")
WX_BEGIN_PROPERTIES_TABLE(wxSpinCtrl)
WX_PROPERTY( Value , int , SetValue, GetValue, 0 )
WX_PROPERTY( Min , int , SetMin, GetMin, 0 )
WX_PROPERTY( Max , int , SetMax, GetMax, 0 )
/*
TODO PROPERTIES
style wxSP_ARROW_KEYS
value wxSP_DEFAULT_VALUE
min wxSP_DEFAULT_MIN
max wxSP_DEFAULT_MAX
*/
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxSpinCtrl)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_5( wxSpinCtrl , wxWindow* , Parent , wxWindowID , Id , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
#endif
BEGIN_EVENT_TABLE(wxSpinCtrl, wxSpinButton)
EVT_CHAR(wxSpinCtrl::OnChar)

View File

@@ -43,11 +43,24 @@
// wxWin macros
// ----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticBox, wxControl,"wx/statbox.h")
WX_BEGIN_PROPERTIES_TABLE(wxStaticBox)
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
/*
TODO PROPERTIES :
label
*/
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxStaticBox)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_6( wxStaticBox , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
#endif
// ============================================================================
// implementation

View File

@@ -32,11 +32,20 @@
#include "wx/msw/private.h"
#include <stdio.h>
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxStaticText, wxControl,"wx/stattext.h")
WX_BEGIN_PROPERTIES_TABLE(wxStaticText)
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxStaticText)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_6( wxStaticText , wxWindow* , Parent , wxWindowID , Id , wxString , Label , wxPoint , Position , wxSize , Size , long , WindowStyle )
#else
IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl)
/*
TODO PROPERTIES :
label
*/
#endif
bool wxStaticText::Create(wxWindow *parent,
wxWindowID id,

View File

@@ -116,11 +116,22 @@ IMPLEMENT_DYNAMIC_CLASS(wxRichEditModule, wxModule)
// event tables and other macros
// ----------------------------------------------------------------------------
#if wxUSE_EXTENDED_RTTI
IMPLEMENT_DYNAMIC_CLASS_XTI(wxTextCtrl, wxControl,"wx/textctrl.h")
WX_BEGIN_PROPERTIES_TABLE(wxTextCtrl)
WX_PROPERTY_SET_AND_GET_BY_REF_RET_BOOL( Font , wxFont , SetFont , GetFont , )
WX_PROPERTY( Value , wxString , SetValue, GetValue, wxEmptyString )
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxTextCtrl)
WX_END_HANDLERS_TABLE()
WX_CONSTRUCTOR_6( wxTextCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size , long , WindowStyle)
#else
IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
/*
TODO PROPERTIES :
value
*/
#endif
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
EVT_CHAR(wxTextCtrl::OnChar)

View File

@@ -233,26 +233,38 @@ static inline void wxBringWindowToTop(HWND hwnd)
IMPLEMENT_DYNAMIC_CLASS_XTI(wxWindow, wxWindowBase,"wx/window.h")
WX_BEGIN_PROPERTIES_TABLE(wxWindow)
// WX_DEFAULT_CHILD_PARENT_RELATION( Parent , Children ) ;
WX_READONLY_PROPERTY( Parent,wxWindow*, GetParent, )
// Always constructor Properties first
WX_READONLY_PROPERTY( Parent,wxWindow*, GetParent, )
WX_PROPERTY( Id,wxWindowID, SetId, GetId, -1 )
// MaxHeight, Width , MinHeight , Width
// TODO switch label to control and title to toplevels
WX_PROPERTY_SET_BY_REF( Title,wxString, SetTitle, GetTitle, wxT("") )
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
WX_PROPERTY_SET_BY_REF( Position,wxPoint, SetPosition , GetPosition, wxPoint(-1,-1) ) // pos
WX_PROPERTY_SET_BY_REF( Size,wxSize, SetSize, GetSize, wxSize(-1,-1) ) // size
WX_PROPERTY( WindowStyle , long , SetWindowStyle , GetWindowStyle , ) // style
WX_PROPERTY( WindowStyle , long , SetWindowStyle , GetWindowStyle , ) // style
// Then all relations of the object graph
WX_READONLY_PROPERTY_COLLECTION( Children , wxWindowList , wxWindowBase* , GetChildren )
// and finally all other properties
WX_PROPERTY( ExtraStyle , long , SetExtraStyle , GetExtraStyle , ) // extstyle
WX_PROPERTY( ThemeEnabled , bool , SetThemeEnabled , GetThemeEnabled , )
WX_PROPERTY_SET_BY_REF_RET_BOOL( BackgroundColour , wxColour , SetBackgroundColour , GetBackgroundColour , ) // bg
WX_PROPERTY_SET_BY_REF_RET_BOOL( ForegroundColour , wxColour , SetForegroundColour , GetForegroundColour , ) // fg
//WX_PROPERTY_SET_BY_REF( Cursor , wxCursor , SetCursor , GetCursor , )
WX_PROPERTY_SET_AND_GET_BY_REF_RET_BOOL( Font , wxFont , SetFont , GetFont , )
// WX_PROPERTY( ToolTip , wxString , SetToolTip , GetToolTipText , )
WX_PROPERTY( AutoLayout , bool , SetAutoLayout , GetAutoLayout , )
WX_PROPERTY_SET_RET_BOOL( Enabled , bool , Enable , IsEnabled , wxxVariant((bool)true) )
WX_PROPERTY_SET_RET_BOOL( Shown , bool , Show , IsShown , wxxVariant((bool)true) )
#if 0
// possible property candidates (not in xrc) or not valid in all subclasses
WX_PROPERTY_SET_BY_REF( Title,wxString, SetTitle, GetTitle, wxT("") )
WX_PROPERTY_SET_AND_GET_BY_REF_RET_BOOL( Font , wxFont , SetFont , GetFont , )
WX_PROPERTY_SET_BY_REF( Label,wxString, SetLabel, GetLabel, wxT("") )
// MaxHeight, Width , MinHeight , Width
// TODO switch label to control and title to toplevels
WX_PROPERTY( ThemeEnabled , bool , SetThemeEnabled , GetThemeEnabled , )
//WX_PROPERTY_SET_BY_REF( Cursor , wxCursor , SetCursor , GetCursor , )
// WX_PROPERTY( ToolTip , wxString , SetToolTip , GetToolTipText , )
WX_PROPERTY( AutoLayout , bool , SetAutoLayout , GetAutoLayout , )
#endif
WX_END_PROPERTIES_TABLE()
WX_BEGIN_HANDLERS_TABLE(wxWindow)