Example #1
0
void
GTK_browse_server_executable(GtkWidget *entry, gpointer user_data)
{
    GtkWidget *w;
    const gchar *path = gtk_entry_get_text(GTK_ENTRY(entry));
    const gchar *os_path;
    gchar *s;
    w = gtk_file_selection_new("Select Local Executable");
    gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(w));
    if (*path) {
	os_path = g_filename_from_utf8(path, -1, NULL, NULL, NULL);
	if (os_path) {
	    s = g_find_program_in_path(os_path);
	    gtk_file_selection_set_filename(GTK_FILE_SELECTION(w),
	      s ? s : os_path);
	    g_free(s);
	    g_free((void *)os_path);
	}
    }
    if (gtk_dialog_run(GTK_DIALOG(w)) == GTK_RESPONSE_OK) {
	os_path = gtk_file_selection_get_filename(GTK_FILE_SELECTION(w));
	path = g_filename_to_utf8(os_path, -1, NULL, NULL, NULL);
	if (path) {
	    gtk_entry_set_text(GTK_ENTRY(entry), path);
	    g_free((void *)path);
	}
    }
    gtk_widget_destroy(w);
}
Example #2
0
static void
playlist_cb(GtkWidget *widget, guint data)
{
    const gchar	*pldir;
    gchar	*plpatt;

    if( ! plfilesel ) {
	plfilesel = gtk_file_selection_new("");
	gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(plfilesel));

	pldir = g_getenv("TIMIDITY_PLAYLIST_DIR");
	if(pldir != NULL) {
	    plpatt = g_strconcat(pldir, "/*.tpl", NULL);
	    gtk_file_selection_set_filename(GTK_FILE_SELECTION(plfilesel),
					    plpatt);
	    g_free(plpatt);
	}

	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(plfilesel)->ok_button),
			   "clicked",
			   GTK_SIGNAL_FUNC (playlist_op), (gpointer)1);
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(plfilesel)->cancel_button),
			   "clicked",
			   GTK_SIGNAL_FUNC (playlist_op), NULL);
    }

    gtk_window_set_title(GTK_WINDOW(plfilesel), ((char)data == 'l')?
			 "Load Playlist":
			 "Save Playlist");
    gtk_object_set_user_data(GTK_OBJECT(plfilesel), GINT_TO_POINTER(data));
    gtk_file_selection_complete(GTK_FILE_SELECTION(plfilesel), "*.tpl");

    gtk_widget_show(plfilesel);
} /* playlist_cb */
Example #3
0
static void change_clicked (GtkWidget *widget, gpointer data)
{
  GtkWidget* file_sel;
  char* filename = NULL;
  int loop = 1;

  file_sel = gtk_file_selection_new ("Locate portal (.prt) file");
  gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_sel)->ok_button), "clicked",
                      GTK_SIGNAL_FUNC (file_sel_callback), GINT_TO_POINTER (IDOK));
  gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_sel)->cancel_button), "clicked",
                      GTK_SIGNAL_FUNC (file_sel_callback), GINT_TO_POINTER (IDCANCEL));
  gtk_signal_connect (GTK_OBJECT (file_sel), "delete_event",
                      GTK_SIGNAL_FUNC (dialog_delete_callback), NULL);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (file_sel));

  g_object_set_data (G_OBJECT (file_sel), "loop", &loop);
  g_object_set_data (G_OBJECT (file_sel), "filename", &filename);
  gtk_file_selection_set_filename (GTK_FILE_SELECTION (file_sel), portals.fn);

  gtk_grab_add (file_sel);
  gtk_widget_show (file_sel);

  while (loop)
    gtk_main_iteration ();

  gtk_grab_remove (file_sel);
  gtk_widget_destroy (file_sel);

  if (filename != NULL)
  {
    strcpy (portals.fn, filename);
    gtk_entry_set_text (GTK_ENTRY (data), filename);
    g_free (filename);
  }
}
Example #4
0
static void
open_file_cb(GtkWidget *widget, gpointer data)
{
    if( ! filesel ) {
	filesel = gtk_file_selection_new("Open File");
	gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel));

