スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

wxStyledTextCtrlでの日本語入力#5

この週末に手許のコードをいじくりまわした。まず、wxWidgetsにテキスト編集時のイベントを追加し、wxOSX/Cocoaからそのイベントを送出するようにした。そしてそのイベントを処理するコードをwxRichTextCtrlの実装に書き足し。とりあえず、入力中の文字列が選択部分になるようにした。

wxRTC-20110619.png

IMから与えられる編集中のテキストには各種attribute(Cocoaの場合、下線の種類と色)がついているが、それをコントロールに伝えてその通りに描画してもらわないといけない。CocoaではNSAttributedString、GTK+だとPangoAttrListが使われているが、wxにもattributeを表現する手段が必要。今回はプロトタイプだと思って適当にでっち上げたが、wxに取り込んでもらうにはもうちょっと考える必要があるだろう。

しかし、いろいろいじってたらバグを作ってしまったようだ。究明はまた今度。

スポンサーサイト

テーマ : プログラミング | ジャンル : コンピュータ

wxStyledTextCtrlでの日本語入力#4 - 近況

最後にブログでこの話題に触れてから1年以上経ったので近況報告。

今は、暇を見つけて少しずつ進めている状態。コードを読んだりドキュメントを読んだりして分かったことをまとめたり、実装方法を検討したり。

今日は実際にコードを書いて、wxOSX/CocoaのwxRTCwxSTCが日本語入力を受け付けるようにした(ただし、現時点では確定前の文字はどこにも表示されないが)。今までは全く受け付けなかったので、進歩したといえる。 次は、wxOSX/CarbonとかwxGTKも同じような状態、つまりとりあえずの日本語入力ができる状態に持っていきたい(Carbonは1年前にやったけど)。インライン入力ができるようにするのはその後だ。これはAPIの設計も伴うのでもっと検討が必要。

とりあえず今日のは一定の成果なので、これまでの経過とこれからの展望も含めてMLに投げようかと思うが、下手に長文を書いて読みにくくならないか心配。

大学生になれば暇ができるかと思っていたが甘かった。見事に四月病にかかって、平日は空き時間がほとんどない。休日は予習・復習・課題をしなきゃいけない。それに、ALESSという実に面倒な授業があってかなり時間と手間を取られる。というわけで今日の続きができるのは来月かな… まあさすがに夏休みになれば時間があると思うのでその時にがんばろう。

テーマ : プログラミング | ジャンル : コンピュータ

wxStyledTextCtrlでの日本語入力の実験(Mac,Carbon)

後、Tracに、Macで確定できない問題へ対応するパッチを投稿したりしてみた。しかし向こうの人はインライン入力ができない問題と混同してるっぽい。2つの問題があるって事を伝えるべきなんだろうけど、面倒で何も書いてない。さっさとMacで確定できない問題だけでも解決してもらうべきなんだろうけど。

今日はwxStyledTextCtrlのコードを改造して、インライン入力の実験をしてみた。詳細はウィキに書く(予定)。ようやく、Carbonでのインライン入力の方法がわかりかけてきた気がする。

しかし、クロスプラットフォームで未だにCarbonを現役で使ってるのってwxWidgetsぐらいな気がするなぁ。みんなCocoaに行っちゃった中でwxだけがとり残されている。いや開発が遅いだけか。えっとだから折角Carbonでのインライン入力の方法を理解しても使いどころがないという。

テーマ : プログラミング | ジャンル : コンピュータ

wxStyledTextCtrlでの日本語入力のその後

おとといの記事を書いてからwxStyledTextCtrlでの日本語入力 @ ウィキを立ち上げたわけだが、その後の報告。

