― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - 任意の条件で初期化されたXPCOMコンポーネントを自動的に返す方法について
作成者 メッセージ
  記事の件名:  任意の条件で初期化されたXPCOMコンポーネントを自動的に返す方法について  引用付きで返信する
新設されたフォーラムに初投稿ドキドキ。

先日からXUL/Migemoフォーク版のAPIを国際化を考慮したものに変更するという試みを行っているのですが、躓いています。

XUL/Migemo [Forked Edition] 0.6.xでAPIまわりがゴタゴタしてる件

このエントリに書いたような経緯で、以下のようなことができないものかと悩んでいます。

コード:
var xmJp = Cc['@piro.sakura.ne.jp/xmigemo/core;1?lang=ja']
                     .getService(Ci.pIXMigemo);
/*
 http://www.cozmixng.org/repos/piro/xulmigemo/tags/0.6.3/components/pXMigemoCore.js
 このpXMigemoCore.jsの中で
  var service = new pXMigemoCore();
  service.init('ja');
 した結果(service)がpIXMigemoのインターフェースでラッピングされて取得できる
*/

var xmEn = Cc['@piro.sakura.ne.jp/xmigemo/core;1?lang=en-US']
                     .getService(Ci.pIXMigemo);
/*
 pXMigemoCore.jsの中で
  var service = new pXMigemoCore();
  service.init('en-US');
 した結果(service)がpIXMigemoのインターフェースでラッピングされて取得できる
*/


わけのわからないままファクトリー(gModule)の定義をいじってみて、

コード:
return (new pXMigemoCore()).QueryInterface(aIID);


この箇所を

コード:
var instance = (new pXMigemoCore()).QueryInterface(aIID);
instance.init('ja');
return instance;


という風にしてみても、意図通りには動いてくれませんでした。

最終的に目指している所は、pXMigemoEngine*.jsといった感じの独自モジュールを開発したらそのファイルをポンとcomponentsフォルダの中に放り込むだけで

コード:
var xmMy = Cc['@piro.sakura.ne.jp/xmigemo/core;1?lang=my-lang']
                     .getService(Ci.pIXMigemo);


という使い方ができるようになればいいなあ、と思っているんですが。

こういう場合はやはり現状のようにファクトリーの自作サービスを用意してそれを使うしか無いのでしょうか?
投稿記事 Posted: 2007年6月21日(木) 15:10

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean