クラス SGDialog

ダイアログを提供するクラス [詳細]

#include <sgdialog.h>

SGDialogに対する継承グラフ
Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 SGDialog (SGCore *core, int id)
 ダイアログクラスのコンストラクタ
virtual ~SGDialog ()
 ダイアログクラスのデストラクタ
SGCoreGetCore ()
 コアオブジェクトを取得する
SGGroupObjectGroup ()
 ダイアログに登録されたオブジェクトを取得する
int GetId ()
 ダイアログIDを取得する。
SGHandle GetHandle ()
 ハンドルを取得する。
int OpenDialog (int x, int y, int flags=0, int time=300)
 ダイアログを開く
void Close (int param=0, int flags=-1, int time=-1)
 ダイアログを閉じる
void Move (int dx, int dy)
 ダイアログを移動させる。
void SetSize (int w, int h)
 ダイアログのサイズを設定する
void GetSize (int &w, int &h)
 ダイアログのサイズを取得する
void GetDialogPos (int &x, int &y)
 ダイアログの位置を取得する。
void SetDialogPos (int x, int y)
 ダイアログの位置を変更する。
void SetColorBG (unsigned int col=((((unsigned int) 0x87)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x87)<< 8)|(unsigned int) 0x00))
 ダイアログの背景色を設定する
unsigned int GetColorBG ()
 ダイアログの背景色を取得する
int ToTop ()
 ダイアログを最前面に移動する。
void Grab ()
 ダイアログをドラッグ移動する状態にする。
void Ungrab ()
 ダイアログのドラッグ移動状態を解放する。
void Show ()
 ダイアログを表示する。
void Hide ()
 ダイアログを非表示にする。
int GetBGFocus ()
 バックグラウンドでのオブジェクト操作する/しないの設定情報の取得。
int SetBGFocus (int focus)
 バックグラウンドでもオブジェクトを操作する/しない。
int GetMovable ()
 ドラッグ操作で移動可能かどうかの設定情報を返す。
int SetMovable (int move)
 ドラッグ操作で移動可能かどうかの設定をする。
int SetZStatus (int tatus)
 ダイアログの重ね順に関するステータスを設定する。
int GetZStatus ()
 ウィンドウの重ね順に関するステータスを取得する。
int IsVisible ()
 ダイアログが非表示かどうかを調べる。
int IsInside (int posx, int posy)
 指定した座標がダイアログ上に含まれるか判定する。
int IsTransparent (int posx, int posy)
 指定した座標が透明かどうか判定する
int IsActive ()
 ダイアログがアクティブか判定する
int GetActiveDialog ()
 アクティブなダイアログを取得する
int GetActiveObject (int groupid=SG_DIALOG_OBJECTS_ID)
 アクティブなオブジェクトを取得する
SGHandle HitTest (int posx, int posy)
 指定した位置にあるオブジェクトを調べます。
void SetPosition (int objid, int x, int y)
 オブジェクトの位置を設定する
void SetPosition (int objid, int x, int y, int w, int h)
 オブジェクトの位置、サイズを設定する
void SetSize (int objid, int w, int h)
 オブジェクトのサイズを設定する
void GetSize (int objid, int &w, int &h)
 オブジェクトのサイズを取得する
void GetPosition (int objid, int &x, int &y)
 オブジェクトの座標を取得する
void SetAttr (int objid, int attr)
 オブジェクトの属性を設定する
int GetAttr (int objid)
 オブジェクトの属性を取得する
SGObjectGetObjectFromHandle (SGHandle handle)
 オブジェクトハンドルからオブジェクトを取得する
SGObjectGetObject (int objid)
 オブジェクトIDからオブジェクトを取得する
SGObjectGetKeyboardObj ()
 キーボードオブジェクトを取得する
int GetCaretObject ()
 キャレットを持つオブジェクトを取得する。
int SetCaretObject (int id=SG_CARET_AUTO, int show=TRUE)
 オブジェクトにキャレットを設定する。
void SetFocusStop (int objid, int stop)
 フォーカスできる・できないを設定します。
int GetFocusObject ()
 フォーカスを持つオブジェクトを取得する。
int SetFocusObject (int id)
 オブジェクトにフォーカスを設定する。
int FocusNext ()
 オブジェクトのフォーカスを次のオブジェクトに設定する。
int FocusPrevious ()
 オブジェクトのフォーカスを1つ前のオブジェクトに設定する。
void SetCursorPos (int objid)
 指定オブジェクトの中心へマウスカーソル位置を移動する
int EditboxCtrl (int objid, int ctrl, int pos=-1)
 エディットボックスをコントロールする
int EditboxCtrl (int objid, int ctrl, SGString *str)
 エディットボックスをコントロールする
int EditboxCtrl (int objid, int ctrl, const char *str)
 エディットボックスをコントロールする。
void SetText (int objid, SGString text)
 オブジェクトの文字列を設定する
SGStringGetText (int objid)
 オブジェクトの文字列を取得する
void SetFontId (int objid, int fontid)
 オブジェクトで使用するフォントを設定する。
int GetFontId (int objid)
 オブジェクトの使用しているフォントを取得する。
void SetMarginX (int objid, int margin)
 オブジェクトの横方向マージンを設定する。
int GetMarginX (int objid)
 オブジェクトの横方向マージンを取得する。
void SetMarginY (int objid, int margin)
 オブジェクトの縦方向マージンを設定する。
int GetMarginY (int objid)
 オブジェクトの縦方向マージンを取得する。
void SetAlign (int objid, int align)
 オブジェクトのテキスト配置条件を設定する。
int GetAlign (int objid)
 オブジェクトのテキスト配置条件を取得する。
void SetObjectColor (int objid, unsigned int col)
 オブジェクトに文字色を設定する。
unsigned int GetObjectColor (int objid)
 オブジェクトの文字色を取得する。
SGRect Update (int objid, int attr=-1)
 オブジェクトの属性変更と更新する
SGRect Update (int objid, const char *text)
 オブジェクトの文字列変更と更新する
SGRect Update (int objid, int x, int y)
 オブジェクトの位置変更と更新する
SGRect Update (int objid, int x, int y, int w, int h)
 オブジェクトの位置、サイズ変更と更新する
SGRect Update (SGRect rect=SGRect(), int erase=1)
 表示画面の指定領域の更新(再描画)する
int FlipOff ()
 画面の更新を停止する
int FlipOn ()
 ダイアログのサーフェイスの内容を画面に反映する
void DrawText (SGString text, int x, int y, int fontid, unsigned int col=((((unsigned int) 0x00)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x00)<< 8)|0xff))
 文字列を描画する
void DrawText (SGString text, int x, int y, int w, int h, int fontid, unsigned int col=((((unsigned int) 0x00)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x00)<< 8)|0xff), int align=SG_ALIGN_CENTER|SG_ALIGN_MIDDLE)
 文字列を描画する
void GetTextSize (SGString text, int &width, int &height, int fontid)
 文字列を描画するのに必要な領域を取得する
void SetTimerInterval (int time)
 ダイアログ タイマーインターバルを設定する。
void SetSingleTimerInterval (int time)
 ダイアログ シングル(ワンショット)タイマーインターバルを設定する。
virtual void DrawObject (SGRect region)
 オブジェクトを描画する。
virtual void Draw (SGRect region)
 表示の更新が必要な時に呼ばれる
virtual void MoveCursor (int x, int y, int act)
 マウスカーソルが移動した時に呼ばれる。
virtual void PushButton (SGHandle handleobj, int act)
 マウスカーソルが移動した時に呼ばれる。
virtual void ClickButton (SGHandle handleobj, int act)
 ボタンオブジェクトまたはキーボードオブジェクトがクリックした時に呼ばれる
virtual void DownButton (SGHandle handleobj, int act)
 ボタンオブジェクトまたはキーボードオブジェクトが押された時に呼ばれる
virtual void UpButton (SGHandle handleobj, int act)
 ボタンオブジェクトまたはキーボードオブジェクトが放された時に呼ばれる
virtual void PreInitial ()
 ダイアログが開く直前の初期化タイミングで呼ばれる
virtual void PostInitial (SGHandle handledlg, int id)
 ダイアログが開いた直後の初期化タイミングで呼ばれる
virtual void Sound (int type, int val1, int val2)
 ビープ音を鳴らすタイミングで呼ばれる。
virtual void Timer (TimeVal time)
 ダイアログ タイマー イベントが発生した時呼ばれる
virtual void SingleTimer (TimeVal time)
 ダイアログ シングル タイマーのイベントが発生した時呼ばれる
virtual void ResetTimer ()
 ダイアログ タイマーをリセット(停止)する。
virtual void ReceiveUserEvent (int param, void *data, SGHandle handledlg, SGHandle handleobj)
 ユーザイベントが発行された時に呼ばれる
virtual void ChangePalette (SGPalette *pal)
 パレットが変更された時に呼ばれる
virtual void Wheel (int step, int over, int top)
 マウスのホイールが回転した時に呼ばれる
virtual void Closed (SGHandle handledlg, int id, int param)
 ダイアログが閉じた時に呼ばれる
virtual void Inactivate ()
 アクティブでなくなった時よばれる。
virtual void Activate ()
 アクティブになった時よばれる。
virtual const char * GetIdName (int id=-1)
 ダイアログIDの名前を取得する。
SGObjectAddButton (int id, SGString text, int x, int y, int w, int imageid, int attr=SG_ATTR_NORMAL, int fontid=0, int align=SG_ALIGN_CENTER, int marginx=0, int marginy=0)
 ボタンオブジェクトを生成し追加する
SGObjectAddEditbox (int id, SGString text, int x, int y, int w, int imageid, int attr=SG_ATTR_NORMAL, int fontid=0, int align=SG_ALIGN_CENTER, int marginx=0, int marginy=0)
 エディットボックスオブジェクトを生成し追加する
SGObjectAddFrame (int id, SGString text, int x, int y, int w, int h, int imageid, int attr=SG_ATTR_NORMAL, int fontid=0, int align=SG_ALIGN_CENTER, int marginx=0, int marginy=0)
 フレームオブジェクトを生成し追加する
