トップページ⇒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/
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/

・・・でも、腰を据えて弄りまわす時間的余裕が無い・・・。
0291超ぉ〜AnneNGNG
ちょちょいとbrowser.xul@phoenix見てみたんだけどどーもoverlayさせない勢
いのコードっぽいですなぁ。しょーがないから自分用browser.xulに書き変えてちまったぃ。
これで快適じゃ…ってアップデートするたんびにこんなことするのメンドクセェな…
0292デフォルトの名無しさんNGNG
>>284
> ちょいとディレクトリ掘ってみたけど見当たらず・・・

間違えて、1.0rc1のsource読んでた…
見つからなかった時のdialog windowがウザイので、
./xpfe/communicator/resources/content/findUtils.jsの
> gPromptService.alert(window, gFindBundle.getString("notFoundTitle"), gFindBundle.getString("notFoundWarning"));
を何とかしようと思っている。
0293デフォルトの名無しさんNGNG
[email protected]
メールボムかも〜ん
0294デフォルトの名無しさんNGNG
>>293
通報しました
0295デフォルトの名無しさんNGNG
MozDev のダウンロードミラー
http://downloads.mozdev.org/
0296デフォルトの名無しさんNGNG
               「 ̄ ̄了 ハイハイ!
              l h「¬| どいてどいてぇ〜。
       / ̄ ̄\__,ト、々/____
     /   /-∧i. /  jテ、      f ̄ヨ
    /   ./293) /  / /.il iー――‐u' ̄
   ./   /ー'' / /  / / l l
   i'  /   l ヽ../  レ'  l l
.  /  _/ \  !、 lヽ____」 l
.  !、/ \. \ \lN =口= ト./
   ト、__\/ト、/ト、  y   l
   l    ̄(  )y )  /l   i
   l   l   Y''/ー'  / .l   l
   !、  l  l./   /  l   l
   /  /  l/   ,/  i'    l
  /_  ./l   l`ー‐〈   ト.__」
  L_``^yト._」、ー"   `ヽ_」
   `ー' `ヽ_」
0297デフォルトの名無しさんNGNG
Mozilla雑誌の掲載されていたね〜
0298 ◆Moz2cH0k NGNG
Creating Applications with Mozilla
がOpen Public Licenseで読めるようになってるみたいなので
参考にするひとはどぞー

http://books.mozdev.org/index.html
0299デフォルトの名無しさんNGNG
Phoenixスレより転載。

Mozilla の アドオンを Phoenix でも動作させる
http://ryuzi.dyndns.org/mozillazine/view.php?articlenum=2524
http://www.mozillazine.org/weblogs/hyatt/extensions.html

非常にあっさり。
0300デフォルトの名無しさんNGNG
ミ・д・ミ
0301デフォルトの名無しさんNGNG
Mozillaに関係ない自アプリから複数URLをNavigatorに送って、
それらを全て(将来的にはボタン押下毎にURLを上から5つ程度)
新規タブで開くという機能を追加したいのだけれど
実現方法に悩んでいます。できればアドバイスください。

XULを使用してMozillaと関係ないアプリと通信する方法はあるでしょか。
あるいは他の選択肢を選んだ方がいいでしょか。思い付いたのは↓3つ
・DDEのWWW_OpenURL→既存ウィンドウの選択中タブに表示される
・XUL→XPCOMはMSのCOMとはどうも別物っぽい(?)
・SideBar→実態はHTMLらしいので自分で更新して実現できる、か?

#スレ違いだったらスンマセン
0302デフォルトの名無しさんNGNG
>>301
window.argumentsで引数が取得できますから、
navigatorではない別のダミーの(ウィンドウを生成しないような)XULアプリを経由してメッセージを送るとか、そんなのは駄目でしょうか。駄目ですね。
0303301NGNG
>>302
引数が読めますか。URLを列挙したファイル名あたりを送れば
実現できそうな気配。チョイ探ってみます サンクス
0304デフォルトの名無しさんNGNG
>>303
実際やるなら、流れとしてはこんな感じでしょうか。
NativeApps > "mozilla.exe -chrome chrome://receiver/content/ %1" で、
receiver.xulの中で

var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var nav = windowManager.getMostRecentWindow("navigator:browser");
if (nav) nav.getBrowser.addTab(window.arguments[0]);
else window.open(window.arguments[0]);
window.close();

みたいな。

