○ウィジットを最前面に移動
■ウィンドウを最前面に移動
XRaiseWindow(XtDisplay(label1),XtWindow(label1));
■500msごとに、ラベルを交互に最前面に移動します
#include <X11/StringDefs.h>
#include <X11/Intrinsic.h>
#include <X11/Xaw/Form.h>
#include <X11/Xaw/Label.h>
Widget top, form;
Widget label1,label2;
int flag=0;
//タイマーとして動作
void timer(XtAppContext app_context)
{
//ここにタイマーの処理内容を書く
if(flag){
//ウィンドウを最前面に移動
XRaiseWindow(XtDisplay(label1),XtWindow(label1));
flag=0;
}else{
//ウィンドウを最前面に移動
XRaiseWindow(XtDisplay(label2),XtWindow(label2));
flag=1;
}
//経過時間後に関数を呼び出す設定(ミリ秒)
XtAppAddTimeOut(app_context, 500, (XtTimerCallbackProc)timer,app_context);
}
main( int argc, char **argv )
{
XtAppContext app_context;
top = XtVaAppInitialize( &app_context, "test", NULL, 0, &argc, argv, NULL,
XtNhorizDistance,0,
XtNvertDistance,0,
//XtNwidth,500,
//XtNheight,500,
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);
//ラベルの作成
label2 = XtVaCreateManagedWidget("label2",//ウィジット名
labelWidgetClass,//ラベルクラスを指定
form,
//リソースの直接入力(どんどん追加できる)
XtNlabel,"Label2 test",//表示される文字
XtNhorizDistance,10,//開始位置
XtNvertDistance,10,
XtNwidth,100,//幅と高さ
XtNheight,20,
XtNborderWidth,1,//境界線
//リソースここまで
NULL);
XtRealizeWidget( top );
//経過時間後に関数を呼び出す設定(ミリ秒)
XtAppAddTimeOut(app_context, 500, (XtTimerCallbackProc)timer,app_context);
XtAppMainLoop( app_context );
}
▲トップページ
>
Linux と C