SGObjectAddPicture (int id, int x, int y, int w, int h, const char *file, int attr=SG_ATTR_NORMAL, int shared=1)
 ピクチャー オブジェクトを生成し追加する
SGObjectAddIcon (int id, int x, int y, int w, int h, const char *file, int attr=SG_ATTR_NORMAL, int shared=1)
 アイコン オブジェクトを生成し追加する
SGObjectAddMovie (int id, int x, int y, const char *file, int attr=SG_ATTR_NORMAL, int loop=TRUE, int play=FALSE)
 ムービー オブジェクトを生成し追加する
SGObjectAddCanvas (int id, int x, int y, int w, int h, int attr=SG_ATTR_NORMAL)
 キャンバス オブジェクトを生成し追加する
SGObjectAddText (int id, SGString text, int x, int y, int w, int h, int fontid, int attr=SG_ATTR_NORMAL, unsigned int col=((((unsigned int) 0x00)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x00)<< 8)|0xff), unsigned int colsub=((((unsigned int) 0x78)<< 24)|(((unsigned int) 0x78)<< 16)|(((unsigned int) 0x78)<< 8)|0xff), int align=SG_ALIGN_CENTER, int marginx=0, int marginy=0)
 テキスト オブジェクトを生成し追加する
SGObjectAddKeyboard (int id)
 キーボードオブジェクトを生成し追加する
void PostEventClickObject (int id)
 オブジェクトをクリックする。
int DialogReference ()
 ダイアログの参照を開始することを宣言する
int DialogUnReference ()
 ダイアログの参照を終了することを宣言する

フレンド

class SGWindowDataList
void SGCore::PostEventButton (int act, int click)
void SGCore::ReleaseAction (SGHandle dhdlg, SGHandle dhobj)

説明

ダイアログを提供するクラス

ダイアログとは、レイヤー管理(面の積み重ねとその重ね順)された透明の描画枠です。
ダイアログには、ボタン、エディットボックスなどのオブジェクトを配置する事ができます。
また、イベント(マウス、クリック、キーボードなど)やメッセージも管理します。
イベント受取用の関数をオーバーライドし専用の動作を追加します。

代表的なイベント受取用関数:

次に示す関数が代表的なイベント受取用関数(一部のみ)です。
○オープン時に一度だけ呼ばれる(初期化用)
  virtual void PostInitial(SGHandle handledlg,int id);
○表示の更新が必要な時に呼ばれる
  virtual void Draw(SGRect region);
○ボタンオブジェクトがクリックされ時に呼ばれる
  virtual void ClickButton(SGHandle handleobj,int act);
○設定したインターバルタイマー イベントが発生した時呼ばれる
  virtual void Timer(TimeVal time);
○ダイアログが閉じた時に呼ばれる
  virtual void Closed(SGHandle handledlg,int id,int param);

コンストラクタとデストラクタ

SGDialog ( SGCore core,
int  id 
)

ダイアログクラスのコンストラクタ

ダイアログに必要なリソース領域を確保します。
このクラスは通常、継承して使います。
coreはアプリケーションが一つだけ保持するSGCoreのポインタを渡します。
通常、ダイアログの中から他のダイアログを開きますので GetCore()で取得できます。
それ以外の場所では app.GetCore()のように SGApplicationクラスから取得できます。
idはアプリケーション全体でユニークな数値を指定して下さい。
このidは、以降ダイアログの識別として使用し、いろいろな関数で使用されます。

引数:
core SGCoreのポインタ
id ダイアログのリソースID
使用例:

ダイアログエディタを使用すると宣言部分、定義部分は自動生成されます。
//--------------------------------------------------
// 宣言部分
class DlgSample : public SGDialog
{
public:
    DlgSample(SGCore* core);
    virtual ~DlgSample();
      .
      .
};

//--------------------------------------------------
// 定義部分
DlgSample::DlgSample(SGCore* core) : SGDialog(core, DLG_SAMPLE)
{
    // 初期化
}

//--------------------------------------------------
// 使用部分
DlgSample* pDlg = new DlgSample(GetCore());
pDlg->OpenDialog(80, 60);
~SGDialog (  )  [virtual]

ダイアログクラスのデストラクタ

ダイアログクラスのデストラクタです。 確保していたリソース領域が解放されていない場合、ここで解放しますが、 通常、 Release() で既に解放されています。
もしも、このダイアログが最後のダイアログの場合、SG_EVENTTYPE_QUIT メッセージを発行します。
このメッセージ発行後、メッセージ待ち受け関数
int SGCore::CheckEvent(_SGEvent* evt)
関数が(-1)を返します。
ダイアログエディタが自動生成した main.cpp は

while( !quit ){
    _SGEvent event;
    if( app.GetEvent(&event) ){
        if( app.CheckEvent(&event) == -1 ) quit = TRUE;
    }
}

となっていますのでアプリケーションが終了します。
終了させたくない場合は main.cpp を編集して下さい。


関数

SGCore * GetCore (  ) 

コアオブジェクトを取得する

コアオブジェクトを取得します。

戻り値:
SGCoreクラスのポインタ
SGGroupObject * Group (  ) 

ダイアログに登録されたオブジェクトを取得する

ダイアログクラスは1つのSGGroupObjectを保持しています。
ダイアログに登録される各オブジェクトはこのグループクラスのリスト構造の 1つとして記憶されます。
このグループオブジェクトの中にもグループオブジェクトが存在する場合があります。 このダイアログクラスが保持するSGGroupObjectは GetParent()でNULLを返します。

戻り値:
ダイアログクラスが保持するSGGroupObjectのポインタ
int GetId (  ) 

ダイアログIDを取得する。

ダイアログIDを取得します。

戻り値:
ダイアログID
SGHandle GetHandle (  ) 

ハンドルを取得する。

ウィンドウのハンドルを取得します。

戻り値:
ウィンドウハンドル
int OpenDialog ( int  x,
int  y,
int  flags = 0,
int  time = 300 
)

ダイアログを開く

パラメータx,yの位置にダイアログを開きます。
アニメーションを行わない場合はflags、timeは省略し、x,yのみ指定します。
メニューやプルダウン表示のようにスクロールしながら現れる(アニメーション)ように する場合はflags、timeを指定します。
この関数は自分自身の、
PreInitial();
Sound(int type=SG_SOUND_OPEN,int val1=Handle,int val2=0);
をコールします。また、全部のダイアログの
PostInitial(SGHandle handledlg,int id); をコールします。

引数:
x ダイアログ左上のx座標
y ダイアログ左上のy座標
flags アニメーション動作

SG_DLG_SCROLL_DOWN  上から出現します。
SG_DLG_SCROLL_UP    下から出現します。
SG_DLG_SCROLL_RIGHT 左から出現します。
SG_DLG_SCROLL_LEFT  右から出現します。
SG_DLG_HIDE         見えない状態のままにする。

省略可能(省略時アニメーションなし)

time 開く(閉じる)までにかける時間(ms)
省略可能(省略時300ms)
戻り値:
TRUE 正常
FALSE 異常
void Close ( int  param = 0,
int  flags = -1,
int  time = -1 
)

ダイアログを閉じる

ダイアログのクローズを開始します。
この関数をコールすると全てのダイアログの
void SGDialog::Closed(SGHandle handledlg,int id,int param)
関数がコールされます。この時全てのダイアログにパラメータとして ここで指定された param が通知されます。
全ての関数への通知の後、SG_EVENTTYPE_CLOSEメッセージが発行され、 ダイアログの登録リストから削除されます。この時 Release()が呼ばれ リソースの解放が行われます。

引数:
param 全てのダイアログに通知する任意の値
省略可能(省略時は0)
flags アニメーション動作

SG_DLG_SCROLL_DOWN  上へクローズします。
SG_DLG_SCROLL_UP    下へクローズします。
SG_DLG_SCROLL_RIGHT 左へクローズします。
SG_DLG_SCROLL_LEFT  右へクローズします。

省略可能(省略時はオープン時の動作に連動します)
※注意:クローズ時のアニメーション動作は意味が逆になります。

time (-1)閉じるまでにかける時間(ms)
省略可能、省略時または-1を指定した場合はオープン時に指定された時間を採用します。
void Move ( int  dx,
int  dy 
)

ダイアログを移動させる。

ダイアログを現在の位置から指定量、移動させます。 指定する値は絶対座標でなく相対座標です。ご注意ください。

引数:
dx x方向移動量
dy y方向移動量
void SetSize ( int  w,
int  h 
)

ダイアログのサイズを設定する

ダイアログのサイズを設定します。

引数:
w 横幅
h 高さ
void GetSize ( int &  w,
int &  h 
)

ダイアログのサイズを取得する

ダイアログのサイズを取得します。

引数:
w 横幅
h 高さ

SGSurfaceを再定義しています。

void GetDialogPos ( int &  x,
int &  y 
)

ダイアログの位置を取得する。

ダイアログの位置(座標)を取得します。

引数:
x 座標X(取得用)
y 座標Y(取得用)
void SetDialogPos ( int  x,
int  y 
)

ダイアログの位置を変更する。

ダイアログの位置を座標(x,y)へ移動させます。

引数:
x 座標X
y 座標Y
void SetColorBG ( unsigned int  col = ((((unsigned int) 0x87 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x87 )<<8)|(unsigned int) 0x00 )  ) 

ダイアログの背景色を設定する

ダイアログの背景色を設定します。

引数:
col 背景色
unsigned int GetColorBG (  ) 

ダイアログの背景色を取得する

ダイアログの背景色を取得します。

int ToTop (  ) 

ダイアログを最前面に移動する。

ダイアログの重ね合わせ順を一番上に変更します。
他のダイアログが上に重なった状態で、一部または全部が見えなくなっている時に 重なり順を一番上に変更し見える状態にします。

戻り値:
TRUE 成功。一番上に移動しました。
FALSE 失敗
void Grab (  ) 

ダイアログをドラッグ移動する状態にする。

ダイアログをドラッグ移動させるような場合に使用します。
この関数コール後、 SGDialog::Ungrab()をコールするまで、マウス移動操作は ダイアログをドラッグ移動させます。
解放するには SGDialog::Ungrab()を使用します。

参照:
void SGDialog::Ungrab()
void Ungrab (  ) 

ダイアログのドラッグ移動状態を解放する。

ダイアログをドラッグ移動させるような場合に使用します。
SGDialog::Grab()でのドラッグ状態から解放します。

参照:
void SGDialog::Grab()
void Show (  ) 

ダイアログを表示する。

Hide()によって非表示になっているダイアログを表示(見えるように)します。

参照:
SGDialog::Hide()
SGDialog::IsVisible()
void Hide (  ) 

ダイアログを非表示にする。

ダイアログを非表示に(見えないように)します。
クローズはしません。
Show()で元に戻ります。

参照:
SGDialog::Show()
SGDialog::IsVisible()
int GetBGFocus (  ) 

バックグラウンドでのオブジェクト操作する/しないの設定情報の取得。

ダイアログがアクティブでない状態でもボタンなどの操作をするか、しないかの設定状態を取得します。

戻り値:
TRUE バックグラウンドでも操作できる
FALSE バックグラウンドでは操作できない(初期化時)
参照:
int SGDialog::SetBGFocus(int focus)
int SetBGFocus ( int  focus  ) 

バックグラウンドでもオブジェクトを操作する/しない。

ダイアログがアクティブでない状態でもボタンなどの操作をするか、しないかを設定します。
初期状態ではボタンなどの操作はできません。
新しいウィンドウをオープン後もボタンなどの操作を有効にするにはこの関数でTRUEを設定する 必要があります。

引数:
focus フォーカス

TRUE  バックグラウンドでも操作できる
FALSE バックグラウンドでは操作できない(初期化時)
戻り値:
設定前の状態
参照:
int SGDialog::GetBGFocus()
int GetMovable (  ) 

ドラッグ操作で移動可能かどうかの設定情報を返す。

ダイアログをマウスのドラッグ操作で移動するか、しないかの設定状態を取得します。

戻り値:
TRUE 移動する
FALSE 移動しない(初期化時)
参照:
int SGDialog::SetMovable(int move)
int SGDialog::SetZStatus(int status)
int SGDialog::GetZStatus()
int SetMovable ( int  move  ) 

ドラッグ操作で移動可能かどうかの設定をする。

ダイアログをマウスのドラッグ操作で移動するか、しないかを設定します。
一般のPCアプリケーションはタイトル部分のドラッグで移動や、重なりを最上位へ移動させる 機能がついていますが、PlusGライブラリで作られるアプリケーションは初期状態では、 ダイアログ移動も、重ね順移動もオフに設定されています。
マウスで移動可能にするには SGDialog::SetMovable() をTRUEで使用します。
マウスクリック時に重なり順を上に移動させるには SGDialog::SetZStatus() をSG_ZSTATUS_UPで使用します。

引数:
move ON/OFF設定

TRUE  移動する
FALSE 移動しない(初期値)
戻り値:
設定前の状態
参照:
int SGDialog::GetMovable()
int SGDialog::SetZStatus(int status)
int SGDialog::GetZStatus()
int SetZStatus ( int  status  ) 

ダイアログの重ね順に関するステータスを設定する。

ダイアログの重ね順に関するステータスを設定します。
一般のPCアプリケーションはタイトル部分のドラッグで移動や、重なりを最上位へ移動させる 機能がついていますが、PlusGライブラリで作られるアプリケーションは初期状態では、 ダイアログ移動も、重ね順移動もオフに設定されています。
マウスクリック時に重なり順を上に移動させるには SGDialog::SetZStatus() をSG_ZSTATUS_UPで使用します。 マウスで移動可能にするには SGDialog::SetMovable() をTRUEで使用します。

引数:
status 新しいステータス

SG_ZSTATUS_LOCK    0 クリックしても順番は変化しません。(デフォルト)
SG_ZSTATUS_UP      1 クリックされると最前にアップします。
SG_ZSTATUS_TOPMOST 2 常に最前になるようになります。(未対応)
SG_ZSTATUS_DESKTOP 3 常に一番下になるようになります(BOTTOMMOST)(未対応)
戻り値:
設定前の状態
参照:
int SGDialog::SetMovable(int move)
int SGDialog::GetMovable()
int SGDialog::SetZStatus(int status)
int SGDialog::GetZStatus()
int GetZStatus (  ) 

ウィンドウの重ね順に関するステータスを取得する。

ウィンドウの重ね順に関するステータスを取得します。

戻り値:
現在の重ね順状態
SG_ZSTATUS_LOCK    0 クリックしても順番は変化しません。(デフォルト)
SG_ZSTATUS_UP      1 クリックされると最前にアップします。
SG_ZSTATUS_TOPMOST 2 常に最前になるようになります。(未対応)
SG_ZSTATUS_DESKTOP 3 常に一番下になるようになります(BOTTOMMOST)(未対応)
int IsVisible (  ) 

ダイアログが非表示かどうかを調べる。

ダイアログが Hide()によって非表示になっているか、表示されている状態か調べます。

戻り値:
TRUE 見える状態です。
FALSE 見えない状態です。
参照:
SGDialog::Show()
SGDialog::Hide()
int IsInside ( int  posx,
int  posy 
)

指定した座標がダイアログ上に含まれるか判定する。

指定したポイント(座標)がダイアログの範囲内にあるかどうかを判定します。
ポイントはスクリーン座標系(画面左上からの座標)です。

引数:
posx 判定点の座標X(スクリーン座標系)
posy 判定点の座標Y(スクリーン座標系)
戻り値:
TRUE 指定の座標はダイアログ上にあります。
FALSE 指定の座標はダイアログの外側にあります。
int IsTransparent ( int  posx,
int  posy 
)

指定した座標が透明かどうか判定する

指定したポイント(座標)がダイアログの範囲内で且つその部分が透明かどうかを判定します。
ポイントはスクリーン座標系(画面左上からの座標)です。

引数:
posx 判定点の座標X(スクリーン座標系)
posy 判定点の座標Y(スクリーン座標系)
戻り値:
TRUE 指定の座標はダイアログ上で且つ透明部分です。
FALSE 指定の座標はダイアログの外側か、内側で透明では無い部分です。

SGSurfaceを再定義しています。

int IsActive (  ) 

ダイアログがアクティブか判定する

ダイアログがアクティブ(複数のダイアログのうち、一番上にある状態)かどうかを判断します。

戻り値:
TRUE アクティブです。
FALSE アクティブではない。
int GetActiveDialog (  ) 

アクティブなダイアログを取得する

アクティブな(複数のダイアログのうち、一番上にある)ダイアログのIDを取得します。

戻り値:
ID アクティブなダイアログのID
int GetActiveObject ( int  groupid = SG_DIALOG_OBJECTS_ID  ) 

アクティブなオブジェクトを取得する

指定のグループ内でのACTIVEなオブジェクトIDを取得します
(なければ0を返します) 全てのオブジェクトは SG_DIALOG_OBJECTS_ID というIDのグループ内に登録されています。
パラメータIDを省略すると SG_DIALOG_OBJECTS_ID が指定されますので、現在のダイアログから 最初に見つかるアクティブなオブジェクトを見つけようとします。

引数:
groupid 省略時(SG_DIALOG_OBJECTS_ID)
戻り値:
ID アクティブなオブジェクトのID
0 アクティブなオブジェクトが見つからなかった
SGHandle HitTest ( int  posx,
int  posy 
)

指定した位置にあるオブジェクトを調べます。

指定した位置(座標)にあるオブジェクトを調べ、オブジェクトIDを返します。 ポイントはスクリーン座標系(画面左上からの座標)です。

引数:
posx 判定点の座標X(スクリーン座標系)
posy 判定点の座標Y(スクリーン座標系)
戻り値:
0(ゼロ)以上 指定した位置に存在するオブジェクトのID
0(ゼロ) 指定した位置にはオブジェクトが見つかりませんでした。
void SetPosition ( int  objid,
int  x,
int  y 
)

オブジェクトの位置を設定する

位置情報は変更しますが画面には反映されません。実際に反映させるには
void SGObject::Update()
int SGDialog::Flip()
をコールする必要があります。位置を変更する時は
void SGDialog::Update(int objid,int x,int y) を使用した方が便利です。

引数:
objid オブジェクトID
x X座標
y Y座標
参照:
SGDialog::SetPosition(int objid,int x,int y,int w,int h)
SGDialog::SetSize(int objid,int w,int h)
SGDialog::GetPosition(int objid,int& x,int& y)
SGDialog::GetSize(int objid,int& w,int& h)
SGDialog::Update(int objid,int x,int y)
SGDialog::Update(int objid,int x,int y,int w,int h)
void SetPosition ( int  objid,
int  x,
int  y,
int  w,
int  h 
)

オブジェクトの位置、サイズを設定する

位置、サイズ情報は変更しますが画面には反映されません。実際に反映させるには
void SGObject::Update()
int SGDialog::Flip()
をコールする必要があります。位置、サイズを変更する時は
void SGDialog::Update(int objid,int x,int y,int w,int h) を使用した方が便利です。

引数:
objid オブジェクトID
x X座標
y Y座標
w 
h 高さ
参照:
SGDialog::SetPosition(int objid,int x,int y)
SGDialog::SetSize(int objid,int w,int h)
SGDialog::GetPosition(int objid,int& x,int& y)
SGDialog::GetSize(int objid,int& w,int& h)
SGDialog::Update(int objid,int x,int y)
SGDialog::Update(int objid,int x,int y,int w,int h)
void SetSize ( int  objid,
int  w,
int  h 
)

オブジェクトのサイズを設定する

サイズ情報は変更しますが画面には反映されません。実際に反映させるには
void SGObject::Update()
int SGDialog::Flip()
をコールする必要があります。サイズを変更する時は
void SGDialog::Update(int objid,IGNORE,IGNORE,int w,int h) を使用した方が便利です。

