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: |