ホームに戻る
newtのテスト(グリッドとボタン)
/*
* newt_test00
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <newt.h>
/*
* gcc -Wall -lnewt newt_test00.c -o newt_test00
*
* 実行すると「test grid」と書かれたグリッド。
* 「select」と書かれたラベルと、
* それぞれ「next」「end」と書かれたボタンが表示される。
* 「next」を押しても反応は無い、
* 「end」を押すと終了する。
*/
int main(int argc, char* argv[])
{
newtComponent form;
newtGrid grid1, grid2;
newtComponent label1;
newtComponent button1, button2;
struct newtExitStruct es;
/* initialize */
newtInit();
newtCls();
label1 = newtLabel(-1, -1 ,"select");
button1 = newtButton(-1, -1, "next");
button2 = newtButton(-1, -1, "end");
/* フォームの作成 */
form = newtForm(NULL, "newt_test00", 0);
/* 引数1:X座標 引数2:Y座標 引数3:表示文字 */
newtDrawRootText(0, 0, "--- newt test00 ---");
/* 引数1:X方向のコンポーネント数 引数2:Y方向のコンポーネント数 */
grid1 = newtCreateGrid(1, 2);
/* 引数1:X方向のコンポーネント数 引数2:Y方向のコンポーネント数 */
grid2 = newtCreateGrid(2, 1);
/* グリッドにコンポーネントを追加 */
newtGridSetField(grid2, 0, 0, NEWT_GRID_COMPONENT, button1, 0, 0, 0, 0, 0, 0);
newtGridSetField(grid2, 1, 0, NEWT_GRID_COMPONENT, button2, 0, 0, 0, 0, 0, 0);
/* グリッドにグリッド、コンポーネントを追加 */
newtGridSetField(grid1, 0, 0, NEWT_GRID_COMPONENT, label1, 0, 0, 0, 1, NEWT_ANCHOR_LEFT, 0);
newtGridSetField(grid1, 0, 1, NEWT_GRID_SUBGRID, grid2, 0, 0, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
/* コンポーネントをフォームへ追加 */
newtFormAddComponents(form, label1, button1, button2, NULL);
newtGridWrappedWindow(grid1, "test grid");
newtGridFree(grid2, 1);
for(;;) {
/* フォームを実行 */
newtFormRun(form, &es);
/* button2の押下でループをぬける */
if (es.reason == NEWT_EXIT_COMPONENT && es.u.co == button2){
break;
}
}
/* 終了 */
newtFormDestroy(form);
newtFinished();
return 0;
}