/* buttons grid */
/*
With this system rows can easily have 1 to 4 buttons
or create perfectly aligned 1 to 4 columns layouts
< - - - PANEL_XMAX - - - >|
< - - - PANELX - - - >
.-- XSPACE side padding --.
| |
|.- All CLM1 |
|| X2CLM2 -. X3CLM3 |
|| | | |
+v|-------------|----|-------v+
<-/ | | |
| [ But1 ] | 1 button of BUTW1 size
<- -/ | |
| [ But1 ]=[ But2 ] | 2 buttons of BUTW2 size
<- -/ |
v | [ But1 ]=[ But2 ]#[ But3 ] | 3 buttons of BUTW3 size
| | | v
^ | [But1]#[But2]=[But3]#[But4] | | 4 buttons of BUTW3 size
| <- ^ ^ -\ | ^
| +-------|------|-------|------+ |
| | | | |
'- YSPACE '---.--' '- X4CLM4 '- BUTH
(row to row) |
Padding based in XSPACE (= normal, # +1 pix to make all match)
Calls like uiBlockBeginAlign/uiBlockEndAlign will make the button
to button space disappear if needed, forming a compact group, in some themes
TODO: Figure relations, meaning and usage of
PANELY, PANEL_YMAX, PANELW, PANELH
*/
#define PANELX 320
#define PANELY 0
#define PANELW 318
#define PANELH 204
#define XSPACE 10
#define YSPACE 6
#define PANEL_XMAX (PANELX - XSPACE)
#define PANEL_YMAX 210
/* The widths follow 300, 150, 100 and 75, which is nice (discarding spacing)
sadly spacers and integer rounding make 3 and 4 column complex cases
so they better be manually set and checked following the comments */
#define BUTW1 (PANELX - (2 * XSPACE))
#define BUTW2 ((BUTW1 / 2) - XSPACE)
/* Manual calc so BUTW3 + XSPACE + BUTW3 + (XSPACE+1) + BUTW3 = BUTW1 */
/* Could be something like ((BUTW1/3)-(1+(2*XSPACE)) if starting with 300 */
#define BUTW3 93
/* This time BUTW4 + (XSPACE+1) + BUTW4 + XSPACE + BUTW4 + (XSPACE+1) + BUTW4 =
BUTW1 */
/* That would be ((BUTW1/4)-(2+(3*XSPACE)) if starting with 300 */
#define BUTW4 67
/* NOTE: Again, BUTW3 and BUTW4 values and formulas include manual tuning,
retune if base BUTW1 stops being 300 pixels. You have been warned */
#define ICONBUTW 20
#define BUTH 22
/* X axis start positions of column presets */
/* First number declares how many columns total */
/* Second number declares the exact column it controls */
/* So X3CLM2 means X start position of 2nd button for a row of 3 buttons */
#define X1CLM1 XSPACE
#define X2CLM1 X1CLM1
#define X2CLM2 (X2CLM1 + BUTW2 + XSPACE)
#define X3CLM1 X1CLM1
#define X3CLM2 (X3CLM1 + BUTW3 + XSPACE)
/* By substracting from end we already get the extra 1 pix */
#define X3CLM3 (PANEL_XMAX - BUTW3)
#define X4CLM1 X1CLM1
/* Extra pix to reach the BUTW1 total size */
#define X4CLM2 (X4CLM1 + BUTW4 + XSPACE + 1)
#define X4CLM3 (X4CLM2 + BUTW4 + XSPACE)
/* By substracting from end we already get the other extra 1 pix */
#define X4CLM4 (PANEL_XMAX - BUTW4)
/* end buttons grid */