Example #1
0
// execute options from the recipe context menu
static int context_recipe_handler(window_info *win, int widget_id, int mx, int my, int option)
{
	switch (option)
	{
		case CMRIC_ADD:
		{
			// add additional row and select it
			if (wanted_num_recipe_entries < max_num_recipe_entries-1)
			{
				change_num_recipe_entries(&wanted_num_recipe_entries, wanted_num_recipe_entries+1);
				set_var_OPT_INT("wanted_num_recipe_entries", wanted_num_recipe_entries);
				cur_recipe = num_recipe_entries -1;
			}
			break;
		}
		case CMRIC_CLEAR:
		{
			// clear the current recipe
			size_t i;
			for(i=0; i<NUM_MIX_SLOTS; i++)
				recipes_store[cur_recipe].items[i].quantity = 0;
			clear_recipe_name(cur_recipe);
			break;
		}
		case CMRIC_SORT:
		{
			qsort(recipes_store, num_recipe_entries, sizeof(recipe_entry), recipe_cmp);
			break;
		}
		default:
			return 0;
	}
	return 1;
}
Example #2
0
// execute options from the recipe context menu
static int context_recipe_handler(window_info *win, int widget_id, int mx, int my, int option)
{
	switch (option)
	{
		case CMRIC_ADD:
		{
			// add additional row and select it
			if (wanted_num_recipe_entries < max_num_recipe_entries-1)
			{
				change_num_recipe_entries(&wanted_num_recipe_entries, wanted_num_recipe_entries+1);
				set_var_OPT_INT("wanted_num_recipe_entries", wanted_num_recipe_entries);
				cur_recipe = num_recipe_entries -1;
			}
			break;
		}
		case CMRIC_CLEAR:
		{
			// clear the current recipe
			clear_recipe_name(cur_recipe);
			init_recipe_slot(cur_recipe);
			break;
		}
		case CMRIC_DELETE:
		{
			// delete the current recipe and move the rest down to fill the gap
			clear_recipe_name(cur_recipe);
			if (cur_recipe < (num_recipe_entries - 1))
				memmove(&recipes_store[cur_recipe], &recipes_store[cur_recipe+1],
					(num_recipe_entries - cur_recipe -1) * sizeof(recipe_entry));
			init_recipe_slot(num_recipe_entries - 1);
			break;
		}
		case CMRIC_SORT:
		{
			// alphabetically sort the recipes by name, unnamed then empty slots at the end
			qsort(recipes_store, num_recipe_entries, sizeof(recipe_entry), recipe_cmp);
			break;
		}
		default:
			return 0;
	}
	return 1;
}