1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
/* Fonction d'ajout de labels */
void add_label(xmlDocPtr doc, xmlNodePtr cur, t_menu *menu, t_label **l_tmp, t_info *g)
{
t_label *label;
label = malloc(sizeof(*label));
memset(label, 0, sizeof(*label));
for (cur = cur->xmlChildrenNode; cur; cur = cur->next)
{
if (!xmlStrcmp(cur->name, (const xmlChar *) "nom"))
select_lang(0, &(label->label), cur, doc, g);
else if (!xmlStrcmp(cur->name, (const xmlChar *) "lien"))
select_lang(0, &(label->lien), cur, doc, g);
}
label->w_label = gtk_label_new(label->label);
gtk_label_set_line_wrap(GTK_LABEL(label->w_label), TRUE);
label->w_box = gtk_hbox_new(0, 0);
if (menu->fleche && label->label)
{
label->fleche = gtk_image_new();
gtk_box_pack_start(GTK_BOX(label->w_box), label->fleche, TRUE, 0, 0);
}
if (label->lien)
{
label->w_button = new_button();
gtk_container_add(GTK_CONTAINER(label->w_button), label->w_label);
gtk_box_pack_start(GTK_BOX(label->w_box), label->w_button, TRUE, 0, 0);
g_signal_connect(G_OBJECT(label->w_button), "released", G_CALLBACK(do_cmd), label->lien);
}
else
gtk_box_pack_start(GTK_BOX(label->w_box), label->w_label, TRUE, 0, 0);
gtk_box_pack_start(GTK_BOX(menu->w_box), label->w_box, TRUE, 0, 0);
if (*l_tmp)
(*l_tmp)->prev = label;
*l_tmp = label;
label->next = menu->label;
menu->label = label;
}
void c_window(t_accueil *acc, t_info *g)
{
acc->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(acc->window), acc->window_name);
init_window(acc, g);
init_background(acc);
display_accueil(0, 0, acc);
gtk_widget_show (acc->window);
}
int main(int ac, char **av)
{
t_accueil **acc;
int i;
t_info general;
memset(&general, 0, sizeof(general));
if (ac > 1)
{
acc = alloc_mem(--ac);
gtk_init(0,0);
for (i = 0; i < ac; i++)
{
if (init_acc(acc[i], &general, ac, i, av[i + 1]) == EXIT_FAILURE) \\ Recupere des info dans des xml et les stock ds acc[] et general
exit(1);
c_window(acc[i], &general);
init_general(&general);
}
gtk_main();
}
gtk_main_quit();
exit (1);
} |
Partager