forked from KolibriOS/kolibrios
CNC Control UI: add combobox for port (button + kmenu)
git-svn-id: svn://kolibrios.org@7440 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a2eabdbf4a
commit
840f6b865f
@ -2,6 +2,7 @@
|
|||||||
;Igor Afanasyev (aka IgorA) and Sergey Efremenkov (aka theonlymirage), 2018
|
;Igor Afanasyev (aka IgorA) and Sergey Efremenkov (aka theonlymirage), 2018
|
||||||
|
|
||||||
;02.10.18 - Only prototype UI
|
;02.10.18 - Only prototype UI
|
||||||
|
;08.10.18 - Add ComboBox (Button + KMenu), small text
|
||||||
|
|
||||||
format binary as ""
|
format binary as ""
|
||||||
use32
|
use32
|
||||||
@ -19,8 +20,12 @@ include 'lang.inc'
|
|||||||
include 'cnc_control.inc'
|
include 'cnc_control.inc'
|
||||||
include '../../develop/info3ds/info_fun_float.inc'
|
include '../../develop/info3ds/info_fun_float.inc'
|
||||||
|
|
||||||
|
KMENUITEM_NORMAL equ 0
|
||||||
|
KMENUITEM_SUBMENU equ 1
|
||||||
|
KMENUITEM_SEPARATOR equ 2
|
||||||
|
|
||||||
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load
|
||||||
caption db 'CNC Control 02.10.18',0 ;¯®¤¯¨áì ®ª
|
caption db 'CNC Control 08.10.18',0 ;¯®¤¯¨áì ®ª
|
||||||
|
|
||||||
run_file_70 FileInfoBlock
|
run_file_70 FileInfoBlock
|
||||||
|
|
||||||
@ -65,7 +70,7 @@ start:
|
|||||||
;call but_new_file
|
;call but_new_file
|
||||||
option_boxes_set_sys_color sc,opt_grlist1
|
option_boxes_set_sys_color sc,opt_grlist1
|
||||||
|
|
||||||
;progress bar trash
|
;progress bar
|
||||||
mov [pb.left], dword 50
|
mov [pb.left], dword 50
|
||||||
mov [pb.top], dword 30
|
mov [pb.top], dword 30
|
||||||
mov [pb.width], dword 350
|
mov [pb.width], dword 350
|
||||||
@ -77,6 +82,24 @@ start:
|
|||||||
mov [pb.progress_color], dword 8072B7EBh
|
mov [pb.progress_color], dword 8072B7EBh
|
||||||
mov [pb.frame_color], dword 00406175h
|
mov [pb.frame_color], dword 00406175h
|
||||||
|
|
||||||
|
;port menu
|
||||||
|
stdcall [kmenu_init], sc ;kmenu initialisation
|
||||||
|
;stdcall [ksubmenu_new]
|
||||||
|
;mov [main_menu], eax
|
||||||
|
|
||||||
|
stdcall [ksubmenu_new]
|
||||||
|
mov [port_menu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_COMport, 110
|
||||||
|
stdcall [ksubmenu_add], [port_menu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_USBport, 111
|
||||||
|
stdcall [ksubmenu_add], [port_menu], eax
|
||||||
|
;stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
|
||||||
|
;stdcall [ksubmenu_add], [port_menu], eax
|
||||||
|
;stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_OTHERport, 112
|
||||||
|
;stdcall [ksubmenu_add], [port_menu], eax
|
||||||
|
stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_PortMenu, [port_menu]
|
||||||
|
;stdcall [ksubmenu_add], [main_menu], eax
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
red_win:
|
red_win:
|
||||||
call draw_window
|
call draw_window
|
||||||
@ -118,6 +141,7 @@ mouse:
|
|||||||
stdcall [option_box_mouse], opt_grlist1
|
stdcall [option_box_mouse], opt_grlist1
|
||||||
stdcall [edit_box_mouse], editFileName
|
stdcall [edit_box_mouse], editFileName
|
||||||
stdcall [edit_box_mouse], editCommand
|
stdcall [edit_box_mouse], editCommand
|
||||||
|
stdcall [kmainmenu_dispatch_cursorevent], [port_menu] ;[main_menu]
|
||||||
|
|
||||||
push eax ebx ecx
|
push eax ebx ecx
|
||||||
mcall SF_MOUSE_GET,SSF_BUTTON_EXT
|
mcall SF_MOUSE_GET,SSF_BUTTON_EXT
|
||||||
@ -289,6 +313,9 @@ proc timer_funct
|
|||||||
ret
|
ret
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
WINDOW_WIDTH = 775
|
||||||
|
WINDOW_HEIGHT = 445
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
draw_window:
|
draw_window:
|
||||||
pushad
|
pushad
|
||||||
@ -298,7 +325,7 @@ pushad
|
|||||||
mov edx,[sc.work]
|
mov edx,[sc.work]
|
||||||
or edx,0x33000000
|
or edx,0x33000000
|
||||||
mov edi,caption
|
mov edi,caption
|
||||||
mcall SF_CREATE_WINDOW,(20 shl 16)+775,(20 shl 16)+445
|
mcall SF_CREATE_WINDOW,(20 shl 16)+WINDOW_WIDTH,(20 shl 16)+WINDOW_HEIGHT
|
||||||
|
|
||||||
;;mcall SF_THREAD_INFO,procinfo,-1
|
;;mcall SF_THREAD_INFO,procinfo,-1
|
||||||
;;mov eax,dword[procinfo.box.height]
|
;;mov eax,dword[procinfo.box.height]
|
||||||
@ -351,9 +378,10 @@ pushad
|
|||||||
|
|
||||||
; ***
|
; ***
|
||||||
mov ecx,[sc.work_text]
|
mov ecx,[sc.work_text]
|
||||||
or ecx,0x81000000
|
or ecx,0x80000000 ;0x81000000
|
||||||
mcall SF_DRAW_TEXT,(15 shl 16)+5,,txt_preview
|
textYcoord = 13;5
|
||||||
mcall ,(424 shl 16)+5,,txt_port
|
mcall SF_DRAW_TEXT,(15 shl 16)+textYcoord,,txt_preview
|
||||||
|
mcall ,(424 shl 16)+textYcoord,,txt_port
|
||||||
mov ecx,[sc.work_button_text]
|
mov ecx,[sc.work_button_text]
|
||||||
or ecx,0x81000000
|
or ecx,0x81000000
|
||||||
mcall ,(440 shl 16)+381,,txt_but_cancel
|
mcall ,(440 shl 16)+381,,txt_but_cancel
|
||||||
@ -375,6 +403,29 @@ pushad
|
|||||||
|
|
||||||
stdcall [buf2d_draw], buf_0
|
stdcall [buf2d_draw], buf_0
|
||||||
|
|
||||||
|
;delete port button, if it exist
|
||||||
|
mov edx, 0x80000008
|
||||||
|
mcall 8
|
||||||
|
;draw button PORT
|
||||||
|
buttonPortX = 433
|
||||||
|
buttonPortY = 27 ;50
|
||||||
|
buttonPortTextXoffset = 5
|
||||||
|
mov ebx, buttonPortX*65536 + 95 ;X + Width
|
||||||
|
mov ecx, buttonPortY*65536 + 20 ;Y + Height
|
||||||
|
mov edx, 0x00000008 ;button id
|
||||||
|
mov esi, 0x00AABBCC ;color button
|
||||||
|
mcall 8
|
||||||
|
;draw text for button PORT
|
||||||
|
mov ebx, (buttonPortX+buttonPortTextXoffset) * 65536 + (buttonPortY+6) ;(x, y)
|
||||||
|
mov ecx, 0xFFFFFF
|
||||||
|
mov edx, sz_PortMenu
|
||||||
|
mov esi, 11
|
||||||
|
mcall 4
|
||||||
|
;stdcall [kmainmenu_draw], [main_menu]
|
||||||
|
;mov word[coord.x], 0
|
||||||
|
;mov word[coord.y], 0
|
||||||
|
;stdcall [ksubmenu_draw], [port_menu], coord
|
||||||
|
|
||||||
mcall SF_REDRAW,SSF_END_DRAW
|
mcall SF_REDRAW,SSF_END_DRAW
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
@ -404,6 +455,7 @@ key:
|
|||||||
align 4
|
align 4
|
||||||
button:
|
button:
|
||||||
mcall SF_GET_BUTTON
|
mcall SF_GET_BUTTON
|
||||||
|
|
||||||
cmp ah,3
|
cmp ah,3
|
||||||
jne @f
|
jne @f
|
||||||
call but_open_file
|
call but_open_file
|
||||||
@ -414,7 +466,22 @@ button:
|
|||||||
call but_restore_zoom
|
call but_restore_zoom
|
||||||
jmp still
|
jmp still
|
||||||
@@:
|
@@:
|
||||||
|
cmp ah, 8
|
||||||
|
jne @f
|
||||||
|
push eax ebx ecx
|
||||||
|
mcall 9, pi, -1 ;get window coord
|
||||||
|
|
||||||
|
mov eax, dword[pi+34]
|
||||||
|
add eax, buttonPortX + 5
|
||||||
|
mov word[coord.x], ax
|
||||||
|
|
||||||
|
mov eax, dword[pi+38]
|
||||||
|
add eax, buttonPortY + 42
|
||||||
|
mov word[coord.y], ax
|
||||||
|
|
||||||
|
stdcall [ksubmenu_draw], [port_menu], coord
|
||||||
|
pop ecx ebx eax
|
||||||
|
@@:
|
||||||
;cmp ah,5
|
;cmp ah,5
|
||||||
;jne @f
|
;jne @f
|
||||||
;call but_...
|
;call but_...
|
||||||
@ -666,6 +733,20 @@ db 'PNG',0
|
|||||||
db 0
|
db 0
|
||||||
|
|
||||||
|
|
||||||
|
;[
|
||||||
|
;for test
|
||||||
|
main_menu dd 0
|
||||||
|
port_menu dd 0
|
||||||
|
|
||||||
|
sz_PortMenu db 'COM 12 ',0
|
||||||
|
sz_COMport db 'COM port 12',0
|
||||||
|
sz_USBport db 'USB port ',0
|
||||||
|
sz_OTHERport db 'Other port ',0
|
||||||
|
|
||||||
|
coord:
|
||||||
|
.x dw 100
|
||||||
|
.y dw 200
|
||||||
|
;]
|
||||||
|
|
||||||
head_f_i:
|
head_f_i:
|
||||||
head_f_l db '‘¨á⥬ ï ®è¨¡ª ',0
|
head_f_l db '‘¨á⥬ ï ®è¨¡ª ',0
|
||||||
@ -690,6 +771,11 @@ lib_name_3 db 'box_lib.obj',0
|
|||||||
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0
|
err_msg_found_lib_3 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0
|
||||||
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
|
err_msg_import_3 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0
|
||||||
|
|
||||||
|
system_dir_4 db '/sys/lib/'
|
||||||
|
lib_name_4 db 'kmenu.obj',0
|
||||||
|
err_msg_found_lib_4 db '<27>¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'kmenu.obj',39,0
|
||||||
|
err_msg_import_4 db 'Žè¨¡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
|
||||||
|
|
||||||
l_libs_start:
|
l_libs_start:
|
||||||
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
|
lib_0 l_libs lib_name_0, sys_path, file_name, system_dir_0,\
|
||||||
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
|
err_message_found_lib_0, head_f_l, proclib_import,err_message_import_0, head_f_i
|
||||||
@ -699,6 +785,8 @@ l_libs_start:
|
|||||||
err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
|
err_msg_found_lib_2,head_f_l,import_buf2d,err_msg_import_2,head_f_i
|
||||||
lib_3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
|
lib_3 l_libs lib_name_3, sys_path, file_name, system_dir_3,\
|
||||||
err_msg_found_lib_3, head_f_l, import_box_lib,err_msg_import_3,head_f_i
|
err_msg_found_lib_3, head_f_l, import_box_lib,err_msg_import_3,head_f_i
|
||||||
|
lib_4 l_libs lib_name_4, sys_path, file_name, system_dir_4,\
|
||||||
|
err_msg_found_lib_4, head_f_l, import_libkmenu,err_msg_import_4,head_f_i
|
||||||
l_libs_end:
|
l_libs_end:
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
@ -861,6 +949,32 @@ import_box_lib:
|
|||||||
sz_progressbar_draw db 'progressbar_draw', 0
|
sz_progressbar_draw db 'progressbar_draw', 0
|
||||||
sz_progressbar_progress db 'progressbar_progress', 0
|
sz_progressbar_progress db 'progressbar_progress', 0
|
||||||
|
|
||||||
|
align 4
|
||||||
|
import_libkmenu:
|
||||||
|
kmenu_init dd akmenu_init
|
||||||
|
kmainmenu_draw dd akmainmenu_draw
|
||||||
|
kmainmenu_dispatch_cursorevent dd akmainmenu_dispatch_cursorevent
|
||||||
|
ksubmenu_new dd aksubmenu_new
|
||||||
|
ksubmenu_delete dd aksubmenu_delete
|
||||||
|
ksubmenu_draw dd aksubmenu_draw
|
||||||
|
ksubmenu_add dd aksubmenu_add
|
||||||
|
kmenuitem_new dd akmenuitem_new
|
||||||
|
kmenuitem_delete dd akmenuitem_delete
|
||||||
|
kmenuitem_draw dd akmenuitem_draw
|
||||||
|
dd 0,0
|
||||||
|
akmenu_init db 'kmenu_init',0
|
||||||
|
akmainmenu_draw db 'kmainmenu_draw',0
|
||||||
|
akmainmenu_dispatch_cursorevent db 'kmainmenu_dispatch_cursorevent',0
|
||||||
|
aksubmenu_new db 'ksubmenu_new',0
|
||||||
|
aksubmenu_delete db 'ksubmenu_delete',0
|
||||||
|
aksubmenu_draw db 'ksubmenu_draw',0
|
||||||
|
aksubmenu_add db 'ksubmenu_add',0
|
||||||
|
akmenuitem_new db 'kmenuitem_new',0
|
||||||
|
akmenuitem_delete db 'kmenuitem_delete',0
|
||||||
|
akmenuitem_draw db 'kmenuitem_draw',0
|
||||||
|
|
||||||
|
button_press dd 0 ;for kmenu
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
mouse_dd dd 0
|
mouse_dd dd 0
|
||||||
last_time dd 0
|
last_time dd 0
|
||||||
@ -985,5 +1099,6 @@ stacktop:
|
|||||||
plugin_path rb 4096
|
plugin_path rb 4096
|
||||||
openfile_path rb 4096
|
openfile_path rb 4096
|
||||||
filename_area rb 256
|
filename_area rb 256
|
||||||
|
pi rb 1024
|
||||||
mem:
|
mem:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user