From 9e20641dd63ad080df187b0077701c59af970341 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Wed, 29 Jul 2015 15:37:34 +0000 Subject: [PATCH] mouse_cfg v0.8: upload git-svn-id: svn://kolibrios.org@5622 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/lib/patterns/restart_process.h | 18 ++- programs/cmm/mouse_cfg/Tupfile.lua | 6 + programs/cmm/mouse_cfg/compile_en.bat | 11 ++ programs/cmm/mouse_cfg/compile_ru.bat | 11 ++ programs/cmm/mouse_cfg/mouse_cfg.c | 129 ++++++++++++++++++++ programs/cmm/mouse_cfg/panels_cfg.png | Bin 0 -> 758 bytes programs/cmm/mouse_cfg/panels_image.raw | Bin 0 -> 14985 bytes programs/cmm/panels_cfg/panels_cfg.c | 1 - 8 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 programs/cmm/mouse_cfg/Tupfile.lua create mode 100644 programs/cmm/mouse_cfg/compile_en.bat create mode 100644 programs/cmm/mouse_cfg/compile_ru.bat create mode 100644 programs/cmm/mouse_cfg/mouse_cfg.c create mode 100644 programs/cmm/mouse_cfg/panels_cfg.png create mode 100644 programs/cmm/mouse_cfg/panels_image.raw diff --git a/programs/cmm/lib/patterns/restart_process.h b/programs/cmm/lib/patterns/restart_process.h index 30f7120deb..4a98c614f3 100644 --- a/programs/cmm/lib/patterns/restart_process.h +++ b/programs/cmm/lib/patterns/restart_process.h @@ -10,7 +10,18 @@ enum { SINGLE }; -void RestartProcessByName(dword proc_name, byte multiple) { +:int CheckProcessExists(dword proc_name) { + int i; + proc_info Process; + for (i=0; i<1000; i++;) + { + GetProcessInfo(#Process, i); + if (strcmpi(#Process.name, proc_name)==0) return 1; + } + return 0; +} + +:void KillProcessByName(dword proc_name, byte multiple) { int i; proc_info Process; for (i=0; i<1000; i++;) @@ -22,7 +33,12 @@ void RestartProcessByName(dword proc_name, byte multiple) { if (multiple==SINGLE) break; } } +} + +:void RestartProcessByName(dword proc_name, byte multiple) { + KillProcessByName(proc_name, multiple); RunProgram(proc_name, ""); } + #endif \ No newline at end of file diff --git a/programs/cmm/mouse_cfg/Tupfile.lua b/programs/cmm/mouse_cfg/Tupfile.lua new file mode 100644 index 0000000000..1d1ffd3fdd --- /dev/null +++ b/programs/cmm/mouse_cfg/Tupfile.lua @@ -0,0 +1,6 @@ +if tup.getconfig("NO_CMM") ~= "" then return end +if tup.getconfig("LANG") == "ru" +then C_LANG = "LANG_RUS" +else C_LANG = "LANG_ENG" -- this includes default case without config +end +tup.rule("mouse_cfg.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "mouse_cfg.com") diff --git a/programs/cmm/mouse_cfg/compile_en.bat b/programs/cmm/mouse_cfg/compile_en.bat new file mode 100644 index 0000000000..d2f82a9e83 --- /dev/null +++ b/programs/cmm/mouse_cfg/compile_en.bat @@ -0,0 +1,11 @@ +@del lang.h-- +@echo #define LANG_ENG 1 >lang.h-- + +@del mouse_cfg +cls +c-- mouse_cfg.c +@rename mouse_cfg.com mouse_cfg +@kpack mouse_cfg +@del warning.txt +@del lang.h-- +@pause \ No newline at end of file diff --git a/programs/cmm/mouse_cfg/compile_ru.bat b/programs/cmm/mouse_cfg/compile_ru.bat new file mode 100644 index 0000000000..3aa53d8596 --- /dev/null +++ b/programs/cmm/mouse_cfg/compile_ru.bat @@ -0,0 +1,11 @@ +@del lang.h-- +@echo #define LANG_RUS 1 >lang.h-- + +@del mouse_cfg +cls +c-- mouse_cfg.c +@rename mouse_cfg.com mouse_cfg +@kpack mouse_cfg +@del warning.txt +@del lang.h-- +@pause \ No newline at end of file diff --git a/programs/cmm/mouse_cfg/mouse_cfg.c b/programs/cmm/mouse_cfg/mouse_cfg.c new file mode 100644 index 0000000000..de0ec7a972 --- /dev/null +++ b/programs/cmm/mouse_cfg/mouse_cfg.c @@ -0,0 +1,129 @@ +#ifndef AUTOBUILD +#include "lang.h--" +#endif + +#define MEMSIZE 0x23E80 +#include "..\lib\kolibri.h" +#include "..\lib\strings.h" +#include "..\lib\mem.h" +#include "..\lib\file_system.h" +#include "..\lib\dll.h" +#include "..\lib\gui.h" +#include "..\lib\obj\libio_lib.h" +#include "..\lib\obj\box_lib.h" +#include "..\lib\patterns\restart_process.h" + +?define WINDOW_TITLE "Mouse configuration" +?define MOUSE_FRAME_T " Mouse " +?define KEYBOARD_FRAME_T " Keyboard " +?define CHECK_MOUSE "Click to check mouse" +?define POINTER_SPEED "Mouse pointer speed" +?define POINTER_DELAY "Mouse pointer delay" +?define MOUSE_EMULATION "Enable mouse emulation using keyboard NumPad" +?define MADMOUSE "When cursor reaches screen side switch it to inverce side" + +frame mouse_frame = { 0, 000, 10, 160, 14, 0x000111, 0xFFFfff, 1, MOUSE_FRAME_T, 0, 0, 6, 0x000111, 0xCCCccc }; +frame keyboard_frame = { 0, 000, 10, 73, 217, 0x000111, 0xFFFfff, 1, KEYBOARD_FRAME_T, 0, 0, 6, 0x000111, 0xCCCccc }; + + +unsigned char panels_img_data[] = FROM "panels_image.raw"; +raw_image panels_img = { 37, 27, #panels_img_data }; + +system_colors sc; +proc_info Form; + + +struct mouse_cfg1 { + byte pointer_speed, pointer_delay, emulation, madmouse; +} mouse_cfg; + + +void main() { + dword id; + + mem_Init(); + if (load_dll2(boxlib, #box_lib_init,0)!=0) notify(BOX_LIB_LOAD_ERR); + + LoadCfg(); + + loop() switch(WaitEvent()) + { + case evButton: + id=GetButtonID(); + if (id==1) ExitProcess(); + + if (id>=100) && (id<200) + { + if (id==100) { + if (mouse_cfg.emulation==true) KillProcessByName("mousemul", SINGLE); + else RunProgram("/sys/mousemul", 0); + mouse_cfg.emulation ^= 1; + } + if (id==101) { + if (mouse_cfg.madmouse==true) KillProcessByName("madmouse", SINGLE); + else RunProgram("/sys/madmouse", 0); + mouse_cfg.madmouse ^= 1; + } + if (id==120) mouse_cfg.pointer_speed++; + if (id==121) && (mouse_cfg.pointer_speed>0) mouse_cfg.pointer_speed--; + if (id==122) mouse_cfg.pointer_delay++; + if (id==123) && (mouse_cfg.pointer_delay>0) mouse_cfg.pointer_delay--; + DrawWindowContent(); + } + break; + + case evKey: + if (GetKey()==27) ExitProcess(); + break; + + case evReDraw: + sc.get(); + DefineAndDrawWindow(130, 150, 430, 200+GetSkinHeight(),0x34,sc.work,WINDOW_TITLE); + GetProcessInfo(#Form, SelfInfo); + if (Form.status_window>2) break; + mouse_frame.size_x = keyboard_frame.size_x = - mouse_frame.start_x * 2 + Form.cwidth; + mouse_frame.font_color = keyboard_frame.font_color = sc.work_text; + mouse_frame.font_backgr_color = keyboard_frame.font_backgr_color = sc.work; + mouse_frame.ext_col = keyboard_frame.ext_col = sc.work_graph; + DrawWindowContent(); + } +} + + +void DrawWindowContent() { + char pos_x = 22; + + frame_draw stdcall (#mouse_frame); + + DefineButton(pos_x, mouse_frame.start_y + 12, panels_img.w-1, 27-1, 100 + BT_HIDE, 0); + _PutImage(pos_x, mouse_frame.start_y + 12, 37, 27, 0 * 37 * 27 * 3 + panels_img.data); + WriteText(pos_x + 46, mouse_frame.start_y + 20, 0x80, sc.work_text, CHECK_MOUSE); + + PanelCfg_MoreLessBox(pos_x, mouse_frame.start_y + 50, 120, 121, mouse_cfg.pointer_speed, POINTER_SPEED); + PanelCfg_MoreLessBox(pos_x, mouse_frame.start_y + 80, 122, 123, mouse_cfg.pointer_delay, POINTER_DELAY); + + PanelCfg_CheckBox(pos_x, mouse_frame.start_y + 108, 100, MOUSE_EMULATION, mouse_cfg.emulation); + PanelCfg_CheckBox(pos_x, mouse_frame.start_y + 130, 101, MADMOUSE, mouse_cfg.madmouse); +} + + +void PanelCfg_CheckBox(dword x, y, id, text, byte value) { + CheckBox(x, y, 14, 14, id, text, sc.work_graph, sc.work_text, value); +} + + +void PanelCfg_MoreLessBox(dword x, y, id_more, id_less; byte value; dword text) { + MoreLessBox(x, y, 18, id_more, id_less, #sc, value, text); +} + + +void LoadCfg() { + mouse_cfg.pointer_delay = 10; + mouse_cfg.pointer_speed = 2; + //CheckProcessExists("MADMOUSE"); + mouse_cfg.madmouse = 0; + //CheckProcessExists("MOUSEMUL"); + mouse_cfg.emulation = 0; +} + +stop: \ No newline at end of file diff --git a/programs/cmm/mouse_cfg/panels_cfg.png b/programs/cmm/mouse_cfg/panels_cfg.png new file mode 100644 index 0000000000000000000000000000000000000000..d3f747ef5286582295c83ff8ab72301857ea208a GIT binary patch literal 758 zcmVA2U2acYWKLdZOkio( z+1uFM-QD5g-s0l;`1thn^!obx0JH!^TW-6*z{AMMy1u_gTW$6A^-Nh~MO$pSy}n0V zY(-pcNLy@-o1FIc_V@Sq=f}gJ0005aNkle z>v!i*HaUOsHh6y(g5OTLX1i&)&}zS2^6}0ogPjL=49jyVbdO_atI`zh}3)H`Z5e*|($CoqU1q_RW0r-rHTi_t@o9ZmBrw2Fs-!u-07* zp`FYC7yJTO=5;0jKDJt|7tfyti2MkH(3pRD4Zz9ss~JLb?+e8+3A#+~F(A_^gNdCa z0dTE&xtc$*QW{gD>W$a@@tQZj>Wy6%m{s#8s@^0hs$Oojd~>Oo^GkQnwWH$SK6vva zK7M>$e^kCvnk|6sST#;gPWI|wAI?sJ>-*NTm>@c@*rV%oPJc<`?Ch-Btk2KpdFk5i zpBo?EZf?8_VQcgK&d&CHk(o~K-GXcMII2{qHJCSZjpnU~-p}`d~UPmU&wN z)adA-^&kzZ?|2&>XyfSXJKi>q<0h4|1(!@avz_)c85^4jCdJcb>s#h3-k+M8xkJe3 z3s&&uWy!mc(tuO|Q8(Ve4nvXyT7@DxlrEd?61v?hubKqxV*UCj0*fxNozQvXupP5@*0A>rBS0QCtf70v8lo0BBSIvMnU<#aY(J zphLv4IOHoda4^7_936yfk4`8DlA}W~UDEYlkCD8S^|p1s#EHlq?z;=RAaknHOq^wX zEYgY9q66NI#-(?I z+_l|!r|+JLcdPZWc$<$Zovc+7y%Dgu1V15ZL@F9dlrI3BWJfC6Y8P~VN=uH0YXlNsDRYM2yiQ$zk=C)T0*x<=!jIURXt r_*MXU2VN0y5Oi@~3BX*+ow#h^9g&JZVT_9t%|JU~E>;j1432*TTLaQz literal 0 HcmV?d00001 diff --git a/programs/cmm/panels_cfg/panels_cfg.c b/programs/cmm/panels_cfg/panels_cfg.c index 85f5ef9e89..70b0dc217a 100644 --- a/programs/cmm/panels_cfg/panels_cfg.c +++ b/programs/cmm/panels_cfg/panels_cfg.c @@ -14,7 +14,6 @@ #include "..\lib\obj\libini.h" #include "..\lib\obj\box_lib.h" -#include "..\lib\patterns\libimg_load_skin.h" #include "..\lib\patterns\restart_process.h" #ifdef LANG_RUS