コード例 #1
0
ファイル: mlist.c プロジェクト: iPodLinux-Community/ZacZilla
menu_st *menu_handle_item(menu_st *menulist, int num)
{
	item_st *item;
	/* out of bounds */
	if(num < 0 || num >= menulist->num_items) {
		Dprintf("menu_handle_item::Invalid item");
		return menulist;
	}
	item = &menulist->items[num];
	menulist->lastsel = -1;

	if(SUB_MENU_HEADER & item->op) {
		/* Destroy timer */
		menu_handle_timer(menulist, 1);
		/* create another sub-menu  */
		menulist = menu_right_transition(menulist, item);
	}
	else if(ACTION_MENU & item->op) {
		/* execute the function */
		void (* fp)(void);
		fp = item->action;
		(* fp)();
		menulist->lastsel = 0;
	}
	else if(BOOLEAN_MENU & item->op) {
		/* toggle boolean; draw */
		item->sel_option = !(item->sel_option);
		if(item->setting != 0)
			ipod_set_setting(item->setting, item->sel_option);
		menu_retext_pixmap(menulist, num - menulist->top_item, item);
	}
	else if(OPTION_MENU & item->op) {
		/* rotate option; draw */
		item->sel_option = ((item->sel_option + 1) >
				(item->item_count - 1) ? 0 :
				item->sel_option + 1);
		if(item->setting != 0)
			ipod_set_setting(item->setting, item->sel_option);
		menu_retext_pixmap(menulist, num - menulist->top_item, item);
	}
	
	else if(SETTING_ITEM & item->op) {
		if(item->setting != 0)
			ipod_set_setting(item->setting, item->item_count);
		menulist = menu_destroy(menulist);
	}


	/* this isnt an else, so you can do (ACTION_MENU|SUB_MENU_PREV) */
	if(SUB_MENU_PREV & item->op) {
		menulist = menu_destroy(menulist);
	}
	return menulist;
}
コード例 #2
0
ファイル: menu.c プロジェクト: Keripo/ProjectZeroSlackr-SVN
static void menu_set_setting (ttk_menu_item *item, int cdata) 
{
    ipod_set_setting (cdata, item->choice);
}
コード例 #3
0
void toggle_backlight(void)
{
        ipod_set_setting(BACKLIGHT, !ipod_get_setting(BACKLIGHT));
}