Rev 1380 | Rev 1392 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1380 | Rev 1391 | ||
---|---|---|---|
Line 55... | Line 55... | ||
55 | ;; |
55 | ;; |
56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
56 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 57... | Line 57... | ||
57 | 57 | ||
Line 58... | Line 58... | ||
58 | include 'macros.inc' |
58 | include 'macros.inc' |
Line 59... | Line 59... | ||
59 | 59 | ||
Line 60... | Line 60... | ||
60 | $Revision: 1380 $ |
60 | $Revision: 1391 $ |
Line 1033... | Line 1033... | ||
1033 | ; ; |
1033 | ; ; |
1034 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1034 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1035 | align 32 |
1035 | align 32 |
1036 | osloop: |
1036 | osloop: |
1037 | call [draw_pointer] |
1037 | call [draw_pointer] |
1038 | call check_buttons |
1038 | call window_check_events |
1039 | call checkwindows |
1039 | call mouse_check_events |
1040 | ; call check_window_move_request |
- | |
1041 | call checkmisc |
1040 | call checkmisc |
1042 | call checkVga_N13 |
1041 | call checkVga_N13 |
1043 | call stack_handler |
1042 | call stack_handler |
1044 | call checkidle |
1043 | call checkidle |
1045 | call check_fdd_motor_status |
1044 | call check_fdd_motor_status |
Line 2673... | Line 2672... | ||
2673 | jne .exit |
2672 | jne .exit |
2674 | movzx eax, byte [BTN_COUNT] |
2673 | movzx eax, byte [BTN_COUNT] |
2675 | test eax, eax |
2674 | test eax, eax |
2676 | jz .exit |
2675 | jz .exit |
2677 | mov eax, [BTN_BUFF] |
2676 | mov eax, [BTN_BUFF] |
2678 | shl eax, 8 |
- | |
2679 | ; // Alver 22.06.2008 // { |
- | |
2680 | mov al, byte [btn_down_determ] |
- | |
2681 | and al,0xFE ; delete left button bit |
2677 | and al, 0xFE ; delete left button bit |
2682 | ; } \\ Alver \\ |
- | |
2683 | mov [BTN_COUNT], byte 0 |
2678 | mov [BTN_COUNT], byte 0 |
2684 | mov [esp + 32], eax |
2679 | mov [esp + 32], eax |
2685 | .exit: |
2680 | .exit: |
2686 | ret |
2681 | ret |
Line 2909... | Line 2904... | ||
2909 | ret |
2904 | ret |
Line 2910... | Line 2905... | ||
2910 | 2905 | ||
2911 | srl1: |
2906 | srl1: |
Line 2912... | Line -... | ||
2912 | ret |
- | |
2913 | - | ||
2914 | - | ||
2915 | sys_drawwindow: |
- | |
2916 | - | ||
2917 | mov eax,edx |
- | |
2918 | shr eax,16+8 |
- | |
2919 | and eax,15 |
- | |
2920 | - | ||
2921 | ; cmp eax,0 ; type I - original style |
- | |
2922 | jne nosyswI |
- | |
2923 | inc [mouse_pause] |
- | |
2924 | call [_display.disable_mouse] |
- | |
2925 | call sys_set_window |
- | |
2926 | call [_display.disable_mouse] |
- | |
2927 | call drawwindow_I |
- | |
2928 | ;dec [mouse_pause] |
- | |
2929 | ;call [draw_pointer] |
- | |
2930 | ;ret |
- | |
2931 | jmp draw_window_caption.2 |
- | |
2932 | nosyswI: |
- | |
2933 | - | ||
2934 | cmp al,1 ; type II - only reserve area, no draw |
- | |
2935 | jne nosyswII |
- | |
2936 | inc [mouse_pause] |
- | |
2937 | call [_display.disable_mouse] |
- | |
2938 | call sys_set_window |
- | |
2939 | call [_display.disable_mouse] |
- | |
2940 | call sys_window_mouse |
- | |
2941 | dec [mouse_pause] |
- | |
2942 | call [draw_pointer] |
- | |
2943 | ret |
- | |
2944 | nosyswII: |
- | |
2945 | - | ||
2946 | cmp al,2 ; type III - new style |
- | |
2947 | jne nosyswIII |
- | |
2948 | inc [mouse_pause] |
- | |
2949 | call [_display.disable_mouse] |
- | |
2950 | call sys_set_window |
- | |
2951 | call [_display.disable_mouse] |
- | |
2952 | call drawwindow_III |
- | |
2953 | ;dec [mouse_pause] |
- | |
2954 | ;call [draw_pointer] |
- | |
2955 | ;ret |
- | |
2956 | jmp draw_window_caption.2 |
- | |
2957 | nosyswIII: |
- | |
2958 | - | ||
2959 | cmp al,3 ; type IV - skinned window |
- | |
2960 | je draw_skin_window |
- | |
2961 | cmp al,4 ; type V - skinned window not sized! {not_sized_skin_window} |
- | |
2962 | jne nosyswV |
- | |
2963 | draw_skin_window: |
- | |
2964 | - | ||
2965 | inc [mouse_pause] |
- | |
2966 | call [_display.disable_mouse] |
- | |
2967 | call sys_set_window |
- | |
2968 | call [_display.disable_mouse] |
- | |
2969 | mov eax, [TASK_COUNT] |
- | |
2970 | movzx eax, word [WIN_POS + eax*2] |
- | |
2971 | cmp eax, [CURRENT_TASK] |
- | |
2972 | setz al |
- | |
2973 | movzx eax, al |
- | |
2974 | push eax |
- | |
2975 | call drawwindow_IV |
- | |
2976 | ;dec [mouse_pause] |
- | |
2977 | ;call [draw_pointer] |
- | |
2978 | ;ret |
- | |
2979 | jmp draw_window_caption.2 |
- | |
2980 | nosyswV: |
- | |
2981 | - | ||
2982 | ret |
- | |
2983 | - | ||
2984 | - | ||
2985 | draw_window_caption: |
- | |
2986 | inc [mouse_pause] |
- | |
2987 | call [_display.disable_mouse] |
- | |
2988 | - | ||
2989 | xor eax,eax |
- | |
2990 | mov edx,[TASK_COUNT] |
- | |
2991 | movzx edx,word[WIN_POS+edx*2] |
- | |
2992 | cmp edx,[CURRENT_TASK] |
- | |
2993 | jne @f |
- | |
2994 | inc eax |
- | |
2995 | @@: mov edx,[CURRENT_TASK] |
- | |
2996 | shl edx,5 |
- | |
2997 | add edx,window_data |
- | |
2998 | movzx ebx,[edx+WDATA.fl_wstyle] |
- | |
2999 | and bl,0x0F |
- | |
3000 | cmp bl,3 |
- | |
3001 | je .draw_caption_style_3 ;{for 3 and 4 style write caption} |
- | |
3002 | cmp bl,4 |
- | |
3003 | je .draw_caption_style_3 |
- | |
3004 | - | ||
3005 | jmp .not_style_3 |
- | |
3006 | .draw_caption_style_3: |
- | |
3007 | - | ||
3008 | push edx |
- | |
3009 | call drawwindow_IV_caption |
- | |
3010 | add esp,4 |
- | |
3011 | jmp .2 |
- | |
3012 | - | ||
3013 | .not_style_3: |
- | |
3014 | cmp bl,2 |
- | |
3015 | jne .not_style_2 |
- | |
3016 | - | ||
3017 | call drawwindow_III_caption |
- | |
3018 | jmp .2 |
- | |
3019 | - | ||
3020 | .not_style_2: |
- | |
3021 | cmp bl,0 |
- | |
3022 | jne .2 |
- | |
3023 | - | ||
3024 | call drawwindow_I_caption |
- | |
3025 | - | ||
3026 | ;-------------------------------------------------------------- |
- | |
3027 | .2: ;jmp @f |
- | |
3028 | mov edi,[CURRENT_TASK] |
- | |
3029 | shl edi,5 |
- | |
3030 | test [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION |
- | |
3031 | jz @f |
- | |
3032 | mov edx,[edi*8+SLOT_BASE+APPDATA.wnd_caption] |
- | |
3033 | or edx,edx |
- | |
3034 | jz @f |
- | |
3035 | - | ||
3036 | movzx eax,[edi+window_data+WDATA.fl_wstyle] |
- | |
3037 | and al,0x0F |
- | |
3038 | cmp al,3 |
- | |
3039 | je .skinned |
- | |
3040 | cmp al,4 |
- | |
3041 | je .skinned |
- | |
3042 | - | ||
3043 | jmp .not_skinned |
- | |
3044 | .skinned: |
- | |
3045 | mov ebp,[edi+window_data+WDATA.box.left-2] |
- | |
3046 | mov bp,word[edi+window_data+WDATA.box.top] |
- | |
3047 | movzx eax,word[edi+window_data+WDATA.box.width] |
- | |
3048 | sub ax,[_skinmargins.left] |
- | |
3049 | sub ax,[_skinmargins.right] |
- | |
3050 | push edx |
- | |
3051 | cwde |
- | |
3052 | cdq |
- | |
3053 | mov ebx,6 |
- | |
3054 | idiv ebx |
- | |
3055 | pop edx |
- | |
3056 | or eax,eax |
- | |
3057 | js @f |
- | |
3058 | mov esi,eax |
- | |
3059 | mov ebx,dword[_skinmargins.left-2] |
- | |
3060 | mov bx,word[_skinh] |
- | |
3061 | sub bx,[_skinmargins.bottom] |
- | |
3062 | sub bx,[_skinmargins.top] |
- | |
3063 | sar bx,1 |
- | |
3064 | adc bx,0 |
- | |
3065 | add bx,[_skinmargins.top] |
- | |
3066 | add bx,-3 |
- | |
3067 | add ebx,ebp |
- | |
3068 | jmp .dodraw |
- | |
3069 | - | ||
3070 | .not_skinned: |
- | |
3071 | cmp al,1 |
- | |
3072 | je @f |
- | |
3073 | - | ||
3074 | mov ebp,[edi+window_data+WDATA.box.left-2] |
- | |
3075 | mov bp,word[edi+window_data+WDATA.box.top] |
- | |
3076 | movzx eax,word[edi+window_data+WDATA.box.width] |
- | |
3077 | sub eax,16 |
- | |
3078 | push edx |
- | |
3079 | cwde |
- | |
3080 | cdq |
- | |
3081 | mov ebx,6 |
- | |
3082 | idiv ebx |
- | |
3083 | pop edx |
- | |
3084 | or eax,eax |
- | |
3085 | js @f |
- | |
3086 | mov esi,eax |
- | |
3087 | mov ebx,0x00080007 |
- | |
3088 | add ebx,ebp |
- | |
3089 | .dodraw: |
- | |
3090 | mov ecx,[common_colours+16];0x00FFFFFF |
- | |
3091 | or ecx, 0x80000000 |
- | |
3092 | xor edi,edi |
- | |
3093 | ; // Alver 22.06.2008 // { |
- | |
3094 | ; call dtext |
- | |
3095 | call dtext_asciiz_esi |
- | |
3096 | ; } \\ Alver \\ |
- | |
3097 | - | ||
3098 | @@: |
- | |
3099 | ;-------------------------------------------------------------- |
- | |
3100 | dec [mouse_pause] |
- | |
3101 | call [draw_pointer] |
- | |
3102 | ret |
- | |
3103 | - | ||
3104 | iglobal |
- | |
3105 | align 4 |
- | |
3106 | window_topleft dd \ |
- | |
3107 | 1, 21,\ ;type 0 |
- | |
3108 | 0, 0,\ ;type 1 |
- | |
3109 | 5, 20,\ ;type 2 |
- | |
3110 | 5, ?,\ ;type 3 {set by skin} |
- | |
3111 | 5, ? ;type 4 {set by skin} |
- | |
3112 | endg |
- | |
3113 | - | ||
3114 | set_window_clientbox: |
- | |
3115 | push eax ecx edi |
- | |
3116 | - | ||
3117 | mov eax,[_skinh] |
- | |
3118 | mov [window_topleft+4*7],eax |
- | |
3119 | mov [window_topleft+4*9],eax |
- | |
3120 | - | ||
3121 | mov ecx,edi |
- | |
3122 | sub edi,window_data |
- | |
3123 | shl edi,3 |
- | |
3124 | test [ecx+WDATA.fl_wstyle],WSTYLE_CLIENTRELATIVE |
- | |
3125 | jz @f |
- | |
3126 | - | ||
3127 | movzx eax,[ecx+WDATA.fl_wstyle] |
- | |
3128 | and eax,0x0F |
- | |
3129 | mov eax,[eax*8+window_topleft+0] |
- | |
3130 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.left],eax |
- | |
3131 | shl eax,1 |
- | |
3132 | neg eax |
- | |
3133 | add eax,[ecx+WDATA.box.width] |
- | |
3134 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.width],eax |
- | |
3135 | - | ||
3136 | movzx eax,[ecx+WDATA.fl_wstyle] |
- | |
3137 | and eax,0x0F |
- | |
3138 | push [eax*8+window_topleft+0] |
- | |
3139 | mov eax,[eax*8+window_topleft+4] |
- | |
3140 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.top],eax |
- | |
3141 | neg eax |
- | |
3142 | sub eax,[esp] |
- | |
3143 | add eax,[ecx+WDATA.box.height] |
- | |
3144 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.height],eax |
- | |
3145 | add esp,4 |
- | |
3146 | - | ||
3147 | pop edi ecx eax |
- | |
3148 | ret |
- | |
3149 | @@: |
- | |
3150 | xor eax,eax |
- | |
3151 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.left],eax |
- | |
3152 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.top],eax |
- | |
3153 | mov eax,[ecx+WDATA.box.width] |
- | |
3154 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.width],eax |
- | |
3155 | mov eax,[ecx+WDATA.box.height] |
- | |
3156 | mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.height],eax |
- | |
3157 | - | ||
3158 | pop edi ecx eax |
- | |
3159 | ret |
- | |
3160 | - | ||
3161 | sys_set_window: |
- | |
3162 | - | ||
3163 | mov eax,[CURRENT_TASK] |
- | |
3164 | shl eax,5 |
- | |
3165 | add eax,window_data |
- | |
3166 | - | ||
3167 | ; colors |
- | |
3168 | mov [eax+WDATA.cl_workarea],edx |
- | |
3169 | mov [eax+WDATA.cl_titlebar],esi |
- | |
3170 | mov [eax+WDATA.cl_frames],edi |
- | |
3171 | - | ||
3172 | mov edi, eax |
- | |
3173 | - | ||
3174 | ; check flag (?) |
- | |
3175 | test [edi+WDATA.fl_wdrawn],1 |
- | |
3176 | jnz newd |
- | |
3177 | - | ||
3178 | mov eax,[timer_ticks] ;[0xfdf0] |
- | |
3179 | add eax,100 |
- | |
3180 | mov [new_window_starting],eax |
- | |
3181 | - | ||
3182 | movsx eax,bx |
- | |
3183 | mov [edi+WDATA.box.width],eax |
- | |
3184 | movsx eax,cx |
- | |
3185 | mov [edi+WDATA.box.height],eax |
- | |
3186 | sar ebx,16 |
- | |
3187 | sar ecx,16 |
- | |
3188 | mov [edi+WDATA.box.left],ebx |
- | |
3189 | mov [edi+WDATA.box.top],ecx |
- | |
3190 | - | ||
3191 | call check_window_position |
- | |
3192 | - | ||
3193 | push ecx esi edi ; save for window fullscreen/resize |
- | |
3194 | ;mov esi,edi |
- | |
3195 | - | ||
3196 | mov cl, [edi+WDATA.fl_wstyle] |
- | |
3197 | mov eax, [edi+WDATA.cl_frames] |
- | |
3198 | - | ||
3199 | sub edi,window_data |
- | |
3200 | shl edi,3 |
- | |
3201 | add edi,SLOT_BASE |
- | |
3202 | - | ||
3203 | and cl,0x0F |
- | |
3204 | mov [edi+APPDATA.wnd_caption],0 |
- | |
3205 | cmp cl,3 |
- | |
3206 | je set_APPDATA_wnd_caption |
- | |
3207 | cmp cl,4 ; {SPraid.simba} |
- | |
3208 | je set_APPDATA_wnd_caption |
- | |
3209 | - | ||
3210 | jmp @f |
- | |
3211 | set_APPDATA_wnd_caption: |
- | |
3212 | mov [edi+APPDATA.wnd_caption],eax |
- | |
3213 | @@: mov esi,[esp+0] |
- | |
3214 | - | ||
3215 | add edi, APPDATA.saved_box |
- | |
3216 | movsd |
- | |
3217 | movsd |
- | |
3218 | movsd |
- | |
3219 | movsd |
- | |
3220 | pop edi esi ecx |
- | |
3221 | - | ||
3222 | mov esi, [CURRENT_TASK] |
- | |
3223 | movzx esi, word [WIN_STACK+esi*2] |
- | |
3224 | lea esi, [WIN_POS+esi*2] |
- | |
3225 | call waredraw |
- | |
3226 | - | ||
3227 | ;;; mov ebx, 1 |
- | |
3228 | ;;; call delay_hs |
- | |
3229 | mov eax, [edi+WDATA.box.left] |
- | |
3230 | mov ebx, [edi+WDATA.box.top] |
- | |
3231 | mov ecx, [edi+WDATA.box.width] |
- | |
3232 | mov edx, [edi+WDATA.box.height] |
- | |
3233 | add ecx, eax |
- | |
3234 | add edx, ebx |
- | |
3235 | call calculatescreen |
- | |
3236 | - | ||
3237 | mov [KEY_COUNT],byte 0 ; empty keyboard buffer |
- | |
3238 | mov [BTN_COUNT],byte 0 ; empty button buffer |
- | |
3239 | - | ||
3240 | newd: |
- | |
3241 | call set_window_clientbox |
- | |
3242 | - | ||
3243 | mov [edi+WDATA.fl_redraw],byte 0 ; no redraw |
- | |
3244 | mov edx,edi |
- | |
3245 | - | ||
3246 | ret |
- | |
3247 | - | ||
3248 | syscall_windowsettings: |
- | |
3249 | - | ||
3250 | .set_window_caption: |
- | |
3251 | dec ebx ; subfunction #1 - set window caption |
- | |
3252 | jnz .exit_fail |
- | |
3253 | - | ||
3254 | ; NOTE: only window owner thread can set its caption, |
- | |
3255 | ; so there's no parameter for PID/TID |
- | |
3256 | - | ||
3257 | mov edi,[CURRENT_TASK] |
- | |
3258 | shl edi,5 |
- | |
3259 | - | ||
3260 | ; have to check if caption is within application memory limit |
- | |
3261 | ; check is trivial, and if application resizes its memory, |
- | |
3262 | ; caption still can become over bounds |
- | |
3263 | ; diamond, 31.10.2006: check removed because with new memory manager |
- | |
3264 | ; there can be valid data after APPDATA.mem_size bound |
- | |
3265 | ; mov ecx,[edi*8+SLOT_BASE+APPDATA.mem_size] |
- | |
3266 | ; add ecx,255 ; max caption length |
- | |
3267 | ; cmp ebx,ecx |
- | |
3268 | ; ja .exit_fail |
- | |
3269 | - | ||
3270 | mov [edi*8+SLOT_BASE+APPDATA.wnd_caption],ecx |
- | |
3271 | or [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION |
- | |
3272 | - | ||
3273 | call draw_window_caption |
- | |
3274 | - | ||
3275 | xor eax,eax ; eax = 0 (success) |
- | |
3276 | ret |
- | |
3277 | - | ||
3278 | ; .get_window_caption: |
- | |
3279 | ; dec eax ; subfunction #2 - get window caption |
- | |
3280 | ; jnz .exit_fail |
- | |
3281 | - | ||
3282 | ; not implemented yet |
- | |
3283 | - | ||
3284 | .exit_fail: |
- | |
3285 | xor eax,eax |
- | |
3286 | inc eax ; eax = 1 (fail) |
- | |
3287 | ret |
- | |
3288 | - | ||
3289 | - | ||
3290 | sys_window_move: |
- | |
3291 | - | ||
3292 | mov edi,[CURRENT_TASK] |
- | |
3293 | shl edi,5 |
- | |
3294 | add edi,window_data |
- | |
3295 | - | ||
3296 | test [edi+WDATA.fl_wstate],WSTATE_MAXIMIZED |
- | |
3297 | jnz .window_move_return |
- | |
3298 | - | ||
3299 | push dword [edi + WDATA.box.left] ; save old coordinates |
- | |
3300 | push dword [edi + WDATA.box.top] |
- | |
3301 | push dword [edi + WDATA.box.width] |
- | |
3302 | push dword [edi + WDATA.box.height] |
- | |
3303 | - | ||
3304 | cmp eax,-1 ; set new position and size |
- | |
3305 | je .no_x_reposition |
- | |
3306 | mov [edi + WDATA.box.left], eax |
- | |
3307 | .no_x_reposition: |
- | |
3308 | cmp ebx,-1 |
- | |
3309 | je .no_y_reposition |
- | |
3310 | mov [edi + WDATA.box.top], ebx |
- | |
3311 | .no_y_reposition: |
- | |
3312 | - | ||
3313 | test [edi+WDATA.fl_wstate],WSTATE_ROLLEDUP |
- | |
3314 | jnz .no_y_resizing |
- | |
3315 | - | ||
3316 | cmp ecx,-1 |
- | |
3317 | je .no_x_resizing |
- | |
3318 | mov [edi + WDATA.box.width], ecx |
- | |
3319 | .no_x_resizing: |
- | |
3320 | cmp edx,-1 |
- | |
3321 | je .no_y_resizing |
- | |
3322 | mov [edi + WDATA.box.height], edx |
- | |
3323 | .no_y_resizing: |
- | |
3324 | - | ||
3325 | call check_window_position |
- | |
3326 | call set_window_clientbox |
- | |
3327 | - | ||
3328 | pushad ; save for window fullscreen/resize |
- | |
3329 | mov esi,edi |
- | |
3330 | sub edi,window_data |
- | |
3331 | shr edi,5 |
- | |
3332 | shl edi,8 |
- | |
3333 | add edi, SLOT_BASE + APPDATA.saved_box |
- | |
3334 | mov ecx,4 |
- | |
3335 | cld |
- | |
3336 | rep movsd |
- | |
3337 | popad |
- | |
3338 | - | ||
3339 | pushad ; calculcate screen at new position |
- | |
3340 | mov eax, [edi + WDATA.box.left] |
- | |
3341 | mov ebx, [edi + WDATA.box.top] |
- | |
3342 | mov ecx, [edi + WDATA.box.width] |
- | |
3343 | mov edx, [edi + WDATA.box.height] |
- | |
3344 | add ecx,eax |
- | |
3345 | add edx,ebx |
- | |
3346 | - | ||
3347 | call calculatescreen |
- | |
3348 | popad |
- | |
3349 | - | ||
3350 | pop edx ; calculcate screen at old position |
- | |
3351 | pop ecx |
- | |
3352 | pop ebx |
- | |
3353 | pop eax |
- | |
3354 | add ecx,eax |
- | |
3355 | add edx,ebx |
- | |
3356 | mov [draw_limits.left],eax ; save for drawlimits |
- | |
3357 | mov [draw_limits.top],ebx |
- | |
3358 | mov [draw_limits.right],ecx |
- | |
3359 | mov [draw_limits.bottom],edx |
- | |
3360 | call calculatescreen |
- | |
3361 | - | ||
3362 | mov [edi + WDATA.fl_redraw], 1 ; flag the process as redraw |
- | |
3363 | - | ||
3364 | mov eax,edi ; redraw screen at old position |
- | |
3365 | xor esi,esi |
- | |
3366 | call redrawscreen |
- | |
3367 | - | ||
3368 | mov [DONT_DRAW_MOUSE],byte 0 ; mouse pointer |
- | |
3369 | mov [MOUSE_BACKGROUND],byte 0 ; no mouse under |
- | |
3370 | mov [MOUSE_DOWN],byte 0 ; react to mouse up/down |
- | |
3371 | - | ||
3372 | call [draw_pointer] |
- | |
3373 | - | ||
3374 | mov [window_move_pr],0 |
- | |
3375 | - | ||
3376 | .window_move_return: |
- | |
3377 | - | ||
3378 | ret |
- | |
3379 | - | ||
3380 | uglobal |
- | |
3381 | window_move_pr dd 0x0 |
- | |
3382 | window_move_eax dd 0x0 |
- | |
3383 | window_move_ebx dd 0x0 |
- | |
3384 | window_move_ecx dd 0x0 |
- | |
3385 | window_move_edx dd 0x0 |
- | |
3386 | endg |
2907 | ret |
3387 | 2908 | ||
3388 | ;ok - 100% work |
2909 | ;ok - 100% work |
3389 | ;nt - not tested |
2910 | ;nt - not tested |
3390 | ;--------------------------------------------------------------------------------------------- |
2911 | ;--------------------------------------------------------------------------------------------- |