Subversion Repositories Kolibri OS

Rev

Rev 463 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 463 Rev 468
Line 1... Line -...
1
;  04.04.2007 ˆá¯à ¢«¥­® ã¯à ¢«¥­¨¥ ¬ë誮©, ¯à¨ 㤠«¥­¨¨ ¯®á«¥¤­¥£® ᨬ¢®«  ¢ ¡ãä¥à¥ ¯¨è¥âìáï 0 (ᯠᨡ® Mario79)
-
 
2
;  04.04.2007 Œ®¤¥à­¨§¨à®¢ « á¨á⥬㠢뤥«¥­¨ï, áãé¥á⢥­­® ¯¥à¥¤¥« ­® ã¯à ¢«¥­¨¥ ¨ ®¡à ¡®âª , ¤®¡ ¢«¥­­® ¡«®ª¨à®¢ ­¨ï ®¡à ¡®âª¨ ¤àã£¨å ¡®ªá®¢, ¢® ¢à¥¬ï ¢ë¤¥«¥­¨ï ¬ë誮© ⥪áâ , ¤«ï í⮣® ¢ ⥪á⠯ணࠬ¬ë ­¥®¡å®¤¨¬® ¤®¡ ¢¨âì ¨¤¥­â¨ä¨ª â®à ¡®ªá  â.¥. dd 0x0 ¨ ¢ ­¥£® ¡ã¤¥â ¯®¬¥é âìáï 㪠 â¥«ì ­  editbox
-
 
3
;  30.03.2007 ¥à¥¤¥« « ¯à®æ¥¤ãà㠢뤥«¥­¨ï, ⥯¥àì ⥪á⠢뤥«ï¥âáï ⮫쪮 ⮫쪮 ¬ë誮©
-
 
4
;  09.03.2007 „®¯¨á « ã¯à ¢«¥­¨¥ mouse + shift  ¢ë¤¥«¥­¨¥ ¨ ¯¥à¥¬¥é¥­¨¥
-
 
5
;  07.03.2007 „®¯¨á « ã¯à ¢«¥­¨¥ á shift home + end ãá¯à ¢¨« ­¥áª®«ìª® ¡ £®¢
-
 
6
;  06.03.2007 ¥à¥¯¨á « ¯®«­®áâìî  «£®à¨â¬ ã¯à ¢«¥­¨ï shift
-
 
7
;  15.02.2007 ã«ãç襭¨¥ á­ïâ¨ï ¢ë¤¥«¥­¨ï ¨ ¯¥à¥à¨á®¢ª¨ ®ç¨é ¥¬®© ®¡« áâ¨, §­ ç¨â¥«ì­® ¯à¨ïâ­¥¥ à ¡®â ¥â ª®¬¯®­¥­â
-
 
8
;  13.02.2007 ã¡à « ¯® ¢®§¬®¦­®á⨠¬¥àæ ­¨¥, ã«ãç襭  ®¡à ¡®âª  ¯¥à¥à¨á®¢ª¨ ä®­ 
-
 
9
; ¤®¡ ¢¨« ä¨âçã ¢­¥á¥­¨ï 0å0 ¯®  ¤à¥áã ed_size ¨­ ç¥ ã Maxxx32 ¡ë«¨ ­¥á®áâ몮¢ª¨ ¢ ª®¤¥. à¨ç¨­  ¢ ⮬, çâ® ®¯â¨¬¨§ æ¨ï ¡ë«  ᢥ¤¥­  ª ⮬ã, çâ® ï ­¥ ç¨á⨫ ᨬ¢®«ë ¢ ¡ãä¥à¥, ª®£¤  㤠«ï«, ï ¯à®áâ® ¨å ­¥ ¢ë¢®¤¨«, ¨ ¯®â®¬, ª®£¤  ¢­®á¨«áï ­®¢ë© ᨬ¢®«, ®­ ¯®¯à®áâã § â¨à « 㦥 ¨¬¥î騩áï. …᫨ ¡ë, ¯à®£à ¬¬  ®¡à ¡ â뢠«  ª®­¥æ áâப¨ ¯® ed_size, ¯à®¡«¥¬ë ­¥ ¢®§­¨ª«®. ® ᥩç á íâ®â ­¥¤®áâ â®ª ¨á¯à ¢«¥­.
-
 
10
;  01.02.2007 ¤®à ¡®âª  edit_box, ¨á¯à ¢¨« ¡ £¨.
-
 
11
;  26.01.2007 ­®à¬ «ì­ ï à ¡®â  ª®¬¯ ­¥­â  ¨á¯à ¢¨« äãªæ¨î .check_offset
-
 
12
;  24.01.2007 ¯®ä¨ªá¥« ¡ £¨ ¢ë§¢ ­ë¥ ­¥ ¯à ¢¨«ì­ë¬ ª®¤®¬ )).
-
 
13
;  22.01.2007 ¨§¡ ¢¨«áï ®â £«îª®¢ ¯à¨ à ¡®â¥ á ¢ë¤¥«¥­¨¥¬ ¨ 㤠«¥­¨¥, ª®à४⭠ï à ¡®â  ª« ¢¨è¥© del & backspase
-
 
14
;  20.01.2007 ॠ«¨§®¢ « ¢ë¤¥«¥­¨¥ ⥪áâ  ¯® shift
-
 
15
;  12.12.2006 ॠ«¨§®¢ « ¯®¤¤¥à¦ªã ª­®¯ª¨ insert ¨ ᥣ®¤ï ª®¬¯®­¥­â ¯®ç⨠ࠡ®â ¥â!!!!
-
 
16
;  07.12.2006 ¯à®¤®«¦ ¥âáï à ¡®â  ­ ¤ ¯¥à¥à ¡®âª®© ª®¬¯®­¥­â ,¨§¬¥­¥­¨ï¬ ¯®¤¢¥à£«¨áì ¬­®£¨¥ ä㭪樨, ¯¥à¥à ¡®â ­ ¢ë¢®¤ ⥪áâ ,   â ª  ¦¥  «£®à¨â¬ ¢­¥á¥­¨ï ᨬ¢®«®¢.
1
; SEE YOU File FAQ.txt and HISTORY. Good Like! 
17
;  03.09.2006 ¯® ¢®§¬®¦­®á⨠®âª § «áï ®â 16 ¡¨â­®©  à¨ä¬¥â¨ª¨, ¤®¡ ¢¨« ­®¢ë¥ ¡ £¨
-
 
18
;  09.08.2006 ¯à®¨§¢¥¤¥­  ®¯â¨¬¨§ æ¨ï à ¡®âë ª®­¯®ª DEL ¨ Backspace, 㬥­ì襭 à §¬¥à ¢ë¯®«­ï¥¬®£® ª®¤ .
-
 
19
;  21.07.2006 ¤®¡ ¢«¥­  äã­ªæ¨ï ª­®¯ª¨ Del, ⥯¥àì ¬®¦­® 㤠«ïâì ᨬ¢®«ë ¯à¨ ¯®¬®é¨ ¤ ­­®© ª« ¢¨è¨
-
 
20
; €¢â®à: …¢â¨å®¢ Œ ªá¨¬ (Maxxxx32) email: maxxxxm@mail.ru
-
 
21
; „ â  ¯®á«¥¤­¨å ¨§¬¥­¥­¨©: 13.06.06 10:40
-
 
22
;   ¯¨è¨â¥ ¢ ¨á室­®¬ ª®¤¥ ᢮¥© ¯à®£à ¬¬ë use_edit_box,
-
 
23
; íâ® ¢áâ ¢¨â ­¥®¡å®¤¨¬ë¥ ¯à®æ¥¤ãàë ¢ ª®¤ ¢ è¥© ¯à®£à ¬¬ë.
-
 
24
;  à®æ¥¤ãàë:
-
 
25
;   edit_box.draw - ¯®«­ ï ¯¥à¥à¨á®¢ª ;
-
 
26
;   edit_box.key - ®¡à ¡®âª  ª« ¢¨ âãàë;
-
 
27
;   edit_box.mouse - ®¡à ¡®âª  ¬ëè¨;
-
 
28
;   edit_box.focus - ãáâ ­®¢ª  䮪ãá ;
-
 
29
;   edit_box.blur - ¥£® à §¬ë¢ ­¨¥;
-
 
30
;   edit_box.get_n - ¯®«ãç¨âì ª®«¨ç¥á⢮ ¯à®à¨á®¢ë¢ ¥¬ëå ᨬ¢®«®¢.
-
 
31
;  à¨ ¢ë§®¢¥ «î¡ëå ¨§ íâ¨å ¯à®æ¥¤ãà ¢ ॣ¨áâॠedi á«¥¤ã¥â
-
 
32
; ®áâ ¢¨âì 㪠§ â¥«ì ­  áâàãªâãàã.
-
 
33
;  à¨¬¥à áâàãªâãàë:
-
 
34
; some_edit edit_box 100,10,30,0x00ffffff,0,0x00aaaaaa,0,255,some_edit_text
-
 
35
; ¤«¨­ , ¢ëá®â , ¢¥àå, 梥â ä®­ , 梥â à ¬ª¨, ¥á«¨ ¢ë¡à ­,
-
 
36
; 梥â à ¬ª¨, ¥á«¨ ­¥ ¢ë¡à ­, ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ ᨬ¢®«®¢,
-
 
37
; 㪠§ â¥«ì ­  ¡ãä¥à, £¤¥ ¡ã¤ãâ åà ­¨âáï ᨬ¢®«ë. ãä¥à ¤®«¦¥­
-
 
38
; ®ª ­ç¨¢ âìáï ­ã«¥¬, ­ ¯à¨¬¥à ¥á«¨ ¬ ªá¨¬ «ì­®¥ ª®«¨ç¥á⢮ 255:
-
 
39
;  some_edit_text:
-
 
40
;       rb      256 ;255+1
-
 
41
 
-
 
42
;  à¨¬¥à ¢ë§®¢  ¯à®æ¥¤ãàë:
-
 
43
;       mov     edi,some_edit
-
 
44
;       call    edit_box.draw
-
 
45
 
-
 
46
;  à¨ ¢ë§®¢¥ ¯à®æ¥¤ãàë edit_box.key ª®¤ ª« ¢¨è¨ ¤®«¦¥­
-
 
47
; ­ å®¤¨âáï ¢ ah, â® ¥áâì ¯¥à¥¤ ¢ë§®¢®¬ í⮩ ¯à®æ¥¤ãàë ­ ¤® ¢ë§¢ âì
-
 
48
; 2-ãî á¨á¥¬­ãî äã­ªæ¨î, ­ ¯à¨¬¥à:
-
 
49
;       mov     eax,2
-
 
50
;       int     0x40
-
 
51
;       mov     edi,some_edit1
-
 
52
;       call    edit_box.key
-
 
53
;       mov     edi,some_edit2
-
 
54
;       call    edit_box.key
-
 
55
;  ¥à¥¤ ¢ë§®¢®¬ ®¡à ¡®â稪  ¬ëè¨ á«¥¤ã¥â ¯à®¢¥à¨âì, ï¥âáï «¨ ®ª­®
-
 
56
;  ªâ¨¢­ë¬.
-
 
57
;  …᫨ 饫箪 ¬ëè¨ ¡ë« ¯à®©§¢¥¤¥­ §  ¯à¥¤¥« ¬¨ edit box
-
 
58
; 䮪ãá â¥àï¥âáï.
-
 
