Subversion Repositories Kolibri OS

Rev

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

Rev 7397 Rev 7402
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
; Hot Angles Config ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4
; Compile with FASM
4
; Compile with FASM
5
; Version 0.2: Sep 19, 2018
5
; Version 0.3: Sep 22, 2018
Line 6... Line 6...
6
 
6
 
7
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
7
; Copyright (c) 2018, Efremenkov Sergey aka TheOnlyMirage
8
; All rights reserved.
8
; All rights reserved.
9
; Redistribution and use in source and binary forms, with or without modification,
9
; Redistribution and use in source and binary forms, with or without modification,
Line 40... Line 40...
40
dd 0, 0
40
dd 0, 0
Line 41... Line 41...
41
 
41
 
42
; Íà÷àëî îáëàñòè êîäà
42
; Íà÷àëî îáëàñòè êîäà
43
include 'lang.inc'       ;ïîääåðæêà ÿçûêîâ ïðè êîìïèëÿöèè
43
include 'lang.inc'       ;ïîääåðæêà ÿçûêîâ ïðè êîìïèëÿöèè
-
 
44
include '../../macros.inc'
-
 
45
include '../../proc32.inc'
-
 
46
include '../../dll.inc'
44
include '../../macros.inc'
47
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
45
include 'editbox.inc'
48
;;include 'editbox.inc'
46
use_edit_box
49
;;use_edit_box
47
include 'check.inc'      ;âêëþ÷èòü ôàéë check.inc
50
;;include 'check.inc'      ;âêëþ÷èòü ôàéë check.inc
48
version_ch1              ;íåîáõîäèìûé ìàêðîñ äëÿ âêëþ÷åíèÿ new âåðñèè check_box1
51
;;version_ch1              ;íåîáõîäèìûé ìàêðîñ äëÿ âêëþ÷åíèÿ new âåðñèè check_box1
Line 49... Line 52...
49
use_check_box            ;èñïîëüçóÿ ìàêðîñû, âíåñòè ïðîöåäóðû äëÿ ðèñîâàíèÿ ÷åê áîêñà
52
;;use_check_box            ;èñïîëüçóÿ ìàêðîñû, âíåñòè ïðîöåäóðû äëÿ ðèñîâàíèÿ ÷åê áîêñà
Line 50... Line 53...
50
 
53
 
51
Otstup = 30
54
Otstup = 30
Line 58... Line 61...
58
    mov  ebx,3
61
    mov  ebx,3
59
    mov  ecx, sc
62
    mov  ecx, sc
60
    mov  edx, sizeof.system_colors
63
    mov  edx, sizeof.system_colors
61
    mcall
64
    mcall
Line -... Line 65...
-
 
65
 
-
 
66
 
-
 
67
    stdcall dll.Load, @IMPORT
-
 
68
    or      eax, eax
-
 
69
    jnz     exit
-
 
70
 
-
 
71
    invoke  init_checkbox, ch1
62
 
72
 
63
    mov  eax,40          ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
73
    mov  eax,40          ;óñòàíîâèòü ìàñêó äëÿ îæèäàåìûõ ñîáûòèé
64
    mov  ebx,0x27        ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
74
    mov  ebx,0x27        ;ñèñòåìà áóäåò ðåàãèðîâàòü òîëüêî íà ñîîáùåíèå î ïåðåðèñîâêå, íàæàòà êíîïêà, îïðåäåë¸ííàÿ ðàíåå, ñîáûòèå îò ìûøè (÷òî-òî ñëó÷èëîñü - íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè)
Line 65... Line 75...
65
    mcall
75
    mcall
Line 82... Line 92...
82
 
92
 
83
    cmp     eax, 3       ; Event button in buffer ?
93
    cmp     eax, 3       ; Event button in buffer ?
84
    je      button       ; Expl.: User has pressed one of the
94
    je      button       ; Expl.: User has pressed one of the
Line 85... Line 95...
85
                         ; applications buttons.
95
                         ; applications buttons.
86
 
96
 
-
 
97
    ;mouse_edit_boxes editboxes,editboxes_end
-
 
98
    ;mouse_check_boxes check_boxes,check_boxes_end  ;ïðîâåðêà ÷åê áîêñà
-
 
99
    invoke  edit_box_mouse, editLU
-
 
100
    invoke  edit_box_mouse, editLD
-
 
