Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
customization:layouts [2010/08/01 19:58] – satoshi | customization:layouts [2010/09/20 11:28] – satoshi | ||
---|---|---|---|
Line 1: | Line 1: | ||
======= Layout Documentation ====== | ======= Layout Documentation ====== | ||
- | Currently the layout documentation is **[[http:// | ||
gmusicbrowser - layout documentation | gmusicbrowser - layout documentation | ||
+ | |||
+ | This is the documentation for Gmusicbrowser layout system. It tries to follow the latest git version closely, however, since the software is in active development, | ||
(the syntax is evolving, but I try to support backward compatibility)\\ | (the syntax is evolving, but I try to support backward compatibility)\\ | ||
Line 40: | Line 41: | ||
Keys are unique for a layout, duplicate key definitions replace the previous one.\\ | Keys are unique for a layout, duplicate key definitions replace the previous one.\\ | ||
There are currently 6 properties keys (Type, Name, Default, Title, KeyBindings, | There are currently 6 properties keys (Type, Name, Default, Title, KeyBindings, | ||
- | If the name of the key begins with one of : HB, | + | If the name of the key begins with one of: HB, VB, HP, VP, MB, EB, TB the key is the name of a container that will contain widgets (also called layout elements or controls) or other containers.\\ |
For containers the value is a list of widgets and containers, separated by a space, preceded by optional packing options, the widget names can be followed by a number(to have multiple widgets of the same name) and its options between parentheses. | For containers the value is a list of widgets and containers, separated by a space, preceded by optional packing options, the widget names can be followed by a number(to have multiple widgets of the same name) and its options between parentheses. | ||
Line 115: | Line 116: | ||
label text of the label | label text of the label | ||
- | **SB** : Scrolled window (based on GtkScrolledWindow) | + | **SB** : Scrolled window (based on [[http:// |
Adds scrollbars to its child. | Adds scrollbars to its child. | ||
- | **AB** : Alignment (based on GtkAlignment) | + | **AB** : Alignment (based on [[http:// |
Controls the alignment and size of its child | Controls the alignment and size of its child | ||
options:\\ | options:\\ | ||
- | xalign Horizontal position of child in available space, value between 0(left) and 1(right), default to .5 (center) | + | '' |
- | yalign Vertical position of child in available space, value between 0(top) and 1(bottom), default to .5 (center) | + | '' |
- | xscale If available horizontal space is bigger than needed for the child, how much of it to use for the child. 0.0 means none, 1.0 means all (default :1) | + | '' |
- | yscale If available vertical space is bigger than needed for the child, how much of it to use for the child. 0.0 means none, 1.0 means all (default :1) | + | '' |
=====Special containers===== | =====Special containers===== | ||
Line 133: | Line 134: | ||
There is also 2 special containers, widgets in these containers must belong to a normal container, and as the widget is defined elsewhere, widgets options can not be set here. | There is also 2 special containers, widgets in these containers must belong to a normal container, and as the widget is defined elsewhere, widgets options can not be set here. | ||
- | **HSize/ | + | **HSize/ |
Force all widgets to have the same Horizontal/ | Force all widgets to have the same Horizontal/ | ||
example : '' | example : '' | ||
- | **VolumeScroll** : | + | **VolumeScroll**: |
A unique virtual container (must be the exact name), for all widgets inside, the scroll wheel will modify the volume (unless the scroll event is intercepted, | A unique virtual container (must be the exact name), for all widgets inside, the scroll wheel will modify the volume (unless the scroll event is intercepted, | ||
Line 145: | Line 145: | ||
=====Properties keys===== | =====Properties keys===== | ||
- | **Title** : | + | **Title**:\\ |
Set a title for the window instead of the default : songtitle by artist ('%S by %a') (see %-letters) | Set a title for the window instead of the default : songtitle by artist ('%S by %a') (see %-letters) | ||
Title = gmusicbrowser playing %S by %a from %l | Title = gmusicbrowser playing %S by %a from %l | ||
- | **Type **: | + | **Type**:\\ |
A String of letters defining the type(s) of a layout, possible types : B(Browser window), T(Tray window), G(Generic or player window), F(Fullscreen), | A String of letters defining the type(s) of a layout, possible types : B(Browser window), T(Tray window), G(Generic or player window), F(Fullscreen), | ||
- | **Name** : | + | **Name**:\\ |
Set the name of the layout displayed in the settings dialog. The default name is the layout id. Contrary to the layout id, the Name can be changed without losing the layout' | Set the name of the layout displayed in the settings dialog. The default name is the layout id. Contrary to the layout id, the Name can be changed without losing the layout' | ||
- | **Default** : | + | **Default**: |
Default options used when the layout has no saved state, contains a space-separated list of keys and values, by pair, | Default options used when the layout has no saved state, contains a space-separated list of keys and values, by pair, | ||
Line 167: | Line 163: | ||
There is a special key : Window, for the window properties : pos, size (format is numberxnumber for pos and size), sticky, ontop, below, fullscreen (0 or 1 for these) | There is a special key : Window, for the window properties : pos, size (format is numberxnumber for pos and size), sticky, ontop, below, fullscreen (0 or 1 for these) | ||
- | example : | + | example: |
Default = Window size=1120x820, | Default = Window size=1120x820, | ||
- | KeyBindings : | + | **KeyBindings**:\\ |
Pairs of keys and action, example : | Pairs of keys and action, example : | ||
Line 179: | Line 174: | ||
key names are as shown in the key binding tab in the settings dialog action names can be found by running gmusicbrowser with command-line option -listcmd | key names are as shown in the key binding tab in the settings dialog action names can be found by running gmusicbrowser with command-line option -listcmd | ||
- | DefaultFocus : | + | **DefaultFocus**:\\ |
- | + | Name of a widget in the layout.\\ | |
- | name of a widget in the layout | + | Set which widget gets the initial focus in the window, will probably only work with very simple widgets and with SongList, SongTree and SimpleSearch for now (let me now if you'd like more) |
- | + | ||
- | set which widget gets the initial focus in the window, will probably only work with very simple widgets and with SongList, SongTree and SimpleSearch for now (let me now if you'd like more) | + | |
- | ExtraWidgets : Allows the addition of extra widgets to the layout (by options or plugin), for each widget types (only button exist now, I expect to add tab or menuitem in the future) a container can be specified where widgets of this type will be added. | + | **ExtraWidgets**:\\ |
+ | Allows the addition of extra widgets to the layout (by options or plugin), for each widget types (only button exist now, I expect to add tab or menuitem in the future) a container can be specified where widgets of this type will be added. | ||
- | syntax : | + | syntax: |
ExraWidgets = button container(option1=value1, | ExraWidgets = button container(option1=value1, | ||
Line 210: | Line 204: | ||
=====Widgets list==== | =====Widgets list==== | ||
- | | + | Most widget options are optional, |
- | | + | All widgets options are using this format : |
- | key1=val1, | + | '' |
- | some still accept the old format | + | some still accept the old format: |
- | + | '' | |
- | val1, | + | |
for backward compatibility | for backward compatibility | ||
Line 223: | Line 216: | ||
The widgets are listed with this format : | The widgets are listed with this format : | ||
- | WidgetName Widget Description | + | '' |
- | optionkey1 option description and/or possible values | + | '' |
- | optionkey2 ... | + | '' |
Line 237: | Line 230: | ||
- | Album Currently playing Album | + | '' |
- | + | ||
- | Artist Currently playing Artist | + | |
- | + | ||
- | Comment Comment of currently playing song | + | |
- | + | ||
- | Cover Album cover of currently playing song | + | |
- | forceratio 1 or 0, if 1 always request a square size, useful for tray tip windows as they can't be resized | + | '' |
- | minsize minimum size | + | '' |
- | maxsize maximum size (default is 500) | + | '' |
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
- | ArtistPic Artist picture of currently playing song. Same options as Cover. With multiple artists, displays only one picture unless the option multiple was given, which can be set to v (vertical) or h (horizontal) | + | '' |
- | Date Year of currently playing song | + | '' |
- | LabelTime Position of currently playing song | + | '' |
- | Length Length of currently playing song | + | '' |
- | LockAlbum Album lock | + | '' |
- | LockArtist Artist lock | + | '' |
- | Pos Position of currently playing song in the playlist | + | '' |
- | Title Currently playing Title | + | '' |
- | Title_by Currently playing Title and Artist | + | '' |
- | Scale Playing position slider | + | '' |
- | Stars Currently playing Rating | + | '' |
- | LabelsIcons Icons for currently playing labels for which an icon is defined in ~/ | + | '' |
- | Visuals Eye candy, only with gstreamer | + | '' |
===Options common to the label widgets=== | ===Options common to the label widgets=== | ||
Line 283: | Line 273: | ||
The label widgets include : Album, Artist, Comment, Date, Length, LabelTime, Pos, Title, Title_by and Label | The label widgets include : Album, Artist, Comment, Date, Length, LabelTime, Pos, Title, Title_by and Label | ||
- | * ' | + | * ' |
* ' | * ' | ||
Line 296: | Line 286: | ||
===player buttons widgets=== | ===player buttons widgets=== | ||
- | Next Next button | + | '' |
- | Play Play/ | + | '' |
- | Prev Previous button | + | '' |
- | Stop Stop button | + | '' |
- | Quit Quit button | + | '' |
- | BContext Button to open context window | + | '' |
- | Playlist Button to open Browser window | + | '' |
- | Pref Button to open Settings window | + | '' |
- | ChooseAlbum Open a window to select an album | + | '' |
- | OpenQueue Open a queue window | + | '' |
- | Fullscreen Button to switch to/from fullscreen mode | + | '' |
- | ChooseRandAlbum Button to select an album at random, option " | + | '' |
Line 333: | Line 323: | ||
===player indicators widgets=== | ===player indicators widgets=== | ||
- | Filter Playing filter indicator | + | '' |
- | Queue Queue indicator | + | '' |
- | Sort Sort mode indicator | + | '' |
- | Vol Volume indicator | + | '' |
- | VolSlider Volume slider | + | ''' |
- | hide hide the value if true (=1) | + | '' |
- | horizontal vertical slider if true (=1) | + | '' |
All indicators can be changed to buttons with the option button=1. | All indicators can be changed to buttons with the option button=1. | ||
Line 360: | Line 350: | ||
Also, a lot of widgets, in particular labels, indicators and buttons, can use the option tip, to define a tooltip for the widget. The tip can contains %-letters to display informations on the current song. | Also, a lot of widgets, in particular labels, indicators and buttons, can use the option tip, to define a tooltip for the widget. The tip can contains %-letters to display informations on the current song. | ||
- | Another common option is cursor, to to change the mouse cursor when it hovers over it (eg : cursor=hand2). See this page for a list of cursor names. | + | Another common option is cursor, to to change the mouse cursor when it hovers over it (eg : cursor=hand2). See [[http:// |
Line 380: | Line 370: | ||
To make the layout popup when the Cover widget is clicked rather than hovered, use this option : Cover(click1=PopupCustom(CoverPopup)) | To make the layout popup when the Cover widget is clicked rather than hovered, use this option : Cover(click1=PopupCustom(CoverPopup)) | ||
- | ===misc. widgets=== | + | ===Misc. Widgets=== |
- | AASearch | + | '' |
+ | //'' | ||
+ | //'' | ||
- | aa artist or album | + | '' |
- | activate addplay or '' | + | '' |
+ | //'' | ||
- | Connections List the active connections when in gstreamer-server mode (very rough for now, will be improved some day) | + | '' |
- | Context Context view | + | '' |
- | followselection follow songlist selection rather than playing song if true (=1) | + | '' |
+ | //'' | ||
+ | //'' | ||
- | EditList (special) | + | '' |
+ | //'' | ||
+ | //'' | ||
- | Filler empty widget, for use with H/VSize | + | '' |
- | Button custom button (other buttons can use these options too) | + | '' |
- | label text | + | '' |
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
- | stock icon name, see / | + | '' |
- | Label custom label (other labels can use these options too) | + | '' |
- | text label text | + | '' |
- | markup text than can include %-letters | + | '' |
- | QueueActions combobox to change the queued action | + | '' |
- | + | ||
- | SongSearch | + | |
- | + | ||
- | TogButton Show/ | + | |
- | + | ||
- | icon icon name, see / | + | |
- | + | ||
- | label button text | + | |
- | + | ||
- | widget list of widgets/ | + | |
- | + | ||
- | resize String of 'h',' | + | |
- | + | ||
- | HSeparator Horizontal separator | + | |
- | + | ||
- | VSeparator Vertical separator | + | |
- | + | ||
- | AddLabelEntry Entry to add labels to the current song | + | |
- | + | ||
- | PlayOrderCombo Combo box to change play order, the option reqwidth set the requested width, it defaults to 100, -1 to let it grow, but it can grow much to wide, so it's best to set a minimum width and pack it with the expand option | + | |
- | + | ||
- | Equalizer Equalizer, only active with gstreamer. | + | |
===Songlist widgets=== | ===Songlist widgets=== | ||
Line 446: | Line 425: | ||
- | QueueList Display queue (and edit it), accept the same options as SongList | + | **QueueList** Display queue (and edit it), accept the same options as SongList |
- | SongList | + | **SongList**\\ |
+ | //'' | ||
- | hideif 'nofilter', 'empty', or '' | + | //'' |
- | hidewidget List | + | //'' |
- | shrinkonhide String of 'h','v' or '_', | + | //'' |
- | mode playlist or '' | + | //'' |
+ | activate=play& | ||
- | activate play, queue, playlist, addplay or insertplay. Action | + | //'' |
- | activateX where X is a mouse button number, defines the action used when the button X is double-clicked | + | //'' |
- | headers off or '' | + | //'' |
- | songypad change | + | //'' |
- | no_typeahead if true(=1) disable automatic searching when a letter/ | + | **TabbedLists** Songlists in tabs, can contain playlist, static lists and the queue. Experimental feature : layouts of type ' |
- | TabbedLists Songlists in tabs, can contain playlist, static lists and the queue. Experimental feature : layouts of type ' | + | **SongTree** Very customizable Songlist replacement. Some things are still not implemented : drag and dropping columns, playlist, queue or static list mode, moving songs using the EditListButtons widget (arrows button) and type-ahead search. See [[customization: |
- | + | ||
- | SongTree Very customizable Songlist replacement. Some things are still not implemented : drag and dropping columns, playlist, queue or static list mode, moving songs using the EditListButtons widget (arrows button) and type-ahead search. See this wiki page for some documentation. These options works : activate activateX headers songxpad songypad | + | |
===widgets related to songlists=== | ===widgets related to songlists=== | ||
Line 482: | Line 461: | ||
- | AABox Artist or Album box (name, picture and stats of selected album/ | + | '' |
+ | //'' | ||
- | aa artist or album | + | '' |
+ | //'' | ||
- | EditListButtons buttons to remove/move the selected song(s) in the songlist and clear the list | + | '' |
- | small : if true(=1) hide the label of the remove and clear buttons | + | '' |
- | FBox advanced | + | '' |
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
- | FLock Lock/ | + | '' |
- | FPane Filter pane | + | '' |
- | nb filter#, filter number to set, the artist/ | + | '' |
- | hide hide bottom buttons if true(=1) | + | '' |
- | pages list of pages separated by '|', | + | '' |
- | activate play or queue or addplay | + | '' |
- | + | //'' | |
- | searchbox if true(=1) add a search box to artist/ | + | //'' |
- | + | ||
- | no_typeahead if true(=1) disable automatic searching when a letter/ | + | |
- | + | ||
- | PlayFilter Button to Play current songlist filter | + | |
- | + | ||
- | QueueFilter Button to Enqueue current songlist filter | + | |
- | Refresh Refilter songlist | + | |
- | + | ||
- | ResetFilter Reset songlist filter | + | |
- | + | ||
- | SimpleSearch simple search entry, search title/ | + | |
- | + | ||
- | Total Total number/ | + | |
- | + | ||
- | size change text size, value can be xx-small, x-small, small, medium, large, x-large, xx-large, or see this page | + | |
- | + | ||
- | format short or long (default) | + | |
===MenuItem widgets (can only be put in a MB/SM)=== | ===MenuItem widgets (can only be put in a MB/SM)=== | ||
Line 527: | Line 497: | ||
- | HistItem Filter history (set filter#1) | + | '' |
- | + | ||
- | + | ||
- | + | ||
- | LSortItem Sort order for songlist | + | |
- | + | ||
- | MainMenuItem main menu | + | |
- | + | ||
- | MenuItem Custom menu item | + | |
- | + | ||
- | label text | + | |
- | + | ||
- | icon name of the icon (same as above) | + | |
- | command gmusicbrowser command to execute | + | '' |
- | togglewidget list of widgets/ | + | '' |
- | resize only with the togglewidget option, see the resize option of the TogButton | + | '' |
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
+ | //'' | ||
PFilterItem playing filter menu | PFilterItem playing filter menu |