Menü készítő program

Fórumok

Sziasztok!Írtam egy egyszerű "menükészítő" programot,amit szeretnék veletek megosztani,hogy legalább más találja meg,ha szüksége van rá.A standard inputról olvas be ,és a standard outputra írja ki annak a gombnak a nevét,amire rákattintott a user.

fordítás paraméterezése:gcc 2008_02_30_gtk_menumaker_1.c -o gtk_menumaker_1 `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`

A forrás:

#include "stdio.h"
#include "stdlib.h"
#include "gtk/gtk.h"
static gboolean
ki_irja_a_labeljet_az_stdoutra (GtkWidget * widget,
GdkEvent * event, gpointer data)
{
g_print ("%s\n", gtk_button_get_label (widget));
gtk_main_quit ();
return FALSE;
}
int
main ()
{
gtk_init (0, NULL);
GtkWidget *a[100];
GtkWidget *window;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width (GTK_CONTAINER (window), 100);
gtk_widget_show (window);
GtkWidget *doboz_amibe_pakolok;
doboz_amibe_pakolok = gtk_vbox_new (FALSE, 0);
int i = 0;
while (!feof (stdin))
{
char beadottstring[100] = "";
fgets (beadottstring, 100, stdin);
if (beadottstring[0]!=0)
{
a[i] = gtk_button_new_with_label (beadottstring);
g_signal_connect_swapped (G_OBJECT (a[i]), "clicked",
G_CALLBACK
(ki_irja_a_labeljet_az_stdoutra),
G_OBJECT (a[i]));
gtk_box_pack_start (GTK_BOX (doboz_amibe_pakolok),
a[i], FALSE, FALSE, 0);
gtk_widget_show (a[i]);
}
}
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (gtk_main_quit), NULL);
gtk_container_add (GTK_CONTAINER (window), doboz_amibe_pakolok);
gtk_widget_show (doboz_amibe_pakolok);
gtk_main ();
return 0;

}