Stamps are a method for manually applying action code to the currently selected item(s) in the view pane of the front document. If multiple items are selected, every item in the selection discretely has the same action code run upon it.
Stamps are action code 'expressions', i.e. one or more complete action(s) to be effected by the code. The concept of a stamp allows easy (manual) application and re-use of such code. They enable the user to:
- set many attributes at once. For example, a stamp with two discrete expressions to set a colour ($Color) and, separately, a badge ($Badge):
$Color="blue"; $Badge="ok";
. - use conditions, shell scripts and macros for more complex tasks. For example, conditionally (an if() operation) set or clear a warning badge ($Badge) based on evaluating if a task's due date has passed ($DueDate):
if($DueDate<date("today")){$Badge="warning";}else{$Badge=;}
.
Stamps are defined/edited via the Stamps tab of the Document Inspector. Stamps can be called by:
- The Stamps menu.
- The Stamps tab of the Document Inspector (use the 'Apply' button).
Stamps are essentially an entirely manual way to apply actions that might otherwise equally well be effected automatically via rules, edicts, OnAdd events, or agent actions. Stamps are thus useful for when a known change needs to be made to some attributes but the scope or timing of such a change cannot easily be predicted or automated and so manual application is the best method.
Stamps requiring long/complex code can store the action in a code note and call it via the action() operator.
If stamps are just being used to easily apply a consistent look and layout to notes, consider using prototypes instead for the greater flexibility they offer when you subsequently need to make changes.
From v7.0.2, a document's stamps can be used in any action (AgentAction, Rule, Edict, DisplayExpression, OnAdd, HoverExpression, TableExpression and ^action()^).
The stamp is called as an expression containing only the name of the stamp. The name is case-sensitive. Do not enclose it in quotes or Tinderbox will read it as a literal string (i.e. actual text). It must be terminated with a semicolon is followed by another expression. However, it is a good idea in this particular case of always using s semi-colon to help indicate your intent to the app.
The stamp name may be enclosed in quotes; unquoted and quoted forms both work. For a stamp called 'A test', the action would be be:
A test;
or
"A test";
The same stamp called, but now as one of 3 discrete expressions within an action:
$Color="blue";A test;$Width=4;