rt_bool_t rtgui_notebook_event_handler(struct rtgui_object *object, struct rtgui_event *event) { int page_index; rtgui_rect_t rect; struct rtgui_notebook *notebook; RT_ASSERT(object != RT_NULL); RT_ASSERT(event != RT_NULL); notebook = RTGUI_NOTEBOOK(object); switch (event->type) { case RTGUI_EVENT_COMMAND: /* broadcast on each tab */ _rtgui_notebook_ontab(notebook, event); break; case RTGUI_EVENT_PAINT: _rtgui_notebook_ondraw(notebook); break; case RTGUI_EVENT_MOUSE_BUTTON: _rtgui_notebook_onmouse(notebook, (struct rtgui_event_mouse *)event); break; case RTGUI_EVENT_SHOW: /* show myself */ rtgui_widget_onshow(object, event); /* show the tab widget */ return _rtgui_notebook_current_widget_handle(notebook, event); case RTGUI_EVENT_HIDE: /* hide myself */ rtgui_widget_onhide(object, event); /* hide the tab widget */ return _rtgui_notebook_current_widget_handle(notebook, event); case RTGUI_EVENT_KBD: return _rtgui_notebook_current_widget_handle(notebook, event); case RTGUI_EVENT_UPDATE_TOPLVL: /* update myself */ rtgui_widget_onupdate_toplvl(object, event); /* update all the widgets in myself */ _rtgui_notebook_all_widget_handle(notebook, event); return RT_FALSE; case RTGUI_EVENT_RESIZE: /* re-size page widget */ _rtgui_notebook_get_page_rect(notebook, &rect); rtgui_widget_rect_to_device(RTGUI_WIDGET(notebook), &rect); for (page_index = 0; page_index < notebook->count; page_index ++) { rtgui_widget_set_rect(notebook->childs[page_index].widget, &rect); } break; default: /* use parent event handler */ return rtgui_widget_event_handler(object, event); } return RT_FALSE; }
rt_bool_t rtgui_notebook_event_handler(struct rtgui_object* object, struct rtgui_event* event) { struct rtgui_notebook* notebook; RT_ASSERT(object != RT_NULL); RT_ASSERT(event != RT_NULL); notebook = RTGUI_NOTEBOOK(object); switch (event->type) { case RTGUI_EVENT_PAINT: _rtgui_notebook_ondraw(notebook); break; case RTGUI_EVENT_MOUSE_BUTTON: _rtgui_notebook_onmouse(notebook, (struct rtgui_event_mouse*)event); break; case RTGUI_EVENT_SHOW: /* show myself */ rtgui_widget_onshow(object, event); /* show the tab widget */ return _rtgui_notebook_current_widget_handle(notebook, event); case RTGUI_EVENT_HIDE: /* hide myself */ rtgui_widget_onhide(object, event); /* hide the tab widget */ return _rtgui_notebook_current_widget_handle(notebook, event); case RTGUI_EVENT_KBD: return _rtgui_notebook_current_widget_handle(notebook, event); case RTGUI_EVENT_UPDATE_TOPLVL: /* update myself */ rtgui_widget_onupdate_toplvl(object, event); /* update all the widgets in myself */ _rtgui_notebook_all_widget_handle(notebook, event); return RT_FALSE; default: /* use parent event handler */ return rtgui_widget_event_handler(object, event); } return RT_FALSE; }