クラス SGCore

PlusGの基本となるクラス. [詳細]

#include <sgcore.h>

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

すべてのメンバ一覧

Public メソッド

 SGCore (SGApplication *app)
 コンストラクタ
virtual ~SGCore ()
 デストラクタ
SGHandle GetNewHandle ()
 新しいハンドルを生成する
void Release ()
 確保したリソースなどの領域を全て開放する
SGButtonImageCreateButtonImage (int id)
 ボタン リソースを作成する
SGEditboxImageCreateEditboxImage (int id)
 エディット ボックス リソースを作成する
SGFrameImageCreateFrameImage (int id)
 フレーム リソースを作成する
int CreateImage (int id)
 リソース イメージ(サーフェース)を作成する。
int ReleaseImage (int id)
 リソース イメージ(サーフェース)を解放する。
SGImageGetImage (int id)
 リソースIDを指定してリソースクラスを取得する。
SGRect DrawText (SGSurface *base, SGString text, int x, int y, int width, int height, SGTextAttribute &attr)
 文字列を描画する。
int GetStringInfo (SGString text, SGTextAttribute attr, int *width=NULL, int *height=NULL, int *ascender=NULL)
 文字列を表示するのに必要な大きさを求める
void GetTextSize (SGString text, int &width, int &height, SGTextAttribute attr)
 文字列を表示するのに必要な大きさを求める
int DrawButton (SGSurface *base, SGSurface *btn, int x, int y, int width)
 ボタン用リソースを伸長描画する
int DrawFrame (SGSurface *base, SGSurface *Surface0, SGSurface *Surface1, SGSurface *Surface2, int stx, int sty, int width, int height)
 フレーム用リソースを伸長描画する
int DrawImage (SGSurface *base, const char *filename, int x, int y)
 イメージファイルの描画
int DrawImage (SGSurface *base, const char *filename, int x, int y, int &w, int &h, int shared=TRUE)
 イメージファイルの描画
SGDialogGetActiveDialog ()
 アクティブなダイアログを取得する。
SGDialogGetDialogFromHandle (SGHandle handle)
 ダイアログ ハンドルからダイアログ クラスのポインタを取得する
SGObjectGetObjectFromHandleEx (SGHandle handle)
 オブジェクト ハンドルからオブジェクト クラスのポインタを取得する
SGHandle GetHandleFromId (int id)
 ダイアログIDからダイアログ ハンドルを取得する
int ToTopDialog (SGHandle handle)
 指定したダイアログの重ね順を最前面にする
void AddDialog (SGDialog *dialog)
 ダイアログをリストに登録する
void DeleteDialog (int windowid)
 ダイアログの登録リストから削除する
void Closed (SGHandle handledlg, int id, int param)
 ダイアログのクローズ通知を行う
void MoveCursor (int x, int y, int act)
 マウスイベントの通知を行う
void PostInitial (SGHandle handledlg, int id)
 ダイアログのオープン通知を行う
void PostEventUser (int param=0, void *data=NULL, SGHandle handledlg=0, SGHandle handleobj=0)
 ユーザ イベント通知を発行する
int DialogUnReference (SGDialog *dlg)
void EnableMouseMoveEvent (int enable)
 マウスの移動イベントを受け取るかどうかを設定する
int GetFocusEnable ()
 フォーカス機能のOn/Off状態を取得する
void SetFocusEnable (int enable)
 オブジェクトのフォーカス機能のOn/Offを行う
int GetEvent (_SGEvent *event)
 イベントを取得する。
void ClearEvent ()
 イベントキューをクリアする
void CancelEvent (int flag=SG_CANCELEVENT_ALL)
 イベントをキャンセルする
int WaitWithCheckEvent (int msec)
 バックグラウンドでのイベント処理の提供とウェイト。
int CheckEvent (_SGEvent *event)
 イベント処理関数
void ReleaseAction (SGHandle dhdlg, SGHandle dhobj)
 押し下げボタンイメージを元に戻す
void SetEventButtonLimit (int limit)
 ボタン イベントの発行可能数を設定する
void PostEventCursor (int x, int y, int act)
 マウスのカーソル移動とボタン押下の通知をする
void PostEventRequest (int type, int act=0)
 イベントを発生させる
void PostEventButton (int act, int click=FALSE)
 ボタンイベントを発行する。