#ifdef HAVE_GTK_2
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
			   "clicked",
			   G_CALLBACK (filer_cb), GINT_TO_POINTER(1));
#else
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
			   "clicked",
			   GTK_SIGNAL_FUNC (filer_cb), GINT_TO_POINTER(1));
#endif
#ifdef HAVE_GTK_2
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
			   "clicked",
			   G_CALLBACK (filer_cb), GINT_TO_POINTER(0));
#else
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
			   "clicked",
			   GTK_SIGNAL_FUNC (filer_cb), GINT_TO_POINTER(0));
#endif
    }

    gtk_widget_show(GTK_WIDGET(filesel));
}
Example #5
0
void FileBrowser(
	GtkWidget* fileEntry, 
	GtkSignalFunc okFunc)
{
	FileEntry = fileEntry;
	FileOkFunc = okFunc;

	FileSelection = gtk_file_selection_new("Select File");
	gtk_file_selection_hide_fileop_buttons(
		GTK_FILE_SELECTION(FileSelection));

	gtk_signal_connect(
		GTK_OBJECT(GTK_FILE_SELECTION(FileSelection)->ok_button),
		"clicked",
		GTK_SIGNAL_FUNC(on_filename_selected),
		FileSelection);

	gtk_signal_connect_object(
		GTK_OBJECT(GTK_FILE_SELECTION(FileSelection)->cancel_button),
		"clicked",
		GTK_SIGNAL_FUNC(gtk_widget_destroy),
		GTK_OBJECT(FileSelection));

	gtk_widget_show(FileSelection);
	gtk_grab_add(FileSelection);
}
Example #6
0
// Open Dlg for file selection
bool
showSelectFileBox(const std::string &title,
                  std::string &selectedFile,
                  const bool &fileOptions/*=true*/)
{
  // Create the selector
  GtkWidget *file_selector = gtk_file_selection_new(title.c_str());

  // Set current filename
  if (selectedFile!="")
  {
    // Converts a filename from UTF-8 to on-disk encoding, and sets it in the
    // GtkFileSelection.
    gchar *on_disk_filename;

    on_disk_filename = g_filename_from_utf8(selectedFile.c_str(), -1, NULL, NULL,
              NULL);

    gtk_file_selection_set_filename (GTK_FILE_SELECTION (file_selector),
            on_disk_filename);
    g_free(on_disk_filename);
  }

  if (fileOptions)
    gtk_file_selection_show_fileop_buttons(GTK_FILE_SELECTION(file_selector));
  else
    gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(file_selector));

  // Display that dialog
  gtk_widget_show (file_selector);

  gint result=runModalBox(file_selector);

  if (result==GTK_RESPONSE_OK)
  {
  // Retrieve selected file
    const gchar *on_disk_filename;
    gchar *filename;

    on_disk_filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_selector));
    filename = g_filename_to_utf8 (on_disk_filename, -1, NULL, NULL, NULL);

    if (filename)
    {
      selectedFile=filename;
      g_free(filename);
    }

    gtk_widget_destroy(file_selector);
    return true;
  }
  else
  {
    gtk_widget_destroy(file_selector);
    return false;
  }
}
Example #7
0
static void edit_vcard_file_select_create( AddressFileSelection *afs ) {
	GtkWidget *fileSelector;

	fileSelector = gtk_file_selection_new( _("Select vCard File") );
	gtk_file_selection_hide_fileop_buttons( GTK_FILE_SELECTION(fileSelector) );
	gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->ok_button),
                             "clicked", GTK_SIGNAL_FUNC (edit_vcard_file_ok), ( gpointer ) afs );
	gtk_signal_connect( GTK_OBJECT (GTK_FILE_SELECTION(fileSelector)->cancel_button),
                             "clicked", GTK_SIGNAL_FUNC (edit_vcard_file_cancel), ( gpointer ) afs );
	afs->fileSelector = fileSelector;
	afs->cancelled = TRUE;
}
Example #8
0
void TheComputer (GtkWidget *tcwidget, gpointer tcdata)
{
  if ((ifilestuff == 0) && ((biscomputer == 0) || (wiscomputer == 0))
    && (iyesno == 0))
  {
    ichangecolor = (int) tcdata;
    if (ichangecolor == 1)
    {
      change = gtk_file_selection_new ("change white");
    }
    else
    {
      change = gtk_file_selection_new ("change black");
    }
    gtk_signal_connect (GTK_OBJECT (change), "delete_event",
      GTK_SIGNAL_FUNC (DestroyChange), NULL);
    gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION
      (change)->ok_button), "clicked", (GtkSignalFunc) EnableComp, change);
    gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION
      (change)->cancel_button), "clicked",
      (GtkSignalFunc) DestroyChange, NULL);
    if (ichangecolor == 2)
    {
      if (biscomputer == 1)
      {
        sprintf (defchange, PKGDATADIR"computers/%s.gtkgo", bplayername);
      }
      else
      {
        sprintf (defchange, "%s", PKGDATADIR"computers/default2.gtkgo");
      }
      gtk_file_selection_set_filename (GTK_FILE_SELECTION (change), defchange);
    }
    else
    {
      if (wiscomputer == 1)
      {
        sprintf (defchange, PKGDATADIR"computers/%s.gtkgo", wplayername);
      }
      else
      {
        sprintf (defchange, "%s", PKGDATADIR"computers/default2.gtkgo");
      }
      gtk_file_selection_set_filename (GTK_FILE_SELECTION (change), defchange);
    }
    gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (change));
    gtk_widget_set_usize (GTK_WIDGET (change), 445, 300);
    gtk_widget_show (change);
    ifilestuff = 1;
  }
}
Example #9
0
void but_loadNeutrino(gpointer callback_data, guint callback_action, GtkWidget *widget){
	GtkWidget *file_selector = gtk_file_selection_new(_("select a Neutrino Channellist."));

	gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION(file_selector));
	g_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button),
		"clicked", G_CALLBACK (load_file),(gpointer) file_selector);
	g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button),
		"clicked", G_CALLBACK (gtk_widget_destroy), (gpointer) file_selector);
	g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->cancel_button),
		"clicked", G_CALLBACK (gtk_widget_destroy), (gpointer) file_selector);
	center_window(GTK_WINDOW(file_selector));
	gtk_widget_show (file_selector);
	gtk_file_selection_complete(GTK_FILE_SELECTION(file_selector),"*.xml");
}
Example #10
0
//_________________________________________________________________________
bool    PopUpFileDialog(_String ps, _String* defaultLocation)
{
    static _String   lastOpenFilePath;

    if (!argFileName) {
        argFileName = new _String;
    } else {
        *argFileName = empty;
    }

    GtkWidget * fileSelector = gtk_file_selection_new (ps.sData);
    if (defaultLocation) {
        gtk_file_selection_set_filename (GTK_FILE_SELECTION (fileSelector), defaultLocation->sData);
    } else if (lastOpenFilePath.sLength) {
        gtk_file_selection_set_filename (GTK_FILE_SELECTION (fileSelector), lastOpenFilePath.sData);
    }

    if (defFileNameValue.sLength) {
        gtk_entry_set_text(GTK_ENTRY(GTK_FILE_SELECTION (fileSelector)->selection_entry), defFileNameValue.sData);
    }

    gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION (fileSelector));
    gtk_file_selection_set_select_multiple (GTK_FILE_SELECTION (fileSelector),false);

    g_signal_connect (GTK_FILE_SELECTION (fileSelector)->ok_button,
                      "clicked",
                      G_CALLBACK (hyphy_store_filename),
                      fileSelector);


    g_signal_connect (GTK_FILE_SELECTION (fileSelector)->cancel_button,
                      "clicked",
                      G_CALLBACK (hyphy_kill_dialog_and_exit),
                      fileSelector);

    g_signal_connect_swapped (fileSelector,
                              "close",
                              G_CALLBACK (hyphy_exit_loop),
                              fileSelector);

    gtk_widget_show (fileSelector);
    gtk_window_set_modal (GTK_WINDOW(fileSelector),true);
    gtk_main ();
    printf ("\nPopUpFileDialog:%s\n", argFileName->sData);
    if (argFileName->sLength) {
        lastOpenFilePath = argFileName->Cut(0,argFileName->FindBackwards('/',0,-1));
    }

    return argFileName->sLength;
}
Example #11
0
void winopenfile(char *prompt, char *buf, int len)
{
	char realprompt[256];
	sprintf(realprompt, "Open: %s", prompt);
	filedlog = gtk_file_selection_new(realprompt);
	if (strlen(buf))
		gtk_file_selection_set_filename(GTK_FILE_SELECTION(filedlog), buf);
	gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filedlog));
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filedlog)->ok_button),
		"clicked", onokay, NULL);
	gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filedlog)->cancel_button),
		"clicked", oncancel, NULL);
	filename = buf;
	gtk_widget_show(filedlog);
	gtk_main(); /* recurse... */
}
Example #12
0
void		create_save_win(GtkWidget *parent, t_editor *editor)
{
  (void)parent;
  editor->pselection = gtk_file_selection_new("Save file");
  gtk_window_set_modal(GTK_WINDOW(editor->pselection), TRUE);
  gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(editor
							    ->pselection));
  gtk_window_set_position(GTK_WINDOW(editor->pselection), GTK_WIN_POS_CENTER);
  gtk_widget_show(editor->pselection);
  g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(editor->pselection)->ok_button),
		   "clicked", G_CALLBACK(create_file), editor);
  g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(editor->pselection)
			    ->cancel_button),
		   "clicked", G_CALLBACK(my_widget_destroy), editor);
  gtk_widget_set_sensitive(editor->pSaveBtn, FALSE);
}
Example #13
0
void
select_plugin_file(GtkWidget *mitem, ggobid *gg)
{
  GtkWidget *file_selector;
  file_selector = gtk_file_selection_new("Select plugin description file");

  gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(file_selector));

  g_signal_connect (G_OBJECT (GTK_FILE_SELECTION(file_selector)->ok_button),
                        "clicked", G_CALLBACK (loadPluginFromFile), gg);

  g_signal_connect_swapped(G_OBJECT (GTK_FILE_SELECTION(file_selector)->cancel_button),
                        "clicked", G_CALLBACK (gtk_widget_destroy), (gpointer) file_selector);
                            

  gtk_widget_show(file_selector);
}
Example #14
0
gboolean gw_file_selection_box_hide_fileops ( GtkWidget *widget, GtkFileSelection *fs)
{
	gboolean result = FALSE;


#ifdef GW_DEBUG_GUI_COMPONENT
	g_print ( "*** GW - %s (%d) :: %s()\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
#endif

	if ( fs != NULL )
	{
		gtk_file_selection_hide_fileop_buttons ( fs);

		result = TRUE;
	}

	return result;
}
Example #15
0
void fileselbox(char *title, char **filesel_path, GtkSignalFunc func)
{
fileselbox_text=filesel_path;
filesel_ok=0;
cleanup=func;

fs=gtk_file_selection_new(title);
gtk_signal_connect(GTK_OBJECT(fs), "destroy", (GtkSignalFunc) destroy_callback, NULL);
gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button), 
	"clicked", (GtkSignalFunc) enter_callback, GTK_OBJECT(fs));
gtk_signal_connect_object(GTK_OBJECT(GTK_FILE_SELECTION(fs)->cancel_button),
	"clicked", (GtkSignalFunc) cancel_callback, GTK_OBJECT(fs));
gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(fs));
if(*fileselbox_text) gtk_file_selection_set_filename(GTK_FILE_SELECTION(fs), *fileselbox_text);

gtk_grab_add(fs);
gtk_widget_show(fs);
}
Example #16
0
void saveNeutrino(gint bouquet){
	GtkWidget *file_selector;
	if (bouquet){
		save_all_bouquets(); // alle Bouquets speichern.
		return;
	}
	file_selector = gtk_file_selection_new(_("save a Neutrino Channellist."));
	gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION(file_selector));
	g_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button),
		"clicked", G_CALLBACK (save_akt_bouquet),(gpointer) file_selector);
	g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button),
		"clicked", G_CALLBACK (gtk_widget_destroy), (gpointer) file_selector);
	g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->cancel_button),
		"clicked", G_CALLBACK (gtk_widget_destroy), (gpointer) file_selector);
	center_window(GTK_WINDOW(file_selector));
	gtk_widget_show (file_selector);
	gtk_file_selection_complete(GTK_FILE_SELECTION(file_selector),"*.xml");
}
Example #17
0
static void
file_selection(int type, char *title, char *defstr, void *arg)
{
	GtkWidget *file_dialog;
	file_selection_t *fsp;

	fsp = malloc(sizeof(*fsp));
	if (fsp == 0) {
		printf("file_selection: Can't alloc memory (size = %d)\n",
		    sizeof(*fsp));
		return;
	}
	bzero(fsp, sizeof(*fsp));

	file_dialog = gtk_file_selection_new(title);
	if (defstr) {
		gtk_file_selection_set_filename(
		    GTK_FILE_SELECTION(file_dialog), defstr);
	}

	fsp->fs = file_dialog;
	fsp->type = type;
	fsp->arg = arg;

	gtk_window_set_position(GTK_WINDOW(file_dialog), GTK_WIN_POS_CENTER);
	gtk_window_set_modal(GTK_WINDOW(file_dialog), TRUE);
	gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(file_dialog));
	gtk_signal_connect(GTK_OBJECT(file_dialog), "destroy",
	    GTK_SIGNAL_FUNC(file_selection_destroy), fsp);
	gtk_signal_connect_object(
	    GTK_OBJECT(GTK_FILE_SELECTION(file_dialog)->cancel_button),
	    "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy),
	    GTK_OBJECT(file_dialog));
	gtk_signal_connect(
	    GTK_OBJECT(GTK_FILE_SELECTION(file_dialog)->ok_button),
	    "clicked", GTK_SIGNAL_FUNC(file_selection_ok), fsp);

	gtk_widget_show(file_dialog);
}
Example #18
0
/*
 * Sets the properties of the widget. This is used for both applying the
 * properties changed in the property editor, and also for loading.
 */
static void
gb_file_selection_set_properties (GtkWidget * widget,
				  GbWidgetSetArgData * data)
{
  gboolean show_fileops;

  gb_window_set_standard_properties (widget, data,
				     Title, Type, Position, Modal,
				     DefaultWidth, DefaultHeight,
				     Shrink, Grow, AutoShrink,
				     WMName, WMClass,
				     Resizable, DestroyWithParent, Icon);

  show_fileops = gb_widget_input_bool (data, FileOps);
  if (data->apply)
    {
      if (show_fileops)
	gtk_file_selection_show_fileop_buttons (GTK_FILE_SELECTION (widget));
      else
	gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (widget));
    }
}
Example #19
0
static void open_filesel(GtkWidget *widget, gpointer *data)
{
	GtkWidget *filesel;

	LOG(LOG_DEBUG, "IN : open_filesel()");

	filesel = gtk_file_selection_new (_("Select directory"));
	gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel));
	g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filesel)->ok_button),
			  "clicked", G_CALLBACK (filesel_ok), (gpointer) filesel);

	g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filesel)->cancel_button),
				  "clicked", G_CALLBACK (gtk_widget_destroy),
				  G_OBJECT (filesel));

	if(strcmp(&last_dir[strlen(last_dir) -1], DIR_DELIMITER) != 0)
		strcat(last_dir, DIR_DELIMITER);
	gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), last_dir);
	gtk_widget_show(filesel);
	gtk_grab_add(filesel);

	LOG(LOG_DEBUG, "OUT : open_filesel()");
}
Example #20
0
int install_gui(GtkWidget *main_window, int w, int h, int x, int y)
{
   GtkWidget *scrolled_window;
   GtkWidget *button;
   GtkWidget *label;
   GtkWidget *pixmapwid;
   GdkPixmap *pixmap;
   GdkBitmap *mask;
   char temp_str[256];
   const char *svalue;
   gchar *titles[] = {"", _("Files to install")};

   if (filew) {
      return EXIT_SUCCESS;
   }

   clist_row_selected = 0;

   g_snprintf(temp_str, sizeof(temp_str), "%s %s", PN, _("Install"));
   filew = gtk_widget_new(GTK_TYPE_FILE_SELECTION,
                          "type", GTK_WINDOW_TOPLEVEL,
                          "title", temp_str,
                          NULL);

   gtk_window_set_default_size(GTK_WINDOW(filew), w, h);
   gtk_widget_set_uposition(filew, x, y);

   gtk_window_set_modal(GTK_WINDOW(filew), TRUE);
   gtk_window_set_transient_for(GTK_WINDOW(filew), GTK_WINDOW(main_window));

   get_pref(PREF_INSTALL_PATH, NULL, &svalue);
   if (svalue && svalue[0]) {
      gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew), svalue);
   }

   gtk_file_selection_hide_fileop_buttons((gpointer) filew);

   gtk_widget_hide((GTK_FILE_SELECTION(filew)->cancel_button));
   gtk_signal_connect(GTK_OBJECT(filew), "destroy",
                      GTK_SIGNAL_FUNC(cb_destroy), filew);

   /* Even though I hide the ok button I still want to connect its signal */
   /* because a double click on the file name also calls this callback */
   gtk_widget_hide(GTK_WIDGET(GTK_FILE_SELECTION(filew)->ok_button));
   gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button),
                      "clicked", GTK_SIGNAL_FUNC(cb_add), filew);

   clist = gtk_clist_new_with_titles(2, titles);
   gtk_widget_set_usize(GTK_WIDGET(clist), 0, 166);
   gtk_clist_column_titles_passive(GTK_CLIST(clist));
   gtk_clist_set_column_auto_resize(GTK_CLIST(clist), INST_SDCARD_COLUMN, TRUE);
   gtk_clist_set_selection_mode(GTK_CLIST(clist), GTK_SELECTION_BROWSE);

   get_pixmaps(clist, PIXMAP_SDCARD, &pixmap, &mask);
#ifdef __APPLE__
   mask = NULL;
#endif
   pixmapwid = gtk_pixmap_new(pixmap, mask);
   gtk_clist_set_column_widget(GTK_CLIST(clist), INST_SDCARD_COLUMN, pixmapwid);
   gtk_clist_set_column_justification(GTK_CLIST(clist), INST_SDCARD_COLUMN, GTK_JUSTIFY_CENTER);

   gtk_signal_connect(GTK_OBJECT(clist), "select_row",
                      GTK_SIGNAL_FUNC(cb_clist_selection), NULL);

   /* Scrolled Window for file list */
   scrolled_window = gtk_scrolled_window_new(NULL, NULL);
   gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(clist));
   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
                                  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
   gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 5);
   gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->action_area),
                      scrolled_window, TRUE, TRUE, 0);

   label = gtk_label_new(_("To change to a hidden directory type it below and hit TAB"));
   gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->main_vbox),
                      label, FALSE, FALSE, 0);

   /* Add/Remove/Quit buttons */
   button = gtk_button_new_from_stock(GTK_STOCK_ADD);
   gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent),
                      button, TRUE, TRUE, 0);
   gtk_signal_connect(GTK_OBJECT(button),
                      "clicked", GTK_SIGNAL_FUNC(cb_add), filew);

   button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
   gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent),
                      button, TRUE, TRUE, 0);
   gtk_signal_connect(GTK_OBJECT(button),
                      "clicked", GTK_SIGNAL_FUNC(cb_remove), filew);

   button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
   gtk_box_pack_start(GTK_BOX(GTK_FILE_SELECTION(filew)->ok_button->parent),
                      button, TRUE, TRUE, 0);
   gtk_signal_connect(GTK_OBJECT(button),
                      "clicked", GTK_SIGNAL_FUNC(cb_quit), filew);

   /**********************************************************************/
   gtk_widget_show_all(filew);

   /* Hide default buttons not used by Jpilot file selector */
   gtk_widget_hide(GTK_FILE_SELECTION(filew)->cancel_button);
   gtk_widget_hide(GTK_FILE_SELECTION(filew)->ok_button);

   install_update_clist();

   gtk_main();

   return EXIT_SUCCESS;
}
Example #21
0
GtkWidget * gw_file_selection_box_create ( gchar *title, gchar *filename, GtkSignalFunc ok, GtkSignalFunc cancel)
{
	static GtkWidget *w = NULL;
	GtkWidget *button;
	GtkWindow *window = NULL;
	gchar *text_utf8 = NULL;


#ifdef GW_DEBUG_GUI_COMPONENT
	g_print ( "*** GW - %s (%d) :: %s()\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
#endif

	if ( !w )
	{
		window = gw_gui_manager_main_interface_get_main_window ( );

		g_strdup_to_gtk_text ( title, text_utf8);
		w = gtk_file_selection_new ( text_utf8);
		g_free ( text_utf8);

		if ( filename != NULL ) {
			g_strdup_to_gtk_text ( filename, text_utf8);
			gtk_file_selection_set_filename ( GTK_FILE_SELECTION ( w), text_utf8);
			g_free ( text_utf8);
		}

		gtk_window_set_policy ( GTK_WINDOW ( w), FALSE, FALSE, TRUE);
		gtk_file_selection_hide_fileop_buttons ( GTK_FILE_SELECTION ( w));

		gtk_window_set_modal ( GTK_WINDOW ( w), TRUE);
		gtk_window_set_transient_for ( GTK_WINDOW ( w), GTK_WINDOW ( window));
		gtk_window_set_position ( GTK_WINDOW ( w), GTK_WIN_POS_CENTER);

		gtk_signal_connect ( GTK_OBJECT ( w), "destroy", GTK_SIGNAL_FUNC ( gtk_widget_destroyed), &w);
		gtk_button_set_relief ( GTK_BUTTON ( GTK_FILE_SELECTION ( w)->ok_button), GTK_RELIEF_HALF);

		if ( ok != NULL )
		{
			gtk_signal_connect ( GTK_OBJECT ( GTK_FILE_SELECTION ( w)->ok_button), "clicked", GTK_SIGNAL_FUNC ( ok), w);
		}

		if ( cancel != NULL )
		{
			gtk_signal_connect ( GTK_OBJECT ( GTK_FILE_SELECTION ( w)->cancel_button), "clicked", GTK_SIGNAL_FUNC ( cancel), w);
		}
		else
		{
			gtk_signal_connect_object ( GTK_OBJECT ( GTK_FILE_SELECTION ( w)->cancel_button), "clicked", GTK_SIGNAL_FUNC ( gtk_widget_destroy), GTK_OBJECT ( w));
		}

		g_strdup_to_gtk_text ( _( "Hide file operations"), text_utf8);
		button = gtk_button_new_with_label ( text_utf8);
		g_free ( text_utf8);
		gtk_signal_connect ( GTK_OBJECT ( button), "clicked", (GtkSignalFunc) gw_file_selection_box_hide_fileops, (gpointer) w);
		gtk_box_pack_start ( GTK_BOX ( GTK_FILE_SELECTION ( w)->action_area), button, FALSE, FALSE, 0);

		g_strdup_to_gtk_text ( _( "Show file operation"), text_utf8);
		button = gtk_button_new_with_label ( text_utf8);
		g_free ( text_utf8);
		gtk_signal_connect_object ( GTK_OBJECT ( button), "clicked", (GtkSignalFunc) gtk_file_selection_show_fileop_buttons, (gpointer) w);
		gtk_box_pack_start ( GTK_BOX ( GTK_FILE_SELECTION ( w)->action_area), button, FALSE, FALSE, 0);
	}

	if ( !GTK_WIDGET_VISIBLE ( w) )
	{
		gtk_widget_show_all ( w);
	}
	else
	{
		gtk_widget_destroy ( w);
	}

	return w;
}