引数:
objid オブジェクトID
w 
h 高さ
参照:
SGDialog::SetPosition(int objid,int x,int y)
SGDialog::SetPosition(int objid,int x,int y,int w,int h)
SGDialog::GetPosition(int objid,int& x,int& y)
SGDialog::GetSize(int objid,int& w,int& h)
SGDialog::Update(int objid,int x,int y)
SGDialog::Update(int objid,int x,int y,int w,int h)
void GetSize ( int  objid,
int &  w,
int &  h 
)

オブジェクトのサイズを取得する

指定したオブジェクトのサイズを取得します。

引数:
objid オブジェクトID
w 幅 (取得用)
h 高さ(取得用)
void GetPosition ( int  objid,
int &  x,
int &  y 
)

オブジェクトの座標を取得する

指定したオブジェクトの座標を取得します。

引数:
objid オブジェクトID
x X座標(取得用)
y Y座標(取得用)
void SetAttr ( int  objid,
int  attr 
)

オブジェクトの属性を設定する

指定したオブジェクトの属性を設定します。
属性は変更しますが画面には反映されません。実際に反映させるには
void SGObject::Update()
int SGDialog::Flip()
をコールする必要があります。しかし実際にはフォーカスの変化やグループ中のアクティブ処理なども 行う必要があるので、属性を変更する時は
void SGDialog::Update(int objid,int attr)
を使用した方が便利です。

引数:
objid オブジェクトID
attr 属性

SG_ATTR_NORMAL  (0)
SG_ATTR_DISABLE (1)
SG_ATTR_ACTIVE  (2)
SG_ATTR_FOCUS   (3)
SG_ATTR_DOWN    (4)
SG_ATTR_ACTDOWN (5)
SG_ATTR_HIDE    (6)
SG_FOCUS_ON     (16)
SG_FOCUS_OFF    (17)
参照:
SGDialog::Update(int objid,int attr)
SGDialog::GetAttr()
int GetAttr ( int  objid  ) 

オブジェクトの属性を取得する

指定したオブジェクトの属性を取得します。

引数:
objid オブジェクトID
戻り値:
属性
参照:
SGDialog::SetAttr()
SGDialog::Update(int objid,int attr)
SGObject * GetObjectFromHandle ( SGHandle  handle  ) 

オブジェクトハンドルからオブジェクトを取得する

与えられた SGHandle handleからSGObject*を取得します。

引数:
handle オブジェクトのハンドル
戻り値:
SGObjectクラスのポインタを返します。
SGObject * GetObject ( int  objid  ) 

オブジェクトIDからオブジェクトを取得する

与えられた objid オブジェクトIDからオブジェクト クラスのポインタを取得します。

引数:
objid オブジェクトID
戻り値:
SGObjectクラスのポインタを返します。
SGObject * GetKeyboardObj (  ) 

キーボードオブジェクトを取得する

キーボード オブジェクト クラスのポインタを取得します。

戻り値:
SGObject* キーボード オブジェクト クラスのポインタを返します。
int GetCaretObject (  ) 

キャレットを持つオブジェクトを取得する。

ダイアログ内にエディットボックス オブジェクトが複数ある場合に、 どのオブジェクトがキャレットを持っているのか確認する場合に使用します。
※キャレットは1つのエディットボックス オブジェクトにのみ存在します。

戻り値:
オブジェクトID
見つからなかった場合は0(ゼロ)が返ります。
参照:
SGDialog::SetCaretObject(int id)
int SetCaretObject ( int  id = SG_CARET_AUTO,
int  show = TRUE 
)

オブジェクトにキャレットを設定する。

指定したエディットボックス オブジェクトにキャレットを表示させます。
(またはキャレットを消す)
ここで指定したオブジェクトは関数 GetCaretObject() で取得できます。
関数 EditboxCtrl() でエディットボックス文字列を編集する際の ID 指定時に使用すると便利です。
id に SG_CARET_HIDE を指定した場合は HideCaret() がコールされキャレットは非表示となりますが、 show を FALSE にした場合は ShowCaret() をコールしないという指示で、表示中のキャレットが非表示になる わけではありません。show を FALSE にした場合、表示/非表示の状態を変化させないという指示になります。
ダイアログはオープン時キャレットは非表示になっています。この関数 SetCaretObject() で第2パラメータを 省略して(またはTRUEで)コールした時点でキャレットが表示されます。

引数:
id エディットボックス オブジェクトID
省略した場合 SG_CARET_AUTO となります。
オブジェクトID以外に次の機能コードを指定することもできます。

SG_CARET_AUTO(0)  自動で最初に見つかったエディットボックス オブジェクトにキャレットを置きます
SG_CARET_HIDE(-1) キャレットを消します。
show キャレット表示 TRUE:する(省略時) FALSE:しない
戻り値:
直前にキャレットを持っていたオブジェクトID
参照:
SGDialog::GetCaretObject()
void SetFocusStop ( int  objid,
int  stop 
)

フォーカスできる・できないを設定します。

指定したオブジェクトがフォーカスできるか、できないようにするかを設定します。
フォーカスとはそのオブジェクトが選択された状態のことです。
初期状態では、EditBoxObjectとButtonObjectにはフラグ「TRUE」が設定されています
それ以外のオブジェクトにはフラグ「FALSE」が設定されています

引数:
objid オブジェクトID
stop フラグ

TRUE(1)  フォーカスできるようになります
FALSE(0) フォーカスできないようになります
参照:
SGDialog::SetFocusObject(int id)
SGDialog::GetFocusObject()
SGDialog::FocusNext()
SGDialog::FocusPrevious()
int GetFocusObject (  ) 

フォーカスを持つオブジェクトを取得する。

現在フォーカスを持っているオブジェクトのIDを取得します。

戻り値:
0(ゼロ)以上 フォーカスを持っているオブジェクトのID
0(ゼロ) 失敗。フォーカスを持っているオブジェクトが無かった。
参照:
SGDialog::SetFocusStop(int objid,int stop)
SGDialog::SetFocusObject(int id)
SGDialog::FocusNext()
SGDialog::FocusPrevious()
int SetFocusObject ( int  id  ) 

オブジェクトにフォーカスを設定する。

指定のオブジェクトにフォーカスを設定します。
設定前にフォーカスを持っていたオブジェクトのフォーカス解除も行います。

引数:
id オブジェクトID
戻り値:
0(ゼロ)以上 新しくフォーカスを持ったオブジェクトのID
0(ゼロ) 失敗。フォーカスを設定できませんでした。
参照:
SGDialog::SetFocusStop(int objid,int stop)
SGDialog::GetFocusObject()
SGDialog::FocusNext()
SGDialog::FocusPrevious()
int FocusNext (  ) 

オブジェクトのフォーカスを次のオブジェクトに設定する。

現在のフォーカスを持っているオブジェクトの次のオブジェクトにフォーカスを設定します。
設定前にフォーカスを持っていたオブジェクトのフォーカス解除も行います。

戻り値:
0(ゼロ)以上 新しくフォーカスを持ったオブジェクトのID
0(ゼロ) 失敗。フォーカスを設定できませんでした。
参照:
SGDialog::SetFocusStop(int objid,int stop)
SGDialog::SetFocusObject(int id)
SGDialog::GetFocusObject()
SGDialog::FocusPrevious()
int FocusPrevious (  ) 

オブジェクトのフォーカスを1つ前のオブジェクトに設定する。

現在のフォーカスを持っているオブジェクトの1つ前のオブジェクトにフォーカスを設定します。
設定前にフォーカスを持っていたオブジェクトのフォーカス解除も行います。

戻り値:
0(ゼロ)以上 新しくフォーカスを持ったオブジェクトのID
0(ゼロ) 失敗。フォーカスを設定できませんでした。
参照:
SGDialog::SetFocusStop(int objid,int stop)
SGDialog::SetFocusObject(int id)
SGDialog::GetFocusObject()
SGDialog::FocusNext()
void SetCursorPos ( int  objid  ) 

指定オブジェクトの中心へマウスカーソル位置を移動する

指定オブジェクトの中心へマウスカーソルを移動します。

引数:
objid オブジェクトID
int EditboxCtrl ( int  objid,
int  ctrl,
int  pos = -1 
)

エディットボックスをコントロールする

エディットボックスのキャレット移動と文字の削除を行います。 pos は ctrl が SG_CUR_POSITION の時のみ使用します。

引数:
objid オブジェクトID
ctrl 機能コード

SG_CUR_POSITION  キャレット位置をpos文字目に移動します。
SG_CUR_FORWARD   キャレット位置を一文字分進めます。
SG_CUR_BACK      キャレット位置を一文字分戻します。
SG_CUR_BEGIN     キャレット位置を先頭に移動します。
SG_CUR_LAST      キャレット位置を文字列の最後に移動します。
SG_CUR_DELETE    キャレット位置の文字を削除します。
SG_CUR_REMOVEALL 全ての文字を削除します
pos キャレット位置(ctrlがSG_CUR_POSITIONの時のみ)
戻り値:
0以上 現在のキャレット位置
-1 エラー
参照:
void SGDialog::EditboxCtrl(int objid,int ctrl,const char* str)
void SGDialog::EditboxCtrl(int objid,int ctrl,SGString* str)
int EditboxCtrl ( int  objid,
int  ctrl,
SGString str 
)

エディットボックスをコントロールする

エディットボックスのキャレット移動と文字の追加、削除を行います。 pos は ctrl が SG_CUR_POSITION の時のみ使用します。

引数:
objid オブジェクトID
ctrl 機能コード

SG_CUR_FORWARD   キャレット位置を一文字分進めます。
SG_CUR_BACK      キャレット位置を一文字分戻します。
SG_CUR_BEGIN     キャレット位置を先頭に移動します。
SG_CUR_LAST      キャレット位置を文字列の最後に移動します。
SG_CUR_DELETE    キャレット位置の文字を削除します。
SG_CUR_REMOVEALL 全ての文字を削除します
SG_CUR_INSERT    キャレット位置に文字を挿入します。
SG_CUR_ADD       最後に文字を追加します。
str 文字
戻り値:
0以上 現在のキャレット位置
-1 エラー
参照:
void SGDialog::EditboxCtrl(int objid,int ctrl,int pos)
void SGDialog::EditboxCtrl(int objid,int ctrl,const char* str)
int EditboxCtrl ( int  objid,
int  ctrl,
const char *  str 
)

エディットボックスをコントロールする。

エディットボックスのキャレット移動と文字の追加、削除を行います。 pos は ctrl が SG_CUR_POSITION の時のみ使用します。

引数:
objid オブジェクトID
ctrl 機能コード

SG_CUR_FORWARD   キャレット位置を一文字分進めます。
SG_CUR_BACK      キャレット位置を一文字分戻します。
SG_CUR_BEGIN     キャレット位置を先頭に移動します。
SG_CUR_LAST      キャレット位置を文字列の最後に移動します。
SG_CUR_DELETE    キャレット位置の文字を削除します。
SG_CUR_REMOVEALL 全ての文字を削除します
SG_CUR_INSERT    キャレット位置に文字を挿入します。
SG_CUR_ADD       最後に文字を追加します。
str 文字
戻り値:
0以上 現在のキャレット位置
-1 エラー
参照:
void SGDialog::EditboxCtrl(int objid,int ctrl,int pos)
void SGDialog::EditboxCtrl(int objid,int ctrl,SGString* str)
void SetText ( int  objid,
SGString  text 
)

オブジェクトの文字列を設定する

文字列は変更しますが画面には反映されません。実際に反映させるには
void SGObject::Update()
int SGDialog::Flip()
をコールする必要があります。文字列を変更する時は
void SGDialog::Update(int objid,const char* text) を使用した方が便利です。

引数:
objid オブジェクトID
text 文字列
参照:
SGDialog::GetText(int objid)
SGString * GetText ( int  objid  ) 

オブジェクトの文字列を取得する

オブジェクトの文字列を取得します。

引数:
objid オブジェクトID
戻り値:
文字列
参照:
SGDialog::SetText(int objid,SGString text)
void SetFontId ( int  objid,
int  fontid 
)

オブジェクトで使用するフォントを設定する。

表示の際にオブジェクトが使用するフォントを変更(設定)します。

引数:
objid オブジェクトID
fontid フォントのリソースID
参照:
SGDialog::GetFontId(int objid)
int GetFontId ( int  objid  ) 

オブジェクトの使用しているフォントを取得する。

表示の際にオブジェクトが使用しているフォントを取得します。

引数:
objid オブジェクトID
戻り値:
フォントのリソースID
参照:
SGDialog::SetFontId(int objid,int fontid)
void SetMarginX ( int  objid,
int  margin 
)

オブジェクトの横方向マージンを設定する。

オブジェクトが文字列表示の際に使用する横方向マージン情報を変更(設定)します。

引数:
objid オブジェクトID
margin マージン
参照:
SGDialog::GetMarginX(int objid)
int GetMarginX ( int  objid  ) 

オブジェクトの横方向マージンを取得する。

オブジェクトが文字列表示の際に使用する横方向マージン情報を取得します。

引数:
objid オブジェクトID
戻り値:
マージン
参照:
SGDialog::SetMarginX(int objid,int margin)
void SetMarginY ( int  objid,
int  margin 
)

オブジェクトの縦方向マージンを設定する。

オブジェクトが文字列表示の際に使用する縦方向マージン情報を変更(設定)します。

引数:
objid オブジェクトID
margin マージン
参照:
SGDialog::GetMarginY(int objid)
int GetMarginY ( int  objid  ) 

オブジェクトの縦方向マージンを取得する。

オブジェクトが文字列表示の際に使用する縦方向マージン情報を取得します。

引数:
objid オブジェクトID
戻り値:
マージン
参照:
SGDialog::SetMarginY(int objid,int margin)
void SetAlign ( int  objid,
int  align 
)

オブジェクトのテキスト配置条件を設定する。

オブジェクトが文字列表示の際に使用する配置条件を変更(設定)します。

引数:
objid オブジェクトID
align 配置
左右方向の寄せ

SG_ALIGN_CENTER  中央
SG_ALIGN_LEFT    左寄せ
SG_ALIGN_RIGHT   右寄せ

上下方向の寄せ

SG_ALIGN_MIDDLE  中央
SG_ALIGN_TOP     上寄せ
SG_ALIGN_BOTTOM  下寄せ

属性

SG_ALIGN_XSTRETCH 横方向が枠に収まらない時は幅を縮小して全部を表示します。
SG_ALIGN_YSTRETCH 縦方向が枠に収まらない時は高さを縮小して全部を表示します。
SG_ALIGN_STRETCH  横方向または縦方向が枠に収まらない時は縮小して全部を表示します。
SG_ALIGN_COMMA    3桁毎にカンマを追加し、通貨表示にします(1,234,567)
SG_ALIGN_NOCLIP   枠からはみ出す場合でもクリップしないでそのまま表示します。

左右方向の寄せと上下方向の寄せをそれぞれ指定できます。
属性は複数指定可能です。
寄せや属性など複数指定の場合は|(or)で組み合わせて指定します。

参照:
SGDialog::GetAlign(int objid)
int GetAlign ( int  objid  ) 

オブジェクトのテキスト配置条件を取得する。

オブジェクトが文字列表示の際に使用する配置条件を取得します。

引数:
objid オブジェクトID
戻り値:
テキスト配置条件
参照:
SGDialog::SetAlign(int objid,int align)
void SetObjectColor ( int  objid,
unsigned int  col 
)

オブジェクトに文字色を設定する。

オブジェクトが文字列表示の際に使用する文字色を変更(設定)します。

引数:
objid オブジェクトID
col 文字色
参照:
SGDialog::GetObjectColor(int objid)
unsigned int GetObjectColor ( int  objid  ) 

オブジェクトの文字色を取得する。

オブジェクトが文字列表示の際に使用する文字色を取得します。

引数:
objid オブジェクトID
戻り値:
RGB 文字表示色
参照:
SGDialog::SetObjectColor(int objid,unsigned int col)
SGRect Update ( int  objid,
int  attr = -1 
)

オブジェクトの属性変更と更新する

指定したオブジェクトの属性変更と画面への反映、フォーカスの変化、グループ中のアクティブ処理など 属性変更に伴う必要処理を全て行います。
void SGObject::SetAttr(int attr)
void SGObject::Update()
int SGDialog::Flip()
などの関数がコールされます。

この関数は内部で Flip()を使用します。 Flip()をコールする関数を連続して使用する場合、 速度が著しく低下する場合があります。そのような場合 Update()の前に FlipOff()、 全ての Update()の後に FlipOn()をコールすると Flip()が抑制され速度が向上します。

特定のオブジェクトの表示を更新(再描画)させる場合も、 attrを省略して Update(ID)と、この関数を使用すると便利です。

この関数は画面表示が完了してから使用できるようになります。
よってコンストラクタ、PreInitial()の中では使用できません。 PostItitial()から使用できるようになります。

引数:
objid オブジェクトID
attr 属性

SG_ATTR_NORMAL  (0)
SG_ATTR_DISABLE (1)
SG_ATTR_ACTIVE  (2)
SG_ATTR_FOCUS   (3)
SG_ATTR_DOWN    (4)
SG_ATTR_ACTDOWN (5)
SG_ATTR_HIDE    (6)
SG_FOCUS_ON     (16)
SG_FOCUS_OFF    (17)

※省略可能です

戻り値:
更新領域を返します。
参照:
SGDialog::FlipOff()
SGDialog::FlipOn()
SGDialog::SetAttr()
SGDialog::GetAttr()
SGRect Update ( int  objid,
const char *  text 
)

オブジェクトの文字列変更と更新する

指定したオブジェクトの文字列変更と画面への反映など、文字列変更に伴う必要処理を全て行います。
void SGObject::SetText(SGString text)
void SGObject::Update()
int SGDialog::Flip()
などの関数がコールされます。

この関数は内部で Flip()を使用します。 Flip()をコールする関数を連続して使用する場合、 速度が著しく低下する場合があります。そのような場合 Update()の前に FlipOff()、 全ての Update()の後に FlipOn()をコールすると Flip()が抑制され速度が向上します。

この関数は画面表示が完了してから使用できるようになります。
よってコンストラクタ、PreInitial()の中では使用できません。 PostItitial()から使用できるようになります。

引数:
objid オブジェクトID
text 文字列
戻り値:
更新領域を返します。
参照:
SGDialog::FlipOff()
SGDialog::FlipOn()
SGDialog::SetText(int objid,SGString text)
SGDialog::GetText(int objid)
SGRect Update ( int  objid,
int  x,
int  y 
)

オブジェクトの位置変更と更新する

指定したオブジェクトの位置変更と画面への反映など、位置変更に伴う必要処理を全て行います。
void SGObject::SetPosition(int x,int y)
void SGObject::Update()
int SGDialog::Flip()
などの関数がコールされます。

この関数は内部で Flip()を使用します。 Flip()をコールする関数を連続して使用する場合、 速度が著しく低下する場合があります。そのような場合 Update()の前に FlipOff()、 全ての Update()の後に FlipOn()をコールすると Flip()が抑制され速度が向上します。

この関数は画面表示が完了してから使用できるようになります。
よってコンストラクタ、PreInitial()の中では使用できません。 PostItitial()から使用できるようになります。

引数:
objid オブジェクトID
x X座標
y Y座標
戻り値:
更新領域を返します。
変更前の領域と変更後の領域を両方含む領域が返されます。
参照:
SGDialog::FlipOff()
SGDialog::FlipOn()
SGDialog::SetPosition(int objid,int x,int y)
SGDialog::SetPosition(int objid,int x,int y,int w,int h)
SGDialog::SetSize(int objid,int w,int h)
SGDialog::GetPosition(int objid,int& x,int& y)
SGDialog::GetSize(int objid,int& w,int& h)
SGDialog::Update(int objid,int x,int y,int w,int h)
SGRect Update ( int  objid,
int  x,
int  y,
int  w,
int  h 
)

オブジェクトの位置、サイズ変更と更新する

指定したオブジェクトの位置、サイズ変更と画面への反映など、位置、サイズ変更に伴う必要処理を全て行います。
void SGObject::SetPosition(int x,int y,int w,int h)
void SGObject::Update()
int SGDialog::Flip()
などの関数がコールされます。

この関数は内部で Flip()を使用します。 Flip()をコールする関数を連続して使用する場合、 速度が著しく低下する場合があります。そのような場合 Update()の前に FlipOff()、 全ての Update()の後に FlipOn()をコールすると Flip()が抑制され速度が向上します。

この関数は画面表示が完了してから使用できるようになります。
よってコンストラクタ、PreInitial()の中では使用できません。 PostItitial()から使用できるようになります。

引数:
objid オブジェクトID
x X座標
y Y座標
w 
h 高さ
戻り値:
更新領域を返します。
変更前の領域と変更後の領域を両方含む領域が返されます。
参照:
SGDialog::SetPosition(int objid,int x,int y)
SGDialog::SetPosition(int objid,int x,int y,int w,int h)
SGDialog::SetSize(int objid,int w,int h)
SGDialog::GetPosition(int objid,int& x,int& y)
SGDialog::GetSize(int objid,int& w,int& h)
SGDialog::Update(int objid,int x,int y)
SGRect Update ( SGRect  rect = SGRect(),
int  erase = 1 
)

表示画面の指定領域の更新(再描画)する

ダイアログの指定領域に表示されている全ての表示更新(再描画)を行います。
rectは更新を行う領域です、省略もしくは SGRect()と空の領域を指定するとダイアログ全体になります。
eraseがTRUE(1)の場合、再表示の前にいったん透明で塗りつぶしを行います。
この関数は画面表示が完了してから使用できるようになります。
よってコンストラクタ、PreInitial()の中では使用できません。 PostItitial()から使用できるようになります。

引数:
rect 領域
※省略時はダイアログの表示範囲の全体です。
erase 消す/消さない

TRUE(1) 再表示の前に領域を透明で塗りつぶす
FALSE(0) 再表示のみを行う
戻り値:
更新領域を返します。(引数rectと同じです) ※省略時は TRUE(消す)です
int FlipOff (  ) 

画面の更新を停止する

この関数は、画面(フレームバッファ)への反映を抑制します。
FlipOff()実行後 Flip()や Update()など Flip()をコールする関数を呼び出しても 画面は変化しません。
この抑制は FlipOn()を呼び出すことで解除でき、解除時に Flip()が実行されます。
FlipOff()はネスト(入れ子)可能です。 FlipOff()中の FlipOff()回数はカウントアップされ、 FlipOn()でカウントダウンします、カウントがゼロに戻った時 Flip()が実行されます。

戻り値:
FlipOff()の保持数を返します。0の時は、更新が反映されたことを意味します。
参照:
int SGDialog::Flip()
int SGDialog::FlipOn()
int FlipOn (  ) 

ダイアログのサーフェイスの内容を画面に反映する

FlipOff()での画面(フレームバッファ)への反映の抑制を解除し、画面の更新を再開します。 各オブジェクトの変更後や、 DrawLine()DrawText()を使用した後など、 サーフェイスへの描画を行っても画面(フレームバッファ)へは反映されません。
FlipOn()はサーフェイスの内容を画面(フレームバッファ)へ転送する働きをします。
FlipOff()が複数回実行されている場合は同じ数だけのFlipOn()を実行しないと解除できません。
解除に成功すると変更内容をフレームバッファへ転送し、実際に描画を更新します。 画面の更新は範囲に含まれる全てのオブジェクトの描画を実行し、その後、オブジェクト以外の、 ユーザが描画した部分の再描画を行う為に
void SGDialog::Draw(SGRect region)
がコールされます。

戻り値:
FlipOff()の保持数を返す。0 になるまで反映は行わない。
参照:
int SGDialog::Flip()
int SGDialog::FlipOff()
void DrawText ( SGString  text,
int  x,
int  y,
int  fontid,
unsigned int  col = ((((unsigned int) 0x00 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x00 )<<8)|0xff) 
)

文字列を描画する

ダイアログの指定した位置に文字列を描画します。
描画位置のみ指定し、範囲は指定しません。したがって、寄せやクリップの機能はありません。

引数:
text 文字列
x X座標
y Y座標
fontid フォントのリソースID
col 文字色
参照:
DrawText( text, x, y, w, h, fontid, col, align)
void DrawText ( SGString  text,
int  x,
int  y,
int  w,
int  h,
int  fontid,
unsigned int  col = ((((unsigned int) 0x00 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x00 )<<8)|0xff),
int  align = SG_ALIGN_CENTER|SG_ALIGN_MIDDLE 
)

文字列を描画する

ダイアログの指定した位置に文字列を描画します。
描画位置や範囲も指定しますので、寄せやクリップの機能があります。

引数:
text 文字列
x X座標
y Y座標
w 
h 高さ
fontid フォントのリソースID
col 文字色
align 配置
左右方向の寄せ

SG_ALIGN_CENTER  中央
SG_ALIGN_LEFT    左寄せ
SG_ALIGN_RIGHT   右寄せ

上下方向の寄せ

SG_ALIGN_MIDDLE  中央
SG_ALIGN_TOP     上寄せ
SG_ALIGN_BOTTOM  下寄せ

属性

SG_ALIGN_XSTRETCH 横方向が枠に収まらない時は幅を縮小して全部を表示します。
SG_ALIGN_YSTRETCH 縦方向が枠に収まらない時は高さを縮小して全部を表示します。
SG_ALIGN_STRETCH  横方向または縦方向が枠に収まらない時は縮小して全部を表示します。
SG_ALIGN_COMMA    3桁毎にカンマを追加し、通貨表示にします(1,234,567)
SG_ALIGN_NOCLIP   枠からはみ出す場合でもクリップしないでそのまま表示します。

左右方向の寄せと上下方向の寄せをそれぞれ指定できます。
属性は複数指定可能です。
寄せや属性など複数指定の場合は|(or)で組み合わせて指定します。

参照:
DrawText( text, x, y, fontid, col)
void GetTextSize ( SGString  text,
int &  width,
int &  height,
int  fontid 
)

文字列を描画するのに必要な領域を取得する

fontidで指定されたフォント情報でtextを描画した場合に必要な領域(幅・高さ)を求めます。
パラメータのwidth、heightに結果が返ります。

引数:
text 文字列
width 幅 (取得用)
height 高さ(取得用)
fontid フォント リソースID
void SetTimerInterval ( int  time  ) 

ダイアログ タイマーインターバルを設定する。

タイマーは各ダイアログに1つずつあるダイアログタイマーと、 アプリケーションに1つだけのアプリケーション タイマーとがあります。
用途によって使い分けて下さい。
インターバル(間隔)をミリ秒単位で指定します。
関数コールと同時にタイマーがスタートします。
インターバルに0(ゼロ)を指定するとタイマーが停止します。
設定したインターバル毎に
void SGDialog::Timer(TimeVal time)
をコールします。

引数:
time インターバル(ms単位)
参照:
void SGApplication::SetApplicationTimerInterval(unsigned long interval)
void SetSingleTimerInterval ( int  time  ) 

ダイアログ シングル(ワンショット)タイマーインターバルを設定する。

シングルタイマー(ワンショットタイマー)とは1回だけ発生するタイマーです。 インターバル(間隔)をミリ秒単位で指定します。
関数コールと同時にタイマーがスタートし、1回発生すると停止します。
発生前にインターバルに0(ゼロ)を指定するとタイマーが停止します。
設定したインターバル時間後に
void SGDialog::SingleTimer(TimeVal time)
をコールします。

引数:
time インターバル(ms単位)
void DrawObject ( SGRect  region  )  [virtual]

オブジェクトを描画する。

オブジェクトを描画する時 SGSurface::Flip() からコールされます。
regionは更新が必要な領域です。この関数がコールされた時点で、更新領域 region は クリッピングされています。
この関数は拡張できるように仮想関数(Virtual)となっていますが、標準的な使い方では この関数をオーバーライドする必要はありません。オブジェクト以外の表示の更新は SGDialog::Draw()で行います。
オブジェクトの表示方法を変更したい時や、オブジェクトを表示する前の下地処理を行いたい時は この関数をオーバーライドすることでできます。
標準状態では次のようなコードになっています。

コード:
void SGDialog::DrawObject(SGRect region)
{
    if( mCore && GetSurface() ){
        mObjects.Draw(this,region);
        Draw(region);
    }
}
引数:
region 更新領域

SGSurfaceを再定義しています。

void Draw ( SGRect  region  )  [virtual]

表示の更新が必要な時に呼ばれる

表示の更新が必要な時に全てのオブジェクトの表示が更新された後、コールされます。
regionは更新が必要な領域です。この関数がコールされた時点で、更新領域 region は クリッピングされています。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
表示の更新時にオリジナルな処理を追加する必要がある場合は、この関数をオーバーライドして使用します。

引数:
region 更新領域
例:
example_canvas_arc.cpp, example_canvas_arcnegative.cpp, example_canvas_cap.cpp, example_canvas_clip.cpp, example_canvas_curverect.cpp, example_canvas_curveto.cpp, example_canvas_dash.cpp, example_canvas_fillstroke.cpp, example_canvas_fillstyle.cpp, example_canvas_hello.cpp, example_canvas_join.cpp, と example_canvas_vuggy.cpp.
void MoveCursor ( int  x,
int  y,
int  act 
) [virtual]

マウスカーソルが移動した時に呼ばれる。

マウスの座標変化やボタン操作時に発生するイベントを受けて、この関数がコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
マウスの動作に伴う処理を記述する必要がある場合は、この関数をオーバーライドして使用します。
通常、マウスイベントは最上位のアクティブなウィンドウ(ダイアログ)にのみ通知を行います。
バックグラウンドになっても通知を受け取りたい場合は SetBGFocus を使用し、バックグラウンドでも イベントを受け取れるようにする必要があります。
マウスイベントは、ウィンドウの大きさ、範囲に関係なく通知されます。

