settings/src/iLiadDeviceOverview.c File Reference

settings - Device detail overview More...

#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <sys/utsname.h>
#include <gtk/gtk.h>
#include <liberdm/display.h>
#include <libergtk/ergtk.h>
#include "gtkSettingItem.h"
#include "setupLog.h"
#include "iLiadDeviceOverview.h"
#include "languages.h"
#include "system.h"

Go to the source code of this file.

Functions

static GtkWidget * gtk_dev_info_new (gtkDevInfo_t *dev)
static GtkWidget * gtk_ack_new (gtkAck_t *ack)
static void gtk_insert_separator (GtkBox *vbox)
GtkWidget * iLiad_device_overview_create (void)
void iLiad_device_overview_set_text (void)
void iLiad_device_overview_display_data (void)

Variables

static gtk_dev_overviewg_dev_overview_screen = NULL


Detailed Description

settings - Device detail overview

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

To allow Service and users to get more and neccessary device details

Definition in file iLiadDeviceOverview.c.


Function Documentation

GtkWidget * gtk_ack_new ( gtkAck_t ack  )  [static]

Definition at line 179 of file iLiadDeviceOverview.c.

00180 {
00181     GtkWidget* settingitem;
00182     GtkWidget* background;
00183     GtkWidget* alignment;
00184     GtkWidget* vbox;
00185     GtkWidget* label;
00186     gint i = 0;
00187     
00188     ST_LOGPRINTF("entry");
00189 
00190     g_return_val_if_fail(NULL != ack, NULL);
00191 
00192     // settingitem
00193     settingitem = gtk_settingitem_new("");
00194     gtk_widget_set_size_request(settingitem, -1, -1);
00195     ack->settingitem = settingitem;
00196 
00197     // background
00198     background = gtk_event_box_new();
00199     gtk_widget_set_name(background, "device_ack_background");
00200     gtk_widget_set_size_request(background, TITLE_MIN_WIDTH, DEVICE_ACK_HEIGHT);
00201     gtk_settingitem_add_details(GTK_SETTINGITEM(settingitem), background);
00202 
00203     // alignment
00204     alignment = gtk_alignment_new(0, 0, 0, 0);
00205     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00206                               DEVICE_OVERVIEW_ITEM_PADDING_TOP, DEVICE_OVERVIEW_ITEM_PADDING_BOTTOM,
00207                               DEVICE_OVERVIEW_ITEM_PADDING_LEFT, DEVICE_OVERVIEW_ITEM_PADDING_RIGHT);
00208     gtk_container_add(GTK_CONTAINER(background), alignment);
00209 
00210     vbox = gtk_vbox_new(FALSE, DEV_OVERVIEW_ITEM_SPACING);
00211     gtk_container_add(GTK_CONTAINER(alignment), vbox);
00212 
00213     label = gtk_label_new("");
00214     gtk_widget_set_name(label, "device_overview_info_text");
00215     gtk_label_set_single_line_mode(GTK_LABEL(label), FALSE);
00216     gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
00217     gtk_widget_set_size_request(label, ACK_DESCRIPTION_LABEL_WIDTH, -1);
00218     gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
00219     ack->label_description = label;
00220 
00221     for (i=0; i<DEV_ACK_ITEM_NUMBER; i++)
00222     {
00223         ack->label_ack_item[i] = gtk_label_new("");
00224         gtk_widget_set_name(ack->label_ack_item[i], "device_overview_info_text");
00225         gtk_misc_set_alignment(GTK_MISC(ack->label_ack_item[i]), 0.0, 0.0);
00226         gtk_box_pack_start(GTK_BOX(vbox), ack->label_ack_item[i], FALSE, FALSE, 0);
00227     }
00228 
00229     gtk_widget_show_all(background);
00230     gtk_widget_show(settingitem);
00231     return settingitem;
00232 }

Here is the call graph for this function:

GtkWidget * gtk_dev_info_new ( gtkDevInfo_t dev  )  [static]

Definition at line 108 of file iLiadDeviceOverview.c.

