Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
9541 leency 1
draw_result:
9470 leency 2
    ;.................................................................................................
9541 leency 3
    ; Большая рамка вывода результата
4
    ;.................................................................................................
5
    mcall   SF_DRAW_RECT, <4,110>, <9,219-18>, [sc.work_graph]
6
    mcall            , <5,110-2>, <10,219-20>, [sc.work_light]
7
 
8
    ;.................................................................................................
9
    ; Отрисовка результата цвета в hex color2
10
    ;.................................................................................................
11
    mcall   , (16+2) shl 16+15, (16+8) shl 16+15, 0x222222
12
    ; color 2 - draw color
13
    mcall   , (17+2) shl 16+13, (17+8) shl 16+13, [color2]
14
    ; color 1 - draw fringle
15
    mcall   , (11+2) shl 16+15, (12+8) shl 16+15, 0x222222
16
    ; color 2 - draw color
17
    mcall   , (12+2) shl 16+13, (13+8) shl 16+13, [color]
18
 
19
    ; value - draw fringle
20
    mcall   , (34+2) shl 16+72, (16+4) shl 16+15+4, 0x222222
21
    ; value - draw background
22
    mcall   , (35+2) shl 16+70, (17+4) shl 16+13+4, 0xFFFFFF
23
 
24
    ; Функция 47 - вывод числа в окно
25
    ;ebx - параметры преобразования числа в текст (HEX)
26
    mcall   SF_DRAW_NUMBER, 256+8 shl 16, [color], <40,22>, 0x10000000, 0
27
 
28
    ; функция 4: написать текст в окне
29
    ; edx - рисуем '#'
30
    ; esi - длина текста в байтах
31
    ;mcall   SF_DRAW_TEXT,38*65536+20,0,hex,1
32
 
33
    ;.................................................................................................
34
    ; Отрисовка r g b значений
35
    ;.................................................................................................
36
    call    get_spectr
37
 
38
    movzx   eax,[cred]                    ; красный
39
    mov     ebx,12*65536+196               ; [x начальный] *65536 + [y начальный]
40
    call    draw_value                    ; выводим результат
41
 
42
    movzx   eax,[cgreen]                  ; зеленый
43
    mov     ebx,37*65536+196              ; [x начальный] *65536 + [y начальный]
44
    call    draw_value                    ; выводим результат
45
 
46
    movzx   eax,[cblue]                   ; синий
47
    mov     ebx,62*65536+196              ; [x начальный] *65536 + [y начальный]
48
    call    draw_value                    ; выводим результат
49
 
50
    movzx   eax,[calpha]                  ; альфа
51
    mov     ebx,87*65536+196              ; [x начальный] *65536 + [y начальный]
52
    call    draw_value                    ; выводим результат
53
 
54
    ;.................................................................................................
55
    ; Выводим буквы r g b a
56
    ;.................................................................................................
57
    mov     eax,SF_DRAW_TEXT  ; 4 - вывести строку текста в окно
58
    mov     ebx,17 shl 16+DRAWY+37              ; [координата по оси x]*65536 + [координата по оси y]
59
    mov     ecx, 0x10000000               ; 0xX0RRGGBB (RR, GG, BB задают цвет текста)
60
    add     ecx, [sc.work_text]
61
    mov     edx,cname                     ; указатель на начало строки
62
    mov     esi,1                         ; выводить esi символов
63
    newline:                              ; цикл
64
      int     0x40                        ; Прерывание
65
      add     ebx,25 shl 16               ; Добавляем
66
      inc     edx                         ; Добавляем
67
      cmp     [edx],byte 'x'              ; Сравнение с байтом х
68
    jne    newline                        ; Если не нуль или не равно
69
 
70
    ;.................................................................................................
9470 leency 71
    ; Отрисовка слайдеров
72
    ;.................................................................................................
73
    ; Функция 13 - нарисовать прямоугольник
74
 
75
     mov ebx, 18*65536+18
76
     mov ecx, 61*65536+61
77
 
78
     push dword 0xFC5663
79
     push dword 0xFA0919
80
     push dword 0xE20516
81
     push dword 0xFA0919
82
 
83
     call Draw_base
84
 
85
     add ebx, 20*65536+20
86
 
87
     push dword 0x33F742
88
     push dword 0x0ADD18
89
     push dword 0x08CE19
90
     push dword 0x08CE19
91
 
92
     call Draw_base
93
 
94
     add ebx, 20*65536+20
95
 
96
     push dword 0x88A6FF
97
     push dword 0x3366FF
98
     push dword 0x114DFF
99
     push dword 0x114DFF
100
 
101
     call Draw_base
102
 
103
     add ebx, 20*65536+20
104
 
105
     push dword 0xDADADA
106
     push dword 0xB9B9B9
107
     push dword 0xA9A9A9
108
     push dword 0xA9A9A9
109
 
110
     call Draw_base
111
 
112
    ;.................................................................................................
113
    ; Отрисовка ползунков
114
    ;.................................................................................................
9541 leency 115
     mov ebx, 13*65536+13
116
     mov ecx, (61-3)*65536+(61-3)
9470 leency 117
     movzx   eax,[cred]
118
     call draw_slider
119
 
9541 leency 120
     mov ebx, (13+25*1)*65536+(13+25*1)
121
     mov ecx, (61-3)*65536+(61-3)
9470 leency 122
     movzx   eax,[cgreen]
123
     call draw_slider
124
 
9541 leency 125
     mov ebx, (13+25*2)*65536+(13+25*2)
126
     mov ecx, (61-3)*65536+(61-3)
9470 leency 127
     movzx   eax,[cblue]
128
     call draw_slider
129
 
9541 leency 130
     mov ebx, (13+25*3)*65536+(13+25*3)
131
     mov ecx, (61-3)*65536+(61-3)
9470 leency 132
     movzx   eax,[calpha]
133
     call draw_slider
134
 
135
 
136
    ret                                   ; Возвращаем управление
137
;end_draw_result
138
 
139
Draw_base:
140
push ebp
141
mov ebp, esp
142
 
143
add ebx, 1*65536+4
144
mcall SF_DRAW_LINE, , , 0
145
add ecx, 128*65536+128
146
int     0x40
147
 
148
sub ebx, 1*65536+4
149
sub ecx, (128-1)*65536+1
150
int     0x40
151
 
152
add ebx, 1*65536+1
153
mov edx, dword [ebp+20]
154
int     0x40
155
 
156
add ebx, 1*65536+1
157
mov edx, dword [ebp+16]
158
int     0x40
159
 
160
add ebx, 1*65536+1
161
mov edx, dword [ebp+12]
162
int     0x40
163
 
164
add ebx, 1*65536+1
165
mov edx, dword [ebp+8]
166
int     0x40
167
 
168
add ebx, 1*65536+1
169
mov edx, 0
170
int     0x40
171
 
172
sub ecx, 1*65536+(128-1)
173
 
174
pop ebp
175
ret 4*4
176
 
177
 
178
 
179
draw_slider:
180
shr eax, 1
181
mov edx, eax
182
shl edx, 16
183
or eax, edx
184
sub ecx, eax
185
add ecx, 127*65536+127
186
 
9541 leency 187
add ecx, 1*65536+5
9470 leency 188
mcall SF_DRAW_LINE, , , 0
9541 leency 189
add ebx, 15*65536+15
9470 leency 190
int     0x40
191
 
9541 leency 192
sub ebx, 14*65536+1
193
sub ecx, 1*65536+5
9470 leency 194
int     0x40
195
 
9541 leency 196
mov edx, 0xFFFFFF
197
add ecx, 1*65536+1
198
int     0x40
199
 
9470 leency 200
mov edx, 0xE1E1E1
201
add ecx, 1*65536+1
202
int     0x40
203
add ecx, 1*65536+1
204
int     0x40
9541 leency 205
add ecx, 1*65536+1
206
int     0x40
9470 leency 207
 
9541 leency 208
mov edx, 0xB9B9B9
9470 leency 209
add ecx, 1*65536+1
210
int     0x40
211
 
9541 leency 212
mov edx, 0
213
add ecx, 1*65536+1
9470 leency 214
int     0x40
215
 
216
ret
217
 
9541 leency 218
;end_slider