Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 829 → Rev 830

/programs/develop/examples/editbox/trunk/EDITBOX.INC
2,7 → 2,7
;;;;;;;;;;;;;;;;;;
include 'editbox.mac' ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
;;;;;;;;;;;;;;;;;;
macro use_edit_box procinfo,scr_h,scr_w
macro use_edit_box
{
edit_box:
ed_width equ [edi] ;è¨à¨­  ª®¬¯®­¥­â 
16,18 → 16,18
ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
ed_text equ [edi+36] ;㪠§ â¥«ì ­  ¡ãä¥à
ed_flags equ [edi+40] ;ä« £¨
ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢
ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à 
ed_offset equ [edi+50] ;ᬥ饭¨¥
cl_curs_x equ [edi+54] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
cl_curs_y equ [edi+58] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
ed_shift_pos equ [edi+62] ;¯®«®¦¥­¨¥ ªãàá®à 
ed_shift_pos_old equ [edi+66] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
ed_size equ [edi+44] ;ª®«-¢® ᨬ¢®«®¢
ed_pos equ [edi+48] ;¯®§¨æ¨ï ªãàá®à 
ed_offset equ [edi+52] ;ᬥ饭¨¥
cl_curs_x equ [edi+56] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® å
cl_curs_y equ [edi+60] ;¯à¥¤ë¤ã饥 ª®®à¤¨­ â  ªãàá®à  ¯® ã
ed_shift_pos equ [edi+64] ;¯®«®¦¥­¨¥ ªãàá®à 
ed_shift_pos_old equ [edi+68] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 
;==========================================================
;=== ¯à®æ¥¤ãà  ¯à®à¨á®¢ª¨ =================================
;==========================================================
.draw:
pusha
pushad
;--- à¨á㥬 à ¬ªã ---
call .draw_border ; ”ã­ªæ¨ï áâ ¡¨«ì­ 
.draw_bg_cursor_text:
54,7 → 54,7
;=== ®¡à ¡®âª  ª« ¢¨ âãàë =================================
;==========================================================
.key:
pusha
pushad
test word ed_flags,ed_focus ; ¥á«¨ ­¥ ¢ 䮪ãá¥, ¢ë室¨¬
je .editbox_exit
test word ed_flags,ed_mouse_on
91,7 → 91,7
;=== ®¡à ¡®âª  ¬ëè¨ =======================================
;==========================================================
.mouse:
pusha
pushad
;debug
;----------------------------------------------------------
;--- ¯®«ãç ¥¬ á®áâ®ï­¨¥ ª­®¯®ª ¬ëè¨ -----------------------
117,13 → 117,14
je @f
jmp ._blur
;----------------------------------------------------------
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® ®ª­ 
;----------------------------------------------------------
@@: mcall 37,0
@@: mcall 37,1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”ã­ªæ¨ï ®¡à ¡®âª¨ ¬ë誨 ¯®«ã祭¨¥ ª®®à¤¨­ â ¨ ¯à®¢¥àª  ¨å + ¢ë¤¥«¥­¨ï
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_work_mause scr_h,scr_w
use_work_mouse
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Ž¡é¨¥ ä㭪樨 ®¡à ¡®âª¨
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
135,7 → 136,7
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;”㭪樨 ¤«ï à ¡®âë á mouse
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
use_mouse_func scr_w
use_mouse_func
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Bit mask from editbox
161,12 → 162,8
ed_mous_adn_b= 100011000b
ed_mouse_on_off=1111111011111111b
ed_height=14 ; ¢ëá®â 
macro draw_edit_boxes start,_end,use_f9,procinfo
macro draw_edit_boxes start,_end
{
if use_f9 eq
else
mcall 9,procinfo,-1
end if
mov edi,start
mov ecx,((_end-start)/ed_struc_size)
@@:
194,7 → 191,7
add edi,ed_struc_size
loop @b
}
ed_struc_size=70
ed_struc_size=72
struc edit_box width,left,top,color,shift_color,focus_border_color,\
blur_border_color,text_color,max,text,flags,size,pos
{
208,7 → 205,7
.text_color dd text_color
.max dd max
.text dd text
.flags dw flags+0
.flags dd flags+0
.size dd size+0
.pos dd pos+0
.offset dd 0
245,12 → 242,8
loop @b
}
 
macro draw_edit_box ed_ptr,use_f9,procinfo
macro draw_edit_box ed_ptr
{
if use_f9 eq
else
mcall 9,procinfo,-1
end if
mov edi,ed_ptr
call edit_box.draw
}
/programs/develop/examples/editbox/trunk/FAQ.txt
84,23 → 84,17
Ïåðåäàâàåìûå ïàðàìåòðû
editboxes - óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó áîêñîâ
editboxes_end - êîíåö èíôîðìàöèîííîé ñòðóêòóðû áîêñîâ
use_f9 è procinfo - ïðè ïåðåäà÷å ýòîãî ïàðàìåòðà - ïðè ïåðåðèñîâêè áîêñîâ áóäåò èñïîëçîâàíà ôóíöèÿ
mcall 9,procinfo,-1
êîòîðàÿ ïîëó÷àåò äàííûå î îêíå è ñêëàäûâàåò ïàðàìåòðû ïî àäðåñó procinfo- åãî òî æå îáÿçàòåëüíî íóæíî ïåðåäàâàòü!!!!
Åñëè â ïðîãðàììå óæå èñïîëüçóåòñÿ ýòà ôóíêöèÿ, òî íå íóæíî óêàçûâàòü äàííûå ïàðàìåòð!!!!
 
 
Êàê ïîä âàðèàíò ñóùåñòâóåò ìàêðîñ
draw_edit_box - îí èñïîëüçóåòñÿ åñëè âûâîäèòñÿ îäèí áîêñ
Ïåðåäàâàåìûé ïàðàìåòð
editboxes - óêàçàòåëü íà èíôîðìàöèîííóþ ñòðóêòóðó áîêñîâ
use_f9 è procinfo - ïðè ïåðåäà÷å ýòîãî ïàðàìåòðà - ïðè ïåðåðèñîâêè áîêñîâ áóäåò èñïîëüçîâàíà ôóíêöèÿ
mcall 9,procinfo,-1
êîòîðàÿ ïîëó÷àåò äàííûå î îêíå è ñêëàäûâàåò ïàðàìåòðû ïî àäðåñó procinfo- åãî òî æå îáÿçàòåëüíî íóæíî ïåðåäàâàòü!!!!
Åñëè â ïðîãðàììå óæå èñïîëüçóåòñÿ ýòà ôóíêöèÿ, òî íå íóæíî óêàçûâàòü äàííûå ïàðàìåòð!!!!
Áîëüøå íèêàêèõ ïàðàìåòðîâ ïåðåäàâàòü íå íóæíî.
**********
default_box - ìàêðîñ êîòîðûé ïðèâîäèò îñíîâíûå äàííûå ìàêðîñà ïî äåôîëòó ò.å. Ñíèìàåò áèòîâóþ ìàòðèöó âûäåëåíèÿ
Ñïåöèàëüíî äëÿ KFM :)) Íóæíî äîáàâèòü ýòîò êîä ïðè îáðàáîò÷èêå yes or no ïðè êîïèðîâàíèè. Åñëè áóäåò âåñòè ñåáÿ íåàäåêâàòíî - íåîáõîäèìî ðàñêîììåíòèðîâàòü ñòðîêè â äàííîì ìàêðîñå
òàê çà âñå âðåìÿ è íå áûë èñïîëüçîâàí â KFM
 
 
 
