○コントロールの有効・無効 表示・非表示 の切り替え
▼コントロールを有効にする
XtVaSetValues(label1, XtNsensitive,True, NULL );
▼コントロールを無効にする
XtVaSetValues(label1, XtNsensitive,False, NULL );
▼コントロールを表示する
XtVaSetValues(label1, XtNmappedWhenManaged,True, NULL );
▼コントロールを非表示にする
XtVaSetValues(label1, XtNmappedWhenManaged,False, NULL );
■500msごとに有効・無効を切り替える
#include <X11/StringDefs.h>
#include <X11/Intrinsic.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/Label.h>
#include <X11/Xaw/Command.h>
#include <X11/Xaw/AsciiText.h>
Widget form,label1,edit1,button1;//ウィジットの変数
int i=0;
//タイマーとして動作
void timer(XtAppContext app_context)
{
if(i){
//有効化
XtVaSetValues(label1, XtNsensitive,True, NULL );
XtVaSetValues(edit1, XtNsensitive,True, NULL );
XtVaSetValues(button1, XtNsensitive,True, NULL );
i=0;
}else{
//無効化
XtVaSetValues(label1, XtNsensitive,False, NULL );
XtVaSetValues(edit1, XtNsensitive,False, NULL );
XtVaSetValues(button1, XtNsensitive,False, NULL );
i=1;
}
//経過時間後に関数を呼び出しを設定
XtAppAddTimeOut(app_context, 500, (XtTimerCallbackProc)timer,app_context);
}
main( int argc, char **argv )
{
XtAppContext app_context;
Widget top;
top = XtVaAppInitialize( &app_context, "test", NULL, 0, &argc, argv, NULL,NULL);
form = XtVaCreateManagedWidget("form",formWidgetClass,top,NULL);
//ラベルの作成
label1 = XtVaCreateManagedWidget("label1",//ウィジット名
labelWidgetClass,//ラベルクラスを指定
form,
//リソースの直接入力(どんどん追加できる)
XtNlabel,"Label1 test",//表示される文字
XtNhorizDistance,5,//開始位置
XtNvertDistance,5,
XtNwidth,100,//幅と高さ
XtNheight,20,
XtNborderWidth,1,//境界線
//リソースここまで
NULL);
//テキストの作成
edit1 = XtVaCreateManagedWidget("edit1",//ウィジット名
asciiTextWidgetClass,//クラスを指定
form,
//リソースの直接入力(どんどん追加できる)
XtNeditType,XawtextEdit,//読み書き可能
XtNecho,True,//入力文字を表示
XtNhorizDistance,25,//開始位置
XtNvertDistance,30,
XtNwidth,100,//幅と高さ
//XtNheight,200,
XtNborderWidth,1,//境界線
//リソースここまで
NULL);
//ボタンの作成
button1 = XtVaCreateManagedWidget("button1",//ウィジット名
commandWidgetClass,//ボタンクラスを指定
form,
//リソースの直接入力(どんどん追加できる)
XtNlabel,"Button1 test",//表示される文字
XtNhorizDistance, 50,//開始位置
XtNvertDistance,55,
XtNwidth,100,//幅と高さ
XtNheight,20,
XtNborderWidth,1,//境界線
//リソースここまで
NULL);
//経過時間後に関数を呼び出し、タイマーをスタートする
XtAppAddTimeOut(app_context, 500, (XtTimerCallbackProc)timer,app_context);
XtRealizeWidget( top );
XtAppMainLoop( app_context );
}
▲トップページ
>
Linux と C