/* * Mr. 4th Dimention - Allen Webster * * 26.09.2015 * * File editing view for 4coder * */ // TOP struct Menu_View{ View view_base; Style *style; Working_Set *working_set; Delay *delay; UI_State state; }; inline Menu_View* view_to_menu_view(View *view){ Menu_View *result = 0; if (view->type == VIEW_TYPE_MENU){ result = (Menu_View*)view; } return result; } internal i32 step_draw_menu_view(Menu_View *view, Render_Target *target, i32_Rect rect, Input_Summary *user_input, bool32 input_stage){ i32 result = 0; UI_State state = ui_state_init(&view->state, target, user_input, view->style, view->working_set, input_stage); UI_Layout layout; begin_layout(&layout, rect); i32 id = 0; do_label(&state, &layout, "Menu", 2.f); if (do_list_option_lit(++id, &state, &layout, "Theme Options")){ delayed_action(view->delay, DACT_THEME_OPTIONS, {}, view->view_base.panel); } if (ui_finish_frame(&view->state, &state, &layout, rect, 0, 0)){ result = 1; } return result; } Do_View_Sig(do_menu_view){ i32 result = 0; Menu_View *menu_view = (Menu_View*)view; switch (message){ case VMSG_STEP: case VMSG_DRAW: result = step_draw_menu_view(menu_view, target, rect, user_input, (message == VMSG_STEP)); break; } return result; } internal Menu_View* menu_view_init(View *view, Style *style, Working_Set *working_set, Delay *delay){ view->type = VIEW_TYPE_INTERACTIVE; view->do_view = do_menu_view; Menu_View *result; result = (Menu_View*)view; result->style = style; result->working_set = working_set; result->delay = delay; return result; } // BOTTOM