たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
タブのウィンドウ外へのドラッグで新規ウィンドウを開く(タブを分割する)とか、サイドバーのウィンドウ外へのドラッグでサイドバーを切り離すとか、どうやって実現すればよいだろうか。
思い付いたのは、現在のウィンドウを覆う形で透明のウィンドウを開いて、そこへのドラッグオーバー・ドロップを検出するという方法。
例えばタブであれば、ウィンドウ外へのドラッグアウトではウィンドウの下にひとまわり大きな透明ウィンドウを配置して、ウィンドウの周囲10ピクセルほどを検出エリアにしてそこに触れたら「ウィンドウ外へ出た」と判断する(検出エリアを2重にして、ドラッグアウトとドラッグインを判別できるようにすれば、何秒以上ウィンドウ外に留まったらウィンドウ外へのドロップとみなすという処理もできるかもしれない)。ウィンドウ内へのドロップインでは、ドロップ対象のウィンドウの上に透明なウィンドウを重ねてそこへのドロップを検出する。という感じ。
ただ、常にこれをやるようにすると、URLショートカットの作成だとかリンクの読み込みだとかそういう操作ができなくなってしまうかもしれないので、設定か何かで挙動を切り替えられるようにしないといけないかなあ。
ラインマーカーの実装について質問を受けて回答したのだけれども、同様の疑問を持っている人がもしかしたらいるかも知れないなあとか、最近全然技術文書を書いてないなあとか、ドキュメントを増やすのもデベロッパの務めだよなあとか、なんやかや考えて文書にまとめてみた。
で、このドキュメントを書く途中で気がついたことやなんかを盛り込んで、ラインマーカーそのものを更新したりもして。
ああ、この時間の無いときに何でこんなことを僕はやってるんだろう……DOMを触ったことがある人にとってはあまりに常識的な話で、DOMを触ったことがない人にとってはちんぷんかんぷんな話、という非常に微妙な内容のドキュメントになってしまい、こんな物が一体誰の役に立つのだろうか、と我ながら激しく疑問に思う。
まあ、あれだ……一日遅れの24歳の誕生日プレゼントだと思ってください。って、自分が人にあげるのかよ。
blosxom+Markdownに慣れてしまうと、HTMLを書くのが面倒でたまりません。
既に有名どころの拡張機能で使われてるかも知れないけど、XULでのフェードイン・フェードアウトのやり方。deckとの組み合わせのバグがあることに気がつかず、往生こきました……
IE 7.2 が SVG をサポート ?というエントリを見てて、
XAML を Firefox や Safari など異なるプラットフォームでも動かす WPF/E
のデモを今更見た。XULはGeckoでしか動かないし、IEやSafariやOperaで動かす見通しも全く立ってない(はず)のに、XAMLはもうIE5.5/Fx/Opera/Safariでの動作を実現してる。しかもオーサリングツールまで完備。それが3月の時点でデモできてる。圧倒的じゃないか、Microsoftの技術力と体力は!
XUL終わったね。かぶる部分はあれどどこかしらお互いカバーしきれない部分はあってそこで並立してくのかな?と思ってたけど、XAMLは完全にXULを包含したね。
やる気消失。ああこれから何しよう……
今頃ようやく試してみた。Bon Echo Alpha2。
中身を見て焦りとか期待とかを通り越してただひたすら呆然。いやーもー根本的に変わってますねコレ。Mozilla 0.9.5の頃からあれこれイリーガルなことまでしてやってきたTBEだけど、今回ばかりは小手先のテクニックでどうこうできるレベルじゃないです。
いよいよ年貢の納め時か……
テストした拡張機能。
YAPC::Asiaで行われたプレゼンテーションの資料一覧に、拡張子「.xul」のものがちらほら……っていうか高橋メソッド in XUL由来のやつが明らかに多いYO!
数えてみると、6/17で35%という物凄いシェア。独自に改良されたもの(本文が英語で、日本語字幕を同時に表示できるものとか)もあって、実装を書いた者としては、なんか嬉しい。
……ということで、クラス名を指定して自分で好きな装飾を定義できる機能を取り込んでみた。
Mozilla Japan第2回セミナーのプレゼン資料を公開しました。内容は要するに「かくちょうきのうのつくりかた」です。
説明不足なところは構成案メモと照らし合わせながらどうぞ。
スクロールボックスまわりで行き詰まってた件だけど、なんやかやしとるうちに解決できてしまいました。
scrollbox要素は内容を勝手にクリッピング表示しやがるという仕様なのだとばかり思ってたんだけど、xul.cssでの基本的なスタイル定義を見てみると、overflow: hidden;
と書いてある……えぇぇぇぇぇええ、要素の仕様でそうなってるんじゃなくって単にCSSの指定でそうなってただけなのォォォォオオ!? 今の今まで気付いてなかった僕はアホすぎですね。
つうことはですよ。scrollbox要素の中にスクロールバーが表示されないのはoverflow: hidden;
が指定されていたからでしかなく、overflow: auto;
等にすれば他の要素と同じようにスクロールバーが表示されるってことですか? ンでもって、scrollbox.boxObject.QueryInterface( Components.interfaces.nsIScrollBoxObject )
の各種メソッドを使えばスクロールバーを表示しながら同時にスクリプトでscrollboxの内容のスクロール状態を制御できるってことですか? nsIScrollBoxObjectの機能はoverflowで溢れた内容を制御するための物で、この機能を使える唯一の要素型がscrollboxだ、だから制御可能なスクロール領域を作るにはscrollboxとoverflowを組み合わせれ、という話だったんですか?
……ということにやっと思い至ったので、バインディングを使ってタブバーの中にscrollboxを組み込む形にコードを書き直してみた。テストしてみたらやはり予想通りに上手く動いてくれたので、SeaMonkeyでテストを繰り返しながら細かいバグを取り除いて、これで完成としておく。
ああ疲れた……
XUL PlanetのXUL要素リファレンスのscrollboxの解説見たら、「内容をスクロールできるようにする機能を持つボックス。スクロールバーは表示されない。スクロールバーが使いたければCSSのoverflow:auto
を使え。(大意)」とある。
しかしoverflow:auto
の効果でスクロール可能になったボックスについては、内容をスクリプトでスクロールさせるためのインターフェースが用意されていない。裏技的なテクニックで実現は可能だけれども、これはどう見てもバッドノウハウの塊なので、動作が保証できない。事実、SeaMonkey 1.0ではもうこの方法が使えなくなってしまっている。
どうすりゃいいんだYO! やっぱアレですか、scrollbarとscrollboxを組み合わせて双方の連携を取れるよう自力で実装するしかないですか。なんてこったい。
SeaMonkeyでの障害報告を受けてちょっと試してみてたんだけど、XULのドキュメント化されていない細々した仕様が色々変わっているようで、バッドノウハウの塊なTBEでトラブル続発ですよ。
とりあえず気付いたのは以下の点。
visibility: collapse;
の状態のscrollbarは初期化されず、curpos/maxpos属性を使ったスクロール制御ができない。まだまだ他にもあるんだろうなあ……