00109 {
00110     GtkWidget* settingitem;
00111     GtkWidget* background;
00112     GtkWidget* alignment;
00113     GtkWidget* vbox;
00114     GtkWidget* hbox;
00115     GtkWidget* label;
00116 
00117     gint i = 0;
00118 
00119     ST_LOGPRINTF("entry");
00120     
00121     g_return_val_if_fail(NULL != dev, NULL);
00122 
00123     // settingitem
00124     settingitem = gtk_settingitem_new("");
00125     gtk_widget_set_size_request(settingitem, -1, -1);
00126     dev->settingitem = settingitem;
00127 
00128     // background
00129     background = gtk_event_box_new();
00130     gtk_widget_set_name(background, "device_info_background");
00131     gtk_widget_set_size_request(background, TITLE_MIN_WIDTH, DEVICE_INFO_HEIGHT);
00132     gtk_settingitem_add_details(GTK_SETTINGITEM(settingitem), background);
00133 
00134     // alignment
00135     alignment = gtk_alignment_new(0, 0, 0, 0);
00136     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00137                               DEVICE_OVERVIEW_ITEM_PADDING_TOP, DEVICE_OVERVIEW_ITEM_PADDING_BOTTOM,
00138                               DEVICE_OVERVIEW_ITEM_PADDING_LEFT, DEVICE_OVERVIEW_ITEM_PADDING_RIGHT);
00139     gtk_container_add(GTK_CONTAINER(background), alignment);
00140 
00141     vbox = gtk_vbox_new(FALSE, DEV_OVERVIEW_ITEM_SPACING);
00142     gtk_container_add(GTK_CONTAINER(alignment), vbox);
00143 
00144     for (i=0; i<DEV_INFO_ITEM_NUMBER; i++)
00145     {
00146         if (i == 6 || i == 9)
00147         {
00148             gtk_insert_separator(GTK_BOX(vbox));
00149         }
00150 
00151         hbox = gtk_hbox_new(FALSE, 0);
00152         gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(hbox), FALSE, FALSE, 0);
00153 
00154         label = gtk_label_new("");
00155         gtk_widget_set_name(label, "device_overview_info_text");
00156         gtk_widget_set_size_request(label, DEVICE_INFO_LABEL_WIDTH, -1);
00157         gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
00158         gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
00159         dev->label_item_title[i] = label;
00160 
00161         dev->label_item_value[i] = gtk_label_new("");
00162         gtk_widget_set_name(dev->label_item_value[i], "device_overview_info_text");
00163         gtk_box_pack_start(GTK_BOX(hbox), dev->label_item_value[i], FALSE, FALSE, 0);
00164     }
00165 
00166     gtk_widget_show_all(background);
00167     gtk_widget_show(settingitem);
00168     return settingitem;
00169 }

Here is the call graph for this function:

void gtk_insert_separator ( GtkBox *  vbox  )  [static]

Definition at line 81 of file iLiadDeviceOverview.c.

00082 {
00083     GtkWidget* hbox;
00084 
00085     hbox = gtk_hbox_new(FALSE, 0);
00086     gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(hbox), FALSE, FALSE, 0);
00087     gtk_widget_set_size_request(hbox, TITLE_MIN_WIDTH, DEV_OVERVIEW_SEPARATOR_HEIGHT);
00088 }

GtkWidget* iLiad_device_overview_create ( void   ) 

Definition at line 57 of file iLiadDeviceOverview.c.

00058 {
00059     GtkWidget* vbox;
00060     GtkWidget* dev;
00061     GtkWidget* ack;
00062     
00063     ST_LOGPRINTF("entry");
00064     g_dev_overview_screen = g_new0(gtk_dev_overview, 1);
00065 
00066     // Top level vbox
00067     vbox = gtk_vbox_new(FALSE, DEV_OVERVIEW_ITEM_SPACING);
00068     g_dev_overview_screen->top_level_vbox = vbox;
00069     
00070     dev = gtk_dev_info_new(&g_dev_overview_screen->gtk_dev_info);
00071     gtk_box_pack_start(GTK_BOX(vbox), dev, FALSE, FALSE, 0);
00072 
00073     ack = gtk_ack_new(&g_dev_overview_screen->gtk_acknowledgement);
00074     gtk_box_pack_start(GTK_BOX(vbox), ack, FALSE, FALSE, 0);
00075 
00076     // show widgets
00077     gtk_widget_show(vbox);
00078     return vbox;
00079 }

Here is the call graph for this function:

void iLiad_device_overview_display_data ( void   ) 

Definition at line 275 of file iLiadDeviceOverview.c.

