class Fox::FXDataTarget
A data target allows a valuator widget such as an FXSlider or FXTextField to be directly connected with a variable in the program. Whenever the valuator control changes, the variable connected through the data target is automatically updated; conversely, whenever the program changes a variable, all the connected valuator widgets will be updated to reflect this new value on the display. For example:
data = FXDataTarget.new("Some Text") textfield = FXTextField.new(p, 12, data, FXDataTarget::ID_VALUE)
Data targets also allow connecting other kinds of widgets (like FXRadioButton and FXMenuCommand) to a variable. In this case, the new value of the connected variable is computed by subtracting FXDataTarget::ID_OPTION from the message identifier. For example, to tie a group of radio buttons to a single data target’s value (so that the buttons are mutually exclusive), use code like this:
data = FXDataTarget.new(0) radio1 = FXRadioButton.new(p, "1st choice", data, FXDataTarget::ID_OPTION) radio2 = FXRadioButton.new(p, "2nd choice", data, FXDataTarget::ID_OPTION + 1) radio3 = FXRadioButton.new(p, "3rd choice", data, FXDataTarget::ID_OPTION + 2)
Note that if you’d like the data target to “forward” its SEL_COMMAND or SEL_CHANGED to some other target object after it has updated the data target value, you can do that just as you would for any other widget. For example, continuing the previous code snippet:
data.connect(SEL_COMMAND) { puts "The new data target value is #{data.value}" }
Events¶ ↑
The following messages are sent by FXDataTarget to its target:
SEL_COMMAND-
Sent after the data target processes a
SEL_COMMANDmessage itself SEL_CHANGED-
Sent after the data target processes a
SEL_CHANGEDmessage itself
Message identifiers¶ ↑
ID_VALUE-
Causes the
FXDataTargetto ask sender for value ID_OPTION-
ID_OPTION+i will set the value to i, where -10000 <= i <= 10000
Attributes
The message identifier for this data target [Integer]
The message target object for this data target {FXObject}
The data target’s current value [Object]
Public Class Methods
Source
SWIGINTERN VALUE
_wrap_new_FXDataTarget(int argc, VALUE *argv, VALUE self) {
VALUE arg1 = (VALUE) Qnil ;
FXObject *arg2 = (FXObject *) 0 ;
FXSelector arg3 = (FXSelector) 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
FXDataTarget *result = 0 ;
if ((argc < 0) || (argc > 3)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
}
if (argc > 0) {
arg1 = argv[0];
}
if (argc > 1) {
res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_FXObject, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXObject *","FXDataTarget", 2, argv[1] ));
}
arg2 = reinterpret_cast< FXObject * >(argp2);
}
if (argc > 2) {
arg3 = NUM2UINT(argv[2]);
}
{
result = (FXDataTarget *)new_FXDataTarget(arg1,arg2,arg3);
DATA_PTR(self) = result; FXRbRegisterRubyObj(self, result);
if(rb_block_given_p()){
rb_yield(self);
}
}
return self;
fail:
return Qnil;
}
Source
# File lib/fox16/kwargs.rb, line 589 def initialize(*args, &blk) argument_names = %w{value target selector} default_params = { :value => nil, :target => nil, :selector => 0 } params = {} params = args.pop if args.last.is_a? Hash args.each_with_index { |e, i| params[argument_names[i].intern] = e } params.keys.each { |key| raise ArgumentError, "Unrecognized parameter #{key}" unless default_params.keys.include?(key) } params = default_params.merge(params) old_initialize(params[:value], params[:target], params[:selector], &blk) end
Public Instance Methods
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_getSelector(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
FXSelector result;
VALUE vresult = Qnil;
if ((argc < 0) || (argc > 0)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget const *","getSelector", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
result = (FXSelector)((FXDataTarget const *)arg1)->getSelector();
vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_getTarget(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
FXObject *result = 0 ;
VALUE vresult = Qnil;
if ((argc < 0) || (argc > 0)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget const *","getTarget", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
result = (FXObject *)((FXDataTarget const *)arg1)->getTarget();
{
swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXObject, (void **) &result);
vresult = FXRbGetRubyObj(result, ty);
}
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_getType(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
FXuint result;
VALUE vresult = Qnil;
if ((argc < 0) || (argc > 0)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget const *","getType", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
result = (FXuint)((FXDataTarget const *)arg1)->getType();
vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_getValue(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
VALUE result;
VALUE vresult = Qnil;
if ((argc < 0) || (argc > 0)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget const *","getValue", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
result = (VALUE)FXDataTarget_getValue((FXDataTarget const *)arg1);
vresult = result;
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_load(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXStream *arg2 = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
if ((argc < 1) || (argc > 1)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","load", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_FXStream, 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXStream &","load", 2, argv[0] ));
}
if (!argp2) {
SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "FXStream &","load", 2, argv[0]));
}
arg2 = reinterpret_cast< FXStream * >(argp2);
FXDataTarget_load(arg1,*arg2);
return Qnil;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_onCmdOption(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXObject *arg2 = (FXObject *) 0 ;
FXSelector arg3 ;
void *arg4 = (void *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
long result;
VALUE vresult = Qnil;
if ((argc < 3) || (argc > 3)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","onCmdOption", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FXObject, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXObject *","onCmdOption", 2, argv[0] ));
}
arg2 = reinterpret_cast< FXObject * >(argp2);
arg3 = NUM2UINT(argv[1]);
arg4 = 0;
result = (long)(arg1)->onCmdOption(arg2,arg3,arg4);
vresult = SWIG_From_long(static_cast< long >(result));
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_onCmdValue(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXObject *arg2 = (FXObject *) 0 ;
FXSelector arg3 ;
void *arg4 = (void *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
long result;
VALUE vresult = Qnil;
if ((argc < 3) || (argc > 3)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","onCmdValue", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FXObject, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXObject *","onCmdValue", 2, argv[0] ));
}
arg2 = reinterpret_cast< FXObject * >(argp2);
arg3 = NUM2UINT(argv[1]);
arg4 = 0;
result = (long)(arg1)->onCmdValue(arg2,arg3,arg4);
vresult = SWIG_From_long(static_cast< long >(result));
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_onUpdOption(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXObject *arg2 = (FXObject *) 0 ;
FXSelector arg3 ;
void *arg4 = (void *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
long result;
VALUE vresult = Qnil;
if ((argc < 3) || (argc > 3)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","onUpdOption", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FXObject, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXObject *","onUpdOption", 2, argv[0] ));
}
arg2 = reinterpret_cast< FXObject * >(argp2);
arg3 = NUM2UINT(argv[1]);
arg4 = 0;
result = (long)(arg1)->onUpdOption(arg2,arg3,arg4);
vresult = SWIG_From_long(static_cast< long >(result));
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_onUpdValue(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXObject *arg2 = (FXObject *) 0 ;
FXSelector arg3 ;
void *arg4 = (void *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
long result;
VALUE vresult = Qnil;
if ((argc < 3) || (argc > 3)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","onUpdValue", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FXObject, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXObject *","onUpdValue", 2, argv[0] ));
}
arg2 = reinterpret_cast< FXObject * >(argp2);
arg3 = NUM2UINT(argv[1]);
arg4 = 0;
result = (long)(arg1)->onUpdValue(arg2,arg3,arg4);
vresult = SWIG_From_long(static_cast< long >(result));
return vresult;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_save(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXStream *arg2 = 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
if ((argc < 1) || (argc > 1)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget const *","save", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_FXStream, 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXStream &","save", 2, argv[0] ));
}
if (!argp2) {
SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "FXStream &","save", 2, argv[0]));
}
arg2 = reinterpret_cast< FXStream * >(argp2);
FXDataTarget_save((FXDataTarget const *)arg1,*arg2);
return Qnil;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_setSelector(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXSelector arg2 ;
void *argp1 = 0 ;
int res1 = 0 ;
if ((argc < 1) || (argc > 1)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","setSelector", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
arg2 = NUM2UINT(argv[0]);
(arg1)->setSelector(arg2);
return Qnil;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_setTarget(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
FXObject *arg2 = (FXObject *) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
void *argp2 = 0 ;
int res2 = 0 ;
if ((argc < 1) || (argc > 1)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","setTarget", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FXObject, 0 | 0 );
if (!SWIG_IsOK(res2)) {
SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FXObject *","setTarget", 2, argv[0] ));
}
arg2 = reinterpret_cast< FXObject * >(argp2);
(arg1)->setTarget(arg2);
return Qnil;
fail:
return Qnil;
}
Source
SWIGINTERN VALUE
_wrap_FXDataTarget_setValue(int argc, VALUE *argv, VALUE self) {
FXDataTarget *arg1 = (FXDataTarget *) 0 ;
VALUE arg2 = (VALUE) 0 ;
void *argp1 = 0 ;
int res1 = 0 ;
if ((argc < 1) || (argc > 1)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_FXDataTarget, 0 | 0 );
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FXDataTarget *","setValue", 1, self ));
}
arg1 = reinterpret_cast< FXDataTarget * >(argp1);
arg2 = argv[0];
FXDataTarget_setValue(arg1,arg2);
return Qnil;
fail:
return Qnil;
}
Source
# File lib/fox16/core.rb, line 82 def to_s value.to_s end
Returns the stringified representation of this data target’s value.