| 
中間報告の時点から,実装法を大転換しながら,それでいて予定以上のところまで進んでしまった.転換したのは実装法だけなので,得られたものの「クールさ」は当初計画していたものと変わらない.なお,WiCoCoは「ウィーコッコ」と読む.
成果を少し詳しく述べよう.
(1) 非矩形及び透過ウィンドウのサポート
WiCoCoでは,非矩形や透過をウィンドウの「特徴」として抽象化し,それをウィンドウに付加することで,非矩形及び透過ウィンドウを実現した
(赤塚 図2) また,複数の特徴をウィンドウに付加できるよう,特徴の足し算ができるようにした.たとえば,非矩形で且つ透過なウィンドウを作成する場合,非矩形という特徴と透過という特徴を作成し,それぞれをウィンドウに付加する.
赤塚 図2 特徴付加イメージ
開発にあたってJavaの既存GUI部品との親和性を高める設計方針を貫いた.たとえば,AWTやSwingの部品をそのまま利用可能にした.この結果,利用者はWiCoCoで特徴を付加したウィンドウを扱う場合でも,コーディングは従来通りの手法を用いることができる
(赤塚 図3)
赤塚 図3 WiCoCoの位置付け
Javaのjava.awt.Windowとそのサブクラスが非矩形及び透過の表現を出来るようにするため,Javaが持つネイティブAPIを利用できる技術であるJNI
(Java Native Interface) を介し,各OSに固有の非矩形及び透過ウィンドウ作成APIを利用した.具体的には,WindowsではWin32API,LinuxはXlib,そしてMacではCarbonあるいはCocoaを利用する.WindowsWindows2000,WindowsXP,MacOSX10.3以上ではすでに完成しており,Linux上は実装中である.
(2) イメージトリミングライブラリ
GIFやPNGなど,透過を表現できるイメージの非透明部分が表す外枠形を取り出すライブラリを作成した.具体的には,イメージファイルを読み込みでつくったjava.awt.Imageオブジェクトから,非透明部分が表す外枠形を取り出し,java.awt.Shapeインスタンスとして利用できるようにた.JRE
(Java Runtime Environment) 1.4以上で動作する.
(3) WiCoCoインスタントメッセンジャー
WiCoCoのパワーを確かめるため,WiCoCoを利用したインスタントメッセンジャーを作成した.実際の画面は赤塚 図4.この画面を見てわかるように,友達アイコンを直接デスクトップ上に配置するので,今までのインスタントメッセンジャーに比べ,友達がより近く,さらに直接触れられるような臨場感を生み出す.コミュニケーションはますます円滑になる.IMのプロトコル仕様にJabber
(http://www.jabber.org) を採用し,多くの人々に利用してもらえるようにした.なお,実装は,GUIと操作部,通信部を完全に切り離し,GUIの変更,通信部の変更などを容易にした.
赤塚 図4 WiCoCoインスタントメッセンジャー
なお,成果は公開予定であるが,詳細は未定.
|