128,7 → 122,7
.text_color dd text_color
.max dd max
.text dd text
.flags dw flags+0
.flags dd flags+0
.size dd size+0
.pos dd 0 - ãäå áóäåò íàõîäèòüñÿ êóðñîð
.offset dd 0
/programs/develop/examples/editbox/trunk/History
6,6 → 6,7
Ýòî íå ìíîãî ôîëüêëåðà, ñâÿçàííîå, ñ òåì, ÷òî íàïèñàíèå ïðîãðàìì äëèííûå è ìóòîðíûé ïðîöåññ, è îí íå îáõîäèòüñÿ áåç âûðàæåíèé ïîäîáíîãî ñîäåðæàíèÿ, íî íå ïîïàäàþùåãî â êîìåíòàðèè è îñíîâíîé êîä.....
 
Òåïëîâ Àëåêñåé Þðüåâè÷ aka <Lrz>
; <Lrz> 23.07.2008 Ïåðåïèñàíà îáðàáîòêà ìûøêè áåç èñïîëüçîâàíèÿ 9-îé ôóíêöèè, óìåíüøèë ïðèìåðíî íà 50 áàéò êîä.
; <Lrz> 20.07.2007 Êîñìåòè÷åñêèå óëó÷øåíèÿ â êîäå ïðîãðàììû, èñïðàâëåí îäèí íåñóùåñòâåííûé áàã.
; <Lrz> 18.05.2007 Óëó÷øåíèå ïîíèìàíèÿ ðàáîòû ïðîãðàììû çà ñ÷åò âûíåñà îñíîâíûõ ôóíêöèé â îòäåëüíûå ìàêðîñû
; <Lrz> 14.05.2007 Èñïîëüçîâàíèå ìàêðîñîâ,óäîáî÷èòàåìîñü ïðîãðàììû èñïîëüçîâàíèå ìàêðîñà mcall äëÿ âûçîâà ñèñ. ôóíêöèé
/programs/develop/examples/editbox/trunk/build_ru.bat
1,3 → 1,3
@fasm editbox.asm editbox
@fasm editbox.asm editbox.kex
REM @kpack editbox
@pause
/programs/develop/examples/editbox/trunk/editbox.asm
7,7 → 7,7
include 'editbox.inc'
meos_app_start
align 4
use_edit_box procinfo,22,5
use_edit_box
;Ž¡« áâì ª®¤ 
code ;’®çª  ¢å®¤  ¢ ¯à®£à ¬¬ã
mcall 40,0x27 ;ãáâ ­®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩
41,7 → 41,7
draw_window: ;à¨á®¢ ­¨¥ ®ª­  ¯à¨«®¦¥­¨ï
mcall 12,1
mcall 0,(50*65536+390),(30*65536+200),0xb3AABBCC,0x805080DD,hed
draw_edit_boxes editboxes,editboxes_end,use_f9,procinfo ;à¨á®¢ ­¨¥ edit box'®¢
draw_edit_boxes editboxes,editboxes_end ;à¨á®¢ ­¨¥ edit box'®¢
mcall 12,2
ret
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
54,7 → 54,7
editboxes_end:
data_of_code dd 0
mouse_flag dd 0x0
hed db 'EDITBOX optimization and retype <Lrz> date 20.07.2007',0
hed db 'EDITBOX optimization and retype <Lrz> date 23.07.2008',0
rb 256
ed_buffer:
;.1: rb 514;256
64,6 → 64,5
;¤¢  § ¯ á­ëå ¡ ©â  ­¥®¡å®¤¨¬ë ¤«ï ⮣® çâ® ¡ë ­¥ ¯¥¯¥à¥¯¨á âì á«¥¤ãî騥© ¡ ©âë, ¢ ª®­æ¥ ¡ãä¥à  0
buffer_end:
align 16
procinfo process_information
meos_app_end
udata
/programs/develop/examples/editbox/trunk/editbox.mac
818,7 → 818,7
jmp .draw_cursor_text
}
 
macro use_mouse_func scr_w
macro use_mouse_func
{
;----------------------------------------------------------
;--- Ž¡à ¡®âª  .mouse_wigwag
829,12 → 829,10
;;;;;;;;;;;;;;;;;;
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
;;;;;;;;;;;;;;;;;;
mov ebx,dword [procinfo+34]
add ebx,ed_left
if scr_w eq
else
add ebx,dword scr_w
end if
test ax,0x8000
jnz .mleft
 
mov ebx,ed_left
cmp eax,ebx
jb .mleft
 
893,6 → 891,7
; popa
; ret
.mleft:
 
mov eax,ed_pos
cmp eax,0
jbe .mwigvag
919,7 → 918,7
jmp .mdraw
}
 
macro use_work_mause scr_h,scr_w
macro use_work_mouse
;----------------------------------------------------------
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
;----------------------------------------------------------
929,12 → 928,8
;----------------------------------------------------------
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
;----------------------------------------------------------
mov ebx,dword [procinfo + 38]
add ebx,ed_top
if scr_h eq
else
add ebx,scr_h
end if
 
mov ebx,ed_top
cmp ax,bx
jl ._blur;.mouse_end_no_focus
 
944,18 → 939,15
 
shr eax,16
 
mov ebx,dword [procinfo + 34]
add ebx,ed_left
if scr_w eq
else
add ebx,scr_w
end if
mov ebx,ed_left
cmp ax,bx
jl ._blur;.mouse_end_no_focus
 
add ebx,ed_width
 
cmp ax,bx
jg ._blur;.mouse_end_no_focus
 
;--- ¨§¬¥­ï¥¬ ¯®§¨æ¨î ªãàá®à  ---
push eax
mov ebp,ed_color
962,15 → 954,10
call .clear_cursor
pop eax
._mvpos:
mov ebx,dword [procinfo+ 34]
xor edx,edx
sub eax,ed_left
sub eax,ebx
if scr_w eq
else
add ebx,scr_w
sub eax,2
end if
 
mov ebx,6
div bx
add eax,ed_offset
1029,7 → 1016,7
; Œ ªà®á ¢ë室 
macro edit_ex
{
popa
popad
ret
}
macro debug