Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7440 → Rev 7439

/programs/other/cnc_control/cnc_control.asm
2,7 → 2,6
;Igor Afanasyev (aka IgorA) and Sergey Efremenkov (aka theonlymirage), 2018
 
;02.10.18 - Only prototype UI
;08.10.18 - Add ComboBox (Button + KMenu), small text
 
format binary as ""
use32
20,12 → 19,8
include 'cnc_control.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
caption db 'CNC Control 08.10.18',0 ;¯®¤¯¨áì ®ª­ 
caption db 'CNC Control 02.10.18',0 ;¯®¤¯¨áì ®ª­ 
 
run_file_70 FileInfoBlock
 
70,7 → 65,7
;call but_new_file
option_boxes_set_sys_color sc,opt_grlist1
 
;progress bar
;progress bar trash
mov [pb.left], dword 50
mov [pb.top], dword 30
mov [pb.width], dword 350
82,24 → 77,6
mov [pb.progress_color], dword 8072B7EBh
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
red_win:
call draw_window
141,7 → 118,6
stdcall [option_box_mouse], opt_grlist1
stdcall [edit_box_mouse], editFileName
stdcall [edit_box_mouse], editCommand
stdcall [kmainmenu_dispatch_cursorevent], [port_menu] ;[main_menu]
 
push eax ebx ecx
mcall SF_MOUSE_GET,SSF_BUTTON_EXT
313,9 → 289,6
ret
endp
 
WINDOW_WIDTH = 775
WINDOW_HEIGHT = 445
 
align 4
draw_window:
pushad
325,7 → 298,7
mov edx,[sc.work]
or edx,0x33000000
mov edi,caption
mcall SF_CREATE_WINDOW,(20 shl 16)+WINDOW_WIDTH,(20 shl 16)+WINDOW_HEIGHT
mcall SF_CREATE_WINDOW,(20 shl 16)+775,(20 shl 16)+445
 
;;mcall SF_THREAD_INFO,procinfo,-1
;;mov eax,dword[procinfo.box.height]
378,10 → 351,9
 
; ***
mov ecx,[sc.work_text]
or ecx,0x80000000 ;0x81000000
textYcoord = 13;5
mcall SF_DRAW_TEXT,(15 shl 16)+textYcoord,,txt_preview
mcall ,(424 shl 16)+textYcoord,,txt_port
or ecx,0x81000000
mcall SF_DRAW_TEXT,(15 shl 16)+5,,txt_preview
mcall ,(424 shl 16)+5,,txt_port
mov ecx,[sc.work_button_text]
or ecx,0x81000000
mcall ,(440 shl 16)+381,,txt_but_cancel
403,29 → 375,6
 
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
popad
ret
455,7 → 404,6
align 4
button:
mcall SF_GET_BUTTON
 
cmp ah,3
jne @f
call but_open_file
466,22 → 414,7
call but_restore_zoom
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
;jne @f
;call but_...
733,21 → 666,7
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_l db '‘¨á⥬­ ï ®è¨¡ª ',0
 
771,11 → 690,6
err_msg_found_lib_3 db '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'box_lib.obj',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 '¥ ­ ©¤¥­  ¡¨¡«¨®â¥ª  ',39,'kmenu.obj',39,0
err_msg_import_4 db 'Žè¨¡ª  ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'kmenu',39,0
 
l_libs_start:
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
785,8 → 699,6
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,\
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:
 
align 4
950,32 → 862,6
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
mouse_dd dd 0
last_time dd 0
 
1099,6 → 985,5
plugin_path rb 4096
openfile_path rb 4096
filename_area rb 256
pi rb 1024
mem: