Rev 7252 | Rev 7658 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6732 | leency | 1 | #include "../lib/gui.h" |
2 | #include "../lib/obj/box_lib.h" |
||
3 | #include "../lib/obj/proc_lib.h" |
||
4 | #include "../lib/patterns/simple_open_dialog.h" |
||
5 | |||
6 | char default_dir[] = "/rd/1"; |
||
7 | od_filter filter2 = {0,0}; |
||
8 | |||
9 | char src_box_text[4096]; |
||
10 | char dst_box_text[4096]; |
||
7506 | leency | 11 | edit_box src_box = {340,20,35,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(src_box_text)-2,#src_box_text,0, ed_focus}; |
12 | edit_box dst_box = {340,20,95,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(dst_box_text)-2,#dst_box_text,0, 0b}; |
||
6732 | leency | 13 | |
14 | #define BID_EXIT_PRC 01 |
||
15 | #define BID_SRC_OPEN 10 |
||
16 | #define BID_DST_OPEN 11 |
||
17 | #define BID_COMPARE 12 |
||
18 | |||
19 | proc_info Form; |
||
20 | |||
21 | void gui() |
||
22 | { |
||
23 | word btn; |
||
24 | char run_param[4096]; |
||
25 | load_dll(boxlib, #box_lib_init,0); |
||
26 | load_dll(Proc_lib, #OpenDialog_init,0); |
||
27 | OpenDialog_init stdcall (#o_dialog); |
||
7227 | leency | 28 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER + EVM_STACK); |
6732 | leency | 29 | |
30 | loop() switch(WaitEvent()) |
||
31 | { |
||
32 | case evMouse: |
||
33 | edit_box_mouse stdcall (#src_box); |
||
34 | edit_box_mouse stdcall (#dst_box); |
||
35 | break; |
||
36 | |||
37 | case evButton: |
||
38 | btn = GetButtonID(); |
||
39 | switch (btn) |
||
40 | { |
||
41 | case BID_EXIT_PRC: |
||
42 | ExitProcess(); |
||
43 | case BID_SRC_OPEN: |
||
44 | OpenDialog_start stdcall (#o_dialog); |
||
45 | if (o_dialog.status) { |
||
46 | strcpy(#src_box_text, #openfile_path); |
||
7506 | leency | 47 | EditBox_UpdateText(#src_box, #src_box.flags); |
6732 | leency | 48 | } |
49 | break; |
||
50 | case BID_DST_OPEN: |
||
51 | OpenDialog_start stdcall (#o_dialog); |
||
52 | if (o_dialog.status) { |
||
53 | strcpy(#dst_box_text, #openfile_path); |
||
7506 | leency | 54 | EditBox_UpdateText(#dst_box, #dst_box.flags); |
6732 | leency | 55 | } |
56 | break; |
||
57 | case BID_COMPARE: |
||
58 | sprintf(#run_param, "\"%s\" \"%s\"", #src_box_text, #dst_box_text); |
||
6735 | leency | 59 | io.run(I_Path, #run_param); |
6732 | leency | 60 | break; |
61 | } |
||
62 | break; |
||
63 | |||
64 | case evKey: |
||
65 | GetKeys(); |
||
66 | if (key_scancode == SCAN_CODE_ESC) ExitProcess(); |
||
67 | if (key_scancode == SCAN_CODE_TAB) { |
||
7506 | leency | 68 | if ( src_box.flags & ed_focus ) { |
69 | src_box.flags -= ed_focus; |
||
70 | dst_box.flags += ed_focus; |
||
6732 | leency | 71 | } else { |
7506 | leency | 72 | src_box.flags += ed_focus; |
73 | dst_box.flags -= ed_focus; |
||
6732 | leency | 74 | } |
75 | edit_box_draw stdcall (#src_box); |
||
76 | edit_box_draw stdcall (#dst_box); |
||
77 | } |
||
78 | EAX = key_editbox; |
||
79 | edit_box_key stdcall (#src_box); |
||
80 | EAX = key_editbox; |
||
81 | edit_box_key stdcall (#dst_box); |
||
82 | break; |
||
83 | |||
84 | case evReDraw: |
||
85 | draw_window(); |
||
86 | break; |
||
87 | } |
||
88 | } |
||
89 | |||
90 | void draw_window() |
||
91 | { |
||
92 | system.color.get(); |
||
6746 | leency | 93 | DefineAndDrawWindow(215, 100, 450, 195 + skin_height, 0x34, system.color.work, #window_title,0); |
6732 | leency | 94 | GetProcessInfo(#Form, SelfInfo); |
95 | |||
96 | WriteText(src_box.left-2, src_box.top-21, 0x90, system.color.work_text, "First file:"); |
||
97 | WriteText(dst_box.left-2, dst_box.top-21, 0x90, system.color.work_text, "Second file:"); |
||
98 | DrawEditBox(#src_box); |
||
99 | DrawEditBox(#dst_box); |
||
100 | DrawStandartCaptButton(src_box.left + src_box.width + 15, src_box.top-3, BID_SRC_OPEN, "..."); |
||
101 | DrawStandartCaptButton(dst_box.left + dst_box.width + 15, dst_box.top-3, BID_DST_OPEN, "..."); |
||
102 | DrawStandartCaptButton(dst_box.left - 2, dst_box.top + 40, BID_COMPARE, "Compare"); |
||
103 | } |