00001 #include <gtk/gtk.h>
00002 #include "etk_keyvalue.h"
00003 #include "etk_addrem.h"
00004
00005 void store_filename( GtkWidget* widget , GtkWidget* user_data[2] )
00006 {
00007 GtkWidget* file_selector = GTK_WIDGET( user_data[0] );
00008 GtkWidget* entry = GTK_WIDGET( user_data[1] );
00009 const gchar* filename;
00010
00011 filename = gtk_file_selection_get_filename( GTK_FILE_SELECTION(file_selector) );
00012 gtk_entry_set_text( GTK_ENTRY( entry ) , filename );
00013
00014 g_print( "Selected filename: %s\n" , filename );
00015 }
00016
00017 void create_file_selection( gpointer user_data )
00018 {
00019 GtkWidget* entry = GTK_WIDGET( user_data );
00020 GtkWidget* file_selector;
00021 static GtkWidget* data[2];
00022
00023 file_selector = gtk_file_selection_new( "Please select a file." );
00024
00025 data[0] = file_selector;
00026 data[1] = entry;
00027
00028 g_signal_connect( GTK_FILE_SELECTION( file_selector )->ok_button ,
00029 "clicked" ,
00030 G_CALLBACK( store_filename ) ,
00031 data );
00032
00033 g_signal_connect_swapped( GTK_FILE_SELECTION( file_selector )->ok_button ,
00034 "clicked" ,
00035 G_CALLBACK( gtk_widget_destroy ) ,
00036 file_selector );
00037 g_signal_connect_swapped( GTK_FILE_SELECTION( file_selector )->cancel_button ,
00038 "clicked" ,
00039 G_CALLBACK( gtk_widget_destroy ) ,
00040 file_selector );
00041
00042 gtk_widget_show( file_selector );
00043 }
00044
00045 GtkWidget* get_bathymetry_file( GtkWidget* window )
00046 {
00047 GtkWidget* frame = gtk_frame_new( "Initial Bathymetry" );
00048
00049 {
00050 GtkWidget* v_box = gtk_vbox_new ( FALSE , 2 );
00051 GtkWidget* h_box = gtk_hbox_new ( FALSE , 2 );
00052 GtkWidget* message = gtk_text_view_new ( );
00053
00054 {
00055 GtkTextBuffer* buff = gtk_text_buffer_new( NULL );
00056
00057 gtk_text_buffer_set_text( buff , "This is a test.\n\n An indented line.\0" , -1 );
00058
00059 gtk_text_view_set_buffer ( GTK_TEXT_VIEW( message ) , buff );
00060 gtk_text_view_set_editable( GTK_TEXT_VIEW( message ) , FALSE );
00061 }
00062
00063 {
00064 GtkWidget* entry = gtk_entry_new();
00065 GtkWidget* choose_button = gtk_button_new_with_label( "Choose..." );
00066
00067 gtk_box_pack_start( GTK_BOX( h_box ) , entry , TRUE , TRUE , 2 );
00068 gtk_box_pack_end ( GTK_BOX( h_box ) , choose_button , FALSE , FALSE , 2 );
00069
00070 g_signal_connect_swapped( G_OBJECT( choose_button ) ,
00071 "clicked" ,
00072 G_CALLBACK(create_file_selection) ,
00073 entry );
00074
00075
00076
00077
00078
00079
00080 }
00081
00082 gtk_box_pack_start( GTK_BOX( v_box ) , message , TRUE , TRUE , 2 );
00083 gtk_box_pack_start( GTK_BOX( v_box ) , h_box , FALSE , FALSE , 2 );
00084
00085 gtk_container_set_border_width( GTK_CONTAINER( v_box ) , 10 );
00086
00087 gtk_container_add( GTK_CONTAINER( frame ) , v_box );
00088 }
00089
00090 gtk_frame_set_label_align( GTK_FRAME( frame ) , 1. , .5 );
00091 gtk_container_set_border_width( GTK_CONTAINER( frame ) , 5 );
00092
00093 return frame;
00094 }
00095