X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon-vvolumebar.c;h=f5bb86acdb4f0b49caae3c516166df40b9dfb3ba;hb=7cc18180942701cf067dbfe71991afe9315c7485;hp=17fde149edfa44759b1f9964c075e70dd1530aca;hpb=f6302d17784a0020efc9faef31b8d8c773b1ba44;p=hildon
diff --git a/src/hildon-vvolumebar.c b/src/hildon-vvolumebar.c
index 17fde14..f5bb86a 100644
--- a/src/hildon-vvolumebar.c
+++ b/src/hildon-vvolumebar.c
@@ -1,5 +1,5 @@
/*
- * This file is part of hildon-libs
+ * This file is a part of hildon
*
* Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
*
@@ -22,105 +22,146 @@
*
*/
-/*
+/**
* SECTION:hildon-vvolumebar
- * @short_description: A widget that displays a vertical volume bar
+ * @short_description: A widget that displays a vertical volume bar.
* @see_also: #HildonVolumebar, #HildonHVolumebar
*
* #HildonVVolumebar is a subclass of #HildonVolumebar. It displays a
* vertical volume bar that allows increasing or decreasing volume
* within a predefined range, and muting when users click the mute icon.
+ *
+ * Here is an example that creates a vertical volume bar and connects
+ * both its signals.
+ *
+ * HildonVVolumebar example
+ *
+ * GtkWidget *volbar = hildon_vvolumebar_new ();
+ * g_signal_connect (G_OBJECT (volbar), "mute_toggled", G_CALLBACK (mute_toggle), NULL);
+ * g_signal_connect (G_OBJECT (volbar), "level_changed", G_CALLBACK (level_change), NULL);
+ *
+ *
*/
-#ifdef HAVE_CONFIG_H
-#include
+#ifdef HAVE_CONFIG_H
+#include
#endif
-#include
-#include "hildon-vvolumebar.h"
-#include "hildon-volumebar-range.h"
-#include "hildon-volumebar-private.h"
+#include "hildon-vvolumebar.h"
+#include
+#include "hildon-volumebar-range.h"
+#include "hildon-volumebar-private.h"
/* Volume bar */
-#define DEFAULT_BAR_WIDTH 58
-#define MINIMUM_BAR_HEIGHT 165
+#define DEFAULT_BAR_WIDTH 58
+
+#define MINIMUM_BAR_HEIGHT 165
+
/* Toggle button */
-#define DEFAULT_VERTICAL_TBUTTON_WIDTH 26
-#define DEFAULT_VERTICAL_TBUTTON_HEIGHT 26
-#define DEFAULT_ENDING_SIZE 20
+
+#define DEFAULT_VERTICAL_TBUTTON_WIDTH 26
+
+#define DEFAULT_VERTICAL_TBUTTON_HEIGHT 26
+
+#define DEFAULT_ENDING_SIZE 20
+
/* Gap to leave for mute button */
-#define HORIZONTAL_MUTE_GAP 16
-#define VERTICAL_MUTE_GAP 6
-
-static HildonVolumebarClass *parent_class;
-static void hildon_vvolumebar_class_init(HildonVVolumebarClass * klass);
-static void hildon_vvolumebar_init(HildonVVolumebar * vvolumebar);
-static gboolean hildon_vvolumebar_expose(GtkWidget * widget,
- GdkEventExpose * event);
-static void hildon_vvolumebar_size_request(GtkWidget * widget,
- GtkRequisition * requisition);
-static void hildon_vvolumebar_size_allocate(GtkWidget * widget,
- GtkAllocation * allocation);
-
-GType hildon_vvolumebar_get_type(void)
+
+#define HORIZONTAL_MUTE_GAP 16
+
+#define VERTICAL_MUTE_GAP 6
+
+static HildonVolumebarClass* parent_class;
+
+static void
+hildon_vvolumebar_class_init (HildonVVolumebarClass * klass);
+
+static void
+hildon_vvolumebar_init (HildonVVolumebar * vvolumebar);
+
+static gboolean
+hildon_vvolumebar_expose (GtkWidget * widget,
+ GdkEventExpose * event);
+
+static void
+hildon_vvolumebar_size_request (GtkWidget * widget,
+ GtkRequisition * requisition);
+
+static void
+hildon_vvolumebar_size_allocate (GtkWidget * widget,
+ GtkAllocation * allocation);
+
+/**
+ * hildon_vvolumebar_get_type:
+ *
+ * Initializes and returns the type of a hildon vvolumebar.
+ *
+ * @Returns: GType of #HildonVVolumebar
+ */
+GType G_GNUC_CONST
+hildon_vvolumebar_get_type (void)
{
static GType type = 0;
if (!type) {
static const GTypeInfo info = {
- sizeof(HildonVVolumebarClass),
+ sizeof (HildonVVolumebarClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) hildon_vvolumebar_class_init, /* class_init */
NULL, /* class_finalize */
NULL, /* class_data */
- sizeof(HildonVVolumebar),
+ sizeof (HildonVVolumebar),
0,
(GInstanceInitFunc) hildon_vvolumebar_init,
};
type =
- g_type_register_static(HILDON_TYPE_VOLUMEBAR,
- "HildonVVolumebar", &info, 0);
+ g_type_register_static (HILDON_TYPE_VOLUMEBAR,
+ "HildonVVolumebar", &info, 0);
}
return type;
}
-static void hildon_vvolumebar_class_init(HildonVVolumebarClass * klass)
+static void
+hildon_vvolumebar_class_init (HildonVVolumebarClass *klass)
{
GtkWidgetClass *volumebar_class = GTK_WIDGET_CLASS(klass);
parent_class = g_type_class_peek_parent(klass);
- volumebar_class->size_request = hildon_vvolumebar_size_request;
- volumebar_class->size_allocate = hildon_vvolumebar_size_allocate;
- volumebar_class->expose_event = hildon_vvolumebar_expose;
+ volumebar_class->size_request = hildon_vvolumebar_size_request;
+ volumebar_class->size_allocate = hildon_vvolumebar_size_allocate;
+ volumebar_class->expose_event = hildon_vvolumebar_expose;
}
-static void hildon_vvolumebar_init(HildonVVolumebar * vvolumebar)
+static void
+hildon_vvolumebar_init (HildonVVolumebar *vvolumebar)
{
HildonVolumebarPrivate *priv;
- priv = HILDON_VOLUMEBAR_GET_PRIVATE(vvolumebar);
+ priv = HILDON_VOLUMEBAR_GET_PRIVATE (vvolumebar);
+ g_assert (priv);
- priv->volumebar =
- HILDON_VOLUMEBAR_RANGE(hildon_volumebar_range_new
- (GTK_ORIENTATION_VERTICAL));
+ priv->volumebar = HILDON_VOLUMEBAR_RANGE (hildon_volumebar_range_new
+ (GTK_ORIENTATION_VERTICAL));
- GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(vvolumebar), GTK_CAN_FOCUS);
+ GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (vvolumebar), GTK_CAN_FOCUS);
- gtk_widget_set_parent(GTK_WIDGET(priv->tbutton), GTK_WIDGET(vvolumebar));
- gtk_widget_set_parent(GTK_WIDGET(priv->volumebar), GTK_WIDGET(vvolumebar));
+ gtk_widget_set_parent (GTK_WIDGET (priv->tbutton), GTK_WIDGET (vvolumebar));
+ gtk_widget_set_parent (GTK_WIDGET (priv->volumebar), GTK_WIDGET (vvolumebar));
- gtk_scale_set_draw_value(GTK_SCALE(priv->volumebar), FALSE);
+ gtk_scale_set_draw_value (GTK_SCALE (priv->volumebar), FALSE);
/* Signals */
g_signal_connect_swapped(G_OBJECT(priv->volumebar), "value-changed",
- G_CALLBACK(hildon_volumebar_level_change),
- vvolumebar);
+ G_CALLBACK(hildon_volumebar_level_change),
+ vvolumebar);
+
g_signal_connect_swapped(priv->tbutton, "toggled",
- G_CALLBACK(_hildon_volumebar_mute_toggled), vvolumebar);
+ G_CALLBACK(hildon_volumebar_mute_toggled), vvolumebar);
- gtk_widget_show(GTK_WIDGET(priv->volumebar));
+ /* FIXME Not sure why this is here */
+ gtk_widget_show (GTK_WIDGET (priv->volumebar));
}
/**
@@ -130,104 +171,103 @@ static void hildon_vvolumebar_init(HildonVVolumebar * vvolumebar)
*
* Returns: a new #HildonVVolumebar
*/
-GtkWidget *hildon_vvolumebar_new(void)
+GtkWidget*
+hildon_vvolumebar_new (void)
{
- return GTK_WIDGET(g_object_new(HILDON_TYPE_VVOLUMEBAR, NULL));
+ return GTK_WIDGET (g_object_new(HILDON_TYPE_VVOLUMEBAR, NULL));
}
-static gboolean hildon_vvolumebar_expose(GtkWidget * widget,
- GdkEventExpose * event)
+static gboolean
+hildon_vvolumebar_expose (GtkWidget *widget,
+ GdkEventExpose *event)
{
- HildonVolumebarPrivate *priv;
- g_assert(HILDON_IS_VVOLUMEBAR(widget));
+ HildonVolumebarPrivate *priv;
priv = HILDON_VOLUMEBAR_GET_PRIVATE(HILDON_VOLUMEBAR(widget));
-
- if (GTK_WIDGET_DRAWABLE(widget)) {
+ g_assert (priv);
+
+ if (GTK_WIDGET_DRAWABLE (widget)) {
/* Paint background */
- gtk_paint_box(widget->style, widget->window,
- GTK_WIDGET_STATE(priv->volumebar), GTK_SHADOW_OUT,
- NULL, widget, "background",
- widget->allocation.x,
- widget->allocation.y,
- widget->allocation.width,
- widget->allocation.height);
-
- /* The contents of the widget can paint themselves */
- (*GTK_WIDGET_CLASS(parent_class)->expose_event) (widget, event);
+ gtk_paint_box (widget->style, widget->window,
+ GTK_WIDGET_STATE (priv->volumebar), GTK_SHADOW_OUT,
+ NULL, widget, "background",
+ widget->allocation.x,
+ widget->allocation.y,
+ widget->allocation.width,
+ widget->allocation.height);
+
+ /* The contents of the widget can paint themselves */
+ (*GTK_WIDGET_CLASS (parent_class)->expose_event) (widget, event);
}
return FALSE;
}
static void
-hildon_vvolumebar_size_request(GtkWidget * widget,
- GtkRequisition * requisition)
+hildon_vvolumebar_size_request (GtkWidget *widget,
+ GtkRequisition *requisition)
{
- g_assert(HILDON_IS_VVOLUMEBAR(widget));
-
requisition->height = MINIMUM_BAR_HEIGHT;
requisition->width = DEFAULT_BAR_WIDTH;
}
static void
-hildon_vvolumebar_size_allocate(GtkWidget * widget,
- GtkAllocation * allocation)
+hildon_vvolumebar_size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation)
{
HildonVolumebarPrivate *priv;
GtkAllocation range_allocation, button_allocation;
- g_assert(HILDON_IS_VVOLUMEBAR(widget));
-
priv = HILDON_VOLUMEBAR_GET_PRIVATE(widget);
+ g_assert (priv);
/* Center the widget horizontally */
if (allocation->width > DEFAULT_BAR_WIDTH) {
allocation->x +=
- (allocation->width - DEFAULT_BAR_WIDTH) / 2;
+ (allocation->width - DEFAULT_BAR_WIDTH) / 2;
allocation->width = DEFAULT_BAR_WIDTH;
}
- GTK_WIDGET_CLASS(parent_class)->size_allocate(widget, allocation);
+ GTK_WIDGET_CLASS (parent_class)->size_allocate (widget, allocation);
- if (priv->volumebar && GTK_WIDGET_VISIBLE(priv->volumebar)) {
+ if (priv->volumebar && GTK_WIDGET_VISIBLE (priv->volumebar)) {
/* Allocate space for the slider */
range_allocation.x = allocation->x;
range_allocation.y = allocation->y + DEFAULT_ENDING_SIZE;
range_allocation.width = DEFAULT_BAR_WIDTH;
-
- if (priv->tbutton && GTK_WIDGET_VISIBLE(priv->tbutton))
+
+ if (priv->tbutton && GTK_WIDGET_VISIBLE (priv->tbutton))
{
- /* Leave room for the mute button */
- range_allocation.height = MAX(0,
- allocation->height
- - 2 * DEFAULT_ENDING_SIZE
- - DEFAULT_VERTICAL_TBUTTON_HEIGHT
- - VERTICAL_MUTE_GAP);
+ /* Leave room for the mute button */
+ range_allocation.height = MAX (0,
+ allocation->height
+ - 2 * DEFAULT_ENDING_SIZE
+ - DEFAULT_VERTICAL_TBUTTON_HEIGHT
+ - VERTICAL_MUTE_GAP);
}
-
+
else
{
- range_allocation.height = MAX(0,
- allocation->height
- - 2 * DEFAULT_ENDING_SIZE);
+ range_allocation.height = MAX (0,
+ allocation->height
+ - 2 * DEFAULT_ENDING_SIZE);
}
-
- gtk_widget_size_allocate(GTK_WIDGET(priv->volumebar),
- &range_allocation);
+
+ gtk_widget_size_allocate (GTK_WIDGET (priv->volumebar),
+ &range_allocation);
}
-
- if (priv->tbutton && GTK_WIDGET_VISIBLE(priv->tbutton)) {
+
+ if (priv->tbutton && GTK_WIDGET_VISIBLE (priv->tbutton)) {
/* Allocate space for the mute button */
button_allocation.x = allocation->x + HORIZONTAL_MUTE_GAP;
button_allocation.y = allocation->y + allocation->height -
- VERTICAL_MUTE_GAP - 2 * DEFAULT_ENDING_SIZE;
+ VERTICAL_MUTE_GAP - 2 * DEFAULT_ENDING_SIZE;
button_allocation.width = DEFAULT_VERTICAL_TBUTTON_WIDTH;
button_allocation.height = DEFAULT_VERTICAL_TBUTTON_HEIGHT;
- gtk_widget_size_allocate(GTK_WIDGET(priv->tbutton),
- &button_allocation);
+ gtk_widget_size_allocate (GTK_WIDGET (priv->tbutton),
+ &button_allocation);
}
}