void PostEventKeyboard (int act, const char *symbol_name)
 キーボードイベントを発行する。
void PostEventWheel (int val)
 マウスホイールイベントを発行する。
int PostEvent (_SGUserEvent *event)
 イベントを通知する
void ReleaseCheck (SGHandle handledlg)
 ダイアログの終了処理
void Sound (int type, int val1, int val2)
 ビープ音を鳴らすタイミングで呼ばれる。
void SetSoundClass (SGSound *sound)
 音を鳴らすタイミングを受け取るコールバック関数を登録する
void SetCaretInterval (int interval)
 キャレットの点滅周期を設定する。
void SetCaretDialog (SGDialog *dlg, int objid)
 キャレットを保持しているダイアログを登録する。
int IsCaretDialog (SGDialog *dlg)
 指定したダイアログがキャレットを保持しているか調べる
void DrawCaret (int w, int h)
 キャレットを描画する。
void MoveCaret (int x, int y)
 キャレットを移動する。
void BlinkCaret (int force=FALSE)
 キャレットを点滅させる。
int HideCaret ()
 キャレットを非表示にする
int ShowCaret ()
void SetCaretVisible ()
int IsCaretVisible ()
 キャレットの表示・非表示状態を取得する
void SetResourceInfo (SGResourceInfo *info, int playrec=SG_INFO_RELEASE, const char *filename=NULL)
 アプリケーション実行時の動作LOGの記録と再生を行う
void ResourceInfoLogout ()
 消費メモリ確認用のログメッセージを出力する。
void TimerLock ()
 セマフォロック(タイマー用)
void TimerUnlock ()
 セマフォアンロック(タイマー用)

フレンド

class SGApplication

説明

PlusGの基本となるクラス.

プログラム開始時に生成され、プログラム中で唯一存在します。 各クラスから参照されます。


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

SGCore ( SGApplication app  ) 

コンストラクタ

~SGCore (  )  [virtual]

デストラクタ


関数

SGHandle GetNewHandle (  ) 

新しいハンドルを生成する

IDやハンドルとして使用する為のユニークな数値を生成します。

戻り値:
ユニークな数値
void Release (  )  [virtual]

確保したリソースなどの領域を全て開放する

確保したリソースなどの領域を全て開放します。

SGGraphicsを再定義しています。

SGButtonImage * CreateButtonImage ( int  id  ) 

ボタン リソースを作成する

ボタン リソースを生成します。
この関数はアプリケーション起動時の初期化関数からコールされる SGApplication::SetImageButton() で使用されています。この関数を直接使用することありません。
ボタン リソースの作成は SGApplication::SetImageButton() を使用してください。
ここではリソースを管理するクラスを生成しますが、画像イメージの読み込み(サーフェースの生成)は行いません。
画像がメモリに用意され実際に使用できるようにするには、ダイアログ生成時に
SGGroupObject::AddButton() を使用し、ボタン リソースの準備が完了します。

引数:
id 識別用ID
戻り値:
生成されたボタンイメージ
参照:
SGApplication::SetImageButton(int id,int attr,int fontid,int margin,int align,unsigned int col,const char* imgfile)
SGEditboxImage * CreateEditboxImage ( int  id  ) 

エディット ボックス リソースを作成する

エディット ボックス リソースを生成します。
この関数はアプリケーション起動時の初期化関数からコールされる SGApplication::SetImageEditbox() で使用されています。この関数を直接使用することありません。
エディット ボックス リソースの作成は SGApplication::SetImageEditbox() を使用してください。
ここではリソースを管理するクラスを生成しますが、画像イメージの読み込み(サーフェースの生成)は行いません。
画像がメモリに用意され実際に使用できるようにするには、ダイアログ生成時に
SGGroupObject::AddEditbox() を使用し、エディット ボックス リソースの準備が完了します。

引数:
id 識別用ID
戻り値:
生成されたエディットボックスイメージ
参照:
SGApplication::SetImageEditbox(int id,int attr,int fontid,int margin,int align,unsigned int col,const char* imgfile)
SGFrameImage * CreateFrameImage ( int  id  ) 

フレーム リソースを作成する

フレーム リソースを生成します。
この関数はアプリケーション起動時の初期化関数からコールされる SGApplication::SetImageFrame() で使用されています。この関数を直接使用することありません。
フレーム リソースの作成は SGApplication::SetImageFrame() を使用してください。
ここではリソースを管理するクラスを生成しますが、画像イメージの読み込み(サーフェースの生成)は行いません。
画像がメモリに用意され実際に使用できるようにするには、ダイアログ生成時に
SGGroupObject::AddFrame() を使用し、フレーム リソースの準備が完了します。

引数:
id 識別用ID
戻り値:
生成されたフレームイメージ
参照:
SGApplication::SetImageFrame(int id,int attr,int fontid,int margin,int align,unsigned int col,const char* imgfile)
int CreateImage ( int  id  ) 

リソース イメージ(サーフェース)を作成する。

登録されているリソース情報を元にリソース イメージ(サーフェース)を作成します。
この関数はダイアログ生成時にコールされる
SGGroupObject::AddButton()
SGGroupObject::AddEditbox()
SGGroupObject::AddFrame()
で使用されています。この関数を直接使用することありません。

引数:
id 識別用ID
戻り値:
TRUE 成功
FALSE 失敗
int ReleaseImage ( int  id  ) 

リソース イメージ(サーフェース)を解放する。

確保したリソース イメージ(サーフェース)を解放します。
この関数は各オブジェクトの終了時に、オブジェクトクラスよりコールされます。 この関数を直接使用することありません。

引数:
id 識別用ID
戻り値:
TRUE 成功
FALSE 失敗
SGImage * GetImage ( int  id  ) 

リソースIDを指定してリソースクラスを取得する。

登録されているリソースリストの中から、リソースIDを指定して リソースクラス(SGImage)を取得します。

引数:
id 識別用ID
戻り値:
リソース クラス
SGRect DrawText ( SGSurface base,
SGString  text,
int  x,
int  y,
int  width,
int  height,
SGTextAttribute attr 
)

文字列を描画する。

文字列を描画する基本の関数です。 パラメータで指定されたサーフェースに指定位置へ描画します。 範囲も指定しますので、寄せやクリップの機能があります。 改行処理、通貨表示などの付加機能もあります。 描画するサーフェースの指定が SGSurface** となっていて指し示す内容に NULL が指定できます。
内容がNULLのサーフェースのアドレスを指定すると、関数内部でサーフェースを生成し、変数へアドレスを セットします。

引数:
base 描画を行うサーフェース
text 文字列
x X座標
y Y座標
width 
height 高さ
&attr テキスト アトリビュート クラス
戻り値:
実際に描画をした領域
int GetStringInfo ( SGString  text,
SGTextAttribute  attr,
int *  width = NULL,
int *  height = NULL,
int *  ascender = NULL 
)

文字列を表示するのに必要な大きさを求める

指定の文字列を指定のアトリビュートで表示した場合の描画に必要な大きさを求めます。
また、アセンダー(ベースラインから上の部分)の大きさも得ることができます。
※複数行に対応していません

引数:
text 文字列
attr アトリビュート
width 幅(取得用)。NULLでも可。NULLの場合は取得しません。
height 高さ(取得用)。NULLでも可。NULLの場合は取得しません。
ascender アセンダー(取得用)。NULLでも可。NULLの場合は取得しません。
戻り値:
TRUE 成功
FALSE 失敗
void GetTextSize ( SGString  text,
int &  width,
int &  height,
SGTextAttribute  attr 
)

文字列を表示するのに必要な大きさを求める

指定の文字列を指定のアトリビュートで表示した場合の描画に必要な大きさを求めます。
※複数行に対応しています

引数:
text 文字列
width 幅(取得用)
height 高さ(取得用)
attr アトリビュート
int DrawButton ( SGSurface base,
SGSurface btn,
int  x,
int  y,
int  width 
)

ボタン用リソースを伸長描画する

ボタン用に用意された画像を指定された幅に伸長描画します。
伸長方法は、画像を横方向に、左、中、右と3ブロックに分けて、 中央部分のみをタイル表示(繰り返しコピー)して幅を調整します。
幅は伸長のみ可能で、縮小することはできません。

引数:
base ボタンを表示するサーフェース
btn ボタン画像(リソース)
x 表示座標X
y 表示座標Y
width 表示幅
戻り値:
TRUE 成功
FALSE 失敗
int DrawFrame ( SGSurface base,
SGSurface Surface0,
SGSurface Surface1,
SGSurface Surface2,
int  stx,
int  sty,
int  width,
int  height 
)

フレーム用リソースを伸長描画する

フレーム用に用意された画像を指定された幅、高さに伸長描画します。
画像はタイトル部分(TOP)と下の部分(BOTTOM)と残りの真ん中部分(MIDDLE)と3つ用意します。 伸長方法は、3つの画像それぞれの画像を横方向に、左、中、右と3ブロックに分けて、 中央部分のみをタイル表示(繰り返しコピー)して幅を調整します。
高さ方向は、伸長した3つの画像の真ん中用の画像を、縦方向へタイル表示(繰り返しコピー) して高さを調整します。
伸長のみ可能で、縮小することはできません。

引数:
base フレームを表示するサーフェース
Surface0 フレーム画像上部
Surface1 フレーム画像中央部
Surface2 フレーム画像下部
stx 表示座標X
sty 表示座標Y
width 表示幅
height 表示高さ
戻り値:
TRUE 成功
FALSE 失敗
int DrawImage ( SGSurface base,
const char *  filename,
int  x,
int  y 
)

イメージファイルの描画

指定した画像ファイルを読み込み、指定のサーフェースへ描画します。
filenameには画像ファイルを指定します。ファイルはリソースフォルダにあるものとして処理します。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
リソースフォルダ以外のファイルを指定する場合はfilename文字列の先頭を「/」にしフルパスで指定して下さい。
読み込んだ画像イメージはキャッシュされません。

引数:
base 描画を行うサーフェース
filename 画像ファイル名
x 表示座標X
y 表示座標Y
戻り値:
TRUE 成功
FALSE 失敗
int DrawImage ( SGSurface base,
const char *  filename,
int  x,
int  y,
int &  w,
int &  h,
int  shared = TRUE 
)

イメージファイルの描画

指定した画像ファイルを読み込み、指定のサーフェースへ描画します。
filenameには画像ファイルを指定します。ファイルはリソースフォルダにあるものとして処理します。
初期リソースフォルダは "resources/" です。
void SGGraphics::SetImageFolder(const char* folder)
で変更することが出来ます。
リソースフォルダ以外のファイルを指定する場合はfilename文字列の先頭を「/」にしフルパスで指定して下さい。
shared に TRUE を指定すると読み込んだ画像イメージが共有イメージとしてメモリ(キャッシュ)に 保存されます。 アイコンなどのように複数回表示する可能性がある場合、2回目以降の表示が高速になります。

引数:
base 描画を行うサーフェース
filename 画像ファイル名
x 表示座標X
y 表示座標Y
w 表示した画像の幅(取得用)
h 表示した画像の高さ(取得用)
shared 共有する/しない(TRUE)
戻り値:
TRUE 成功
FALSE 失敗
SGDialog * GetActiveDialog (  ) 

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

全ダイアログのうち、一番上にある状態のダイアログをアクティブダイアログといい、 そのダイアログのポインタを取得します。
この関数はポインタを取得する為、DialogReference()関数をコールし、参照フラグをセットします。 ポインタの参照が終わった後は必ずDialogUnReference()関数をコールし参照の終了処理を行う必要があります。

戻り値:
アクティブなダイアログのポインタ
SGDialog * GetDialogFromHandle ( SGHandle  handle  ) 

ダイアログ ハンドルからダイアログ クラスのポインタを取得する

ダイアログ ハンドルからダイアログ クラスのポインタを取得します この関数はポインタを取得する為、DialogReference()関数をコールし、参照フラグをセットします。 ポインタの参照が終わった後は必ずDialogUnReference()関数をコールし参照の終了処理を行う必要があります。

引数:
handle ダイアログハンドル
戻り値:
ダイアログ クラス のポインタ
SGObject * GetObjectFromHandleEx ( SGHandle  handle  ) 

オブジェクト ハンドルからオブジェクト クラスのポインタを取得する

オブジェクト ハンドルからオブジェクト クラスのポインタを取得します

引数:
handle オブジェクト ハンドル
戻り値:
オブジェクト クラス のポインタ
SGHandle GetHandleFromId ( int  id  ) 

ダイアログIDからダイアログ ハンドルを取得する

ダイアログIDからダイアログ ハンドルを取得します

引数:
id ダイアログID
戻り値:
ダイアログ ハンドル
int ToTopDialog ( SGHandle  handle  ) 

指定したダイアログの重ね順を最前面にする

ハンドルによって指定したダイアログの重ね順を最前面にします。

引数:
handle ダイアログ ハンドル
戻り値:
TRUE 成功
FALSE 失敗
void AddDialog ( SGDialog dialog  ) 

ダイアログをリストに登録する

生成されたダイアログを登録します。
この関数は SGDialog::OpenDialog() からコールされます。直接使用することはありません。

引数:
dialog ダイアログ クラス
void DeleteDialog ( int  windowid  ) 

ダイアログの登録リストから削除する

指定したIDのダイアログを登録リストから削除します。
この関数は、ダイアログのクローズ イベントを受けてコールされます。
直接使用することはありません。

引数:
windowid 
void Closed ( SGHandle  handledlg,
int  id,
int  param 
)

ダイアログのクローズ通知を行う

SGDialog::Close() 関数内部からコールされます。この関数を直接使用することはありません。
ダイアログを閉じたことを全てのダイアログに通知するため、この関数は全てのダイアログの SGDialog::Closed() をコールします。

引数:
handledlg クローズしたダイアログのハンドル
id クローズしたダイアログのID
param ダイアログをクローズした際に与えられた任意のパラメータ
void MoveCursor ( int  x,
int  y,
int  act 
)

マウスイベントの通知を行う

マウスイベントの通知を行う際に使用します。 通常この関数は、イベント処理関数(SGCoreCheckEvent)からコールされます。
この関数は現在の最上位ウィンドウと、それ以外のダイアログでバックグラウンドでも イベントを受け取るよう設定されたダイアログに通知します。

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

SG_ACT_DOWN ボタンが押された
SG_ACT_UP   ボタンが放された
SG_ACT_MOVE マウスが移動した
参照:
SGCore::CheckEvent(_SGEvent* event)
SGDialog::int SetBGFocus(int focus)
void PostInitial ( SGHandle  handledlg,
int  id 
)

ダイアログのオープン通知を行う

ダイアログのオープン通知を全てのダイアログに行うために、オープンしたダイアログからコールされます。
この関数は現在オープンされている全てのダイアログの SGDialog::PostInitial() をコールします。
この関数を直接使用することはありません。

引数:
handledlg オープンしたダイアログのハンドル
id オープンしたダイアログのID
参照:
SGDialog::PostInitial(SGHandle handledlg,int id)
void PostEventUser ( int  param = 0,
void *  data = NULL,
SGHandle  handledlg = 0,
SGHandle  handleobj = 0 
)

ユーザ イベント通知を発行する

現在オープンしている全てのダイアログにメッセージを通知します。
通知を受けて各ダイアログの SGDialog::ReceiveUserEvent() を呼び出します。
パラメータは全てそのままダイアログに渡されます。
パラメータの使い方は全て任意です。例として、メッセージ通知者を特定する為に param へはダイアログID、 data へは通知したい内容変数のポインタ、 handledlg へは送信ダイアログ ハンドル、 handleobj へは送信オブジェクト ハンドル などを設定すると便利です。

引数:
param int型のパラメータ
data void型のデータポインタ
handledlg ダイアログ ハンドル
handleobj オブジェクト ハンドル
参照:
SGDialog::ReceiveUserEvent(int param,void* data,SGHandle handledlg,SGHandle handleobj)
void EnableMouseMoveEvent ( int  enable  ) 

マウスの移動イベントを受け取るかどうかを設定する

押し下げていない状態でのマウスの移動イベントを受け取るかどうかを設定します。
この設定に関わらず、押し下げ状態での移動(ドラッグ)は常に受け取ります。
初期状態では「受け取らない(FALSE)」になっています。
タッチパネルを使用する場合は無効に設定することをお勧めします。
タッチパネルの特性上、タッチ時の瞬間プレス状態になるまでの微小な時間に不確定な移動(異常な座標)が検知されることがあります。

引数:
enable 有効/無効

TRUE  有効(受け取る)
FALSE 無効(受け取らない)
int GetFocusEnable (  ) 

フォーカス機能のOn/Off状態を取得する

フォーカス機能のOn/Off状態を取得します。

戻り値:
TRUE フォーカス機能はOnです
FALSE フォーカス機能はOffです
void SetFocusEnable ( int  enable  ) 

オブジェクトのフォーカス機能のOn/Offを行う

