X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/a2c4ad5fad89f91d11811288c7781fb75712b9a3..31e2a93e08a0e68d71e37f9697564d26936b5819:/templates/macros.tmpl
diff --git a/templates/macros.tmpl b/templates/macros.tmpl
index 8714a08..320e688 100644
--- a/templates/macros.tmpl
+++ b/templates/macros.tmpl
@@ -1,38 +1,134 @@
-@discard{
-
This file is part of DisOrder.
-Copyright (C) 2004-2008 Richard Kettlewell
+Copyright (C) 2008 Richard Kettlewell
-This program is free software; you can redistribute it and/or modify
+This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
+the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
+along with this program. If not, see .
+
+
+------------------------------------------------------------------------
+Standard macros
+
+
+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 redefine macros as desired.
+------------------------------------------------------------------------
+
+
+@# Standard width and height of an image
+@define {width} {} {16}
+@define {height} {} {16}
+
+@# Standard
text
+@# @name is the name of this page, for the element
+@define {stdhead} {name}
+ {@quiethead
+@label{@name.title}}
+
+@# Non-displaying text
+@define {quiethead} {}
+ { }
+
+@# Standard menu
+@# @current is the name of the current page, e.g. choosealpha, login
+@define {stdmenu} {current}
+ {
+}
+
+@define {menuurl} {name}
+ {@if{@eq{name}{playing}}
+ {@url}
+ {@url?action=@name}}
-@# Expand to @yes for the Manage page and @no for the playing page
-@define {ifmanage} {yes no}
- {@if {@eq {@arg{action}}{manage}}
- {@yes}
- {@no}}
+@# Menu entry
+@# Used by @stdmenu
+@# @current is the name of the current page (not necessarily the action that
+@# got there!)
+@# @name is the name of the menu item
+@# @available is true if the menu item is available, else false
+@#
+@define {menuitem} {current name available}
+ {@if{@available}
+ { @label{menu.@name}}
+ { @label{menu.@name}}}
-@# Expand to &back=manage or to nothing
-@define {back} {}
- {@ifmanage{&back=manage}{}}
+@# 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}
+ {
+
+ }
+ {
+
+ }}
+
+@# Standard footer text
+@define {credits} {}
+ {
}
@# Expand to the time that @id will be played
+@# @what is the section
+@# @id is the track ID
@define {mwhen} {what id}
{@when{@id}}
@# Expand to the 'who' field for @id
+@# @what is the section
+@# @id is the track ID
@define {mwho} {what id}
{@if{@eq{@who{@id}}{}}
{@if{@eq{@state{@id}}{random}}
@@ -41,38 +137,169 @@ USA
{@who{@id}}}
@# Expand to the artist for @track
+@# @what is the section
+@# @track is the track name
@define {martist} {what track}
{@right{play}
{@part{@track}{short}{artist}}
+ href="@url?action=choose&dir=@urlquote{@dirname{@dirname{@track}}}"
+ title="@label{playing.artistverbose}">@part{@track}{artist}{short}}
{@part{@track}{short}{artist}}}
+ title="@part{@track}{artist}">@part{@track}{artist}{short}}}
@# Expand to the album for @track
+@# @what is the section
+@# @track is the track name
@define {malbum} {what track}
{@right{play}
{@part{@track}{short}{album}}
+ href="@url?action=choose&dir=@urlquote{@dirname{@track}}"
+ title="@label{playing.albumverbose}">@part{@track}{album}{short}}
{@part{@track}{short}{album}}}
+ title="@part{@track}{album}">@part{@track}{album}{short}}}
@# Expand to the title for @track
+@# @what is the section
+@# @track is the track name
@define {mtitle} {what track}
- {@part{@track}{short}{title}}
+ {@part{@track}{title}{short}}
+
+@# As @mtitle but make a link to play the track
+@# @what is the section
+@# @track is the track name
+@define {mtitleplay} {what track}
+ {@part{@track}{title}{short}}
@# Expand to the remove/scratch entry for @id
+@# @what is the section
+@# @id is the track ID
@define {mremove} {what id}
{@if{@removable{@id}}
{}
{}}
-}@#
+@# Expand to a move button
+@# @id is the track ID
+@# @dir should be a direction: up, upall, down or downall
+@# @delta should be the distance, +ve for up and -ve for down
+@# This macro calls @movable to check that the move is possible.
+@define {mmove} {id dir delta}
+ {@if{@movable{@id}{@delta}}
+ {
+
+ }
+ {}}
+
+@# 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}
+ {
+
Preferences for @quote{@resolve{@track}}:
+
+
+
+
@label{prefs.name}
+
@label{prefs.value}
+
+
+
@label{heading.title}
+
+
+
+
+
+
@label{heading.album}
+
+
+
+
+
+
@label{heading.artist}
+
+
+
+
+
+
@label{prefs.tags}
+
+
+
+
+
+
@label{prefs.weight}
+
+
+
+
+
+
@label{prefs.random}
+
+
+
+
+
+}
+
+@# Expand to a submit button
+@# @text is the text to put inside the button
+@define {submit} {text}
+ {}
+
+@# 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}
+ {}
+
+@# Used for inserting back= elements
+@define {back} {} {}
+@define {formback} {} {}
+
+Local variables:
+mode:sgml
+sgml-always-quote-attributes:nil
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+fill-column:79
+End: