[kazehakase-svn] [3273] * src/kz-notebook.[ch]: Add kz_notebook_prepend_new_tab().

Back to archive index

svnno****@sourc***** svnno****@sourc*****
Fri Oct 5 15:15:21 JST 2007


Revision: 3273
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3273
Author:   ikezoe
Date:     2007-10-05 15:15:20 +0900 (Fri, 05 Oct 2007)

Log Message:
-----------
* src/kz-notebook.[ch]: Add kz_notebook_prepend_new_tab().
* src/kz-window.c: Use kz_notebook_prepend_new_tab(). Enable to DnD of
URI list.

Modified Paths:
--------------
    kazehakase/trunk/ChangeLog
    kazehakase/trunk/src/kz-notebook.c
    kazehakase/trunk/src/kz-notebook.h
    kazehakase/trunk/src/kz-window.c

Modified: kazehakase/trunk/ChangeLog
===================================================================
--- kazehakase/trunk/ChangeLog	2007-10-05 05:47:06 UTC (rev 3272)
+++ kazehakase/trunk/ChangeLog	2007-10-05 06:15:20 UTC (rev 3273)
@@ -4,6 +4,9 @@
 	assertion `length <= 0' failed"
 	* src/kz-window.c, src/kz-notebook.[ch]: tab_tree is moved into
 	KzNotebook.
+	* src/kz-notebook.[ch]: Add kz_notebook_prepend_new_tab().
+	* src/kz-window.c: Use kz_notebook_prepend_new_tab(). Enable to DnD of
+	URI list.
 
 2007-10-04  Hiroyuki Ikezoe  <poinc****@ikezo*****>
 

Modified: kazehakase/trunk/src/kz-notebook.c
===================================================================
--- kazehakase/trunk/src/kz-notebook.c	2007-10-05 05:47:06 UTC (rev 3272)
+++ kazehakase/trunk/src/kz-notebook.c	2007-10-05 06:15:20 UTC (rev 3273)
@@ -133,10 +133,11 @@
 	priv->kz        = NULL;
 	priv->open_hist = NULL;
 	priv->view_hist = NULL;
-	priv->tab_tree  = NULL;
 
 	priv->dragged_page = NULL;
 
+	priv->tab_tree = g_node_new(NULL);
+
 	g_signal_connect(notebook, "page-reordered", 
 			 G_CALLBACK(cb_page_reordered), NULL);
 	g_signal_connect(notebook, "page-added", 
@@ -472,9 +473,6 @@
 
 	pos = kz_notebook_open_new_tab_at_pos(notebook, embed, label, pos);
 
-	/* root node */
-	if (!priv->tab_tree)
-		priv->tab_tree = g_node_new(NULL);
 	/* insret node */
 	node = g_node_new(embed);
 	g_node_append(priv->tab_tree, node);
@@ -493,9 +491,6 @@
 
 	pos = kz_notebook_open_new_tab_at_pos(notebook, embed, label, pos);
 	
-	/* root node */
-	if (!priv->tab_tree)
-		priv->tab_tree = g_node_new(NULL);
 	/* insret node */
 	node = g_node_new(embed);
 	parent_node = g_node_find(priv->tab_tree,
@@ -508,6 +503,22 @@
 	return pos;
 }
 
+gint
+kz_notebook_prepend_new_tab (KzNotebook *notebook, KzEmbed *embed, KzTabLabel *label)
+{
+	gint pos;
+	GNode *node;
+	KzNotebookPrivate *priv = KZ_NOTEBOOK_GET_PRIVATE(notebook);
+
+	pos = kz_notebook_open_new_tab_at_pos(notebook, embed, label, -1);
+
+	/* insret node */
+	node = g_node_new(embed);
+	g_node_append(priv->tab_tree, node);
+
+	return pos;
+}
+
 gboolean
 kz_notebook_close_tab (KzNotebook *notebook, GtkWidget *widget)
 {

Modified: kazehakase/trunk/src/kz-notebook.h
===================================================================
--- kazehakase/trunk/src/kz-notebook.h	2007-10-05 05:47:06 UTC (rev 3272)
+++ kazehakase/trunk/src/kz-notebook.h	2007-10-05 06:15:20 UTC (rev 3273)
@@ -48,6 +48,9 @@
 					       KzEmbed    *embed,
 					       KzTabLabel *label,
 					       gint pos);
+gint        kz_notebook_prepend_new_tab	      (KzNotebook *notebook,
+					       KzEmbed    *embed,
+					       KzTabLabel *label);
 gboolean    kz_notebook_close_tab	      (KzNotebook *notebook,
 					       GtkWidget  *widget);
 gboolean    kz_notebook_close_tabs	      (KzNotebook *notebook,

Modified: kazehakase/trunk/src/kz-window.c
===================================================================
--- kazehakase/trunk/src/kz-window.c	2007-10-05 05:47:06 UTC (rev 3272)
+++ kazehakase/trunk/src/kz-window.c	2007-10-05 06:15:20 UTC (rev 3273)
@@ -108,9 +108,18 @@
 };
 
 enum {
-	TARGET_TEXT_URI_LIST=999
+	TARGET_NETSCAPE_URL,
+	TARGET_TEXT_URI_LIST
 };
 
+static const GtkTargetEntry drag_targets [] = 
+{
+        { "_NETSCAPE_URL",        0, TARGET_NETSCAPE_URL},
+	{ "text/uri-list",        0, TARGET_TEXT_URI_LIST}
+};
+
+static const guint n_drag_targets = G_N_ELEMENTS (drag_targets);
+
 static gboolean key_theme_is_emacs = FALSE;
 
 static gboolean delete_event   (GtkWidget     *widget,
@@ -574,7 +583,10 @@
 		gtk_widget_show(kz->statusbar);
 	}
 
-	gtk_drag_dest_add_uri_targets(GTK_WIDGET(kz));
+	gtk_drag_dest_set(GTK_WIDGET(kz), 
+			  GTK_DEST_DEFAULT_ALL, 
+                          drag_targets, n_drag_targets,
+			  GDK_ACTION_MOVE | GDK_ACTION_COPY);
 
 	/* from Galeon-1.3.18 */
 	/* initialize the listener for the key theme */
@@ -894,7 +906,7 @@
 
 		gtk_widget_show_all(GTK_WIDGET(kzembed));
 		gtk_widget_show(GTK_WIDGET(kztab));
-		kz_notebook_open_new_tab_at_pos(KZ_NOTEBOOK(kz->notebook), kzembed, kztab, -1);
+		kz_notebook_prepend_new_tab(KZ_NOTEBOOK(kz->notebook), kzembed, kztab);
 		kz_window_set_embed_callbacks(kz, kzembed);
 		kz_tab_label_set_history(kztab, child);
 	}
@@ -986,8 +998,11 @@
                     guint info,
                     guint time)
 {
-	if (seldata->target == gdk_atom_intern_static_string("text/uri-list"))
+	switch (info)
 	{
+	 case TARGET_NETSCAPE_URL:
+	 case TARGET_TEXT_URI_LIST:
+	 {
 		KzWindow *kz = KZ_WINDOW(widget);
 		gchar **strings;
 
@@ -997,6 +1012,8 @@
 		kz_window_open_new_tab(kz, strings[0]);
 		g_strfreev(strings);
 		gtk_drag_finish(context, TRUE, FALSE, time);
+		break;
+	 }
 	}
 }
 




More information about the Kazehakase-cvs mailing list
Back to archive index