ホームに戻る
 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;
}

inserted by FC2 system