トップページ⇒tech
1001コメント388KB

Mozillaでプログラミング(XUL)

■ このスレッドは過去ログ倉庫に格納されています
0001MozillerNGNG
ム板住人のうちMozilla使ってる人は何%くらいかわかりませんが、
Mozilla 1.0 RC1がリリースされ、
XUL 1.0の仕様が一応フリーズしました。
なので、そろそろXULアプリケーションも出始めることでしょうし(希望的観測)
MozillaでのXULプログラミングについて騙りませんか。

Mozillaスレッド M10
http://pc.2ch.net/test/read.cgi/software/1019550671/
0190厨房もじらー ◆3mOz2Ch. NGNG
とおもってもう一度読んだらやっぱりcryptないじゃん。。。鬱だ。
0191 ◆Z80FPU5k NGNG
UIかけるようになりますたw
まだ中身なんもないですw
http://baniisan.s12.xrea.com/images/ftpzilla.gif
どんなUIにするか考えるのめんどかったんで、FFFTPzillaに
してみますたw
この程度のUI作るだけで約4時間半。。。こんなペースで
勉強してたら、完成するのは半年ぐらいかかるヨカン。。。鬱
0192デフォルトの名無しさんNGNG
>>191
かこいいすね……
ただ、こういうのって、スキンをつけたらどうなるの?
今、PinBall使ってるんだけど、それなりに変更とかされるのかな?
0193 ◆Z80FPU5k NGNG
>>192
スキンどころか、ロケールすら無視してゴリゴリですw
今んとこおいらのスキルが見かけとか気にする段階じゃ
ないもんで、とりあえずどこクリックしても無反応なこのUIに
機能を実装するのが最優先なのれすw
0194厨房もじらー ◆3mOz2Ch. NGNG
>>191
見てみた。カコ(・∀・)イイ!!ね。
とりあえず勉強しながらの開発は、段々と要領を得ていくものなので
基本的には開発の速度は加速していくものだから
そんなに心配しないことです。

>>192
見たところテーマに依存しない風なつくりなので
あらゆるテーマでそれなりに表示されると思われ。
Moz2chは、いらないところに凝ってるから
各種テーマに対応する差分テーマ作らなきゃなんだけど。。。(鬱
0195デフォルトの名無しさんNGNG
ユーザープロファイルが入ってるフォルダのパスってどうやって取得するんでしょう?
そこに設定ファイルや個人のtempファイルを置こうかなーと思ってるのですが。
0196デフォルトの名無しさんNGNG
>>195
Piroさんのウェブページで解説されてたと思うよ。
0197デフォルトの名無しさんNGNG
>>196
おぉ!本当だ!すんばらしい!
0198デフォルトの名無しさんNGNG
2ch用ブラウザを使っていないので2ch用の各ブラウザが
どうやってるのかは知らないのですが、例えば取得したdatファイルを
HTML化して表示するには、一度ローカルに書き出してからそのローカルファイルを
ロードするという方法が常道なのでしょうか?
Moz2chもそうしてるようですし。
0199デフォルトの名無しさんNGNG
普通はそんなことしないよ
必要以上にディスクIO増えて遅くなるだけ
0200デフォルトの名無しさんNGNG
先に保存しておけば、保存し忘れるということはない。
例えクラッシュした場合でさえ。
0201デフォルトの名無しさんNGNG
普通はどうやるんでしょうか?
0202厨房もじらー ◆3mOz2Ch. NGNG
>>198
2ちゃんねる→Moz2ch→ログを保存
        ↓
       データを処理
と並行してやってる。
Moz2chは、一応データを処理してからログに吐き出すようにしてるから
ローカルに書き出してからロードするというようにはしてないよ。
2回目以降はログ読み優先にしてあるから、ログ読みに逝くけど。
0203厨房もじらー ◆3mOz2Ch. NGNG
ちなみに、漏れの記憶が正しければMonazillaスレの初期のものは
一旦ローカルにデータを落としてから、
いろいろ弄るような形式になってたと思われ。
当時はDAT直読みができなかったから、データ解析が大きな処理で
データのダウンロード、保存とは分けて考えたかったからだと思う。
違ったらスマソ。ツッコミよろしく。
0204201NGNG
>>202
んー、すいません。どこでデータ処理してるかわかりません。
教えていただけないでしょうか。
moz2chSure.writeEnd()でHTMLソースの作成が完了して、
f.write(this.html);でmoz2ch.htmlというローカルファイルに
書き出して、
document.getElementById("sureBrowser").loadURI(f.URL,
 Components.interfaces.nsIWebNavigation.LOAD_FLOAGS_NONE);
でそのmoz2ch.htmlをロードしている、と思っていたのですが、
データを処理(変数内のHTMLソースを直接表示)するのはどこで
やっているのでしょうか?
0205199NGNG
あーごめんちょっと勘違いした。

ローカルに保存した.datをHTMLとして出力する時に、テンポラリファイルとして
.htmlを作るようなことは普通しない、という意味で書いた>199
0206厨房もじらー ◆3mOz2Ch. NGNG
>>205
読み違えてた。スマソ。。。
普通は.htmlを作ることはないと思いますが、
Moz2chでそうしているのは
JavaScriptにはスレッドがないので(多分)
document.write()などJavaScriptのメソッドで
連続して大量のデータについて重い処理をすると、
固まったようになっちゃうので、
暫定的にファイル書き出し、読み込みするようにしています。

データを溜め込むバッファみたいなのを用意しておいて
setTimeoutなどで定期的にバッファを処理するようにしてやれば
うまくいくような気はしてるんですが、今はネットワーク周りと
基本的な設計とか構造に関することが気にかかってるので
そのあたりは後回しです(汗
0207厨房もじらー ◆3mOz2Ch. NGNG
ちなみに、差分getをサポートしたら、
逐次レンダリングをしようと考えてるんだけど
そのときにもう少し効率のよい描画方法として
上の方法を試そうと予定しています。
0208厨房もじらー ◆3mOz2Ch. NGNG
話の流れ上ここで話しちゃったけど
>>179
0209201NGNG
Moz2chでは一時的に.htmlを書き出してからそれをロードしてるということで
いいのでしょうか?そして、普通は(他の言語で作られている2chブラウザでは)
そのようなことはせずに変数内のHTMLソースを直接表示させてると
いうことでしょうか?

それでこれに関連してもう一つ。
IEコンポでは自分で作ったHTMLを表示させるにはinnerHTMLを使ったり、
ちょっとかっこ悪いですがabout:<html>....</html>をNavigate2に
渡せば表示できますが、XULではどうやるのでしょうか。
.htmlに書き出して表示させる方法しか思いつかなかったので先のような質問を
させていただきました。
0210厨房もじらー ◆3mOz2Ch. NGNG
たとえば<browser>エレメントをdocument.getElementByIdなどで取得して
var browser = document.getElementById("myBrowser");
var doc = browser.contentDocument;
doc.writeln("<html>…</html>");
とやればいけると思われ。
doc.innerHTMLでもいけるかも。
0211デフォルトの名無しさんNGNG
ユーザースタイルシートのON/OFFを切り替えたり、
適用するユーザースタイルをいくつも登録しておけるようなアプリを作ってください。
021223NGNG
をぉ、>>211 のような小物は漏れ向きかも(藁 ちょいと調べてみようかな。
# 暇があれば・・・
0213厨房もじらー ◆3mOz2Ch. NGNG
漏れの意見としては、Piroさんのコンテキストメニュー拡張に
そういう機能があったような気がするので
あっちを使うか、機能不足ならパッチ送って追加してもらうとか
そういう方向のほうがよさげかと。
似たようなアプリが乱立すると(それ自体は悪いことではないと思うけど)
干渉するというか、そういうことがままあるので。
0214 ◆S0qIRC9I NGNG
userContent.cssで定義されるユーザースタイルは、XPCOMから操作できるんでしょうか?
自分は方法を見つけられなかったんですが……
0215デフォルトの名無しさんNGNG
>>241

xpcom からと言ってよいのかわからんすけど
userContent.css のスタイルは DOM Inspector から
参照できるです。 その辺りは参考にならんすか?

0216215NGNG
>>241宛じゃなくて >>214宛す。
0217デフォルトの名無しさんNGNG
XUL で遊んでいるんだけど、Javascript がいまいちわかりません。
みなさんは、何を参考にしているんですか?
0218 ◆S0qIRC9I NGNG
>>215
ありがとうございます。確かにそれっぽい処理が行われてますね。
しかしどこがその部分なのかソースを見てもさっぱりわからないという自分の低レベルっぷりが涙を誘います。
0219厨房もじらー ◆3mOz2Ch. NGNG
>>217
漏れは手元にあるJavaScript本(古くてちゃちいやつ)と
http://developer.netscape.com/docs/manuals/javascript.html
あたりを参照しつついろいろやってるよ。
0220デフォルトの名無しさんNGNG
217です。

>> 219
厨房もじらーさんありがとうございます。
参考にします。

0221デフォルトの名無しさんNGNG
XUL 初心者ですが、練習をかねて作成してみました。
カスタムメニューバー
http://member.nifty.ne.jp/georgei/mozilla/custom_manubar.html

人柱になっても良いという方、テストしてくれませんか?
Nifty が(今の所) .xpi の mime を追加してくれないので、
自動インストールできません。あしからず。
0222厨房もじらー ◆3mOz2Ch. NGNG
>>221
インストールしようとしてみたのですが、インストール中にこけます。
以下はログです。ファイルの場所以外はそのまま載せます。

-------------------------------------------------------------------------------
file:///*****/custommenubar-092.xpi -- 07/06/2002 10:12:33
-------------------------------------------------------------------------------

Custom Menubar (version )
--------------

** initInstall: 0
** ィ鵈 (-214): ウn{2:

Install completed successfully -- 07/06/2002 10:12:33
0223厨房もじらー ◆3mOz2Ch. NGNG
>>222 を見てもわかるように、ファイルがコピーされてないようです。
install.jsの中を見てみたのですが、
おそらくperformInstall()する前にエラーチェックをしてないので、
インストールは成功とでます。

#たいていperformInstall()の前でこういう感じでエラーチェックします。
err = getLastError();
if (err == SUCCESS)
performInstall();
else
cancelInstall(err);
0224厨房もじらー ◆3mOz2Ch. NGNG
改めて見てみたら、addDirectoryしているのに
custombar.xpiの中に入ってるのはcustomebar.jarでした。。。
それでファイルが見つからない(-214)のエラーがでてるようです。
修正したものを一応
http://xul-app.hoops.jp/moz2ch/custombar/custombar-install-fix.xpi
にageておきますた。
0225厨房もじらー ◆3mOz2Ch. NGNG
で、ちょっと使ってみましたが、メニューから辿る動作がない分
ラクといえばラクですね。ただ、冗長だと思わないでもないです。。。
個人的な希望としてはアイコンが入って、アイコンのみ、
アイコンとテキスト、テキストのみを切り替えられると(・∀・)イイ!!
と思うです。

ところで、ツールバーの区切りは
<label value="|"/>で実現してると思うのですが、
<toolbarseparator/>をなぜ使わないのかが気になる気になる。。。
0226厨房もじらー ◆3mOz2Ch. NGNG
印刷プレビューは、print(印刷ボタン)のポップアップから使えるので
要らないような気がしますが、どうでしょうか?
0227221NGNG
厨房もじらー さん。素早いコメント感謝です。
どうやら前のバージョンをアップしていたようです。失礼しました。
差し替えた(つもり)です。
最新版では
<toolbarseparator minheight="16px"/>
で処理してます。

アイコン入れるのは考えたのですが(そのためのツールチップ)、
テーマとの整合性を考えて保留にしてます。
0228221NGNG
印刷プレビューの件ですが;
ブックマーク系もパーソナルツールバーやサイドバーに表示できるのに、
付けて欲しい、という人がいたので追加した、という経緯があり、
とりあえず入れてあります。
デフォルトから外しているのはそのためです。
0229厨房もじらー ◆3mOz2Ch. NGNG
>>227
最新版はまだ試してないのですが、
漏れがいろんなXULアプリを見てきた中で<toolbarseparator/>は
<toolbar tbalign="stretch">
<toolbarseparator label="LABEL"/>
</toolbar>
のように使われてたので、そうすると意図した表示になると思われます。
0230221NGNG
>>229
最初は <toolbarseparator/> だけでやってみたのですが、
なぜか空白だけで区切り線が表示されない。
(<menuseparator/> では表示されるのに)
悩んだあげく <label value="|"/> で強引に表示させていました。
同等の表現は、お教えいただいた、
<toolbarseparator label="|"/> でできるかと思いますが、
これまた、他の人に教えていただいた、
<toolbarseparator minheight="16px"/> の方が他の UI と同じ
区切り線がでるので、これで行こうと思います。
0231 ◆3mOz2Ch. NGNG
>>230
>>229 は間違ってました。
重要なのは、<toolbar tbalign="stretch">の部分で、
<toolbarseparator/>
にはlabelは要りませんでした。
Mozilla Messenger(メーラ)のコードはこういう風にしてあったので。

<toolbar tbalign="stretch">
<toolbarbutton label="Button1"/>
<toolbarseparator/>
<toolbarbutton label="Button2"/>
</toolbar>

のようにします。スマソ
0232221NGNG
>>231
確認しました。
tbalign="stretch" 入れると、 <toolbarseparator/> だけで
区切り線が表示されました。
次期バージョンに取り入れたいと思います。
いろいろなご助言、ありがとうございます。

ダウンロードページの Contributors に記載してもよろしいでしょうか?
「厨房もじらー さん@Mozillaでプログラミング(XUL) 」とか。
匿名希望も受け付けますが(w
0233 ◆3mOz2Ch. NGNG
>>232
いえいえ、XULプログラミングの発展を願ってます。
Contributorの扱いはそちらにお任せします。
Contributeというほどのことはしてないと思いますけどね(藁
0234デフォルトの名無しさんNGNG
ネットランナーに、PiroさんのXULアプリ多分全部と、PROXYBARも入ってた...
0235 ◆3mOz2Ch. NGNG
proxybar、さりげに有名に(藁
0236デフォルトの名無しさんNGNG
>>235
×「さりげに有名」
○「なにげに有名」or「さりげなく有名」
0237≠235NGNG
>>236
非常に申し上げ難いのですが
「さりげに」は若者言葉として
既に定着した感のある
形容表現で御座いますが...
0238デフォルトの名無しさんNGNG
素直に受け止めろ。仲間内だけで使え。
0239厨房もじらーNGNG
>>236 >>237 >>238
さりげにって普段使うけど
意味は「なにげに」の場合が多いな漏れ。
と、反省させられたので
仲間内だけで使うことにするYo!
ありが�d。

そんなことより>>1よ…じゃなくて
そんなことより、このスレでこういう話題しか書き込まれないのがサミスィ
漏れもそうだけど、XULプログラミング一般ってネタ少ないねやっぱり。
0240 ◆sX5Fl3bU NGNG
>漏れもそうだけど、XULプログラミング一般ってネタ少ないねやっぱり。

XUL 一般となるとまだ少ないけど、
http://pc.2ch.net/test/read.cgi/mac/1019023586/879-886n
の bookmarklet なネタとかも合わせれば地道に増えてる気もする。
ちなみに bookmarklet については
http://www.squarefree.com/bookmarklets/
とか。

直接は関係ないけど XUL 開発に使えるかもしれない Tips をばひとつ。

● Chatzilla を JavaScript のちょっとしたテスト実行に使う。
・Chatzilla は *Client* タブの画面でコンソールに JS 式を書くと
直接実行される。
・コンソールで Ctrl + ↑ を押すと複数行入力が出来る。
送信は Ctrl + Enter。
・display() が組み込まれてるので、表示画面に返り値など表示できる。
これらを利用して…
-------------------------------------------
function setLoadImage(value)
{
var prefkey = 'network.image.imageBehavior';
var pref = Components.classes['@mozilla.org/preferences;1']
.getService(Components.interfaces.nsIPrefBranch);
pref.setIntPref(prefkey, value);
display("load Image mode: " + pref.getIntPref(prefkey));
}
setLoadImage(2);
-----------------------------------
とか入力すると、画像表示可・不可の切替が出来る。

現在のブラウザウィンドウを参照するときは
--------------------------------------------
const WINMAN = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator);
function getWin() { return WINMAN.getMostRecentWindow('navigator:browser'); }
// 上2行ブラウザウィンドウを取得するのに必要。
getWin().getBrowser().contentDocument.location.href = 'http://www.mozilla.org';
-----------------------------------------------------
こんなかんじ。もっと楽したければ Contextmenu-Extension の
JavaScript TestRun や Custom Script つかうべし。

考えてみると、これ利用すればマクロ実行とかできそうな予感。
0241厨房もじらーNGNG
>>240
おお、スゴッ
感動した!
複数行表示とか全然知らなかったよ。
JSLibにはスクリプトを読み込むinclude()関数っていうのがあるんだけど
これも使えば、外部JSファイルを追加読みこみしたりできるし
マクロ実行とかできそう。

bookmarkletネタだと漏れは
javascript:resizeTo(640,460);
javascript:resizeTo(808,680);
javascript:resizeTo(1024,748);
とかやって、ウェブページ作成のときに
画面サイズの目安にしたりしてるくらい。。。

全然フツーだな、スマソ逝ってくる。。。
0242 ◆sX5Fl3bU NGNG
>>241
include()関数?と思って JSLib 見てみたら…
---------------------------------
const PROG_ID = "@mozilla.org/moz/jssubscript-loader;1";
const INTERFACE = "mozIJSSubScriptLoader";
const Inc = new Compornents.Constructor(PROG_ID, INTERFACE);
(new Inc()).loadSubScript(aScriptPath);
---------------------------------------
及び
http://lxr.mozilla.org/mozilla/source/js/src/xpconnect/idl/mozIJSSubScriptLoader.idl
こんなもん用意されてたとはっ(当然?)
0243 ◆S0qIRC9I NGNG
>>242
おぉ、そんな機能があったとは。
CustomScriptにも取り込もう……
0244厨房もじらーNGNG
ファイル読み込みができるんだから(XPCOM使って)
読み込んだファイルの内容を
eval()してやっても同じことができる?とか妄想した漏れはアレゲですか?
0245 ◆S0qIRC9I NGNG
>>244
げふ。もう短縮構文作っちゃいました。後の祭り。
0246厨房もじらーNGNG
>>245
いや、>>244はネタですた(藁
普通に>>242のほうが早いと思うし、
逝ってみただけです。。。
0247 ◆q78mh/0k NGNG
Deskmod.com に、XUL アプリを置けるカテゴリが作られてるので、
ご報告。カテゴリ名は変わるかもです。(今は mozilla plugin)
http://www.deskmod.com/?show=showcat&cat_name=mozplug

# 暑い・・・。
0248厨房もじらーNGNG
>>247
情報マリガトー
Piro氏のFloating Sidebarが入ってるNe!
mozdev.orgはなんかパンク状態みたいだし
もっとリソースがいろんなところに分散されるといいんだけどね
そういう意味では
DeskModはテーマだけ配ってりゃいいって思ったの漏れだけ?
0249 ◆sX5Fl3bU NGNG
>>248
descmod の Floating Sidebar は Piro さんのとは別物よん。

Chatzilla の components/chatzilla-service.js みたいな
コマンドラインに -sidebar オプションつけたり
Mozilla 起動時の初期化とかしてるみたいなんだけどわけわかめ。
使いこなせれば Moz2ch にも利用できるんだろなーと思うんだが…
0250 ◆q78mh/0k NGNG
ツールバーに Home ボタンを追加するアドオン。
ここの方々はアンインストール方法分かると思うけど、
一応、そのページにも書いています。
(overlay 、chrome.rdf 削除と、installed-chrome 編集)
http://home.no.net/trihand/mozilla/home/en/

Deskmod は、以前から Mozilla 以外のものを配布していたらしく、
何でもあれのような感じもします。
mozdev はどうにかならないものかと思いつつ。
一応、ヨーロッパと米国のミラーがふたつくらい名乗り出てくれたところが
あるらしいので、どうやってミラーリングするシステム組むか、とか
あるのかも知れないです。同時分散できない部分もあるし。
0251厨房もじらー ◆Moz2cH0k NGNG
>>249 >>250
Piroさんのとは別物でしたか。。。確かめずに書いてスマソ

起動時の初期化はJSComponentとしてどうこうで必要だった様な。
JSComponent関連は全然わからぬのですが(苦笑

Homeボタン、アイコンはよくできてると思うんだけど
ボタンは四つがまとまりがいいなあ。。。
どうせやるなら、ツールバーボタンの編集機能をつけるとか
もっと斬新なことをやってほしい感じ。

DeskModは、帯域に余裕があるなら何したってかまわないんだけどね。。。
っていうか、Mozdevはいろんなサービス提供しまくってるわりに
リソース不足だから、Webホスティング機能がパンク状態みたいな。。。
うーん。。。XULアプリ開発の中心的存在としては
もっとなんとかなってほしいですね。。。
0252221NGNG
カスタムメニューバー、ver 0.93 にしました。
http://member.nifty.ne.jp/georgei/mozilla/custom_menubar.html
(URL の誤字を修正)

フルスクリーンモードに対応、ですが、内部的には、
fullscreentoolbar="true" を足しただけです。(w
0253厨房もじらー ◆Moz2cH0k NGNG
>>232
入れてみました。普段は使わないんですけどね(藁
前もあったのかも知れませんが、ツールバーボタンのツールチップに
どのメニューのアイテムか(表示 | 大きくみたいに)
出るようになってるのが(・∀・)イイ!!と思いますた。
フルスクリーンモードは普段使わないので特に感想なし!

Mozilla 1.0.1では新タブボタンがタブバーに付くようなので
Navigator タブはいらなくなるかな。
で、やっぱりアイコンがホスィ。。。
XULアプリはテーマとの兼ね合いが難しいと思った今日この頃。。。
0254デフォルトの名無しさんNGNG
>>251
Homeボタンは、レディーメイドで、ヘルプ用に用意されているものですね。
ちなみに、それが既定の Toolbar 用アイコンで、ナビゲータの方は
small ツールバーモードになります。たしか。

>>252
テキストの Larger/Smaller がとても便利です。Navigator Tab ボタンは、
1.0.1 自体に組み込まれそうなので不要になってしまいそうです。と、253 と同じことを感じました、、。
1.0 の API の固定化というのは、ベースの部分なので、
フロントエンドは 1.0.x でも結構変わるのではないかなあ、と予想してます。
(でも、1.0.1 以降は大幅には変わらないような予感です)

Show/Hide の縦表示が長いので、これは Scroll ボタンを付けたほうが良いかな、
と思いました(XGA だと全部見えない)。

個人的には、ブックマークは、ContextMenu Extentions のコンテクストメニューからがベストかな。フルスクリーンはたまに使うほうなので、良いです。リストアするときも同じボタンでできるのですね。

ワンクリックアクセスで制御できる部分に絞ると他と棲み分けできて良いかも、とか、ツールバーではなくて、フロートにしてしまったほうが面白いかも、と勝手なことを考えました。
0255 ◆q78mh/0k NGNG
>>253
テーマとの兼ね合いが難しいところってどういう点でしょう?
自前で用意することもできますよね?
0256 ◆q78mh/0k NGNG
>>254 への追記(was >> 252 )
[Print Preview] にワンクリックで行けるのも結構便利です。
0257 ◆q78mh/0k NGNG
>> 254 へのさらに追記
思ったのですが、[back][forward][reload][stop] も組み込んで、
[open URL] も一応組み込むと、テキストオンリー的な使い方も出来て良いかも知れないです(メインのツールバーが無くても、ナビゲーション出来るようにしてしまう形)。
連続書き込み失礼。
0258 ◆q78mh/0k NGNG
> Show/Hide の縦表示が長いので、これは Scroll ボタンを付けたほうが良いかな、
と思いました(XGA だと全部見えない)。

すいません、Moz を再起動したらちゃんと出てきました。
自前で適当に弄ったもので少し実験していたからかも知れないです。
0259252NGNG
>>253
ども。
ツールチップの大項目は、
単品ではわかりにくそうなメニュー項目だけに付けてます。
「Navigator タブ」は、次期バージョンでデフォルトから外します。

アイコンが課題ですね。少し遊んでみます。
0260252NGNG
>>254-258
好意的な評価とコメント、ありがとうございます。

> フロートにしてしまったほうが...
いや、確かに面白いのですが、力量が伴いません。(藁
Piro さんのフローティングサイドバーを研究してみます。

> テーマとの兼ね合いが難しいところ...
アドオン作者側としては、ユーザーがどんなテーマを使用しているか
がわからないので、
自前のアイコンとユーザーが使用しているテーマとが
ミスマッチするとイヤ、という点があります。
全てのテーマに、メニュー項目に対応したアイコンセットが準備されている、
と言うのが理想なのですが。

> テキストオンリー的な使い方も出来て...
冗長度120%アップ(当社比)ですね。
これは比較的簡単なので、要望が多いようなら追加します。

Bugzilla に乱入する勇気がわいてきました。
これから逝ってきます。
0261 ◆S0qIRC9I NGNG
>>260
不要なアドバイスかも知れませんが……

関数で最近アクティブだったNavigatorウィンドウを取得するようにして、
oncommand="navWindow().addBookmarkAs();"
とかすれば、フロート化したウィンドウからそれぞれの機能が使えます。

あとは、別ウィンドウ時はノッチを隠すとか、そんな感じでどうでしょう。
0262260NGNG
>>261
コメントありがとうございます。

> 不要なアドバイスかも知れませんが……
XUL 初心者に不要なアドバイスは存在しません。(藁

厨な質問で恐縮ですが、

> 関数で最近アクティブだったNavigatorウィンドウを取得する...
http://www.cc-net.or.jp/~piro/xul/tips/x0001.html
で良いのでしょうか?

> 別ウィンドウ時はノッチを隠す
「ノッチ」って何でしょう? タイトルバー?
0263 ◆S0qIRC9I NGNG
>>262
>http://www.cc-net.or.jp/~piro/xul/tips/x0001.html
なんか……今見たら、途中でドキュメントが混ざっちゃってますね(汗)
まあともかく、nsIWindowMediatorを使ってnavigatorのウィンドウを取得するという話です。
ただ、Moz1.0からはクラスの登録名が変わったのか何なのか、1.1くらいになるとこれだとエラーになります。

if (Components.classes['@mozilla.org/appshell/window-mediator;1'])
var WINMAN = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator);
else
var WINMAN = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService(Components.interfaces.nsIWindowMediator);

Moz1.0以降でしか動作させないなら、条件分岐させずに前者で決め打ちしちゃってOKではないかと。

あと、ノッチじゃなくて、グリッピーでした。ツールバー左端にあるアレです。
0264 ◆S0qIRC9I NGNG
当該部分の記述を分離しました。
http://www.cc-net.or.jp/~piro/xul/tips/x0019.html
0265超ぉ〜AnneNGNG
うぇー、なんか皆たのしそうぢゃぁー。
ワシ忙しくてなんもできん・・・

とりあえずネタフリでもしておきますと、誰か script debugger の
使い方分かる人いらはりませんかね?

#次ここを見られるのは何日後だろう・・・
0266 ◆sX5Fl3bU NGNG
>>265
Venkman のこと? < script debugger

http://www.mozilla.org/projects/venkman/venkman-walkthrough.html
の Venkman Test Drive 以下見たりしてやったこと

1. mozilla -venkman で起動する。(こうしないとデバッガモジュールがロードされない)
2. メニューの [Window] - [Moz2ch] とかで XUL App 起動
(contextmenu extention なら [Window]-[Navigator] とか)
3. 左上から二番目のソースリストからデバッグしたい js ファイルを選ぶ
4. 右上のソース表示画面で[-]をクリックするとブレークポイントが設定される。
5. いっぺん Moz2ch ウィンドウを閉じて[Window] から再度起動すると
ブレークポイントで止まる。
6. Step 実行させて prop this とか 右下のプロパティツリーで変数など
確認する。

これで Moz2ch とか Contextmenu-Extension の処理の流れを見たりしたんだけど…

・プロパティツリーの見方とかわしもよくわからん。
・App ウィンドウ何度も開いたり閉じたりしてるとばんばん落ちる(ぉ
・Mozilla 1.0 だと[Window] メニューがない。
open-dialog コマンドで chrome://... 指定すればいけそう。
・Mozilla 1.1b で 1.(mozilla -venkman) しなくてもよくなったのかな?
http://www.hacksrus.com/~ginda/venkman/faq/venkman-faq.html
見てくれ。

こんなんでどぉ?
0267デフォルトの名無しさんNGNG
"Creating Applications with Mozilla"買う人いる?
0268厨房もじらー ◆Moz2cH0k NGNG
内容を見てみないことには。。。
漏れが知ってることしか書いてなければ必要ないし(藁
書籍というのは、得てして「最新」でありにくい、というのもあるしね。。。
XULプログラミングは動きが激しいから。
0269デフォルトの名無しさんNGNG
Utility Panelsはもう開発されないのですか?
0270厨房もじらー ◆Moz2cH0k NGNG
>>269
作者さんが今忙しいみたいなんで(>>265参照(藁
今は動きがないですが
時間ができたらまた弄るんじゃないですかね
漏れにはわからないけど。。。
0271デフォルトの名無しさんNGNG
下がりすりぎ
一度上げておきましょう
0272デフォルトの名無しさんNGNG
age
0273今日 XUL の存在を知った奴NGNG
Hello World を打ち込んで動かす事は出来たのだが、Mozilla 1.1 で
再起動せずに制作中の XUL を更新する方法が分からない。「chrome の
キャッシュを無効にしろ」という記述があったが設定が見つからない。
良い方法を教えて下さい(毎回再起動じゃ実験にならん)

あと、XUL を使って、どのページ閲覧中でも強制的に最上位に描画を
するような物は作れるんでしょうか。具体的に言えば「ブラウザ内に
常駐デスクトップアクセサリ(マウスカーソルを追いかけるやつとか)
を作ることが出来るのか?」ということなのだが
0274 ◆S0qIRC9I NGNG
>>273
Preferences > Debug > Events
Mozilla1.1などのマイルストーンビルドでは項目が隠されているので要注意。
prefs.jsを直接いじるなら、 "nglayout.debug.disable_xul_cache" を有効にして下さい。

ウィンドウの最前面表示は、window.openDialogでフラグに ",alwaysRaised"を加えれば可能です。動的な変更はできませんが。
作れるウィンドウの形は矩形に限られるので、アクセサリの作成には向いてないと思います。
一つのウィンドウ内で動作させるだけで良ければ、<image>をCSSのポジショニングを使って配置するとかすれば実現可能かと。
0275273NGNG
>マイルストーンビルドでは項目が隠されているので要注意。
なるほど、だから無いんですね

>prefs.jsを直接いじるなら
このファイル自体ありませんね(Mozilla1.1)。grep しましたが
nglayout.debug.disable_xul_cache の設定をしている js ファイル自体
見つかりませんでした。そこで

default/pref/all.ja の最後に
pref("nglayout.debug.disable_xul_cache", true); という記述を追加

してみたところ、キャッシュが無効になりました。これで色々実験が
出来ます

>動的な変更はできませんが
うーん、残念

>ウィンドウ内で動作させるだけで良ければ
それは作ってあるので、これが Mozilla に常駐出来たら面白いかなと
思ったんですけどね
0276デフォルトの名無しさんNGNG
prefs.jsがファイル自体存在しない、ってどういうこと?
誰か理由が推測できる人、解説キボン
0277デフォルトの名無しさんNGNG
>>273
あー、なんとなくわかった
prefs.jsはもじらのインストールディレクトリ下ではなく、
プロファイル関係のディレクトリに入ってるんだが。
0278デフォルトの名無しさんNGNG
>>276
親ディレクトリ等が隠されている場合、prefs.jsなどの中身のファイルも見えなくなるようです。
0279273NGNG
>276,277,278

再度探したところ、
C:\WINDOWS\Application Data\Mozilla\Profiles

の下のユーザー名の下の zlbi7tjz.slt というディレクトリ
(なんじゃ、この名前は)にありました。Mozilla は D ドライブに
インストールしてたので気づかなかった。ってゆーか、勝手にこんな
所にデータ作ってるとは...

# ってゆーか、その前に Windows 版だって書いてませんでしたね。失礼
# しました。

ちなみにここの pref.js にも xul cache の設定は無かった。自分で
書く必要がありそうです。試してませんが。
0280デフォルトの名無しさんNGNG
>>279
変な名前のディレクトリを作るのは、セキュリティのためだそうです。
隠し設定は元々の設定ファイルには記述されていないので、大概は自分で書く必要があります。
0281デフォルトの名無しさんNGNG
勝手に、っていうけど、これが一番MSの意図に沿った管理方法だが。
IEやOEなどもこの方法をとってる。さらに言えばdoc/viewモデル。
シリアライズされたデータは実行ファイルとは分けて考える。
pref.jsにない項目をいじる場合、user.jsファイルを追加して
そこに書きこむと反映される(pref.jsにコピーされる)、だったかな。
0282デフォルトの名無しさんNGNG
findbar(・∀・)イイ!!
xpfe/components/find/resources/finddialog.jsも書き換えたいな…
0283デフォルトの名無しさんNGNG
http://www4.tkcity.net/~toshiki/xul/index.html
に行けないよぉ。鯖落ちしてるだけならいんだけど。
0284超ぉ〜AnneNGNG
>>283
鯖落ちですスマソ。ここ数日ずっと落ちてるみたいです。
ただ、当方現在(って何箇月前からだよ(涙))多忙につき、引越し先を
探してる暇がないんです・・・
# 「そのくらいあるだろ」と言われそうですが、なかなか・・・

>>282
勉強不足で申し分けないんですが、それ何ですか?
ちょいとディレクトリ掘ってみたけど見当たらず・・・

ついでにphoenixでproxy設定が出来ないんでproxybarを付けようと思ったら
何故かOverlayを読み込んでくれない模様。何か変わったんですかねぇ?
誰か何か知ってたら情報キボンヌ。proxyさえクリアできればphoenix常用なんですが・・・
# 当方ノートで場所毎にproxyが違うんでpref.jsいじるのはちょっと勘弁
0285283NGNG
鯖落ちでよかった。findbar 手に入れたかったんだけどちょっと待ちます。

phoenix は変わったっつーか、navigator.jar がなくなって browser.jar に、
toolkit.jar 内が大幅に変更されてる様子。navigatorOverlay.xul もなくて
browser.jar!/browser.{xul.js} に全部書いてあるっぽいんでそっちに
Overlay すればいいのかな?全部書き換えないと無理っぽい肝
0286デフォルトの名無しさんNGNG
>>285
隊長、findbar発見しました!
ttp://rh.vinelinux.org/~shom/moz/
0287超ぉ〜AnneNGNG
>>283
まさか利用者がいるとは思っていなかったっす(w
どうもご利用ありがとうございます。ヘタレなブツでスマソ
なんでしたらテンポラリなメアドでも教えて頂ければお送り致しますが・・・

navigatorOverlay.xul は overlayinfo にも書いてあるし、comm.jar にも入ってる
んですが、もしかして使われてないんですか!?
それならproxybarも呼ばれないの納得ですわ・・・
さてどーすべぇか・・・

>>286
そんなのもあるんですね。
名前が被るとどーなるか分からないんで恐くてインストールしてないんですが、
ソース見た感じではツールバーで同じ事してるっぽいですね。
個人的にはステータスバー派なのですけど、>>283 氏も別にステータスバーに
こだわらなければこちらでもよろしいのではないかと。

0288超ぉ〜AnneNGNG
ttp://www26.tok2.com/home/toshiki/
昔取ったまま何も使ってなかった垢発見しますた(藁
とりあえず再利用ってことでここに置いておきます。
よろしければどーぞ。
0289デフォルトの名無しさんNGNG
>>287
まぁ、Phoenixはnavigatorのコードを全部捨てて(XULレイヤで)ゼロから作り直してるわけですから、navigator用のアドオンは全滅と考えておいた方がいいかもしれません。
0290デフォルトの名無しさんNGNG
XUL Planet リニューアル sage!
http://www.xulplanet.com/
Preferences Toolbar も大幅アップデート!
http://www.xulplanet.com/downloads/prefbar/

・・・でも、腰を据えて弄りまわす時間的余裕が無い・・・。
■ このスレッドは過去ログ倉庫に格納されています