--:-- LUA API

プロパティ対応表

pico.set / pico.get で読み書きできるプロパティの、ウィジェットごとの完全な一覧

pico.set(id, name, value) / pico.get(id, name) の name に渡せる文字列と、対応する型・対応ウィジェットの一覧です。表に無い名前を渡すとエラーになります(綴りミスとして検出されます)。表にあっても、そのウィジェット種別が対応していない場合は pico.set はエラー、pico.get は nil を返します。

全ウィジェット共通

pico.create() で作れる全種別、および pico.show_*() が返すダイアログすべてに共通です。

name型getset
xInt✓✓
yInt✓✓
wInt✓ウィジェットによる(下表)
hInt✓ウィジェットによる(下表)
visibleBool✓✓
background_colorInt✓✓
hit_transparentBool✓✓
enabledBool✓✓
focusableBool✓✓

hit_transparent を true にすると、そのウィジェットはタップを受けず下のウィジェットへ素通りさせます(表示専用の部品を上に重ねたいとき)。enabled を false にすると操作を受け付けなくなります(タップは受け止めるだけで、コールバックは呼ばれず、下へも抜けません)。親が無効なら子も無効です。Button は文字が灰色になります。focusable はキーボード・コントローラーのフォーカスを受けるか(既定は種類で決まる。pico.focus)。

w / h の取得は常にできますが(現在の実寸が返ります)、設定できるかはウィジェットごとに異なります。下表で w/h の行がある種別のみ pico.set に対応しています。

Button

name型getset
textStr✓✓
wInt✓✓
hInt✓✓
font_sizeInt✓✓
text_colorInt✓✓
border_colorInt✓✓
icon_idInt(pico.ICON_*)✓✓
icon_sizeInt(0=16px/1=24px/2=32px/3=48px/4=64px)✓✓

icon_idを設定すると、文字の代わりにアイコンを描く「アイコンボタン」になります(textは無視されます)。アイコンの色はtext_colorに従います。w/hを明示的に設定していなければ、箱の大きさもicon_sizeのピクセルサイズへ自動的に合います。

Label

name型getset
textStr✓✓
placeholderStr✓✓
font_sizeInt✓✓
text_colorInt✓✓
border_colorInt✓✓
max_widthInt✓✓
max_heightInt✓✓
text_alignInt(0=Left/1=Center/2=Right)✓✓

w / h は直接設定できません。max_width / max_height とテキスト内容から自動的に決まります。

Textbox

name型getset
textStr✓✓
placeholderStr✓✓
font_sizeInt✓✓
text_colorInt✓✓
border_colorInt✓✓
max_widthInt✓✓
max_heightInt✓✓
is_single_lineBool✓✓

Label と同じく w / h は直接設定できません。

NumberInput

name型getset
textStr(入力された数字文字列。数値化は呼び出し側の責任)✓✓
font_sizeInt✓✓
text_colorInt✓✓
border_colorInt✓✓

Checkbox

name型getset
textStr✓✓
checkedBool✓✓
font_sizeInt✓✓
text_colorInt✓✓

Icon

name型getset
icon_idInt(pico.ICON_*)✓✓
icon_sizeInt(0=16px/1=24px/2=32px/3=48px/4=64px)✓✓
colorInt✓✓
icon_opaqueBool✓✓

Image

name型getset
pathStr✓✓(ImageView/MarkdownView の path と同じく、アプリのフォルダの外を指すには sd_outside_app_dir 権限が要り、無ければエラー)

NumberSlider

name型getset
valueFloat✓✓(Int/Floatどちらでも可)
min_valueFloat✓✓
max_valueFloat✓✓
wInt✓✓
hInt✓✓
colorInt✓✓
visible_numBool✓✓
decimal_placesInt✓✓

ScrollContainer

name型getset
border_colorInt✓✓
wInt✓✓
hInt✓✓
scroll_xInt✓✓
scroll_yInt✓✓(範囲に収まる)
max_scroll_xInt✓✗
max_scroll_yInt✓✗(子の大きさから測る。add_childのあとに読む)

ScrollList

name型getset
wInt✓✓
hInt✓✓
font_sizeInt✓✓
text_colorInt✓✓
border_colorInt✓✓
selected_indexInt✓✓
enable_iconBool✓✓
item_countInt✓✗(読み取り専用。pico.list_add/pico.list_clearで増減)
scroll_yInt✓✗(pico.list_scroll_toで動かす)

CanvasRaster

name型getset
wInt✓✓
hInt✓✓
colorInt(ブラシ色)✓✓
brush_radiusFloat✓✓(Int/Floatどちらでも可)
canvas_modeInt(0=Line/1=Rect/2=Ellipse/3=Arrow/4=Straight/5=Fill)✓✓(範囲外はエラー)
filledBool(四角形/楕円を塗りつぶすか)✓✓
undo_enabledBool(pico.canvas_undo用の控えを持つか)✓✓(確保できたかはgetで確認)

w/hを設定すると、それまで描いた絵は消えます(白紙に戻ります)。作った直後に1回だけ設定してください。

保存・読み込み・全消去・元に戻すは pico.canvas_save() / pico.canvas_load() / pico.canvas_clear() / pico.canvas_undo() を使います。詳細は ラスタキャンバス を参照してください。

LayoutContainer

name型getset
wInt✓✓
hInt✓✓
directionInt(0=VERTICAL/1=HORIZONTAL)✓✓
cross_alignInt(0=START/1=CENTER/2=END)✓✓
gapInt✓✓
paddingInt✓✓

GridContainer

name型getset
wInt✓✓
hInt✓✓
colsInt✓✓
gapInt✓✓
paddingInt✓✓
h_alignInt(0=START/1=CENTER/2=END)✓✓
v_alignInt(同上)✓✓

TabBar

name型getset
wInt✓✓
hInt✓✓
tab_selectedInt✓✓(setするとタップ経由と同じ扱いでtab_changedが発火する)
tab_countInt✓✗(読み取り専用。pico.tab_addで増やす)
font_sizeInt✓✓
border_colorInt✓✓
name型getset
wInt✓✓
selected_indexInt✓✓
item_countInt✓✗(読み取り専用。pico.list_add/pico.list_clearで増減)

h の設定には対応していません(内容に応じた固定の高さ)。

Canvas

name型getset
wInt✓✓
hInt✓✓

これ以外の固有プロパティはありません。内容は pico.on(id, "render", fn) で描きます(Canvasと直接描画 参照)。

Rect

name型getset
wInt✓✓
hInt✓✓
colorInt✓✓
filledBool(既定true)✓✓
thicknessInt(既定1。filled=falseのときの枠線の太さ)✓✓

Ellipse

name型getset
wInt✓✓
hInt✓✓
colorInt✓✓
filledBool(既定true)✓✓
thicknessInt(既定1。filled=falseのときの輪郭の太さ)✓✓

w/hに内接する楕円(w==hなら円)を描きます。

Line

name型getset
colorInt✓✓
thicknessInt(既定1)✓✓
x1Int(始点)✓✓
y1Int(始点)✓✓
x2Int(終点)✓✓
y2Int(終点)✓✓

w/hの設定には対応していません(x1/y1/x2/y2とthicknessから外接矩形として自動計算されます)。共通プロパティのx/yは外接矩形の左上を指し、setすると2点をまとめて平行移動します(線の向き・長さは変わりません)。線の形そのものを変えたい場合はx1/y1/x2/y2を個別に設定してください。

Triangle

name型getset
colorInt✓✓
filledBool(既定true)✓✓
thicknessInt(既定1。filled=falseのときの輪郭の太さ)✓✓
x1Int(頂点1)✓✓
y1Int(頂点1)✓✓
x2Int(頂点2)✓✓
y2Int(頂点2)✓✓
x3Int(頂点3)✓✓
y3Int(頂点3)✓✓

Lineと同じくw/hの設定には対応していません(3頂点+thicknessから自動計算)。共通プロパティのx/yは外接矩形の左上を指し、setすると3頂点をまとめて平行移動します。

ProgressBar

name型getset
valueFloat✓✓(Int/Floatどちらでも可。min_value〜max_valueに収まる)
min_valueFloat✓✓
max_valueFloat✓✓
colorInt✓✓(バーの色)
border_colorInt✓✓
w / hInt✓✓

QRCode

name型getset
textStr✓✓(QRにする文字。""で空。pico.set の文字列の上限を超えると黙って切れるので、長さの分からない文字は pico.text_set を使う)
eccInt(既定1=QR_ECC_MEDIUM)✓✓(誤り訂正の強さ0〜3。QR_ECC_LOW/MEDIUM/QUARTILE/HIGH。範囲外はエラー)
colorInt(既定0=黒)✓✓(升目の色)
background_colorInt(既定15=白)✓✓(地の色。共通プロパティ)
qr_sizeInt✓✗(1辺の升目の数。21〜85。空なら0)
w / hInt✓✓

描くときは color と background_color のうち明るい方を地にします(ダークテーマでも「明るい地に暗い升目」のまま。反転したQRを読めない読み取り機があるため)。

TextView

name型getset
textStr✓✓(255バイトまで。長い文章は pico.text_set)
scroll_yInt✓✓
row_countInt✓✗(折り返した後の行数)
w / hInt✓✓

ImageView

name型getset
pathStr✓✓(.pimg/.bmp/.jpg/.pngを読み込む。読めなければエラー。""で閉じる。sd_outside_app_dir権限が要るのはpico.image_loadと同じ)
image_w / image_hInt✓✗(見せている画像の大きさ。JPEG・PNGは縮めた後。未読込は0)
full_colorBool✓✓(JPEG・PNG・フルカラーのBMPを液晶へフルカラーで直接描く。既定 true。false で16色の絵だけ)
w / hInt✓✓(表示欄の大きさ。変えると読み直す)

MarkdownView

name型getset
pathStr✗✓(.mdを読む。読めなければエラー)
textStr✗✓(255バイトまで。長い文書は pico.text_set、8KiBまで)
scroll_yInt✓✓
w / hInt✓✓(変えると文書を組み直す)

AnalogClock

name型getset
hour / minute / secondInt✓✓(pico.get_time() の値を流し込む)
hand_color / second_hand_colorInt✗✓
w / hInt✓✓(どちらも直径になる)

DurationPicker

name型getset
total_msInt✓✓(0〜86,399,999)
editableBool✓✓(falseで▲▼が消える)
font_size / text_color / border_colorInt✗✓
w / hInt✓✓

MonthGrid

name型getset
year / monthInt✓✓(monthは1〜12)
todayInt✗✓(この月の中の今日の日。0で無し)
selectedInt✓✓(選択中の日。0で無し)
item_countInt✓✗(その月の日数)
border_colorInt✗✓
w / hInt✓✓

予定の点は pico.set_dots で渡します。

ダイアログ

pico.show_*() が返すIDには、共通のプロパティに加えて次が使えます。ふつうは closed イベントの3番目の引数で結果を受け取れば足ります。

開いた関数name型getset
show_inputtextStr✓✓
show_inputis_single_lineBool✗✓
show_file_save / show_file_selectpathStr✓(未選択はnil)✗
show_colorvalueInt✓(未選択は-1)✗
show_choiceselected_index / item_countInt✓✗
show_dateyear / month / selected(日) / text("YYYY-MM-DD")Int / Str✓✗
show_time / show_numbertext("HH:MM:SS" / 入力した文字列)Str✓✗
show_progressvalue(0〜100) / text(メッセージ)Float / Str✓(textは✗)✓
show_message(専用のプロパティなし。結果はclosedイベントのis_ok)———

start_dir など、開くときに渡した値は後から変えられません。