Scintillaとmrubyでテキストエディタを作る(4) : GTK版

curses版 のエディタは、そこそこ動くところまで作れたので、他のUIのものも用意できないか検討してみた。

そもそも、ScintillaWindowsMac OS XGTKに対応しているので、まずはその辺りから。 一番簡単そうな、GTKから着手。

curses版(mruby-bin-mrbmacs-curses)と同じように、

mrubyでのGTKバインディングは、mruby-gtk2とmruby-gtk3と2つあった。 どちらか選んで、scintillaもそれ用にビルドする。GTK3でコンパイルするには、GTK3を定義してmakeだ。 あたらしいほうが良いだろう。

で、こんな感じ。

f:id:masahino123:20160919092548p:plain

それっぽい見た目。ただし、まだ実用不可。 編集用の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版のみをがんばって作っていこう。