[Fxruby-commits] CVS: FXRuby/ext/fox FXRuby.cpp,1.38,1.39
Status: Inactive
Brought to you by:
lyle
From: Lyle J. <ly...@us...> - 2002-04-03 00:34:38
|
Update of /cvsroot/fxruby/FXRuby/ext/fox In directory usw-pr-cvs1:/tmp/cvs-serv4200 Modified Files: FXRuby.cpp Log Message: Corrected a bug in FXRbGetExpectedData() for determining the type (class) of the receiver object. Index: FXRuby.cpp =================================================================== RCS file: /cvsroot/fxruby/FXRuby/ext/fox/FXRuby.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** FXRuby.cpp 1 Apr 2002 23:17:48 -0000 1.38 --- FXRuby.cpp 3 Apr 2002 00:18:12 -0000 1.39 *************** *** 73,80 **** } - FXbool FXRbIsKindOf(VALUE obj,swig_type_info* ty){ - return (FXRbConvertPtr(obj,ty) != 0); - } - // Wrapper around SWIG_NewPointerObj() --- 73,76 ---- *************** *** 468,471 **** --- 464,472 ---- FXint type=SELTYPE(key); FXint id=SELID(key); + + // Extract the FOX object (the receiver) from this Ruby instance + FXObject* obj; + Data_Get_Struct(recv,FXObject,obj); + switch(type){ case SEL_KEYPRESS: *************** *** 557,561 **** } if(type==SEL_COMMAND){ ! if(FXRbIsKindOf(recv,FXRbTypeQuery("FXWindow *"))){ switch(id){ case FXWindow::ID_HIDE: --- 558,562 ---- } if(type==SEL_COMMAND){ ! if(obj->isMemberOf(FXMETACLASS(FXWindow))){ switch(id){ case FXWindow::ID_HIDE: *************** *** 597,629 **** return NULL; case FXWindow::ID_SETVALUE: ! if(FXRbIsKindOf(recv,FXRbTypeQuery("FXButton *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXCheckButton *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXDial *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXRadioButton *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXShutter *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXSpinner *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXTabBar *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXToggleButton *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXScrollbar *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXSlider *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXSwitcher *"))){ return reinterpret_cast<void*>(NUM2INT(value)); } ! else if(FXRbIsKindOf(recv,FXRbTypeQuery("FXColorSelector *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXColorWell *"))){ return reinterpret_cast<void*>(NUM2UINT(value)); } ! else if(FXRbIsKindOf(recv,FXRbTypeQuery("FXProgressBar *"))){ return reinterpret_cast<void*>(NUM2UINT(value)); } ! else if(FXRbIsKindOf(recv,FXRbTypeQuery("FXComboBox *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXTextField *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXDirBox *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXDirList *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXDriveBox *")) || ! FXRbIsKindOf(recv,FXRbTypeQuery("FXFileList *"))){ return static_cast<void*>(STR2CSTR(value)); } ! else if(FXRbIsKindOf(recv,FXRbTypeQuery("FXMenuCommand *"))){ return reinterpret_cast<void*>(RTEST(value) ? 1 : 0); } --- 598,630 ---- return NULL; case FXWindow::ID_SETVALUE: ! if(obj->isMemberOf(FXMETACLASS(FXButton)) || ! obj->isMemberOf(FXMETACLASS(FXCheckButton)) || ! obj->isMemberOf(FXMETACLASS(FXDial)) || ! obj->isMemberOf(FXMETACLASS(FXRadioButton)) || ! obj->isMemberOf(FXMETACLASS(FXShutter)) || ! obj->isMemberOf(FXMETACLASS(FXSpinner)) || ! obj->isMemberOf(FXMETACLASS(FXTabBar)) || ! obj->isMemberOf(FXMETACLASS(FXToggleButton)) || ! obj->isMemberOf(FXMETACLASS(FXScrollbar)) || ! obj->isMemberOf(FXMETACLASS(FXSlider)) || ! obj->isMemberOf(FXMETACLASS(FXSwitcher))){ return reinterpret_cast<void*>(NUM2INT(value)); } ! else if(obj->isMemberOf(FXMETACLASS(FXColorSelector)) || ! obj->isMemberOf(FXMETACLASS(FXColorWell))){ return reinterpret_cast<void*>(NUM2UINT(value)); } ! else if(obj->isMemberOf(FXMETACLASS(FXProgressBar))){ return reinterpret_cast<void*>(NUM2UINT(value)); } ! else if(obj->isMemberOf(FXMETACLASS(FXComboBox)) || ! obj->isMemberOf(FXMETACLASS(FXTextField)) || ! obj->isMemberOf(FXMETACLASS(FXDirBox)) || ! obj->isMemberOf(FXMETACLASS(FXDirList)) || ! obj->isMemberOf(FXMETACLASS(FXDriveBox)) || ! obj->isMemberOf(FXMETACLASS(FXFileList))){ return static_cast<void*>(STR2CSTR(value)); } ! else if(obj->isMemberOf(FXMETACLASS(FXMenuCommand))){ return reinterpret_cast<void*>(RTEST(value) ? 1 : 0); } *************** *** 633,637 **** return reinterpret_cast<void*>(NUM2INT(value)); case FXWindow::ID_SETINTVALUE: ! if(FXRbIsKindOf(recv,FXRbTypeQuery("FXColorWell *"))){ colorValue=NUM2UINT(value); return static_cast<void*>(&colorValue); --- 634,638 ---- return reinterpret_cast<void*>(NUM2INT(value)); case FXWindow::ID_SETINTVALUE: ! if(obj->isMemberOf(FXMETACLASS(FXColorWell))){ colorValue=NUM2UINT(value); return static_cast<void*>(&colorValue); |