Subversion Repositories Kolibri OS

Rev

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