📄 button.c
字号:
/******************************************************** * Egui code,LGPL * Function : button * Author: asmcos@hotmail.com * Data : 2006-03-22 * $Id: button.c,v 1.9 2006/04/09 23:32:28 hjs Exp $ ********************************************************/#include <Egui.h>#include <widget.h>Efont *font;EGui_Widget * new_button ( EGui_Widget *pwidget ,short x,short y,short w,short h){ EGui_Widget * button; widget_list * list; EGui_Wfunc * button_wfunc; button = (EGui_Widget *) malloc(sizeof (EGui_Widget)); if (button == NULL) { printf ("malloc new button failed\n "); return (EGui_Widget * )NULL; } button_wfunc = (EGui_Wfunc *) malloc (sizeof(EGui_Wfunc)); if (button_wfunc == NULL) { printf ("malloc new botton_wfunc failed\n "); return (EGui_Widget * )NULL; } memset(button_wfunc,0,sizeof(EGui_Wfunc)); button->x = pwidget->x + x; button->y = pwidget->y + y; button->width = button->x + w; button->height = button->y + h; button->type = BUTTON; button->func = button_wfunc; button->parent = pwidget; button->window = pwidget->window; button->child = NULL; pwidget->child = button; button_init (button_wfunc); strcpy (button->name,"button"); add_newqueue (button); return button;}void button_show (EGui_Widget * widget){ widget->status = DISPLAY_ALL;}void button_draw (EGui_Widget * widget){ short x,y,w,h; EGui_Window *window; Ecolor color; EGui_Widget * button; button = widget; x = button->x; y = button->y; w = button->width ; h = button->height ; window = button->window; if (widget->status == DISPLAY_ALL) { int i = 0; new_color( window,&color,0xA0A0A0); Egui_rect (x+i,y+i,w-i-2,h-i-2, &color, window); i++; new_color( window,&color,0xF0F0F0); /* left vertical */ Egui_line (x+i,y+i,x+i,h-i-2, &color, window); /* up horizontal */ Egui_line (x+i,y+i,w-i-2,y+i, &color, window); new_color( window,&color,0x808080); /* right vertical */ Egui_line (w-i,y+i-1,w-i,h-i, &color, window); /* bottom horizontal */ Egui_line (x+i-1,h-i,w-i,h-i, &color, window); i++; new_color(window,&color,0xDDDDDD); Egui_fill (x+i,y+i,w-i-1,h-i-1, &color, window); new_color(window,&color,0xFFFFFF); Egui_drawstring(x + 6,y + 3,widget->name,font,&color,window); new_color(window,&color,0x747474); Egui_drawstring(x + 5,y + 2,widget->name,font,&color,window); } }void button_draw_out (EGui_Widget * widget){ short x,y,w,h; EGui_Window *window; Ecolor color; EGui_Widget * button; button = widget; x = button->x; y = button->y; w = button->width ; h = button->height ; window = button->window; if (widget->status == DISPLAY_ALL) { int i = 0; new_color( window,&color,0xA0A0A0); Egui_rect (x+i,y+i,w-i-2,h-i-2, &color, window); i++; new_color( window,&color,0xF0F0F0); /* left vertical */ Egui_line (x+i,y+i,x+i,h-i-2, &color, window); /* up horizontal */ Egui_line (x+i,y+i,w-i-2,y+i, &color, window); new_color( window,&color,0x808080); /* right vertical */ Egui_line (w-i,y+i-1,w-i,h-i, &color, window); /* bottom horizontal */ Egui_line (x+i-1,h-i,w-i,h-i, &color, window); i++; new_color(window,&color,0xDDDDDD); Egui_fill (x+i,y+i,w-i-1,h-i-1, &color, window); new_color(window,&color,0xFFFFFF); Egui_drawstring(x + 6,y + 3,widget->name,font,&color,window); new_color(window,&color,0x747474); Egui_drawstring(x + 5,y + 2,widget->name,font,&color,window); } }voidbutton_draw_in (EGui_Widget * widget){ short x,y,w,h; EGui_Window *window; Ecolor color; EGui_Widget * button; button = widget; x = button->x; y = button->y; w = button->width ; h = button->height ; window = button->window; if (widget->status == DISPLAY_ALL) { int i = 0; new_color( window,&color,0x80); Egui_rect (x+i,y+i,w-i-1 ,h-i-1, &color, window); i++; new_color( window,&color,0xFFFF00); Egui_rect (x+i,y+i,w-i-1 ,h-i-1 , &color, window); } }voidbutton_click_left (EGui_Widget * widget){ short x,y,w,h; EGui_Window *window; Ecolor color; EGui_Widget * button; button = widget; x = button->x; y = button->y; w = button->width ; h = button->height ; window = button->window; if (widget->status == DISPLAY_ALL) { int i = 1; new_color(window,&color,0xA0A0A0); Egui_fill (x+i,y+i,w-i-1,h-i-1, &color, window); new_color(window,&color,0x0); Egui_drawstring(x + 5,y + 2,widget->name,font,&color,window); } }voidbutton_rel_left (EGui_Widget * widget){ short x,y,w,h; EGui_Window *window; Ecolor color; EGui_Widget * button; button = widget; x = button->x; y = button->y; w = button->width ; h = button->height ; window = button->window; if (widget->status == DISPLAY_ALL) { int i = 1; new_color(window,&color,0xDDDDDD); Egui_fill (x+i,y+i,w-i-1,h-i-1, &color, window); new_color(window,&color,0x0); Egui_drawstring(x + 5,y + 2,widget->name,font,&color,window); } }intbutton_init (EGui_Wfunc * button_wfunc){ button_wfunc->show = button_show; button_wfunc->draw = button_draw; button_wfunc->click_left = button_click_left; button_wfunc->rel_left = button_rel_left; button_wfunc->draw_in = button_draw_in; button_wfunc->draw_out = button_draw_out; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -