[Xfce4-commits] <xfce4-cpugraph-plugin:master> Use standard widgets for picking colors

Florian noreply at xfce.org
Sat Apr 17 16:16:22 CEST 2010


Updating branch refs/heads/master
         to 910f847f21e83f1128d21df1c073029618f1ef0b (commit)
       from 899594331e4fd40ab62c6d3da6737eec7636a117 (commit)

commit 910f847f21e83f1128d21df1c073029618f1ef0b
Author: Florian <frivoal at gmail.com>
Date:   Sat Feb 27 13:07:01 2010 +0900

    Use standard widgets for picking colors
    
    In the properties dialog, change the buttons used to launch a color
    picking dialog to their standard gtk equivalent. The behavior is subtly
    different, but the functionality is essentially the same, and the code
    much simpler.

 panel-plugin/actions.c    |   51 ++++++++++++++------------------------------
 panel-plugin/actions.h    |    9 +++----
 panel-plugin/cpu.h        |    6 -----
 panel-plugin/properties.c |   41 ++++++++----------------------------
 4 files changed, 29 insertions(+), 78 deletions(-)

diff --git a/panel-plugin/actions.c b/panel-plugin/actions.c
index 1a88f0d..75015da 100644
--- a/panel-plugin/actions.c
+++ b/panel-plugin/actions.c
@@ -5,51 +5,32 @@ void AssociateCommandChange( GtkEntry *entry, CPUGraph * base )
 	set_command( base, gtk_entry_get_text( entry ) );
 }
 
-GdkColor ChangeColor( CPUGraph *base, GdkColor color, GtkWidget *button )
+void ChangeColor1( GtkColorButton * button, CPUGraph * base )
 {
-	GtkWidget *dialog;
-	GtkColorSelection *colorsel;
-	gint response;
-
-	dialog = gtk_color_selection_dialog_new( "Select color" );
-	gtk_window_set_transient_for( GTK_WINDOW( dialog ), GTK_WINDOW( base->m_OptionsDialog ) );
-
-	colorsel = GTK_COLOR_SELECTION( GTK_COLOR_SELECTION_DIALOG( dialog )->colorsel );
-
-	gtk_color_selection_set_previous_color( colorsel, &color );
-	gtk_color_selection_set_current_color( colorsel, &color );
-
-	gtk_color_selection_set_has_palette( colorsel, TRUE );
-
-	response = gtk_dialog_run( GTK_DIALOG( dialog ) );
-	if( response == GTK_RESPONSE_OK )
-	{
-		gtk_color_selection_get_current_color( colorsel, &color );
-		gtk_widget_modify_bg( button, GTK_STATE_NORMAL, &color );
-	}
-
-	gtk_widget_destroy( dialog );
-	return color;
-}
-
-void ChangeColor1( GtkButton * button, CPUGraph * base )
-{
-	set_foreground_color1( base, ChangeColor( base, base->m_ForeGround1, base->m_Options.m_ColorDA ) );
+	GdkColor color;
+	gtk_color_button_get_color( button, &color );
+	set_foreground_color1( base, color );
 }
 
-void ChangeColor2( GtkButton * button, CPUGraph * base )
+void ChangeColor2( GtkColorButton * button, CPUGraph * base )
 {
-	set_foreground_color2( base, ChangeColor( base, base->m_ForeGround2, base->m_Options.m_ColorDA2 ) );
+	GdkColor color;
+	gtk_color_button_get_color( button, &color );
+	set_foreground_color2( base, color );
 }
 
-void ChangeColor3( GtkButton * button, CPUGraph * base )
+void ChangeColor3( GtkColorButton * button, CPUGraph * base )
 {
-	set_background_color( base, ChangeColor( base, base->m_BackGround, base->m_Options.m_ColorDA3 ) );
+	GdkColor color;
+	gtk_color_button_get_color( button, &color );
+	set_background_color( base, color );
 }
 
-void ChangeColor4( GtkButton * button, CPUGraph * base )
+void ChangeColor4( GtkColorButton * button, CPUGraph * base )
 {
-	set_foreground_color3( base, ChangeColor( base, base->m_ForeGround3, base->m_Options.m_ColorDA5 ) );
+	GdkColor color;
+	gtk_color_button_get_color( button, &color );
+	set_foreground_color3( base, color );
 }
 
 void ColorModeChange( GtkOptionMenu * om, CPUGraph * base )
diff --git a/panel-plugin/actions.h b/panel-plugin/actions.h
index 7a64d98..4dd02ef 100644
--- a/panel-plugin/actions.h
+++ b/panel-plugin/actions.h
@@ -1,11 +1,10 @@
 #include <cpu.h>
 
 void AssociateCommandChange( GtkEntry *entry, CPUGraph *base );
-GdkColor ChangeColor( CPUGraph *base, GdkColor color, GtkWidget *button );
-void ChangeColor1( GtkButton *button, CPUGraph *base );
-void ChangeColor2( GtkButton *button, CPUGraph *base );
-void ChangeColor3( GtkButton *button, CPUGraph *base );
-void ChangeColor4( GtkButton *button, CPUGraph *base );
+void ChangeColor1( GtkColorButton * button, CPUGraph * base );
+void ChangeColor2( GtkColorButton *button, CPUGraph *base );
+void ChangeColor3( GtkColorButton *button, CPUGraph *base );
+void ChangeColor4( GtkColorButton *button, CPUGraph *base );
 void ColorModeChange( GtkOptionMenu *om, CPUGraph *base );
 void DialogResponse( GtkWidget *dlg, int response, CPUGraph *base );
 void ApplyChanges( CPUGraph *base );
diff --git a/panel-plugin/cpu.h b/panel-plugin/cpu.h
index 919030b..85f9763 100644
--- a/panel-plugin/cpu.h
+++ b/panel-plugin/cpu.h
@@ -30,12 +30,6 @@ typedef struct
 	GtkWidget *m_FG2;
 	GtkWidget *m_FG3;
 	GtkWidget *m_BG;
-	GtkWidget *m_FC;
-	GtkWidget *m_ColorDA;
-	GtkWidget *m_ColorDA2;
-	GtkWidget *m_ColorDA3;
-	GtkWidget *m_ColorDA4;
-	GtkWidget *m_ColorDA5;
 } SOptions;
 
 typedef struct
diff --git a/panel-plugin/properties.c b/panel-plugin/properties.c
index 40efb22..00aa041 100644
--- a/panel-plugin/properties.c
+++ b/panel-plugin/properties.c
@@ -211,17 +211,11 @@ static void SetupForeground1Option( GtkBox *vbox, GtkSizeGroup *sg, SOptions *op
 
 	hbox = CreateOptionLine( vbox, sg, _("Color 1:") );
 
-	op->m_FG1 = gtk_button_new();
-	op->m_ColorDA = gtk_drawing_area_new();
-
-	gtk_widget_modify_bg( op->m_ColorDA, GTK_STATE_NORMAL, &base->m_ForeGround1 );
-	gtk_widget_set_size_request( op->m_ColorDA, 12, 12 );
-	gtk_container_add( GTK_CONTAINER( op->m_FG1 ), op->m_ColorDA );
+	op->m_FG1 = gtk_color_button_new_with_color(&base->m_ForeGround1);
 	gtk_widget_show( GTK_WIDGET( op->m_FG1 ) );
-	gtk_widget_show( GTK_WIDGET( op->m_ColorDA ) );
 	gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( op->m_FG1 ), FALSE, FALSE, 0 );
 
-	g_signal_connect( op->m_FG1, "clicked", G_CALLBACK( ChangeColor1 ), base );
+	g_signal_connect( op->m_FG1, "color-set", G_CALLBACK( ChangeColor1 ), base );
 }
 
 static void SetupForeground2Option( GtkBox *vbox, GtkSizeGroup *sg, SOptions *op, CPUGraph *base )
