#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) |
Copyright (C) 2007 iRex Technologies BV.
Definition in file gtkInfoItem.c.
#define LOGPRINTF CN_LOGPRINTF |
Definition at line 37 of file gtkInfoItem.c.
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 }
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 }
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 }