101
    invoke  edit_box_mouse, editRU
-
 
102
    invoke  edit_box_mouse, editRD
87
    mouse_edit_boxes editboxes,editboxes_end
103
    invoke  check_box_mouse, ch1  ;ïðîâåðêà ÷åê áîêñà
Line 88... Line 104...
88
    mouse_check_boxes check_boxes,check_boxes_end  ;ïðîâåðêà ÷åê áîêñà
104
 
89
    jmp     event_wait
105
    jmp     event_wait
90
 
106
 
Line 91... Line 107...
91
 
107
 
92
red:                     ;îáðàáîòêà ñîáûòèÿ ïåðåðèñîâêè îêíà
108
red:                     ;îáðàáîòêà ñîáûòèÿ ïåðåðèñîâêè îêíà
93
   call    draw_window
109
   call    draw_window
94
   jmp     event_wait
110
   jmp     event_wait
-
 
111
 
-
 
112
key:                                    ; Keypress event handler
-
 
113
        mov     eax, 2                  ; The key is returned in ah. The key must be
-
 
114
        mcall                           ; read and cleared from the system queue.
95
 
115
        ;key_edit_boxes editboxes,editboxes_end
Line 96... Line 116...
96
key:                                    ; Keypress event handler
116
        invoke  edit_box_key, editLU
97
        mov     eax, 2                  ; The key is returned in ah. The key must be
117
        invoke  edit_box_key, editLD
98
        mcall                           ; read and cleared from the system queue.
118
        invoke  edit_box_key, editRU
Line 99... Line 119...
99
        key_edit_boxes editboxes,editboxes_end
119
        invoke  edit_box_key, editRD
100
        jmp     event_wait              ; Just read the key, ignore it and jump to event_wait.
120
        jmp     event_wait              ; Just read the key, ignore it and jump to event_wait.
-
 
121
 
101
 
122
button:                                 ; Buttonpress event handler
102
button:                                 ; Buttonpress event handler
123
    mov     eax,17                  ; The button number defined in window_draw
103
    mov     eax,17                  ; The button number defined in window_draw
124
    mcall                           ; is returned to ah.
104
    mcall                           ; is returned to ah.
125
 
105
 
126
    cmp     ah,1                    ; button id=1 ?
Line 174... Line 195...
174
        mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî
195
        mcall 68, 12, ecx ;âûäåëÿåì áëîê ïàìÿòè ïîä áóôåð ñîäåðæèìîãî
175
        mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó
196
        mov dword[createFile.data_adr], eax ;ñîõðàíÿåì àäðåñ áóôåðà â ñòðóêòóðó
Line 176... Line 197...
176
 
197
 
177
        ;çàïîëíèì áóôåð ñîäåðæèìîãî:
198
        ;çàïîëíèì áóôåð ñîäåðæèìîãî:
178
        mov byte[eax], 110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò
199
        mov byte[eax], 110; 'n' ;ïî óìîë÷àíèþ ôëàã ñíÿò
179
        cmp word[ch1.flags], ch_flag_en   ;âûñòàâëåí checkBox èëè íåò?
200
        cmp word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;110b ;ch_flag_en   ;âûñòàâëåí checkBox èëè íåò?
180
        jne applyButton.no
201
        jne applyButton.no
181
        mov byte[eax], 121 ;èíà÷å êëàä¸ì 'y'
202
        mov byte[eax], 121 ;èíà÷å êëàä¸ì 'y'
182
.no:
203
.no:
183
        inc eax
204
        inc eax
Line 330... Line 351...
330
 
351
 
331
.chStart:
352
.chStart:
332
   cmp byte[eax], 121 ;'y'  ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ
353
   cmp byte[eax], 121 ;'y'  ;âûñòàâëÿåì checkBox - ïàðàìåòð àêòèâíîñòè ïðèëîæåíèÿ
333
   jne loadConfig.no
354
   jne loadConfig.no
334
.yes:
355
.yes:
335
   mov word[ch1.flags], ch_flag_en
356
   mov word[ch1.flags], 110b ;ch_flag_en and ch_flag_middle ;110b ;ch_flag_en
336
   jmp loadConfig.chEnd
357
   jmp loadConfig.chEnd
337
.no:
358
.no:
338
   mov word[ch1.flags], 0
359
   mov word[ch1.flags], 100b ;0 and ch_flag_middle ;100b
