[Goodies-commits] r2037 - in xfce4-quicklauncher-plugin/trunk: . panel-plugin

Masse Nicolas bountykiller at xfce.org
Sun Sep 17 12:17:03 CEST 2006


Author: bountykiller
Date: 2006-09-17 10:17:01 +0000 (Sun, 17 Sep 2006)
New Revision: 2037

Modified:
   xfce4-quicklauncher-plugin/trunk/ChangeLog
   xfce4-quicklauncher-plugin/trunk/panel-plugin/callbacks.c
   xfce4-quicklauncher-plugin/trunk/panel-plugin/main.c
   xfce4-quicklauncher-plugin/trunk/panel-plugin/types.h
Log:
Finish to remove eventboxes and fix remaining problems
replace g_assert by g_return_if_fail in order to not crash the panel.


Modified: xfce4-quicklauncher-plugin/trunk/ChangeLog
===================================================================
--- xfce4-quicklauncher-plugin/trunk/ChangeLog	2006-09-16 11:53:03 UTC (rev 2036)
+++ xfce4-quicklauncher-plugin/trunk/ChangeLog	2006-09-17 10:17:01 UTC (rev 2037)
@@ -1,4 +1,4 @@
-
++replace g_assert by g_return_if_fail in order to not crash the panel.
 +removed the use of eventboxes. Looks better when a theme is used.
 +hopefully fix some compilation problems with netbsd
 +lot of new translations (thanks to the people working on this)

