/*
* This file is part of hildon-libs
*
- * Copyright (C) 2005 Nokia Corporation.
+ * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
*
- * Contact: Luc Pionchon <luc.pionchon@nokia.com>
+ * Contact: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
+ * as published by the Free Software Foundation; version 2.1 of
+ * the License or any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
*
*/
-/*
- * @file hildon-color-popup.c
+/**
+ * SECTION:hildon-color-popup
+ * @short_description: A popup dialog for editing a color and showing the
+ * edited result
+ * @see_also: #HildonColorButton, #HildonColorSelector
*
- * This file contains the implementation of Hildon Color Selector Popup
- * widget containing the custom color palette selector popup for selecting
- * different colors based on RGB values.
+ * #HildonColorPopup is only used inside #HildonColorButton. It is a
+ * popup dialog for editing a color. The color can be changed using
+ * three control bars that are used to adjust the red, green and blue
+ * color channels. The display is updated in real time when the bars are
+ * moved.
*/
#ifdef HAVE_CONFIG_H
gpointer data);
/**
* hildon_color_popup_new:
- * @parent: the parent window of the dialog.
- * @initial_color: a #GdkColor with the initial values to be used.
- * @popup_data: a #HildonColorPopup.
+ * @parent: the parent window of the dialog
+ * @initial_color: a #GdkColor with the initial values to be used
+ * @popup_data: a #HildonColorPopup
*
* This function creates a new popup dialog with three controlbars
* (red, green, blue) and a drawing area with the current color.
* Used as normal GtkDialog (run with gtk_dialog_run() and read
* stardard responses (GTK_RESPONSE_OK, GTK_RESPONSE_CANCEL).
*
- * Returns: the newly created popup dialog.
+ * Returns: the newly created popup dialog
*/
GtkWidget *
-hildon_color_popup_new(GtkWindow *parent, GdkColor *initial_color,
+hildon_color_popup_new(GtkWindow *parent, const GdkColor *initial_color,
HildonColorPopup *popup_data)
{
GtkWidget *popup;
GtkTable *layout;
GtkWidget *area;
GtkWidget *l_red, *l_green, *l_blue;
- GdkColor *current_color;
-
- current_color = initial_color;
/* Create control bars for HildonColorPopup */
popup_data->ctrlbar_red = hildon_controlbar_new ();
HILDON_COLOR_BAR_WIDTH, -1);
/* Create labels for three kinds of color */
- l_red = gtk_label_new( _("Ecdg_fi_5bit_colour_selector_red"));
- l_green = gtk_label_new(_("Ecdg_fi_5bit_colour_selector_green"));
- l_blue = gtk_label_new(_("Ecdg_fi_5bit_colour_selector_blue"));
+ l_red = gtk_label_new(_("ecdg_fi_5bit_colour_selector_red"));
+ l_green = gtk_label_new(_("ecdg_fi_5bit_colour_selector_green"));
+ l_blue = gtk_label_new(_("ecdg_fi_5bit_colour_selector_blue"));
/* Position the labels to start about the same label as the controlbars */
gtk_misc_set_alignment(GTK_MISC(l_red), 0.08f, 0.5f);
/* Give the initial values for each control bar */
hildon_controlbar_set_value (HILDON_CONTROLBAR(popup_data->ctrlbar_red),
- (current_color->red >> 11)&0x1F);
+ (initial_color->red >> 11)&0x1F);
hildon_controlbar_set_value (HILDON_CONTROLBAR(popup_data->ctrlbar_green),
- (current_color->green >> 11)&0x1F);
+ (initial_color->green >> 11)&0x1F);
hildon_controlbar_set_value (HILDON_CONTROLBAR(popup_data->ctrlbar_blue),
- (current_color->blue >> 11)&0x1F);
+ (initial_color->blue >> 11)&0x1F);
/* Register controlbar callbacks */
g_signal_connect_swapped(popup_data->ctrlbar_red, "value-changed",
GTK_DIALOG_DESTROY_WITH_PARENT |
GTK_DIALOG_NO_SEPARATOR,
_("ecdg_bd_5bit_colour_selector_ok"), GTK_RESPONSE_OK,
- _("Ecdg_bd_5bit_colour_selector_cancel"),
+ _("ecdg_bd_5bit_colour_selector_cancel"),
GTK_RESPONSE_CANCEL,
NULL);
- gtk_dialog_set_default_response(GTK_DIALOG(popup), GTK_RESPONSE_OK);
+ /* Select-key shouldn't do anything unless dialog's button is focused */
+ gtk_dialog_set_default_response(GTK_DIALOG(popup), GTK_RESPONSE_NONE);
/* Add layout table to the Vbox of the popup dialog */
gtk_box_pack_start (GTK_BOX(GTK_DIALOG(popup)->vbox),
/**
* hildon_color_popup_set_color_from_sliders:
- * @color: a pointer to #GdkColor to which the new values will be put.
- * @popup_data: a #HildonColorPopup.
+ * @color: a pointer to #GdkColor to which the new values will be put
+ * @popup_data: a #HildonColorPopup
*
- * This function sets the values of the given #GdkColor to the values
- * in the sliders of controlbars.
- *
- * Returns: void.
+ * Sets the values in the given #GdkColor to the values of the
+ * controlbars.
*/
void