Subversion Repositories Kolibri OS

Rev

Rev 6219 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2619 mario79 1
;------------------------------------------------------------------------------
2
align 4
3
draw_running_applications:
9971 Doczom 4
        pusha
2619 mario79 5
 
9971 Doczom 6
        cmp     [run_appl],dword 0
7
        je      .exit
2619 mario79 8
 
9971 Doczom 9
        call    calculate_applications
2619 mario79 10
 
9971 Doczom 11
        cmp     edi,[running_applications]
12
        jne     .noret
13
        popa
14
        ret
2619 mario79 15
;--------------------------------------
16
align 4
17
.noret:
9971 Doczom 18
        call    draw_window
19
        mov     [running_applications],edi
20
        call    redraw_window_tabs
2619 mario79 21
;--------------------------------------
22
align 4
23
.exit:
9971 Doczom 24
        popa
25
        ret
2619 mario79 26
;------------------------------------------------------------------------------
27
align 4
28
need_window_tab:
29
; in: ebx->process info
30
; out: ZF set <=> do not draw
9971 Doczom 31
        cmp     byte [ebx + process_information.process_name], '@'
32
        jz      .nodraw
2619 mario79 33
; do not draw undefined (zero-sized) windows
9971 Doczom 34
        cmp     dword [ebx + process_information.box.width], 0
35
        jnz     @f
36
        cmp     dword [ebx + process_information.box.height], 0
37
        jz      .nodraw
2619 mario79 38
;--------------------------------------
39
align 4
40
@@:
41
; do not draw OpenDialog windows
9971 Doczom 42
        push    edi
43
        mov     edi, dword [ebx + process_information.process_name]
44
        or      edi, 0x20202020
45
        cmp     edi, 'open'
46
        jne     @f
2619 mario79 47
 
9971 Doczom 48
        mov     edi, dword [ebx + process_information.process_name + 4]
49
        or      edi, 0x20202020
50
        cmp     edi, 'dial'
51
        jne     @f
2619 mario79 52
 
9971 Doczom 53
        pop     edi
54
        jmp     .nodraw
2619 mario79 55
;--------------------------------------
56
align 4
57
@@:
9971 Doczom 58
        pop     edi
59
        cmp     dword [ebx + process_information.process_name], 'ICON'
60
        jnz     @f
2619 mario79 61
 
9971 Doczom 62
        cmp     [ebx + process_information.box.width], dword 51
63
        jnz     @f
2619 mario79 64
 
9971 Doczom 65
        cmp     [ebx + process_information.box.height], dword 51
66
        jz      .nodraw
2619 mario79 67
;--------------------------------------
68
align 4
69
@@:
9971 Doczom 70
        cmp     dword[ebx + process_information.process_name], '    '
2619 mario79 71
;--------------------------------------
72
align 4
73
.nodraw:
9971 Doczom 74
        ret
2619 mario79 75
;------------------------------------------------------------------------------
76
align 4
77
calculate_applications:
9971 Doczom 78
        mov     eax,[max_applications]
79
        mul     [page_list]
80
        test    eax,eax
81
        je      @f
2619 mario79 82
 
9971 Doczom 83
        inc     eax
2619 mario79 84
;--------------------------------------
85
align 4
86
@@:
9971 Doczom 87
        mov     [draw_start_position],eax
2619 mario79 88
 
9971 Doczom 89
        mov     edi,app_list
90
        mov     ecx,20 ; show max 20 application ???!!!
91
        mov     eax,-1
92
        cld
93
        rep     stosd
2619 mario79 94
 
9971 Doczom 95
        mov     edi,0
96
        mov     ecx,2
2619 mario79 97
;--------------------------------------
98
align 4
99
cnewpr:
9971 Doczom 100
        mcall   9,procinfo_window_tabs
2619 mario79 101
 
9971 Doczom 102
        call    need_window_tab
103
        jz      cnorpl
2619 mario79 104
 
9971 Doczom 105
        sub     [draw_start_position], 1
106
        jg      cnorpl
2619 mario79 107
 
9971 Doczom 108
        mov     [app_list+edi*4],ecx
109
        inc     edi
2619 mario79 110
;--------------------------------------
111
align 4
112
cnorpl:
9971 Doczom 113
        inc     ecx
114
        cmp     eax,ecx
115
        jge     cnewpr
2619 mario79 116
 
9971 Doczom 117
        mov     [app_tab_count], edi
118
        ret
2619 mario79 119
;------------------------------------------------------------------------------
120
align 4
121
redraw_window_tabs:
9971 Doczom 122
        xor     edi, edi
123
        mov     [contrast], 0
2619 mario79 124
 
9971 Doczom 125
        push    ebp
126
        mcall   18,7
127
        mov     ebp,eax
128
 
129
        call    calculate_offset_X
2619 mario79 130
;--------------------------------------
131
align 4
132
.loop:
9971 Doczom 133
        mov     ecx,[app_list+edi*4]
134
        cmp     ecx,-1
135
        jz      .done
2619 mario79 136
 
9971 Doczom 137
        mov     [active_slot_number],ecx
138
        mcall   9,procinfo_window_tabs
2619 mario79 139
 
9971 Doczom 140
 
141
        imul    ebx, edi, TAB_SIZE
142
        add     ebx,[offset_X]
143
        add     ebx,2
144
        shl     ebx,16
145
        add     ebx,TAB_SIZE-2  ;54
2619 mario79 146
 
9971 Doczom 147
        push    edi
148
        mov     edx,[system_colours.work_button]
149
        xor     edi,edi
2619 mario79 150
 
9971 Doczom 151
        cmp     ebp,[active_slot_number]        ;ecx    ; ecx=active slot number
152
        jnz     @f
2619 mario79 153
 
9971 Doczom 154
        mov     edx,[wcolor]
155
        inc     edi
2619 mario79 156
;--------------------------------------
157
align 4
158
@@:
9971 Doczom 159
        mov     esi,[current_alt_tab_app]
160
        cmp     esi,-1
161
        jz      @f
2619 mario79 162
 
9971 Doczom 163
        cmp     ecx,[alt_tab_list+esi*8]
164
        jnz     @f
2619 mario79 165
 
9971 Doczom 166
        mov     edx,[AltTab_color]      ;0xFF8000       ; current select for ALT+Tab
2619 mario79 167
;--------------------------------------
168
align 4
169
@@:
9971 Doczom 170
        call    calculate_button_y_coordinate_and_size
2630 mario79 171
 
9971 Doczom 172
        mov     esi,[wcolor]
173
        call    draw_appl_button
174
        pop     edi
2619 mario79 175
;------------------------------------------------------------------------------
9971 Doczom 176
        add     ebx,4 shl 16
177
        mov     bx,cx   ;[height]
178
        shr     bx,1
179
        sub     bx,4
180
        shr     ecx,16
181
        add     bx,cx
182
 
183
        mov     edx, procinfo_window_tabs.process_name
184
        mcall   4,,[system_colours.work_button_text],, sizeof.process_information.process_name
2619 mario79 185
;--------------------------------------
186
align 4
187
.nodraw:
9971 Doczom 188
        inc     edi
189
        cmp     edi, [max_applications]
190
        jb      .loop
2626 mario79 191
 
9971 Doczom 192
        mov     ecx,[app_list+edi*4]
193
        cmp     ecx,-1
194
        jz      .done
2626 mario79 195
 
9971 Doczom 196
        xor     eax,eax
197
        cmp     [page_list],eax
198
        jne     @f
199
 
200
        inc     eax
201
        cmp     [page_list_enable],eax
202
        je      @f
203
 
204
        mov     [page_list_enable],eax
205
        mov     [redraw_window_flag],eax
2619 mario79 206
;--------------------------------------
207
align 4
2626 mario79 208
@@:
9971 Doczom 209
        pop     ebp
210
        ret
2626 mario79 211
;--------------------------------------
212
align 4
2619 mario79 213
.done:
9971 Doczom 214
        xor     eax,eax
215
        cmp     [page_list],eax
216
        jne     @f
2626 mario79 217
 
9971 Doczom 218
        cmp     [page_list_enable],eax
219
        je      @f
2626 mario79 220
 
9971 Doczom 221
        mov     [page_list_enable],eax
222
        inc     eax
223
        mov     [redraw_window_flag],eax
2626 mario79 224
;--------------------------------------
225
align 4
226
@@:
9971 Doczom 227
        pop     ebp
228
        ret
2619 mario79 229
;------------------------------------------------------------------------------