Subversion Repositories Kolibri OS

Rev

Rev 6026 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6026 Rev 7300
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                                 ;;
2
;;                                                                 ;;
3
;; Copyright (C) KolibriOS team 2004-2016. All rights reserved.    ;;
3
;; Copyright (C) KolibriOS team 2004-2018. All rights reserved.    ;;
4
;; Distributed under terms of the GNU General Public License       ;;
4
;; Distributed under terms of the GNU General Public License       ;;
5
;;                                                                 ;;
5
;;                                                                 ;;
6
;;   Written by hidnplayr@kolibrios.org                            ;;
6
;;   Written by hidnplayr@kolibrios.org                            ;;
7
;;                                                                 ;;
7
;;                                                                 ;;
8
;;         GNU GENERAL PUBLIC LICENSE                              ;;
8
;;         GNU GENERAL PUBLIC LICENSE                              ;;
Line 79... Line 79...
79
        call    draw_window_tabs
79
        call    draw_window_tabs
80
        pop     ebx esi
80
        pop     ebx esi
Line 81... Line 81...
81
 
81
 
Line -... Line 82...
-
 
82
        ret
-
 
83
 
-
 
84
window_close_all:
-
 
85
 
-
 
86
  .loop:
-
 
87
        call    window_close
-
 
88
 
-
 
89
        cmp     [window_print], 0
-
 
90
        jne     .loop
-
 
91
 
Line 82... Line 92...
82
        ret
92
        ret
Line 83... Line 93...
83
 
93
 
84
 
94
 
Line 95... Line 105...
95
; Completely zero the trailing window block (there will always be one!)
105
; Completely zero the trailing window block (there will always be one!)
96
        mov     ecx, sizeof.window
106
        mov     ecx, sizeof.window
97
        xor     al, al
107
        xor     al, al
98
        rep     stosb
108
        rep stosb
Line -... Line 109...
-
 
109
 
-
 
110
; Clear the window data block to erase the chat history and nicknames 
-
 
111
        mov     edi, [esp]
-
 
112
        mov     ecx, sizeof.window_data         ; TEXT_BUFFERSIZE + MAX_NICK_LEN * MAX_USERS
-
 
113
        rep stosb
99
 
114
 
100
; free the window data block
115
; And now free the window data block
101
        pop     ecx
116
        pop     ecx
Line 102... Line 117...
102
        mcall   68, 13
117
        mcall   68, 13
-
 
118
 
103
 
119
; We closed this window so we need to show another
104
; We closed this window so we need to show another
120
        ; Is there still a window in the active position?
105
        mov     edi, [window_active]
121
        mov     edi, [window_active]
-
 
122
        cmp     [edi + window.data_ptr], 0
-
 
123
        jne     .redraw
-
 
124
        ; Did we just close the last window?
-
 
125
        cmp     edi, windows
106
        cmp     [edi + window.data_ptr], 0
126
        je      .closed_last
107
        jne     @f
127
        ; Nope, move one window to the left
108
        sub     edi, sizeof.window
128
        sub     edi, sizeof.window
-
 
129
        mov     [window_active], edi
-
 
130
        mov     [window_print], edi
109
        mov     [window_active], edi
131
        jmp     .redraw
-
 
132
 
-
 
133
  .closed_last:
-
 
134
        xor     edi, edi
Line 110... Line 135...
110
        mov     [window_print], edi
135
        mov     [window_active], edi
-
 
136
        mov     [window_print], edi
111
  @@:
137
 
Line 112... Line 138...
112
 
138
; At last, redraw everything