ホームページ開発ツール>サンプル2

サンプル2


 EditFieldCbn 1.0a2

 REALbasic4.0.3-J + Carbon環境(Mac OS X等)で、他のアプリとの間でコピー&ペーストした際に、スタイル情報が正しく継承されるEditFieldクラスを試作してみました。
(あくまで勉強目的で作成した試作品です。そのままで実用に耐える訳ではありませんし、検証も十分とは言えませんので、ご注意下さい。)


注)画面は1.0a1(Mac OS 9.0.4 + CarbonLib J1-1.5)のものです。

 本クラスはフリーウェアです。ご自由に改造していただいて構いません。
 サンプルはREALbasic 4.0.3Jで作成しました。

【謝辞】

 スタイル情報とBinHex値の取り出し方については、藤田 稜氏の解説を参考にさせていただきました。ここに、有用な情報を公開されている氏に感謝の意を表します。
 また、フォント名とフォントIDの相互変換は「REALbasicとFutureBASICで使おう Toolbox最新活用テクニック」(水野貴明・重松修共著)を参照させていただきました。重ねて感謝の意を表します。

【概要】
  1. スタイル付きテキストを他のアプリからペーストしても、スタイル情報が正しく継承されることを目指しています。
  2. スタイル付きテキストを他のアプリにコピーしても、スタイル情報が正しく継承されることを目指しています。(ただし、一部問題あり。既知の問題点を参照。)
  3. Carbon環境でのみ動作します。(Classic環境では通常のEditFieldとして動作します。)
  4. 外部とのインターフェイスは以下のとおりです。
    ・SetTextAndStyleCbn:SetTextAndStyleメソッドと互換性があります。
    ・TextStyleDataCbn:TextStyleDataプロパティと互換性があります。
【既知の問題点】
 以下の各点について、詳しい情報また対処法をご存じの方は、お知らせいただけると幸いです。
  1. ペースト先がCocoaアプリの場合、一部の(というか多くの)フォントはフォント名が正しく伝わりません(本クラスでは、システムフォントに置き換わります)。これはRb4.0固有の問題というよりは、Carbon ⇒ Cocoa全般に起こる現象のようです。
  2. フォント名をSelTextFontでは正しく取得できないため、対策を施してありますが、理論的裏づけがないため、誤動作するおそれがあります。
【既知の障害】
  1. 上記のフォント名取得に関連して、一時的にクリップボードを使用しているため、連続してペーストしたい場合等に支障をきたす場合があります。(あらかじめクリップボードの内容を退避して、後で戻す等の処置を加えた方がいいでしょう。)
【ソースについての注意事項】
  1. エラー処理は最低限しか行っていません。必要に応じて追加して下さい。
  2. 高速化のための工夫は特にしていません。必要に応じてアルゴリズムを見直して下さい。またはプラグイン化して下さい。
  3. cutメニューには対応していません。必要に応じて追加して下さい。(部分cutに対応するためには、スタイル情報の再作成が必要です。)
  4. 上記各点について、作者はサポートいたしません。
【検証済環境】
  1. Mac OS X 10.1.5
  2. Mac OS 9.0.4 + CarbonLib J1-1.5
  3. (Mac OS X 10.2以降は未検証)
【更新履歴】

v1.0a2
・SetTextAndStyleCbnを連続して実行すると、テキストが累積してしまう不具合を修正した。

v1.0a1
・新規作成

【解凍についてのご注意】
 ファイルは、StuffIt5.5(MacBinary)形式で圧縮されています。ダウンロード後、StuffIt Expander等で解凍して下さい。

EditFieldCbn 1.0a2(約16KByte)をダウンロード


[Home]  [MacSoft]  [Donation]  [History]