 |
make_panel(make_panel_input) この関数を使用することでユーザーは独自のパネルを作成できます。 入力引数として、ユーザーが作成したいウィジェットを記述するテーブルを指定します。ユーザは任意の数のウィジェットを追加することができます。各ウィジェットは何回でも使用することができます。この関数はパネルオブジェクトのハンドルを返します。このパネル内のウィジェットには、入力テーブルに指定されている順番に1からはじまる番号が割り当てられます。返されたハンドルは番号インデックスを持つテーブルであるため、特定のウィジェットへの特定のアクセスが可能になります。スクリプトの完了後にパネルを使用できる状態になるので、make_panel関数は、グローバル変数を保持するためにset_preserve_globals(1)を呼び出します。現在のところmake_panelコマンドはMAC OSではサポートされていません。
make_panel_input このテーブルはユーザーが希望するパネルを作成するためにmake_panel()関数が必要とする情報を保持します。 |
| 入力フィールド |
データ型 |
コメント |
デフォルト値 |
| title |
string |
パネルのタイトル |
|
| xloc |
number |
パネルの左上隅の水平位置(ピクセル単位) |
|
| yloc |
number |
パネルの左上隅の垂直位置(ピクセル単位) |
|
| width |
number |
パネルの幅(ピクセル単位) |
|
| height |
number |
パネルの高さ(ピクセル単位) |
|
| text widget spec table |
table |
0個以上のエントリのテーブル |
|
| type |
string |
“text”: テキスト入力ボックス |
|
| title |
string |
パネルのタイトル |
|
| action |
function |
関数定義または関数ポインタ |
|
| button widget spec table |
table |
0個以上のエントリのテーブル |
|
| type |
string |
“button”:押すことができるラベル付きボタン |
|
| title |
string |
パネルのタイトル |
|
| action |
function |
関数定義または関数ポインタ |
|
| slider widget spec table |
table |
0個以上のエントリのテーブル |
|
| type |
string |
“slider”: スライダーまたはタイプインエントリーで値を設定できます。スライダの「最小値」および「最大値」は、読み取り専用のエントリーとして表示されます。 |
|
| title |
string |
パネルのタイトル |
|
| action |
function |
関数定義または関数ポインタ(ユーザーがスライダーのドラッグを止めた時に呼び出されます) |
|
| dragaction |
function |
関数定義または関数ポインタ(ユーザーがスライダーをドラッグしている間に呼び出されます) |
|
| value |
table |
スライダの初期値 |
|
| abs_min |
number |
|
|
| current |
number |
|
|
| abs_max |
number |
|
|
| digits |
number |
スライダ値を表示する際に保持する有効桁数を指定する整数。 数値がゼロ以下に指定した場合、すべての可能なスライダ位置が異なる文字列として出力されることを保証する最小値となります。 |
|
self:set() この関数はmake_panel()関数の入力テーブルのactionフィールドで使用できます。この関数が使用されているウィジェットの値として入力引数を設定します。
self:get() この関数はmake_panel()関数の入力テーブルのactionフィールドで使用できます。この関数が使用されているウィジェット内の関連フィールドの値を取得します。
例:
--define functions to be used with panel
function button_test()
print ("Result of button test.")
end
function slider_test(new_pos)
print ("Current slider is ",new_pos)
end
--set panel specifications
make_panel_input = {
title = "demo panel",
xloc=700,yloc=100 ;
{ --button widget
type = "button",
title = "Button Test",
action = function()
button_test()
end
},
{ --text widget
type = "text",
title = "Enter text followed by carriage return:",
action = function(self)
print("text is "..self:get())
end
},
{ --slider widget
type = "slider",
title = "Slider Value:",
value = {
abs_min = 1,
current = 50,
abs_max = 100,
},
drag_action = function(self)
slider_test( self:get().current )
end,
action = function(self)
slider_test( self:get().current )
end
}
}
--create panel
panel_handle = make_panel(make_panel_input)
|