ちなみに、最近のNavigatorは'\n'区切りのURLのリストを渡すと全てタブで開くようになってます。
0305訂正NGNG
getBrowser > getBrowser()
0306301NGNG
>>304 「'\n'区切りのURLのリストを渡すと〜」
なんと!!多謝。試してみま。
つか、XUL結構勝手が違うんで難儀してたあるよ。
0307デフォルトの名無しさんNGNG
>>306
念のため書いとくと、Navigator起動時の引数の話ね。
0308デフォルトの名無しさんNGNG
応用したら開いてるURLをGETしてIEで開くボタンとか作れそうですねえ。
マルチプラットフォームには難しいか。
あ、最初に他のブラウザを登録させればいいのかな。
このくらいならステータスバーでも邪魔にならないでよさそう。
問題は作り方がぜんぜんわかんないことなんだけどね。

|_・) 物欲しげな目でちらっ
0309デフォルトの名無しさんNGNG
xulやjsでetagsが使えれば・・・
0310デフォルトの名無しさんNGNG
>>308
ContextMenu-Extensionsからパクればよいのでは
0311デフォルトの名無しさんNGNG
>>310
その手が、って開いてみたけど・・・。
チュートリアルからやり直してみる。
0312デフォルトの名無しさんNGNG
ちょっとしたツールならXUL使った方が簡単かもしれませんが、
2chブラウザを作るとなると全部JavaScriptってのは逆にしんどくありませんか?
0313301NGNG
>>304 「'\n'区切りのURLのリストを渡すと〜」
1つのURLを開く事はできるんだけど、肝心の2つ以上がちと。
\nという文字列で区切ったりキャラクタコードの10,13,13+10で
区切ったり色々試したけどなんか駄目ですた。
Netscape/7.0@Gecko/20020823 使ってるんですが…
ひょっとして、最新Mozillaじゃないと駄目すか?
0314デフォルトの名無しさんNGNG
>>313
その通りです。
Mozilla1.2b以降の機能です。
0315301NGNG
>>314 センキュす。Mozilla取ってきま。
0316デフォルトの名無しさんNGNG
prefbarにページのソースを表示させるボタンを付けたいのですが
onclickはなんと書けば良いのでしょうか。全然わからない。。。
0317デフォルトの名無しさんNGNG
>>316
getBrowser().addTab("view-source:" + getBrowser().contentDocument.location.href)
こんなんかな
0318デフォルトの名無しさんNGNG
>>317
location.hrefよりgetBrowser().currentURI.specの方がいくない?
気分的にだけど。
0319316NGNG
>>317-318
両方ともいけました!大感謝です。
ありがとうございました〜。
0320デフォルトの名無しさんNGNG
XUL チュートリアル和訳:http://www.janit.com/xml/XUL/

を読もうと思ったら404なんですけど、うちだけでしょうか?
他にチュートリアルの邦訳を提供しているサイトってありますか?
0321デフォルトの名無しさんNGNG
>>320
http://xul-app.hp.infoseek.co.jp/
ここが、「やろうとしている」のは知ってる。
0322320NGNG
>>321
レス有難うございました。404の連続だったので、
例のサイトをWebArchiveで見ることにします。
0323デフォルトの名無しさんNGNG
xulやjsでetagsが使えれば・・・
0324デフォルトの名無しさんNGNG
>>320
http://xul-app.hp.infoseek.co.jp/xultu-janit/
もしかしたらどこか欠けてるかも知れないけど
例のサイトを保存しておいてます。どうぞ
0325デフォルトの名無しさんNGNG
0326デフォルトの名無しさんNGNG
0327デフォルトの名無しさんNGNG
0328デフォルトの名無しさんNGNG
みんなで
http://books.mozdev.org/chapters
を訳しませんか?
0329デフォルトの名無しさんNGNG
Chapter 2
さぁ、はじめよう

君ができるだけ早くアプリを作れるよう、このチャプターでは2つの
"Hello World" の例を示そう。

最初の例はブラウザウィンドウにロードされるシンプルな XUL
ファイルだ。この例はスタイルシートや Java スクリプトの関数を
XUL ファイルに追加することで拡張することができる。
第二の "hello World" の例はどうやってこれらのファイルをパッケ
ージにするかを教えてくれる。これらはモジュールになっていて
Mozilla アプリケーションや新しい Mozilla モジュール
を作るのにぴったりだ。

これらの例は Mozilla アプリの開発について検討するための背景
を提供してくれる.
最初の例は基本的なファイルの作成と編集に焦点をおいている。
第二の例はMozillaアプリの構成と配布に焦点をおいている。
0330デフォルトの名無しさんNGNG
全ての "Hello World" アプリケーションのように、Example 2-1
に XUL の簡単な例を示す。
この小さな例は イベントハンドラの利用やウィンドウ内のレイアウト
のためのボックスなど XUL プログラミングにおけるいくつかの重要
な面を示している。また、この例はファイルフォーマット、ネームス
ペース、XULプログラミングにおける習慣などの言語についての一
般的な。。。を教えてくれる。

エディタを使って Example 2-1 を hello.xul という名前で保存し、
Mozilla で開いてみよう。ブラウザウィンドウの左上角にボタンが
見えるだろう。ボタンをクリックするとアラートボックスが表示される
はずだ
Figure 2-1 に表示されるアラートポップアップウィンドウを示す。

次のいつくかのセクションでこの例について詳細に説明しよう。
ファイルそのものやマークアアプの文法、XUL のネームスペース、
XUL ファイルの基本的なレイアウトについて解説する。
0331デフォルトの名無しさんNGNG
かなり適当&間違いあると思うけど、こんな感じでどうかな?

別スレ立てるかサイト作りたいけど一人で続けるだけの体力がない。
0332デフォルトの名無しさんNGNG
例を和訳してみますた♥

Example 2-1: Hello xFly
<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="hello xFly" onclick="alert('Hello World');" />
</box>
</window>
0333デフォルトの名無しさんNGNG
間違えた。これじゃぁネタにならねぇぢゃん。鬱氏♥

Example 2-1: Hello xFly
<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="hello xFly" onclick="alert('コンニチハ セカイ');" />
</box>
</window>
0334デフォルトの名無しさんNGNG
これが正解か。ってスレ汚しとるだけやがな ♥
例 2-1: コンニチハ xFly
<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="コンニチハ xFly" onclick="alert('コンニチハ セカイ');" />
</box>
</window>
0335もくじNGNG
Mozillaで作るアプリケーション

目次
[chapter 00]: はじめに
[chapter 01]: プラットフォームとしてのMozilla
[chapter 02]: Getting Started
[chapter 03]: XUL要素とその機能
[chapter 04]: MozillaアプリケーションのCSS
[chapter 05]: Mozillaのスクリプト
[chapter 06]: パッケージングとアプリケーションのインストール
[chapter 07]: XBLによるUIの拡張
[chapter 08]: XPCOM
[chapter 09]: XULテンプレート
[chapter 10]: RDF, RDFツール, 内容モデル
[chapter 11]: ローカライズ
[chapter 12]: リモートアプリケーション

[Appendix:A]: Mozillaのソースの入手とビルド
[Appendix:B]: 開発ツール
[Appendix:C]: プログラマのためのリファレンス

[resources] : リソース
[corrections]: 訂正
03360章NGNG
Mozillaで作るアプリケーション

[PREV][TOC][NEXT]
はじめに

MozillaはただのWebブラウザではありません。Cascading Style Sheets (CSS),
XML-based User-interface Language (XUL) や eXtensible Binding Language
(XBL)、Resource Description Framework (RDF)などのXMLアプリケーションなど
の標準技術を用いてクロスプラットフォームなアプリケーションを作成するため
のフレームワークでもあるのです。

MozillaのレンダリングエンジンのGeckoは、XPConnectやXPCOM、Mozillaのコン
ポーネントモデルなどの他の技術とともに、このフレームワークの一つとして働
きます。また、Mozillaの開発環境はJavaScript, C++, C, Python, IDLなどのプ
ログラミング言語も使用します。

Mozillaのフレームワークは、MozillaをベースとするNetscapeのブラウザ
(Netscape 6.xや7.x)、GaleonやChimeraなどの他のブラウザ、ChatZillaや
JabberZillaなどのチャットクライアントにも使われます。また、アプリケーショ
ンの開発者は、Mozillaを開発ツールやブラウザ自体の拡張機能、ゲーム、その
他のアドオンを作るのにも使います。

この本は、Mozillaでどのようにしてアプリケーションを作るのかを説明し、
Mozillaの強力なクロスプラットフォームの開発環境を使ってあなたがプログラム
を作るための手順をステップアップ形式で提供します。また、他の既存のアプリ
をMozillaによる開発の可能性のデモンストレーションのために例として含んでい
ます。
03370章NGNG
Mozillaの背景

Netscape Communications社(以下Netscape社)が設立された時、Netscape社は、
当時インターネットへのアクセス用に一番普及していたNCSA Mosaicよりも、優れ
たブラウザを作ることを計画しました。この新しいアプリは「Mosaicキラー」とな
るものでした。そうこうするうち、このフレーズは「Mozilla」と略されるように
なり、Netscapeのブラウザのコードネームとなりました。

