Scintillaとmrubyでテキストエディタを作る(4) : GTK版
curses版 のエディタは、そこそこ動くところまで作れたので、他のUIのものも用意できないか検討してみた。
そもそも、ScintillaはWindows、Mac OS X、GTKに対応しているので、まずはその辺りから。 一番簡単そうな、GTKから着手。
curses版(mruby-bin-mrbmacs-curses)と同じように、
mrubyでのGTKバインディングは、mruby-gtk2とmruby-gtk3と2つあった。 どちらか選んで、scintillaもそれ用にビルドする。GTK3でコンパイルするには、GTK3を定義してmakeだ。 あたらしいほうが良いだろう。
で、こんな感じ。
それっぽい見た目。ただし、まだ実用不可。 編集用のwindowは問題無く作れそうだが、ファイルのopen/saveや検索/置換のダイアログが出来ていない。
せっかくGTKなのだから、FileChooserDialogなど使おうとしたが、runしたところで、以下のエラー。
(<unknown>:27316): Gtk-CRITICAL **: gtk_dialog_run: assertion 'GTK_IS_DIALOG (dialog)' failed
やりかたが分らない・・・
一旦、あきらめて、FileSelectionを試してみる。 FileSelectionはGTK3には無いので、GTK2用にビルドし直し。
やってみると、 なぜか、メインのwindowを作成する前にFileSelection.newを書かないと、ファイル選択画面が出てこない。
そして、FileSelectionのok_buttonとcancel_buttonを取得する方法も分らない・・・
ここで、挫折。
GTKのウィンドウの描画やsignal_connect関係は、単純にC言語で書いたほうが悩みが少ないかも。 ただ、そうすると、mruby-scintilla-gtkはどう使う?
また、今度考えることにして、しばらくcurses版のみをがんばって作っていこう。