@@ -230,17 +224,11 @@ static void SetupForeground2Option( GtkBox *vbox, GtkSizeGroup *sg, SOptions *op
 
 	hbox = CreateOptionLine( vbox, sg, _("Color 2:") );
 
-	op->m_FG2 = gtk_button_new();
-	op->m_ColorDA2 = gtk_drawing_area_new();
-
-	gtk_widget_modify_bg( op->m_ColorDA2, GTK_STATE_NORMAL, &base->m_ForeGround2 );
-	gtk_widget_set_size_request( op->m_ColorDA2, 12, 12 );
-	gtk_container_add( GTK_CONTAINER( op->m_FG2 ), op->m_ColorDA2 );
+	op->m_FG2 = gtk_color_button_new_with_color(&base->m_ForeGround2);
 	gtk_widget_show( GTK_WIDGET( op->m_FG2 ) );
-	gtk_widget_show( GTK_WIDGET( op->m_ColorDA2 ) );
 	gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( op->m_FG2 ), FALSE, FALSE, 0 );
 
-	g_signal_connect( op->m_FG2, "clicked", G_CALLBACK( ChangeColor2 ), base );
+	g_signal_connect( op->m_FG2, "color-set", G_CALLBACK( ChangeColor2 ), base );
 
 	if( base->m_Mode == 1 )
 		gtk_widget_set_sensitive( GTK_WIDGET( base->m_Options.m_FG2 ), TRUE );
@@ -252,15 +240,11 @@ static void SetupForeground3Option( GtkBox *vbox, GtkSizeGroup *sg, SOptions *op
 
 	hbox = CreateOptionLine( vbox, sg, _("Color 3:") );
 
-	op->m_FG3 = gtk_button_new();
-	op->m_ColorDA5 = gtk_drawing_area_new();
-	gtk_widget_modify_bg( op->m_ColorDA5, GTK_STATE_NORMAL, &base->m_ForeGround3 );
-	gtk_widget_set_size_request( op->m_ColorDA5, 12, 12 );
-	gtk_container_add( GTK_CONTAINER( op->m_FG3 ), op->m_ColorDA5 );
+	op->m_FG3 = gtk_color_button_new_with_color(&base->m_ForeGround3);
 	gtk_widget_show( GTK_WIDGET( op->m_FG3 ) );
-	gtk_widget_show( GTK_WIDGET( op->m_ColorDA5 ) );
 	gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( op->m_FG3 ), FALSE, FALSE, 0 );
-	g_signal_connect( op->m_FG3, "clicked", G_CALLBACK( ChangeColor4 ), base );
+
+	g_signal_connect( op->m_FG3, "color-set", G_CALLBACK( ChangeColor4 ), base );
 
 	if( base->m_Mode == 0 || base->m_Mode == 2 || base->m_ColorMode == 0 )
 		gtk_widget_set_sensitive( GTK_WIDGET( base->m_Options.m_FG3 ), FALSE );
@@ -274,18 +258,11 @@ static void SetupBackgroundOption( GtkBox *vbox, GtkSizeGroup *sg, SOptions *op,
 	GtkBox *hbox;
 
 	hbox = CreateOptionLine( vbox, sg, _("Background:") );
-
-	op->m_BG = gtk_button_new();
-	op->m_ColorDA3 = gtk_drawing_area_new();
-
-	gtk_widget_modify_bg( op->m_ColorDA3, GTK_STATE_NORMAL, &base->m_BackGround );
-	gtk_widget_set_size_request( op->m_ColorDA3, 12, 12 );
-	gtk_container_add( GTK_CONTAINER( op->m_BG ), op->m_ColorDA3 );
+	op->m_BG = gtk_color_button_new_with_color(&base->m_BackGround);
 	gtk_widget_show( GTK_WIDGET( op->m_BG ) );
-	gtk_widget_show( GTK_WIDGET( op->m_ColorDA3 ) );
 	gtk_box_pack_start( GTK_BOX( hbox ), GTK_WIDGET( op->m_BG ), FALSE, FALSE, 0 );
 
-	g_signal_connect( op->m_BG, "clicked", G_CALLBACK( ChangeColor3 ), base );
+	g_signal_connect( op->m_BG, "color-set", G_CALLBACK( ChangeColor3 ), base );
 }
 
 static void SetupModesOption( GtkBox *vbox, GtkSizeGroup *sg, CPUGraph *base )



More information about the Xfce4-commits mailing list