summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <DaveDavenport@users.noreply.github.com>2017-09-11 09:39:15 +0200
committerGitHub <noreply@github.com>2017-09-11 09:39:15 +0200
commite9c31ed783bf9db9a3bbfd729e97539154c06e8b (patch)
tree5546224a5c129c28492f43c8413bc331efe2da16
parent65eb9b7505253df8df9737289ba13c4ee83bb4b7 (diff)
parentc0cddee3ffc8be70beb1667003cbfad95ced87c0 (diff)
Merge pull request #667 from DaveDavenport/bendemcss
Bendemcss
-rw-r--r--.travis.yml3
-rw-r--r--doc/default_theme.rasi145
-rw-r--r--doc/old-theme-convert-output.rasi149
-rw-r--r--doc/rofi-theme.5120
-rw-r--r--doc/rofi-theme.5.markdown109
-rw-r--r--include/default-theme.h108
-rw-r--r--include/rofi-types.h2
-rw-r--r--include/theme.h26
-rw-r--r--include/widgets/box.h3
-rw-r--r--include/widgets/container.h3
-rw-r--r--include/widgets/listview.h3
-rw-r--r--include/widgets/scrollbar.h3
-rw-r--r--include/widgets/textbox.h3
-rw-r--r--include/widgets/widget-internal.h5
-rw-r--r--lexer/theme-lexer.l11
-rw-r--r--lexer/theme-parser.y53
-rwxr-xr-xscript/rofi-theme-selector15
-rw-r--r--source/rofi-types.c2
-rw-r--r--source/theme.c161
-rw-r--r--source/view.c47
-rw-r--r--source/widgets/box.c7
-rw-r--r--source/widgets/container.c7
-rw-r--r--source/widgets/listview.c20
-rw-r--r--source/widgets/scrollbar.c7
-rw-r--r--source/widgets/textbox.c51
-rw-r--r--source/widgets/widget.c30
-rw-r--r--test/box-test.c19
-rw-r--r--test/scrollbar-test.c2
-rw-r--r--test/textbox-test.c2
-rw-r--r--test/theme-parser-test.c6
-rw-r--r--themes/Adapta-Nokto.rasi190
-rw-r--r--themes/Arc.rasi162
-rw-r--r--themes/DarkBlue.rasi165
-rw-r--r--themes/Indego.rasi162
-rw-r--r--themes/Monokai.rasi162
-rw-r--r--themes/Paper.rasi162
-rw-r--r--themes/Pop-Dark.rasi100
-rw-r--r--themes/android_notification.rasi189
-rw-r--r--themes/arthur.rasi148
-rw-r--r--themes/blue.rasi190
-rw-r--r--themes/c64.rasi189
-rw-r--r--themes/dmenu.rasi24
-rw-r--r--themes/glue_pro_blue.rasi189
-rw-r--r--themes/gruvbox-dark-hard.rasi196
-rw-r--r--themes/gruvbox-dark-soft.rasi196
-rw-r--r--themes/gruvbox-dark.rasi196
-rw-r--r--themes/gruvbox-light-hard.rasi196
-rw-r--r--themes/gruvbox-light-soft.rasi196
-rw-r--r--themes/gruvbox-light.rasi196
-rw-r--r--themes/lb.rasi161
-rw-r--r--themes/paper-float.rasi102
-rw-r--r--themes/purple.rasi162
-rw-r--r--themes/sidebar.rasi84
-rw-r--r--themes/solarized.rasi189
-rw-r--r--themes/solarized_alternate.rasi189
55 files changed, 3076 insertions, 2141 deletions
diff --git a/.travis.yml b/.travis.yml
index 8d00c618..0f04e028 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -59,7 +59,8 @@ before_install:
# TODO: We install xkbcommon here, until Travis use an up-to-date enough Ubuntu
install:
- sudo apt-get install -y --force-yes libxkbcommon-dev libxkbcommon-x11-dev flex/trusty-backports libfl-dev/trusty-backports
- - pip3 install meson==0.41.2
+ - sudo apt-get install -y --force-yes python3-pip
+ - pip3 install --user meson==0.41.2
- wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip
- unzip ninja-linux.zip
- export PATH=$(pwd):$PATH
diff --git a/doc/default_theme.rasi b/doc/default_theme.rasi
index 76db6451..d75d4f57 100644
--- a/doc/default_theme.rasi
+++ b/doc/default_theme.rasi
@@ -1,124 +1,127 @@
* {
- foreground: rgba ( 0, 43, 54, 100 % );
selected-normal-foreground: @lightbg;
+ foreground: rgba ( 0, 43, 54, 100 % );
normal-foreground: @foreground;
- red: rgba ( 220, 50, 47, 100 % );
alternate-normal-background: @lightbg;
- blue: rgba ( 38, 139, 210, 100 % );
+ red: rgba ( 220, 50, 47, 100 % );
selected-urgent-foreground: @background;
+ blue: rgba ( 38, 139, 210, 100 % );
urgent-foreground: @red;
alternate-urgent-background: @lightbg;
active-foreground: @blue;
lightbg: rgba ( 238, 232, 213, 100 % );
selected-active-foreground: @background;
- alternate-normal-foreground: @foreground;
alternate-active-background: @lightbg;
- bordercolor: @foreground;
background: rgba ( 253, 246, 227, 100 % );
+ alternate-normal-foreground: @foreground;
normal-background: @background;
lightfg: rgba ( 88, 104, 117, 100 % );
selected-normal-background: @lightfg;
- separatorcolor: @foreground;
+ border-color: @foreground;
spacing: 2;
+ separatorcolor: @foreground;
urgent-background: @background;
- alternate-urgent-foreground: @red;
selected-urgent-background: @red;
+ alternate-urgent-foreground: @red;
+ background-color: rgba ( 0, 0, 0, 0 % );
alternate-active-foreground: @blue;
- selected-active-background: @blue;
active-background: @background;
+ selected-active-background: @blue;
}
#window {
- border: 1;
- foreground: @foreground;
- background: rgba ( 0, 0, 0, 0 % );
- padding: 5;
-}
-#window.box {
- foreground: @bordercolor;
- background: @background;
+ background-color: @background;
+ border: 1;
+ padding: 5;
}
-#window.mainbox {
+#mainbox {
border: 0;
padding: 0;
}
-#window.mainbox.message.box {
- border: 1px dash 0px 0px ;
- foreground: @separatorcolor;
- padding: 2px 0px 0px ;
+#message {
+ border: 1px dash 0px 0px ;
+ border-color: @separatorcolor;
+ padding: 1px ;
}
-#window.mainbox.message.normal {
- foreground: @foreground;
+#textbox {
+ text-color: @foreground;
}
-#window.mainbox.listview {
+#listview {
fixed-height: 0;
border: 2px dash 0px 0px ;
+ border-color: @separatorcolor;
+ spacing: 2px ;
+ scrollbar: true;
padding: 2px 0px 0px ;
}
-#window.mainbox.listview.box {
- foreground: @separatorcolor;
- spacing: 2px ;
- scrollbar: true;
-}
-#window.mainbox.listview.element {
+#element {
border: 0;
padding: 1px ;
}
-#window.mainbox.listview.element.normal.normal {
- foreground: @normal-foreground;
- background: @normal-background;
+#element.normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
}
-#window.mainbox.listview.element.normal.urgent {
- foreground: @urgent-foreground;
- background: @urgent-background;
+#element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
}
-#window.mainbox.listview.element.normal.active {
- foreground: @active-foreground;
- background: @active-background;
+#element.normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
}
-#window.mainbox.listview.element.selected.normal {
- foreground: @selected-normal-foreground;
- background: @selected-normal-background;
+#element.selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
}
-#window.mainbox.listview.element.selected.urgent {
- foreground: @selected-urgent-foreground;
- background: @selected-urgent-background;
+#element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
}
-#window.mainbox.listview.element.selected.active {
- foreground: @selected-active-foreground;
- background: @selected-active-background;
+#element.selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
}
-#window.mainbox.listview.element.alternate.normal {
- foreground: @alternate-normal-foreground;
- background: @alternate-normal-background;
+#element.alternate.normal {
+ background-color: @alternate-normal-background;
+ text-color: @alternate-normal-foreground;
}
-#window.mainbox.listview.element.alternate.urgent {
- foreground: @alternate-urgent-foreground;
- background: @alternate-urgent-background;
+#element.alternate.urgent {
+ background-color: @alternate-urgent-background;
+ text-color: @alternate-urgent-foreground;
}
-#window.mainbox.listview.element.alternate.active {
- foreground: @alternate-active-foreground;
- background: @alternate-active-background;
+#element.alternate.active {
+ background-color: @alternate-active-background;
+ text-color: @alternate-active-foreground;
}
-#window.mainbox.listview.scrollbar {
+#scrollbar {
width: 4px ;
border: 0;
+ handle-color: @normal-foreground;
handle-width: 8px ;
padding: 0;
}
-#window.mainbox.sidebar.box {
- border: 2px dash 0px 0px ;
- foreground: @separatorcolor;
+#sidebar {
+ border: 2px dash 0px 0px ;
+ border-color: @separatorcolor;
}
-#window.mainbox.sidebar.button.selected {
- foreground: @selected-normal-foreground;
- background: @selected-normal-background;
+#button.selected {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
}
-#window.mainbox.inputbar {
- text: @normal-foreground;
- spacing: 0;
- padding: 1px ;
+#inputbar {
+ spacing: 0;
+ text-color: @normal-foreground;
+ padding: 1px ;
+}
+#case-indicator {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+#entry {
+ spacing: 0;
+ text-color: @normal-foreground;
}
-#window.mainbox.inputbar.box {
- border: 0px ;
- padding: 0px ;
+#prompt {
+ spacing: 0;
+ text-color: @normal-foreground;
}
diff --git a/doc/old-theme-convert-output.rasi b/doc/old-theme-convert-output.rasi
index afab9eab..ddc11fa5 100644
--- a/doc/old-theme-convert-output.rasi
+++ b/doc/old-theme-convert-output.rasi
@@ -1,125 +1,128 @@
* {
- foreground: rgba ( 219, 223, 188, 100 % );
selected-normal-foreground: rgba ( 2, 20, 63, 100 % );
+ foreground: rgba ( 219, 223, 188, 100 % );
normal-foreground: @foreground;
- red: rgba ( 220, 50, 47, 100 % );
alternate-normal-background: rgba ( 0, 0, 0, 0 % );
- blue: rgba ( 38, 139, 210, 100 % );
+ red: rgba ( 220, 50, 47, 100 % );
selected-urgent-foreground: rgba ( 2, 20, 63, 100 % );
+ blue: rgba ( 38, 139, 210, 100 % );
urgent-foreground: rgba ( 255, 129, 255, 100 % );
alternate-urgent-background: rgba ( 0, 0, 0, 0 % );
active-foreground: rgba ( 138, 196, 255, 100 % );
lightbg: rgba ( 238, 232, 213, 100 % );
selected-active-foreground: rgba ( 2, 20, 63, 100 % );
- alternate-normal-foreground: @foreground;
alternate-active-background: rgba ( 0, 0, 0, 0 % );
- bordercolor: rgba ( 219, 223, 188, 100 % );
background: rgba ( 0, 0, 33, 87 % );
+ bordercolor: rgba ( 219, 223, 188, 100 % );
+ alternate-normal-foreground: @foreground;
normal-background: rgba ( 0, 0, 0, 0 % );
lightfg: rgba ( 88, 104, 117, 100 % );
selected-normal-background: rgba ( 219, 223, 188, 100 % );
- separatorcolor: rgba ( 219, 223, 188, 100 % );
+ border-color: @foreground;
spacing: 2;
+ separatorcolor: rgba ( 219, 223, 188, 100 % );
urgent-background: rgba ( 0, 0, 0, 0 % );
- alternate-urgent-foreground: @urgent-foreground;
selected-urgent-background: rgba ( 255, 129, 127, 100 % );
+ alternate-urgent-foreground: @urgent-foreground;
+ background-color: rgba ( 0, 0, 0, 0 % );
alternate-active-foreground: @active-foreground;
- selected-active-background: rgba ( 138, 196, 255, 100 % );
active-background: rgba ( 0, 0, 0, 0 % );
+ selected-active-background: rgba ( 138, 196, 255, 100 % );
}
#window {
- border: 1;
- foreground: @foreground;
- background: rgba ( 0, 0, 0, 0 % );
- padding: 5;
+ background-color: @background;
+ border: 1;
+ padding: 5;
}
-#window.box {
- foreground: @bordercolor;
- background: @background;
-}
-#window.mainbox {
+#mainbox {
border: 0;
padding: 0;
}
-#window.mainbox.message.box {
- border: 2px 0px 0px ;
- foreground: @separatorcolor;
- padding: 2px 0px 0px ;
+#message {
+ border: 2px 0px 0px ;
+ border-color: @separatorcolor;
+ padding: 1px ;
}
-#window.mainbox.message.normal {
- foreground: @foreground;
+#textbox {
+ text-color: @foreground;
}
-#window.mainbox.listview {
+#listview {
fixed-height: 0;
- border: 2px dash 0px 0px ;
+ border: 2px 0px 0px ;
+ border-color: @separatorcolor;
+ spacing: 2px ;
+ scrollbar: true;
padding: 2px 0px 0px ;
}
-#window.mainbox.listview.box {
- border: 2px 0px 0px ;
- foreground: @separatorcolor;
- spacing: 2px ;
- scrollbar: true;
-}
-#window.mainbox.listview.element {
+#element {
border: 0;
padding: 1px ;
}
-#window.mainbox.listview.element.normal.normal {
- foreground: @normal-foreground;
- background: @normal-background;
+#element.normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
}
-#window.mainbox.listview.element.normal.urgent {
- foreground: @urgent-foreground;
- background: @urgent-background;
+#element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
}
-#window.mainbox.listview.element.normal.active {
- foreground: @active-foreground;
- background: @active-background;
+#element.normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
}
-#window.mainbox.listview.element.selected.normal {
- foreground: @selected-normal-foreground;
- background: @selected-normal-background;
+#element.selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
}
-#window.mainbox.listview.element.selected.urgent {
- foreground: @selected-urgent-foreground;
- background: @selected-urgent-background;
+#element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
}
-#window.mainbox.listview.element.selected.active {
- foreground: @selected-active-foreground;
- background: @selected-active-background;
+#element.selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
}
-#window.mainbox.listview.element.alternate.normal {
- foreground: @alternate-normal-foreground;
- background: @alternate-normal-background;
+#element.alternate.normal {
+ background-color: @alternate-normal-background;
+ text-color: @alternate-normal-foreground;
}
-#window.mainbox.listview.element.alternate.urgent {
- foreground: @alternate-urgent-foreground;
- background: @alternate-urgent-background;
+#element.alternate.urgent {
+ background-color: @alternate-urgent-background;
+ text-color: @alternate-urgent-foreground;
}
-#window.mainbox.listview.element.alternate.active {
- foreground: @alternate-active-foreground;
- background: @alternate-active-background;
+#element.alternate.active {
+ background-color: @alternate-active-background;
+ text-color: @alternate-active-foreground;
}
-#window.mainbox.listview.scrollbar {
+#scrollbar {
width: 4px ;
border: 0;
+ handle-color: @normal-foreground;
handle-width: 8px ;
padding: 0;
}
-#window.mainbox.sidebar.box {
- border: 2px 0px 0px ;
- foreground: @separatorcolor;
+#sidebar {
+ border: 2px 0px 0px ;
+ border-color: @separatorcolor;
}
-#window.mainbox.sidebar.button.selected {
- foreground: @selected-normal-foreground;
- background: @selected-normal-background;
+#button.selected {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
}
-#window.mainbox.inputbar {
- text: @normal-foreground;
- spacing: 0;
- padding: 1px ;
+#inputbar {
+ spacing: 0;
+ text-color: @normal-foreground;
+ padding: 1px ;
+}
+#case-indicator {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+#entry {
+ spacing: 0;
+ text-color: @normal-foreground;
}
-#window.mainbox.inputbar.box {
- border: 0px ;
- padding: 0px ;
+#prompt {
+ spacing: 0;
+ text-color: @normal-foreground;
}
diff --git a/doc/rofi-theme.5 b/doc/rofi-theme.5
index a5acbc18..b184f5dd 100644
--- a/doc/rofi-theme.5
+++ b/doc/rofi-theme.5
@@ -268,6 +268,9 @@ an orientation
.IP "\(bu" 4
a list of keywords
.
+.IP "\(bu" 4
+Inherit
+.
.IP "" 0
.
.P
@@ -493,6 +496,9 @@ Format: \fB{Integer}px\fR
Format: \fB{Real}em\fR
.
.IP "\(bu" 4
+Format: \fB{Real}ch\fR
+.
+.IP "\(bu" 4
Format: \fB{Real}%\fR
.
.IP "" 0
@@ -504,7 +510,10 @@ A distance can be specified in 3 different units:
\fBpx\fR: Screen pixels\.
.
.IP "\(bu" 4
-\fBem\fR: Relative to text width\.
+\fBem\fR: Relative to text height\.
+.
+.IP "\(bu" 4
+\fBch\fR: Relative to width of a single number\.
.
.IP "\(bu" 4
\fB%\fR: Percentage of the \fBmonitor\fR size\.
@@ -682,6 +691,28 @@ Format: \fB[ keyword, keyword ]\fR
.P
A list starts with a \'[\' and ends with a \']\'\. The entries in the list are comma\-separated\. The \fBkeyword\fR in the list refers to an widget name\.
.
+.SH "Inherit"
+.
+.IP "\(bu" 4
+Format: \fBinherit\fR
+.
+.IP "" 0
+.
+.P
+Inherits the property from its parent widget\.
+.
+.IP "" 4
+.
+.nf
+
+#mainbox {
+ border\-color: inherit;
+}
+.
+.fi
+.
+.IP "" 0
+.
.SH "ELEMENTS PATHS"
Element paths exists of two parts, the first part refers to the actual widget by name\. Some widgets have an extra state\.
.
@@ -692,7 +723,7 @@ For example:
.
.nf
-#window mainbox listview element \.selected {
+#element selected {
}
.
.fi
@@ -700,7 +731,7 @@ For example:
.IP "" 0
.
.P
-Here \fB#window mainbox listview element\fR is the name of the widget, \fBselected\fR is the state of the widget\.
+Here \fB#element selected\fR is the name of the widget, \fBselected\fR is the state of the widget\.
.
.P
The difference between dots and spaces is purely cosmetic\. These are all the same:
@@ -709,11 +740,11 @@ The difference between dots and spaces is purely cosmetic\. These are all the sa
.
.nf
-#window mainbox listview element \.selected {
-}
-#window\.mainbox\.listview\.element\.selected {
+#element \.selected {
+
+#element\.selected {
}
-#window mainbox listview element selected {
+#element selected {
}
.
.fi
@@ -728,29 +759,23 @@ The current widgets available in \fBrofi\fR:
.IP "\(bu" 4
.
.IP "\(bu" 4
-\fB#window\.box\fR: the container holding the window
+\fB#overlay\fR: the overlay widget\.
.
.IP "\(bu" 4
-\fB#window\.overlay\fR: the overlay widget
.
.IP "\(bu" 4
.
.IP "\(bu" 4
-\fB#window\.mainbox\.box\fR: the main vertical @box
+\fB#box\fR: the horizontal @box packing the widgets
.
.IP "\(bu" 4
+\fB#case\-indicator\fR: the case/sort indicator @textbox
.
.IP "\(bu" 4
-\fB#window\.mainbox\.inputbar\.box\fR: the horizontal @box packing the widgets
+\fB#prompt\fR: the prompt @textbox
.
.IP "\(bu" 4
-\fB#window\.mainbox\.inputbar\.case\-indicator\fR: the case/sort indicator @textbox
-.
-.IP "\(bu" 4
-\fB#window\.mainbox\.inputbar\.prompt\fR: the prompt @textbox
-.
-.IP "\(bu" 4
-\fB#window\.mainbox\.inputbar\.entry\fR: the main entry @textbox
+\fB#entry\fR: the main entry @textbox
.
.IP "" 0
@@ -758,13 +783,10 @@ The current widgets available in \fBrofi\fR:
.IP "\(bu" 4
.
.IP "\(bu" 4
-\fB#window\.mainbox\.listview\.box\fR: the listview container
+\fB#scrollbar\fR: the listview scrollbar
.
.IP "\(bu" 4
-\fB#window\.mainbox\.listview\.scrollbar\fR: the listview scrollbar
-.
-.IP "\(bu" 4
-\fB#window\.mainbox\.listview\.element\fR: the entries in the listview
+\fB#element\fR: the entries in the listview
.
.IP "" 0
@@ -772,10 +794,7 @@ The current widgets available in \fBrofi\fR:
.IP "\(bu" 4
.
.IP "\(bu" 4
-\fB#window\.mainbox\.sidebar\.box\fR: the main horizontal @box packing the buttons
-.
-.IP "\(bu" 4
-\fB#window\.mainbox\.sidebar\.button\fR: the buttons @textbox for each mode
+\fB#button\fR: the buttons @textbox for each mode
.
.IP "" 0
@@ -783,10 +802,7 @@ The current widgets available in \fBrofi\fR:
.IP "\(bu" 4
.
.IP "\(bu" 4
-\fB#window\.mainbox\.message\.textbox\fR: the message textbox
-.
-.IP "\(bu" 4
-\fB#window\.mainbox\.message\.box\fR: the box containing the message
+\fB#textbox\fR: the message textbox
.
.IP "" 0
@@ -812,10 +828,10 @@ Optional flag(s) indicating state of the widget, used for theming\.
These are appended after the name or class of the widget\.
.
.SS "Example:"
-\fB#window\.mainbox\.sidebar\.button selected\.normal { }\fR
+\fB#button selected\.normal { }\fR
.
.P
-\fB#window\.mainbox\.listview\.element selected\.urgent { }\fR
+\fB#element selected\.urgent { }\fR
.
.P
Currently only the entrybox and scrollbar have states:
@@ -839,7 +855,7 @@ Example:
.
.nf
-#name\.to\.textbox selected\.active {
+#nametotextbox selected\.active {
background: #003642;
foreground: #008ed4;
}
@@ -913,7 +929,7 @@ The following properties are currently supported:
.SS "scrollbar:"
.
.IP "\(bu" 4
-\fBforeground\fR: color
+\fBbackground\-color\fR: color
.
.IP "\(bu" 4
\fBhandle\-width\fR: distance
@@ -922,7 +938,7 @@ The following properties are currently supported:
\fBhandle\-color\fR: color
.
.IP "\(bu" 4
-\fBforeground\fR: color
+\fBborder\-color\fR: color
.
.IP "" 0
.
@@ -1014,24 +1030,27 @@ The current layout of \fBrofi\fR is structured as follows:
|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|
| #window {BOX:vertical} |
| |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| |
-| | #window\.mainbox {BOX:vertical} | |
+| | #mainbox {BOX:vertical} | |
| | |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| | |
-| | | #window\.mainbox\.inputbar {BOX:horizontal} | | |
-| | | |\-\-\-\-\-\-\-\-| |\-\-\