1 
2 #ifdef HAVE_CONFIG_H
3 # include <config.h>
4 #endif
5 
6 #include <sys/types.h>
7 #include <sys/stat.h>
8 #include <unistd.h>
9 #include <string.h>
10 #include <stdio.h>
11 #include <dirent.h>
12 
13 #include <gdk/gdkkeysyms.h>
14 #include <gtk/gtk.h>
15 #include "rfm.h"
16 
17 #include "rodent-mime_callbacks.h"
18 #include "rodent-mime_gui.h"
19 #include "rodent-mime_support.h"
20 extern gchar *icon_theme_name;
21 GtkWidget *
create_xfmime_edit(gchar * name)22 create_xfmime_edit (gchar * name) {
23     GtkWidget *xfmime_edit;
24     GtkWidget *vbox1;
25     GtkWidget *hpaned1;
26     GtkWidget *scrolledwindow3;
27     GtkWidget *treeview1;
28     GtkWidget *scrolledwindow2;
29     GtkWidget *treeview2;
30     GtkWidget *hbox3;
31     GtkWidget *hbuttonbox1;
32     GtkWidget *save;
33     GtkWidget *quit;
34 //"Custom:""Select Custom Icon""Use custom &icons:"
35     xfmime_edit = gtk_window_new (GTK_WINDOW_TOPLEVEL);
36     gtk_widget_set_size_request (xfmime_edit, 400, 537);
37     gchar *string=g_strdup_printf("%s: %s", _("Select Custom Icon"), icon_theme_name);
38     gtk_window_set_title (GTK_WINDOW (xfmime_edit), string);
39     g_free(string);
40     gtk_window_set_default_size (GTK_WINDOW (xfmime_edit), 640, 480);
41 
42     vbox1 = rfm_vbox_new (FALSE, 0);
43     gtk_widget_show (vbox1);
44     gtk_container_add (GTK_CONTAINER (xfmime_edit), vbox1);
45 
46     hpaned1 = rfm_hpaned_new ();
47     gtk_widget_show (hpaned1);
48     gtk_box_pack_start (GTK_BOX (vbox1), hpaned1, TRUE, TRUE, 0);
49     gtk_paned_set_position (GTK_PANED (hpaned1), 345);
50 
51     scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
52     gtk_widget_show (scrolledwindow3);
53     gtk_paned_pack1 (GTK_PANED (hpaned1), scrolledwindow3, FALSE, TRUE);
54 
55     treeview1 = gtk_tree_view_new ();
56     gtk_widget_show (treeview1);
57     gtk_container_add (GTK_CONTAINER (scrolledwindow3), treeview1);
58 
59     scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
60     gtk_widget_show (scrolledwindow2);
61     gtk_paned_pack2 (GTK_PANED (hpaned1), scrolledwindow2, TRUE, TRUE);
62 
63     treeview2 = gtk_tree_view_new ();
64     gtk_widget_show (treeview2);
65     gtk_container_add (GTK_CONTAINER (scrolledwindow2), treeview2);
66 
67     hbox3 = rfm_hbox_new (FALSE, 0);
68     gtk_widget_show (hbox3);
69     gtk_box_pack_start (GTK_BOX (vbox1), hbox3, FALSE, FALSE, 0);
70 
71     GtkWidget *hbox4 = rfm_hbox_new (FALSE, 0);
72     gtk_box_pack_start (GTK_BOX (vbox1), hbox4, FALSE, FALSE, 0);
73     GtkWidget *moving_label = (GtkWidget *)
74         gtk_label_new (_("Please drag just one image to set a custom icon."));
75     gtk_box_pack_start (GTK_BOX (hbox4), moving_label, FALSE, FALSE, 0);
76     gtk_widget_show_all (hbox4);
77 
78     hbuttonbox1 = rfm_hbutton_box_new ();
79     gtk_widget_show (hbuttonbox1);
80     gtk_box_pack_start (GTK_BOX (hbox3), hbuttonbox1, FALSE, FALSE, 0);
81 
82     save =  rfm_dialog_button ("xffm/stock_save", _("Save"));
83 
84     gtk_container_add (GTK_CONTAINER (hbuttonbox1), save);
85     gtk_widget_set_can_default(save, TRUE);
86     gtk_widget_show(save);
87 
88     quit =  rfm_dialog_button ("xffm/stock_close", _("Close"));
89 
90     gtk_container_add (GTK_CONTAINER (hbuttonbox1), quit);
91     gtk_widget_set_can_default(quit, TRUE);
92     gtk_widget_show(quit);
93 
94 
95     /*g_signal_connect ((gpointer) treeview1, "drag_data_get",
96        G_CALLBACK (on_treeview1_drag_data_get), NULL); */
97 
98     g_signal_connect ((gpointer) treeview1, "drag_data_received", G_CALLBACK (on_drag_data), NULL);
99     g_signal_connect ((gpointer) treeview1, "drag_drop", G_CALLBACK (on_treeview1_drag_drop), NULL);
100 
101     g_signal_connect ((gpointer) treeview1, "drag_motion", G_CALLBACK (on_drag_motion), NULL);
102 
103     g_signal_connect ((gpointer) treeview2, "drag_data_get", G_CALLBACK (on_treeview2_drag_data_get), NULL);
104 
105     g_signal_connect ((gpointer) treeview2, "drag_motion", G_CALLBACK (on_drag_motion), NULL);
106     g_signal_connect ((gpointer) treeview2, "drag_drop", G_CALLBACK (on_treeview1_drag_drop), NULL);
107 
108     g_signal_connect ((gpointer) save, "clicked", G_CALLBACK (on_save_clicked), NULL);
109     g_signal_connect ((gpointer) quit, "clicked", G_CALLBACK (on_quit_clicked), NULL);
110 
111     /* Store pointers to all widgets, for use by lookup_widget(). */
112     GLADE_HOOKUP_OBJECT_NO_REF (xfmime_edit, xfmime_edit, "xffm-mime");
113     GLADE_HOOKUP_OBJECT (xfmime_edit, vbox1, "vbox1");
114     GLADE_HOOKUP_OBJECT (xfmime_edit, hpaned1, "hpaned1");
115     GLADE_HOOKUP_OBJECT (xfmime_edit, scrolledwindow3, "scrolledwindow3");
116     GLADE_HOOKUP_OBJECT (xfmime_edit, treeview1, "treeview1");
117     GLADE_HOOKUP_OBJECT (xfmime_edit, scrolledwindow2, "scrolledwindow2");
118     GLADE_HOOKUP_OBJECT (xfmime_edit, treeview2, "treeview2");
119     GLADE_HOOKUP_OBJECT (xfmime_edit, hbox3, "hbox3");
120     GLADE_HOOKUP_OBJECT (xfmime_edit, hbuttonbox1, "hbuttonbox1");
121     GLADE_HOOKUP_OBJECT (xfmime_edit, save, "save");
122     GLADE_HOOKUP_OBJECT (xfmime_edit, quit, "quit");
123 
124     return xfmime_edit;
125 }
126