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 |