ボタンやエディットボックスのフォーカス機能のOn/Offを行います。
フォーカス機能がOnの場合、オブジェクトがカレントに指定されている場合、 そのオブジェクトイメージにフォーカス用のリソースが表示されます。
Offの場合、オブジェクトのフォーカス表示は行われません。
初期状態ではフォーカス機能はOffに設定されています。

引数:
enable On/Off

TRUE:  フォーカス機能を使う(On)
FALSE: フォーカス機能を使わない(Off)
int GetEvent ( _SGEvent *  event  ) 

イベントを取得する。

イベントバッファからイベントを取得します。
取得したイベントは CheckEvent()で解析を行って下さい。

ダイアログエディタが自動生成した main.cpp の場合

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

となってます。
SGApplication::GetEvent()SGCore::GetEvent()を呼ぶラッパー関数です。
SGApplication::CheckEvent()SGCore::CheckEvent()を呼ぶラッパー関数です。

引数:
event イベント
戻り値:
TRUE イベントを取得した。
FLASE イベントが取得出来ませんでした。
参照:
SGApplication::GetEvent(_SGEvent* event)
void ClearEvent (  ) 

イベントキューをクリアする

イベントキューをクリアします。 ダイアログのクローズ要求など、現在キューに溜まっている全てのイベントをクリアしますので 使用には注意が必要です。
CancelEvent() の方が安全にイベントをクリア出来ます。
通常は CancelEvent() をご使用下さい。

参照:
void SGCore::CancelEvent(int flag)
void CancelEvent ( int  flag = SG_CANCELEVENT_ALL  ) 

イベントをキャンセルする

イベントをキャンセルします。
時間のかかる処理でバッファに溜まったイベントから指定のイベントのみをクリアします。
SG_CANCELEVENT_BUTTONを使用する場合、関数、ClickButton()や、DownButton()では使用しないで下さい。
ボタンのUPイベントもキャンセルされてしまい、動作異常となってしまいます。
使用する場合は、UpButton()、もしくはClickButton()のパラメータ、actのSG_ACT_UPを確認して使用して下さい。

引数:
flag キャンセルするイベントタイプ(複数指定可能)

SG_CANCELEVENT_MOUSE
SG_CANCELEVENT_USER
SG_CANCELEVENT_BUTTON
SG_CANCELEVENT_ALL
int WaitWithCheckEvent ( int  msec  ) 

バックグラウンドでのイベント処理の提供とウェイト。

ウェイトを行います。
停止している間にメッセージを処理します。
メッセージ処理に時間がかかる場合、定期的にこの関数をコールすることで、 他のメッセージの流れを止めてしまうのを防げます。
※例えば、forやwhileを回っている間は、ボタンが押せなかったり、タイマーイベントが止まったり してしまいます。そのような時に、ループ内にこの関数を置くとイベントが流れます。
※注意として、この関数はネストに対応していません。2個同時にも動作しません。 どちらの場合も、後ろが優先されてしまいます。
また、メッセージの順番を変えてしまう可能性を考えて使用する必要があります。
※この処理(関数)は簡易的な処置として使用してください。

引数:
msec ウェイト時間
戻り値:
int CheckEvent ( _SGEvent *  event  ) 

イベント処理関数

GetEvent()より取得したイベント(メッセージ)をチェックして必要な処理を行います。

ダイアログエディタが自動生成した main.cpp で使用しています。

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

SGApplication::GetEvent()SGCore::GetEvent()を呼ぶラッパー関数です。 SGApplication::CheckEvent()SGCore::CheckEvent()を呼ぶラッパー関数です。

引数:
event イベント
戻り値:
1 処理すべきメッセージがある時
0 処理すべきメッセージがない時
-1 アプリケーションの終了
参照:
SGApplication::GetEvent(_SGEvent* event)
SGApplication::CheckEvent(_SGEvent* event)
void ReleaseAction ( SGHandle  dhdlg,
SGHandle  dhobj 
)

押し下げボタンイメージを元に戻す

クリックにより押し下げられたイメージを元の状態に戻します。

void SetEventButtonLimit ( int  limit  ) 

ボタン イベントの発行可能数を設定する

ボタン イベントの発行可能数を設定します。
ボタン イベントをバッファに挿入することの出来る数を制限します。

引数:
limit リミット(初期値=1)
void PostEventCursor ( int  x,
int  y,
int  act 
)

マウスのカーソル移動とボタン押下の通知をする

マウスのカーソル移動とボタン押下の通知をします。