339
.chEnd:
360
.chEnd:
Line 340... Line 361...
340
   ;jmp loadConfig.end   ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
361
   ;jmp loadConfig.end   ;êîìàíäà äëÿ óäîáñòâà îòëàäêè è ïîèñêà îøèáîê
341
 
362
 
Line 540... Line 561...
540
        mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
561
        mov     esi, 0x808899ff         ; color of grab bar  RRGGBB
541
                                        ; 0x80000000 = color glide
562
                                        ; 0x80000000 = color glide
542
        mov     edi, title
563
        mov     edi, title
543
        mcall
564
        mcall
Line 544... Line 565...
544
 
565
 
545
        draw_check_boxes check_boxes,check_boxes_end ;ðèñîâàíèå ÷åêáîêñîâ
566
        ;draw_check_boxes check_boxes,check_boxes_end ;ðèñîâàíèå ÷åêáîêñîâ
-
 
567
        ;draw_edit_boxes editboxes,editboxes_end      ;ðèñîâàíèå edit box'îâ
-
 
568
        invoke  edit_box_draw, editLU  ;ðèñîâàíèå edit box'îâ
-
 
569
        invoke  edit_box_draw, editLD
-
 
570
        invoke  edit_box_draw, editRU
-
 
571
        invoke  edit_box_draw, editRD
-
 
572
 
Line 546... Line 573...
546
        draw_edit_boxes editboxes,editboxes_end      ;ðèñîâàíèå edit box'îâ
573
        invoke  check_box_draw, ch1    ;ðèñîâàíèå ÷åêáîêñîâ
547
 
574
 
548
        ;ðèñóåì êíîïêó
575
        ;ðèñóåì êíîïêó
549
        mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè
576
        mov ebx, (WindowsWidth-80-Otstup)*65536 + 80 ;êîîðäèíàòà X, øèðèíà êíîïêè
Line 581... Line 608...
581
        ret
608
        ret
Line 582... Line 609...
582
 
609
 
-
 
610
 
-
 
611
 
-
 
612
 
-
 
613
align 16
-
 
614
@IMPORT:
-
 
615
 
-
 
616
library box_lib, 'box_lib.obj'
-
 
617
 
-
 
618
import  box_lib,\
-
 
619
        edit_box_draw,          'edit_box',\
-
 
620
        edit_box_key,           'edit_box_key',\
-
 
621
        edit_box_mouse,         'edit_box_mouse',\
-
 
622
        init_checkbox,          'init_checkbox2',\
-
 
623
        check_box_draw,         'check_box_draw2',\
-
 
624
        check_box_mouse,        'check_box_mouse2',\
-
 
625
        option_box_draw,        'option_box_draw',\
583
 
626
        option_box_mouse,       'option_box_mouse'
584
 
627
 
585
 
628
 
586
align 4
629
 
587
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
630
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
588
;DATA äàííûå  äëÿ check_box1 - èñïîëüçóåò ñèñòåìíûå öâåòà
631
;DATA äàííûå  äëÿ check_box1 - èñïîëüçóåò ñèñòåìíûå öâåòà
589
;Ôîðìàò äàííûõ ÷åê áîêñà:
632
;Ôîðìàò äàííûõ ÷åê áîêñà:
590
;   êîîðäèíàòà õ, êîîðäèíàòà ó, óêàçàòåëü íà íà÷àëî ñòðîêè, äëèíà ñòðîêè
633
;   êîîðäèíàòà õ, êîîðäèíàòà ó, óêàçàòåëü íà íà÷àëî ñòðîêè, äëèíà ñòðîêè
-
 
634
;ñîñòîÿíèå ðàáîòû óòèëèòû: àêòèâíà/íåò
-
 
635
;check_boxes:
-
 
636
;   ch1 check_box1 30,160,ch_text.1,ch_text.e1-ch_text.1,ch_flag_en
Line 591... Line 637...
591
;ñîñòîÿíèå ðàáîòû óòèëèòû: àêòèâíà/íåò
637
;check_boxes_end:
Line 592... Line 638...
592
check_boxes:
638
 
Line 603... Line 649...
603
title   db  "Š®­ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
649
title   db  "Š®­ä¨£ãà â®à ã⨫¨âë Hot Angles", 0
604
buttonText db "à¨¬¥­¨âì", 0
650
buttonText db "à¨¬¥­¨âì", 0
605
buttonTextSize = 9
651
buttonTextSize = 9
606
buttonTextXoffset = 12
652
buttonTextXoffset = 12
Line -... Line 653...
-
 
