Subversion Repositories Kolibri OS

Rev

Rev 4231 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4231 eAndrew 1
use32
2
    org     0x0
3
;-------------------------------------------------------------------------------
4
    db	    "MENUET01"
5
    dd	    1, @code, @data, @mem, @stack, 0, 0
6
;-------------------------------------------------------------------------------
7
    include "../../macros.inc"
8
;===============================================================================
9
@code:
4232 eAndrew 10
    mov     [tabs.index], byte 2
11
 
4231 eAndrew 12
    mcall   48, 3, color, 40
13
;-------------------------------------------------------------------------------
14
main_loop:
15
    mcall   10
16
    cmp     eax, EV_REDRAW
17
    je	    event_redraw
18
    cmp     eax, EV_BUTTON
19
    je	    event_button
20
 
21
    jmp     main_loop
22
;-------------------------------------------------------------------------------
23
exit:
24
    mcall   -1
25
;-------------------------------------------------------------------------------
26
event_redraw:
27
    call    win.draw
28
    jmp     main_loop
29
;-------------------------------------------------------------------------------
30
event_button:
31
    mcall   17
32
    cmp     ah, 0x01
33
    je	    exit
34
    cmp     ah, 0x10
35
    je	    .tabs.walls
36
    cmp     ah, 0x11
37
    je	    .tabs.skins
38
    cmp     ah, 0x12
39
    je	    .tabs.docky
40
    cmp     ah, 0x13
41
    je	    .tabs.panel
42
 
4232 eAndrew 43
    cmp     ah, 0x44
44
    je	    .checkbox_fsize
45
 
4231 eAndrew 46
    jmp     main_loop
47
 
48
 .tabs.walls:
49
    mov     [tabs.index], byte 0
50
    call    win.draw
51
    jmp     main_loop
52
 .tabs.skins:
53
    mov     [tabs.index], byte 1
54
    call    win.draw
55
    jmp     main_loop
56
 .tabs.docky:
57
    mov     [tabs.index], byte 2
58
    call    win.draw
59
    jmp     main_loop
60
 .tabs.panel:
61
    mov     [tabs.index], byte 3
62
    call    win.draw
63
    jmp     main_loop
4232 eAndrew 64
 
65
 .checkbox_fsize:
66
    mov     al, 1
67
    sub     al, byte [win.docky.fsize]
68
    mov     [win.docky.fsize], al
69
    push    183
70
    push    win.docky.fsize
71
    call    checkbox.draw
72
    jmp     main_loop
4231 eAndrew 73
;-------------------------------------------------------------------------------
74
win.draw:
75
    mcall   12, 1
76
 
77
    mov     edx, [color.work]
78
    or	    edx, 0x34000000
4232 eAndrew 79
    mcall   0, <128, 256>, <128, 299>, , , win.title
4231 eAndrew 80
 
81
    call    tabs.draw
82
 
83
    mcall   12, 2
84
 
85
    ret
86
;-------------------------------------------------------------------------------
87
tabs.draw:
88
    mcall    8, <  8,  57>, < 9, 25>, 0x40000010
89
    mcall     , < 65,  57>,	    , 0x40000011
90
    mcall     , <122,  57>,	    , 0x40000012
91
    mcall     , <179,  58>,	    , 0x40000013
92
 
93
    mcall   13, <  9, 228>,	    , [color.work]
94
 
95
    mcall     , 	  , < 9,  1>, [color.workE]
96
    mcall     , 	  , <34,  1>
97
    mcall     , <  8,	1>, <10, 24>
98
    mcall     , < 65,	1>
99
    mcall     , <122,	1>
100
    mcall     , <179,	1>
101
    mcall     , <237,	1>
102
 
103
    mov     edx, [color.workE]
104
 
105
    cmp     [tabs.index], byte 0
106
    je	    .walls
107
    cmp     [tabs.index], byte 1
108
    je	    .skins
109
    cmp     [tabs.index], byte 2
110
    je	    .docky
111
    jmp     .panel
112
 
113
 .walls:
114
    mcall     , <  9,  56>
115
 
116
    mcall   4, < 22, 18>, [color.textE], tabs.walls_title, 5
117
    mcall    , < 79, 18>, [color.text] , tabs.skins_title
118
    mcall    , <136, 18>,	       , tabs.docky_title
119
    mcall    , <193, 18>,	       , tabs.panel_title
120
 
121
    call    tabs.walls.draw
122
 
123
    ret
124
 .skins:
125
    mcall     , < 66,  56>
126
 
127
    mcall   4, < 79, 18>, [color.textE], tabs.skins_title, 5
128
    mcall    , < 22, 18>, [color.text] , tabs.walls_title
129
    mcall    , <136, 18>,	       , tabs.docky_title
130
    mcall    , <193, 18>,	       , tabs.panel_title
131
 
132
    call    tabs.skins.draw
133
 
134
    ret
135
 .docky:
136
    mcall     , <123,  56>
137
 
138
    mcall   4, <136, 18>, [color.textE], tabs.docky_title, 5
139
    mcall    , < 79, 18>, [color.text] , tabs.skins_title
140
    mcall    , < 22, 18>,	       , tabs.walls_title
141
    mcall    , <193, 18>,	       , tabs.panel_title
142
 
143
    call    tabs.docky.draw
144
 
145
    ret
146
 .panel:
147
    mcall     , <180,  57>
148
 
149
    mcall   4, <193, 18>, [color.textE], tabs.panel_title, 5
150
    mcall    , < 79, 18>, [color.text] , tabs.skins_title
151
    mcall    , <136, 18>,	       , tabs.docky_title
152
    mcall    , < 22, 18>,	       , tabs.walls_title
153
 
154
    call    tabs.panel.draw
155
 
156
    ret
157
;-------------------------------------------------------------------------------
158
tabs.walls.draw:
159
    ret
160
;-------------------------------------------------------------------------------
161
tabs.skins.draw:
162
    ret
163
;-------------------------------------------------------------------------------
164
tabs.docky.draw:
4232 eAndrew 165
  ; == FRAME: POSITION == ;
166
    mcall   13, <10, 226>, <48, 112>, [color.workE]
167
    mcall     , <11, 224>, <49, 110>, [color.textE]
168
    mcall     , <12, 222>, <50, 108>, [color.work]
169
 
170
    mov     ecx, [color.text]
171
    or	    ecx, 0xC0000000
172
    mcall   4, <20, 45>, , tabs.docky.frame_pos_title, , [color.work]
173
 
174
    mcall   8, < 81, 84>, < 64, 24>, 0x40, [color.workE]
175
    mcall    , < 58, 64>, < 91, 24>, 0x41
176
    mcall    , <125, 64>, < 91, 24>, 0x42
177
    mcall    , < 81, 84>, <118, 24>, 0x43
178
 
179
    mov     ecx, [color.textE]
180
    or	    ecx, 0x80000000
181
    mcall   4, <115,  73>, , tabs.docky.button_top
182
    mcall    , < 79, 100>, , tabs.docky.button_left
183
    mcall    , <106, 127>, , tabs.docky.button_bottom
184
    mcall    , <143, 100>, , tabs.docky.button_right
185
 
186
  ; == FRAME: SETTINGS == ;
187
    mcall   13, <10, 226>, <170, 40>, [color.workE]
188
    mcall     , <11, 224>, <171, 38>, [color.textE]
189
    mcall     , <12, 222>, <172, 36>, [color.work]
190
 
191
    mov     ecx, [color.text]
192
    or	    ecx, 0xC0000000
193
    mcall   4, <20, 167>, , tabs.docky.frame_set_title, , [color.work]
194
 
195
    mcall   8, <20, 206>, <182, 16>, 0x60000044
196
 
197
    mov     ecx, [color.text]
198
    or	    ecx, 0x80000000
199
    mcall   4, <20, 187>, , tabs.docky.checkbox_fsize_title
200
 
201
    push    183
202
    push    win.docky.fsize
203
    call    checkbox.draw
204
 
205
  ; == FRAME: THEARD == ;
206
    mcall   13, <10, 226>, <220, 44>, [color.workE]
207
    mcall     , <11, 224>, <221, 42>, [color.textE]
208
    mcall     , <12, 222>, <222, 40>, [color.work]
209
 
210
    mov     ecx, [color.text]
211
    or	    ecx, 0xC0000000
212
    mcall   4, <20, 217>, , tabs.docky.frame_theard_title, , [color.work]
213
 
214
    mcall   8, < 20,  98>, <230, 24>, 0x45, [color.workE]
215
    mcall   8, <128,  98>,	    , 0x46
216
 
217
    mov     ecx, [color.textE]
218
    or	    ecx, 0x80000000
219
    mcall   4, < 54,  238>, , tabs.docky.button_close
220
    mcall    , <139,  238>, , tabs.docky.button_start
221
 
4231 eAndrew 222
    ret
223
;-------------------------------------------------------------------------------
224
tabs.panel.draw:
225
    ret
4232 eAndrew 226
;-------------------------------------------------------------------------------
227
checkbox.draw:
228
    pop     ebp
229
    pop     edi
230
    pop     ecx
231
    push    ebp
232
 
233
    shl     ecx, 16
234
    mov     cx, 16
235
    mcall   13, <188, 34>, , [color.workE]
236
    sub     ecx, 2
237
    add     ecx, 0x00010000
238
    mcall     , <189, 32>, , [color.textE]
239
 
240
    mov     eax, 13
241
    mov     edx, [color.workE]
242
    cmp     [edi], byte 0
243
    je	    .draw_off
244
 .draw_on:
245
    mcall   , <189, 6>
246
    mov     edi, ecx
247
    shr     edi, 16
248
    add     edi, 3
249
    mcall   4, <189, edi>, [color.text], checkbox.on, 5
250
 
251
    ret
252
 
253
 .draw_off:
254
    mov     edx, [color.work]
255
    mcall   , <215, 6>
256
    mov     edi, ecx
257
    shr     edi, 16
258
    add     edi, 3
259
    mcall   4, <189, edi>, [color.text], checkbox.off, 5
260
    ret
4231 eAndrew 261
;===============================================================================
262
win.title:
263
    db	    "Desktop configuration", 0
264
 
265
tabs.walls_title:
266
    db	    "Walls"
267
tabs.skins_title:
268
    db	    "Skins"
269
tabs.docky_title:
270
    db	    "Docky"
271
tabs.panel_title:
272
    db	    "Panel"
273
 
4232 eAndrew 274
tabs.docky.frame_pos_title:
275
    db	    " Position ", 0
276
tabs.docky.button_top:
277
    db	    "TOP", 0
278
tabs.docky.button_left:
279
    db	    "LEFT", 0
280
tabs.docky.button_bottom:
281
    db	    "BOTTOM", 0
282
tabs.docky.button_right:
283
    db	    "RIGHT", 0
284
 
285
tabs.docky.frame_set_title:
286
    db	    " Settings ", 0
287
tabs.docky.checkbox_fsize_title:
288
    db	    "Full size mode", 0
289
 
290
tabs.docky.frame_theard_title:
291
    db	    " Theard ", 0
292
tabs.docky.button_close:
293
    db	    "Close", 0
294
tabs.docky.button_start:
295
    db	    "Start/Restart", 0
296
 
297
 
298
checkbox.on:
299
    db	    "  ON "
300
checkbox.off:
301
    db	    " OFF "
302
 
4231 eAndrew 303
@data:
304
;===============================================================================
305
    rb	    2048
306
@stack:
307
;-------------------------------------------------------------------------------
4232 eAndrew 308
win.docky.fsize:
309
    rb	    1
310
 
4231 eAndrew 311
tabs.index:
312
    rb	    1
313
 
314
color:
315
 .frame:
316
    rd	    5
317
 .work:
318
    rd	    1
319
 .workE:
320
    rd	    1
321
 .textE:
322
    rd	    1
323
 .text:
324
    rd	    2
325
 
326
@mem: