[GtkColorSelection]Loading a palette
- From: Luc Maurette sanofi-synthelabo com
- To: gtk-app-devel-list gnome org
- Subject: [GtkColorSelection]Loading a palette
- Date: Tue, 10 Feb 2004 11:25:32 +0100
Hi all,
I just want to change the default palette of a GtkColorSelection. The API
provides this function :
gboolean gtk_color_selection_palette_from_string (const gchar *str,
GdkColor **colors, gint *n_colors);
but I don't understand how to use it :-(
I search the web and this list and I dont'find any idea or suggestion.
Here is the code :
#include <stdio.h>
#include <gtk/gtk.h>
gboolean AfficheCouleur(GtkColorSelection *Sel)
{
gdouble couleur[4];
gtk_color_selection_get_color(Sel, couleur);
printf("Rouge : %g, Vert : %g, Bleu : %g\n",
couleur[0], couleur[1], couleur[2]);
printf("Opacité : %g\n", couleur[3]);
return TRUE;
}
int main(int argc, char *argv[])
{
GtkColorSelectionDialog *CouleurDlg;
gchar *user_color; /* la palette de couleur que je veux charger */
GdkColor **colors; /* tableau des couleurs */
gint *n_colors; /* Nombre de couleur à charger */
/* Initialisation des bibliothèques */
gtk_init(&argc, &argv);
/* Création du dialogue de sélection de couleur */
CouleurDlg = (GtkColorSelectionDialog *)
gtk_color_selection_dialog_new(
"Test Sélection couleur");
/* Connexion des signaux "delete" et "destroy" */
gtk_signal_connect(GTK_OBJECT(CouleurDlg), "delete_event",
(GtkSignalFunc)gtk_exit, NULL);
gtk_signal_connect(GTK_OBJECT(CouleurDlg), "destroy",
(GtkSignalFunc)gtk_exit, NULL);
/* On n'a pas besoin du bouton 'help',
* alors on le cache... */
gtk_widget_hide(CouleurDlg->help_button);
/* Par contre on veut la palette */
gtk_color_selection_set_has_palette (CouleurDlg->colorsel, TRUE);
/* On essaye de charger la palette des préférences utilisateur */
sprintf(user_color,"#FFFFFF:#000000:#FFFFFF:#000000:#000000:#FFFFFF:
#000000:#000000:#FFFFFF:#000000:#000000:#FFFFFF:#000000:#000000:#FFFFFF:
#000000:#000000:#FFFFFF:#000000");
*n_colors = 20;
if (gtk_color_selection_palette_from_string(user_color, &colors,
&n_colors)) {
g_print("Parsing OK\n");
}
/* Gestion des signaux du bouton 'OK' */
gtk_signal_connect_object(
GTK_OBJECT(CouleurDlg->ok_button),
"clicked",
(GtkSignalFunc)AfficheCouleur,
GTK_OBJECT(CouleurDlg->colorsel));
gtk_signal_connect_object(
GTK_OBJECT(CouleurDlg->ok_button),
"clicked",
(GtkSignalFunc)gtk_widget_destroy,
GTK_OBJECT(CouleurDlg));
/* Gestion des signaux du bouton 'Cancel' */
gtk_signal_connect_object(
GTK_OBJECT(CouleurDlg->cancel_button),
"clicked",
(GtkSignalFunc)gtk_widget_destroy,
GTK_OBJECT(CouleurDlg));
/* On affiche le dialogue */
gtk_widget_show(GTK_WIDGET(CouleurDlg));
/* La boucle principale */
gtk_main();
return 0;
}
The test gtk_color_selection_palette_from_string(user_color, &colors,
&n_colors) is TRUE because i obtain the message in the console (Parsing OK)
but the palette doesn't change anymore...
Thanks, Luc.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]