📄 widget.c
字号:
/******************************************************** * Egui code,LGPL * Function : Widget common function * Author: asmcos@hotmail.com * Data : 2006-03-21 * $Id: widget.c,v 1.8 2006/04/14 00:53:28 hjs Exp $ ********************************************************/#include <Egui.h>#include <widget.h>void widget_show (EGui_Widget *widget){ if (widget->func->show != NULL) widget->func->show (widget);}void widget_draw (EGui_Widget *widget){ if (widget->func->draw != NULL) widget->func->draw (widget); /* display all child */ if (widget->child) { EGui_Widget *c_widget; widget_list *list; int have_c = 1; c_widget = widget->child; while (have_c) { if (c_widget->status != DISPLAY_NOT) { if (c_widget->func->draw) widget_draw (c_widget); } /* find next brother */ if (c_widget->list->next != NULL) { list = (widget_list *) c_widget->list->next; c_widget = list->widget; } else have_c = 0; } }}void widget_draw_in (EGui_Widget *widget){ if (widget->func->draw_in != NULL) widget->func->draw_in (widget);}void widget_draw_out (EGui_Widget *widget){ if (widget->func->draw_out != NULL) widget->func->draw_out (widget); }void widget_click_left (EGui_Widget *widget){ if (widget->func->click_left != NULL) widget->func->click_left (widget);}void widget_rel_left (EGui_Widget *widget){ if (widget->func->rel_left != NULL) widget->func->rel_left (widget); /* user callback */ if (widget->func->user_click_left != NULL) widget->func->user_click_left(widget); }void widget_press_key (EGui_Widget *widget,EGui_Event *event){ if (widget->func->press_key != NULL) widget->func->press_key (widget,event); /* user callback */ if (widget->func->user_press_key != NULL) widget->func->user_press_key(widget,event); }voidwidget_move (EGui_Widget *widget,int x,int y){ int old_x; int old_y; int width,height; width = widget->width - widget->x; height = widget->height - widget->y; if (widget->parent) { old_x = widget->parent->x; old_y = widget->parent->y; } else { old_x = widget->window->frame_w; old_y = widget->window->title_h + old_x; } widget->x = old_x + x; widget->y = old_y + y; widget->width = width + widget->x; widget->height = height + widget->y; widget->list->vx = widget->x; widget->list->vy = widget->y; widget->list->vw = widget->width; widget->list->vh = widget->height;}voidwidget_register_callback (EGui_Widget *widget, int type, void (* callback) ( EGui_Widget *widget)){ switch (type) { case BUTTON_CLICK_LEFT: widget->func->user_click_left = callback; break; default: printf ("Don't support event callback type =%d\n",type); break; }}voidwidget_set_focus (EGui_Widget *widget){ focus_widget = widget;}voidwidget_set_name(EGui_Widget *widget,char *name){ int len; len = strlen (name); if (len > NAME_MAX) len = NAME_MAX; else widget->name[len] = '\0'; strncpy (widget->name,name,len);}void widget_free (EGui_Widget *widget){ free(widget);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -