Пример #1
0
Файл: menu.c Проект: g7/fbpanel
/* Creates menu and optionally button to pop it up.
 * If @ret_menu is TRUE, then a menu is returned. Otherwise,
 * button is created, linked to a menu and returned instead. */
static GtkWidget *
menu_create_menu(xconf *xc, gboolean ret_menu, menu_priv *m)
{
    GtkWidget *mi, *menu;
    GSList *w;
    xconf *nxc;
    
    if (!xc)
        return NULL;
    menu = gtk_menu_new ();
    gtk_container_set_border_width(GTK_CONTAINER(menu), 0);
    for (w = xc->sons; w ; w = g_slist_next(w))
    {
        nxc = w->data;
        if (!strcmp(nxc->name, "separator"))
            mi = menu_create_separator();
        else if (!strcmp(nxc->name, "item"))
            mi = menu_create_item(nxc, NULL, m);
        else if (!strcmp(nxc->name, "menu"))
            mi = menu_create_menu(nxc, FALSE, m);
        else
            continue;
        gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
    }
    gtk_widget_show_all(menu);
    return (ret_menu) ? menu : menu_create_item(xc, menu, m);
}
Пример #2
0
static void display_board_icon(GcomprisBoard *board, MenuItems *menuitems)
{
    /* FIXME: Check board is available for the current profile */
    if (board!=NULL
            && gc_board_check_file(board))
    {
        menu_create_item(actualSectionItem, menuitems, board);
    }
}
Пример #3
0
static void
main_loop (void)
{
	List *products;
	char input[INPUT_BUFFER_SIZE];
	char *t;
	int invalid;

	products = db_load_products ();

	while (1)
	{
		menu_print_main ();
		fgets (input, INPUT_BUFFER_SIZE, stdin);

		/* Check if input is longer than one character */
		invalid = 0;
		for (t = input + 1; t < input + INPUT_BUFFER_SIZE; t++)
		{
			if (*t == 0) break;

			if (*t > 20)
			{
				invalid = 1;
				break;
			}
		}

		if (invalid)
		{
			printf ("Invalid input string\n");
			continue;
		}

		if (*input == 'q' || *input == 'Q')
		{
			break;
		}

		switch (*input)
		{
			case '1':
				products = menu_create_item (products);
				break;
			case '2':
				products = menu_edit_item (products);
				break;
			case '3':
				menu_view_item (products);
				break;
			case '4':
				products = menu_delete_item (products);
				break;
			case '5':
				menu_list_items (products);
				break;
			default:
				printf ("Invalid selection '%c'\n\n", *input);
		}
	}

	db_write_products (products);

	list_foreach (products, LIST_FUNC (product_free));
	list_free (products);
}