Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7449 → Rev 7450

/programs/cmm/lib/gui/checkbox.h
1,3 → 1,6
#ifndef INCLUDE_CHECKBOX
#define INCLUDE_CHECKBOX
 
:unsigned char checkbox_flag[507] = {
0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC,
0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4, 0x04, 0xFC, 0xD4,
86,3 → 89,5
{
draw(x,y);
}
 
#endif
/programs/cmm/lib/gui/menu.h
1,30 → 1,31
#ifndef INCLUDE_MENU_H
#define INCLUDE_MENU_H
 
#ifndef INCLUDE_LIST_BOX
#include "../lib/list_box.h"
#endif
 
:dword menu_process_id;
 
:struct _menu
:struct _menu : llist
{
dword appear_x, appear_y, text, identifier, selected;
llist list;
void show();
char stak[4096];
} menu;
 
void _menu::show(dword _appear_x, _appear_y, _menu_width, _text, _identifier)
:void _menu::show(dword _appear_x, _appear_y, _menu_width, _menu_text, _identifier)
{
#define ITEM_H 21
appear_x = _appear_x;
appear_y = _appear_y;
text = _text;
text = _menu_text;
identifier = _identifier;
 
list.cur_y = -1;
list.ClearList();
list.count = chrnum(text, '\n')+1;
list.SetSizes(2,2,_menu_width,list.count*ITEM_H,ITEM_H);
cur_y = -1;
ClearList();
count = chrnum(text, '\n')+1;
SetSizes(2,2,_menu_width,count*ITEM_H,ITEM_H);
 
menu_process_id = CreateThread(#_menu_thread,#stak+4092);
}
39,7 → 40,7
GetProcessInfo(#MenuForm, SelfInfo);
if (!CheckActiveProcess(MenuForm.ID)) _menu_no_item_click();
mouse.get();
if (menu.list.ProcessMouse(mouse.x, mouse.y)) _menu_draw_list();
if (menu.ProcessMouse(mouse.x, mouse.y)) _menu_draw_list();
if (mouse.lkm)&&(mouse.up) _menu_item_click();
break;
case evKey:
46,11 → 47,11
GetKeys();
if (key_scancode==SCAN_CODE_ESC) _menu_no_item_click();
if (key_scancode==SCAN_CODE_ENTER) _menu_item_click();
if (menu.list.ProcessKey(key_scancode)) _menu_draw_list();
if (menu.ProcessKey(key_scancode)) _menu_draw_list();
break;
case evReDraw:
DefineAndDrawWindow(menu.appear_x,menu.appear_y,menu.list.w+2,menu.list.h+4,0x01, 0, 0, 0x01fffFFF);
DrawPopup(0,0,menu.list.w,menu.list.h+3,0, 0xE4DFE1,0x9098B0);
DefineAndDrawWindow(menu.appear_x,menu.appear_y,menu.w+2,menu.h+4,0x01, 0, 0, 0x01fffFFF);
DrawPopup(0,0,menu.w,menu.h+3,0, 0xE4DFE1,0x9098B0);
_menu_draw_list();
}
}
58,24 → 59,24
:void _menu_draw_list()
{
int N, bgcol;
for (N=0; N<menu.list.count; N++;)
for (N=0; N<menu.count; N++;)
{
if (N==menu.list.cur_y) bgcol=0xFFFfff; else bgcol=0xE4DFE1;
DrawBar(menu.list.x, N*menu.list.item_h+menu.list.y, menu.list.w-3, menu.list.item_h, bgcol);
if (N==menu.cur_y) bgcol=0xFFFfff; else bgcol=0xE4DFE1;
DrawBar(menu.x, N*menu.item_h+menu.y, menu.w-3, menu.item_h, bgcol);
}
WriteTextLines(13, menu.list.item_h-8/2+menu.list.y, 0x80, 0, menu.text, menu.list.item_h);
if (menu.selected) WriteText(5, menu.selected-1*menu.list.item_h+8, 0x80, 0xEE0000, "\x10");
WriteTextLines(13, menu.item_h-8/2+menu.y, 0x80, 0, menu.text, menu.item_h);
if (menu.selected) WriteText(5, menu.selected-1*menu.item_h+8, 0x80, 0xEE0000, "\x10");
}
 
:void _menu_item_click()
{
menu.list.cur_y = menu.identifier + menu.list.cur_y;
menu.cur_y = menu.identifier + menu.cur_y;
KillProcess(menu_process_id);
}
 
:void _menu_no_item_click()
{
menu.list.cur_y = 0;
menu.cur_y = 0;
KillProcess(menu_process_id);
}
 
/programs/cmm/lib/gui.h
19,10 → 19,17
 
#include "../lib/gui/tabs.h"
#include "../lib/gui/more_less_box.h"
 
#ifndef INCLUDE_CHECKBOX
#include "../lib/gui/checkbox.h"
#endif
 
#include "../lib/gui/child_window.h"
#include "../lib/gui/text_view_area.h"
 
#ifndef INCLUDE_MENU_H
#include "../lib/gui/menu.h"
#endif
 
:int last_free_button_id = 1000;
:int GetFreeButtonId()
/programs/cmm/lib/patterns/rgb.h
25,11 → 25,16
 
:dword _rgb::RgbToDword()
{
/*
dword _r, _g, _b;
_r = r << 16;
_g = g << 8;
_b = b;
return _r + _g + _b;
*/
EAX = r << 16;
EAX += g << 8;
EAX += b;
}
 
:dword MixColors(dword _base, _overlying, dword a)
36,10 → 41,6
{
_rgb rgb1, rgb2, rgb_final;
dword n_a;
if (a<0) || (a>255) {
debug("Wrong alpha param in MixColors()!");
debugval("alpha", a);
}
 
rgb1.DwordToRgb(_base);
rgb2.DwordToRgb(_overlying);