00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __ID_H__
00021 #define __ID_H__
00022
00023 #ifndef WX_PRECOMP
00024 #include "wx/wx.h"
00025 #endif
00026
00027 #include "wx/hashmap.h"
00028 #include "wx/filename.h"
00029 #include "wx/tipwin.h"
00030
00031 #include "wx/general/smrtptr.h"
00032
00033
00034
00035
00036
00037
00038 #define CLASSNAME(name) wxT(#name)
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 class A2DGENERALDLLEXP a2dIdBase
00060 {
00061 public:
00062 a2dIdBase() {};
00063 virtual ~a2dIdBase() {};
00064 virtual wxString GetIdClassName() { return wxT("a2dIdBase"); }
00065 };
00066
00067
00068
00069 class A2DGENERALDLLEXP a2dObject;
00070 class A2DGENERALDLLEXP a2dPropObject;
00071 class A2DGENERALDLLEXP a2dPropertyId;
00072 class A2DGENERALDLLEXP a2dNamedProperty;
00073 class A2DGENERALDLLEXP a2dInt16Property;
00074 class A2DGENERALDLLEXP a2dInt32Property;
00075 class A2DGENERALDLLEXP a2dUint16Property;
00076 class A2DGENERALDLLEXP a2dUint32Property;
00077 class A2DGENERALDLLEXP a2dBoolProperty;
00078 class A2DGENERALDLLEXP a2dFloatProperty;
00079 class A2DGENERALDLLEXP a2dDoubleProperty;
00080 class A2DGENERALDLLEXP a2dVoidPtrProperty;
00081 class A2DGENERALDLLEXP a2dObjectProperty;
00082 class A2DGENERALDLLEXP a2dStringProperty;
00083 class A2DGENERALDLLEXP a2dFileNameProperty;
00084 class A2DGENERALDLLEXP a2dDateTimeProperty;
00085 class A2DGENERALDLLEXP a2dMenuProperty;
00086 class A2DGENERALDLLEXP a2dWindowProperty;
00087 class A2DGENERALDLLEXP a2dTipWindowProperty;
00088 class A2DGENERALDLLEXP a2dColourProperty;
00089 class A2DGENERALDLLEXP a2dArrayStringProperty;
00090 class A2DGENERALDLLEXP a2dProperty;
00091 class A2DGENERALDLLEXP a2dAutoZeroProperty;
00092 class A2DGENERALDLLEXP a2dNamedPropertyList;
00093
00094
00095 WX_DECLARE_STRING_HASH_MAP( a2dPropertyId*, a2dPropertyIdHashMap );
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152 class A2DGENERALDLLEXP a2dPropertyId
00153 {
00154 public:
00155
00156 enum Flags
00157 {
00158
00159 flag_none = 0x00000000,
00160
00161 flag_temporary = 0x00000001,
00162
00163
00164
00165
00166
00167 flag_transfer = 0x00000002,
00168
00169 flag_onlymember = 0x00000004,
00170
00171
00172
00173
00174
00175
00176
00177 flag_onlymemberhint = 0x00000008,
00178
00179
00180
00181
00182 flag_listfirst = 0x00000010,
00183
00184
00185
00186 flag_multiple = 0x00000020,
00187
00188
00189
00190
00191
00192
00193
00194 flag_clonedeep = 0x00000040,
00195
00196
00197
00198
00199 flag_listonly = 0x00000080,
00200
00201
00202 flag_norender = 0x00000100,
00203
00204
00205 flag_userDefined = 0x00000200,
00206
00207
00208 flag_isEditable = 0x00000400
00209 };
00210 friend Flags operator | ( Flags a, Flags b ) { return (Flags)( (int)a | (int)b ); }
00211
00212
00213 enum SetFlags
00214 {
00215
00216 set_none = 0x00000000,
00217
00218
00219
00220
00221
00222 set_onlymember = 0x00000010,
00223
00224
00225 set_remove_non_member = 0x00000020,
00226
00227
00228 set_remove_property = 0x00000040
00229 };
00230 friend SetFlags operator | ( SetFlags a, SetFlags b ) { return (SetFlags)( (int)a | (int)b ); }
00231
00232 public:
00233
00234 a2dPropertyId( const wxString& name, Flags flags );
00235
00236
00237 virtual ~a2dPropertyId() {};
00238
00239 virtual wxString GetName() const { return m_name; }
00240
00241 void SetName( const wxString& name ) { m_name = name; }
00242
00243 virtual const a2dPropertyId *GetMainID() const { return this; }
00244
00245 virtual const a2dPropertyId *GetSubID() const { return 0; }
00246
00247 virtual bool operator == ( const a2dPropertyId &other ) const { return &other==this; }
00248
00249 virtual a2dNamedProperty *CreatePropertyFromString( const wxString &WXUNUSED(value) ) const { return 0; };
00250
00251 virtual a2dNamedProperty* GetPropertyAsNamedProperty( const a2dObject *obj ) const { return 0; };
00252
00253
00254 virtual void SetNamedPropertyToObject( a2dObject* obj, a2dNamedProperty* nprop, SetFlags setflags = set_none ) const;
00255
00256
00257 bool IsCloneDeep() const { return ( m_flags & flag_clonedeep ) != 0; }
00258
00259 bool IsTemporary() const { return ( m_flags & flag_temporary ) != 0; }
00260
00261 bool IsTransfer() const { return ( m_flags & flag_transfer ) != 0; }
00262
00263 bool IsOnlyMember() const { return ( m_flags & flag_onlymember ) != 0; }
00264
00265 bool IsOnlyMemberHint() const { return ( m_flags & flag_onlymemberhint ) != 0; }
00266
00267 bool IsListFirst() const { return ( m_flags & flag_listfirst ) != 0; }
00268
00269 bool IsListOnly() const { return ( m_flags & flag_listonly ) != 0; }
00270
00271 bool IsUserDefined() const { return ( m_flags & flag_userDefined ) != 0; }
00272
00273 bool IsEditable() const { return ( m_flags & flag_isEditable ) != 0; }
00274
00275
00276 bool CheckFlags( Flags flags ) const { return ( m_flags & flags ) == flags; }
00277
00278 bool CheckCollect( const a2dPropertyId *id, Flags flags ) const { return ( !id || id==this ) && ( ( m_flags & flags ) == flags ); }
00279
00280
00281
00282
00283
00284
00285 void RemovePropertyFromObject( a2dObject *obj ) const;
00286
00287 protected:
00288
00289
00290 a2dPropertyId( );
00291
00292
00293
00294
00295
00296 inline void DoAddPropertyToObject( a2dObject *obj, a2dNamedProperty *prop ) const;
00297
00298
00299
00300
00301
00302 inline bool DoIgnoreIfNotMember( a2dObject *obj ) const;
00303
00304
00305
00306
00307
00308 static inline void DoSetPropertyId( a2dNamedProperty *prop, a2dPropertyId *id );
00309
00310 protected:
00311 wxString m_name;
00312
00313 Flags m_flags;
00314
00315 private:
00316
00317 int m_refcount;
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329 a2dPropertyId* SmrtPtrOwn() { m_refcount++; return this; }
00330
00331
00332
00333
00334 bool SmrtPtrRelease()
00335 {
00336 m_refcount--;
00337 wxASSERT_MSG( m_refcount >= 0, wxT( "a2dPropertyId Own/Release not matched (extra Release calls)" ) );
00338 if ( m_refcount <= 0 )
00339 {
00340 delete this;
00341 return true;
00342 }
00343 return false;
00344 }
00345
00346 private:
00347 friend class a2dSmrtPtrBase;
00348 };
00349
00350 #if defined(WXDOCVIEW_USINGDLL)
00351 template class A2DGENERALDLLEXP std::allocator<a2dPropertyId* >;
00352 template class A2DGENERALDLLEXP std::allocator< std::_List_nod<a2dPropertyId*, std::allocator<a2dPropertyId* > >::_Node >;
00353 template class A2DGENERALDLLEXP std::allocator< std::_List_ptr<a2dPropertyId*, std::allocator<a2dPropertyId* > >::_Nodeptr >;
00354 template class A2DGENERALDLLEXP std::list<a2dPropertyId* >;
00355 template class A2DGENERALDLLEXP a2dlist<a2dPropertyId* >;
00356 template class A2DGENERALDLLEXP a2dPtrList<a2dPropertyId>;
00357
00358 template class A2DGENERALDLLEXP std::allocator<wxUint16 >;
00359 template class A2DGENERALDLLEXP std::allocator< std::_List_nod<wxUint16, std::allocator<wxUint16 > >::_Node >;
00360 template class A2DGENERALDLLEXP std::allocator< std::_List_ptr<wxUint16, std::allocator<wxUint16 > >::_Nodeptr >;
00361 template class A2DGENERALDLLEXP std::list<wxUint16 >;
00362 template class A2DGENERALDLLEXP a2dlist<wxUint16 >;
00363 #endif
00364
00365
00366 typedef a2dPtrList<a2dPropertyId> a2dPropertyIdList;
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389 template<class proptype>
00390 class a2dPropertyIdProp : public a2dPropertyId
00391 {
00392 public:
00393
00394 a2dPropertyIdProp( const wxString& name, Flags flags ) : a2dPropertyId( name, flags )
00395 {
00396 }
00397
00398 ~a2dPropertyIdProp() {}
00399
00400
00401 void SetPropertyToObject( a2dObject *obj, const proptype &value ) const;
00402
00403 void SetPropertyToObject( a2dObject *obj, proptype *value ) const;
00404
00405
00406
00407
00408
00409
00410
00411
00412 proptype* GetPropertyClone( const a2dObject *obj ) const;
00413
00414
00415
00416
00417
00418
00419
00420
00421 a2dNamedProperty* GetPropertyAsNamedProperty( const a2dObject *obj ) const;
00422
00423
00424 void SetNamedPropertyToObject( a2dObject* obj, a2dNamedProperty* nprop, SetFlags setflags = set_none ) const;
00425
00426
00427 proptype *GetProperty( a2dObject *obj ) const;
00428
00429 const proptype *GetProperty( const a2dObject *obj ) const;
00430
00431 protected:
00432
00433 a2dPropertyIdProp( ) : a2dPropertyId( ) {};
00434
00435 protected:
00436 };
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469 template<class basetype, class proptype>
00470 class a2dPropertyIdTyped : public a2dPropertyId
00471 {
00472
00473 public:
00474
00475 typedef basetype (wxObject::*Get)() const;
00476 typedef const basetype& (wxObject::*ConstGet)() const;
00477 typedef void (wxObject::*Set)(basetype);
00478 typedef void (wxObject::*ConstSet)( const basetype &value );
00479 typedef basetype wxObject::* Mptr;
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490 a2dPropertyIdTyped( const wxString& name, Flags flags, const basetype &defaultvalue );
00491
00492 a2dPropertyIdTyped( const wxString& name, basetype defaultvalue, Flags flags = flag_listfirst );
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503 a2dPropertyIdTyped( const wxString& name, Flags flags, const basetype &defaultvalue,
00504 Get getFunc, Set setFunc );
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515 a2dPropertyIdTyped( const wxString& name, Flags flags, const basetype &defaultvalue,
00516 Get getFunc, ConstSet setFunc );
00517
00518 a2dPropertyIdTyped( const wxString& name, Flags flags, const basetype &defaultvalue,
00519 ConstGet getFunc, ConstSet setFunc );
00520
00521
00522
00523
00524
00525
00526
00527
00528
00529 a2dPropertyIdTyped( const wxString& name, Flags flags, const basetype &defaultvalue,
00530 Mptr ptm );
00531
00532 ~a2dPropertyIdTyped() {}
00533
00534
00535 void SetPropertyToObject( a2dObject *obj, const basetype &value, SetFlags setflags = set_none ) const;
00536
00537
00538
00539
00540
00541 void SetPropertyToObject( a2dObject *obj, proptype* property, SetFlags setflags = set_none ) const;
00542
00543
00544
00545
00546
00547
00548
00549
00550 proptype* GetPropertyClone( const a2dObject *obj ) const;
00551
00552 a2dNamedProperty* GetPropertyAsNamedProperty( const a2dObject *obj ) const;
00553
00554
00555 void SetNamedPropertyToObject( a2dObject* obj, a2dNamedProperty* nprop, SetFlags setflags = set_none ) const;
00556
00557
00558 proptype* GetPropertyListOnly( const a2dObject *obj ) const;
00559
00560
00561 basetype GetPropertyValue( const a2dObject *obj ) const;
00562
00563
00564 basetype GetPropertyValue( const a2dObject *obj, const basetype &defaultvalue ) const;
00565
00566
00567 basetype* GetPropertyValuePtr( a2dObject *obj ) const;
00568
00569
00570 const basetype& GetDefaultValue() const { return m_defaultvalue; }
00571
00572
00573 a2dNamedProperty* CreatePropertyFromString( const wxString &value ) const;
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596 static a2dPropertyIdTyped<basetype, proptype>* GetDummy();
00597
00598 protected:
00599
00600 a2dPropertyIdTyped( ) : a2dPropertyId( ) {};
00601
00602 Get m_get;
00603 ConstGet m_constget;
00604 Set m_set;
00605 ConstSet m_constset;
00606
00607 basetype a2dObject::* m_ptm;
00608
00609
00610 basetype m_defaultvalue;
00611 };
00612
00613 class A2DGENERALDLLEXP a2dObject;
00614
00615 #if defined(A2DGENERALMAKINGDLL) || defined(WXDOCVIEW_USINGDLL)
00616 template class A2DGENERALDLLEXP a2dSmrtPtr<a2dObject>;
00617 template class A2DGENERALDLLEXP a2dAutoZeroPtr<a2dObject>;
00618 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxInt16, a2dInt16Property> ;
00619 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxInt32, a2dInt32Property> ;
00620 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxUint16, a2dUint16Property> ;
00621 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxUint32, a2dUint32Property> ;
00622 template class A2DGENERALDLLEXP a2dPropertyIdTyped<bool, a2dBoolProperty> ;
00623 template class A2DGENERALDLLEXP a2dPropertyIdTyped<double, a2dDoubleProperty> ;
00624 template class A2DGENERALDLLEXP a2dPropertyIdTyped<float, a2dFloatProperty> ;
00625 template class A2DGENERALDLLEXP a2dPropertyIdTyped<void *, a2dVoidPtrProperty> ;
00626 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxString, a2dStringProperty> ;
00627 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxFileName, a2dFileNameProperty> ;
00628 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxDateTime, a2dDateTimeProperty> ;
00629 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxMenu*, a2dMenuProperty> ;
00630 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxWindow*, a2dWindowProperty> ;
00631
00632 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxColour, a2dColourProperty> ;
00633 template class A2DGENERALDLLEXP a2dPropertyIdTyped<wxArrayString, a2dArrayStringProperty>;
00634 template class A2DGENERALDLLEXP a2dPropertyIdTyped<a2dSmrtPtr<a2dObject>, a2dProperty>;
00635 template class A2DGENERALDLLEXP a2dPropertyIdTyped<a2dAutoZeroPtr<a2dObject>, a2dAutoZeroProperty>;
00636 #endif
00637
00638
00639
00640
00641
00642
00643 typedef a2dPropertyIdTyped<wxInt16, a2dInt16Property> a2dPropertyIdInt16;
00644
00645 typedef a2dPropertyIdTyped<wxInt32, a2dInt32Property> a2dPropertyIdInt32;
00646
00647 typedef a2dPropertyIdTyped<wxUint16, a2dUint16Property> a2dPropertyIdUint16;
00648
00649 typedef a2dPropertyIdTyped<wxUint32, a2dUint32Property> a2dPropertyIdUint32;
00650
00651 typedef a2dPropertyIdTyped<bool, a2dBoolProperty> a2dPropertyIdBool;
00652
00653 typedef a2dPropertyIdTyped<double, a2dDoubleProperty> a2dPropertyIdDouble;
00654
00655 typedef a2dPropertyIdTyped<float, a2dFloatProperty> a2dPropertyIdFloat;
00656
00657 typedef a2dPropertyIdTyped<void *, a2dVoidPtrProperty> a2dPropertyIdVoidPtr;
00658
00659 typedef a2dPropertyIdTyped<wxObject, a2dObjectProperty> a2dPropertyIdObject;
00660
00661 typedef a2dPropertyIdTyped<wxString, a2dStringProperty> a2dPropertyIdString;
00662
00663 typedef a2dPropertyIdTyped<wxFileName, a2dFileNameProperty> a2dPropertyIdFileName;
00664
00665 typedef a2dPropertyIdTyped<wxDateTime, a2dDateTimeProperty> a2dPropertyIdDateTime;
00666
00667 typedef a2dPropertyIdTyped<wxMenu*, a2dMenuProperty> a2dPropertyIdMenu;
00668
00669 typedef a2dPropertyIdTyped<wxWindow*, a2dWindowProperty> a2dPropertyIdWindow;
00670
00671 typedef a2dPropertyIdTyped<wxColour, a2dColourProperty> a2dPropertyIdColour;
00672
00673 typedef a2dPropertyIdTyped<wxArrayString, a2dArrayStringProperty> a2dPropertyIdArrayString;
00674
00675 typedef a2dPropertyIdTyped<a2dSmrtPtr<a2dObject>, a2dProperty> a2dPropertyIdRefObject;
00676
00677 typedef a2dPropertyIdTyped<a2dAutoZeroPtr<a2dObject>, a2dAutoZeroProperty> a2dPropertyIdRefObjectAutoZero;
00678
00679
00680
00681
00682
00683
00684 #define A2D_PROPID_GSI_F( type, classname , propname, defaultval, flags ) \
00685 PROPID_##propname = new type( wxT(#propname), \
00686 flags, defaultval, \
00687 static_cast < type::Get >( &classname::Get##propname), \
00688 static_cast < type::Set >( &classname::Set##propname) ); \
00689 AddPropertyId( PROPID_##propname );
00690
00691
00692 #define A2D_PROPID_GSI( type, classname , propname, defaultval ) \
00693 A2D_PROPID_GSI_F( type, classname, propname, defaultval, a2dPropertyId::flag_none )
00694
00695
00696 #define A2D_PROPID_GS_F( type, classname, propname, defaultval, fget, fset, flags ) \
00697 PROPID_##propname = new type( wxT(#propname), \
00698 flags, defaultval, \
00699 static_cast < type::Get >( &classname::fget), \
00700 static_cast < type::Set >( &classname::fset) ) ; \
00701 AddPropertyId( PROPID_##propname );
00702
00703
00704 #define A2D_PROPID_GS( type, classname , propname, defaultval, fget, fset ) \
00705 A2D_PROPID_GS_F( type, classname, propname, defaultval, fget, fset, a2dPropertyId::flag_none )
00706
00707
00708 #define A2D_PROPID_D_F( type, propname, defaultval, flags ) \
00709 PROPID_##propname = new type( wxT(#propname), \
00710 flags, defaultval ); \
00711 AddPropertyId( PROPID_##propname );
00712
00713 #define A2D_PROPID_D( type, propname, defaultval ) \
00714 A2D_PROPID_D_F( type, propname, defaultval, a2dPropertyId::flag_none )
00715
00716
00717 #define A2D_PROPID_M_F( type, classname , propname, defaultval, mptr, flags ) \
00718 PROPID_##propname = new type( wxT(#propname), \
00719 flags, defaultval, \
00720 static_cast < type::Mptr >( &classname::mptr) ); \
00721 AddPropertyId( PROPID_##propname );
00722
00723
00724 #define A2D_PROPID_M( type, classname, propname, defaultval, mptr ) \
00725 A2D_PROPID_M_F( type, classname, propname, defaultval, mptr, a2dPropertyId::flag_none )
00726
00727
00728
00729
00730
00731 template<class basetype, class proptype >
00732 class a2dPropertyIdGetSet : public a2dPropertyIdTyped< basetype, proptype >
00733 {
00734 public:
00735
00736
00737 typedef basetype (a2dObject::*Get)() const;
00738
00739 typedef void (a2dObject::*Set)(basetype);
00740
00741 typedef void (a2dObject::*ConstSet)( const basetype &value );
00742
00743 typedef basetype a2dObject::* Mptr;
00744
00745
00746 a2dPropertyIdGetSet( const wxString& name, a2dPropertyId::Flags flags, const basetype &defaultvalue,
00747 Get getFunc, Set setFunc
00748 );
00749
00750
00751 a2dPropertyIdGetSet( const wxString& name, a2dPropertyId::Flags flags, const basetype &defaultvalue,
00752 Get getFunc, ConstSet setFunc
00753 );
00754
00755
00756 bool SetPropertyToObject( a2dObject *obj, const basetype &value ) const;
00757
00758
00759 basetype GetPropertyValue( const a2dObject *obj ) const;
00760
00761
00762 basetype GetPropertyValue( const a2dObject *obj, const basetype &defaultvalue ) const;
00763
00764
00765 proptype* GetPropertyClone( const a2dObject *obj ) const;
00766
00767 a2dNamedProperty* GetPropertyAsNamedProperty( const a2dObject *obj ) const;
00768
00769 };
00770
00771
00772
00773 typedef a2dPropertyIdGetSet< bool, a2dBoolProperty > a2dPropertyIdBoolGetSet;
00774
00775
00776
00777
00778
00779 template<class basetype, class proptype>
00780 class a2dMemberDclrTyped : public a2dPropertyIdTyped<basetype, proptype>
00781 {
00782 public:
00783
00784 a2dMemberDclrTyped ( basetype a2dObject::* ptm ) : a2dPropertyIdTyped<basetype, proptype>( ) { m_ptm = ptm; }
00785 bool SetPropertyToObject( a2dObject *obj, const basetype &value ) const;
00786 proptype* GetPropertyClone( const a2dObject *obj ) const;
00787
00788
00789 basetype GetPropertyValue( const a2dObject *obj ) const;
00790
00791
00792 basetype GetPropertyValue( const a2dObject *obj, const basetype &defaultvalue ) const;
00793
00794 protected:
00795
00796
00797 basetype a2dObject::* m_ptm;
00798 };
00799
00800 #if defined(WXDOCVIEW_USINGDLL)
00801 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxInt16, a2dInt16Property> ;
00802 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxInt32, a2dInt32Property> ;
00803 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxUint16, a2dUint16Property> ;
00804 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxUint32, a2dUint32Property> ;
00805 template class A2DGENERALDLLEXP a2dMemberDclrTyped<bool, a2dBoolProperty> ;
00806 template class A2DGENERALDLLEXP a2dMemberDclrTyped<double, a2dDoubleProperty> ;
00807 template class A2DGENERALDLLEXP a2dMemberDclrTyped<void *, a2dVoidPtrProperty> ;
00808 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxString, a2dStringProperty> ;
00809 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxFileName, a2dFileNameProperty> ;
00810 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxColour, a2dColourProperty> ;
00811 template class A2DGENERALDLLEXP a2dMemberDclrTyped<wxArrayString, a2dArrayStringProperty> ;
00812 #endif
00813
00814
00815
00816
00817
00818
00819 typedef a2dMemberDclrTyped<wxInt16, a2dInt16Property> wxMemberDclrInt16;
00820
00821 typedef a2dMemberDclrTyped<wxInt32, a2dInt32Property> wxMemberDclrInt32;
00822
00823 typedef a2dMemberDclrTyped<wxUint16, a2dUint16Property> wxMemberDclrUint16;
00824
00825 typedef a2dMemberDclrTyped<wxUint32, a2dUint32Property> wxMemberDclrUint32;
00826
00827 typedef a2dMemberDclrTyped<bool, a2dBoolProperty> wxMemberDclrBool;
00828
00829 typedef a2dMemberDclrTyped<double, a2dDoubleProperty> wxMemberDclrDouble;
00830
00831 typedef a2dMemberDclrTyped<void *, a2dVoidPtrProperty> wxMemberDclrVoidPtr;
00832
00833 typedef a2dMemberDclrTyped<wxString, a2dStringProperty> wxMemberDclrString;
00834
00835 typedef a2dMemberDclrTyped<wxFileName, a2dFileNameProperty> wxMemberDclrFileName;
00836
00837 typedef a2dMemberDclrTyped<wxColour, a2dColourProperty> wxMemberDclrColour;
00838
00839 typedef a2dMemberDclrTyped<wxArrayString, a2dArrayStringProperty> wxMemberDclrArrayString;
00840
00841
00842
00843 #endif
00844