タグ

ブックマーク / qiita.com/496_ (4)

  • IMEを使う(Windows: IMM編) - Qiita

    WindowsのIMEとのAPIにはいくつかの実装があるのですが、今回は古のWIndows 2000以降ならフルで使えるInput Metod Managerについてです。 非常に優秀なIMEのAPIで、未確定文字列の描画をアプリケーション側で行わない場合には、それを肩代わりしてくれます。 また、変換候補についても自身で表示するかIME側に表示してもらうかを選択できます(たぶん)。 Input Metod Manager概要 アプリケーション側でやることは主に2つです IMEに自身の情報を伝える IME関連のウィンドウメッセージを処理する これだけです。 以降は、縦書きエディタで最低限実装するべきことについてざっくりとリストアップします。 共通 IME関連の処理をする際には HIMC hImc = ImmGetContext(hWnd); hImcを使って色々やる ImmReleaseCo

    IMEを使う(Windows: IMM編) - Qiita
  • IMEを使う(macOS編) - Qiita

    はじめに AppleのIME APIはドキュメントを読んだだけでは実装できないと思うので、わりと有用な記事になるかもしれません。 NSTextInputClient Objective-Cだと10.5以降、Swiftだと10.10以降に対応という楽しいProtocolです。 他のIME APIと同様に、自前のTextViewを作るときくらいにしか使われません。 (https://developer.apple.com/reference/appkit/nstextinputclient?language=objc) 大まかな実装の手順は以下のとおり。 NSView<NSTextInputClient>を継承したViewを作る このView上に編集対象のテキストを表示可能にする NSTextInputClientの関数を実装する これで、IMEを正しく扱うことができます。 WindowsのT

    IMEを使う(macOS編) - Qiita
  • IMEを使う(序章) - Qiita

    IMEとは 残念ながら、キーボードのキー数はUnicodeのコードポイント全てをカバーするほど多くはありません(桁が3つほど足りませんね)。 そのため様々な文字を入力する必要のある言語では、その入力の際にInput Method Editorと呼ばれるものを挟みます。 例えば日語では入力した文字列のかなを入力し、それを適切に漢字などに変換するという実装になっています。 例えば、 Microsoft IME Google日本語入力 ATOK SKKなど アプリケーションはキーボードからではなく、IMEのAPIを通して文字列を受け取ることで日語や韓国語、中国語といった様々な言語を共通の仕組みで扱うことができます。 また、昨今では、このIMEのAPIを挟むことで、手書き文字入力や音声入力といった様々な入力方法に対応してきています。 IME API IMEのAPIを直接利用する必要がある状況と

    IMEを使う(序章) - Qiita
  • OpenTypeの仕様入門 (前編) - Qiita

    OpenTypeというのは世界中で最も使われているフォントファイル形式の仕様です。 仕様はこことかにあります。 これを理解すればだいたいOKです。 THE END さて、仕様を読むのが面倒な方は下の続きもどうぞ。 OpenTypeフォントの構造 簡単にまとめると以下のような構造です。 ヘッダ データ 簡単ですね。 そして、このヘッダの中には それがどういう情報であるのか 見るべきデータがどこにあるのか が書かれています。 データの中にもまたヘッダがあることがあります。 そこにもやはり、それがどういう情報であるか、次に見るデータがファイル中のどこにあるか、ということが記されています。 冒頭に提示した仕様は、ヘッダがどのような構造体なのか、データがどういう意味を持つかということをまとめたものになります。 OpenTypeテーブル フォントはヘッダとデータで構成されているというお話をしました。

    OpenTypeの仕様入門 (前編) - Qiita
  • 1