settings/src/gtkInfoItem.c File Reference

connectionMgr application - setup item showing additional help or info text` More...

#include <gtk/gtk.h>
#include <liberdm/display.h>
#include <libergtk/ergtk.h>
#include "setupLog.h"
#include "displayStatus.h"
#include "gtkSettingItem.h"
#include "gtkInfoItem.h"

Go to the source code of this file.

Defines

#define LOGPRINTF   ST_LOGPRINTF

Functions

static void gtk_infoitem_class_init (GtkInfoItemClass *klass)
static void gtk_infoitem_init (GtkInfoItem *item)
static void on_button_toggled (GtkToggleButton *button, gpointer data)
GtkWidget * gtk_infoitem_new (gboolean with_button)
GType gtk_infoitem_get_type (void)
void gtk_infoitem_set_text (GtkInfoItem *item, const gchar *text)
void gtk_infoitem_set_buttontext (GtkInfoItem *item, const gchar *text)
void gtk_infoitem_set_buttonstate (GtkInfoItem *item, const gboolean active)
void gtk_infoitem_callback_on_buttonclicked (GtkInfoItem *item, on_infoitem_buttonclicked_t *callback)


Detailed Description

connectionMgr application - setup item showing additional help or info text`

Copyright (C) 2005-2008 iRex Technologies B.V. All rights reserved.

Definition in file gtkInfoItem.c.


Define Documentation

#define LOGPRINTF   ST_LOGPRINTF

Definition at line 39 of file gtkInfoItem.c.


Function Documentation

void gtk_infoitem_callback_on_buttonclicked ( GtkInfoItem item,
on_infoitem_buttonclicked_t callback 
)

Definition at line 205 of file gtkInfoItem.c.

00206 {
00207     item->callback_on_buttonclicked = callback;
00208 }

static void gtk_infoitem_class_init ( GtkInfoItemClass klass  )  [static]

Definition at line 95 of file gtkInfoItem.c.

00096 {
00097     GtkObjectClass *object_class;
00098 
00099     object_class = (GtkObjectClass *) klass;
00100 }

GType gtk_infoitem_get_type ( void   ) 

Definition at line 71 of file gtkInfoItem.c.

00072 {
00073     static GType infoitem_type = 0;
00074 
00075     if (!infoitem_type)
00076     {
00077         static const GTypeInfo infoitem_info = {
00078             sizeof(GtkInfoItemClass),
00079             NULL,               /* base_init */
00080             NULL,               /* base_finalize */
00081             (GClassInitFunc) gtk_infoitem_class_init,
00082             NULL,               /* class_finalize */
00083             NULL,               /* class_data */
00084             sizeof(GtkInfoItem),
00085             0,                  /* n_preallocs */
00086             (GInstanceInitFunc) gtk_infoitem_init,
00087         };
00088 
00089         infoitem_type = g_type_register_static(GTK_TYPE_EVENT_BOX, "InfoItem", &infoitem_info, 0);
00090     }
00091     return infoitem_type;
00092 }

Here is the call graph for this function:

static void gtk_infoitem_init ( GtkInfoItem item  )  [static]

Definition at line 115 of file gtkInfoItem.c.

00116 {
00117     GtkWidget *background;
00118     GtkWidget *alignment;
00119     GtkWidget *hbox;
00120     GtkWidget *widget;
00121 
00122     gtk_widget_set_size_request(GTK_WIDGET(item), INFOITEM_REQ_WIDTH, INFOITEM_REQ_HEIGHT);
00123 
00124 
00125     // background
00126     widget = gtk_event_box_new();
00127     gtk_widget_set_name(widget, "infoitem_background");
00128     gtk_container_add(GTK_CONTAINER(item), widget);
00129     background = widget;
00130 
00131     // alignment
00132     alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00133     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00134                               INFOITEM_BORDER_TOP,
00135                               INFOITEM_BORDER_BOTTOM,
00136                               INFOITEM_BORDER_LEFT,
00137                               INFOITEM_BORDER_RIGHT );
00138     gtk_container_add(GTK_CONTAINER(background), alignment);
00139 
00140     // hbox
00141     widget = gtk_hbox_new(FALSE, INFOITEM_HBOX_SPACING);
00142     gtk_container_add(GTK_CONTAINER(alignment), widget);
00143     hbox = widget;
00144 
00145     //     item->icon
00146     widget = gtk_event_box_new();
00147     gtk_widget_set_name(widget, "infoitem_icon");
00148     gtk_widget_set_size_request(widget, INFOITEM_ICON_IMG_WIDTH, INFOITEM_ICON_IMG_HEIGHT);
00149     gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);
00150     gtk_widget_show(widget);
00151     item->icon = widget;
00152 
00153     //     item->label
00154     widget = gtk_label_new("");
00155     gtk_widget_set_name(widget, "infoitem_text");
00156     gtk_widget_set_size_request(widget, INFOITEM_TEXT_WIDTH, INFOITEM_TEXT_HEIGHT);
00157     gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.0);
00158     gtk_label_set_single_line_mode(GTK_LABEL(widget), FALSE);
00159     gtk_label_set_line_wrap(GTK_LABEL(widget), TRUE);
00160     gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);
00161     gtk_widget_show(widget);
00162     item->label = widget;
00163 
00164     //     alignment
00165     widget = gtk_alignment_new(1.0, 1.0, 0, 0);
00166     gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);
00167     gtk_widget_show(widget);
00168     alignment = widget;
00169 
00170     //         item->button
00171     widget = ergtk_toggle_button_new_with_label("");
00172     gtk_widget_set_size_request(widget, INFOITEM_BUTTON_WIDTH, INFOITEM_BUTTON_HEIGHT);
00173     gtk_container_add(GTK_CONTAINER(alignment), widget);
00174     gtk_widget_show(widget);
00175     item->button = widget;
00176     //     signal callbacks
00177     g_signal_connect_after(G_OBJECT(widget), "toggled", G_CALLBACK(on_button_toggled), item);
00178 
00179     // display
00180     gtk_widget_show_all(GTK_WIDGET(item));
00181 }

Here is the call graph for this function:

GtkWidget* gtk_infoitem_new ( gboolean  with_button  ) 

Definition at line 51 of file gtkInfoItem.c.

00052 {
00053     GtkInfoItem* item;
00054 
00055     item = (GtkInfoItem*) g_object_new(GTK_INFOITEM_TYPE, NULL);
00056 
00057     if (!with_button)
00058     {
00059         gtk_widget_destroy(item->button);
00060         item->button = NULL;
00061 
00062         gtk_widget_set_size_request( item->label,
00063                                      INFOITEM_TEXT_WIDTH + INFOITEM_BUTTON_WIDTH,
00064                                      INFOITEM_TEXT_HEIGHT );
00065     }
00066 
00067     return GTK_WIDGET(item);
00068 }

void gtk_infoitem_set_buttonstate ( GtkInfoItem item,
const gboolean  active 
)

Definition at line 197 of file gtkInfoItem.c.

00198 {
00199     g_return_if_fail(item->button != NULL);
00200     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(item->button), active);
00201 }

void gtk_infoitem_set_buttontext ( GtkInfoItem item,
const gchar *  text 
)

Definition at line 191 of file gtkInfoItem.c.

00192 {
00193     g_return_if_fail(item->button != NULL);
00194     gtk_button_set_label(GTK_BUTTON(item->button), text);
00195 }

void gtk_infoitem_set_text ( GtkInfoItem item,
const gchar *  text 
)

Definition at line 185 of file gtkInfoItem.c.

00186 {
00187     gtk_label_set_text(GTK_LABEL(item->label), text);
00188     gdk_flush();  // wait for label to copy text
00189 }

static void on_button_toggled ( GtkToggleButton *  button,
gpointer  data 
) [static]

Definition at line 212 of file gtkInfoItem.c.

00213 {
00214     LOGPRINTF("entry");
00215 
00216     GtkInfoItem* item = GTK_INFOITEM(data);
00217     g_return_if_fail(item != NULL);
00218 
00219     gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
00220     
00221     // inform user that button has changed
00222     if (item->callback_on_buttonclicked)
00223     {
00224         item->callback_on_buttonclicked(GTK_WIDGET(item), active);
00225     }
00226 }


Generated on Sun Dec 14 17:16:57 2008 by  doxygen 1.5.6