まず、2種類の問題があることが分かった。で、Macを使っている自分にとってより優先度の高い方(確定できない)を調べることにした。その結果、原因は分かった。対策も分かった。あとは本家のTracに報告して、パッチが取り込まれるのを待てばOK…と言いたいところだが、微妙に問題があって、そこもなんとかしないと取り込まれないかもしれない。その新たな問題への対処方針は考えてあるんだが、効率的な方法が思いつかない。その新たな問題も含めて報告すればいいのかもしれないが、問題を抱えているパッチが取り込まれるとは思えない。やはり完全解決をしてから報告したい。

手詰まりになってしまったので、もう一つの問題(インライン入力、Windowsを使ってる人が問題にしてるのはこっち)にも取りかかってみた。取りかかるといっても、Input Methodを扱うプログラミングはしたことがなかったので、情報収集から始めた。プラットフォームごとに異なるAPIを把握するのは疲れる。妥協して、Mac上のwxSTCだけでも対策をしようかと思い、コードを書きはじめるが、必要な情報(キャレット位置)をScintillaから得るためにはどうすればいいのかで悩む。本家Scintillaも同じことをしているので、それを写せばいいのだが、そんなことをするくらいなら本家のExtInput.cppをそのままコピーすればいいじゃん、と思った(実際、過去にExtInput.cppを利用してMacのwxSTCの日本語入力をなんとかしようと思い、試したことがある。その時はうまく動かなくて挫折したが、今思うと、確定できない問題がそのままだったから失敗したのかもしれない)。

ここまでで書いたように、いろいろやってみた。しかし、やはり自分一人の力と知識とモチベーションと時間では限界がある。というわけでwxWidgetsに詳しい方、WindowsのIMEに詳しい方、MacやGTKのIMに詳しい方の協力をお待ちしております。

ちなみに、動機を含めたこれまでの経過↓

続きを読む

テーマ : プログラミング | ジャンル : コンピュータ

wxStyledTextCtrlでの日本語入力に難がある件について

wxStyledTextCtrl(および、それを使用するアプリケーション、例えばEditraなど)で日本語が入力できない/難のある問題には、今まで何人もの人が気づいてるんだけど直せないでいる。自分も何年も前から知っているが、直せないでいる。根が深いのだ。しかし、誰かが直さなければ、wxStyledTextCtrlを使うアプリケーション(Editraとか)が、いつまでたっても「日本語入力ができない/難のあるクソソフト」と呼ばれることになる。どうすればいいのか。

いままでは各自が自分のブログに書いていたので、情報が分散していた。各自が別々に調べ、修正しようとしてその度に挫折していた訳だ。これは効率が悪い。そこでまず、その情報をまとめる場所が必要だと思う。Wikiか何かがあればいいと思う。情報を集めたって解決するかは分からないが、問題ははっきりするだろう。いずれ、その情報を元にして、実際に解決する人が出てくるかもしれない。

Wikiを作るとして、書くべき内容:

  • プラットフォームごとの症状の違い
    • Windows: インライン入力ができない
    • Mac: 文字が確定できない→使い物にならない
  • 問題を抱えているコンポーネント
    • wxStyledTextCtrl,wxRichTextCtrl
  • 上に挙げたコンポーネントを使っているアプリケーション
    • Editra
  • 参考リンク
    • 言及してきたサイト・ブログなど
  • 技術情報
    • wxWidgetsやアプリケーションのソースの取得・ビルド方法
    • パッチの当て方
  • 目的
    • 当面の解決策を探る
    • 抜本的な解決策を探る
      • wxWidgetsにIME/Input Methodを扱うクラスを追加する(?)
      • 本家に取り込んでもらう
      • かなりハードルが高い
  • 協力者募集
    • 各自で調べて分かっていることがあれば教えてほしい
    • 自分はMacなもんで、WindowsやLinuxの人も協力してくれるとうれしい

追記: @wikiにWiki作った。

テーマ : プログラミング | ジャンル : コンピュータ

プロフィール

minoki

Author:minoki
好きなプログラミング言語:
Haskell,Lua
GitHubアカウント
Twitter

最新記事
月別アーカイブ
カテゴリ
検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。