goo blog サービス終了のお知らせ 

きままなたぐりぶろ(日記)

ピンときたネタ・イベント(IT、旅行、日常etc)があれば書いていこうと思います。

自作テキストエディタでGTKを試すも問題が・・・

2010年05月11日 18時37分38秒 | 技術
以前wxStyledTextCtrl/wxScintillaの日本語入力の不具合を改修したと書いた。
改修したwxStyledTextCtrl/wxScintillaはWindowsのみ日本語入力が直っており、
Linux(GTK版)は依然としておかしいまま。
なのでwxWidgets自体あきらめてGTKを使おうかと考えて現在GTKを色々調べている。
GTKはWindowsでも使用することができるのでクロスプラットフォームという点では
wxWidgetsと大して変わらない。

そうして今回は別の方法を試していて新たな問題にぶち当たった。

いざGTK版の自作テキストエディタを作成し始めた。
Linux版は至って順調。GUIがきれいにまとまっている。
Windows版は・・・独自の描画をしているためWindows本来のGUIではないため少々違和感がある。
ただこれは専用のライブラリを同梱すればGUIだけはWindows本来のものと同じになるため
たいした問題ではないだろう。

GTKにはGtkSourceViewというテキストコントロールがあり使い方も結構簡単に様々な言語の色分けが実現できる。
GtkSourceViewがScintillaと違う点は次のものがある。

・表示(View)と表示内容(Buffer)のクラスが分かれており、自由にViewとBufferを接続することが出来る。
→ちょっと工夫するだけで文章の分割表示などが実現可能
・言語の色分けの定義に外部のXMLファイルを使うことが出来る。(動的に言語設定を増やすことが可能)
→Scintillaはどうもソースコードレベルで組み込んでしまっている?
・改行文字の表示が判別できない(常に一定のマーク)
→Scintillaは表示を分けられる

などがあるが概ねコーディングしやすい設計になっている。
WindowsでもLinuxでもそれは変わらず、非常に安心していた。

が、Windows版で非常に大きな問題発見。

巨大ファイルを開いた時にテキストの表示が非常に遅い!!


これはWindows版geditやnotecaseでも同様で、GTK全般で遅いようだ。
原因は多分、独自の描画をしているためだろう。
こればかりはどうしようもない・・・。

試したのは24MBのテキストファイル。
比較対象はEmEditorや旧バージョンの自作テキストエディタ。

■ファイルを開くテスト
EmEditor・・・神速。すっげぇ性能だな。
新旧自作テキストエディタ・・・どっこいどっこい。旧バージョンの方が若干早い。

■スクロール・カーソル移動
EmEditor・・・高速
旧自作テキストエディタ・・・高速
新自作テキストエディタ・・・劇的に遅い。ちなみにLinux版では意外や意外、結構早い。

Linux版はいいとしても、Windows版がこれでは不評を買うだろう。

仕方ない。最後の方法だ。
wxSourceViewの開発だ。
Windows版ではwxStyledTextCtrl、Linux版ではwxSourceViewを使い、
内部でインターフェースを合わせて新バージョンの自作テキストエディタを実現するしかない。
こうすることで若干の表示や機能の違いはあれど、両方の環境で日本語入力が正常に出来る
テキストエディタを実現できそう。

さて、wxSourceViewの開発をするか。
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« iPadはソフトバンクから&Cam... | トップ | 今日は出勤~(泣 »

コメントを投稿

技術」カテゴリの最新記事