653
 
607
 
654
ch_text db '‚ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"', 0
608
ch_text:        ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ
655
;ch_text:        ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ
609
.1 db '‚ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"'
656
;.1 db '‚ª«îç¨âì/ ªâ¨¢¨à®¢ âì "Hot Angles"'
Line 610... Line 657...
610
.e1:
657
;.e1:
611
 
658
 
612
superText:
659
superText:
613
  .lu db 'Š®¬ ­¤  «¥¢®£® ¢¥àå­¥£® 㣫 : ', 0
660
  .lu db 'Š®¬ ­¤  «¥¢®£® ¢¥àå­¥£® 㣫 : ', 0
Line 625... Line 672...
625
title   db  "Hot Angles Configurator", 0
672
title   db  "Hot Angles Configurator", 0
626
buttonText db "Apply", 0
673
buttonText db "Apply", 0
627
buttonTextSize = 5
674
buttonTextSize = 5
628
buttonTextXoffset = 0
675
buttonTextXoffset = 0
Line 629... Line 676...
629
 
676
 
630
ch_text:        ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñîâ
677
ch_text db 'Activate "Hot Angles"',0       ;ñîïðîâîæäàþùèé òåêñò äëÿ ÷åê áîêñà
631
.1 db 'Activate "Hot Angles"'
678
;.1 db 'Activate "Hot Angles"',0
Line 632... Line 679...
632
.e1:
679
;.e1:
633
 
680
 
634
superText:
681
superText:
635
  .lu db 'Left up angle command:   ', 0
682
  .lu db 'Left up angle command:   ', 0
Line 667... Line 714...
667
 
714
 
668
   pop esi edi edx ecx ebx eax
715
   pop esi edi edx ecx ebx eax
Line 669... Line 716...
669
   ret
716
   ret
670
 
717
 
Line -... Line 718...
-
 
718
 
-
 
719
edMaxSize = 510 ;òåïåðü ñ íîâûì êîìïîíåíòîì ìîæíî è 511 óêàçàòü
-
 
720
edMax = 0 ;max, size, pos
-
 
721
 
-
 
722
align 4
-
 
723
editLU   edit_box 180,Otstup,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.1, mouse_dd, 0, edMax, edMax  ;ed_focus
671
 
724
editLD   edit_box 180,Otstup,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.2, mouse_dd, 0, edMax, edMax
672
edMaxSize = 510
725
editRU   edit_box 180,240,85, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.3, mouse_dd, 0, edMax, edMax
673
edMax = 0 ;max, size, pos
726
editRD   edit_box 180,240,120, 0xffffff, 0x6a9480, 0, 0xAABBCC, 0, edMaxSize, dataBuffer.4, mouse_dd, 0, edMax, edMax
674
 
727
 
675
editboxes:
728
;editboxes:
676
editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax
729
;editLU edit_box 180,Otstup,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.1,ed_focus,edMax,edMax
Line 677... Line 730...
677
editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,0,edMax,edMax
730
;editLD edit_box 180,Otstup,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.2,0,edMax,edMax
678
editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,0,edMax,edMax
731
;editRU edit_box 180,240,85,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.3,0,edMax,edMax
Line 679... Line 732...
679
editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,0,edMax,edMax
732
;editRD edit_box 180,240,120,0xffffff,0x6a9480,0,0xAABBCC,0,edMaxSize,dataBuffer.4,0,edMax,edMax
680
editboxes_end:
733
;editboxes_end:
681
 
734
 
682
data_of_code dd 0
735
;data_of_code dd 0
Line 693... Line 746...
693
.size4: rd 1
746
.size4: rd 1
694
;255+255+2
747
;255+255+2
695
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0
748
;äâà çàïàñíûõ áàéòà íåîáõîäèìû äëÿ òîãî ÷òî áû íå ïåïåðåïèñàòü ñëåäóþùèåé áàéòû, â êîíöå áóôåðà 0
696
dataBufferEnd:
749
dataBufferEnd:
Line -... Line 750...
-
 
750
 
697
 
751
mouse_dd  dd ?
Line 698... Line 752...
698
sc  system_colors
752
sc  system_colors
699
 
753
 
700
I_END:
754
I_END: