Subversion Repositories Kolibri OS

Rev

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

Rev 7438 Rev 7440
Line 1... Line 1...
1
;CNC CONTROL
1
;CNC CONTROL
2
;Igor Afanasyev (aka IgorA) and Sergey Efremenkov (aka theonlymirage), 2018
2
;Igor Afanasyev (aka IgorA) and Sergey Efremenkov (aka theonlymirage), 2018
Line 3... Line 3...
3
 
3
 
-
 
4
;02.10.18 - Only prototype UI
Line 4... Line 5...
4
;02.10.18 - Only prototype UI
5
;08.10.18 - Add ComboBox (Button + KMenu), small text
5
 
6
 
6
format binary as ""
7
format binary as ""
7
use32
8
use32
Line 17... Line 18...
17
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
18
include '../../develop/libraries/box_lib/trunk/box_lib.mac'
18
include 'lang.inc'
19
include 'lang.inc'
19
include 'cnc_control.inc'
20
include 'cnc_control.inc'
20
include '../../develop/info3ds/info_fun_float.inc'
21
include '../../develop/info3ds/info_fun_float.inc'
Line -... Line 22...
-
 
22
 
-
 
23
KMENUITEM_NORMAL equ 0
-
 
24
KMENUITEM_SUBMENU equ 1
-
 
25
KMENUITEM_SEPARATOR equ 2
21
 
26
 
22
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
27
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
Line 23... Line 28...
23
caption db 'CNC Control 02.10.18',0 ;¯®¤¯¨áì ®ª­ 
28
caption db 'CNC Control 08.10.18',0 ;¯®¤¯¨áì ®ª­ 
Line 24... Line 29...
24
 
29
 
Line 63... Line 68...
63
        mov [last_time],eax
68
        mov [last_time],eax
Line 64... Line 69...
64
 
69
 
65
        ;call but_new_file
70
        ;call but_new_file
Line 66... Line 71...
66
        option_boxes_set_sys_color sc,opt_grlist1
71
        option_boxes_set_sys_color sc,opt_grlist1
67
 
72
 
68
        ;progress bar trash
73
        ;progress bar
69
        mov    [pb.left],           dword  50
74
        mov    [pb.left],           dword  50
70
        mov    [pb.top],            dword  30
75
        mov    [pb.top],            dword  30
71
        mov    [pb.width],          dword  350
76
        mov    [pb.width],          dword  350
Line 75... Line 80...
75
        mov    [pb.value],          dword  50;-397
80
        mov    [pb.value],          dword  50;-397
76
        mov    [pb.back_color],     dword 00C8D0D4h
81
        mov    [pb.back_color],     dword 00C8D0D4h
77
        mov    [pb.progress_color], dword 8072B7EBh
82
        mov    [pb.progress_color], dword 8072B7EBh
78
        mov    [pb.frame_color],    dword 00406175h
83
        mov    [pb.frame_color],    dword 00406175h
Line -... Line 84...
-
 
84
 
-
 
85
        ;port menu
-
 
86
        stdcall [kmenu_init], sc    ;kmenu initialisation
-
 
87
        ;stdcall [ksubmenu_new]
-
 
88
        ;mov [main_menu], eax
-
 
89
 
-
 
90
        stdcall [ksubmenu_new]
-
 
91
        mov [port_menu], eax
-
 
92
        stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_COMport, 110
-
 
93
        stdcall [ksubmenu_add], [port_menu], eax
-
 
94
        stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_USBport, 111
-
 
95
        stdcall [ksubmenu_add], [port_menu], eax
-
 
96
        ;stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
-
 
97
        ;stdcall [ksubmenu_add], [port_menu], eax
-
 
98
        ;stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_OTHERport, 112
-
 
99
        ;stdcall [ksubmenu_add], [port_menu], eax
-
 
100
        stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_PortMenu, [port_menu]
-
 
101
        ;stdcall [ksubmenu_add], [main_menu], eax
79
 
102
 
80
align 4
103
align 4
81
red_win:
104
red_win:
Line 82... Line 105...
82
        call draw_window
105
        call draw_window
Line 116... Line 139...
116
align 4
139
align 4
117
mouse:
140
mouse:
118
        stdcall [option_box_mouse], opt_grlist1
141
        stdcall [option_box_mouse], opt_grlist1
119
        stdcall [edit_box_mouse], editFileName
142
        stdcall [edit_box_mouse], editFileName
120
        stdcall [edit_box_mouse], editCommand
143
        stdcall [edit_box_mouse], editCommand
-
 
144
        stdcall [kmainmenu_dispatch_cursorevent], [port_menu] ;[main_menu]
Line 121... Line 145...
121
 
145
 
122
        push eax ebx ecx
146
        push eax ebx ecx
123
        mcall SF_MOUSE_GET,SSF_BUTTON_EXT
147
        mcall SF_MOUSE_GET,SSF_BUTTON_EXT
124
        bt eax,8
148
        bt eax,8
Line 287... Line 311...
287
        @@:
311
        @@:
288
        popad
312
        popad
289
        ret
313
        ret
290
endp
314
endp
Line -... Line 315...
-
 
315
 
-
 
316
WINDOW_WIDTH  = 775
-
 
317
WINDOW_HEIGHT = 445
291
 
318
 
292
align 4
319
align 4
293
draw_window:
320
draw_window:
294
pushad
321
pushad
Line 295... Line 322...
295
        mcall SF_REDRAW,SSF_BEGIN_DRAW
322
        mcall SF_REDRAW,SSF_BEGIN_DRAW
296
 
323
 
297
        ; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
324
        ; *** à¨á®¢ ­¨¥ £« ¢­®£® ®ª­  (¢ë¯®«­ï¥âáï 1 à § ¯à¨ § ¯ã᪥) ***
298
        mov edx,[sc.work]
325
        mov edx,[sc.work]
299
        or  edx,0x33000000
326
        or  edx,0x33000000
Line 300... Line 327...
300
        mov edi,caption
327
        mov edi,caption
301
        mcall SF_CREATE_WINDOW,(20 shl 16)+775,(20 shl 16)+445
328
        mcall SF_CREATE_WINDOW,(20 shl 16)+WINDOW_WIDTH,(20 shl 16)+WINDOW_HEIGHT
302
 
329
 
303
        ;;mcall SF_THREAD_INFO,procinfo,-1
330
        ;;mcall SF_THREAD_INFO,procinfo,-1
Line 349... Line 376...
349
        mcall ,(437 shl 16)+86,(378 shl 16)+20,7 ;cancel
376
        mcall ,(437 shl 16)+86,(378 shl 16)+20,7 ;cancel
350
        mcall ,(616 shl 16)+136,(378 shl 16)+20,8 ;run
377
        mcall ,(616 shl 16)+136,(378 shl 16)+20,8 ;run
Line 351... Line 378...
351
 
378
 
352
        ; ***
379
        ; ***
353
        mov ecx,[sc.work_text]
380
        mov ecx,[sc.work_text]
-
 
381
        or ecx,0x80000000 ;0x81000000
354
        or ecx,0x81000000
382
        textYcoord = 13;5
355
        mcall SF_DRAW_TEXT,(15 shl 16)+5,,txt_preview
383
        mcall SF_DRAW_TEXT,(15 shl 16)+textYcoord,,txt_preview
356
        mcall ,(424 shl 16)+5,,txt_port
384
        mcall ,(424 shl 16)+textYcoord,,txt_port
357
        mov ecx,[sc.work_button_text]
385
        mov ecx,[sc.work_button_text]
358
        or ecx,0x81000000
386
        or ecx,0x81000000
359
        mcall ,(440 shl 16)+381,,txt_but_cancel
387
        mcall ,(440 shl 16)+381,,txt_but_cancel
Line 373... Line 401...
373
        add ebx,IMAGE_TOOLBAR_ICON_SIZE
401
        add ebx,IMAGE_TOOLBAR_ICON_SIZE
374
        mcall ,,,((638+97) shl 16)+380 ;run
402
        mcall ,,,((638+97) shl 16)+380 ;run
Line 375... Line 403...
375
 
403
 
Line -... Line 404...
-
 
404
        stdcall [buf2d_draw], buf_0
-
 
405
 
-
 
406
        ;delete port button, if it exist
-
 
407
        mov edx, 0x80000008
-
 
408
        mcall 8
-
 
409
        ;draw button PORT
-
 
410
        buttonPortX = 433
-
 
411
        buttonPortY = 27 ;50
-
 
412
        buttonPortTextXoffset = 5
-
 
413
        mov ebx, buttonPortX*65536 + 95   ;X + Width
-
 
414
        mov ecx, buttonPortY*65536 + 20   ;Y + Height
-
 
415
        mov edx, 0x00000008       ;button id
-
 
416
        mov esi, 0x00AABBCC       ;color button
-
 
417
        mcall 8
-
 
418
        ;draw text for button PORT
-
 
419
        mov     ebx, (buttonPortX+buttonPortTextXoffset) * 65536 + (buttonPortY+6)    ;(x, y)
-
 
420
        mov     ecx, 0xFFFFFF
-
 
421
        mov     edx, sz_PortMenu
-
 
422
        mov     esi, 11
-
 
423
        mcall 4
-
 
424
        ;stdcall [kmainmenu_draw], [main_menu]
-
 
425
        ;mov word[coord.x], 0
-
 
426
        ;mov word[coord.y], 0
376
        stdcall [buf2d_draw], buf_0
427
        ;stdcall [ksubmenu_draw], [port_menu], coord
377
 
428
 
378
        mcall SF_REDRAW,SSF_END_DRAW
429
        mcall SF_REDRAW,SSF_END_DRAW
Line 379... Line 430...
379
popad
430
popad
Line 402... Line 453...
402
        jmp still
453
        jmp still
Line 403... Line 454...
403
 
454
 
404
align 4
455
align 4
405
button:
456
button:
-
 
457
        mcall SF_GET_BUTTON
406
        mcall SF_GET_BUTTON
458
 
407
        cmp ah,3
459
        cmp ah,3
408
        jne @f
460
        jne @f
409
                call but_open_file
461
                call but_open_file
410
                jmp still
462
                jmp still
411
        @@:
463
        @@:
412
        cmp ah,4
464
        cmp ah,4
413
        jne @f
465
        jne @f
414
                call but_restore_zoom
466
                call but_restore_zoom
415
                jmp still
467
                jmp still
-
 
468
        @@:
-
 
469
        cmp ah, 8
-
 
470
        jne @f
-
 
471
                push eax ebx ecx
-
 
472
                mcall 9, pi, -1 ;get window coord
-
 
473
 
-
 
474
                mov eax, dword[pi+34]
-
 
475
                add eax, buttonPortX + 5
Line -... Line 476...
-
 
476
                mov word[coord.x], ax
-
 
477
 
-
 
478
                mov eax, dword[pi+38]
-
 
479
                add eax, buttonPortY + 42
-
 
480
                mov word[coord.y], ax
-
 
481
 
-
 
482
                stdcall [ksubmenu_draw], [port_menu], coord
416
        @@:
483
                pop ecx ebx eax
417
 
484
        @@:
418
        ;cmp ah,5
485
        ;cmp ah,5
419
        ;jne @f
486
        ;jne @f
420
                ;call but_...
487
                ;call but_...
Line 664... Line 731...
664
db 'PNG',0
731
db 'PNG',0
665
.end:
732
.end:
666
db 0
733
db 0
Line -... Line 734...
-
 
734
 
-
 
735
 
-
 
736
;[
-
 
737
;for test
-
 
738
main_menu dd 0
-
 
739
port_menu dd 0
-
 
740
 
-
 
741
sz_PortMenu  db 'COM 12     ',0
-
 
742
sz_COMport   db 'COM port 12',0
-
 
743
sz_USBport   db 'USB port   ',0
-
 
744
sz_OTHERport db 'Other port ',0
-
 
745
 
-
 
746
coord:
-
 
747
  .x dw 100
Line 667... Line 748...
667
 
748
  .y dw 200
668
 
749
;]
Line 669... Line 750...
669
 
750
 
Line 688... Line 769...
688
system_dir_3 db '/sys/lib/'
769
system_dir_3 db '/sys/lib/'
689
lib_name_3 db 'box_lib.obj',0
770
lib_name_3 db 'box_lib.obj',0
690
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
771
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',39,0
691
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
772
err_msg_import_3 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
Line -... Line 773...
-
 
773
 
-
 
774
system_dir_4 db '/sys/lib/'
-
 
775
lib_name_4 db 'kmenu.obj',0
-
 
776
err_msg_found_lib_4 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
-
 
777
err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
692
 
778
 
693
l_libs_start:
779
l_libs_start:
694
        lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
780
        lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
695
                err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
781
                err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
696
        lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
782
        lib_1 l_libs lib_name_1, sys_path, file_name, system_dir_1,\
697
                err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i
783
                err_message_found_lib_1, head_f_l, import_libimg, err_message_import_1, head_f_i
698
        lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\
784
        lib_2 l_libs lib_name_2, sys_path, library_path, system_dir_2,\
699
                err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
785
                err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
700
        lib_3 l_libs lib_name_3, sys_path, file_name,  system_dir_3,\
786
        lib_3 l_libs lib_name_3, sys_path, file_name,  system_dir_3,\
-
 
787
                err_msg_found_lib_3, head_f_l, import_box_lib,err_msg_import_3,head_f_i
-
 
788
        lib_4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
701
                err_msg_found_lib_3, head_f_l, import_box_lib,err_msg_import_3,head_f_i
789
                err_msg_found_lib_4, head_f_l, import_libkmenu,err_msg_import_4,head_f_i
Line 702... Line 790...
702
l_libs_end:
790
l_libs_end:
703
 
791
 
704
align 4
792
align 4
Line 860... Line 948...
860
 
948
 
861
        sz_progressbar_draw     db 'progressbar_draw', 0
949
        sz_progressbar_draw     db 'progressbar_draw', 0
Line 862... Line 950...
862
        sz_progressbar_progress db 'progressbar_progress', 0
950
        sz_progressbar_progress db 'progressbar_progress', 0
-
 
951
 
-
 
952
align 4
-
 
953
import_libkmenu:
-
 
954
        kmenu_init      dd akmenu_init
-
 
955
        kmainmenu_draw  dd akmainmenu_draw
-
 
956
        kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
-
 
957
        ksubmenu_new    dd aksubmenu_new
-
 
958
        ksubmenu_delete dd aksubmenu_delete
-
 
959
        ksubmenu_draw   dd aksubmenu_draw
-
 
960
        ksubmenu_add    dd aksubmenu_add
-
 
961
        kmenuitem_new   dd akmenuitem_new
-
 
962
        kmenuitem_delete dd akmenuitem_delete
-
 
963
        kmenuitem_draw  dd akmenuitem_draw
-
 
964
dd 0,0
-
 
965
        akmenu_init     db 'kmenu_init',0
-
 
966
        akmainmenu_draw db 'kmainmenu_draw',0
-
 
967
        akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
-
 
968
        aksubmenu_new   db 'ksubmenu_new',0
-
 
969
        aksubmenu_delete db 'ksubmenu_delete',0
-
 
970
        aksubmenu_draw  db 'ksubmenu_draw',0
-
 
971
        aksubmenu_add   db 'ksubmenu_add',0
-
 
972
        akmenuitem_new  db 'kmenuitem_new',0
-
 
973
        akmenuitem_delete db 'kmenuitem_delete',0
-
 
974
        akmenuitem_draw  db 'kmenuitem_draw',0
-
 
975
 
-
 
976
button_press  dd 0     ;for kmenu
863
 
977
 
864
align 4
978
align 4
Line 865... Line 979...
865
mouse_dd dd 0
979
mouse_dd dd 0
866
last_time dd 0
980
last_time dd 0
Line 983... Line 1097...
983
        file_name:   rb 1024 ;4096
1097
        file_name:   rb 1024 ;4096
984
        library_path rb 1024
1098
        library_path rb 1024
985
        plugin_path  rb 4096
1099
        plugin_path  rb 4096
986
        openfile_path rb 4096
1100
        openfile_path rb 4096
987
        filename_area rb 256
1101
        filename_area rb 256
-
 
1102
        pi rb 1024
988
mem:
1103
mem: