Hatena::Groupnadesiko

そっとなでしこ RSSフィード


メインのブログに書くまでもない、なでしこ学習帳【記事一覧】 【このブログは何?】


特設!→【目次】なでしこ用Twitter 連携ライブラリ「なこったー」で遊ぶ


2010-07-15

リストやボタンなど複数部品で構成される独自フォーム、を実装

| リストやボタンなど複数部品で構成される独自フォーム、を実装 - そっとなでしこ を含むブックマーク はてなブックマーク - リストやボタンなど複数部品で構成される独自フォーム、を実装 - そっとなでしこ

 以下のGUI部品から構成されるフォームを実装。

  • リスト部品
    • 文字サイズリスト
      • 4~7の整数から選択するリスト
      • 初期値は4
    • 文字色リスト
      • 文字列「black、red、blue、green」の中から選択するリスト
      • 初期値は「black」
  • ボタン部品
    • 選択ボタン
      • 押下すると、文字サイズリストおよび文字色リストの選択テキストと、エディタ上の選択文字列とを整形した文字列で、エディタ上の選択文字列を置換する。
      • フォームを閉じる
    • キャンセルボタン
      • フォームを閉じる

■ソースコード

#-----------------------------------------------------------------------
# GUI定義
#-----------------------------------------------------------------------
母艦のX=0
母艦のY=0
母艦のH=500
母艦のW=900

スレ引用ツールとはTエディタ
スレ引用ツールについて
 レイアウトは「全体」
 #ポップアップメニューは右クリックメニュー
 #左バーはオフ
 #ルーラーはオフ
 表示記号は「スペース{~}タブ{~}全角スペース{~}EOF{~}改行」
 折り返しは110
 オートインデントはオフ

# メニューの定義
「#親,部品名,テキスト,ショートカット,チェック,イベント
なし,ファイルメニュー,ファイル(&F)
-,出力メニュー,出力(&Q),Ctrl+Q,,出力処理
なし,編集メニュー,編集(&E)
-,AA記法挿入メニュー,AA記法挿入,F1,,AA記法挿入処理
-,画像記法挿入メニュー,画像記法挿入,F2,,画像記法挿入処理
-,サムネ画像記法挿入メニュー,サムネ画像記法挿入,F3,,サムネ画像記法挿入処理
-,-
-,文字装飾メニュー,文字装飾(&E),Ctrl+E,,文字装飾処理
」を、メニュー一括作成。

# 自作フォームの定義
文字装飾フォームとはフォーム
そのタイトルは「文字装飾」

文字サイズリストとはリスト。
その親部品は文字装飾フォーム。
そのアイテムは「4{~}5{~}6{~}7」。

文字色リストとはリスト。
その親部品は文字装飾フォーム。
そのアイテムは「black{~}red{~}blue{~}green」

選択ボタンとはボタン。
その親部品は文字装飾フォーム。
選択ボタンをクリックした時は
 スレ引用ツールの選択文字列は、
 「&sizex({文字サイズリストのテキスト}){波カッコ}」&
 「&color({文字色リストのテキスト}){波カッコ}」&
 「{スレ引用ツールの選択文字列}{波カッコ閉じ}{波カッコ閉じ}」。
 文字装飾フォームを閉じる。

キャンセルボタンとはボタン。
その親部品は文字装飾フォーム。
キャンセルボタンをクリックした時は
 文字装飾フォームを閉じる。


#-----------------------------------------------------------------------
# イベント処理
#-----------------------------------------------------------------------
スレ引用ツールのクリックした時は
 文字列選択状態別処理
スレ引用ツールのキー押した時は
 文字列選択状態別処理
#-----------------------------------------------------------------------
# 起動処理
#-----------------------------------------------------------------------
文字列選択状態別処理する。
母艦のタイトルは「2ch引用ツール」。


#-----------------------------------------------------------------------
# 関数定義
#-----------------------------------------------------------------------

●文字列選択状態別処理
 もし、(スレ引用ツールの選択文字列)が「」ならば、
  画像記法挿入メニューの有効はオン。
  AA記法挿入メニューの有効はオフ。
  文字装飾メニューの有効はオフ。
 違えば
  画像記法挿入メニューの有効はオフ。
  AA記法挿入メニューの有効はオン。
  文字装飾メニューの有効はオン。

●出力処理
 「エディタ上の文字列を出力変換処理をしてメモ起動する」と言う。

●AA記法挿入処理
 「選択した文字をAA記法で囲う」と言う。

●画像記法挿入処理
 「画像記法を挿入する」と言う。 

●サムネ画像記法挿入処理
 「サムネ画像記法を挿入する」と言う。 

●文字装飾処理
 #「選択した文字のサイズ・色を選択するフォームをポップアップする」と言う。
 文字サイズリストの値は0。
 文字色リストの値は0。
 文字装飾フォームをモーダル表示。

■コメント

■複数のGUI部品から構成されるフォーム

 上記のソースでは、ベースとなるフォームとして「文字装飾フォーム」を定義しています。

 このフォームの上にリスト部品やボタン部品を配置するには、それぞれの部品定義で「親部品」として「文字装飾フォーム」を指定すればOK。

 出来ればフォーム上の部品配置も細かく位置指定したり、レイアウトに凝るべきなのだろうけれど、とりあえず自分で作って自分で使うツールなので、今回はノータッチ。今後の課題ということで。

■フォームのポップアップ表示

 「文字装飾フォーム」を母艦からポップアップ表示するために、呼び出し元の「文字装飾処理」関数では、「モーダル表示」関数を使って「文字装飾フォーム」を呼び出しています。

■リストの初期値

 リストの項目には、0から順番に値が振られています。逆に、この値を指定することでリスト内の任意の項目を選択状態にすることができるようです。

 例えば、リスト内の1番目の項目を選択状態にしたい場合は、そのリストの値に0を代入します。

■文字列のサイズや色を指定する@wiki記法

 今回実装した機能で出力する@wiki記法文字列については、以下のリンク先を参照のこと。