ein Kapitel zurück                                           ein Kapitel weiter

Viele Applikationen die Sie schreiben werden auch die Möglichkeit benötigen, Daten zu öffnen mit sogenannten Dialogboxen. Theoretisch könnten sie ja auch die Konsole dafür verwenden. Aber dann benötigten wir keine GUI. Im Normalfall sperren Dialogboxen, während sie eine Datei selektieren, die aktuelle Anwendung aus der sie gestartet wurden. Man kann diesen Modularen Modus aber auch ausschalten.

Eine Dialogbox erzeugen sie mit der Funktion:

GtkWidget *gtk_file_selection_new(const gchar *title);  

title ist dabei die Überschrift der Dialogbox. Nun benötigen wir nur noch die Funktionen zum Abfragen der Ausgewählten Datei:

gchar *gtk_file_selection_get_filename(GtkFileSelection *select);  

Natürlich gibt es auch das Gegenstück zu dieser Funktion mit:

void  gtk_file_selection_set_filename(GtkFileSelection *select,
                                      const gchar *filename);  

Nun wollen wir uns ein einfaches Beispiel dazu ansehen:

/*Download:gtk_dia.c*/

#include <gtk/gtk.h>

/*Programmende*/
void ende_cb(GtkObject *object)
{
 gtk_main_quit();
}

/*Ausgewählte Datei auf Konsole ausgeben*/
void get_filename(GtkWidget *widget, GtkFileSelection *sel)
{
 g_print("Folgende Datei wurde ausgewählt : %s\n",
          gtk_file_selection_get_filename(GTK_FILE_SELECTION(sel)));
}


int main(int argc, char **argv)
{
 GtkWidget *file_select;

 /*Gtk initialisieren*/
 gtk_init(&argc, &argv);

 file_select = gtk_file_selection_new("Auswahl");

 /*Signale einrichten*/
 gtk_signal_connect(GTK_OBJECT(file_select), "destroy",
                    (GtkSignalFunc) ende_cb, &file_select);
 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(file_select)->ok_button),
                    "clicked", (GtkSignalFunc) get_filename, file_select);
 gtk_signal_connect_object(GTK_OBJECT(GTK_FILE_SELECTION(file_select)->cancel_button),
                           "clicked", (GtkSignalFunc) ende_cb, GTK_OBJECT(file_select));

 //gtk_file_selection_set_filename(GTK_FILE_SELECTION(file_select),"name.txt");
 gtk_widget_show(file_select);

 gtk_main();

 return 0;
}

Und so könnte es aussehen:




So einfach können sie die altbewährte Dialogbox erstellen und verwenden. Sollten sie aber eine eigene Dialogbox erstellen wollen, sollten sie sich die Funktion gtk_dialog_new und dessen weiteren Funktionen ansehen.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf