====== widgets.dat ====== meta-author: t.ashula meta-creation_date: 2007-07-15T15:34:57+09:00 Opera のWidget 管理ファイル widgets.dat の解説.

注意

この文書は,WindowsXPにWindows版の Opera 9.6の情報に基づいて作成してます.この文書を基にして,Operaにカスタマイズその他の変更を加えて,不具合が発生しても責任は取れません.

突っ込み,感想,その他は,office@ashula.infoまで

==== 説明 ==== widgets.datは,Opera 9 から追加された widget を管理するためのファイルのひとつ. Widget Panel などで直接ユーザに見える部分は [[opera:inis:widgetsadr]] というファイルで管理している. 「ユーザごとの設定を使う」でインストールすると,''Opera Directory''(通常,''%APPDATA%\Opera\Opera\profile'')以下の widgets フォルダに作られる(''%APPDATA%''は,通常''Documents and Settings\user_name\Application Data''). 拡張子こそ dat だが,実際の中身は XML である. ==== 構造 ==== widgets.adr ファイルは,XMLファイルで,ルート要素は ''preferences'' かなりいい加減な DTD で書くと,[[http://ashula.info/files/opera/inis/widgetsdat.dtd|widgetsdat.dtd]]のようになるはず. === ''preferences'' === ''preferences''要素 は 1つ以上の ''section''要素を持つ.属性は無し. === ''section'' === ''section''要素は1つ以上の ''value''要素を持つ.属性として ''id''がある. ''id'' は リテラルの ''widgets''か 30文字の文字列のどちらか. リテラルの ''widgets'' の設定された ''section'' は ''preferences''要素の最初の子要素のみ.それ以外の ''section''要素の ''id''は全て30文字の文字列となっている.この 30文字の文字列は [[opera:inis:widgetsadr#widgets_IDENTIFIER|widgets.adr]]の''#WIDGET''の''IDENTIFIER''の値と対応する. === ''value'' === ''value''要素の内容は #PCDATA で,属性として ''id'' がある. ''id'' は 次の4種類の値をとる. ; path to widget data : ''section''の最初の子要素にのみ使われる.この要素の内容は widget本体のパス として扱われる.おそらくは widget の ''config.xml'' を含むフォルダで,zipファイルである必要は無い. ; ''number of saved values'' : ''section'' の最後の子要素にのみ使われる.この要素の内容は,後述の key と val の数を表す.key/val が無いときは 0. ; ''key #n'' : ウィジェットが保存する値の名前(''widget.preferenceForKey''の引数)を表す.''n'' には 数字が入り,''key #0'',''key #1'',''key #2''と増加する. ; ''val #n'' : ウィジェットが保存する値(''widget.preferenceForKey''の戻り値)を表す.''n'' には 数字が入り,''val #0'',''val #1'',''val #2''と増加する. ===== 参考文献 ===== ; Widget : [[http://dev.opera.com/articles/view/opera-widgets-specification-1-0/|Opera Widgets Specification 1.0 - Opera Developer Community]], http://dev.opera.com/articles/view/opera-widgets-specification-1-0/ , Opera Software ===== 更新履歴 ===== - 2007/07/15 : 初版 - 2008/10/10 : Opera 9.60 リリースに合わせて書き直し