Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2547 → Rev 2548

/programs/system/icon/trunk/dat_area.inc
26,6 → 26,7
current_Y_mouse_thread: rd 1
 
draw_area: rd 1
draw_area_2: rd 1
 
x_left: rd 1
x_right: rd 1
36,6 → 37,8
cury1 rd 1
curx2 rd 1
cury2 rd 1
curx_restore rd 1
cury_restore rd 1
click_pos rd 1
;------------------------------------------------------------------------------
/programs/system/icon/trunk/icon.asm
5,6 → 5,12
;* Compile with flat assembler *
;* *
;********************************
; version: 3.10
; last update: 03/04/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Drawing selection rectangle.
; Using new kernel function: 15.9
;---------------------------------------------------------------------
; version: 3.01
; last update: 02/04/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
14,9 → 20,9
; version: 3.00
; last update: 02/04/2012
; changed by: Marat Zakiyanov aka Mario79, aka Mario
; changes: Program used only 2 threads: draw and mouse
; Used new kernel functions: 25, 34, 15.8, 4 (redirect).
; Used PNG icons with transparent.
; changes: Program use only 2 threads: draw and mouse
; Using new kernel functions: 25, 34, 15.8, 4 (redirect).
; Using PNG icons with transparent.
;---------------------------------------------------------------------
; version: 2.11
; last update: 19/03/2012
53,7 → 59,7
ICON_SIZE equ 32*32*4
REC_SIZE equ 80
ICONS_DAT equ '/sys/icons.dat'
ICON_APP equ '/sys/icon'
ICON_APP equ '/sys/ICON'
ICON_STRIP equ '/rd/1/iconstrp.png'
;------------------------------------------------------------------------------
use32
70,7 → 76,6
include 'lang.inc'
include '../../../macros.inc'
include '../../../develop/libraries/box_lib/load_lib.mac'
COLOR_ORDER equ MENUETOS
;include 'debug.inc'
;------------------------------------------------------------------------------
@use_library ;use load lib macros
900,7 → 905,7
;--------------------------------------
align 4
@@:
mov edi,[adress_of_icon_data] ;[ebp+8]
mov edi,[adress_of_icon_data]
lea esi,[edi+12]
call ASCII_to_icon_number
; protect for icon area RAW size limit
941,9 → 946,9
 
call draw_text
mov edx,[current_X] ;[ebp+0]
mov edx,[current_X]
shl edx,16
add edx,[current_Y] ;[ebp+4]
add edx,[current_Y]
mov ebx,[draw_area]
add ebx,8
mcall 25,,<52,52>
952,7 → 957,7
;------------------------------------------------------------------------------
align 4
draw_text:
mov esi,[adress_of_icon_data] ;[ebp+8]
mov esi,[adress_of_icon_data]
add esi,3
push edi
mov edi,title
/programs/system/icon/trunk/mouse.inc
25,6 → 25,19
mcall 34,[curx1],[cury1]
cmp al,1 ; 1 - ÿäðî
jne still_mouse
; check for icon by click down
call check_icons_position
mov eax,[click_pos]
test eax,eax
jz still_mouse
mov eax,[current_X_mouse_thread]
mov [curx_restore],eax
mov eax,[current_Y_mouse_thread]
mov [cury_restore],eax
 
call draw_select
;--------------------------------------
align 4
@@: ; ïîäîæä¸ì, ïîêà ïîëüçîâàòåëü íå îòïóñòèë ïðàâóþ êíîïêó ìûøè
50,7 → 63,12
; êîìó ïðèíàäëåæèò òî÷êà?
mcall 34,[curx2],[cury2]
cmp al,1 ; 1 - ÿäðî
jne still_mouse
je @f
call restore_background
jmp still_mouse
;--------------------------------------
align 4
@@:
; check for icon by click down
call check_icons_position
mov eax,[click_pos]
66,6 → 84,8
call check_icons_position
pop eax
call restore_background
mov ebx,[click_pos]
test ebx,ebx
74,9 → 94,8
cmp eax,ebx
jne still_mouse
;--------------------------------------
align 4
start_appl:
mov esi,[adress_of_icon_data_2] ;[ebp+8]
;start_appl:
mov esi,[adress_of_icon_data_2]
mov ebx,1
mov edi,finfo.path
call fill_paths
172,3 → 191,79
mov [click_pos],eax
ret
;------------------------------------------------------------------------------
align 4
draw_select:
mcall 68,12,52*52*4+8
mov [draw_area_2],eax
mov ebx,52
mov [eax],ebx
mov [eax+4],ebx
;--------------------------------------
; draw black square
mov eax,-1
mov edi,[draw_area_2]
add edi,8
cld
mov ecx,52*52
rep stosd
;--------------------------------------
; draw white square
mov eax,0xff000000
mov edi,[draw_area_2]
add edi,8+(4*1)+(52*4*1)
mov ebx,50
cld
;--------------------------------------
align 4
@@:
mov ecx,50
rep stosd
add edi,2*4
dec ebx
jnz @b
;--------------------------------------
; draw black square
xor eax,eax
mov edi,[draw_area_2]
add edi,8+(4*2)+(52*4*2)
mov ebx,48
cld
;--------------------------------------
align 4
@@:
mov ecx,48
rep stosd
add edi,4*4
dec ebx
jnz @b
;--------------------------------------
mov edx,[current_X_mouse_thread]
shl edx,16
add edx,[current_Y_mouse_thread]
mov ebx,[draw_area_2]
add ebx,8
mcall 25,,<52,52>
mcall 68,13,[draw_area_2]
ret
;------------------------------------------------------------------------------
align 4
restore_background:
pusha
mov eax,[curx_restore]
mov ecx,eax
shl ecx,16
add ecx,eax
add ecx,52
mov eax,[cury_restore]
mov edx,eax
shl edx,16
add edx,eax
add edx,52
mcall 15,9
popa
ret
;------------------------------------------------------------------------------