引数:
x X座標
y Y座標
act アクションタイプ

SG_ACT_DOWN  (0)  押した\n
SG_ACT_UP    (1)  離した\n
SG_ACT_MOVE  (4)  カーソル移動
void PostEventRequest ( int  type,
int  val = 0 
)

イベントを発生させる

イベントを発生させます。
この関数は主に SGDialog クラスで使用され、ユーザが直接使用することは有りません。

引数:
type イベントの種類
val 受け渡す値
void PostEventButton ( int  act,
int  click = FALSE 
)

ボタンイベントを発行する。

ボタンイベントを発行します。

引数:
act アクションタイプ

SG_ACT_DOWN  (0)  押下
SG_ACT_UP    (1)  解放
SG_ACT_CLICK (2)  決定
SG_ACT_REPEAT(3)  リピート
click クリック動作

TRUE  クリックを発行する\n
FALSE クリックは発行しない\n
参照:
void SGApplication::PostEventButton(int act,int click=FALSE)
void PostEventKeyboard ( int  act,
const char *  symbol_name 
)

キーボードイベントを発行する。

キーボード イベントを発行します。

引数:
act アクションタイプ

SG_ACT_DOWN  (0)  押下
SG_ACT_UP    (1)  解放
symbol_name キーの名前
参照:
SGApplication::PostEventKeyboard(int act,const char* symbol_name)
void PostEventWheel ( int  val  ) 

マウスホイールイベントを発行する。

マウスホイールイベントを発行します。

引数:
val 回転量と回転方向
正負で方向を表します。
参照:
SGApplication::PostEventWheel(int val)
int PostEvent ( _SGUserEvent *  event  ) 

イベントを通知する

イベントを通知します。
全てのイベントはこの関数で通知されます。
イベント通知系の関数から使用されています。
この関数を直接使用しないで下さい。

引数:
event イベント
戻り値:
TRUE 成功
FALSE 失敗
void ReleaseCheck ( SGHandle  handledlg  ) 

ダイアログの終了処理

ダイアログを閉じる場合に呼び出します。
これにより、以降そのダイアログにイベントが通知されないようになります。
SGDialog::Release() から使用されています。
この関数を直接使用することはありません。

引数:
handledlg ダイアログハンドル
void Sound ( int  type,
int  val1,
int  val2 
)

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

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

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

SG_SOUND_QUIT以外は
void SGDialog::Sound(int type,int val1,int val2)
からコールされるので特定のダイアログの特定の種類の音だけ変化させるような処理はできません
そのような場合は SGDialog::Sound()をオーバーライドして拡張することで可能になります。

引数:
type 種類

SG_SOUND_BUTTON: ボタン押下でクリック発生時
  val1:act    アクション
  val2:handle オブジェクトのハンドル
SG_SOUND_KEYBOARD: キーボード押下時
  val1:act    アクション
  val2:handle オブジェクトのハンドル
SG_SOUND_QUIT: アプリケーションの終了時\n
  val1:未使用\n
  val2:未使用\n
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 上記参照
val2 上記参照
void SetSoundClass ( SGSound sound  ) 

音を鳴らすタイミングを受け取るコールバック関数を登録する

音を鳴らすタイミングを受け取るコールバック関数を登録します。

引数:
sound 作成したSGSoundクラスのポインタ
void SetCaretInterval ( int  time  ) 

キャレットの点滅周期を設定する。

引数:
time 点滅周期(10ms単位)デフォルトは40。(400ms点灯、400ms秒消灯) 0(ゼロ)指定で点滅なし。
void SetCaretDialog ( SGDialog dlg,
int  objid 
)

キャレットを保持しているダイアログを登録する。

キャレットを保持しているダイアログを登録します。 登録した状態を解除する場合(キャレットを持たなくなった場合)は objid に SG_CARET_HIDE を指定します。

引数:
dlg ダイアログ
objid オブジェクトのID
int IsCaretDialog ( SGDialog dlg  ) 

指定したダイアログがキャレットを保持しているか調べる

指定したダイアログがキャレットを保持しているか調べます。

引数:
dlg ダイアログ
戻り値:
TRUE 保持している
FALSE 保持していない
void DrawCaret ( int  w,
int  h 
)

キャレットを描画する。

この関数はキャレット表示の必要がある時にコールされます。
指定された幅と高さのパラメータと、予め登録されているキャレット形状の値に従いキャレットを描画します。
形状を描画する場合、この関数は SGApplication クラスの
int SGApplication::DrawCaret(SGSurface* surface,int type,int width,int height)
をコールします。
ユーザが任意の色、形でキャレットを描画する場合は SGApplication::DrawCaret をオーバーライドし、 その関数内で描画してください。 SGApplication::DrawCaret がTRUE(0以外)を返す時、この関数は描画を行わないで終了します。
SGApplication::DrawCaret をオーバーライドしない場合、関数は FALSE を返す為、この関数内で描画を行います。
キャレットの形状は SGCaret::SetCaretType(int type) で変更できます。

引数:
w キャレットの幅
h キャレットの高さ
参照:
SGCaret::DrawCaret(int w,int h)
SGApplication::DrawCaret(SGSurface* surface,int type,int width,int height)
void MoveCaret ( int  x,
int  y 
)

キャレットを移動する。

指定した座標へキャレットを移動します。

引数:
x X座標
y Y座標
void BlinkCaret ( int  force = FALSE  ) 

キャレットを点滅させる。

キャレットを点滅させます。

引数:
force 無条件にコールします。
int HideCaret (  ) 

キャレットを非表示にする

キャレットを非表示にします。

戻り値:
TRUE 成功
FALSE 失敗
int ShowCaret (  ) 

brief キャレットを表示する。

キャレットを表示します。 HideCaret() などで表示をOFFにした後など、キャレットの大きさ、位置などが正しいことが 分かっている時に使用してください。
ダイアログが切り替わったタイミングではキャレットの大きさ、位置などが不確定なので 関数 EditboxCtrl(EDITID,SG_CUR_POSITION,0); を使用して、位置・サイズの情報を更新して下さい。

戻り値:
TRUE 成功
FALSE 失敗
void SetCaretVisible (  ) 

brief キャレットの表示属性を表示状態にする。

キャレットの表示属性を表示状態にします。
キャレットの大きさ、位置などが不確定な時にキャレットを表示する際に使用します。 実際の表示は、位置、サイズ確定後、最初の点滅処理で表示が開始されます。

int IsCaretVisible (  ) 

キャレットの表示・非表示状態を取得する

キャレットの表示・非表示状態を取得します。

戻り値:
TRUE 表示状態
FALSE 非表示状態
void SetResourceInfo ( SGResourceInfo info,
int  playrec = SG_INFO_RELEASE,
const char *  filename = NULL 
)

アプリケーション実行時の動作LOGの記録と再生を行う

アプリケーション実行時の動作LOGの記録と再生を行う時に使用します。

infoは定義文字列情報を登録する為に用意します。
例えば、次のような定義がある場合

#define KEYBOARD 10
#define FNT16 1000


infoは

SGResourceInfo info[] = 
{
	{KEYBOARD,"KEYBOARD"},
	{FNT16,"FNT16"}
};

となります。
リソースエディタを使用している場合、この部分のコードは自動生成プログラムの
resource.h 内に作成されています。

SGResourceInfoは sglib.h で次のように定義されています。

typedef struct {
    int mId;
    const char* mName;
} SGResourceInfo;


playrec に SG_INFO_RECORD を指定してアプリケーションを実行すると、ボタン操作などの メッセージがログファイル(filename)に保存されます。
次回起動時に SG_INFO_PLAY を指定するとアプリケーションはログファイルを元に、保存時と 同じ動作を始めます。

引数:
info IDとその名前を定義した構造体
playrec モード

SG_INFO_RELEASE(0) リリースモード
SG_INFO_PLAY(1)    再生モード
SG_INFO_RECORD(2)  記録モード
filename ログの記録・再生用ファイル名
void ResourceInfoLogout (  ) 

消費メモリ確認用のログメッセージを出力する。

消費メモリ確認用のログメッセージを出力します。 アプリケーション終了直前に使用すれば、解放忘れのリソース、オブジェクトが存在しないか、 メモリーリークのチェックが可能です。

void TimerLock (  ) 

セマフォロック(タイマー用)

タイマー用のセマフォロックします。 タイマーに関わる変数へのセット、参照時に使用します。

void TimerUnlock (  ) 

セマフォアンロック(タイマー用)

タイマー用のセマフォロックを解除します。 タイマーに関わる変数へのセット、参照の終了時し使用します。


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

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