[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);
|