00276 {
00277     gtkDevInfo_t* dev = &g_dev_overview_screen->gtk_dev_info;
00278 
00279     char   tmp[20];
00280     struct utsname uname_buf;
00281     
00282     ST_LOGPRINTF("entry");
00283     if (g_dev_overview_screen->top_level_vbox)
00284     {
00285         gtk_label_set_text(GTK_LABEL(dev->label_item_value[0]), get_sysset_fa_model());
00286 
00287         sprintf(tmp, "%03d", get_sysset_fa_region());
00288         gtk_label_set_text(GTK_LABEL(dev->label_item_value[1]), tmp);
00289 
00290         gtk_label_set_text(GTK_LABEL(dev->label_item_value[2]), get_sysset_fa_oem_code());
00291         gtk_label_set_text(GTK_LABEL(dev->label_item_value[3]), get_sysset_fa_country_code());
00292 
00293         sprintf(tmp, "%d", get_sysset_pa_board_revision());
00294         gtk_label_set_text(GTK_LABEL(dev->label_item_value[4]), tmp);
00295         gtk_label_set_text(GTK_LABEL(dev->label_item_value[5]), get_sysset_epd_id());
00296 
00297         gtk_label_set_text(GTK_LABEL(dev->label_item_value[6]), get_sysset_product_id());
00298         gtk_label_set_text(GTK_LABEL(dev->label_item_value[7]), get_wired_macAddress());
00299         gtk_label_set_text(GTK_LABEL(dev->label_item_value[8]), get_wireless_macAddress());
00300 
00301         FILE *fp = fopen(VERSION_FILE, "r");
00302         if (NULL != fp)
00303         {
00304             char version[40];
00305             fgets(version, sizeof(version)-1, fp);
00306             fclose(fp);
00307             char *new_line = strchr(version, '\n');
00308             if (new_line)
00309             {
00310                 *new_line = '\0';
00311             }
00312             
00313             gtk_label_set_text(GTK_LABEL(dev->label_item_value[9]), version);
00314         }
00315 
00316         fp = fopen(BUILD_FILE, "r");
00317         if (NULL != fp)
00318         {
00319             char build_number[40];
00320             fgets(build_number, sizeof(build_number)-1, fp);
00321             fclose(fp);
00322             char *new_line = strchr(build_number, '\n');
00323             if (new_line)
00324             {
00325                 *new_line = '\0';
00326             }
00327 
00328             gtk_label_set_text(GTK_LABEL(dev->label_item_value[10]), build_number);
00329         }
00330 
00331         uname(&uname_buf);
00332         char *p = NULL;
00333         for (p = uname_buf.version; !isdigit(*p); p++);
00334         int kernel_build_number = atoi(p);
00335 
00336         char kernel_version[32];
00337         snprintf(kernel_version, 32, "%s #%d", uname_buf.release, kernel_build_number);
00338         gtk_label_set_text(GTK_LABEL(dev->label_item_value[11]), kernel_version);
00339     }
00340 }

Here is the call graph for this function:

void iLiad_device_overview_set_text ( void   ) 

Definition at line 234 of file iLiadDeviceOverview.c.

00235 {
00236     gtkDevInfo_t* dev;
00237     gtkAck_t*     ack;
00238 
00239     ST_LOGPRINTF("entry");
00240 
00241     if (g_dev_overview_screen)
00242     {
00243         dev = &g_dev_overview_screen->gtk_dev_info;
00244         ack = &g_dev_overview_screen->gtk_acknowledgement;
00245 
00246         gtk_settingitem_set_header_text(GTK_SETTINGITEM(dev->settingitem), _("Device Identification"));
00247 
00248         gtk_label_set_text(GTK_LABEL(dev->label_item_title[0]),  _("Product type:"));
00249         gtk_label_set_text(GTK_LABEL(dev->label_item_title[1]),  _("Language set:"));
00250         gtk_label_set_text(GTK_LABEL(dev->label_item_title[2]),  _("OEM code:"));
00251         gtk_label_set_text(GTK_LABEL(dev->label_item_title[3]),  _("Country code:"));
00252         gtk_label_set_text(GTK_LABEL(dev->label_item_title[4]),  _("PCBA revision:"));
00253         gtk_label_set_text(GTK_LABEL(dev->label_item_title[5]),  _("EPD ID:"));
00254         gtk_label_set_text(GTK_LABEL(dev->label_item_title[6]),  _("Product ID:"));
00255         gtk_label_set_text(GTK_LABEL(dev->label_item_title[7]),  _("Wired MAC address:"));
00256         gtk_label_set_text(GTK_LABEL(dev->label_item_title[8]),  _("Wireless MAC address:"));
00257         gtk_label_set_text(GTK_LABEL(dev->label_item_title[9]),  _("Software version:"));
00258         gtk_label_set_text(GTK_LABEL(dev->label_item_title[10]), _("Software build number:"));
00259         gtk_label_set_text(GTK_LABEL(dev->label_item_title[11]), _("Kernel version:"));
00260 
00261         gtk_settingitem_set_header_text(GTK_SETTINGITEM(ack->settingitem), _("Acknowledgements"));
00262 
00263         gtk_label_set_text(GTK_LABEL(ack->label_description),
00264                 _("iRex Technologies wants to thank the following people for contributing to the iLiad software:"));
00265 
00266         char tmp_str[128];
00267         snprintf(tmp_str, 128, _("German translation: %s"), "Henning Angelo Wolter");
00268         gtk_label_set_text(GTK_LABEL(ack->label_ack_item[0]), tmp_str);
00269 
00270         snprintf(tmp_str, 128, _("Stylus calibration: %s"), "Jay Kuri, Rob Mills, John Harker");
00271         gtk_label_set_text(GTK_LABEL(ack->label_ack_item[1]), tmp_str);
00272     }
00273 }

Here is the call graph for this function:


Variable Documentation

Definition at line 46 of file iLiadDeviceOverview.c.


Generated on Sun Dec 14 17:17:11 2008 by  doxygen 1.5.6