引数:
x マウス座標X
y マウス座標Y
act 動作

SG_ACT_DOWN ボタンが押された
SG_ACT_UP   ボタンが放された
SG_ACT_MOVE マウスが移動した
参照:
SGDialog::int SetBGFocus(int focus)
void PushButton ( SGHandle  handleobj,
int  act 
) [virtual]

マウスカーソルが移動した時に呼ばれる。

マウスの座標変化やボタン操作時に発生するイベントを受けて、この関数がコールされます。
この関数は現在の最上位ウィンドウと、それ以外のダイアログでバックグラウンドでも イベントを受け取るよう設定されたダイアログに通知します。

引数:
x マウス座標X
y マウス座標Y
act 動作

SG_ACT_DOWN ボタンが押された
SG_ACT_UP   ボタンが放された
SG_ACT_MOVE マウスが移動した
参照:
SGDialog::int SetBGFocus(int focus) ボタンオブジェクトまたはキーボードオブジェクトが操作された時に呼ばれるボタンオブジェクトまたはキーボードオブジェクトが操作された時に発生するイベントを受けて、 この関数がコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
ボタンの動作に伴う処理を記述する必要がある場合は、この関数をオーバーライドして使用します。

SGDialog::PushButton() は、「押した」「放した」「確定した」「リピートした」と 全てのイベントでコールされます。 それに対して
「押した」時は SGDialog::DownButton()
「放した」時は SGDialog::UpButton()
「確定した」「リピートした」時は SGDialog::ClickButton()
がコールされます。、必要、好みに応じて使い分けて下さい。

オブジェクトのハンドル handleobj は
SGObject* obj = GetObjectFromHandle(handleobj);
でオブジェクト クラスに変換できます。

メッセージ発行のタイミング:
ButtonDUCR.png

メッセージ発行のタイミング

引数:
handleobj イベントを発行したオブジェクトのハンドル
act ボタンの動作

SG_ACT_DOWN   押された
SG_ACT_UP     放された
SG_ACT_CLICK  確定した
SG_ACT_REPEAT リピートした
void ClickButton ( SGHandle  handleobj,
int  act 
) [virtual]

ボタンオブジェクトまたはキーボードオブジェクトがクリックした時に呼ばれる

ボタンオブジェクトまたはキーボードオブジェクトがクリック(確定)した時に発生するイベントを受けて、 この関数がコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
ボタンクリック(確定)の動作に伴う処理を記述する必要がある場合は、この関数をオーバーライドして使用します。

SGDialog::PushButton() は、「押した」「放した」「確定した」「リピートした」と 全てのイベントでコールされます。 それに対して
「押した」時は SGDialog::DownButton()
「放した」時は SGDialog::UpButton()
「確定した」「リピートした」時は SGDialog::ClickButton()
がコールされます。、必要、好みに応じて使い分けて下さい。

オブジェクトのハンドル handleobj は
SGObject* obj = GetObjectFromHandle(handleobj);
でオブジェクト クラスに変換できます。 クリックはボタンを押して放した時発生しますが、押しっ放しでも300ms経過すると発生します。

メッセージ発行のタイミング:
ButtonDUCR.png

メッセージ発行のタイミング

引数:
handleobj イベントを発行したオブジェクトのハンドル
act ボタンの動作

SG_ACT_CLICK  確定した
SG_ACT_REPEAT リピートした
サンプル:
void OrgDialog::ClickButton(SGHandle handleobj,int act)
{
    SGObject* obj = GetObjectFromHandle(handleobj);
    if( obj ){
        int objid = obj->GetId();
        switch(objid){
        case BTN_CLOSE:
            Close();
            break;
        case BTN_XXXX:
            .
            .
            break;
        }
    }
}
void DownButton ( SGHandle  handleobj,
int  act 
) [virtual]

ボタンオブジェクトまたはキーボードオブジェクトが押された時に呼ばれる

ボタンオブジェクトまたはキーボードオブジェクトが押された時に発生するイベントを受けて、 この関数がコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
ボタン押下の動作に伴う処理を記述する必要がある場合は、この関数をオーバーライドして使用します。

SGDialog::PushButton() は、「押した」「放した」「確定した」「リピートした」と 全てのイベントでコールされます。 それに対して
「押した」時は SGDialog::DownButton()
「放した」時は SGDialog::UpButton()
「確定した」「リピートした」時は SGDialog::ClickButton()
がコールされます。、必要、好みに応じて使い分けて下さい。

オブジェクトのハンドル handleobj は
SGObject* obj = GetObjectFromHandle(handleobj);
でオブジェクト クラスに変換できます。

メッセージ発行のタイミング:
ButtonDUCR.png

メッセージ発行のタイミング

引数:
handleobj イベントを発行したオブジェクトのハンドル
act ボタンの動作(必ず SG_ACT_DOWN です)
void UpButton ( SGHandle  handleobj,
int  act 
) [virtual]

ボタンオブジェクトまたはキーボードオブジェクトが放された時に呼ばれる

ボタンオブジェクトまたはキーボードオブジェクトが放された時に発生するイベントを受けて、 この関数がコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
ボタン解放の動作に伴う処理を記述する必要がある場合は、この関数をオーバーライドして使用します。

SGDialog::PushButton() は、「押した」「放した」「確定した」「リピートした」と 全てのイベントでコールされます。 それに対して
「押した」時は SGDialog::DownButton()
「放した」時は SGDialog::UpButton()
「確定した」「リピートした」時は SGDialog::ClickButton()
がコールされます。、必要、好みに応じて使い分けて下さい。

オブジェクトのハンドル handleobj は
SGObject* obj = GetObjectFromHandle(handleobj);
でオブジェクト クラスに変換できます。

メッセージ発行のタイミング:
ButtonDUCR.png

メッセージ発行のタイミング

引数:
handleobj イベントを発行したオブジェクトのハンドル
act ボタンの動作(必ず SG_ACT_UP です)
void PreInitial (  )  [virtual]

ダイアログが開く直前の初期化タイミングで呼ばれる

ダイアログが開く前のタイミングでの処理を記述します。
推奨しているやり方ではコンストラクタ内でオブジェクトの追加を行っているので、 オブジェクトにアクセスすることは出来ますが、ダイアログのサーフェースがまだ生成されて いませんので Flip()、もしくは Flip()を使用する Update()などの関数は使用できません。
オブジェクトの初期表示状態(属性、テキスト、色、位置など)の設定に適しています。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
このタイミングで初期化などを行う場合は、この関数をオーバーライドして使用します。

参照:
SGDialog::PostInitial(SGHandle handledlg,int id)
void PostInitial ( SGHandle  handledlg,
int  id 
) [virtual]

ダイアログが開いた直後の初期化タイミングで呼ばれる

ダイアログが開いた後のタイミングで行う処理を記述します。(主に初期化目的)
この関数は他のダイアログがオープンする時も呼ばれますので注意して下さい。
id はオープンしたウィンドウのIDがセットされているので、どのダイアログがオープンしたか判断できます。
自分の初期化を行う時など、基本的にはidを確認してから処理を行うようにして下さい

    // id の確認
    if( id == GetId() ){
        // 初期化処理
    }

この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
このタイミングで初期化などを行う場合は、この関数をオーバーライドして使用します。
他のダイアログのオープンによって既に開いているダイアログの挙動が変化する場合などに適しています。

引数:
handledlg オープンしたダイアログのハンドル
id オープンしたダイアログのID
参照:
SGDialog::PreInitial()
void Sound ( int  type,
int  val1,
int  val2 
) [virtual]

ビープ音を鳴らすタイミングで呼ばれる。

「ボタンが押された」など音を鳴らすタイミングで呼ばれます。
このライブラリには音を鳴らす機能はありません。音を鳴らすタイミングを通知するものです。
typeは音の種類を決定する為にアクションの種類がセットされます。
val1、val12、は type によって変化します。

音を鳴らす場合は class SGSound を継承してオリジナルクラスを作成し、そのクラス中に音に関する 部分をコーディングします。
オリジナルサウンドクラスは
void SGCore::SetSoundClass(SGSound* sound)
で登録することにより、ライブラリよりコールされるようになります。

この関数は仮想関数(virtual)です。
標準では SGCore::SetSoundClass()で登録したクラスの関数をコールします。
アプリケーション内で全て統一の音を出す場合は、この関数を拡張する必要はありません。 特定のダイアログの特定の種類の音だけに処理を追加、変更する必要があるような場合は、 この関数をオーバーライドします。

引数:
type 種類

SG_SOUND_BUTTON: ボタン押下でクリック発生時
  val1:act    アクション
  val2:handle オブジェクトのハンドル
SG_SOUND_KEYBOARD: キーボード押下時
  val1:act    アクション
  val2:handle オブジェクトのハンドル
SG_SOUND_CLOSE: ダイアログのクローズ時
  val1:handle ダイアログのハンドル
  val2:0
SG_SOUND_OPEN:  ダイアログのオープン時
  val1:handle ダイアログのハンドル
  val2:0
SG_SOUND_WHEEL: マウスホイールの回転時
  val1:回転方向と値
  val2:未使用
SG_SOUND_USER:  ユーザ任意のタイミング
  val1:id
  val2:data(void*)
val1 type参照
val2 type参照
void Timer ( TimeVal  time  )  [virtual]

ダイアログ タイマー イベントが発生した時呼ばれる

SGDialog::SetTimerInterval()で設定したインターバルで発生するタイマーイベントを受けて コールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
周期的な処理を行う場合は、この関数をオーバーライドして使用します。

構造体:
TimeVal {
    long    tv_sec;     // 秒
    long    tv_usec;    // マイクロ秒
};
引数:
time 現在の時間
void SingleTimer ( TimeVal  time  )  [virtual]

ダイアログ シングル タイマーのイベントが発生した時呼ばれる

SGDialog::SetSingleTimerInterval()で設定したインターバルで発生するタイマーイベントを受けて コールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
一定時間後に単発処理を行う場合は、この関数をオーバーライドして使用します。

