#include #include #include #include #include "GUI_config_power.h" #include "GUI_keyboard.h" #include "GUI_common.h" #include "CORE_general.h" #include "gfx/all_gfx.h" /* Possible actions */ #define BACK 0 #define OK 1 /******** PRIVATE ********/ static void priv_load_sprites(u8 screen); static void priv_del_sprites(u8 screen); static u8 priv_touched(u8 icon); static u8 priv_selected(u8 icon); /*************************/ /* The connect menu process function */ void gui_config_power(void){ static config_power_state_t localstate = CONFIG_POWER_INIT; static char tmp_light[4] = {0,0,0,0}; switch(localstate){ case CONFIG_POWER_INIT: PA_EasyBgLoad(DSCR, 3, BG_keyboard); keyboard_view(); priv_load_sprites(DSCR); sprintf(tmp_light, "%d", tmpEnv->power.auto_light_off); localstate = CONFIG_POWER_FADEIN; break; case CONFIG_POWER_FADEIN: if(fadein(DSCR)) return; localstate = CONFIG_POWER_SELECT; commons_move_in(); break; case CONFIG_POWER_SELECT: keyboard_num_read(tmp_light, sizeof(tmp_light), 0); if(priv_selected(BACK)){ Env.next_state = APP_CONFIG; localstate = CONFIG_POWER_MOVEOUT; } else if(priv_selected(OK)){ if( (atoi(tmp_light) >= 0) && (atoi(tmp_light) <= 255) ){ // can be 0 here.. tmpEnv->power.auto_light_off = atoi(tmp_light); Env.tmp_has_changed = 1; Env.next_state = APP_CONFIG; localstate = CONFIG_POWER_MOVEOUT; } } break; case CONFIG_POWER_MOVEOUT: commons_move_out(); localstate = CONFIG_POWER_FADEOUT; case CONFIG_POWER_FADEOUT: if(fadeout(DSCR)) return; localstate = CONFIG_POWER_CLEAR; break; case CONFIG_POWER_CLEAR: keyboard_hide(); priv_del_sprites(DSCR); PA_DeleteBg(DSCR, 3); localstate = CONFIG_POWER_INIT; Env.current_state = Env.next_state; break; } return; } /*------------------------------- Private -------------------------------*/ /* Private sprite loading */ static void priv_load_sprites(u8 screen){ buttons_init(BUTTON_BACK, BUTTON_OK); title_init(TITLE_POWER); return; } /* Private sprite deletting */ static void priv_del_sprites(u8 screen){ commons_delete(); return; } /* Private sprite touch Return 1 touched 0 not touched */ static u8 priv_touched(u8 icon){ switch(icon){ case BACK: return button_touch_l(); break; case OK: return button_touch_r(); break; } return 0; } /* Is the item selected? Return 1 selected 0 not selected */ static u8 priv_selected(u8 icon){ return priv_touched(icon); }