Hatena::Groupnadesiko

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


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


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


2010-07-14

2ちゃんねるスレまとめツールのGUIをざっくり作る

| 2ちゃんねるスレまとめツールのGUIをざっくり作る - そっとなでしこ を含むブックマーク はてなブックマーク - 2ちゃんねるスレまとめツールのGUIをざっくり作る - そっとなでしこ

 必要はツールの母。

 そろそろ、2ちゃんねるの某アニメ作品のスレッドをまとめる作業に取り掛かろうと思うので、懸案のツールに着手。

 当初の計画に、

  • ツール起動時に、変換形式を、はてな記法と@wiki記法から選択できる

という仕様があるが、とりあえずは(極めて個人的にw)早急に必要な@wiki記法にのみ対応版を優先。

 主な機能は次の通り。

  • 【主要機能1】選択した文字列に対する変換機能
    • 選択した文字列を、指定した文字サイズ、文字色で装飾する@wiki記法で囲む
    • 選択した文字列を、アスキーアート表示用@wiki記法で囲む
  • 【主要機能2】カーソル位置への定型文挿入機能
    • カーソル位置に、画像表示用@wiki記法のテンプレートを挿入する
    • カーソル位置に、サムネイル画像表示用@wiki記法(blankimg)のテンプレートを挿入する
  • 【主要機能3】テキスト全体への一括変換機能
    • 行頭の「>」や「>」の前に全角空白を挿入(引用文の@wiki記法として誤認されることを防ぐ)
    • 行頭の半角空白の前に全角空白を挿入(整形済みテキストの@wiki記法として誤認されることを防ぐ)
    • レスのヘッダー行頭に、識別文字「▼」を挿入

 GUIはエディタ部品を母艦のレイアウト全体に指定。

 「メニュー一括作成」でウィンドウの上部にメニューバーを表示。メニューバーから、上記の【主要機能1】【主要機能2】を呼び出し、エディタ上のテキストを任意編集。

 編集終了後に、メニューバーから「出力」メニューを呼び出すと、【主要機能3】の一括変換処理が行われ、その結果を「メモ記入」して出力する。

…というイメージで、まずGUIを作ってみた。

■ソースコード

#-----------------------------------------------------------------------
# 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,,文字装飾処理
」を、メニュー一括作成。
#-----------------------------------------------------------------------
# イベント処理
#-----------------------------------------------------------------------
スレ引用ツールのクリックした時は
 文字列選択状態別処理
スレ引用ツールのキー押した時は
 文字列選択状態別処理
#-----------------------------------------------------------------------
# 起動処理
#-----------------------------------------------------------------------
文字列選択状態別処理する。

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

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

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

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

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

●文字装飾処理
 「選択した文字のサイズ・色を選択するフォームをポップアップする」と言う。

■コメント

■Tエディタ

 今回のツールの主要部品であるエディタには、高機能な「Tエディタ」を選択。

 選択理由は、指定した文字数での自動折り返し表示がしたかったため。テキストの右端を見るために一々横スクロールするのは、使っていて絶対にイライラするだろうな、自分は。ということでw

 折り返しは、110バイト。全角で55文字。自分がまとめるスレのレスヘッダーが大体50文字前後なので、最低限その程度の横幅があれば見易いかなと。

 この折り返し文字数設定に合わせて、母艦の幅も指定。

■【主要機能1】【主要機能2】のメニューの有効/無効切替

 エディタ上で文字列が選択されているか否かで、【主要機能1】【主要機能2】のメニューの有効/無効を切り替えている。

 文字列が選択されている場合は、選択した文字列に対する変換機能である【主要機能1】の機能を有効にし、文字列を挿入する【主要機能2】は無効にしている。文字列が選択されていない場合は、その逆の動きになる。

 文字列が選択されているか否かをチェックするタイミングは、

  • ツール起動時
  • マウスのクリック時
  • キーボードの押下時
■「メニュー一括作成」のショートカットキー設定

 「メニュー一括作成」のショートカットキー設定は、プルダウンメニューを表示しなくても指定したショートカットキーから直接呼び出せて非常に便利、快適!

 ただし、「Ctrl+数字キー」(「Ctrl+1」etc)がショートカットキーに設定できないのはナゼ?(涙)

 調べても設定の仕方が分からなかったので、泣く泣くファンクションキー(「F1」etc)を指定。