59
;;;;;;;;;;;;;;;;;;
2
;;;;;;;;;;;;;;;;;;
60
include 'editbox.mac'    ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
3
include 'editbox.mac'    ;¬ ªà®á ª®â®àë© ¤®«¦¥­ ®¡«¥£ç¨âì ¦¨§­ì :) ᯥ樠«ì­® ¤«ï editbox
61
;;;;;;;;;;;;;;;;;;
4
;;;;;;;;;;;;;;;;;;
62
macro use_edit_box
5
macro use_edit_box structure_of_potock,scr_h,scr_w
63
{
6
{
64
edit_box:
7
edit_box:
65
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
8
ed_width        equ [edi]               ;è¨à¨­  ª®¬¯®­¥­â 
66
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
9
ed_left         equ [edi+4]             ;¯®«®¦¥­¨¥ ¯® ®á¨ å
67
ed_top          equ [edi+8]             ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
10
ed_top          equ [edi+8]             ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
Line 907... Line 850...
907
        jz      @f
850
        jz      @f
908
        cmp     eax,edi
851
        cmp     eax,edi
909
        je      @f
852
        je      @f
910
        jmp     ._blur
853
        jmp     ._blur
911
;----------------------------------------------------------
854
;----------------------------------------------------------
912
;--- ¬®¤¨ä¨æ¨à㥬 ª®®à¤¨­ âë, â.¥. ¤®¡ ¢«ï¥¬ ª®®à¤¨­ âë ®ª­ .
-
 
913
;----------------------------------------------------------
-
 
914
@@:     mcall   9,structure_of_potock,-1
-
 
915
;----------------------------------------------------------
-
 
916
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
855
;--- ¯®«ãç ¥¬ ª®®à¤¨­ âë ¬ëè¨ ®â­®á¨â¥«ì­® 0 â.¥ ¢á¥© ®¡« á⨠íªà ­ 
917
;----------------------------------------------------------
856
;----------------------------------------------------------
918
        mcall   37,0
857
@@:     mcall   37,0
919
;----------------------------------------------------------
858
;----------------------------------------------------------
920
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
859
;--- € ­¥ 㤥ন¢ ¥¬ «¨ ¬ë ª« ¢¨èã ¬ë誨, ¯¥à¥¬¥é ï ªãàá®à, ¢® ¢á¥ à §­ë¥ áâ®à®­ë?
921
;----------------------------------------------------------
860
;----------------------------------------------------------
922
        mov     ecx,structure_of_potock
861
        mov     ecx,structure_of_potock
923
        test    word ed_flags,ed_mouse_on
862
        test    word ed_flags,ed_mouse_on
Line 925... Line 864...
925
;----------------------------------------------------------
864
;----------------------------------------------------------
926
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
865
;--- ¯à®¢¥à塞, ¯®¯ ¤ ¥â «¨ ªãàá®à ¢ edit box -------------
927
;----------------------------------------------------------
866
;----------------------------------------------------------
928
        mov     ebx,dword [ecx+38]
867
        mov     ebx,dword [ecx+38]
929
        add     ebx,ed_top
868
        add     ebx,ed_top
-
 
869
if scr_h eq 
-
 
870
else
930
        add     ebx,22
871
        add     ebx,scr_h
-
 
872
end if
931
        cmp     ax,bx
873
        cmp     ax,bx
932
        jl      ._blur;.mouse_end_no_focus
874
        jl      ._blur;.mouse_end_no_focus
Line 933... Line 875...
933
 
875
 
934
        add     ebx,ed_height
876
        add     ebx,ed_height
Line 937... Line 879...
937
 
879
 
Line 938... Line 880...
938
        shr     eax,16
880
        shr     eax,16
939
 
881
 
-
 
882
        mov     ebx,dword [ecx+34]
-
 
883
        add     ebx,ed_left
940
        mov     ebx,dword [ecx+34]
884
if scr_w eq 
-
 
885
else
941
        add     ebx,ed_left
886
        add     ebx,scr_w
942
        add     ebx,5
887
end if
Line 943... Line 888...
943
        cmp     ax,bx
888
        cmp     ax,bx
944
        jl      ._blur;.mouse_end_no_focus
889
        jl      ._blur;.mouse_end_no_focus
Line 955... Line 900...
955
        mov     ecx,structure_of_potock
900
        mov     ecx,structure_of_potock
956
        mov     ebx,dword [ecx+34]
901
        mov     ebx,dword [ecx+34]
957
        xor     edx,edx
902
        xor     edx,edx
958
        sub     eax,ed_left
903
        sub     eax,ed_left
959
        sub     eax,ebx
904
        sub     eax,ebx
-
 
905
if scr_w eq 
-
 
906
else
-
 
907
        add     ebx,scr_w
960
        sub     eax,5-2    ;⮫騭  ®¡¢®¤ª¨ ᪨­  =5
908
        sub     eax,2
-
 
909
end if
961
        mov     ebx,6
910
        mov     ebx,6
962
        div     bx
911
        div     bx
963
        add     eax,ed_offset
912
        add     eax,ed_offset
964
        cmp     eax,ed_size
913
        cmp     eax,ed_size
965
        jna     ._mshift
914
        jna     ._mshift
Line 1035... Line 984...
1035
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
984
;;¯à®æ¥¤ãà  ®¡à ¡®âª¨ ¯®«®¦¥­¨ï ¢ë¤¥«¥­­®£® ⥪áâ , ª®£¤  ¯à®¨á室¨â ¢ë室 §  ¯à¥¤¥«ë editbox
1036
;;;;;;;;;;;;;;;;;;
985
;;;;;;;;;;;;;;;;;;
1037
        mov     ecx,structure_of_potock
986
        mov     ecx,structure_of_potock
1038
        mov     ebx,dword [ecx+34]
987
        mov     ebx,dword [ecx+34]
1039
        add     ebx,ed_left
988
        add     ebx,ed_left
-
 
989
if scr_w eq 
-
 
990
else
1040
        add     ebx,5
991
        add     ebx,scr_w
1041
 
992
end if
1042
	cmp	eax,ebx
993
        cmp     eax,ebx
1043
	jb	.mleft
994
        jb      .mleft
Line 1044... Line 995...
1044
 
995
 
1045
	add	ebx,ed_width
996
        add     ebx,ed_width
Line 1096... Line 1047...
1096
	jmp	.draw_cursor_text
1047
        jmp     .draw_cursor_text
1097
;       popa
1048
;       popa
1098
;       ret
1049
;       ret
1099
.mleft:
1050
.mleft:
1100
	mov	eax,ed_pos
1051
        mov     eax,ed_pos
1101
	test	eax,eax
1052
        cmp     eax,0
1102
	jz	.mwigvag
1053
        jbe      .mwigvag
1103
	dec	eax
1054
        dec     eax
1104
	call	.check_offset
1055
        call    .check_offset
1105
	push	eax
1056
        push    eax
1106
	mov	ebx,ed_shift_pos
1057
        mov     ebx,ed_shift_pos
1107
	mov	ebp,shift_color
1058
        mov     ebp,shift_color
Line 1142... Line 1093...
1142
ed_insert_cl=   1111111101111111b
1093
ed_insert_cl=   1111111101111111b
1143
ed_mouse_on =          100000000b
1094
ed_mouse_on =          100000000b
1144
ed_mous_adn_b=         100011000b
1095
ed_mous_adn_b=         100011000b
1145
ed_mouse_on_off=1111111011111111b
1096
ed_mouse_on_off=1111111011111111b
1146
ed_height=14 ; ¢ëá®â 
1097
ed_height=14 ; ¢ëá®â 
1147
macro draw_edit_boxes start,end
1098
macro draw_edit_boxes start,_end,use_f9,structure_of_potock
1148
{
1099
{
-
 
1100
if use_f9 eq 
-
 
1101
else
-
 
1102
        mcall   9,structure_of_potock,-1
-
 
1103
end if
1149
        mov     edi,start
1104
        mov     edi,start
1150
        mov     ecx,((end-start)/ed_struc_size)
1105
        mov     ecx,((_end-start)/ed_struc_size)
1151
@@:
1106
@@:
1152
        call    edit_box.draw
1107
        call    edit_box.draw
1153
        add     edi,ed_struc_size
1108
        add     edi,ed_struc_size
1154
        loop    @b
1109
        loop    @b
1155
}
1110
}
Line 1156... Line 1111...
1156
 
1111
 
1157
macro mouse_edit_boxes start,end
1112
macro mouse_edit_boxes start,_end
1158
{
1113
{
1159
        mov     edi,start
1114
        mov     edi,start
1160
        mov     ecx,((end-start)/ed_struc_size)
1115
        mov     ecx,((_end-start)/ed_struc_size)
1161
@@:
1116
@@:
1162
        call    edit_box.mouse
1117
        call    edit_box.mouse
1163
        add     edi,ed_struc_size
1118
        add     edi,ed_struc_size
1164
        loop    @b
1119
        loop    @b
Line 1222... Line 1177...
1222
        mov     ed_blur_border_color,eax
1177
        mov     ed_blur_border_color,eax
1223
        add     edi,ed_struc_size
1178
        add     edi,ed_struc_size
1224
        loop    @b
1179
        loop    @b
1225
}
1180
}
Line 1226... Line 1181...
1226
 
1181
 
1227
macro draw_edit_box ed_ptr
1182
macro draw_edit_box ed_ptr,use_f9,structure_of_potock
-
 
1183
{
-
 
1184
if use_f9 eq 
-
 
1185
else
-
 
1186
        mcall   9,structure_of_potock,-1
1228
{
1187
end if
1229
        mov     edi,ed_ptr
1188
        mov     edi,ed_ptr
1230
        call    edit_box.draw
1189
        call    edit_box.draw
Line 1231... Line 1190...
1231
}
1190
}
Line 1239... Line 1198...
1239
macro key_edit_box ed_ptr
1198
macro key_edit_box ed_ptr
1240
{
1199
{
1241
        mov     edi,ed_ptr
1200
        mov     edi,ed_ptr
1242
        call    edit_box.key
1201
        call    edit_box.key
1243
}
1202
}
1244
1203
macro default_box ed_ptr
-
 
1204
{
-
 
1205
pusha
-
 
1206
;	xor	eax,eax
-
 
1207
;	mov 	ed_shift_pos,eax
-
 
1208
;	mov	ed_shift_pos_old,eax
-
 
1209
	and	word ed_flags,ed_shift_cl
-
 
1210
;	mov	ed_offset,eax
-
 
1211
popa
-
 
1212
}
-
 
1213
1245
1214