Qtopia Shell Bridge Dialog その3 「リプライダイアログ」
今度は リプライダイアログ。
#!/bin/sh # リプライダイアログのボタン設定 qshdlg -t ReplyDialog -n -v "Value1,Value2,Value3,Value4,Value5" -l "項目1,項目2,項目3,項目4,項目5" -h250 reply & while [ ! -p /var/spool/qshdlg/control ] do done # Cancelボタンを殺しとく echo 'cancel(QString)' cancel > /var/spool/qshdlg/control # 入力パイプから押されたボタン内容を読込 read btn < /var/spool/qshdlg/input # 読み込んだ内容をファイルに出力 echo $btn > /home/zaurus/btn_result.txt # ダイアログを閉じる echo 'reject()' > /var/spool/qshdlg/control
よーするに、固定のボタンを用意してやるダイアログ。
ボタンの数、戻り値、ラベル(表示名)が任意に設定出来ます。
所謂、メニューボタンの表示用ってことで、良いのかな?
しかし、Replyだと OKボタンの扱いがまた変わるんですなぁ。
しばらく、それがわかんなくて???状態でした。なんで、ボタンの値が渡らないの???と。フォーカス当てた後、必死に OKボタン押してた(苦笑)。
・・・あ、そっかこのスクリプトでは -n で非表示にしてるけど、本来的にはデフォルトで OKと Cancelのボタンに追加でこれらのボタンは表示されるんだった。
ってことは、当然それらは独立したボタンなワケだから、別のボタンにフォーカス合わせても、 OKボタン押したら、OKボタンになるんか。
確かに、ドキュメントにも
OK,Cancelボタンは非表示となりますが、キーボードのOK,Cancelボタンは 有効なままです。(それぞれ1,0を返します)
って書いてありますね(^^;)。