Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

マクロコマンド拡張コマンドの追加 #167

Closed
zmatsuo opened this issue Mar 16, 2024 · 4 comments
Closed

マクロコマンド拡張コマンドの追加 #167

zmatsuo opened this issue Mar 16, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@zmatsuo
Copy link
Member

zmatsuo commented Mar 16, 2024

Cコンパイラの(-std=c++20のような)オプション、
perl use、visual basic の Option のようなキーワードを追加して
互換性を保ちつつ拡張できるようにする提案です。

仮にキーワードをextendとすると、
例えば

extend listbox v2

とすると、listboxの動作がversion2に切り替わります。
元に戻すときは v1 とします。

文字列を渡すとしたほうが拡張性が高いでしょうか

extend "listbox" "doubleclick=on,minmaxbutton=on,large=on"
@hkanou
Copy link
Contributor

hkanou commented Mar 18, 2024

ご検討頂きありがとうございます。
extend文で動作が変わると、マクロファイルの修正箇所が少なくて変更が楽そうに思いました。
(ご参考)TTLコマンド(listbox)にオプションを追加する案も紹介させていただきます。

追加前 listbox <message> <title> <string array> [<selected>]
追加後 listbox <message> <title> <string array> [<selected> [ ['doubleclick'] ['minmaxbutton'] ['size=large'] ] ]
例) listbox '今日の天気はどうですか?' 'あなたへの問い' msg 6 'doubleclick' 'minmaxbutton' 'size=large'
※ 要望があればsize=medium、size=hugeも追加

パッチ https://github.com/hkanou/ttpmacro/tree/main/ttpmacro2

@nmaya
Copy link
Member

nmaya commented Mar 19, 2024

extend listbox v2

「2 とは何か」というのがわかりづらいように思います。

extend "listbox" "doubleclick=on,minmaxbutton=on,large=on"

こちらのほうが、なにをしているか分かりやすそうです。


「拡張された機能への引数の渡し方」が問題になりませんか?

これまでの拡張は、logopenのように引数を増やしていくやり方でした。
新しい機能の引数を追加し、デフォルトを「今までどおりの動作」に振っていました。

listbox <message> <title> <string array> [<selected>]

#154 に書いたようなオプションを取らせる場合、「機能Aが有効な場合の引数」「機能Bが有効な場合の引数」があり得ます。
どの組み合わせの場合でも同じ指定ができるようにするべきです。「minmaxbutton=onの場合は第5引数が最小化/最小化の指定」「resizable=onの場合は第5引数が幅、第6引数が高さ」というような仕様は、煩雑かつ破綻しています。

; listbox <message> <title> <string array> [<selected> [<minmax> [<width> [<height>]]]]
extend "listbox" "resizable=on"
listbox 'message' 'title' ary_list 0 **0** 400 300
; minmax 機能は有効ではないが、width 引数を指定するには minmax の引数を指定しなければならない

@zmatsuo
Copy link
Member Author

zmatsuo commented Mar 26, 2024

extend listbox v2

「2 とは何か」というのがわかりづらいように思います。

version2 という感じです。
-std=c++20 の20ってなに?と同じ感じですね。
ドキュメント参照くださいになりそうです。

煩雑かつ破綻しています。

確かにこれは破綻します。

@zmatsuo
Copy link
Member Author

zmatsuo commented Aug 17, 2024

キーワード引数がlistboxで導入されました。

キーワード引数を使用してコマンドの拡張を行っていけば
拡張コマンドを導入しなくてもよさそうです。

このissueはクローズします。

@zmatsuo zmatsuo closed this as completed Aug 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants