トップページ⇒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/
0002デフォルトの名無しさんNGNG
うちのMozillaもよくフリーズします。
0003デフォルトの名無しさんNGNG
ずーるって何ができるの?
UIを構成するための言語だっけ?
その段階が不明なんだけど(藁
00041NGNG
>3
XMLをベースにした言語でGUIを記述できます。例えば、

<?xml version="1.0"?>

<window id="googleAPIWindow" title="&googleAPIWindow.title;"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
width="640" height="480" orient="horizontal">
<textbox/>
<button label="test"/>
</window>

こんな感じで書いてきます。
制御は基本的にはJavaScript1.5から行います。
00051NGNG
手持ちのコードからコピペしていじったら
アプリ名とか残ってた。。。鬱。
ちなみに、Google Web APIをSOAPで呼び出すサンプルみたいなの作ろうとしてて
その関係で。
00061NGNG
XULチュートリアル
ttp://www.xulplanet.com/tutorials/xultu/

が参考になる。
少し古いけど和訳も。

XULチュートリアル(和訳)
ttp://www.janit.com/xml/XUL/
0007デフォルトの名無しさんNGNG
>>1
糞スレ立てんなヴォケ!!
0008デフォルトの名無しさんNGNG
>7

氏ね。
氏ね。
氏ね。
氏ね。
氏ね。
氏ね。
氏ね。
氏ね。

00091NGNG
とりあえず駄スレになったぽ。
つか、俺がネタ書かないのが悪いような気もするけど。
Mozillaユーザ && 開発者
って時点で分母が小さいのかな。。。
0010デフォルトの名無しさんNGNG
うーん、emacsのminibufferみたいなのつけて、
ページ内検索やOpen Locationの入力に使うようにしたい、
と思っているのだが時間が取れなくて…

# Ctrl-Fでdialog windowが出てくるのうざい。
0011デフォルトの名無しさんNGNG
>>10
検索に migemo 使えないかね。
2ch のスレ内検索に最適なんだが。
00121NGNG
>10
Emacsのこと詳しくないのでミニバッファって何?
とりあえず検索してGNU Emacs Manual見てみました。
Mozillaにああいうのつけたら確かに面白いかも。
というか、別のブラウザになりません?(w
00131NGNG
>11
で、ついでにmigemoも検索。
面白いものが結構ありますねぇ
でもMozillaってある意味Emacsと似た拡張の仕方ができるんで
migemoサーバとのインターフェイス書いてやれば
できなくもなさそうですね。
大改造が必要かもですけど(w
0014デフォルトの名無しさんNGNG
保全age
0015デフォルトの名無しさんNGNG
ネタがないので
このスレは、Moz2ch復活スレになりますた。
Mozilla 1.0RC2で動くように修正するところからはじめる予定です。

http://xul-app.hoops.jp/moz2ch/
0016デフォルトの名無しさんNGNG
・TasksメニューがなくなってToolsメニューとWindowメニューになったので
 それを修正。
・ツールバーの画像等修正。
・Outlinerと(旧)Treeウィジェットが統合されてTreeウィジェットに
 なったので、それに伴う修正…はまだ。
 Outliner使いこなせてないんで…(ウトゥ

というわけで、またしばらくsage進行で
0017デフォルトの名無しさんNGNG
ちょー期待さげ。
0018デフォルトの名無しさんNGNG
>>17
とりあえず好意的に受け取ってみる。
Moz2chの需要ってどれくらいあるんだろう。。。
0019デフォルトの名無しさんNGNG
17です。
へんな書き方してすみません。
期待してます。

マルチプラットフォームで、いいなぁと思うんですけど。
0020デフォルトの名無しさんNGNG
マターリやってくと思うから
期待せずに待ってて。

マルチプラットフォームって(・∀・)イイ!!よね。。。
つーわけで、例によってsage

欲しい機能があったら、勉強して自分でつけるとか
…うーん、まだ難しいな。
0021デフォルトの名無しさんNGNG
スキンよりも遙かに高度なカスタマイズが聞くってことですか?

じゃあMozillaベース2chブラウザとか、板ごとにブラウザの外観が
変わったりできるんですかね。

シャア板にいくと全体が赤くなり
読み込み厨は、ザクの目が左右に
動くとか。

葉鍵板に逝くと、中止ボタンを雄と
「うぐぅ」とかwav音声流してしゃべるとか。

さくら板逝くと、リンク飛ぶたび
「ほええー」とかしゃべってうるさいとか。(w
0022デフォルトの名無しさんNGNG
>>21
やればできなくもないと思われ。
でもウザいかも(藁
0023デフォルトの名無しさんNGNG
ども。こんなの作ってみました。
もうあるかもしれんけど・・・
それ以前にかなり詰めが甘いんだけど・・・
http://members13.tsukaeru.net/toshi/xul/
色々アドバイスを頂けるとありがたいです。
# 煽りはご勘弁を(w
0024デフォルトの名無しさんNGNG
ステータスバーの高さが大きくなってしまうような。。。
CSSでフォントをいじると幸せ?
とりあえずまだ落としてみただけですが(藁
0025デフォルトの名無しさんNGNG
あと気になったこととしては、
なぜか昔のmoz2chのソースが紛れ込んでる(藁
別にライセンスとか指定してないし使ってくれて構わないんだけど
明らかにproxybarでは使ってなさげだし、捨てておいたほうが吉かも。。
0026デフォルトの名無しさんNGNG
うわ…迂闊にもageちまった。。。スマソ
002723NGNG
>>25
激しくスマソ。
moz2ch のソースが入ってるのは…勘が良ければ理由分かるかも(藁
CSSいぢるのとかはその内やってみるです。
とりあえず今は「漏れ的に使えればオッケー」程度なので…
0028デフォルトの名無しさんNGNG
>>22
確かに、最初はすげえ!!とか
重うけど、最後はうぜえ!!に
なりそだね。(w

でも、飽きたころに、新バージョン
公開とか、さらにうざさ倍増。(w
はでで豪華な、布教活動仕様版がでたりして(w
0029デフォルトの名無しさんNGNG
>>27
とりあえず<toolbarbutton type="menu">使って
省スペース化に挑んでみたんだけど
ちょっと面倒くさい。。。
いや、全部いじればできるけどさ。

どうするのがよかろうか。。。
ちなみに、漏れは串使わ[なえ]い人なんで、あまり意味は持たなかったり。
003023=27NGNG
>>29
省スペースって縦方向ですか?
横方向だとすれば現在のプロキシが表示されて欲しいんでアレで
いいと思うんですが…
0031デフォルトの名無しさんNGNG
省スペース
↓こんなカンジ。
http://xul-app.hoops.jp/moz2ch/proxybar/
003223NGNG
>>31(っつーか厨房もじらー殿なんだよね?)
それ(・∀・)イイ!!
って事でうぷだーてしてみました。
003323NGNG
tsukaeru.net は .htaccess で .xpi を application/x-xpinstall
に出来ないみたいなんで、tkcity にミラー作りました。

http://www4.tkcity.net/~toshiki/xul

これでとりあえずクリックするだけでインストール出来るようになります。
そんだけだけど。
0034デフォルトの名無しさんNGNG
>>33
漏れは見た目しか作らなかったのに早いね!
とりあえず現在選択中の項目にチェックがつくように
メニューアイテム作るところで
menuitem.setAttribute("type", "radio");
とするとイイかも
0035デフォルトの名無しさんNGNG
串ないので、自分のPCに串たてて遊んでみたけど
結構便利かも。。。
Mozillaスレッドのほうで、宣伝してもいいかも
003623NGNG
>>34
毎度毎度感謝です。取り入れさせて貰いました!
初期値を選択させるのがチトスマートじゃないんだけど(w

>>35
お誉めにあずかり光栄であります!
でも小心者なのでもちっとマトモになってから・・・
003723NGNG
とりあえず jslib (ttp://jslib.mozdev.org) を入れとくと、
プロクシのリストをインポート出来るようにしてみたです。
これが欲しかったのです。
これで僕はもう満足なのです(w
0038デフォルトの名無しさんNGNG
ソフトウェア板の xul スレ。
色々と可能性を模索している。

ブラウザ用途以外のmozilla
http://pc.2ch.net/test/read.cgi/software/1021448200/
0039デフォルトの名無しさんNGNG
>>37
このスレ2,3人しかいないみたい。。。(藁
満足したならMozillaスレに宣伝してきてもイイかな?
いや、こういうの欲しい人もいるだろうし。。。
シンプルで(・∀・)イイ!!
004023NGNG
>>39
宣伝してしまいました・・・
大丈夫かな・・・心配だ・・・(鬱
0041デフォルトの名無しさんNGNG
>>40
とりあえず評判は上々のモヨリ
そんなに心配しなくてもあのスレはマターリマターリだから(藁
004223NGNG
とりあえず一安心・・・していいのかな(ドキドキ
なんかあーゆー小物系で(・∀・)イイ!!アイデア無いですかねぇ。
004323NGNG
うげ。複数ウィンドウ立ち上げると結構マズーな予感・・・
ウィンドウ毎のプロキシの設定って出来無いっぽいですねぇ・・・
navigator.js を見る限りでは・・・
さてどうしたものか・・・
0044デフォルトの名無しさんNGNG
>>43
というか、cuamってウィンドウ毎にproxy変えれるんですか?
それはなかなか強力な。。。
004523NGNG
>>44
いや、そーでなくって、二つのウィンドウを立ち上げて、一個目のウィンドウ
の設定を変えると、二個目の方も勝手に設定は変わっちゃうんだけど、表示は
変わらないという不具合に衝突してしまったっつー意味です。

Cuam はどうだったかな・・・忘れました(汗)
IE 5 以上だと不具合が出るまま放置だったんで使うの止めちゃったんで・・・
0046デフォルトの名無しさんNGNG
>>45
<broadcast>だったかな、それが確かそういうのに使われてた記憶が。
Mozillaスレの方みたけど、なかなか厄介そう。。。
俺も見てみる。
0047デフォルトの名無しさんNGNG
続きはこっちで、了解>>23さん
向こうのスレでは嘘くさいこと書いてた(汗
0048デフォルトの名無しさんNGNG
var proxybarStartFlag = true;
function ProxybarStart()
{

//dump("StartProxyBar start\n");
if (document.getElementById("proxypanel").getAttribute("hidden") == "false")
{
if (proxybarStartFlag) {
ProxybarConstructProxyMenu();
// select proxy_now or (No Proxy)
var pref = Components.classes["@mozilla.org/preferences;1"].createInstance(pb_nsIPref);
var now = "";
try { now = pref.GetCharPref("proxybar.proxy_now"); } catch(e) {}

var menu = document.getElementById("proxybar-proxyMenu");
var menuitem = menu.getElementsByAttribute("value", now)[0];

// if there isn't menu for "now", unset proxy
now = menuitem ? ProxybarSelectProxy(now) : ProxybarSelectProxy("");

// put checked mark
menuitem = menu.getElementsByAttribute("value", now)[0];
menuitem.setAttribute("checked", true);

//removeEventListener ("load",ProxybarStart, true);
// 代わりにflagをねかす
proxybarStartFlag = false;
}
}
//dump("StartProxyBar() end\n");
}

としたらとりあえず治った。
Prefbarを先に入れる必要はあるかも。
0049デフォルトの名無しさんNGNG
diffとかとればよかったかも。。。
いまdiff入ってないから変更した部分コピペしたけど(汗
分かりづらくてスマソ。
要するにremoveEventListenerを使わずに
フラグ使って一度だけ実行するようにしてみただけ。
removeEventListenerがなぜダメかはよくわからない。。。
005023NGNG
>>48
サンクスコ。たしかにそれだと prefbar を先にインストールしてれば大丈夫みたいっ
すね。でも完璧を期すとなると、やっぱ prefbar に手を加えなきゃダメなんす
かねぇ・・・

一応修正版ウプしておきました。
005123NGNG
ちなみにもう落ちます。どーも。
005223NGNG
ちなみにもう落ちます。おやすみなさいませ。
005323NGNG
げ、二重カキコスマソ。
0054某スレ40NGNG
某スレから引っ越してきました。
これで、4〜5人にはなったと思われ。
0055デフォルトの名無しさんNGNG
XUL 関連のリンク

XUL Planet:XUL チュートリアルなど。現行事実上最も信頼性の高いXULに関するテキスト。
http://www.xulplanet.com
XUL チュートリアル和訳:http://www.janit.com/xml/XUL/
mozdev.org:XUL アプリの宝庫。
http://mozdev.org
XUL Apps - outsider reflex:Context Menu Extension を始めとする XUL アプリケーション、リファレンスなど。
http://www.cc-net.or.jp/~piro/xul/xul.html
XUL 研:Moz2ch や、SOAP なアプローチを覗かせる XUL アプリの構想など。
http://xul-app.hoops.jp/
Komodo:XUL ベースの開発環境。(求む情報。)
http://www.activestate.com/Products/Komodo/
0056某スレ40=55NGNG
ソースコード解析などに参考になりそなXULアプリたち

MultiZIlla:Mozilla のタブの拡張アドオン
http://multizilla.mozdev.org/index.html
ForumZilla:XULベースのディスカッションボードリーダ(*現在0.9.4ベース)
http://forumzilla.mozdev.org/index.html
XULMine:XULベースのマインスイーパ
http://www.nrr.co.uk/xulmine/
0057デフォルトの名無しさんNGNG
もひとつ忘れてた。
XULMaker:XULによるXULアプリ開発環境(現在再構築中)
http://xulmaker.mozdev.org/

ちなみに、>>55 のKomodoは、Perl, PHP, Python, Tcl, XSLT のための開発環境。
0058デフォルトの名無しさんNGNG
XPCOMは分けたほうがいいですか?
0059デフォルトの名無しさんNGNG
xulやjsでetagsが使えれば・・・
0060 ◆S0qIRC9I NGNG
addPrefListenerとかの関数が使えるはずです>proxy変更時の別ウィンドウへの反映
navigator.xulとnavigator.jsの頭のほうに出てきます。
0061デフォルトの名無しさんNGNG
ごめんなさい。ageちゃいました……
0062デフォルトの名無しさんNGNG
>>60
どもです。
時々ならageちゃっても大丈夫(藁
0063デフォルトの名無しさんNGNG
Moz2ch作ってたころは
addEventListener("load", onLoad, true);
とかやるのと
<window ... onload="return onLoad();">
とかやるのとの違いが分かってなかったけど
proxybarとprefbarの関係みてて、addEventListenerないと困るのがようやくわかった(藁
ちょっとMozillaのソース漁ってきます。
006423NGNG
>>60
情報どーもです。その内調べてみます。今週はチト仕事が忙しく・・・
週末にはなんとか・・・
006523NGNG
とか言いつつ、 preflistener 使い方分かりました!
確かにコレ使えばなんとかなりそうですね!
prefbar もコレ使えば改良出来ますね。
しちゃおうかな・・・
0066デフォルトの名無しさんNGNG
>>65
おおっ、期待してます。頑張ってください〜
006723NGNG
>>66
暇になったらその内・・・やるかも・・・やらないかも・・・

で、addPrefListener 使った暫定版ウプしてみました。
navigator.js の奴は pref なるグローバル変数使ってるんで、
自前で関数持たせときました。

あと

menuitem = menu.getElementsByAttribute("checked", true)[0];
menuitem.setAttribute("checked", false);

ってやると、check されてる要素を子メニューの中まで探してくれちゃうのね。
余計な事を・・・

さらに、余計なんだか有難いんだか分からない event bubbling の話なんですが、
proxybarOverlay.xul の中で prefMenu のところで oncommand が true を返して
るのに上にイベントが伝わっちゃうんですけど・・・ XUL チュートリアルによると
true を返せば上には伝わらないみたいに書いてあるみたいなんですが・・・
0068デフォルトの名無しさんNGNG
>>67
event.preventBubble()で強引に封じるのが一番確実かと。
0069デフォルトの名無しさんNGNG
ブラウザだけソースをダウンロードして改造してコンパイルしたいのですが、
何がなんだかさっぱりわかりません。
0070デフォルトの名無しさんNGNG
>>69
ちょっとズレますが、この前のイベントでASA氏が言っていた、
ブラウザだけに絞ったMOZILLA。話では普通のMOZILLAより格段に速いらしい。
これをコンパイルしてバイナリ上げたら、神として崇められることでしょう。
多分、そのままmakeすれば良いと思うんだが。
名づけて「ブラウザー」。
http://lxr.mozilla.org/mozilla/source/browser/
http://www.deftone.com/blogzilla/misc/mb/

って、XULネタではないわな。追っかけスレのほうであまりにも反応が無かったみたいなんで。スマソ。
007123NGNG
proxybarはやっぱり pref 機能外しました。なんかウザいんで。

その分、prefbarや uabar の機能を節操無くパクってステータスバーにブチ込む
utilitypanels を只今作成中。
僕的に便利ならそれで良し。
007223NGNG
utilitypanels とりあえずウプしてみました。
たぶんバグ満載ですが・・・
さらに無節操に取り込んだら便利そうなツールあったら紹介キボンヌ。
00731NGNG
>>72
漏れはステータスバーが狭くなるとバランスが悪くなってマズーなので
utilitypanelsは合わないや。。。
入れてすぐ消しちゃったよ。
もっと柔軟にカスタマイズできたら(・∀・)イイ!!んだけどね。。。
場所とか角度とか。(謎
007469NGNG
全然わかりません。

http://mirror.nucba.ac.jp/mirror/mozilla/mozilla/nightly/latest/

にいくつか有りましたが、どれでしょう?

どっちにしろダイヤルアップ接続ではつらそう。
00751NGNG
>>70
スレ違いだけど
mozilla/browserはビルド済みのものが一応あるぽ。

ここで紹介されてた。漏れは落としてないからわからないけど。。。
ttp://www.deftone.com/blogzilla/archives/mozillabrowser_download.html
00761NGNG
>>74
ちなみに、(C/C++の)ソースをDLしてコンパイルするっていうのは
このスレの主旨とは本当は違うんだけど。。。
漏れもビルドしたことないし。。。

とりあえず、手がかりだけは書いとく。
これを読む気力もなかったら諦めたほうがブナーン。。。(漏れも諦めた(藁
ソースの入手方法
http://www.mozilla.org/source.html
http://jt.mozilla.gr.jp/source.html (和訳)

ビルドの方法
http://www.mozilla.org/build/
http://jt.mozilla.gr.jp/build/ (和訳)

ちなみに、多分CVSじゃないと
ブラウザ部分だけのソースは落とせないと思われ。
そして、結構色々落とさないといけないから、ダイアルアップだと割と辛い。
007723NGNG
>>1
うーむ、やっぱ普通の人はステータスバーって重要なんですかねぇ。
僕にとってはアソコが一番無駄なスペースなんですよねぇ。
やっぱツールバーにした方が受けるんかな。
まぁ「私的ゴミ置き場」なんで、僕的にオッケーなら良しとゆー事で・・・

あぁ、ちなみに表示メニューでなんとなく表示のトグルぐらいなら一応出来ます。ハイ。


# なんか JavaScript のクラスの作り方とかイマイチ分からず結局 C チック
# なコードを書いてしまうのはどーにかならんものか・・・
00781NGNG
>>77
JavaScriptのクラスを書く価値がある場合:
・「同じ種類のもの」がたくさんある。
・XPCOMのインターフェイスを実装したクラスが必要。
Javaと違って、やたらクラス化したりオブジェクト指向する必要はないと思われ。
実際、Mozillaに含まれるnavigatorとかmessengerとかの.jsも
ほとんど関数ばかりでCちっくに書かれてるし。
00791NGNG
>>77
ツールバーにもステータスバーにも入れられるようにしてみたらどうよ。
設定とかで選べるようにしてみたり。。。
ツールバーはほとんど畳んでステータスバーの空き空間を持て余してる人は
ステータスバーに突っ込むだろうし。
0080デフォルトの名無しさんNGNG
どもども。
>>77 >>79
自分は、ステータスバーにあるproxybarが良いなあ、と思いました。
ステータスバーにもひとつボタンが何か置けるなあ、とも思いましたし。
ツールバーが2段になっちゃうと邪魔だし。
外野的意見ですんません。
008123NGNG
げ、ウプしてた utilitypanels って proxy list の edit 出来なかった奴じゃん。 ウプするバージョン間違えてた…
スマソ。

# しかし誰も何も言って来ないとはやはり需要は無いっちゅー事かいのぅ…

>>79
うーん、考えてみます。でもなんかあの形態だとメニューバーがもう
一個出来るみたいに見えるかも…

>>80
どーもです。まぁステータスバー派が一人でもいて良かった(藁
00821NGNG
>>81
proxy設定機能とか欲する人間は既にprefbar入れてて
重複する機能が無いproxybarのほうをダウソしてると思われ。
0083デフォルトの名無しさんNGNG
1.0.0+ 20020531 に utilitypanels を入れてみました。
proxy変更機能は問題無く動いてますが、あとのふたつは少し動作が変です。
これはもともとのバグだと思いますけど。
008423NGNG
>>83
報告サンクスコ。でも、ちょっとこの時期サッカーで忙しいんで・・・(藁
その内直します。ハイ。
00851NGNG
Moz2ch復活スレはまた別にたてたほうがよさげ?
モナジラBBSにでも
0086超ぉ〜AnneNGNG
>>1
ここでもいい気がするけど、monazilla の方が mozilla ユーザーで
ない人間にも注目されていいかもしれませんね。
復活期待しとります。
00871NGNG
>>86
をを、懐かしい方が(藁
このスレしばらく使ってみて、他の話題と同居できないようなら
向こうにスレ立てることにします。
今日は<tree>ウィジェット弄ったりいろいろしてました。
久しぶりに弄ってみた感想としては
設計しなおしたほうがいいかも、とか。。。(鬱
00881NGNG
とりあえず<tree>は使えるようになったぽいが、スレが見れない。。。
スレが見えるようになったら久しぶりにageてみるかも。
0089デフォルトの名無しさんNGNG
23 = 超ぉ〜Anne という罠
■ このスレッドは過去ログ倉庫に格納されています