/programs/cmm/drvinst/drvinst.c |
---|
81,30 → 81,33 |
void main() |
{ |
int id; |
load_dll(libio, #libio_init,1); |
load_dll(libini, #lib_init,1); |
load_dll(boxlib, #box_lib_init,0); |
GetIniData(); |
SetEventMask(0x27); |
SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE+EVM_MOUSE_FILTER); |
loop() switch(WaitEvent()) |
{ |
case evMouse: |
if (!CheckActiveProcess(Form.ID)) break; |
SelectList_ProcessMouse(); |
break; |
case evButton: |
id=GetButtonID(); |
if (id==1) ExitProcess(); |
if (id==BUTTON_ID_ASSEPT_RISK) Event_AsseptRisk(); |
if (id==BUTTON_ID_README) Event_ShowReadme(); |
if (id==BUTTON_ID_INSTALL) Event_RunInstall(); |
Event_ProcessButtonId(GetButtonID()); |
break; |
case evKey: |
GetKeys(); |
if (select_list.ProcessKey(key_scancode)) SelectList_LineChanged(); |
if (key_scancode == SCAN_CODE_ENTER) Event_ProcessButtonId(active_button_id); |
if (window_step == WINDOW_STEP_DRIVER_LIST) |
{ |
if (select_list.ProcessKey(key_scancode)) SelectList_LineChanged(); |
if (key_scancode == SCAN_CODE_TAB) |
{ |
ActiveButtonSwitch(11, 12); |
Draw_DriverListWindow(); |
} |
} |
break; |
case evReDraw: |
113,7 → 116,7 |
} |
void draw_intro_window() |
void Draw_IntroWindow() |
{ |
incn y; |
y.n = Form.cheight/2 - 80; |
121,11 → 124,12 |
WriteTextB(30,y.n,0x81,0xB92234,T_CAUTION_TITLE); |
y.n = DrawTextViewArea(30, y.inc(30), Form.cwidth-60, Form.cheight-140, |
T_CAUTION_PARAGRAPH, -1, system.color.work_text); |
active_button_id = BUTTON_ID_ASSEPT_RISK; |
DrawStandartCaptButton(30, y.inc(10), BUTTON_ID_ASSEPT_RISK, T_ASSEPT_RISK); |
} |
void draw_driver_list_window() |
void Draw_DriverListWindow() |
{ |
int PADDING = 12; |
int right_frame_x = Form.cwidth*46/100; |
169,7 → 173,7 |
void SelectList_LineChanged() |
{ |
draw_driver_list_window(); |
Draw_DriverListWindow(); |
} |
190,6 → 194,14 |
// // |
//===================================================// |
void Event_ProcessButtonId(int id) |
{ |
if (id==1) ExitProcess(); |
if (id==BUTTON_ID_ASSEPT_RISK) Event_AsseptRisk(); |
if (id==BUTTON_ID_README) Event_ShowReadme(); |
if (id==BUTTON_ID_INSTALL) Event_RunInstall(); |
} |
void Event_DrawWindow() |
{ |
system.color.get(); |
198,8 → 210,8 |
if (Form.status_window>2) return; |
if (Form.width < 450) { MoveSize(OLD,OLD,450,OLD); return; } |
if (Form.height < 250) { MoveSize(OLD,OLD,OLD,250); return; } |
if (window_step == WINDOW_STEP_INTRO) draw_intro_window(); |
if (window_step == WINDOW_STEP_DRIVER_LIST) draw_driver_list_window(); |
if (window_step == WINDOW_STEP_INTRO) Draw_IntroWindow(); |
if (window_step == WINDOW_STEP_DRIVER_LIST) Draw_DriverListWindow(); |
return; |
} |
206,6 → 218,7 |
void Event_AsseptRisk() |
{ |
window_step = WINDOW_STEP_DRIVER_LIST; |
active_button_id = BUTTON_ID_INSTALL; |
Event_DrawWindow(); |
} |
216,5 → 229,7 |
void Event_RunInstall() |
{ |
io.run(#cur_install_path, NULL); |
int result; |
result = io.run(#cur_install_path, NULL); |
if (result) notify("'Driver installation started.\nPlease, open BOARD to check status.'I"); |
} |
/programs/cmm/lib/gui.h |
---|
50,6 → 50,7 |
WriteText(tx,ty,0x90,color_t,text); |
} |
:int active_button_id = 0; |
:int DrawStandartCaptButton(dword x, y, id, text) |
{ |
int padding_v = 5; |
57,15 → 58,30 |
int right_margin = 12; |
int tx = x + padding_h; |
int ty = y + padding_v+1; |
int tw = strlen(text)*8; |
int h = padding_v + padding_v + 16; //16 font height |
int w = strlen(text)*8 + padding_h + padding_h; |
int w = tw + padding_h + padding_h; |
if (id>0) DefineButton(x,y,w,h,id,system.color.work_button); |
WriteText(tx+1,ty+1,0x90,MixColors(system.color.work_button,0,230),text); |
WriteText(tx,ty,0x90,system.color.work_button_text,text); |
if (active_button_id==id) { |
DrawBar(tx,ty+15,tw,1, MixColors(system.color.work_button,0,230)); |
DrawBar(tx,ty+14,tw,1, system.color.work_button_text); |
} |
return w + right_margin; |
} |
:void ActiveButtonSwitch(int min, max) |
{ |
active_button_id++; |
if (active_button_id>max) || (active_button_id<max) active_button_id=min; |
} |
:void WriteTextCenter(dword x,y,w,color_t,text) |
{ |
WriteText(-strlen(text)*6+w/2+x+1,y,0x80,color_t,text); |
200,7 → 216,7 |
{ |
int w; |
WriteText(x,y,font_type,0x4E00E7,inscription); |
if (font_type==0x80) w = strlen(inscription)*6; else w = strlen(inscription)*7; |
if (font_type==0x80) w = strlen(inscription)*6; else w = strlen(inscription)*8; |
DefineButton(x-1,y-1,w,10,btn_id+BT_HIDE,0); |
DrawBar(x,y+8,w,1,0x4E00E7); |
} |
/programs/cmm/lib/io.h |
---|
324,7 → 324,6 |
__file_F70.rezerv = 0; |
__file_F70.param2 = rparam; |
__file_F70.name = path.path(rpath); |
debugln(__file_F70.name); |
$mov eax,70 |
$mov ebx,#__file_F70.func |
$int 0x40 |
/programs/cmm/lib/kolibri.h |
---|
44,35 → 44,24 |
#define evDebug 9 |
//Event mask bits for function 40 |
#define EVM_REDRAW 1b |
#define EVM_KEY 10b |
#define EVM_BUTTON 100b |
#define EVM_EXIT 1000b |
#define EVM_BACKGROUND 10000b |
#define EVM_MOUSE 100000b |
#define EVM_IPC 1000000b |
#define EVM_STACK 10000000b |
#define EVM_DEBUG 100000000b |
#define EVM_STACK2 1000000000b |
#define EVM_REDRAW 1b |
#define EVM_KEY 10b |
#define EVM_BUTTON 100b |
#define EVM_EXIT 1000b |
#define EVM_BACKGROUND 10000b |
#define EVM_MOUSE 100000b |
#define EVM_IPC 1000000b |
#define EVM_STACK 10000000b |
#define EVM_DEBUG 100000000b |
#define EVM_STACK2 1000000000b |
#define EVM_MOUSE_FILTER 0x80000000 |
#define EVM_CURSOR_FILTER 0x40000000 |
//Button options |
#define BT_DEL 0x80000000 |
#define BT_HIDE 0x40000000 |
#define BT_NOFRAME 0x20000000 |
//allow event mask |
#define EVENT_MASK_REDRAW 000000001b |
#define EVENT_MASK_KEYBOARD 000000010b |
#define EVENT_MASK_BUTTONS 000000100b |
#define EVENT_MASK_DESKTOP 000010000b |
#define EVENT_MASK_MOUSE 000100000b |
#define EVENT_MASK_IPC 001000000b |
#define EVENT_MASK_NETWORK 010000000b |
#define EVENT_MASK_DEBUG 100000000b |
//------------------------------------------------------------------------- |
#include "../lib/system.h" |
/programs/cmm/lib/patterns/rgb.h |
---|
5,6 → 5,7 |
{ |
byte b,g,r; |
void DwordToRgb(); |
void SetRgb(); |
dword RgbToDword(); |
} rgb; |
15,6 → 16,13 |
r = _dword & 0xFF; _dword >>= 8; |
} |
:void _rgb::SetRgb(dword _r, _g, _b) |
{ |
r = _r; |
g = _g; |
b = _b; |
} |
:dword _rgb::RgbToDword() |
{ |
dword _r, _g, _b; |