]> git.saurik.com Git - wxWidgets.git/commitdiff
rtti informations
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 14 Aug 2003 18:05:30 +0000 (18:05 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 14 Aug 2003 18:05:30 +0000 (18:05 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

12 files changed:
src/msw/button.cpp
src/msw/checkbox.cpp
src/msw/frame.cpp
src/msw/gauge95.cpp
src/msw/notebook.cpp
src/msw/radiobut.cpp
src/msw/spinbutt.cpp
src/msw/spinctrl.cpp
src/msw/statbox.cpp
src/msw/stattext.cpp
src/msw/textctrl.cpp
src/msw/window.cpp

index 9a36d74f46bd3b8783ce63ae43efa8e022e39bea..640365319a6dc276ee0c1180fcb9811666a9295c 100644 (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
index ce3d9ceadde47ea4e93c2100abbc489d6b9a9e5b..c3ac6bac004e65a59caa7b633b75b2ba29190ea4 100644 (file)
 // implementation
 // ============================================================================
 
-IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
+#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()
 
-/*
-TODO PROPERTIES :
+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
 
-bool "checked" , 0
-*/
 
 // ----------------------------------------------------------------------------
 // wxCheckBox
index 7a94e8db1aee970342feb43ccde89aef4e72702c..3ceedd493891a1164139645d46c8c53145f29a5a 100644 (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)
index 7d082b81b46728b23668c81e4e4778cdf445bd8a..4299f2948eed0aa839657f8179d70379a481047b 100644 (file)
 // 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
index 37ae63235ed81c477b15fec833254c1b00509235..ea3334de804e324c4dcbda26079a3b060c875005 100644 (file)
 #include "wx/panel.h"
 #endif
 
-/*
-       notebookpage
-               object
-               object_ref
-               label
-               selected
-               style
-               usenotebooksizer
-*/
-
 // ----------------------------------------------------------------------------
 // macros
 // ----------------------------------------------------------------------------
 // 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()
 {
index aa19342b603214bb10b7b2a44d6868a31440f5c0..abc19d681f2dfe229c863b32596ee26cbc40307c 100644 (file)
 // wxRadioButton creation
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
 
-/*
-       TODO PROPERTIES
+#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
 
-               label
-               value (bool , 0 )
-*/
 
 void wxRadioButton::Init()
 {
index 59f26721862dd26dee3191a0c3a4cc06f322f6c1..36de18694d0e79dced4ec7e2857eb8738989b5f2 100644 (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
index 9f0d79c82e07208ab71b805ae3a95e9bc947cd88..f6aa2f460e99e118e89b00d4e627d7fca76fddb2 100644 (file)
 // 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)
index 40a44c133f4fac27028fe4ae281a4a2c094028a6..162a8a30b6561c68de2a643a99ee90ea9577bb50 100644 (file)
 // 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
index 0c89b206938081c2107f81ba5f4e295dac3729fc..f05b7147cf958367f56e00853ebd336d13c39b1e 100644 (file)
 #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,
index bdd65a6ad1bbe04fc3d94610d4934ea2c93b8984..96a508552406ec38a6b202ef5a1c04bca570dd39 100644 (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)
index 04cbcb8f03f214804992d24102c6f44f2d8e371b..1e9be60f14ea80e59f74cc8a8efdd01d3f6579e1 100644 (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_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 , )
-       WX_PROPERTY_SET_RET_BOOL( Enabled , bool , Enable , IsEnabled , wxxVariant((bool)true) )
-       WX_PROPERTY_SET_RET_BOOL( Shown , bool , Show , IsShown , wxxVariant((bool)true) )
+#endif
 WX_END_PROPERTIES_TABLE()
 
 WX_BEGIN_HANDLERS_TABLE(wxWindow)