雷鳥
つーわけで、またThunderbirdネタ。
例によって例の如く、恐らく一般人はマッハ2位で置き去り。最初「光の速度~」とか書こうとして、「それ以上の速度って無いじゃん」と思って止めた(をい。
で。あの後、色々ソース眺めたり、MoziraやらThunderbirdの開発関連のドキュメント読み漁ってたら、メールアドレス追加ボタンとかの機能をごっそり乗っ取れば拡張機能として、「名前 < メールアドレス>」の表記を止める方は何とかなるんじゃないか?と思って実践。
結論から行くと、出来ましたー。
ま、現段階では元のソースに負けず劣らず決め打ちですが。
でまぁ、成功に気を良くして、Datulaにあった「メールアドレス入力欄の右クリックメニューからメールアドレスが選択できる」機能も欲しかったんで実装したんだけど、色々ハマりました、えぇえぇ;;
まず、拡張機能からポップアップメニューの追加が上手くいかなかった。
最初、
<popup id=”popid”>
// ポップアップメニュー定義
</popup>
</overlay>
とか書いてたワケですが、どーやらメニュー関係の定義は<window>タグの子として定義しないと正常に動作しないらしい。
なので、
<window id=”機能拡張するWindowのID”>
<popup id=”popid”>
// ポップアップメニュー定義
</popup>
</window>
</overlay>
が正解。
次にアドレス帳から個別のアドレスを取得する方法ですが・・・。
ドキュメントによると、nsIAbDirectoryのchildCardsプロパティで取得できるらしい。
ところが、使ってみたら動かない。全然動かない。アドレスリスト(メールアドレスグループみたいなの)持ってくるaddressListsは動くのに。
どーなってんだとソースみたら・・・・。
えぇ、もう、見事なくらい実装されてませんでした。えーーー?;;
1.0.7だけでなく、1.5.0rc1のソースでもまったく同じ。こりゃ期待できねーなぁ。
で、諦めるのもアレなんで、途中ゲームしたりしながら冷静に考えてみて、アドレス帳のソースとか解析してみたところ、アドレス帳とかはnsIAbViewを直接treeに関連付けてるぽい。
「コレ、直接呼んでもイケるかなぁ・・・」
って事で、試したら無事イケました。ソートとか指定できるんで、むしろ良かったかも(を
この辺解析して取り合えずメールアドレス選択して追加できるようになったところで昨日は終了。
・・・まだアドレスリスト未対応だったり、アドレス0件のアドレス帳だと変だったり色々問題は山積みだったり・・・。
まぁ、最大の問題は、拡張機能作ったとして、公開するか否かなんですがwwww
トラックバック URL :