Modified: xfce4-quicklauncher-plugin/trunk/panel-plugin/callbacks.c
===================================================================
--- xfce4-quicklauncher-plugin/trunk/panel-plugin/callbacks.c	2006-09-16 11:53:03 UTC (rev 2036)
+++ xfce4-quicklauncher-plugin/trunk/panel-plugin/callbacks.c	2006-09-17 10:17:01 UTC (rev 2037)
@@ -66,7 +66,7 @@
 //******************************************************************************
 t_qck_launcher_opt_dlg* create_qck_launcher_dlg()
  {
-  g_assert( !(_dlg || _icon_window) );
+  g_return_if_fail( !(_dlg || _icon_window) );
   _icon_window = create_icon_window();
   _dlg = (t_qck_launcher_opt_dlg *) g_new0(t_qck_launcher_opt_dlg, 1);
 
@@ -493,7 +493,7 @@
 {
 	gchar *filename;
 
-	g_assert(GTK_IS_IMAGE(user_data));
+	g_return_if_fail(GTK_IS_IMAGE(user_data));
 	filename = file_chooser_get_filename(chooser);
 	if(g_file_test(filename, G_FILE_TEST_IS_REGULAR))
 	{

Modified: xfce4-quicklauncher-plugin/trunk/panel-plugin/main.c
===================================================================
--- xfce4-quicklauncher-plugin/trunk/panel-plugin/main.c	2006-09-16 11:53:03 UTC (rev 2036)
+++ xfce4-quicklauncher-plugin/trunk/panel-plugin/main.c	2006-09-17 10:17:01 UTC (rev 2037)
@@ -43,7 +43,8 @@
 void quicklauncher_save_config(t_quicklauncher *quicklauncher, const gchar* filename);
 
 /* Launcher funcs */
-gboolean launcher_clicked (t_launcher *launcher, gboolean pressed);
+void launcher_passthrough (t_launcher *launcher, gboolean enter);
+void launcher_clicked (t_launcher *launcher, gboolean pressed);
 t_launcher* launcher_load_config(XfceRc *rcfile, gint num, t_quicklauncher *quicklauncher);
 void launcher_save_config(t_launcher *launcher, XfceRc *rcfile, guint16 num);
 
@@ -120,7 +121,7 @@
 {
 	GList *liste;
 	DBG ("setting size %d", size);
-	quicklauncher->icon_size = (int) (0.75 * size/quicklauncher->nb_lines);
+	quicklauncher->icon_size = (int) (0.70 * size/quicklauncher->nb_lines);
 	for(liste = quicklauncher->launchers;
 		liste ; liste = g_list_next(liste) )
 	{
@@ -206,7 +207,7 @@
 	GList *toplace;
 
 	DBG ("Organize quicklauncher");
-	g_assert( (!quicklauncher->table || GTK_IS_TABLE(quicklauncher->table)) && GTK_IS_CONTAINER(quicklauncher->plugin));
+	g_return_if_fail( (!quicklauncher->table || GTK_IS_TABLE(quicklauncher->table)) && GTK_IS_CONTAINER(quicklauncher->plugin));
 	if (quicklauncher->launchers)
 	{
 		nb_lines = MIN(quicklauncher->nb_lines, quicklauncher->nb_launcher);
@@ -221,18 +222,15 @@
 			nb_lines = launch_per_line;
 			launch_per_line = i;
 		}
-		if (quicklauncher->table)
-			gtk_table_resize(GTK_TABLE(quicklauncher->table), nb_lines, launch_per_line);
-
+		gtk_table_resize(GTK_TABLE(quicklauncher->table), nb_lines, launch_per_line);
 		j = quicklauncher->nb_launcher;
 		for (i=0; i < nb_lines; ++i)
 		{
 			for(j=0; (j < launch_per_line) && (toplace); ++j, toplace = g_list_next(toplace))
 			{
-				g_assert(toplace && GTK_IS_WIDGET(((t_launcher*)toplace->data)->image) );
-				gtk_table_attach_defaults( GTK_TABLE(quicklauncher->table),
-											((t_launcher*)toplace->data)->image,
-											j, j+1, i, i+1);
+				g_return_if_fail(toplace && GTK_IS_WIDGET(((t_launcher*)toplace->data)->image) );
+				gtk_table_attach_defaults(GTK_TABLE(quicklauncher->table), ((t_launcher*)toplace->data)->image,
+								j, j+1, i, i+1);
 			}
 		}
 	}
@@ -299,20 +297,29 @@
 	launcher = launcher_new("xfhelp4", XFCE_ICON_CATEGORY_HELP,
 							NULL, quicklauncher);
 	quicklauncher_add_element(quicklauncher, launcher);
-	//g_assert(quicklauncher->nb_launcher == 4);
+	//g_return_if_fail(quicklauncher->nb_launcher == 4);
 }
 
 int _quicklauncher_get_numlauncher(t_quicklauncher *quicklauncher, gdouble x, gdouble y)
 {
 	int row, col, nb_lines, launch_per_line;
-	col = ( (int)x/quicklauncher->icon_size);
-	row = ( (int)y/quicklauncher->icon_size);
 	nb_lines = MIN(quicklauncher->nb_lines, quicklauncher->nb_launcher);
-	if(!(quicklauncher->nb_launcher % quicklauncher->nb_lines))
-		launch_per_line = quicklauncher->nb_launcher / quicklauncher->nb_lines;
+	if (quicklauncher->orientation == GTK_ORIENTATION_HORIZONTAL)
+	{
+	    col = ( (int)x/(quicklauncher->icon_size));
+	    row = ( (int)y/(xfce_panel_plugin_get_size(quicklauncher->plugin)/quicklauncher->nb_lines));
+	    if(!(quicklauncher->nb_launcher % quicklauncher->nb_lines))
+		    launch_per_line = quicklauncher->nb_launcher / quicklauncher->nb_lines;
+	    else
+		    launch_per_line = quicklauncher->nb_launcher / quicklauncher->nb_lines + 1;
+	    return (launch_per_line * row + col);
+	}
 	else
-		launch_per_line = quicklauncher->nb_launcher / quicklauncher->nb_lines + 1;
-	return (launch_per_line * row + col);
+	{
+		col = ( (int)x/(xfce_panel_plugin_get_size(quicklauncher->plugin)/quicklauncher->nb_lines));
+		row = ( (int)y/(quicklauncher->icon_size));
+		return (nb_lines * row + col);
+	}
 }
 
 static gboolean
@@ -340,35 +347,44 @@
 quicklauncher_moved(XfcePanelPlugin *plugin, GdkEventMotion *event, t_quicklauncher *quicklauncher)
 {
 	int n_launcher;
-	static int n_old_launcher;
 	t_launcher *launcher;
 	DBG ("moved: %f %f", event->x, event->y);
 	n_launcher = _quicklauncher_get_numlauncher(quicklauncher, event->x, event->y);
-	DBG ("old is: %d\tnew is %d", n_old_launcher, n_launcher);
-	if (n_launcher == n_old_launcher) return FALSE;
-	launcher = (t_launcher*) g_list_nth_data(quicklauncher->launchers, n_old_launcher);
+	DBG ("old is: %d\tnew is %d", quicklauncher->_last_zoomed_launcher_id, n_launcher);
+	if (n_launcher == quicklauncher->_last_zoomed_launcher_id) return FALSE;
+	launcher = (t_launcher*) g_list_nth_data(quicklauncher->launchers, quicklauncher->_last_zoomed_launcher_id);
 	if (launcher)
 	    launcher_passthrough(launcher, FALSE);
 	launcher = (t_launcher*) g_list_nth_data(quicklauncher->launchers, n_launcher);
 	if (launcher)
 	    launcher_passthrough(launcher, TRUE);
-	n_old_launcher = n_launcher;
+	quicklauncher->_last_zoomed_launcher_id = n_launcher;
 	return TRUE;
 }
 
+static gboolean
+quicklauncher_leave(XfcePanelPlugin *plugin, GdkEventCrossing *event, t_quicklauncher *quicklauncher)
+{
+    g_list_foreach(quicklauncher->launchers, (GFunc*)launcher_passthrough, FALSE);
+    quicklauncher->_last_zoomed_launcher_id = -1;
+    return TRUE;
+}
+
 static void
 _quicklauncher_update_command(t_quicklauncher *quicklauncher)
 {
-	g_assert(GTK_IS_TABLE(quicklauncher->table));
+	g_return_if_fail(GTK_IS_TABLE(quicklauncher->table));
 	if (quicklauncher->command_ids[0] )
 	{
 		g_signal_handler_disconnect(quicklauncher->plugin, quicklauncher->command_ids[0]);
 		g_signal_handler_disconnect(quicklauncher->plugin, quicklauncher->command_ids[1]);
 		g_signal_handler_disconnect(quicklauncher->plugin, quicklauncher->command_ids[2]);
+		g_signal_handler_disconnect(quicklauncher->plugin, quicklauncher->command_ids[3]);
 	}
 	quicklauncher->command_ids[0] = g_signal_connect(quicklauncher->plugin, "button_press_event", G_CALLBACK(quicklauncher_clicked), quicklauncher);
 	quicklauncher->command_ids[1] = g_signal_connect(quicklauncher->plugin, "button-release-event", G_CALLBACK(quicklauncher_clicked), quicklauncher);
 	quicklauncher->command_ids[2] = g_signal_connect(quicklauncher->plugin, "motion-notify-event", G_CALLBACK(quicklauncher_moved), quicklauncher);
+	quicklauncher->command_ids[3] = g_signal_connect(quicklauncher->plugin, "leave-notify-event", G_CALLBACK(quicklauncher_leave), quicklauncher);
 	DBG ("Update Command ids: %d %d %d", quicklauncher->command_ids[0], quicklauncher->command_ids[1], quicklauncher->command_ids[2]);
 }
 
@@ -381,21 +397,21 @@
 	DBG ("create quicklauncher");
 	quicklauncher = g_new0(t_quicklauncher, 1);
 	filename = xfce_panel_plugin_save_location(plugin, TRUE);
-	quicklauncher->icon_size = (gint) (0.75 * xfce_panel_plugin_get_size(plugin)/2);
+	quicklauncher->icon_size = (gint) (0.70 * xfce_panel_plugin_get_size(plugin)/2);
 	DBG ("icon size: %d", quicklauncher->icon_size);
 	if((!filename) || (!quicklauncher_load_config(quicklauncher, filename) ) )
 		quicklauncher_load_default(quicklauncher);
-
+	quicklauncher->_last_zoomed_launcher_id = -1;
 	quicklauncher->orientation = xfce_panel_plugin_get_orientation(plugin);
 	quicklauncher->plugin = plugin;
 	gtk_widget_add_events(GTK_WIDGET(plugin),GDK_POINTER_MOTION_MASK);
-	quicklauncher->table = g_object_ref(gtk_table_new(2, 2, TRUE));
+	quicklauncher->table = g_object_ref(gtk_table_new(2, 2, FALSE));
 	gtk_table_set_col_spacings(GTK_TABLE(quicklauncher->table), 0);
+	gtk_table_set_row_spacings(GTK_TABLE(quicklauncher->table), 0);
 	gtk_container_add( GTK_CONTAINER(quicklauncher->plugin), quicklauncher->table);
 	_quicklauncher_update_command(quicklauncher);
 	//xfce_panel_plugin_add_action_widget(quicklauncher->plugin, quicklauncher->table);
 	gtk_widget_show(quicklauncher->table);
-
 	quicklauncher_organize(quicklauncher);
 	return quicklauncher;
 }
@@ -423,7 +439,7 @@
 		xfce_rc_set_group(rcfile, NULL);
 		quicklauncher->nb_lines = xfce_rc_read_int_entry(rcfile, "nb_lines", 1);
 		i = xfce_rc_read_int_entry(rcfile, "nb_launcher", 0);
-		g_assert(i >= 0);
+		g_return_val_if_fail(i >= 0, FALSE);
 		while(i)
 		{
 			t_launcher *launcher = launcher_load_config(rcfile, i, quicklauncher);
@@ -453,9 +469,8 @@
 	xfce_rc_flush(rcfile);
 	for( liste = quicklauncher->launchers; liste; liste = g_list_next(liste), --i)
 		launcher_save_config((t_launcher*)liste->data, rcfile, i);
-
-	g_assert(i == 0);
 	xfce_rc_close(rcfile);
+	g_return_if_fail(i == 0);
 }
 
 /* -------------------------------------------------------------------- *
@@ -476,13 +491,13 @@
 	return pixbuf;
 }
 
-gboolean
+void
 launcher_clicked (t_launcher *launcher, gboolean pressed)
 {
 	DBG ("Launcher clicked => %s", launcher->command);
 	if (pressed)
 	{
-		g_assert(launcher->zoomed_img); 
+		g_return_if_fail(launcher->zoomed_img); 
 		if (!launcher->clicked_img)
 		{
 			launcher->clicked_img = gdk_pixbuf_copy (launcher->zoomed_img);
@@ -492,15 +507,14 @@
 	}
 	else
 	{
-		g_assert(launcher->clicked_img);
+		g_return_if_fail(launcher->clicked_img);
 		xfce_exec(launcher->command, FALSE, FALSE, NULL);
 		gtk_image_set_from_pixbuf (GTK_IMAGE(launcher->image), launcher->def_img);
 	}
-	return TRUE;
 }
 
 
-gboolean
+void
 launcher_passthrough (t_launcher *launcher, gboolean enter)
 {
 	if (enter)
@@ -516,7 +530,6 @@
 		DBG ("Exit");
 		gtk_image_set_from_pixbuf (GTK_IMAGE(launcher->image), launcher->def_img);
 	}
-	return TRUE;
 }
 
 

Modified: xfce4-quicklauncher-plugin/trunk/panel-plugin/types.h
===================================================================
--- xfce4-quicklauncher-plugin/trunk/panel-plugin/types.h	2006-09-16 11:53:03 UTC (rev 2036)
+++ xfce4-quicklauncher-plugin/trunk/panel-plugin/types.h	2006-09-17 10:17:01 UTC (rev 2037)
@@ -52,7 +52,8 @@
 	GtkOrientation orientation;
 	gint nb_lines;
 	gint nb_launcher;
-	gulong command_ids[3];
+	gint _last_zoomed_launcher_id;
+	gulong command_ids[4];
 }
 t_quicklauncher;
 




More information about the Goodies-commits mailing list