/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/sed/stk_select_bathy.c

Go to the documentation of this file.
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          g_signal_connect_object( G_OBJECT( choose_button ) ,
00076                                   "clicked" ,
00077                                   G_CALLBACK(create_file_selection) ,
00078                                   entry , G_CONNECT_AFTER|G_CONNECT_SWAPPED );
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 

Generated on Fri Jan 4 18:04:15 2008 for sedflux by  doxygen 1.5.2