static void do_add_file_cb(GtkWidget *widget, gint resp, struct _smiley *s) { gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "do_add_file_cb start \n"); switch (resp){ case GTK_RESPONSE_ACCEPT: s->filename = gtk_file_chooser_get_filename( s->file_chooser); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "do_add_file filename catched: %s \n",s->filename); break; } gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "do_add_file_cb end \n"); } static void do_add_cb(GtkWidget *widget, gint resp, struct _smiley *s) { gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "do_add_cb \n"); switch (resp) { // case GTK_RESPONSE_CLOSE: case GTK_RESPONSE_ACCEPT: s->filename = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER (s->file_chooser)); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "filename catched: %s \n",s->filename); break; case GTK_RESPONSE_OK: gaim_gtk_account_add_custom_smiley(s->gtkconv, gtk_entry_get_text(GTK_ENTRY(s->smile)), gtk_entry_get_text(GTK_ENTRY(s->filename))); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "response_ok\n"); break; case GTK_RESPONSE_DELETE_EVENT: // case GTK_RESPONSE_CLOSE: break; } gtk_widget_destroy(s->parent); free(s); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "do_add_cb end \n"); } static void add_smiley_cb(GtkWidget *widget, GaimGtkConversation *gtkconv) { GtkWidget *win; GtkWidget *hbox; GtkWidget *bbox; GtkWidget *label; GtkWidget *btn; GtkWidget *flc; //fileChooser GtkWidget *fldia; struct _smiley *s = g_malloc(sizeof(struct _smiley)); s->gtkconv = gtkconv; gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "vamos a inicializar dialogo\n"); s->parent = gtk_dialog_new_with_buttons(_("Add Smiley"), GTK_WINDOW(gtkconv->win), GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL); gtk_container_set_border_width(GTK_CONTAINER(s->parent), GAIM_HIG_BORDER); /* the Hbox*/ hbox = gtk_hbox_new(FALSE, GAIM_HIG_BORDER); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(s->parent)->vbox), hbox); gtk_widget_show(hbox); /* The upper box*/ //box = gtk_hbox_new(TRUE, GAIM_HIG_BORDER); /*label*/ label = gtk_label_new(_("Select the file")); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); /* Button Box */ /* bbox = gtk_hbutton_box_new(); gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); gtk_box_pack_end(GTK_BOX(vbox),bbox, FALSE, TRUE, 0); gtk_widget_show(bbox); */ /* file chooser */ gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "init boton\n"); s->file_chooser = gtk_file_chooser_dialog_new(_("Select a file"), GTK_WINDOW(s->parent), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); flc = gtk_file_chooser_button_new_with_dialog(GTK_WIDGET(s->file_chooser)); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "end init boton\n"); gtk_file_chooser_button_set_title(GTK_FILE_CHOOSER_BUTTON(flc), _("Custom Smiley")); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "end \"set title\" \n"); gtk_box_pack_end(GTK_BOX(hbox), flc, TRUE, TRUE, 0); //FALSE, FALSE gtk_widget_show(flc); gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "1\n"); // g_signal_connect(s->file_chooser, "response", G_CALLBACK(do_add_file_cb),s); /* Add Button */ /* btn = gtk_button_new_from_stock(GTK_STOCK_ADD); gtk_box_pack_start(GTK_BOX(vbox), btn, FALSE, FALSE, 0); gtk_widget_show(btn); */ gaim_debug(GAIM_DEBUG_MISC, "custom-smiley", "2\n"); g_signal_connect(s->parent, "response", G_CALLBACK(do_add_cb),s); gtk_widget_show(GTK_WIDGET(s->parent)); }