Rev 4789 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3017 | leency | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
||
7119 | dunkaist | 3 | ;; Copyright (C) KolibriOS team 2004-2017. All rights reserved. ;; |
3017 | leency | 4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
||
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
7 | |||
8 | ;============================================================================ |
||
9 | ; This file should be used to generate skins of new standard |
||
10 | ;============================================================================ |
||
11 | ; skin file structure: |
||
12 | ;---------------------------------------------------------------------------- |
||
13 | ; header: |
||
14 | ; dd 'SKIN' |
||
15 | ; dd = version (1 for now) |
||
16 | ; dd @ params |
||
17 | ; dd @ buttons |
||
18 | ; dd @ bitmaps |
||
19 | ; ... |
||
20 | ;---------------------------------------------------------------------------- |
||
21 | ; NOTE: order of sections listed below is insignificant |
||
22 | ; since they're identified by pointer in above header |
||
23 | ;---------------------------------------------------------------------------- |
||
24 | ; ... |
||
25 | ; params: |
||
26 | ; dd = skin height |
||
27 | ; dw = right margin |
||
28 | ; dw = left margin |
||
29 | ; dw = bottom margin |
||
30 | ; dw = top margin |
||
31 | ; dd = inner line color |
||
32 | ; dd = outer line color |
||
33 | ; dd = frame color |
||
34 | ; dd = dtp file size |
||
35 | ; ?? = dtp file itself |
||
36 | ; ... |
||
37 | ;---------------------------------------------------------------------------- |
||
38 | ; ... |
||
39 | ; buttons: |
||
40 | ; dd = button type (1 = close, 2 = minimize) |
||
41 | ; dw = left button coord (could be negative) |
||
42 | ; dw = top button coord (could be negative) |
||
43 | ; dw = button width |
||
44 | ; dw = button height |
||
45 | ; ... etc for all buttons |
||
46 | ; dd = 0 (end of buttons list) |
||
47 | ; ... |
||
48 | ;---------------------------------------------------------------------------- |
||
49 | ; ... |
||
50 | ; bitmaps: |
||
51 | ; dw = bitmap kind (1 = left, 2 = oper, 3 = base) |
||
52 | ; dw = bitmap type (1 = active, 0 = inactive) |
||
53 | ; dd @ bitmap |
||
54 | ; ... etc for all bitmaps |
||
55 | ; dd 0 (end of bitmaps list) |
||
56 | ; ... |
||
57 | ;---------------------------------------------------------------------------- |
||
58 | ; ... |
||
59 | ; bitmap: |
||
60 | ; dd = bitmap width |
||
61 | ; dd = bitmap height |
||
62 | ; ?? = raw bitmap data |
||
63 | ; ... etc for all bitmaps |
||
64 | ; ... |
||
65 | ;============================================================================ |
||
66 | |||
67 | dd 'SKIN',1,__params__,__buttons__,__bitmaps__ |
||
68 | |||
69 | struc BITMAPFILEHEADER { |
||
70 | .bfType dw ? ; WORD |
||
71 | .bfSize dd ? ; DWORD |
||
72 | .bfReserved1 dw ? ; WORD |
||
73 | .bfReserved2 dw ? ; WORD |
||
74 | .bfOffBits dd ? ; DWORD |
||
75 | } |
||
76 | |||
77 | struc BITMAPINFOHEADER { |
||
78 | .biSize dd ? ; DWORD |
||
79 | .biWidth dd ? ; LONG |
||
80 | .biHeight dd ? ; LONG |
||
81 | .biPlanes dw ? ; WORD |
||
82 | .biBitCount dw ? ; WORD |
||
83 | .biCompression dd ? ; DWORD |
||
84 | .biSizeImage dd ? ; DWORD |
||
85 | .biXPelsPerMeter dd ? ; LONG |
||
86 | .biYPelsPerMeter dd ? ; LONG |
||
87 | .biClrUsed dd ? ; DWORD |
||
88 | .biClrImportant dd ? ; DWORD |
||
89 | } |
||
90 | |||
91 | struc _bmp { |
||
92 | .h BITMAPFILEHEADER |
||
93 | .i BITMAPINFOHEADER |
||
94 | } |
||
95 | virtual at 0 |
||
96 | _bmp _bmp |
||
97 | end virtual |
||
98 | |||
99 | macro BITMAP _name*,_fname* |
||
100 | { |
||
101 | local w,h,a,r,g,b |
||
102 | virtual at 0 |
||
7119 | dunkaist | 103 | _file equ _#_name |
104 | _file:: |
||
3017 | leency | 105 | file _fname |
106 | end virtual |
||
7119 | dunkaist | 107 | load w dword from _file:_bmp.i.biWidth |
108 | load h dword from _file:_bmp.i.biHeight |
||
109 | load hsize dword from _file:_bmp.h.bfOffBits |
||
3017 | leency | 110 | align 4 |
111 | label _name |
||
112 | .width = w |
||
113 | .height = h |
||
114 | dd w,h |
||
7119 | dunkaist | 115 | a=hsize+(w*3+(w mod 4))*(h-1) |
3017 | leency | 116 | size = $ |
117 | repeat h |
||
118 | repeat w |
||
7119 | dunkaist | 119 | load r from _file:a+0 |
120 | load g from _file:a+1 |
||
121 | load b from _file:a+2 |
||
3017 | leency | 122 | db r,g,b |
123 | a=a+3 |
||
124 | end repeat |
||
125 | a=a-w*3*2-(w mod 4) |
||
126 | end repeat |
||
127 | } |
||
128 | |||
129 | macro define_colors name,[col,val] |
||
130 | { |
||
131 | common |
||
132 | local a,b,c |
||
133 | forward |
||
134 | match =binner,col \{ a = val \} |
||
135 | match =bouter,col \{ b = val \} |
||
136 | match =bframe,col \{ c = val \} |
||
137 | common |
||
138 | name equ a,b,c |
||
139 | } |
||
140 | |||
141 | macro SKIN_PARAMS [a] |
||
142 | { |
||
143 | common |
||
7119 | dunkaist | 144 | local _height,_margins,_colors,_colors_1,_dtp |
3017 | leency | 145 | __params__: |
146 | forward |
||
147 | match qq == ww,a |
||
148 | \{ |
||
149 | match =height,qq \\{ _height = ww \\} |
||
150 | match =margins,qq \\{ |
||
151 | match [q1:q2:q3:q4],ww |
||
152 | \\\{ |
||
153 | _margins equ q3,q1,q4,q2 |
||
154 | \\\} |
||
155 | \\} |
||
156 | match =colors =active,qq |
||
157 | \\{ |
||
158 | match [q10==q11:q20==q21:q30==q31],ww |
||
159 | \\\{ |
||
160 | define_colors _colors,q10,q11,q20,q21,q30,q31 |
||
161 | \\\} |
||
162 | \\} |
||
163 | match =colors =inactive,qq |
||
164 | \\{ |
||
165 | match [q10==q11:q20==q21:q30==q31],ww |
||
166 | \\\{ |
||
167 | define_colors _colors_1,q10,q11,q20,q21,q30,q31 |
||
168 | \\\} |
||
169 | \\} |
||
170 | match =dtp,qq \\{ _dtp equ ww \\} |
||
171 | \} |
||
172 | common |
||
173 | dd _height |
||
174 | dw _margins |
||
175 | dd _colors,_colors_1 |
||
7119 | dunkaist | 176 | dd @f - $ - 4 |
3017 | leency | 177 | file _dtp |
7119 | dunkaist | 178 | @@: |
3017 | leency | 179 | } |
180 | |||
181 | macro SKIN_BUTTONS [a] |
||
182 | { |
||
183 | common |
||
184 | local btn |
||
185 | __buttons__: |
||
186 | forward |
||
187 | match qq == ww,a |
||
188 | \{ |
||
189 | btn = 0 |
||
190 | match =close,qq \\{ btn = 1 \\} |
||
191 | match =minimize,qq \\{ btn = 2 \\} |
||
192 | match [q1:q2][q3:q4],ww |
||
193 | \\{ |
||
194 | if btn <> 0 |
||
195 | dd btn |
||
196 | dw q1,q2,q3,q4 |
||
197 | end if |
||
198 | \\} |
||
199 | \} |
||
200 | common |
||
201 | dd 0 |
||
202 | } |
||
203 | |||
204 | macro SKIN_BITMAPS [a] |
||
205 | { |
||
206 | common |
||
207 | local bmp |
||
208 | __bitmaps__: |
||
209 | forward |
||
210 | match qq == ww,a |
||
211 | \{ |
||
212 | bmp=-1 |
||
213 | match qqq =active,qq \\{ bmp = 1 \\} |
||
214 | match qqq =inactive,qq \\{ bmp = 0 \\} |
||
215 | match =left qqq,qq |
||
216 | \\{ |
||
217 | if bmp >= 0 |
||
218 | dw 1,bmp |
||
219 | dd ww |
||
220 | end if |
||
221 | \\} |
||
222 | match =oper qqq,qq |
||
223 | \\{ |
||
224 | if bmp >= 0 |
||
225 | dw 2,bmp |
||
226 | dd ww |
||
227 | end if |
||
228 | \\} |
||
229 | match =base qqq,qq |
||
230 | \\{ |
||
231 | if bmp >= 0 |
||
232 | dw 3,bmp |
||
233 | dd ww |
||
234 | end if |
||
235 | \\} |
||
236 | \} |
||
237 | common |
||
238 | dd 0 |
||
7119 | dunkaist | 239 | }> |