2008-05-08ばっしゅー
xpcomstub をリリースしました
Mozilla, XPCOM, JavaScript | |
XPCShellを使って特定のinterfaceのスタブを作る - Ci.nsIZIGOROu - Mozilla 拡張機能勉強会 を少しまとめてCodeReposにうpりました。
ダウンロード
使い方
まずxpcshellが必要です。
さらに環境変数ないしはxpcomstub.shのXPCSHELL変数にお使いのxpcshellのパスを記述する必要があります。
そこまで出来たら後は簡単。
usage: xpcomstub.sh [-c class_name] [-a add_args] ifaces -c ) The class name of generated source code. -a ) Add method args via nsIScriptableInterfaceInfo (not implements yet)
って感じの使い方*2で、実際には
$ /path/to/xpcomstub -c MyTreeView nsITreeView
とかそういう感じで使います。
これを実行すると、
var MyTreeView = function() {}; MyTreeView.prototype = { rowCount: function() {}, selection: function() {}, getRowProperties: function() {}, getCellProperties: function() {}, getColumnProperties: function() {}, isContainer: function() {}, isContainerOpen: function() {}, isContainerEmpty: function() {}, isSeparator: function() {}, isSorted: function() {}, canDrop: function() {}, drop: function() {}, getParentIndex: function() {}, hasNextSibling: function() {}, getLevel: function() {}, getImageSrc: function() {}, getProgressMode: function() {}, getCellValue: function() {}, getCellText: function() {}, setTree: function() {}, toggleOpenState: function() {}, cycleHeader: function() {}, selectionChanged: function() {}, cycleCell: function() {}, isEditable: function() {}, setCellValue: function() {}, setCellText: function() {}, performAction: function() {}, performActionOnRow: function() {}, performActionOnCell: function() {}, QueryInterface: function(aIID) { if (aIID.equals(Components.interfaces.nsITreeView) || aIID.equals(Components.interfaces.nsISupports)) { return true; } throw Components.results.NS_NOINTERFACE; } };
こんな感じの出力を吐いておしまい。
KNOWN ISSUE
- メソッドの引数をつけてない
- nsIParamInfoで名前取れないので今の所やってない、IDL経由にすべきなんだけどなぁ。
TODO
- CORBA::XPIDL を使って再実装(ぇ
- ただPerlにしたときJavaScript::Swellの出力がbeautify.jsと比べて微妙だったので、どうしたもんかなと。
コメントを書く
Chaya2012/12/15 21:22That's an astute answer to a trkicy question
vjmogqpz2012/12/16 17:55F3Dvme <a href="http://hlcbrxfmibkm.com/">hlcbrxfmibkm</a>
ummzidoaz2012/12/17 00:37kFtSgb , [url=http://rzchhuzozgjh.com/]rzchhuzozgjh[/url], [link=http://hrjzrqstvkmw.com/]hrjzrqstvkmw[/link], http://cnlcwwehwqiy.com/
flutqdwemeg2012/12/21 07:193wFzRy , [url=http://lwxnfluepzac.com/]lwxnfluepzac[/url], [link=http://rwedkxigxvnw.com/]rwedkxigxvnw[/link], http://rznvomnuzgpd.com/