BayGUI/developper


BayGUI

開発者向け

クラス構造

+ Object
  + Control
    + Button
    + Label
    + ListBox
    + TextField
    + Container
      + Window
      + WindowManager
  + Event
    + KeyEvent
    + MouseEvent
  + Font
  + FontManager
  + Graphics
  + Image
    + Bitmap
    + Icon
  + Rect

Object

すべての親クラスです。

Control

すべての部品の親クラスです。

Button

ボタンクラスです。

ListBox

リストクラスです。

Label

ラベルクラスです。

TextField

テキスト部品です。

Container

部品貼り付け用クラスです。

Window

アプリケーション用雛型クラスです。

WindowManager

ウィンドウマネージャクラスです。

Event

すべてのイベント親クラスです。

KeyEvent

キーイベントクラスです。

MouseEvent

マウスイベントクラスです。

Font

フォントクラスです。

FontManager

フォントマネージャクラスです。

Graphics

描画用クラスです。

Image

イメージ用親クラスです。

Bitmap

ビットマップ用クラスです。

Icon

アイコン用クラスです。

Rect

長方形クラスです。

イベント

キーイベント定数

イベント名説明
KEY_PRESSEDキーの押下
KEY_RELEASEDキーのリリース

マウスイベント定数

イベント名説明
MOUSE_PRESSEDマウスボタンの押下
MOUSE_MOVEDマウスのボタンを押さずに移動しているときに常時発生
MOUSE_RELEASEDマウスボタンのリリース
MOUSE_DRAGGEDマウスのドラッグ

フォーカスイベント定数

イベント名説明
FOCUS_IN非アクティブな部品がアクティブになったときに発生
FOCUS_OUTアクティブな部品が非アクティブになったときに発生

タイマーイベント定数

イベント名説明
TIMERタイマーイベントがくると発生

テキストイベント定数

イベント名説明
TEXT_CHANGEDテキストフィールドでENTERが押されると発生

アイテムイベント定数

イベント名説明
ITEM_SELECTEDリスト部品で項目が選択されると発生

フォント

Mona版

OrangePekoe版

文字コード

デフォルトはUTF-8です。SJISには対応していません。ソースコードはUTF-8で記述してください。

Tips

いろいろな便利な使い方を紹介します。

非矩形ウィンドウ

// 非矩形ウィンドウの例
class MySample : public Window {
public:
  MySample(){
    setRect(220, 140, 211, 227);
    setTitle("MySample");
  }
  void onPaint(Graphics *g) {
    // 何かの描画処理
  }
  void repaint() {
    restoreBackGround();
    onPaint(__g);
  }
};

非アクティブなウィンドウも描画させる

これを有効にしてしまうとウィンドウが重なったときに悲惨なことになりますが(下のウィンドウの描画された部分が上のウィンドウに表示される)それでもしたい方は「非活性のときはタイマーを発生させない」をコメントにしてオーバーライドすればオーケーです。

/**
 タイマーをセットする
 @param duration 発動するまでの時間[ms]
 */
void Window::setTimer(int duration)
{
  // 非活性のときはタイマーを発生させない
  if (focused == false || iconified == true) return;
  
  // タイマー設定メッセージを投げる
  if (MonAPI::Message::send(timerID, MSG_GUISERVER_SETTIMER, threadID, duration, 0, NULL)) {
    //printf("Window->Window: MSG_GUISERVER_SETTIMER failed %d\n", threadID);
  } else {
    //printf("Window->Window: MSG_GUISERVER_SETTIMER sended %d\n", threadID);
  }
}

Threadの隠蔽化

スレッドの隠蔽化を試みたのだが、staticとvirtualは共存できないらしい。 Monaではスレッド対象はstatic関数にする必要がある。 さてどうしたものか・・・。

fileThread.cpp

fileThread.h

コメント欄

コメントはありません。 コメント/BayGUI/developper?

お名前:

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 4448, today: 1, yesterday: 0

添付ファイル: filethread.zip 1383件 [詳細] fileThread.h 1369件 [詳細] fileThread.cpp 847件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:47:54 (3709d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.103 sec.