ページへ戻る

− Links

 印刷 

gg00man​/window :: OSASK計画

osaskwiki:gg00man編集/window

ウィンドウ制御関係 GUIGUI00_man[1]

ページ内コンテンツ
  • ウィンドウ制御関係 GUIGUI00_man
      • lib_openwindow
      • lib_openwindow1
      • lib_closewindow
      • lib_controlwindow
      • 名無し?
  • こめんと欄
Page Top

lib_openwindow

struct LIB_WINDOW *lib_openwindow(struct LIB_WINDOW *window, int slot,
    int x_size, int y_size) :

機能: ウィンドウを開く。

    window = NULL の時はmalloc(128)してそのポインタを返す。window != NULL の
  ときはその値を返す。
    スロットを一つ使う。
    x_size, y_sizeはウィンドウの大きさで、ピクセル単位。x_size >= 88 にする。
  しないとタイトルがつけられなくなって仕様違反。
    このウィンドウが一つでも閉じられるとタスクごと終了させられる。

    アプリがスタートしたら、できるだけ早くウィンドウを開こう!
    ウィンドウを開いたら、できるだけ早くウィンドウタイトルを書き込もう!

参考になるサンプル:helloc4(introa)
Page Top

lib_openwindow1

struct LIB_WINDOW *lib_openwindow1(struct LIB_WINDOW *window, int slot,
    int x_size, int y_size, int flags, int base) :

機能: lib_openwindowとほぼ同じ。ウィンドウを細かく制御するためにシグナルを
      要求する。

    flagsには要求するシグナルの種類を入れる。

     ビット      増分 説明
     bit0 (0x01) +0   VRAMアクセス許可シグナル
     bit0 (0x01) +1   VRAMアクセス禁止シグナル
     bit0 (0x01) +2   ウィンドウ再描画
     bit0 (0x01) +3   ウィンドウ差分描画
     bit1 (0x02) +4   ウィンドウ位置変更 x,y がシグナルに続く
     bit2 (0x04) +5   タイトルバーカラー変更 ステータスがシグナルに続く
     bit3 (0x08) +6   ウィンドウクローズ要求
     bit4 (0x10)      VRAMアクセス許可・禁止シグナル要求反転
     bit5 (0x20) +7   クローズ完了シグナル
     bit6 (0x40) +8   リサイズに予約
     bit7 (0x80)      増分値を4倍にする。

    実際に来るシグナルは base+増分。
    VRAMアクセス禁止シグナルとウィンドウ再描画・差分描画には受信・完了通知
  義務がある。lib_controlwindow参照。
    描画シグナルが来たら、VRAMアクセス禁止中でも描画しなければならない。
  タイトルバーカラー変更やウィンドウ位置変更は、後で描画シグナルが来るので
  状態を覚えておくだけでよい。

参考になる?:pokon0.c
Page Top

lib_closewindow

void lib_closewindow(int opt, struct LIB_WINDOW *window) :

機能: ウィンドウを閉じる。

    optは0。
    ウィンドウはすぐ閉じるわけではないので、スロットを再利用するには拡張
  オープンを使ってクローズ完了シグナルを受け取ること。
Page Top

lib_controlwindow

void lib_controlwindow(int opt, struct LIB_WINDOW *window) :

機能: ウィンドウの再描画・制御シグナル受信通知など。

    optの各ビットで機能を指定する。

   ビット        説明
   bit0 (0x0001) ウィンドウを塗りつぶし、枠を描画
   bit1 (0x0002) コンポーネント (テキストボックスなどのボックス) を描画
   bit8 (0x0100) 描画禁止シグナルの受信通知
   bit9 (0x0200) 再描画完了の通知
Page Top

名無し?

void lib_execcmd0(0x0014, 0x0010, int *buf, 0x000c, 0x0000):

機能: シェル推奨の最大ウィンドウサイズを返す。

      buf[0] = max_x_size;
      buf[1] = max_y_size;
    という具合に書き込まれる。このファンクションを利用しないで好きな大きさで
    ウィンドウをオープンしても構わないが、大きめのウィンドウを開くときは参考
    にするとユーザフレンドリー。

参考になるサンプル:kjpegls
Page Top

こめんと欄


Last-modified: 2009-11-17 (火) 00:00:00 (JST) (117d) by ゲスト