MozillaはNetscapeの製品一つの代名詞となりました。そして1998年3月31日、
http://www.mozilla.org/はNetscapeの次世代のCommunicator 5.0ブラウザ環境を
開発するためのサイトとして発足しました。この時点で、Mozillaはオープンソー
スのプロジェクトとなり、Netscapeでの起源を越え、独立した存在となりました。

NetscapeがCommunicatorのソースコードをオープンソースのコミュニティへ公開し
た時、それは前例のない行為でした。有名なソフトウェア企業で自社の商品のソー
スコードを公開したところは、それまでまったくありませんでした。この時、この
ことは、多くのソフトウェア業界の人々や報道関係者の間で議論を呼びました。

多くの企業が、Netscapeに続いて、彼らの製品をオープンソースコミュニティへ公
開しだしました。サン・マイクロシステムズはhttp://www.openoffice.org/ や
http://www.netbeans.org/などを含むいくつかのプロジェクトに資金援助をしまし
た。アップル社も、新しいOSの核となる部分を、Darwinと呼ばれたオープンソース
のプロジェクト(http://developer.apple.com/darwin/)を元に開発しました。
03380章NGNG

Mozillaのソースコードが公開されて1年後、Netscapeの古参の経営者の一人である
Mike Homerはこんな風にコメントしました。「MozillaはNetscapeよりも大きく、
そしてそれがMozillaの意義です。Mozillaは本質的に、ある一つの商業的な存在に
よって後援される共同のプロジェクトです。mozilla.orgのスタッフの中には
Netscapeの社員の人もいますし、提供されたソースコードは以前はNetscapeが所有
していました。しかし、そのソースコードがいつかそれ自身独り歩きするようにな
るだろうというのは真実です。」

このプロジェクトが始まってから、多くのNetscape(今ではAOL)の社員がその進
歩に協力したのは事実ですが、多くのNetscape社外の人々もこのコミュニティに参
加しました。Mozillaコミュニティは元々のmozilla.orgを超えるものに成長しつつ
あります。また、Mozillaの支持するニュースサイトのhttp://www.mozillazine.org/
や、Mozillaのアプリケーションのプロジェクトを擁するhttp://www.mozdev.org/
など、他の有用な情報を提供するコミュニティも生まれました。

IBM, Red Hat, AcitveState, サン・マイクロシステムズなどの企業もMozillaのコ
ミュニティに協力しています。例えばRed Hatは、それまで彼らのLinuxディストリ
ビューションに含まれていたクローズドソースのNetscape 4.xブラウザ環境に対し
て、オープンソースのソフトウェアの選択肢を与えるために、Mozillaのサポート
を提供しています。AOLも、最新のコンピュサーブのクライアントやAOLのクライア
ントでのMozillaの利用を研究しています。

Mozillaの全ソースコードは、興味を持っている人なら誰でも入手することができ、
それ故にMozillaコミュニティは、バグ報告や修正パッチ、新しい開発者の増加な
どの利益を得ています。Mozillaがオープンソースのソフトウェアとして最初に公
開された時からプロジェクトに関係していた人々とともに、コミュニティに参加し
た新しい人たちや企業が、Mozillaプロジェクトの方向性や成果を形成するのに協力
しました。
03390章NGNG
Mozillaの現状

オープンソースのプロジェクトが発足してから4年後の2002年6月5日、Mozilla
1.0はリリースされました。この本の中の例は、このMozilla 1.0や1.0.x系列の
全てのメンテナンスリリースで動作するように書かれています。

1.0のリリースの後、Mozillaには二つの主な開発系統が作られました。安定して
いて息の長い1.0ブランチは、1.0リリースのコードのバグを修正することを目的
としています。このブランチから定期的に、「バージョン1.0.x」と名付けられた
メンテナンスリリースがリリースされます。全ての1.0.xリリースは元々の1.0リ
リースと完全に互換性があるように(もちろんそれよりもバグは少なく)設計さ
れています。

もう一つの開発のブランチは、Mozilla CVS trunkから作られます。この開発の努
力からの新しいリリースは「1.x」と名付けられ、新機能やアーキテクチャの変更、
あるいは他の付加的なプロジェクトによる発展などを含んでいます。

これらの新しい1.xリリースは、Mozilla 1.0や1.0.xリリース向けに作られたアプ
リケーションと完全な互換性はないかもしれません。しかしmozilla.orgは、将来
の2.0のリリースまでの間、1.xシリーズを通じて、API(XULやXBLの文法も含めて)
をフリーズして互換性を維持することを約束しました。詳しいことは
http://www.mozilla.org/roadmap/mozilla-1.0.htmlを見て下さい。

Mozilla自身流動的な開発のもとにあるため、Mozillaの新バージョンがリリースさ
れた時、このフレームワークに基づいたアプリケーションは何らかの影響を受ける
かもしれません。私達は、みなさんがMozillaの状態についての最新の情報を得ら
れるよう、ロードマップ(http://www.mozilla.org/roadmap.html)を見ることを
お勧めします。

私達はまた、同様に、この本の例を動作させる時にはMozilla 1.0.xを使うことを
お勧めします。そして、Mozillaが期待に応えられるように、最新の1.xリリースを
使うことも推奨します。
0340デフォルトの名無しさんNGNG
以前、ヒマだったので全訳してみるかーなんて思ってやり始めて挫折した、その残骸です。
0章途中までだし。技術情報含まれてないし。役に立ちませんね。
0341デフォルトの名無しさんNGNG
おお、すげぇ。
0342デフォルトの名無しさんNGNG
>>331
に続いてChapter2訳してるけど他にやってるひといるかな?
03430章続き ◆YNS0qIRC9I NGNG
この本が対象とする読者

この本は主に、全く新しいプラットフォームである、Mozillaの提供するフレーム
ワークの探求に興味を持っているプログラマ(と、プログラマを目指す人たち)を
対象にしたものです。しかし、Mozillaベースのクロスプラットフォームのアプリ
ケーションを作る上で、あなたがプロのプログラマである必要はありません。

以降の章で示されるように、Mozillaベースのアプリケーションを作り始める上で
あなたに必要な技術は、CSS, XML, JavaScript といった既に大抵のWebデベロッ
パーによく知られているいくつかの技術の基礎知識だけです。実際、これはMozilla
ベースのアプリケーション開発の大きな利点です。開発における学習曲線はC, C++,
あるいはJavaのような他の選択肢に比べて緩やかです。

あなたのアプリケーションは自動的にクロスプラットフォームなものになるでしょ
う(もちろん、特定のプラットフォーム向けのアプリケーションを作ることもでき
ます)。また、Mozillaを自分のコンピュータで利用しているユーザにとって、イン
ターネット上で簡単にインストールすることができるものになるでしょう。他にこ
んな事のできる開発プラットフォームがあったでしょうか?

03440章続き ◆YNS0qIRC9I NGNG
あなたに必要な技術は > あなたに必要なのは
の方が良かったですね。
03450章続き ◆YNS0qIRC9I NGNG
この本は、読者がJavaScript, CSS, HTML, XMLをある程度のレベルまで身につけて
いるものと想定して書かれています。もしこれらの技術についてまだあまり熟達し
ていないなら、この本を読む上で、それらの技術について専門的に扱っている他の
本を併せて読むといいでしょう。オライリー&アソシエイツの有用な本の中には、
「JavaScript:決定版ガイド」「Cascading Style Sheets:決定版ガイド」「HTML&
DHTML:決定版ガイド」「ラーニングXML」「簡単なXML(第2版)」などがあります。
Mozillaで、あるいはMozillaと一緒に新しい方法で使われる概念と新しい技術が、
それらの本の中で詳細に説明されています。

この本はまた、読者がMozilla 1.0以降をコンピュータにインストールしていて、
テキストエディタあるいはワードプロセッサとともに利用できる状態を想定してい
ます。Mozillaは今やほとんどのパーソナルコンピュータ上で動くので、互換性の
ある(Mozillaが動く)プラットフォームを探すことはそう難しくありません。
Mozillaの詳細なシステム要件については、mozilla.orgのサイトで見つけることが
できます。
0346デフォルトの名無しさんNGNG
よく考えたらそのうちオライリーから日本語訳でそうだ。。。
0347 ◆YNS0qIRC9I NGNG
>>346
あんまりアテにできないと思いますよ。
海の向こうは、よっぽどの売り上げが見込めるようでないと日本語訳出さないって言ってるみたいですし。
0348デフォルトの名無しさんNGNG
技術書によっぽどの売り上げを見込まれてもな〜
0349デフォルトの名無しさんNGNG
赤字が出ない程度の売り上げは必要ですよ。
0350デフォルトの名無しさんNGNG
最初は自分がわかればいいやって感じで
超適当に訳してたけど、◆YNS0qIRC9Iみたいに
ちゃんと訳してみようかな?

ちゃんと訳すとなると自分の語彙力のなさが
露呈するなぁ。。。
0351 ◆YNS0qIRC9I NGNG
>>350
読んで意味が分かればそれでいいんじゃないでしょうか。実際、自分も所々意訳気味ですし。
うまく訳せる人が取り組んでくれていないのだから、うまく訳せなくても自分たちでやるほかないです。残念ですが。
■ このスレッドは過去ログ倉庫に格納されています