ヘッダビューの設定をするXMLファイルです。
<header> <!-- line --> </header>
headerエレメントがトップレベルエレメントになります。headerエレメント以下には0個以上のlineエレメントを置くことができます。
<line hideIfEmpty="アイテム名" class="クラス名"> <!-- static, edit, attachment --> </line>
lineエレメントはヘッダビューの一行を表します。
hideIfEmpty属性にはアイテム名を指定します。指定したアイテムが空の場合には行ごと隠されます。指定しない場合には、その行は常に表示されます。
class属性には正規表現を指定します。指定した正規表現にアカウントクラスがマッチする場合のみ行が表示されます。例えば、"mail|news"と指定するとmailアカウントとnewsアカウントでのみ表示されるようになります。指定しない場合には、アカウントクラスにかかわらず常に表示されます。
<static name="アイテム名" width="幅" number="番号" showAlways="true|false" background="背景色" style="フォントスタイル" align="left|center|right"> テンプレート </static>
staticエレメントはスタティックコントロールを表します。コンテンツにテンプレート書式で表示する文字列を指定します。
name属性にはアイテム名を指定します。lineエレメントのhideIfEmpty属性に指定する場合にはここで名前を指定しておきます。
width属性には幅を指定します。幅の指定については備考を参照してください。
number属性にはコントロールの番号を指定します。この番号をViewFocusItemアクションの引数に指定することで、フォーカスを移動することができます。
showAlways属性にはtrueまたはfalseを指定します。trueを指定するとコンテキストアカウントがない場合でも常にアイテムに文字列を表示します。この場合、テンプレート中にマクロを書くことはできません。指定しない場合にはfalseを指定した場合と同じになります。
background属性には背景色をテンプレート書式で指定します。テンプレートを評価した結果は、rrggbb形式の文字列になる必要があります。空文字列を返すとヘッダビューの背景色と同じになります。指定しない場合にはヘッダビューの背景色と同じになります。
style属性にはフォントのスタイルを指定します。指定できるのはboldとitalicの組み合わせです。複数指定する場合には,で区切ります。指定しない場合には通常のスタイルになります。
align属性にはleft, center, rightのいずれかを指定します。それぞれ、左寄せ、中央寄せ、右寄せになります。指定しない場合には左寄せになります。
<edit name="アイテム名" width="幅" number="番号" showAlways="true|false" background="背景色" style="スタイル" align="left|center|right" multiline="行数" wrap="true|false"> テンプレート </edit>
editエレメントはエディットコントロールを表します。ただし編集できるわけではなく、スタティックコントロールとの主な違いは、フォーカスを持てるかどうかと自動スクロールするかどうかです。コンテンツにテンプレート書式で表示する文字列を指定します。
name, width, number, showAlways, background, style, align属性についてはstaticエレメントを参照してください。
multiline属性には複数行になったときに最大何行まで大きくするかを指定します。-1を指定すると複数行にはなりません。また、0を指定すると必要なだけ行数が増えます。指定しない場合には複数行になりません。
wrap属性にはコントロールの幅で自動で折り返すかどうかを指定します。指定しない場合には折り返しません。
<attachment name="アイテム名" width="幅" number="番号" showAlways="true|false" background="背景色"/>
attachmentエレメントは添付ファイルコントロールを表します。メッセージの添付ファイルを表示します。
name, width, number, showAlways, background属性についてはstaticエレメントを参照してください。
<?xml version="1.0" encoding="utf-8"?> <header> <line class="mail"> <static width="auto" style="bold" showAlways="true">To:</static> <edit>{@FormatAddress(To, 3)}</edit> </line> <line class="mail" hideIfEmpty="cc"> <static width="auto" style="bold" showAlways="true">Cc:</static> <edit name="cc">{@FormatAddress(Cc, 3)}</edit> </line> <line class="news"> <static width="auto" style="bold" showAlways="true">Newsgroups:</static> <edit>{Newsgroups}</edit> </line> <line class="news" hideIfEmpty="followup-to"> <static width="auto" style="bold" showAlways="true">Followup-To:</static> <edit name="followup-to">{FollowUp-To}</edit> </line> <line class="mail|news"> <static width="auto" style="bold" showAlways="true">From:</static> <edit background="{@If(@Not(@Param('Verify')), '', @Contain(@Param('Verify'), 'AddressMatch'), 'f5f6be', @Contain(@Param('Verify'), 'AddressMismatch'), 'ec7b95', '')}">{@FormatAddress(From, 3)}</edit> <static width="auto" style="bold" align="right" showAlways="true">Date:</static> <edit width="10em">{@FormatDate(@Date(Date), @Profile('', 'Global', 'DefaultTimeFormat'))}</edit> </line> <line class="mail|news"> <static width="auto" style="bold" showAlways="true">Subject:</static> <edit>{@Subject()}</edit> </line> <line hideIfEmpty="attachment" class="mail|news"> <static width="auto" style="bold" showAlways="true">Attachment:</static> <attachment name="attachment" background="{@If(@Equal(X-QMAIL-AttachmentDeleted, 1), 'ccc7ba', '')}"/> </line> <line class="rss"> <static width="auto" style="bold" showAlways="true">Title:</static> <edit>{@Subject()}</edit> </line> <line class="rss"> <static width="auto" style="bold" showAlways="true">Date:</static> <edit>{@FormatDate(@Date(Date), @Profile('', 'Global', 'DefaultTimeFormat'))}</edit> </line> <line class="rss" hideIfEmpty="creator"> <static width="auto" style="bold" showAlways="true">Creator:</static> <edit name="creator">{X-RSS-Creator}</edit> </line> <line class="rss" hideIfEmpty="category"> <static width="auto" style="bold" showAlways="true">Category:</static> <edit name="category">{X-RSS-Category}</edit> </line> <line class="rss" hideIfEmpty="subject"> <static width="auto" style="bold" showAlways="true">Subject:</static> <edit name="subject">{X-RSS-Subject}</edit> </line> <line class="rss"> <static width="auto" style="bold" showAlways="true">URL:</static> <edit>{X-RSS-Link}</edit> </line> <line hideIfEmpty="label"> <static width="auto" style="bold" showAlways="true">Label:</static> <edit name="label">{@Label()}</edit> </line> <line class="mail|news" hideIfEmpty="sign"> <static width="auto" style="bold" showAlways="true">Signed by:</static> <edit name="sign" background="{@If(@Not(@Param('Verify')), '', @Contain(@Param('Verify'), 'Verified'), 'f5f6be', @Contain(@Param('Verify'), 'VerifyFailed'), 'ec7b95', '')}">{@Param('SignedBy')}</edit> </line> </header>
start = element header { element line { ( element static { textitem } | element edit { textitem, attribute multiline { xsd:int }?, attribute wrap { xsd:boolean }? } | element attachment { item } )*, attribute hideIfEmpty { xsd:string }?, attribute class { xsd:string }? }* } item = attribute name { xsd:string }?, attribute width { xsd:string { pattern = "auto|[0-9]max|[0-9]min|[0-9]+(px)?|[0-9]+%|[0-9]+(\.[0-9]+)?em" } }?, attribute showAlways { xsd:boolean }?, attribute background { xsd:string }? textitem = xsd:string, item, attribute style { xsd:string }?, attribute align { "left" | "center" | "right" }?
width属性での幅の指定では以下のような指定ができます。
maxとminは別の行にあるアイテムの幅を揃えたい場合に使用します。例えば、各行の左側にラベルを置いてラベルの幅を合わせたい場合に、それらすべてのラベルのwidth属性に1maxと指定しておくと、最も幅の広いラベルの幅にすべてのラベルの幅が合わされます。
行内の配置を決めるときには以下のように決めます。