構造体:
TimeVal {
    long    tv_sec;     // 秒
    long    tv_usec;    // マイクロ秒
};
引数:
time 現在の時間
void ResetTimer (  )  [virtual]

ダイアログ タイマーをリセット(停止)する。

ダイアログ タイマーのインターバル時間をリセットしてタイマーを停止させます。

void ReceiveUserEvent ( int  param,
void *  data,
SGHandle  handledlg,
SGHandle  handleobj 
) [virtual]

ユーザイベントが発行された時に呼ばれる

SGCore::PostEventUser()によって発行さるユーザイベントを受けて、この関数がコールされます。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
ユーザ定義のイベントを使用する場合は、この関数をオーバーライドして使用します。

この関数はユーザイベントの受信側です。
ユーザイベントを発行する(ダイアログにメッセージを送る)時は
SGApplication派生クラス内からは PostEventUser()、
ダイアログからは GetCore()->PostEventUser()
のように使います。

引数:
param SGCore::PostEventUser()によって与えられたparam
data SGCore::PostEventUser()によって与えられたdata
handledlg SGCore::PostEventUser()によって与えられたhandledlg
handleobj SGCore::PostEventUser()によって与えられたhandleobj
参照:
void SGCore::PostEventUser(int param,void* data,SGHandle handledlg,SGHandle handleobj)
void ChangePalette ( SGPalette pal  )  [virtual]

パレットが変更された時に呼ばれる

メインのパレット(PrimaryPalette)が変更された時にコールされます。
ピクチャー オブジェクト SGPictureObject::Draw() はメインのパレットを変更しますので、 ピクチャー オブジェクトが存在する場合、再描画の際にこの関数がコールされます。

この関数は仮想関数(virtual)です。
標準では SGSurface::SetPalette() をコールし、パレットを変更します。
パレット変更に伴う処理を追加、変更する必要がある場合は、この関数をオーバーライドして使用します。

引数:
pal 新しく登録されたパレット
参照:
SGGraphics::SetPrimaryPalette(SGPalette* pal)
SGSurface::SetPalette(SGPalette* palette);
void Wheel ( int  step,
int  over,
int  top 
) [virtual]

マウスのホイールが回転した時に呼ばれる

マウスのホイールが回転した時に発生するイベントを受けて、この関数がコールされます。
この関数は仮想関数(virtual)です。
ホイール回転に伴う処理を記述する必要がある場合は、この関数をオーバーライドして使用します。
デフォルトではフォーカスを移動する様になっています。
※全てのダイアログがコールされますので新しいダイアログが開かれた後も呼ばれます。
over、topなどの値をチェックしてフィルタする必要があります。
拡張する場合は次の標準状態のコードを参考にして下さい。

参考:
void SGDialog::Wheel(int step,int over,int top)
{
    if( mCore && (top || (over && GetBGFocus())) ){
        mCore->SetFocusEnable(TRUE);
        if( step > 0 ){ // 正転
            FocusNext();
        }
        else{ // 反転
            FocusPrevious();
        }
    }
}
引数:
step ホイール移動量(正負で回転方向を判断します)
over マウスが上に乗っているダイアログはTRUE(1)
※バックグラウンドであってもTRUE(1)になります
top 一番上のダイアログはTRUE(1)
void Closed ( SGHandle  handledlg,
int  id,
int  param 
) [virtual]

ダイアログが閉じた時に呼ばれる

Close(int param) でダイアログが閉じられる直前に呼ばれます。
この関数は他のダイアログがクローズする時も呼ばれますので注意して下さい。
id はクローズしたウィンドウのIDがセットされているので、 どのダイアログがクローズしたか判断できます。
自分の終了処理、他の終了に連動した処理など、idでどのダイアログがクローズしたのか 確認してから処理を行って下さい

    // id の確認
    if( id == GetId() ){
        // 自身のクローズ
    }
    else if( id == DLG_XXX ){
        // 他のダイアログのクローズ
    }

int param には Close(param) で渡されたパラメータがセットされています。

この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
クローズのタイミングで何か処理を行う場合は、この関数をオーバーライドして使用します。
他のダイアログのクロースによって既に開いているダイアログの挙動を変化させたい時にも使用します。

引数:
handledlg クローズしたダイアログのハンドル
id クローズしたダイアログのID
param Close(int param)で渡された値
void Inactivate (  )  [virtual]

アクティブでなくなった時よばれる。

他のウィンドウが開かれるなど、自分がトップウィンドウでなくなった時、ダイアログはアクティブで なくなります。アクティブだったダイアログがアクティブでなくなった時コールされます。 この関数は仮想関数(Virtual)です。
アクティブでなくなった時の処理を行う場合は、この関数をオーバーライドして使用します。
拡張しない場合標準ではキャレットを消す関数がコールされます。

参照:
int SGGraphics::HideCaret()
void Activate (  )  [virtual]

アクティブになった時よばれる。

他のダイアログが閉じた時、 SGDialog::ToTop()をコールした時、オープンした時など、 トップウィンドウになった時、ダイアログはアクティブになります。アクティブでないダイアログが アクティブになった時コールされます。
この関数は仮想関数(Virtual)です。
アクティブになった時の処理を行う場合は、この関数をオーバーライドして使用します。
拡張しない場合標準ではキャレットを表示する関数
SGDialog::SetCaretObject(SG_CARET_AUTO)
がコールされます。

参照:
int SGDialog::SetCaretObject(int id)
const char * GetIdName ( int  id = -1  )  [virtual]

ダイアログIDの名前を取得する。

ダイアログIDの名前を取得します。

戻り値:
ダイアログID名 ダイアログID、オブジェクトIDの名前を取得する。ダイアログID、オブジェクトIDを名前(文字列)に変換します。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
この関数をオーバーライドし、その中で各IDを文字列として返す部分を追加してください。
追加する際、引数idが-1の時はダイアログ名が返るようにして下さい。
それ以外の場合は対応するオブジェクト名を返して下さい。
引数:
id ID(-1の時はダイアログ名になります)
SGObject * AddButton ( int  id,
SGString  text,
int  x,
int  y,
int  w,
int  imageid,
int  attr = SG_ATTR_NORMAL,
int  fontid = 0,
int  align = SG_ALIGN_CENTER,
int  marginx = 0,
int  marginy = 0 
)

ボタンオブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddButton(this, id, text, x, y, w, imageid, attr);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddButton()
SGObject * AddEditbox ( int  id,
SGString  text,
int  x,
int  y,
int  w,
int  imageid,
int  attr = SG_ATTR_NORMAL,
int  fontid = 0,
int  align = SG_ALIGN_CENTER,
int  marginx = 0,
int  marginy = 0 
)

エディットボックスオブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddEditbox(this, id, text, x, y, w, imageid, attr);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddEditbox()
SGObject * AddFrame ( int  id,
SGString  text,
int  x,
int  y,
int  w,
int  h,
int  imageid,
int  attr = SG_ATTR_NORMAL,
int  fontid = 0,
int  align = SG_ALIGN_CENTER,
int  marginx = 0,
int  marginy = 0 
)

フレームオブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddFrame(this, id, text, x, y, w, h, imageid, attr);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddFrame()
SGObject * AddPicture ( int  id,
int  x,
int  y,
int  w,
int  h,
const char *  file,
int  attr = SG_ATTR_NORMAL,
int  shared = 1 
)

ピクチャー オブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddPicture(this, id, x, y, w, h, file, attr, shared);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddPicture()
SGObject * AddIcon ( int  id,
int  x,
int  y,
int  w,
int  h,
const char *  file,
int  attr = SG_ATTR_NORMAL,
int  shared = 1 
)

アイコン オブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddIcon(this, id, x, y, w, h, file, attr, shared);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddIcon()
SGObject * AddMovie ( int  id,
int  x,
int  y,
const char *  file,
int  attr = SG_ATTR_NORMAL,
int  loop = TRUE,
int  play = FALSE 
)

ムービー オブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddMovie(this, id, x, y, w, h, file, attr, loop, play);
を使用して下さい。

SGObject * AddCanvas ( int  id,
int  x,
int  y,
int  w,
int  h,
int  attr = SG_ATTR_NORMAL 
)

キャンバス オブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddCanvas(this, id, x, y, w, h, attr);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddCanvas()
SGObject * AddText ( int  id,
SGString  text,
int  x,
int  y,
int  w,
int  h,
int  fontid,
int  attr = SG_ATTR_NORMAL,
unsigned int  col = ((((unsigned int) 0x00 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x00 )<<8)|0xff),
unsigned int  colsub = ((((unsigned int) 0x78 )<<24)|(((unsigned int) 0x78 )<<16)|(((unsigned int) 0x78 )<<8)|0xff),
int  align = SG_ALIGN_CENTER,
int  marginx = 0,
int  marginy = 0 
)

テキスト オブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddText(this, id, text, x, y, w, h, fontid, attr, col, align, marginx, marginy);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddText()
SGObject * AddKeyboard ( int  id  ) 

キーボードオブジェクトを生成し追加する

互換を保つために残された関数です。Group()関数を使用し
Group()->AddKeyboard(this,id);
を使用して下さい。

参照:
SGObject* SGGroupObject::AddKeyboard()
void PostEventClickObject ( int  id  ) 

オブジェクトをクリックする。

ボタンなどのオブジェクトをクリックした時のイベントを発行します。

注意:オブジェクトの中心をクリックしたようなイベントを発行する為、 オブジェクトの形状によってはクリックされない場合があります。

引数:
id オブジェクトのID
int DialogReference (  ) 

ダイアログの参照を開始することを宣言する

これからダイアログクラスのメンバなどの参照を開始することを宣言します。
参照を終える時、必ず DialogUnReference() で参照の終わりを宣言する必要があります。

参照:
SGDialog::DialogUnReference()
int DialogUnReference (  ) 

ダイアログの参照を終了することを宣言する

ダイアログクラスのメンバなどの参照を終了することを宣言します。

参照:
SGDialog::DialogReference()

このクラスの説明は次のファイルから生成されました:

PlusG リファレンスマニュアル Ver 2.0.0