1,55 → 1,65 |
:struct more_less_box |
{ |
signed x,y; |
unsigned value, min, max; |
unsigned bt_id_more, bt_id_less; |
dword text; |
int click_delta; |
int x,y; |
unsigned id_inc, id_dec; |
void check_values(); |
bool click(); |
bool inc(); |
bool dec(); |
void draw(); |
void redraw(); |
}; |
|
:void more_less_box::check_values() |
{ |
if (!id_inc) id_inc = GetFreeButtonId(); |
if (!id_dec) id_dec = GetFreeButtonId(); |
if (!click_delta) click_delta = 1; |
} |
|
:bool more_less_box::click(unsigned id) |
{ |
if (!click_delta) click_delta = 1; |
if (id==bt_id_less) { value = math.max(value-click_delta, min); draw(); return 1; } |
if (id==bt_id_more) { value = math.min(value+click_delta, max); draw(); return 1; } |
if (id==id_dec) { value = math.max(value-click_delta, min); redraw(); return 1; } |
if (id==id_inc) { value = math.min(value+click_delta, max); redraw(); return 1; } |
return 0; |
} |
|
:void more_less_box::draw() |
:bool more_less_box::inc() |
{ |
#define VALUE_FIELD_W 34 |
#define SIZE 18 |
dword value_text = itoa(value); |
click(id_inc); |
} |
|
DrawRectangle(x, y, VALUE_FIELD_W+1, SIZE, system.color.work_graph); |
DrawRectangle3D(x+1, y+1, VALUE_FIELD_W-2, SIZE-2, 0xDDDddd, 0xffffff); |
DrawBar(x+2, y+2, VALUE_FIELD_W-3, SIZE-3, 0xffffff); |
WriteText( -strlen(value_text)+3*8 + x+6, SIZE / 2 + y -6, 0x90, 0x333333, value_text); |
|
DrawCaptButton(VALUE_FIELD_W + x + 1, y, SIZE, SIZE, bt_id_more, system.color.work_button, system.color.work_button_text, "+"); |
DrawCaptButton(VALUE_FIELD_W + x + SIZE, y, SIZE, SIZE, bt_id_less, system.color.work_button, system.color.work_button_text, "-"); |
EDI = system.color.work; |
WriteText(x+VALUE_FIELD_W+SIZE+SIZE+10, SIZE / 2 + y -7, 0xD0, system.color.work_text, text); |
DrawRectangle3D(x-1,y-1,VALUE_FIELD_W+SIZE+SIZE+2,SIZE+2,system.color.work_dark,system.color.work_light); |
:bool more_less_box::dec() |
{ |
click(id_dec); |
} |
|
//OUTDATED: to be removed |
:void MoreLessBox(dword x,y, bt_id_more, bt_id_less, value, text) |
:void more_less_box::draw(dword _x,_y) |
{ |
#define VALUE_FIELD_W 34 |
#define SIZE 18 |
dword value_text = itoa(value); |
|
check_values(); |
x=_x; y=_y; |
|
DrawRectangle(x, y, VALUE_FIELD_W+1, SIZE, system.color.work_graph); |
DrawRectangle3D(x+1, y+1, VALUE_FIELD_W-2, SIZE-2, 0xDDDddd, 0xffffff); |
DrawBar(x+2, y+2, VALUE_FIELD_W-3, SIZE-3, 0xffffff); |
WriteText( -strlen(value_text)+3*8 + x+6, SIZE / 2 + y -6, 0x90, 0x333333, value_text); |
|
DrawCaptButton(VALUE_FIELD_W + x + 1, y, SIZE, SIZE, bt_id_more, system.color.work_button, system.color.work_button_text, "+"); |
DrawCaptButton(VALUE_FIELD_W + x + SIZE, y, SIZE, SIZE, bt_id_less, system.color.work_button, system.color.work_button_text, "-"); |
DrawCaptButton(VALUE_FIELD_W + x + 1, y, SIZE, SIZE, id_inc, system.color.work_button, system.color.work_button_text, "+"); |
DrawCaptButton(VALUE_FIELD_W + x + SIZE, y, SIZE, SIZE, id_dec, system.color.work_button, system.color.work_button_text, "-"); |
EDI = system.color.work; |
WriteText(x+VALUE_FIELD_W+SIZE+SIZE+10, SIZE / 2 + y -7, 0xD0, system.color.work_text, text); |
DrawRectangle3D(x-1,y-1,VALUE_FIELD_W+SIZE+SIZE+2,SIZE+2,system.color.work_dark,system.color.work_light); |
} |
|
:void more_less_box::redraw() |
{ |
draw(x,y); |
} |
|