connectionMgr/src/gtkInfoItem.c File Reference

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

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

Go to the source code of this file.

Defines

#define LOGPRINTF   CN_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_icon (GtkInfoItem *item, infoItemIcon_t icon)
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 - setup item showing additional help or info text`

Copyright (C) 2007 iRex Technologies BV.

Definition in file gtkInfoItem.c.


Define Documentation

#define LOGPRINTF   CN_LOGPRINTF

Definition at line 37 of file gtkInfoItem.c.


Function Documentation

void gtk_infoitem_callback_on_buttonclicked ( GtkInfoItem item,
on_infoitem_buttonclicked_t callback 
)

Definition at line 240 of file gtkInfoItem.c.

00242 {
00243     item->callback_on_buttonclicked = callback;
00244 }

static void gtk_infoitem_class_init ( GtkInfoItemClass klass  )  [static]

Definition at line 96 of file gtkInfoItem.c.

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

GType gtk_infoitem_get_type ( void   ) 

Definition at line 69 of file gtkInfoItem.c.

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

Here is the call graph for this function:

static void gtk_infoitem_init ( GtkInfoItem item  )  [static]

Definition at line 116 of file gtkInfoItem.c.

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

Here is the call graph for this function:

GtkWidget* gtk_infoitem_new ( gboolean  with_button  ) 

Definition at line 49 of file gtkInfoItem.c.

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

void gtk_infoitem_set_buttonstate ( GtkInfoItem item,
const gboolean  active 
)

Definition at line 232 of file gtkInfoItem.c.

00233 {
00234     g_return_if_fail(item->button != NULL);
00235     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(item->button), active);
00236 }

void gtk_infoitem_set_buttontext ( GtkInfoItem item,
const gchar *  text 
)

Definition at line 226 of file gtkInfoItem.c.

00227 {
00228     g_return_if_fail(item->button != NULL);
00229     gtk_button_set_label(GTK_BUTTON(item->button), text);
00230 }

void gtk_infoitem_set_icon ( GtkInfoItem item,
infoItemIcon_t  icon 
)

Definition at line 191 of file gtkInfoItem.c.

00192 {
00193     GtkWidget *widget;
00194     const char * name;
00195     
00196     g_return_if_fail((item != NULL) && IS_GTK_INFOITEM(item));
00197     
00198     widget = item->icon;
00199     g_return_if_fail(widget != NULL);
00200 
00201     switch (icon)
00202     {
00203         case iconInfo_e:
00204             name = "infoitem_icon";
00205             break;
00206         case iconOk_e:
00207             name = "infoitem_ok_icon";
00208             break;
00209         case iconFailed_e:
00210             name = "infoitem_failed_icon";
00211             break;
00212         default:
00213             name = "infoitem_icon";
00214             break;
00215     }
00216 
00217     gtk_widget_set_name(widget, name);
00218 }

void gtk_infoitem_set_text ( GtkInfoItem item,
const gchar *  text 
)

Definition at line 220 of file gtkInfoItem.c.

00221 {
00222     gtk_label_set_text(GTK_LABEL(item->label), text);
00223     gdk_flush();  // wait for label to copy text
00224 }

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

Definition at line 248 of file gtkInfoItem.c.

00249 {
00250     LOGPRINTF("entry");
00251 
00252     GtkInfoItem* item = GTK_INFOITEM(data);
00253     g_return_if_fail(item != NULL);
00254 
00255     gboolean active;
00256     
00257     // inform user that button has changed
00258     if (item->callback_on_buttonclicked)
00259     {
00260         active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
00261         item->callback_on_buttonclicked(GTK_WIDGET(item), active);
00262     }
00263 }


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