# ButtonWindow

## 概要 - Abstract

このライブラリ gui.ButtonWindow は、GUI部品として、ボタンが並ぶウィンドウ ―― ボタンウィンドウ ―― を提供します。

VCSSLの標準ライブラリ「 GUI 」では、GUI部品をint型のIDで扱いますが、このモジュールで提供されるGUI部品は、ButtonWindow 構造体として扱います。

ButtonWindow 構造体は、内部にリソースのID等を保持していますが、
生成・破棄のための関数が提供されるため、その中身を特に意識する必要はありません（ むしろメンバへの直接的なアクセスは推奨されません ）。
具体的には、 newButtonWindow 関数で生成し、 deleteComponent 関数で破棄します。

またこのモジュールでは、ButtonWindow 構造体を標準ライブラリ「 GUI 」と同様の感覚でそのまま扱えるように、標準GUIライブラリ関数のオーバーロードも提供されます。
例えば、 mountComponent 関数や、setComponentSize 関数、 setComponentLocation 関数などが提供されます。

## 目次 - Index

struct ButtonWindow
  ボタンウィンドウの構造体です。
ButtonWindow newButtonWindow(int x, int y, int width, int height, string title, string labelText[ ])
  ボタンウィンドウを生成します。
ButtonWindow newButtonWindow(string labelText[ ])
  自動でウィンドウサイズを決定し、ボタンウィンドウを生成します。
void deleteComponent(ButtonWindow &windowInstance)
  ボタンウィンドウを破棄します。
int getWindow(ButtonWindow &windowInstance)
  ウィンドウのGUIコンポーネントIDを取得します。
int getButton(ButtonWindow &windowInstance, string labelText)
  指定されたラベルに対応するボタンを取得します。
int getButton(ButtonWindow &windowInstance, int index)
  指定されたインデックスのボタンを取得します。
void setComponentSize(ButtonWindow &windowInstance, int width, int height)
  ウィンドウのサイズを設定します。
void setComponentSize(ButtonWindow &windowInstance)
  ウィンドウの現在のサイズに合わせて、内部コンポーネントのサイズを自動設定します。ウィンドウのサイズを外部から変更した際に使用します。
int[ ] getComponentSize(ButtonWindow &windowInstance)
  ウィンドウのサイズを返します。
int[ ] getComponentLocation(ButtonWindow &windowInstance)
  ウィンドウの位置を返します。
void setComponentLocation(ButtonWindow &windowInstance, int x, int y)
  ウィンドウの位置を設定します。
void paintComponent(ButtonWindow &windowInstance)
  ウィンドウを再描画します。
void hideComponent(ButtonWindow &windowInstance)
  ウィンドウを不可視化します。
void showComponent(ButtonWindow &windowInstance)
  ウィンドウを可視化します。

## 構造体 - Structs

文法的定義 - Signature | struct ButtonWindow
構造体名 - Name | ButtonWindow
役割 - Role | ボタンウィンドウの構造体です。

## 変数 - Variables

- なし - None -

## 関数 - Functions

文法的定義 - Signature | ButtonWindow newButtonWindow(int x, int y, int width, int height, string title, string labelText[ ])
関数名 - Name | newButtonWindow
役割 - Role | ボタンウィンドウを生成します。
引数 - Arguments | (int型) x : ウィンドウ左上頂点のX座標 (int型) y : ウィンドウ左上頂点のY座標 (int型) width : ウィンドウの幅 (int型) height : ウィンドウの高さ (string型) title : ウィンドウのタイトル (string[]型) labelText : 全ボタンのラベル文字列を格納する配列
戻り値 - Return | (ButtonWindow型) 生成したボタンウィンドウ

文法的定義 - Signature | ButtonWindow newButtonWindow(string labelText[ ])
関数名 - Name | newButtonWindow
役割 - Role | 自動でウィンドウサイズを決定し、ボタンウィンドウを生成します。
引数 - Arguments | (string[]型) labelText : 全ボタンのラベル文字列を格納する配列
戻り値 - Return | (ButtonWindow型) 生成したボタンウィンドウ

文法的定義 - Signature | void deleteComponent(ButtonWindow &windowInstance)
関数名 - Name | deleteComponent
役割 - Role | ボタンウィンドウを破棄します。
引数 - Arguments | (ButtonWindow型) windowInstance : 破棄するウィンドウ
戻り値 - Return | (void型)

文法的定義 - Signature | int getWindow(ButtonWindow &windowInstance)
関数名 - Name | getWindow
役割 - Role | ウィンドウのGUIコンポーネントIDを取得します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のウィンドウ
戻り値 - Return | (int型) ウィンドウのGUIコンポーネントID

文法的定義 - Signature | int getButton(ButtonWindow &windowInstance, string labelText)
関数名 - Name | getButton
役割 - Role | 指定されたラベルに対応するボタンを取得します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ (string型) labelText : 取得対象のボタンに対応するラベル文字列
戻り値 - Return | (int型) ボタンのGUIコンポーネントID

文法的定義 - Signature | int getButton(ButtonWindow &windowInstance, int index)
関数名 - Name | getButton
役割 - Role | 指定されたインデックスのボタンを取得します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ (int型) index : ボタンのインデックス
戻り値 - Return | (int型) ボタンのGUIコンポーネントID

文法的定義 - Signature | void setComponentSize(ButtonWindow &windowInstance, int width, int height)
関数名 - Name | setComponentSize
役割 - Role | ウィンドウのサイズを設定します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ (int型) width : 幅 (int型) width : 高さ
戻り値 - Return | (void型) ウィンドウのサイズを格納する配列

文法的定義 - Signature | void setComponentSize(ButtonWindow &windowInstance)
関数名 - Name | setComponentSize
役割 - Role | ウィンドウの現在のサイズに合わせて、内部コンポーネントのサイズを自動設定します。ウィンドウのサイズを外部から変更した際に使用します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のウィンドウ
戻り値 - Return | (void型)

文法的定義 - Signature | int[ ] getComponentSize(ButtonWindow &windowInstance)
関数名 - Name | getComponentSize
役割 - Role | ウィンドウのサイズを返します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ
戻り値 - Return | (int[]型) ウィンドウのサイズを格納する配列

文法的定義 - Signature | int[ ] getComponentLocation(ButtonWindow &windowInstance)
関数名 - Name | getComponentLocation
役割 - Role | ウィンドウの位置を返します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ
戻り値 - Return | (int[]型) ウィンドウの位置を格納する配列

文法的定義 - Signature | void setComponentLocation(ButtonWindow &windowInstance, int x, int y)
関数名 - Name | setComponentLocation
役割 - Role | ウィンドウの位置を設定します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ (int型) x : ウィンドウのX座標 (int型) y : ウィンドウのY座標
戻り値 - Return | (void型)

文法的定義 - Signature | void paintComponent(ButtonWindow &windowInstance)
関数名 - Name | paintComponent
役割 - Role | ウィンドウを再描画します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のウィンドウ
戻り値 - Return | (void型)

文法的定義 - Signature | void hideComponent(ButtonWindow &windowInstance)
関数名 - Name | hideComponent
役割 - Role | ウィンドウを不可視化します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ
戻り値 - Return | (void型)

文法的定義 - Signature | void showComponent(ButtonWindow &windowInstance)
関数名 - Name | showComponent
役割 - Role | ウィンドウを可視化します。
引数 - Arguments | (ButtonWindow型) windowInstance : 対象のボタンウィンドウ
戻り値 - Return | (void型)