This file is read before any other template. Its output is discarded
but side effects (definitions of macros) are retained. To override it,
create /etc/disorder/macros.tmpl that includes this file by absolute path
-and then redefines macros as desired.
+and then redefine macros as desired.
------------------------------------------------------------------------
@# Standard menu
@# @current is the name of the current page, e.g. choosealpha, login
@define {stdmenu} {current}
- { <p class=menubar>
+ { <div class=top>
+ <p class=menubar>
@menuitem{@current}{playing}{true}
@menuitem{@current}{recent}{true}
@menuitem{@current}{choose}{@right{play}}
@menuitem{@current}{manage}{true}
+@menuitem{@current}{new}{true}
@menuitem{@current}{login}{true}
@menuitem{@current}{help}{true}
-@menuitem{@current}{about}{true}
</p>
- <hr>
+ <div class=logo>
+@menuicon{@current}{about}{true}{logosmall}
+ </div>
+ <div style="clear:both"></div>
+ </div>
}
+@define {menuurl} {name}
+ {@if{@eq{name}{playing}}
+ {@url}
+ {@url?action=@name}}
+
@# Menu entry
@# Used by @stdmenu
@# @current is the name of the current page (not necessarily the action that
@#
@define {menuitem} {current name available}
{@if{@available}
- { <a @if{@eq{@current}{@name}}
- {class=activemenu}
- {class=inactivemenu}
-@if{@eq{name}{playing}}
- { href="@url"}
- { href="@url?action=@name"}
- title="@label{menu.@q{@name}verbose}">@label{menu.@name}</a>}
- { <span class=invalidmenu
- title="@label{menu.@q{@name}verbose}">@label{menu.@name}</span>}}
+ { <a @if{@eq{@current}{@name}}
+ {class=activemenu}
+ {class=inactivemenu}
+ href="@menuurl{@name}"
+ title="@label{menu.@q{@name}verbose}">@label{menu.@name}</a>}
+ { <span class=invalidmenu
+ title="@label{menu.@q{@name}verbose}">@label{menu.@name}</span>}}
+@# Icon-based menu entry (very similar to @menuitem)
+@# Used by @stdmenu
+@# @current is the name of the current page
+@# @name is the name of the menu item
+@# @available is true if the menu item is available, else false
+@# @icon is the name of the icon
+@#
+@define {menuicon} {current name available icon}
+ {@if{@available}
+ { <a class=menuicon
+ href="@menuurl{@name}">
+ <img @if{@eq{@current}{@name}}
+ {class=activemenu}
+ {class=inactivemenu}
+ title="@label{menu.@q{@name}verbose}"
+ alt="@label{menu.@name}"
+ src="@image{@icon}">
+ </a>}
+ { <span class=menuicon>
+ <img @if{@eq{@current}{@name}}
+ {class=activemenu}
+ {class=inactivemenu}
+ title="@label{menu.@q{@name}verbose}"
+ alt="@label{menu.@name}"
+ src="@image{@icon@_inactive}">
+ </a>}}
@# Standard footer text
@define {credits} {}
@define {martist} {what track}
{@right{play}
{<a class=directory
- href="@url?action=choose&directory=@urlquote{@dirname{@dirname{@track}}}"
- title="@label{@what.artistverbose}">@part{@track}{artist}{short}</a>}
+ href="@url?action=choose&dir=@urlquote{@dirname{@dirname{@track}}}"
+ title="@label{playing.artistverbose}">@part{@track}{artist}{short}</a>}
{<span class=directory
title="@part{@track}{artist}">@part{@track}{artist}{short}</span>}}
@define {malbum} {what track}
{@right{play}
{<a class=directory
- href="@url?action=choose&directory=@urlquote{@dirname{@track}}"
- title="@label{@what.albumverbose}">@part{@track}{album}{short}</a>}
+ href="@url?action=choose&dir=@urlquote{@dirname{@track}}"
+ title="@label{playing.albumverbose}">@part{@track}{album}{short}</a>}
{<span class=directory
title="@part{@track}{album}">@part{@track}{album}{short}</span>}}
@define {mtitle} {what track}
{<span title="@part{@track}{title}">@part{@track}{title}{short}</span>}
+@# As @mtitle but make a link to play the track
+@# @what is the section
+@# @track is the track name
+@define {mtitleplay} {what track}
+ {<a title="@part{@track}{title}" href="@url?action=play&track=@urlquote{@track}&back=@urlquote{@thisurl}">@part{@track}{title}{short}</a>}
+
@# Expand to the remove/scratch entry for @id
@# @what is the section
@# @id is the track ID
title="@label{playing.@q{@dir}verbose}"
alt="@label{playing.@dir}">}}
+@# Size of input box for preferences forms
+@define{prefsize}{}{40}
+
+@# Expand to the weight of a track. This macro knows the default weight,
+@# and does two lookups, which is rather inelegant.
+@# @track is the track name.
+@define{weight}{track}{@if{@eq{@pref{@track}{weight}}{}}
+ {90000}
+ {@pref{@track}{weight}}}
+
+@# Expand to preference form section for a track
+@# @index is the track number
+@# @track is the track name
+@define {mprefs} {index track}
+ {
+ <p class="prefs_head">Preferences for <span class="prefs_track">@quote{@resolve{@track}}</span>:</p>
+ <input type=hidden name="@index@__track" value="@quote{@resolve{@track}}">
+ <table class=prefs>
+ <tr class=headings>
+ <th class="prefs_name">@label{prefs.name}</th>
+ <th class="prefs_value">@label{prefs.value}</th>
+ </tr>
+ <tr class=even>
+ <td class="prefs_name">@label{heading.title}</td>
+ <td class="prefs_value">
+ <input size=@prefsize type=text name="@index@__title"
+ value="@part{@track}{title}{display}">
+ </td>
+ </tr>
+ <tr class=odd>
+ <td class="prefs_name">@label{heading.album}</td>
+ <td class="prefs_value">
+ <input size=@prefsize type=text name="@index@__album"
+ value="@part{@track}{album}{display}">
+ </td>
+ </tr>
+ <tr class=even>
+ <td class="prefs_name">@label{heading.artist}</td>
+ <td class="prefs_value">
+ <input size=@prefsize type=text name="@index@__artist"
+ value="@part{@track}{artist}{display}">
+ </td>
+ </tr>
+ <tr class=odd>
+ <td class="prefs_name">@label{prefs.tags}</td>
+ <td class="prefs_value">
+ <input size=@prefsize type=text name="@index@__tags"
+ value="@pref{@track}{tags}">
+ </td>
+ </tr>
+ <tr class=even>
+ <td class="prefs_name">@label{prefs.weight}</td>
+ <td class="prefs_value">
+ <input size=@prefsize type=text name="@index@__weight"
+ value="@weight{@track}">
+ </td>
+ </tr>
+ <tr class=odd>
+ <td class="prefs_name">@label{prefs.random}</td>
+ <td class="prefs_value">
+ <input type=checkbox value=true
+ name="@index@__random"
+ @if{@ne{@pref{@track}{pick_at_random}}{0}}
+ {checked}>
+ </td>
+ </tr>
+ </table>
+}
+
+@# Expand to a submit button
+@# @text is the text to put inside the button
+@define {submit} {text}
+ {<button class=button name=submit type=submit>@text</button>}
+
+@# Expand to an action button
+@# @text is the text to put inside the button
+@# @long is the text to put in the caption
+@# @action is the target action
+@define {actbutton} {text long action}
+ {<form method=POST class=button action="@url">
+ <input type=hidden name=action value="@action">
+ <input type=submit name=submit value="@text" title="@long">
+@formback@#
+ </form>}
+
+@# Used for inserting back= elements
+@define {back} {} {}
+@define {formback} {} {}
+
Local variables:
mode:sgml
sgml-always-quote-attributes:nil