Subversion Repositories Kolibri OS

Rev

Rev 4232 | Go to most recent revision | Details | 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:
10
    mcall   48, 3, color, 40
11
;-------------------------------------------------------------------------------
12
main_loop:
13
    mcall   10
14
    cmp     eax, EV_REDRAW
15
    je	    event_redraw
16
    cmp     eax, EV_BUTTON
17
    je	    event_button
18
 
19
    jmp     main_loop
20
;-------------------------------------------------------------------------------
21
exit:
22
    mcall   -1
23
;-------------------------------------------------------------------------------
24
event_redraw:
25
    call    win.draw
26
    jmp     main_loop
27
;-------------------------------------------------------------------------------
28
event_button:
29
    mcall   17
30
    cmp     ah, 0x01
31
    je	    exit
32
    cmp     ah, 0x10
33
    je	    .tabs.walls
34
    cmp     ah, 0x11
35
    je	    .tabs.skins
36
    cmp     ah, 0x12
37
    je	    .tabs.docky
38
    cmp     ah, 0x13
39
    je	    .tabs.panel
40
 
41
    jmp     main_loop
42
 
43
 .tabs.walls:
44
    mov     [tabs.index], byte 0
45
    call    win.draw
46
    jmp     main_loop
47
 .tabs.skins:
48
    mov     [tabs.index], byte 1
49
    call    win.draw
50
    jmp     main_loop
51
 .tabs.docky:
52
    mov     [tabs.index], byte 2
53
    call    win.draw
54
    jmp     main_loop
55
 .tabs.panel:
56
    mov     [tabs.index], byte 3
57
    call    win.draw
58
    jmp     main_loop
59
;-------------------------------------------------------------------------------
60
win.draw:
61
    mcall   12, 1
62
 
63
    mov     edx, [color.work]
64
    or	    edx, 0x34000000
65
    mcall   0, <128, 256>, <128, 360>, , , win.title
66
 
67
    call    tabs.draw
68
 
69
    mcall   12, 2
70
 
71
    ret
72
;-------------------------------------------------------------------------------
73
tabs.draw:
74
    mcall    8, <  8,  57>, < 9, 25>, 0x40000010
75
    mcall     , < 65,  57>,	    , 0x40000011
76
    mcall     , <122,  57>,	    , 0x40000012
77
    mcall     , <179,  58>,	    , 0x40000013
78
 
79
    mcall   13, <  9, 228>,	    , [color.work]
80
 
81
    mcall     , 	  , < 9,  1>, [color.workE]
82
    mcall     , 	  , <34,  1>
83
    mcall     , <  8,	1>, <10, 24>
84
    mcall     , < 65,	1>
85
    mcall     , <122,	1>
86
    mcall     , <179,	1>
87
    mcall     , <237,	1>
88
 
89
    mov     edx, [color.workE]
90
 
91
    cmp     [tabs.index], byte 0
92
    je	    .walls
93
    cmp     [tabs.index], byte 1
94
    je	    .skins
95
    cmp     [tabs.index], byte 2
96
    je	    .docky
97
    jmp     .panel
98
 
99
 .walls:
100
    mcall     , <  9,  56>
101
 
102
    mcall   4, < 22, 18>, [color.textE], tabs.walls_title, 5
103
    mcall    , < 79, 18>, [color.text] , tabs.skins_title
104
    mcall    , <136, 18>,	       , tabs.docky_title
105
    mcall    , <193, 18>,	       , tabs.panel_title
106
 
107
    call    tabs.walls.draw
108
 
109
    ret
110
 .skins:
111
    mcall     , < 66,  56>
112
 
113
    mcall   4, < 79, 18>, [color.textE], tabs.skins_title, 5
114
    mcall    , < 22, 18>, [color.text] , tabs.walls_title
115
    mcall    , <136, 18>,	       , tabs.docky_title
116
    mcall    , <193, 18>,	       , tabs.panel_title
117
 
118
    call    tabs.skins.draw
119
 
120
    ret
121
 .docky:
122
    mcall     , <123,  56>
123
 
124
    mcall   4, <136, 18>, [color.textE], tabs.docky_title, 5
125
    mcall    , < 79, 18>, [color.text] , tabs.skins_title
126
    mcall    , < 22, 18>,	       , tabs.walls_title
127
    mcall    , <193, 18>,	       , tabs.panel_title
128
 
129
    call    tabs.docky.draw
130
 
131
    ret
132
 .panel:
133
    mcall     , <180,  57>
134
 
135
    mcall   4, <193, 18>, [color.textE], tabs.panel_title, 5
136
    mcall    , < 79, 18>, [color.text] , tabs.skins_title
137
    mcall    , <136, 18>,	       , tabs.docky_title
138
    mcall    , < 22, 18>,	       , tabs.walls_title
139
 
140
    call    tabs.panel.draw
141
 
142
    ret
143
;-------------------------------------------------------------------------------
144
tabs.walls.draw:
145
    mcall   8, <20, 50>, < 50, 20>, 0x20, [color.workE]
146
    ret
147
;-------------------------------------------------------------------------------
148
tabs.skins.draw:
149
    mcall   8, <40, 40>, < 60, 30>, 0x30, [color.workE]
150
    mcall    ,	       , < 99, 30>, 0x31
151
    ret
152
;-------------------------------------------------------------------------------
153
tabs.docky.draw:
154
    mcall   8, <50, 10>, < 50, 10>, 0x40, [color.workE]
155
    mcall    ,	       , < 70, 10>, 0x41
156
    mcall    ,	       , < 90, 10>, 0x42
157
    mcall    ,	       , <110, 10>, 0x43
158
    ret
159
;-------------------------------------------------------------------------------
160
tabs.panel.draw:
161
    mcall   8, <70, 20>, <70, 20>, 0x20, [color.workE]
162
    mcall   4, <30, 50>, [color.text], tabs.panel_title
163
    ret
164
;===============================================================================
165
win.title:
166
    db	    "Desktop configuration", 0
167
 
168
tabs.walls_title:
169
    db	    "Walls"
170
tabs.skins_title:
171
    db	    "Skins"
172
tabs.docky_title:
173
    db	    "Docky"
174
tabs.panel_title:
175
    db	    "Panel"
176
 
177
@data:
178
;===============================================================================
179
    rb	    2048
180
@stack:
181
;-------------------------------------------------------------------------------
182
tabs.index:
183
    rb	    1
184
 
185
color:
186
 .frame:
187
    rd	    5
188
 .work:
189
    rd	    1
190
 .workE:
191
    rd	    1
192
 .textE:
193
    rd	    1
194
 .text:
195
    rd	    2
196
 
197
@mem: