オブジェクトのプロパティ値を取得/設定するには
イベントプロシージャにおいて、オブジェクトのプロパティに対してアクセ
スすることができます。次のAPIを利用します。
アクセス関数 | 機能 |
mpfc::WSCvariant mpfc::WSCbase_getProperty() | プロパティ値の取得 |
mpfc::WSCvariant mpfc::WSCbase_setProperty() | プロパティ値の設定 |
プロパティ値の取得
オブジェクトのプロパティを取得するには、WSCbase クラスのメンバ関数である
getProperty() を利用します。
#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mpfc;
sub event_procedure {
my ($object) = @_;
# "x" (X座標)プロパティの値の文字列による取得
$x = mpfc::WSCbase_getProperty($object,"x");
printf("x=%s\n",mpfc::WSCvariant_getCharPtr($x)); # 文字列の取得
# "y" (Y座標)プロパティの値の取得
$y = mpfc::WSCbase_getProperty($object,"y");
printf("y=%d\n",mpfc::WSCvariant_getLong($y)); # long 型の値の取得
}
1;
"x" の例では、文字列で値を取得し、
"y" の例では、数値型で受け取っています。関数 getProperty() は、
WSCvariant 型で値を返しますが、WSCvariant 型は、それぞれの型の
値を取り出す事ができます。
mpfc.WSCvariant 値取得関数 | 機能 |
mpfc::WSCvarinat_getChar() | char 型の値の取得 |
mpfc::WSCvarinat_getUnsignedChar() | unsigned char 型の値の取得 |
mpfc::WSCvarinat_getShort() | short 型の値の取得 |
mpfc::WSCvarinat_getUnsignedShort() | unsigned short 型の値の取得 |
mpfc::WSCvarinat_getLong() | long 型の値の取得 |
mpfc::WSCvarinat_getUnsignedLong() | unsigned long 型の値の取得 |
mpfc::WSCvarinat_getInt() | int 型の値の取得 |
mpfc::WSCvarinat_getUnsignedInt() | unsigned int 型の値の取得 |
mpfc::WSCvarinat_getFloat() | float 型の値の取得 |
mpfc::WSCvarinat_getDouble() | double 型の値の取得 |
mpfc::WSCvarinat_getCharPtr() | char* 型(文字列)の値の取得 |
プロパティ値の設定
オブジェクトのプロパティを設定するには、WSCbase クラスのメンバ関数である
setProperty() を利用します。
#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mpfc;
sub event_procedure {
my ($object) = @_;
# "x" (X座標)プロパティの文字列による設定
$x="100";
mpfc::WSCbase_setProperty($object,"x",$x);
# "y" (Y座標)プロパティの設定
$y=100;
mpfc::WSCbase_setProperty($object,"y",$y);
return;
}
1;
"x" の例では、文字列で値を設定しています。"y" の例では、整数型で値
を設定しています。
プロパティ値の描画への反映
通常、イベントプロシージャの実行直後に反映されますが、変更後、プロパ
ティの値を直ちに反映させたい場合、update()、draw()、redraw() を呼び
出します。
ウィンドウシステムによっては、(例えば、X11 システムの場合など) 描画
を行った際、すぐにウィンドウシステムに反映されない場合があります。そ
のような場合は、WSDappDev クラスの update() を呼び出してください。
#----------------------------------------------------------
#Function for the event procedure
#----------------------------------------------------------
use mpfc;
sub event_procedure {
my ($object) = @_;
mpfc::WSCbase_getProperty($newvlab_001,"labelString","テキスト");
mpfc::WSCbase_update($newvlab_001); # 直ちにオブジェクトを更新。
mpfc::WSDappDev_update(mpfc::WSGIappDev()); # ウィンドウシステムへの描画要求を反映させます。
mpfc::WSCbase_getProperty($newvlab_002,"labelString","テキスト");
mpfc::WSCbase_update($newvlab_002); # 直ちにオブジェクトを更新。
mpfc::WSDappDev_update(mpfc::WSGIappDev()); # ウィンドウシステムへの描画要求を反映させます。
return;
}
1;