XWindow関連
◇-?XWindow関連-アキコ-10/17-16:53(226)-No.462679
▲このページのトップに戻る
462679 | XWindow関連 | アキコ | 2008/10/17-16:53 |
メーカー名:自作PC ショップオリジナル OS名:Linux パソコン名:505291-13286 トラブル現象:ソフトの使い方がわからない Motif関連 -- はじめまして。 Motifを使って、4000行の一覧を表示させようとしてます。 スクロールバーで制御するのですが、サンプルプログラムでは991行しか 表示できません。 何故そうなるのか理由すら分からないので、どなたか教えて下さい。 サンプルプログラムを以下に記述します。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <X11/Xlib.h> #include <X11/Intrinsic.h> #include <X11/StringDefs.h> #include <Xm/Xm.h> #include <Xm/XmAll.h> #include <Xm/PushBG.h> #include <Xm/LabelG.h> #include <Xm/ToggleB.h> #include <Xm/ScrolledW.h> #include <Xm/RowColumn.h> #include <Xm/Form.h> #include <Xm/Text.h> #include <pwd.h> main (int argc, char *argv[]) { Widget toplevel, sw, main_rc, form, toggle, child; XtAppContext app; UserInfo *users; Arg args[32]; int n; int ii; char abuf[128]; XtSetLanguageProc (NULL, NULL, NULL); toplevel = XtVaOpenApplication (&app, "Demos", NULL, 0, &argc, argv, NULL,sessionShellWidgetClass, NULL); n = 0; XtSetArg (args[n], XmNwidth, 500); n++; XtSetArg (args[n], XmNheight, 300); n++; XtSetArg (args[n], XmNscrollingPolicy, XmAUTOMATIC); n++; sw = XmCreateScrolledWindow (toplevel, "scrolled_w", args, n); main_rc = XmCreateRowColumn (sw, "main_rc", NULL, 0); for (ii = 0; ii < 4000; ii++) { form = XmCreateForm (main_rc, "", NULL, 0); n = 0; XtSetArg (args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++; XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++; XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++; XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++; XtSetArg (args[n], XmNrightPosition, 15); n++; XtSetArg (args[n], XmNbackground, 0x000000); n++; XtSetArg (args[n], XmNforeground, 0xffffff); n++; XtSetArg (args[n], XmNheight, 30); n++; XtSetArg (args[n], XmNmarginWidth, 0); n++; XtSetArg (args[n], XmNmarginHeight, 0); n++; XtSetArg (args[n], XmNborderWidth, 0); n++; XtSetArg (args[n], XmNindicatorOn, XmINDICATOR_CHECK_BOX); n++; XtSetArg (args[n], XmNindicatorSize, 22); n++; XtSetArg (args[n], XmNdetailShadowThickness, 3); n++; XtSetArg (args[n], XmNhighlightThickness, 0); n++; memset((char *)abuf, 0, sizeof(abuf)); sprintf(abuf, "%d", ii); child = XmCreateToggleButton (form, abuf, args, n); XtManageChild (child); XtManageChild (form); } XtManageChild (main_rc); XtManageChild (sw); XtRealizeWidget (toplevel); XtAppMainLoop (app); } この様なサンプルプログラムですが、何故991行までしか表示されないのでしょうか? スクロール画面領域のサイズと言うのはどこで決めるのでしょうか? 991行までしか出ないのは、スクロール画面領域のサイズがそこまでしか無い為、 そこまでを表示している気がしますので、スクロール画面領域のサイズが広がれば 沢山の行が表示出来るのではと考えてますが、その画面領域サイズを広げる方法が 分かりません。 申し訳ありませんが回答の程よろしくお願いします。 |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|