+++ /dev/null
-/*
-
- X G N O K I I
-
- A Linux/Unix GUI for Nokia mobile phones.
-
- Released under the terms of the GNU GPL, see file COPYING for more details.
-
-*/
-
-#include <stdlib.h> /* for getenv */
-#include <locale.h>
-#include <string.h>
-#include <time.h> /* for time */
-#include <pthread.h>
-
-#ifndef WIN32
-# include <unistd.h> /* for usleep */
-# include <signal.h>
-#else
-# include <windows.h>
-# include "../win32/winserial.h"
-# define WRITEPHONE(a, b, c) WriteCommBlock(b, c)
-# undef IN
-# undef OUT
-# define sleep(x) Sleep((x) * 1000)
-# define usleep(x) Sleep(((x) < 1000) ? 1 : ((x) / 1000))
-#endif
-
-#include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
-
-#include "misc.h"
-#include "gsm-common.h"
-#include "gsm-api.h"
-#include "files/cfgreader.h"
-#include "xgnokii.h"
-#include "xgnokii_common.h"
-#include "xgnokii_lowlevel.h"
-#include "xgnokii_contacts.h"
-#include "xgnokii_sms.h"
-#include "xgnokii_netmon.h"
-#include "xgnokii_dtmf.h"
-#include "xgnokii_speed.h"
-#include "xgnokii_xkeyb.h"
-#include "xgnokii_calendar.h"
-#include "xgnokii_logos.h"
-#include "xgnokii_xring.h"
-#include "xgnokii_cfg.h"
-#include "xgnokii_data.h"
-#include "newmodules/n6110.h"
-
-#include "xpm/logo.xpm"
-#include "xpm/background.xpm"
-#include "xpm/sms.xpm"
-#include "xpm/alarm.xpm"
-
-/* Widgets for dialogs. */
-static GtkWidget *SplashWindow;
-static GtkWidget *GUI_MainWindow;
-static GtkWidget *AboutDialog;
-static ErrorDialog errorDialog = {NULL, NULL};
-static InfoDialog infoDialog = {NULL, NULL};
-static GtkWidget *OptionsDialog;
-static bool optionsDialogIsOpened;
-
-/* SMS sets list */
-static GtkWidget *SMSClist;
-
-/* Pixmap used for drawing all the stuff. */
-static GdkPixmap *Pixmap = NULL;
-
-/* Pixmap used for background. */
-static GdkPixmap *BackgroundPixmap = NULL;
-
-/* Pixmap used for SMS picture. */
-static GdkPixmap *SMSPixmap = NULL;
-
-/* Pixmap used for alarm picture. */
-static GdkPixmap *AlarmPixmap = NULL;
-
-
-/* Widget for popup menu */
-static GtkWidget *Menu;
-static GtkWidget *netmon_menu_item;
-static GtkWidget *sms_menu_item;
-static GtkWidget *calendar_menu_item;
-static GtkWidget *logos_menu_item;
-static GtkWidget *dtmf_menu_item;
-static GtkWidget *speedDial_menu_item;
-static GtkWidget *xkeyb_menu_item;
-static GtkWidget *cg_names_option_frame;
-static GtkWidget *sms_option_frame;
-static GtkWidget *mail_option_frame;
-static GtkWidget *user_option_frame;
-static GtkWidget *data_menu_item;
-
-/* Hold main configuration data for xgnokii */
-XgnokiiConfig xgnokiiConfig;
-
-gint max_phonebook_name_length;
-gint max_phonebook_number_length;
-gint max_phonebook_sim_name_length;
-gint max_phonebook_sim_number_length;
-
-/* Local variables */
-static char *DefaultXGnokiiDir = XGNOKIIDIR;
-static char *DefaultXGnokiiDocsDir = XGNOKIIDOCSDIR;
-static bool SMSSettingsInitialized = FALSE;
-static bool CallersGroupsInitialized = FALSE;
-static bool SMSFoldersInitialized = FALSE;
-static gint hiddenCallDialog;
-static guint splashRemoveHandler;
-
-GSM_SMSFolders folders;
-
-static struct CallDialog {
- GtkWidget *dialog;
- GtkWidget *label;
-} inCallDialog;
-
-typedef struct {
- GtkWidget *alarmSwitch;
- GtkWidget *alarmHour;
- GtkWidget *alarmMin;
-} AlarmWidgets;
-
-typedef struct {
- GtkWidget *port;
- GtkWidget *model;
- GtkWidget *init;
- GtkWidget *bindir;
- GtkWidget *serial, *infrared, *mbus;
-} ConnectionWidgets;
-
-typedef struct {
- GtkWidget *model;
- GtkWidget *version;
- GtkWidget *revision;
- GtkWidget *imei;
- GtkWidget *simNameLen;
- GtkWidget *phoneNameLen;
-} PhoneWidgets;
-
-typedef struct {
- GtkWidget *set;
- GtkWidget *number;
- GtkWidget *defaultrecipient;
- GtkWidget *format;
- GtkWidget *validity;
- GSM_MessageCenter smsSetting[MAX_SMS_CENTER];
-} SMSWidgets;
-
-typedef struct {
- GtkWidget *name;
- GtkWidget *title;
- GtkWidget *company;
- GtkWidget *telephone;
- GtkWidget *fax;
- GtkWidget *email;
- GtkWidget *address;
- GtkWidget *status;
- gint max;
- gint used;
-} UserWidget;
-
-static struct ConfigDialogData
-{
- ConnectionWidgets connection;
- PhoneWidgets phone;
- GtkWidget *groups[6];
- AlarmWidgets alarm;
- SMSWidgets sms;
- UserWidget user;
- GtkWidget *mailbox;
- GtkWidget *help;
-} configDialogData;
-
-static GSM_MessageCenter tempMessageSettings;
-
-
-static inline void Help1 (GtkWidget *w, gpointer data)
-{
- gchar *indx = g_strdup_printf ("/%s/gnokii/xgnokii/main/index.htm", xgnokiiConfig.locale);
- Help (w, indx);
- g_free (indx);
-}
-
-void GUI_InitSMSFoldersInf (void)
-{
- if (SMSFoldersInitialized)
- return;
-
- GSM->GetSMSFolders(&folders);
-
- SMSFoldersInitialized = TRUE;
- GUIEventSend (GUI_EVENT_SMS_FOLDERS_CHANGED);
-}
-
-void GUI_InitCallerGroupsInf (void)
-{
- D_CallerGroup *cg;
- PhoneEvent *e;
- register gint i;
-
- if (CallersGroupsInitialized)
- return;
-
- gtk_label_set_text (GTK_LABEL (infoDialog.text), _("Reading caller groups names ..."));
- gtk_widget_show_now (infoDialog.dialog);
- GUI_Refresh ();
-
- xgnokiiConfig.callerGroups[0] = g_strndup( _("Familly"), MAX_CALLER_GROUP_LENGTH);
- xgnokiiConfig.callerGroups[1] = g_strndup( _("VIP"), MAX_CALLER_GROUP_LENGTH);
- xgnokiiConfig.callerGroups[2] = g_strndup( _("Friends"), MAX_CALLER_GROUP_LENGTH);
- xgnokiiConfig.callerGroups[3] = g_strndup( _("Colleagues"), MAX_CALLER_GROUP_LENGTH);
- xgnokiiConfig.callerGroups[4] = g_strndup( _("Other"), MAX_CALLER_GROUP_LENGTH);
- xgnokiiConfig.callerGroups[5] = g_strndup( _("No group"), MAX_CALLER_GROUP_LENGTH);
-
- if (GetModelFeature(FN_CALLERGROUPS)!=0)
- for (i = 0; i < 5; i++)
- {
- cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup));
- cg->number = i;
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_GetCallerGroup;
- e->data = cg;
- GUI_InsertEvent (e);
- pthread_mutex_lock (&callerGroupMutex);
- pthread_cond_wait (&callerGroupCond, &callerGroupMutex);
- pthread_mutex_unlock (&callerGroupMutex);
-
- if (*cg->text != '\0' && cg->status == GE_NONE)
- {
- g_free (xgnokiiConfig.callerGroups[i]);
- xgnokiiConfig.callerGroups[i] = g_strndup (cg->text, MAX_CALLER_GROUP_LENGTH);
- }
- g_free (cg);
- }
-
- CallersGroupsInitialized = TRUE;
- gtk_widget_hide (infoDialog.dialog);
- GUIEventSend (GUI_EVENT_CALLERS_GROUPS_CHANGED);
-}
-
-
-static inline void DrawBackground (GtkWidget *data)
-{
- gdk_draw_pixmap (Pixmap,
- GTK_WIDGET(data)->style->fg_gc[GTK_STATE_NORMAL],
- BackgroundPixmap,
- 0, 0,
- 0, 0,
- 261, 96);
-}
-
-int network_levels[] = {
- 152, 69, 11, 3,
- 138, 69, 11, 3,
- 124, 69, 11, 4,
- 110, 69, 11, 6
-};
-
-
-static inline void DrawNetwork (GtkWidget *data, int rflevel)
-{
- int i;
-
- if (rflevel > 100)
- rflevel = 100;
- for (i = 0; (i * 25) <= rflevel; i++)
- {
- float percent = ((float) rflevel - i * 25) / 25;
-
- if (percent > 1)
- percent = 1;
- gdk_draw_rectangle (Pixmap, GTK_WIDGET (data)->style->white_gc, TRUE,
- network_levels[4 * i] + network_levels[4 * i + 2] * (1 - percent),
- network_levels[4 * i + 1],
- network_levels[4 * i + 2] * percent,
- network_levels[4 * i + 3]);
- }
-}
-
-
-int battery_levels[] = {
- 50, 69, 11, 3,
- 64, 69, 11, 3,
- 78, 69, 11, 4,
- 92, 69, 11, 6
-};
-
-static inline void DrawBattery (GtkWidget *data, int batterylevel)
-{
- int i;
-
- if (batterylevel < 0)
- return;
- if (batterylevel > 100)
- batterylevel = 100;
- for (i = 0; (i * 25) <= batterylevel; i++)
- {
- float percent = ((float) batterylevel - i * 25) / 25;
- if (percent > 1)
- percent = 1;
- gdk_draw_rectangle (Pixmap, GTK_WIDGET (data)->style->white_gc, TRUE,
- battery_levels[4 * i],
- battery_levels[4 * i + 1],
- battery_levels[4 * i + 2] * percent,
- battery_levels[4 * i + 3]);
- }
-}
-
-static inline void DrawSMS (GtkWidget *data)
-{
- gdk_draw_pixmap (Pixmap,
- GTK_WIDGET(data)->style->fg_gc[GTK_STATE_NORMAL],
- SMSPixmap,
- 0, 0,
- 25, 47,
- 26, 7);
-}
-
-
-static inline void DrawAlarm (GtkWidget *data)
-{
- gdk_draw_pixmap (Pixmap,
- GTK_WIDGET(data)->style->fg_gc[GTK_STATE_NORMAL],
- AlarmPixmap,
- 0, 0,
- 163, 11,
- 9, 9);
-}
-
-static inline void DrawText (GtkWidget *data, int at, char *text)
-{
- static GdkFont *Font;
-
- Font = gdk_font_load ("-misc-fixed-medium-r-*-*-*-90-*-*-*-*-*-*");
- gdk_draw_string (Pixmap,
- Font,
- GTK_WIDGET(data)->style->fg_gc[GTK_STATE_NORMAL],
- 33, at, text);
-}
-
-
-static inline void DrawSMSReceived (GtkWidget *data)
-{
- DrawText (data, 25, _("Short Message received"));
-}
-
-
-static inline void DrawWorking (GtkWidget *data)
-{
- DrawText(data, 40, _("Working ..."));
-}
-
-
-static inline void HideCallDialog (GtkWidget *widget, gpointer data)
-{
- hiddenCallDialog = 1;
- gtk_widget_hide (GTK_WIDGET (data));
-}
-
-
-static void CreateInCallDialog (void)
-{
- GtkWidget *button, *hbox;
-
- inCallDialog.dialog = gtk_dialog_new ();
- gtk_window_position (GTK_WINDOW (inCallDialog.dialog), GTK_WIN_POS_MOUSE);
- gtk_window_set_title (GTK_WINDOW (inCallDialog.dialog), _("Call in progress"));
- gtk_container_set_border_width (GTK_CONTAINER (inCallDialog.dialog), 5);
- gtk_signal_connect (GTK_OBJECT (inCallDialog.dialog), "delete_event",
- GTK_SIGNAL_FUNC (DeleteEvent), NULL);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (inCallDialog.dialog)->vbox), hbox, FALSE, FALSE, 5);
- gtk_widget_show (hbox);
-
- inCallDialog.label = gtk_label_new ("");
- gtk_box_pack_start (GTK_BOX (hbox), inCallDialog.label, FALSE, FALSE, 0);
- gtk_widget_show (inCallDialog.label);
-
- button = gtk_button_new_with_label (_("Hide"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (inCallDialog.dialog)->action_area),
- button, TRUE, FALSE, 0);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (HideCallDialog), (gpointer) inCallDialog.dialog);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_default (button);
- gtk_widget_show (button);
-}
-
-
-static gint Update (gpointer data)
-{
- static gchar lastCallNum[20] = "";
- static gchar callBuf[80];
- static gchar timeBuf[10];
- static gchar *anonym = "anonymous";
- static struct tm stm;
- static gint smsNumber = 0;
- static gint callTimerStart = 0;
- gint callTimer = 0;
- time_t t;
- static gchar *name;
- static bool outgoing = TRUE;
-
-
- /* The number of SMS messages before second */
- static int smsold=0;
-
- /* The number of second for we should display "Short Message Received" message */
- static int smsreceived=-1;
-
- DrawBackground (data);
-
- DrawNetwork(data, phoneMonitor.rfLevel);
-
- DrawBattery(data, phoneMonitor.batteryLevel);
-
- if (phoneMonitor.alarm)
- DrawAlarm (data);
-
- if (phoneMonitor.working)
- DrawText (data, 25, phoneMonitor.working);
-
- pthread_mutex_lock (&smsMutex);
- if (phoneMonitor.sms.unRead > 0)
- {
- DrawSMS (data);
-
- if (phoneMonitor.sms.unRead > smsold && smsold != -1)
- smsreceived = 10; /* The message "Short Message Received" is displayed for 10s */
- }
- if (smsNumber != phoneMonitor.sms.number)
- GUIEventSend (GUI_EVENT_SMS_NUMBER_CHANGED);
-
- smsold = phoneMonitor.sms.unRead;
-
- smsNumber = phoneMonitor.sms.number;
-
- pthread_mutex_unlock (&smsMutex);
-
- if (smsreceived >= 0)
- {
- DrawSMSReceived (data);
- smsreceived--;
- }
-
- pthread_mutex_lock (&callMutex);
- if (phoneMonitor.call.callInProgress != CS_Idle)
- {
- if (phoneMonitor.call.callInProgress == CS_InProgress)
- {
- if (!callTimerStart)
- callTimerStart = callTimer = time (NULL);
- else
- callTimer = time (NULL);
- }
-
- if (phoneMonitor.call.callInProgress == CS_Waiting)
- {
- outgoing = FALSE;
-
- if (*phoneMonitor.call.callNum == '\0')
- name = anonym;
- else if (strncmp (phoneMonitor.call.callNum, lastCallNum, 20))
- {
- strncpy (lastCallNum, phoneMonitor.call.callNum, 20);
- lastCallNum[19] = '\0';
- name = GUI_GetName (phoneMonitor.call.callNum);
- if (!name)
- name = phoneMonitor.call.callNum;
- }
- }
- t = (time_t) difftime (callTimer, callTimerStart);
- (void) gmtime_r (&t, &stm);
- strftime (timeBuf, 10, "%T", &stm);
- if (outgoing)
- g_snprintf (callBuf, 80, _("Outgoing call in progress:\nTime: %s"),
- timeBuf);
- else
- g_snprintf (callBuf, 80, _("Incomming call from: %s\nTime: %s"),
- name, timeBuf);
-
- gtk_label_set_text (GTK_LABEL (inCallDialog.label), callBuf);
- if (!GTK_WIDGET_VISIBLE (inCallDialog.dialog) && !hiddenCallDialog)
- gtk_widget_show (inCallDialog.dialog);
- }
- else
- {
- callTimerStart = callTimer = 0;
- *lastCallNum = '\0';
- outgoing = TRUE;
- if (GTK_WIDGET_VISIBLE (inCallDialog.dialog))
- gtk_widget_hide (inCallDialog.dialog);
- hiddenCallDialog = 0;
- }
- pthread_mutex_unlock (&callMutex);
-
- gtk_widget_draw (data,NULL);
-
- GUIEventSend (GUI_EVENT_NETMON_CHANGED);
-
- return TRUE;
-}
-
-
-/* Redraw the screen from the backing pixmap */
-static inline gint ExposeEvent (GtkWidget *widget, GdkEventExpose *event)
-{
- gdk_draw_pixmap (widget->window,
- widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
- Pixmap,
- event->area.x, event->area.y,
- event->area.x, event->area.y,
- event->area.width, event->area.height);
-
- return FALSE;
-}
-
-
-static void ParseSMSCenters (void)
-{
- register gint i;
- register gint j;
-
- gtk_clist_freeze (GTK_CLIST (SMSClist));
-
- gtk_clist_clear (GTK_CLIST (SMSClist));
-
- for (i = 0; i < xgnokiiConfig.smsSets; i++)
- {
- gchar *row[5];
- if (*(configDialogData.sms.smsSetting[i].Name) == '\0')
- row[0] = g_strdup_printf (_("Set %d"), i + 1);
- else
- row[0] = g_strdup (configDialogData.sms.smsSetting[i].Name);
-
- row[1] = g_strdup (configDialogData.sms.smsSetting[i].Number);
-
- switch (configDialogData.sms.smsSetting[i].Format)
- {
- case GSMF_Text:
- row[2] = g_strdup (_("Text"));
- break;
-
- case GSMF_Paging:
- row[2] = g_strdup (_("Paging"));
- break;
-
- case GSMF_Fax:
- row[2] = g_strdup (_("Fax"));
- break;
-
- case GSMF_Email:
- case GSMF_UCI:
- row[2] = g_strdup (_("E-Mail"));
- break;
-
- case GSMF_ERMES:
- row[2] = g_strdup (_("ERMES"));
- break;
-
- case GSMF_X400:
- row[2] = g_strdup (_("X.400"));
- break;
-
- case GSMF_Voice:
- row[2] = g_strdup (_("Voice"));
- break;
-
- default:
- row[2] = g_strdup (_("Text"));
- break;
- }
-
- switch (configDialogData.sms.smsSetting[i].Validity)
- {
- case GSMV_1_Hour:
- row[3] = g_strdup (_("1 h"));
- break;
-
- case GSMV_6_Hours:
- row[3] = g_strdup (_("6 h"));
- break;
-
- case GSMV_24_Hours:
- row[3] = g_strdup (_("24 h"));
- break;
-
- case GSMV_72_Hours:
- row[3] = g_strdup (_("72 h"));
- break;
-
- case GSMV_1_Week:
- row[3] = g_strdup (_("1 week"));
- break;
-
- case GSMV_Max_Time:
- row[3] = g_strdup (_("Max. time"));
- break;
-
- default:
- row[3] = g_strdup (_("24 h"));
- break;
- }
-
- row[4] = g_strdup (configDialogData.sms.smsSetting[i].DefaultRecipient);
-
- gtk_clist_append( GTK_CLIST (SMSClist), row);
-
- for (j = 0; j < 5; j++)
- g_free (row[j]);
- }
-
- gtk_clist_thaw (GTK_CLIST (SMSClist));
-}
-
-
-static void RefreshUserStatus (void)
-{
- gchar buf[8];
- configDialogData.user.used = GTK_ENTRY (configDialogData.user.name)->text_length
- + GTK_ENTRY (configDialogData.user.title)->text_length
- + GTK_ENTRY (configDialogData.user.company)->text_length
- + GTK_ENTRY (configDialogData.user.telephone)->text_length
- + GTK_ENTRY (configDialogData.user.fax)->text_length
- + GTK_ENTRY (configDialogData.user.email)->text_length
- + GTK_ENTRY (configDialogData.user.address)->text_length;
- configDialogData.user.max = MAX_BUSINESS_CARD_LENGTH;
- if (GTK_ENTRY (configDialogData.user.telephone)->text_length > 0)
- configDialogData.user.max -= 4;
- if (GTK_ENTRY (configDialogData.user.fax)->text_length > 0)
- configDialogData.user.max -= 4;
- g_snprintf (buf, 8, "%d/%d", configDialogData.user.used, configDialogData.user.max);
- gtk_label_set_text (GTK_LABEL (configDialogData.user.status), buf);
-}
-
-
-void GUI_InitSMSSettings (void)
-{
- PhoneEvent *e;
- D_SMSCenter *c;
- register gint i;
-
- if (SMSSettingsInitialized)
- return;
-
- gtk_label_set_text (GTK_LABEL (infoDialog.text), _("Reading SMS centers ..."));
- gtk_widget_show_now (infoDialog.dialog);
- GUI_Refresh ();
-
- for (i = 1; i <= MAX_SMS_CENTER; i++)
- {
- xgnokiiConfig.smsSetting[i - 1].No = i;
- c = (D_SMSCenter *) g_malloc (sizeof (D_SMSCenter));
- c->center = &(xgnokiiConfig.smsSetting[i - 1]);
-
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_GetSMSCenter;
- e->data = c;
- GUI_InsertEvent (e);
- pthread_mutex_lock (&smsCenterMutex);
- pthread_cond_wait (&smsCenterCond, &smsCenterMutex);
- pthread_mutex_unlock (&smsCenterMutex);
-
- if (c->status != GE_NONE)
- break;
-
- g_free (c);
-
- configDialogData.sms.smsSetting[i - 1] = xgnokiiConfig.smsSetting[i - 1];
- }
-
- xgnokiiConfig.smsSets = i - 1;
-
- ParseSMSCenters ();
-
- SMSSettingsInitialized = TRUE;
-
- gtk_widget_hide (infoDialog.dialog);
-}
-
-
-void GUI_ShowOptions (void)
-{
- PhoneEvent *e;
- D_Alarm *alarm;
- register gint i;
-
- if (optionsDialogIsOpened)
- return;
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.connection.port), xgnokiiConfig.port);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.connection.model), xgnokiiConfig.model);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.connection.init), xgnokiiConfig.initlength);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.connection.bindir), xgnokiiConfig.bindir);
-
- if (!strcmp(xgnokiiConfig.connection, "fbus"))
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.connection.serial), TRUE);
-
- if (!strcmp(xgnokiiConfig.connection, "infrared"))
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.connection.infrared), TRUE);
-
- if (!strcmp(xgnokiiConfig.connection, "mbus"))
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.connection.mbus), TRUE);
-
- /* Phone */
- gtk_entry_set_text (GTK_ENTRY (configDialogData.phone.model), phoneMonitor.phone.model);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.phone.version), phoneMonitor.phone.version);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.phone.revision), phoneMonitor.phone.revision);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.phone.imei), phoneMonitor.phone.imei);
-
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (configDialogData.phone.simNameLen),
- atof (xgnokiiConfig.maxSIMLen));
-
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (configDialogData.phone.phoneNameLen),
- atof (xgnokiiConfig.maxPhoneLen));
-
- /* Alarm */
- alarm = (D_Alarm *) g_malloc (sizeof (D_Alarm));
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_GetAlarm;
- e->data = alarm;
- GUI_InsertEvent (e);
- pthread_mutex_lock (&alarmMutex);
- pthread_cond_wait (&alarmCond, &alarmMutex);
- pthread_mutex_unlock (&alarmMutex);
-
- if (alarm->status != GE_NONE)
- {
- xgnokiiConfig.alarmSupported = FALSE;
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.alarm.alarmSwitch), FALSE);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (configDialogData.alarm.alarmHour), 0.0);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (configDialogData.alarm.alarmMin), 0.0);
- }
- else
- {
- xgnokiiConfig.alarmSupported = TRUE;
- if (alarm->time.IsSet)
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.alarm.alarmSwitch), TRUE);
- else
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.alarm.alarmSwitch), FALSE);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (configDialogData.alarm.alarmHour), alarm->time.Hour);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (configDialogData.alarm.alarmMin), alarm->time.Minute);
- }
- g_free (alarm);
-
- /* SMS */
- if (GetModelFeature(FN_SMS)!=0)
- {
- gtk_widget_show (sms_option_frame);
- GUI_InitSMSSettings ();
- }
- else
- gtk_widget_hide (sms_option_frame);
-
-
- /* BUSINESS CARD */
- if (GetModelFeature(FN_SMS)!=0)
- {
- gtk_widget_show (user_option_frame);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.name),
- xgnokiiConfig.user.name);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.title),
- xgnokiiConfig.user.title);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.company),
- xgnokiiConfig.user.company);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.telephone),
- xgnokiiConfig.user.telephone);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.fax),
- xgnokiiConfig.user.fax);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.email),
- xgnokiiConfig.user.email);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.user.address),
- xgnokiiConfig.user.address);
-
- RefreshUserStatus();
- }
- else
- gtk_widget_hide (user_option_frame);
-
-
- /* Groups */
- if (GetModelFeature(FN_CALLERGROUPS)!=0)
- {
- gtk_widget_show (cg_names_option_frame);
- GUI_InitCallerGroupsInf ();
- for ( i = 0; i < 6; i++)
- gtk_entry_set_text (GTK_ENTRY (configDialogData.groups[i]), xgnokiiConfig.callerGroups[i]);
- }
- else
- gtk_widget_hide (cg_names_option_frame);
-
- /* Mail */
- if (GetModelFeature(FN_SMS)!=0)
- {
- gtk_widget_show (mail_option_frame);
- gtk_entry_set_text (GTK_ENTRY (configDialogData.mailbox),
- xgnokiiConfig.mailbox);;
- }
- else
- gtk_widget_hide (mail_option_frame);
-
- /* Help */
- gtk_entry_set_text (GTK_ENTRY (configDialogData.help),
- xgnokiiConfig.helpviewer);
-
- if (GetModelFeature(FN_SMSCDEFAULT)!=0) {} else
- gtk_clist_set_column_visibility (GTK_CLIST (SMSClist), 4, (GetModelFeature(FN_SMSCDEFAULT)!=0));
-
- optionsDialogIsOpened = TRUE;
- gtk_widget_show (OptionsDialog);
-}
-
-
-inline void GUI_ShowAbout (void)
-{
- gtk_widget_show (AboutDialog);
-}
-
-
-inline void GUI_HideAbout(void)
-{
- gtk_widget_hide (AboutDialog);
-}
-
-
-static void MainExit (void)
-{
- PhoneEvent *e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
-
- e->event = Event_Exit;
- e->data = NULL;
- GUI_InsertEvent (e);
- pthread_join (monitor_th, NULL);
-
- //need to correctly close connection
- GSM->Terminate();
-
- gtk_main_quit();
-}
-
-
-static void ShowMenu (GdkEventButton *event)
-{
- GdkEventButton *bevent = (GdkEventButton *) event;
-
- if (GetModelFeature(FN_KEYPRESS)!=0)
- gtk_widget_show (xkeyb_menu_item);
- else
- gtk_widget_hide (xkeyb_menu_item);
-
- if (GetModelFeature(FN_NETMONITOR)!=0)
- gtk_widget_show (netmon_menu_item);
- else
- gtk_widget_hide (netmon_menu_item);
-
- if (GetModelFeature(FN_SMS)!=0)
- gtk_widget_show (sms_menu_item);
- else
- gtk_widget_hide (sms_menu_item);
-
- if (GetModelFeature(FN_CALENDAR)!=0)
- gtk_widget_show (calendar_menu_item);
- else
- gtk_widget_hide (calendar_menu_item);
-
- if (GetModelFeature(FN_DTMF)!=0)
- gtk_widget_show (dtmf_menu_item);
- else
- gtk_widget_hide (dtmf_menu_item);
-
- if (GetModelFeature(FN_SPEEDDIAL)!=0)
- gtk_widget_show (speedDial_menu_item);
- else
- gtk_widget_hide (speedDial_menu_item);
-
- if (GetModelFeature(FN_DATACALLS)!=0)
- gtk_widget_show (data_menu_item);
- else
- gtk_widget_hide (data_menu_item);
-
- gtk_menu_popup (GTK_MENU (Menu), NULL, NULL, NULL, NULL,
- bevent->button, bevent->time);
-}
-
-
-static gint ButtonPressEvent (GtkWidget *widget, GdkEventButton *event)
-{
- /* Left button */
- if (event->button == 1) {
-
- /* Close */
- if (event->x >= 206 && event->x <= 221 &&
- event->y >= 42 && event->y <= 55)
- {
- if (GUI_ContactsIsChanged())
- GUI_QuitSaveContacts();
- else
- MainExit ();
- }
- else if ((event->x >= 180 && event->x <= 195 &&
- event->y >= 30 && event->y <= 50) ||
- (event->x >= 185 && event->x <= 215 &&
- event->y >= 15 && event->y <= 30))
- {
- GUI_ShowContacts ();
- }
- else if (event->x >= 190 && event->x <= 210 &&
- event->y >= 70 && event->y <= 85)
- {
- if (GetModelFeature(FN_SMS)==0)
- phoneMonitor.working = _("SMS not supported!");
- else
- GUI_ShowSMS ();
- }
- else if (event->x >= 235 && event->x <= 248 &&
- event->y >= 27 && event->y <= 75)
- {
- if (GetModelFeature(FN_CALENDAR)==0)
- phoneMonitor.working = _("Calendar not supported!");
- else
- GUI_ShowCalendar ();
- }
- else if (event->x >= 245 && event->x <= 258 &&
- event->y >= 83 && event->y <= 93)
- {
- GUI_ShowOptions();
- }
- } /* Right button */
- else if (event->button == 3)
- ShowMenu (event);
-
- // g_print ("event->x: %f\n", event->x);
- // g_print ("event->y: %f\n", event->y);
-
- return TRUE;
-}
-
-
-static void OptionsApplyCallback (GtkWidget *widget, gpointer data )
-{
- PhoneEvent *e;
- D_Alarm *alarm;
- register gint i;
-
- /* Phone */
- max_phonebook_sim_name_length = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (configDialogData.phone.simNameLen));
- max_phonebook_name_length = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (configDialogData.phone.phoneNameLen));
- g_free (xgnokiiConfig.maxSIMLen);
- g_free (xgnokiiConfig.maxPhoneLen);
- xgnokiiConfig.maxSIMLen = g_strdup_printf ("%d", max_phonebook_sim_name_length);
- xgnokiiConfig.maxPhoneLen = g_strdup_printf ("%d", max_phonebook_name_length);
-
- /* ALARM */
- /* From fbus-6110.c
- FIXME: we should also allow to set the alarm off :-) */
- if (xgnokiiConfig.alarmSupported
- && GTK_TOGGLE_BUTTON (configDialogData.alarm.alarmSwitch)->active)
- {
- alarm = (D_Alarm *) g_malloc (sizeof (D_Alarm));
- alarm->time.Hour = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (configDialogData.alarm.alarmHour));
- alarm->time.Minute = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (configDialogData.alarm.alarmMin));
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SetAlarm;
- e->data = alarm;
- GUI_InsertEvent (e);
- }
-
- /* SMS */
- if (GetModelFeature(FN_SMS)!=0)
- {
- for (i = 0; i < xgnokiiConfig.smsSets; i++)
- xgnokiiConfig.smsSetting[i] = configDialogData.sms.smsSetting[i];
- GUIEventSend (GUI_EVENT_SMS_CENTERS_CHANGED);
- }
-
- /* BUSINESS CARD */
- if (GetModelFeature(FN_SMS)!=0)
- {
- g_free(xgnokiiConfig.user.name);
- xgnokiiConfig.user.name = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.name)));
- g_free(xgnokiiConfig.user.title);
- xgnokiiConfig.user.title = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.title)));
- g_free(xgnokiiConfig.user.company);
- xgnokiiConfig.user.company = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.company)));
- g_free(xgnokiiConfig.user.telephone);
- xgnokiiConfig.user.telephone = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.telephone)));
- g_free(xgnokiiConfig.user.fax);
- xgnokiiConfig.user.fax = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.fax)));
- g_free(xgnokiiConfig.user.email);
- xgnokiiConfig.user.email = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.email)));
- g_free(xgnokiiConfig.user.address);
- xgnokiiConfig.user.address = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.address)));
- }
-
- /* GROUPS */
- if (GetModelFeature(FN_CALLERGROUPS)!=0)
- {
- for ( i = 0; i < 6; i++)
- {
- strncpy(xgnokiiConfig.callerGroups[i],
- gtk_entry_get_text(GTK_ENTRY (configDialogData.groups[i])),
- MAX_CALLER_GROUP_LENGTH);
- xgnokiiConfig.callerGroups[i][MAX_CALLER_GROUP_LENGTH] = '\0';
- }
- GUIEventSend (GUI_EVENT_CALLERS_GROUPS_CHANGED);
- GUIEventSend (GUI_EVENT_CONTACTS_CHANGED);
- }
-
- /* Mail */
- if (GetModelFeature(FN_SMS)!=0)
- {
- g_free(xgnokiiConfig.mailbox);
- xgnokiiConfig.mailbox = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.mailbox)));
- }
-
- /* Help */
- g_free(xgnokiiConfig.helpviewer);
- xgnokiiConfig.helpviewer = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.help)));
-}
-
-
-static void OptionsSaveCallback (GtkWidget *widget, gpointer data )
-{
- D_CallerGroup *cg;
- D_SMSCenter *c;
- PhoneEvent *e;
- register gint i;
-
- //gtk_widget_hide(GTK_WIDGET(data));
- OptionsApplyCallback (widget, data);
- for (i = 0; i < xgnokiiConfig.smsSets; i++)
- {
- xgnokiiConfig.smsSetting[i].No = i + 1;
- c = (D_SMSCenter *) g_malloc (sizeof (D_SMSCenter));
- c->center = &(xgnokiiConfig.smsSetting[i]);
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SetSMSCenter;
- e->data = c;
- GUI_InsertEvent (e);
- }
-
- if (GetModelFeature(FN_CALLERGROUPS)!=0)
- {
- cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup));
- cg->number = 0;
- if (strcmp (xgnokiiConfig.callerGroups[0], _("Familly")) == 0)
- *cg->text = '\0';
- else
- strncpy (cg->text, xgnokiiConfig.callerGroups[0], 256);
- cg->text[255] = '\0';
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SendCallerGroup;
- e->data = cg;
- GUI_InsertEvent (e);
-
- cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup));
- cg->number = 1;
- if (strcmp (xgnokiiConfig.callerGroups[1], _("VIP")) == 0)
- *cg->text = '\0';
- else
- strncpy (cg->text, xgnokiiConfig.callerGroups[1], 256);
- cg->text[255] = '\0';
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SendCallerGroup;
- e->data = cg;
- GUI_InsertEvent (e);
-
- cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup));
- cg->number = 2;
- if (strcmp (xgnokiiConfig.callerGroups[2], _("Friends")) == 0)
- *cg->text = '\0';
- else
- strncpy (cg->text, xgnokiiConfig.callerGroups[2], 256);
- cg->text[255] = '\0';
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SendCallerGroup;
- e->data = cg;
- GUI_InsertEvent (e);
-
- cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup));
- cg->number = 3;
- if (strcmp (xgnokiiConfig.callerGroups[3], _("Colleagues")) == 0)
- *cg->text = '\0';
- else
- strncpy (cg->text, xgnokiiConfig.callerGroups[3], 256);
- cg->text[255] = '\0';
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SendCallerGroup;
- e->data = cg;
- GUI_InsertEvent (e);
-
- cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup));
- cg->number = 4;
- if (strcmp (xgnokiiConfig.callerGroups[4], _("Other")) == 0)
- *cg->text = '\0';
- else
- strncpy (cg->text, xgnokiiConfig.callerGroups[4], 256);
- cg->text[255] = '\0';
- e = (PhoneEvent *) g_malloc (sizeof (PhoneEvent));
- e->event = Event_SendCallerGroup;
- e->data = cg;
- GUI_InsertEvent (e);
- }
-
- if (GUI_SaveXConfig())
- {
- gtk_label_set_text (GTK_LABEL(errorDialog.text), _("Error writing configuration file!"));
- gtk_widget_show (errorDialog.dialog);
- }
-}
-
-
-static GtkWidget *CreateMenu (void)
-{
- GtkWidget *menu, *menu_items;
-
- menu = gtk_menu_new ();
-
- menu_items = gtk_menu_item_new_with_label (_("Contacts"));
- gtk_menu_append (GTK_MENU (menu), menu_items);
- gtk_signal_connect_object (GTK_OBJECT (menu_items), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowContacts), NULL);
- gtk_widget_show (menu_items);
-
- sms_menu_item = gtk_menu_item_new_with_label (_("SMS"));
- gtk_menu_append (GTK_MENU (menu), sms_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (sms_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowSMS), NULL);
-
- calendar_menu_item = gtk_menu_item_new_with_label (_("Calendar"));
- gtk_menu_append (GTK_MENU (menu), calendar_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (calendar_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowCalendar), NULL);
-
- logos_menu_item = gtk_menu_item_new_with_label (_("Logos"));
- gtk_menu_append (GTK_MENU (menu), logos_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (logos_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowLogosWindow), NULL);
- gtk_widget_show(logos_menu_item);
-
- logos_menu_item = gtk_menu_item_new_with_label (_("Ringtones"));
- gtk_menu_append (GTK_MENU (menu), logos_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (logos_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowRingtonesWindow), NULL);
- gtk_widget_show(logos_menu_item);
-
- dtmf_menu_item = gtk_menu_item_new_with_label (_("DTMF"));
- gtk_menu_append (GTK_MENU (menu), dtmf_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (dtmf_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowDTMF), NULL);
-
- speedDial_menu_item = gtk_menu_item_new_with_label (_("Speed Dial"));
- gtk_menu_append (GTK_MENU (menu), speedDial_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (speedDial_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowSpeedDial), NULL);
-
- xkeyb_menu_item = gtk_menu_item_new_with_label (_("Keyboard"));
- gtk_menu_append (GTK_MENU (menu), xkeyb_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (xkeyb_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowXkeyb), NULL);
-
- netmon_menu_item = gtk_menu_item_new_with_label (_("Net Monitor"));
- gtk_menu_append (GTK_MENU (menu), netmon_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (netmon_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowNetmon), NULL);
-
- data_menu_item = gtk_menu_item_new_with_label (_("Data calls"));
- gtk_menu_append (GTK_MENU (menu), data_menu_item);
- gtk_signal_connect_object (GTK_OBJECT (data_menu_item), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowData), NULL);
-
- menu_items = gtk_menu_item_new ();
- gtk_menu_append (GTK_MENU (menu), menu_items);
- gtk_widget_show (menu_items);
-
- menu_items = gtk_menu_item_new_with_label (_("Options"));
- gtk_menu_append (GTK_MENU (menu), menu_items);
- gtk_signal_connect_object (GTK_OBJECT(menu_items), "activate",
- GTK_SIGNAL_FUNC(GUI_ShowOptions), NULL);
- gtk_widget_show (menu_items);
-
- menu_items = gtk_menu_item_new ();
- gtk_menu_append (GTK_MENU (menu), menu_items);
- gtk_widget_show (menu_items);
-
- menu_items = gtk_menu_item_new_with_label (_("Help"));
- gtk_menu_append (GTK_MENU (menu), menu_items);
- gtk_signal_connect_object (GTK_OBJECT(menu_items), "activate",
- GTK_SIGNAL_FUNC(Help1), NULL);
- gtk_widget_show (menu_items);
-
- menu_items = gtk_menu_item_new_with_label (_("About"));
- gtk_menu_append (GTK_MENU (menu), menu_items);
- gtk_signal_connect_object (GTK_OBJECT(menu_items), "activate",
- GTK_SIGNAL_FUNC (GUI_ShowAbout), NULL);
- gtk_widget_show (menu_items);
-
- return menu;
-}
-
-
-static GtkWidget *CreateAboutDialog (void)
-{
- GtkWidget *dialog;
- GtkWidget *button, *hbox, *label;
- gchar buf[200];
-
- dialog = gtk_dialog_new ();
- gtk_window_set_title (GTK_WINDOW (dialog), _("About"));
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 10);
- gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
- GTK_SIGNAL_FUNC (DeleteEvent), NULL);
- button = gtk_button_new_with_label (_("Ok"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
- button, TRUE, FALSE, 5);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (GUI_HideAbout), NULL);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_default (button);
- gtk_widget_show (button);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
- gtk_widget_show (hbox);
-
- g_snprintf (buf, 200, _("xgnokii version: %s\ngnokii version: %s\n\n\
-Copyright (C) 1999 Pavel JanÃk ml.,\nHugh Blemings & Jan Derfinak\n"), XVERSION, VERSION);
- label = gtk_label_new ((gchar *) buf);
- gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_widget_show (label);
-
- return dialog;
-}
-
-
-static inline void SetFormat (GtkWidget *item, gpointer data)
-{
- tempMessageSettings.Format = GPOINTER_TO_INT (data);
-}
-
-
-static inline void SetValidity (GtkWidget *item, gpointer data)
-{
- tempMessageSettings.Validity = GPOINTER_TO_INT (data);
-}
-
-
-static inline void OptionsDeleteEvent (GtkWidget *widget, GdkEvent *event, gpointer data )
-{
- gtk_widget_hide( GTK_WIDGET (widget));
- optionsDialogIsOpened = FALSE;
-}
-
-
-static inline void OptionsCloseCallback (GtkWidget *widget, gpointer data )
-{
- gtk_widget_hide(GTK_WIDGET(data));
- optionsDialogIsOpened = FALSE;
-}
-
-
-static gint CheckInUserDataLength (GtkWidget *widget,
- GdkEvent *event,
- gpointer callback_data)
-{
- register gint len;
-
- len = configDialogData.user.max - (GTK_ENTRY (configDialogData.user.name)->text_length
- + GTK_ENTRY (configDialogData.user.title)->text_length
- + GTK_ENTRY (configDialogData.user.company)->text_length
- + GTK_ENTRY (configDialogData.user.telephone)->text_length
- + GTK_ENTRY (configDialogData.user.fax)->text_length
- + GTK_ENTRY (configDialogData.user.email)->text_length
- + GTK_ENTRY (configDialogData.user.address)->text_length
- - GTK_ENTRY (widget)->text_length);
-
- if (len < 1)
- {
- gtk_entry_set_editable (GTK_ENTRY (widget), FALSE);
- return (FALSE);
- }
- else
- gtk_entry_set_editable (GTK_ENTRY (widget), TRUE);
- if (GPOINTER_TO_INT (callback_data) == 3
- || GPOINTER_TO_INT (callback_data) == 4)
- {
- if ((GPOINTER_TO_INT (callback_data) == 3
- && GTK_ENTRY (configDialogData.user.telephone)->text_length == 0)
- || (GPOINTER_TO_INT (callback_data) == 4
- && GTK_ENTRY (configDialogData.user.fax)->text_length == 0))
- len -= 4;
-
- if (len < 1)
- {
- gtk_entry_set_editable (GTK_ENTRY (widget), FALSE);
- return (FALSE);
- }
-
- if (len > max_phonebook_number_length)
- len = max_phonebook_number_length;
- }
-
- gtk_entry_set_max_length (GTK_ENTRY (widget), len);
- return (FALSE);
-}
-
-
-static inline gint CheckOutUserDataLength (GtkWidget *widget,
- GdkEvent *event,
- gpointer callback_data)
-{
- gtk_entry_set_max_length (GTK_ENTRY (widget), GPOINTER_TO_INT (callback_data));
- return (FALSE);
-}
-
-
-static inline gint RefreshUserStatusCallBack (GtkWidget *widget,
- GdkEventKey *event,
- gpointer callback_data)
-{
- RefreshUserStatus ();
- if (GTK_EDITABLE (widget)->editable == FALSE)
- return (FALSE);
- if (event->keyval == GDK_BackSpace || event->keyval == GDK_Clear ||
- event->keyval == GDK_Insert || event->keyval == GDK_Delete ||
- event->keyval == GDK_Home || event->keyval == GDK_End ||
- event->keyval == GDK_Left || event->keyval == GDK_Right ||
- event->keyval == GDK_Return ||
- (event->keyval >= 0x20 && event->keyval <= 0xFF))
- return (TRUE);
-
- return (FALSE);
-}
-
-
-static void OkEditSMSSetDialog (GtkWidget *w, gpointer data)
-{
-
- strncpy(configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Name,
- gtk_entry_get_text(GTK_ENTRY (configDialogData.sms.set)),
- GSM_MAX_SMS_CENTER_NAME_LENGTH);
- configDialogData.sms.smsSetting[GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Name[GSM_MAX_SMS_CENTER_NAME_LENGTH - 1]
- = '\0';
-
- strncpy(configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Number,
- gtk_entry_get_text(GTK_ENTRY (configDialogData.sms.number)),
- GSM_MAX_SMS_CENTER_LENGTH);
- configDialogData.sms.smsSetting[GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Number[GSM_MAX_SMS_CENTER_LENGTH]
- = '\0';
-
- strncpy(configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].DefaultRecipient,
- gtk_entry_get_text(GTK_ENTRY (configDialogData.sms.defaultrecipient)),
- GSM_MAX_RECIPIENT_LENGTH);
- configDialogData.sms.smsSetting[GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].DefaultRecipient[GSM_MAX_RECIPIENT_LENGTH]
- = '\0';
-
- configDialogData.sms.smsSetting[GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Format
- = tempMessageSettings.Format;
-
- configDialogData.sms.smsSetting[GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Validity
- = tempMessageSettings.Validity;
-
- ParseSMSCenters ();
-
- gtk_widget_hide (GTK_WIDGET (data));
-}
-
-
-static inline void EditSMSSetDialogClick (GtkWidget *clist,
- gint row,
- gint column,
- GdkEventButton *event,
- GtkWidget *data )
-{
- if(event && event->type == GDK_2BUTTON_PRESS)
- gtk_signal_emit_by_name(GTK_OBJECT (data), "clicked");
-}
-
-
-static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data)
-{
- static GtkWidget *dialog = NULL;
- GtkWidget *button, *label, *label2, *hbox, *hbox2, *menu, *item;
-
- if (GTK_CLIST (SMSClist)->selection == NULL)
- return;
-
- if (dialog == NULL)
- {
- dialog = gtk_dialog_new();
- gtk_window_set_title (GTK_WINDOW (dialog), _("Edit SMS Setting"));
- gtk_window_set_modal(GTK_WINDOW (dialog), TRUE);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 10);
- gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
- GTK_SIGNAL_FUNC (DeleteEvent), NULL);
-
- button = gtk_button_new_with_label (_("Ok"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
- button, TRUE, TRUE, 10);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (OkEditSMSSetDialog), (gpointer) dialog);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_default (button);
- gtk_widget_show (button);
- button = gtk_button_new_with_label (_("Cancel"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
- button, TRUE, TRUE, 10);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (CancelDialog), (gpointer) dialog);
- gtk_widget_show (button);
-
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 5);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Set's name:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.sms.set = gtk_entry_new_with_max_length(GSM_MAX_SMS_CENTER_NAME_LENGTH - 1);
- gtk_widget_set_usize (configDialogData.sms.set, 110, 22);
- gtk_box_pack_end(GTK_BOX(hbox), configDialogData.sms.set, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.sms.set);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Center:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.sms.number = gtk_entry_new_with_max_length(GSM_MAX_SMS_CENTER_LENGTH - 1);
- gtk_widget_set_usize (configDialogData.sms.number, 110, 22);
- gtk_box_pack_end(GTK_BOX(hbox), configDialogData.sms.number, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.sms.number);
-
- hbox2 = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox2, FALSE, FALSE, 9);
- if (GetModelFeature(FN_SMSCDEFAULT)!=0)
- gtk_widget_show (hbox2);
-
- label2 = gtk_label_new (_("Default recipient:"));
- gtk_box_pack_start(GTK_BOX(hbox2), label2, FALSE, FALSE, 2);
- if (GetModelFeature(FN_SMSCDEFAULT)!=0)
- gtk_widget_show (label2);
-
- configDialogData.sms.defaultrecipient = gtk_entry_new_with_max_length(GSM_MAX_RECIPIENT_LENGTH - 1);
- gtk_widget_set_usize (configDialogData.sms.defaultrecipient, 110, 22);
- gtk_box_pack_end(GTK_BOX(hbox2), configDialogData.sms.defaultrecipient, FALSE, FALSE, 2);
- if (GetModelFeature(FN_SMSCDEFAULT)!=0)
- gtk_widget_show (configDialogData.sms.defaultrecipient);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 9);
- gtk_widget_show (hbox);
- label = gtk_label_new (_("Sending Format:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.sms.format = gtk_option_menu_new ();
- menu = gtk_menu_new ();
- gtk_widget_set_usize (configDialogData.sms.format, 110, 28);
-
- item = gtk_menu_item_new_with_label (_("Text"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetFormat),
- (gpointer) GSMF_Text);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("Fax"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetFormat),
- (gpointer) GSMF_Fax);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("Paging"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetFormat),
- (gpointer) GSMF_Paging);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("E-Mail"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetFormat),
- (gpointer) GSMF_Email);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- gtk_option_menu_set_menu (GTK_OPTION_MENU (configDialogData.sms.format), menu);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.sms.format, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.sms.format);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 9);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Validity Period:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.sms.validity = gtk_option_menu_new ();
- menu = gtk_menu_new ();
- gtk_widget_set_usize (configDialogData.sms.validity, 110, 28);
-
- item = gtk_menu_item_new_with_label (_("Max. Time"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetValidity),
- (gpointer) GSMV_Max_Time);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("1 h"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetValidity),
- (gpointer) GSMV_1_Hour);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("6 h"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetValidity),
- (gpointer) GSMV_6_Hours);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("24 h"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetValidity),
- (gpointer) GSMV_24_Hours);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("72 h"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetValidity),
- (gpointer) GSMV_72_Hours);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- item = gtk_menu_item_new_with_label (_("1 week"));
- gtk_signal_connect (GTK_OBJECT (item), "activate",
- GTK_SIGNAL_FUNC(SetValidity),
- (gpointer) GSMV_1_Week);
- gtk_widget_show (item);
- gtk_menu_append (GTK_MENU (menu), item);
-
- gtk_option_menu_set_menu (GTK_OPTION_MENU (configDialogData.sms.validity), menu);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.sms.validity, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.sms.validity);
- }
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.sms.set),
- configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Name);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.sms.number),
- configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Number);
-
- gtk_entry_set_text (GTK_ENTRY (configDialogData.sms.defaultrecipient),
- configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].DefaultRecipient);
-
- switch (configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Format)
- {
- case GSMF_Text:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
- 0);
- break;
-
- case GSMF_Paging:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
- 2);
- break;
-
- case GSMF_Fax:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
- 1);
- break;
-
- case GSMF_Email:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
- 3);
- break;
-
- default:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format),
- 0);
- }
-
- switch (configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Validity)
- {
- case GSMV_1_Hour:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 1);
- break;
-
- case GSMV_6_Hours:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 2);
- break;
-
- case GSMV_24_Hours:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 3);
- break;
-
- case GSMV_72_Hours:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 4);
- break;
-
- case GSMV_1_Week:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 5);
- break;
-
- case GSMV_Max_Time:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 0);
- break;
-
- default:
- gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity),
- 3);
- }
-
- tempMessageSettings.Format = configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Format;
- tempMessageSettings.Validity = configDialogData.sms.smsSetting
- [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Validity;
-
- gtk_widget_show (dialog);
-}
-
-
-static GtkWidget *CreateOptionsDialog (void)
-{
- gchar labelBuffer[10];
- GtkWidget *dialog;
- GtkWidget *button, *hbox, *vbox, *label, *notebook, *frame, *clistScrolledWindow;
- register gint i;
- GtkAdjustment *adj;
- gchar *titles[5] = { _("Set's name"), _("Center number"), _("Format"), _("Validity"), _("Default recipient")};
-
- dialog = gtk_dialog_new ();
- gtk_window_set_title (GTK_WINDOW (dialog), _("Options"));
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 10);
- gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",
- GTK_SIGNAL_FUNC (OptionsDeleteEvent), NULL);
-
- button = gtk_button_new_with_label (_("Apply"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
- button, TRUE, TRUE, 10);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (OptionsApplyCallback), (gpointer)dialog);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_default (button);
- gtk_widget_show (button);
-
- button = gtk_button_new_with_label (_("Save"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
- button, TRUE, TRUE, 10);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (OptionsSaveCallback), (gpointer)dialog);
- gtk_widget_show (button);
-
- button = gtk_button_new_with_label (_("Close"));
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
- button, TRUE, TRUE, 10);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (OptionsCloseCallback), (gpointer)dialog);
- gtk_widget_show (button);
-
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 5);
-
- notebook = gtk_notebook_new ();
- gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP);
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), notebook);
- gtk_widget_show(notebook);
-
- /*** Connection notebook ***/
- frame = gtk_frame_new (_("Phone and connection type"));
- gtk_widget_show (frame);
-
- vbox = gtk_vbox_new( FALSE, 0);
- gtk_container_add (GTK_CONTAINER (frame), vbox);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (_("Connection"));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Port:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.connection.port = gtk_entry_new_with_max_length (10);
- gtk_widget_set_usize (configDialogData.connection.port, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.connection.port),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.port, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.port);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Model:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.connection.model = gtk_entry_new_with_max_length (5);
- gtk_widget_set_usize (configDialogData.connection.model, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.connection.model),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.model, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.model);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Init length:"));
- gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.connection.init = gtk_entry_new_with_max_length (100);
- gtk_widget_set_usize (configDialogData.connection.init, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.connection.init),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.init, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.init);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Bindir:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.connection.bindir = gtk_entry_new_with_max_length (100);
- gtk_widget_set_usize (configDialogData.connection.bindir, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.connection.bindir),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.bindir, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.bindir);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Connection:"));
- gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 3);
- gtk_widget_show (label);
-
- configDialogData.connection.infrared = gtk_radio_button_new_with_label (NULL, _("infrared"));
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.infrared, TRUE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.infrared);
-
- configDialogData.connection.serial = gtk_radio_button_new_with_label (
- gtk_radio_button_group (GTK_RADIO_BUTTON (configDialogData.connection.infrared)), _("fbus"));
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.serial, TRUE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.serial);
-
- configDialogData.connection.mbus = gtk_radio_button_new_with_label (
- gtk_radio_button_group (GTK_RADIO_BUTTON (configDialogData.connection.serial)), _("mbus"));
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.mbus, TRUE, FALSE, 2);
- gtk_widget_show (configDialogData.connection.mbus);
-
- /*** Phone notebook ***/
- frame = gtk_frame_new (_("Phone information"));
- gtk_widget_show (frame);
-
- vbox = gtk_vbox_new( FALSE, 0);
- gtk_container_add (GTK_CONTAINER (frame), vbox);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (_("Phone"));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Model:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.phone.model = gtk_entry_new_with_max_length (7);
- gtk_widget_set_usize (configDialogData.phone.model, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.phone.model),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.phone.model, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.phone.model);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Version:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.phone.version = gtk_entry_new_with_max_length (7);
- gtk_widget_set_usize (configDialogData.phone.version, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.phone.version),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.phone.version, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.phone.version);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Revision:"));
- gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.phone.revision = gtk_entry_new_with_max_length (64);
- gtk_widget_set_usize (configDialogData.phone.revision, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.phone.revision),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.phone.revision, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.phone.revision);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("IMEI:"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.phone.imei = gtk_entry_new_with_max_length (64);
- gtk_widget_set_usize (configDialogData.phone.imei, 220, 22);
- gtk_entry_set_editable (GTK_ENTRY (configDialogData.phone.imei),
- FALSE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.phone.imei, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.phone.imei);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new ("Names length:");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_widget_show (hbox);
-
- label = gtk_label_new ("SIM:");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 1.0, 100.0, 1.0, 10.0, 0.0);
- configDialogData.phone.simNameLen = gtk_spin_button_new (adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (configDialogData.phone.simNameLen), TRUE);
- gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (configDialogData.phone.simNameLen), TRUE);
- gtk_box_pack_start (GTK_BOX (hbox), configDialogData.phone.simNameLen, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.phone.simNameLen);
-
- adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 1.0, 100.0, 1.0, 10.0, 0.0);
- configDialogData.phone.phoneNameLen = gtk_spin_button_new (adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (configDialogData.phone.phoneNameLen), TRUE);
- gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (configDialogData.phone.phoneNameLen), TRUE);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.phone.phoneNameLen, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.phone.phoneNameLen);
-
- label = gtk_label_new ("Phone:");
- gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- /*** Alarm notebook ***/
- xgnokiiConfig.alarmSupported = TRUE;
-
- frame = gtk_frame_new (_("Alarm setting"));
- gtk_widget_show (frame);
-
- vbox = gtk_vbox_new( FALSE, 0);
- gtk_container_add (GTK_CONTAINER (frame), vbox);
- gtk_widget_show(vbox);
-
- label = gtk_label_new (_("Alarm"));
- gtk_notebook_append_page( GTK_NOTEBOOK (notebook), frame, label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 5);
- gtk_widget_show (hbox);
-
- configDialogData.alarm.alarmSwitch = gtk_check_button_new_with_label (_("Alarm"));
- gtk_box_pack_start (GTK_BOX (hbox), configDialogData.alarm.alarmSwitch, FALSE, FALSE, 10);
- gtk_widget_show (configDialogData.alarm.alarmSwitch);
-
- adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, 23.0, 1.0, 4.0, 0.0);
- configDialogData.alarm.alarmHour = gtk_spin_button_new (adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (configDialogData.alarm.alarmHour), TRUE);
- gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (configDialogData.alarm.alarmHour), TRUE);
- gtk_box_pack_start (GTK_BOX (hbox), configDialogData.alarm.alarmHour, FALSE, FALSE, 0);
- gtk_widget_show (configDialogData.alarm.alarmHour);
-
- label = gtk_label_new (":");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, 59.0, 1.0, 10.0, 0.0);
- configDialogData.alarm.alarmMin = gtk_spin_button_new (adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (configDialogData.alarm.alarmMin), TRUE);
- gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (configDialogData.alarm.alarmMin), TRUE);
- gtk_box_pack_start (GTK_BOX (hbox), configDialogData.alarm.alarmMin, FALSE, FALSE, 0);
- gtk_widget_show (configDialogData.alarm.alarmMin);
-
- /*** SMS notebook ***/
- sms_option_frame = gtk_frame_new (_("Short Message Service"));
-
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (sms_option_frame), vbox);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (_("SMS"));
- gtk_notebook_append_page (GTK_NOTEBOOK (notebook), sms_option_frame, label);
-
- SMSClist = gtk_clist_new_with_titles (5, titles);
- gtk_clist_set_shadow_type (GTK_CLIST (SMSClist), GTK_SHADOW_OUT);
- gtk_clist_column_titles_passive (GTK_CLIST (SMSClist));
- gtk_clist_set_auto_sort (GTK_CLIST (SMSClist), FALSE);
-
- gtk_clist_set_column_width (GTK_CLIST (SMSClist), 0, 70);
- gtk_clist_set_column_width (GTK_CLIST (SMSClist), 1, 115);
- gtk_clist_set_column_width (GTK_CLIST (SMSClist), 2, 40);
- gtk_clist_set_column_width (GTK_CLIST (SMSClist), 3, 55);
- gtk_clist_set_column_width (GTK_CLIST (SMSClist), 4, 100);
-// gtk_clist_set_column_justification (GTK_CLIST (SMSClist), 1, GTK_JUSTIFY_RIGHT);
-
- clistScrolledWindow = gtk_scrolled_window_new (NULL, NULL);
- gtk_container_add (GTK_CONTAINER (clistScrolledWindow), SMSClist);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (clistScrolledWindow),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start (GTK_BOX (vbox), clistScrolledWindow,
- TRUE, TRUE, 10);
-
- gtk_widget_show (SMSClist);
-
- gtk_widget_show (clistScrolledWindow);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 9);
- gtk_widget_show (hbox);
-
- button = gtk_button_new_with_label (_("Edit"));
- gtk_box_pack_start (GTK_BOX (hbox),
- button, TRUE, FALSE, 0);
- gtk_signal_connect (GTK_OBJECT (button), "clicked",
- GTK_SIGNAL_FUNC (ShowEditSMSSetDialog), (gpointer)dialog);
- GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
- gtk_widget_grab_default (button);
- gtk_widget_show (button);
-
- gtk_signal_connect (GTK_OBJECT (SMSClist), "select_row",
- GTK_SIGNAL_FUNC (EditSMSSetDialogClick),
- (gpointer) button);
-
- /*** Business notebook ***/
- user_option_frame = gtk_frame_new (_("Business Card"));
-
- vbox = gtk_vbox_new( FALSE, 0);
- gtk_container_add (GTK_CONTAINER (user_option_frame), vbox);
- gtk_widget_show(vbox);
-
- label = gtk_label_new(_("User"));
- gtk_notebook_append_page( GTK_NOTEBOOK (notebook), user_option_frame, label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- configDialogData.user.status = gtk_label_new ("");
- gtk_box_pack_end(GTK_BOX(hbox), configDialogData.user.status, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.status);
-
- configDialogData.user.max = MAX_BUSINESS_CARD_LENGTH;
- configDialogData.user.used = 0;
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Name:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.name = gtk_entry_new_with_max_length(configDialogData.user.max);
- gtk_widget_set_usize (configDialogData.user.name, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.name),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.name),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.name),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 0);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.name),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength),
- (gpointer) configDialogData.user.max);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.name, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.name);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Title:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.title = gtk_entry_new_with_max_length(configDialogData.user.max);
- gtk_widget_set_usize (configDialogData.user.title, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.title),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.title),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.title),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 1);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.title),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength),
- (gpointer) configDialogData.user.max);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.title, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.title);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Company:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.company = gtk_entry_new_with_max_length(configDialogData.user.max);
- gtk_widget_set_usize (configDialogData.user.company, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.company),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.company),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.company),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 2);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.company),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength),
- (gpointer) configDialogData.user.max);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.company, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.company);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Telephone:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.telephone = gtk_entry_new_with_max_length(max_phonebook_number_length);
- gtk_widget_set_usize (configDialogData.user.telephone, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.telephone),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.telephone),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.telephone),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 3);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.telephone),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength), (gpointer) max_phonebook_number_length);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.telephone, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.telephone);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Fax:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.fax = gtk_entry_new_with_max_length(max_phonebook_number_length);
- gtk_widget_set_usize (configDialogData.user.fax, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.fax),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.fax),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.fax),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 4);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.fax),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength), (gpointer) max_phonebook_number_length);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.fax, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.fax);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("E-Mail:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.email = gtk_entry_new_with_max_length(configDialogData.user.max);
- gtk_widget_set_usize (configDialogData.user.email, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.email),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.email),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.email),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 5);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.email),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength),
- (gpointer) configDialogData.user.max);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.email, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.email);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Address:"));
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.user.address = gtk_entry_new_with_max_length(configDialogData.user.max);
- gtk_widget_set_usize (configDialogData.user.address, 220, 22);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.address),
- "key_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect_after (GTK_OBJECT (configDialogData.user.address),
- "button_press_event",
- GTK_SIGNAL_FUNC(RefreshUserStatusCallBack), (gpointer) NULL);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.address),
- "focus_in_event",
- GTK_SIGNAL_FUNC(CheckInUserDataLength), (gpointer) 6);
- gtk_signal_connect (GTK_OBJECT (configDialogData.user.address),
- "focus_out_event",
- GTK_SIGNAL_FUNC(CheckOutUserDataLength),
- (gpointer) configDialogData.user.max);
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.user.address, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.user.address);
-
-
- /*** Groups notebook ***/
- cg_names_option_frame = gtk_frame_new (_("Caller groups names"));
-
-
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (cg_names_option_frame), vbox);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (_("Groups"));
- gtk_notebook_append_page( GTK_NOTEBOOK (notebook), cg_names_option_frame, label);
-
- for ( i = 0; i < 6; i++)
- {
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 3);
- gtk_widget_show (hbox);
-
- g_snprintf (labelBuffer, 10, _("Group %d:"), i + 1);
- label = gtk_label_new (labelBuffer);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.groups[i] = gtk_entry_new_with_max_length (MAX_CALLER_GROUP_LENGTH);
- gtk_widget_set_usize (configDialogData.groups[i], 220, 22);
-
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.groups[i], FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.groups[i]);
- }
-
- /* Mail */
- mail_option_frame = gtk_frame_new (_("Mailbox"));
- gtk_widget_show (mail_option_frame);
-
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (mail_option_frame), vbox);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (_("Mail"));
- gtk_notebook_append_page( GTK_NOTEBOOK (notebook), mail_option_frame, label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Path to mailbox:"));
- gtk_box_pack_start(GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.mailbox = gtk_entry_new_with_max_length (MAILBOX_LENGTH - 1);
- gtk_widget_set_usize (configDialogData.mailbox, 220, 22);
-
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.mailbox, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.mailbox);
-
- /* Help */
- frame = gtk_frame_new (_("Help viewer"));
- gtk_widget_show (frame);
-
- vbox = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (frame), vbox);
- gtk_widget_show (vbox);
-
- label = gtk_label_new (_("Help"));
- gtk_notebook_append_page( GTK_NOTEBOOK (notebook), frame, label);
-
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 2);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Viewer:"));
- gtk_box_pack_start(GTK_BOX (hbox), label, FALSE, FALSE, 2);
- gtk_widget_show (label);
-
- configDialogData.help = gtk_entry_new_with_max_length (HTMLVIEWER_LENGTH - 1);
- gtk_widget_set_usize (configDialogData.help, 220, 22);
-
- gtk_box_pack_end (GTK_BOX (hbox), configDialogData.help, FALSE, FALSE, 2);
- gtk_widget_show (configDialogData.help);
-
-
- optionsDialogIsOpened = FALSE;
- return dialog;
-}
-
-
-static void TopLevelWindow (void)
-{
- GtkWidget *drawing_area;
- GdkBitmap *mask;
- GtkStyle *style;
- GdkGC *gc;
- struct sigaction act;
-
- GUI_MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_widget_realize (GUI_MainWindow);
-
- BackgroundPixmap = gdk_pixmap_create_from_xpm_d (GUI_MainWindow->window, &mask, &GUI_MainWindow->style->white, (gchar **) XPM_background);
-
- SMSPixmap = gdk_pixmap_create_from_xpm_d (GUI_MainWindow->window, &mask, &GUI_MainWindow->style->white, (gchar **) XPM_sms);
-
- AlarmPixmap = gdk_pixmap_create_from_xpm_d (GUI_MainWindow->window, &mask, &GUI_MainWindow->style->white, (gchar **) XPM_alarm);
-
- Pixmap = gdk_pixmap_create_from_xpm_d (GUI_MainWindow->window, &mask, &GUI_MainWindow->style->white, (gchar **) XPM_background);
-
-// gdk_window_set_icon_name (GUI_MainWindow->window, "XXX");
- style = gtk_widget_get_default_style ();
- gc = style->black_gc;
-
- /* Create the drawing area */
- drawing_area = gtk_drawing_area_new ();
-
- /* Signals used to handle backing pixmap */
- gtk_signal_connect (GTK_OBJECT (drawing_area), "expose_event",
- (GtkSignalFunc) ExposeEvent, NULL);
-
- gtk_signal_connect (GTK_OBJECT (drawing_area), "button_press_event",
- (GtkSignalFunc) ButtonPressEvent, NULL);
-
- gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK
- | GDK_BUTTON_PRESS_MASK);
-
- gtk_drawing_area_size (GTK_DRAWING_AREA (drawing_area), 261, 96);
- gtk_container_add (GTK_CONTAINER (GUI_MainWindow), drawing_area);
-
- gdk_draw_pixmap (drawing_area->window,
- drawing_area->style->fg_gc[GTK_WIDGET_STATE (drawing_area)],
- Pixmap,
- 0, 0,
- 0, 0,
- 261, 96);
-
- gtk_widget_shape_combine_mask (GUI_MainWindow, mask, 0, 0);
-
- gtk_signal_connect (GTK_OBJECT (GUI_MainWindow), "destroy",
- GTK_SIGNAL_FUNC (MainExit),
- NULL);
-
- Menu = CreateMenu ();
- OptionsDialog = CreateOptionsDialog ();
- AboutDialog = CreateAboutDialog ();
- GUI_CreateSMSWindow ();
- GUI_CreateContactsWindow ();
- GUI_CreateNetmonWindow ();
- GUI_CreateDTMFWindow ();
- GUI_CreateSpeedDialWindow ();
- GUI_CreateXkeybWindow ();
- GUI_CreateCalendarWindow ();
- GUI_CreateLogosWindow ();
- GUI_CreateDataWindow();
- GUI_CreateRingtonesWindow ();
- CreateErrorDialog (&errorDialog, GUI_MainWindow);
- CreateInfoDialog (&infoDialog, GUI_MainWindow);
- CreateInCallDialog ();
-
- act.sa_handler = RemoveZombie;
- sigemptyset (&(act.sa_mask));
- act.sa_flags = SA_NOCLDSTOP;
- sigaction (SIGCHLD, &act, NULL);
-
-#if defined(__svr4__) || defined(__FreeBSD__)
- act.sa_handler = SIG_IGN;
- sigemptyset (&(act.sa_mask));
- sigaction (SIGALRM, &act, NULL);
-#endif
-
- gtk_widget_show_all (GUI_MainWindow);
- GUI_Refresh ();
-
- GUI_InitPhoneMonitor ();
- pthread_create (&monitor_th, NULL, GUI_Connect, NULL);
-
- gtk_timeout_add (1000, (GtkFunction) Update, GUI_MainWindow);
-
- hiddenCallDialog = 0;
-}
-
-
-static void SplashScreen (void)
-{
- GtkWidget *pixmap, *fixed;
- GdkPixmap *gdk_pixmap;
- GdkBitmap *mask;
- GtkStyle *style;
- GdkGC *gc;
-
- SplashWindow = gtk_window_new (GTK_WINDOW_POPUP);
- gtk_widget_realize (SplashWindow);
-
- gtk_widget_set_usize (SplashWindow, 475, 160);
- gtk_window_position (GTK_WINDOW (SplashWindow), GTK_WIN_POS_CENTER);
-
- style = gtk_widget_get_default_style();
- gc = style->black_gc;
- gdk_pixmap = gdk_pixmap_create_from_xpm_d(SplashWindow->window, &mask,
- &style->bg[GTK_STATE_NORMAL],
- XPM_logo);
- pixmap = gtk_pixmap_new(gdk_pixmap, mask);
-
- fixed = gtk_fixed_new();
- gtk_widget_set_usize(fixed, 261, 96);
- gtk_fixed_put(GTK_FIXED(fixed), pixmap, 0, 0);
- gtk_container_add(GTK_CONTAINER (SplashWindow), fixed);
-
- gtk_widget_shape_combine_mask (SplashWindow, mask, 0, 0);
-
- gtk_widget_show_all (SplashWindow);
-}
-
-
-static gint RemoveSplash (GtkWidget *Win)
-{
- if (GTK_WIDGET_VISIBLE (SplashWindow))
- {
- gtk_timeout_remove (splashRemoveHandler);
- gtk_widget_hide (SplashWindow);
- gtk_widget_destroy (SplashWindow);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static void ReadConfig (void)
-{
- /* Read config file */
- if (CFG_ReadConfig(&xgnokiiConfig.model, &xgnokiiConfig.port,
- &xgnokiiConfig.initlength, &xgnokiiConfig.connection,
- &xgnokiiConfig.bindir, &xgnokiiConfig.synchronizetime,false) < 0) {
- exit(-1);
- }
-
-#ifndef WIN32
- if ((xgnokiiConfig.locale = getenv ("LC_ALL")) == NULL)
- if ((xgnokiiConfig.locale = getenv ("LC_MESSAGES")) == NULL)
- if ((xgnokiiConfig.locale = getenv ("LANG")) == NULL)
- xgnokiiConfig.locale = "POSIX";
-#endif
-
- GUI_ReadXConfig();
- max_phonebook_name_length = atoi (xgnokiiConfig.maxPhoneLen);
- max_phonebook_sim_name_length = atoi (xgnokiiConfig.maxSIMLen);
-
-#ifndef WIN32
- xgnokiiConfig.xgnokiidir = DefaultXGnokiiDir;
- xgnokiiConfig.xgnokiidocsdir = DefaultXGnokiiDocsDir;
-#endif
- if (CheckModel (N6110_Information, xgnokiiConfig.model, CurrentConnectionType)) {
- max_phonebook_number_length = N6110_MAX_PHONEBOOK_NUMBER_LENGTH;
- max_phonebook_sim_number_length = N6110_MAX_PHONEBOOK_NUMBER_LENGTH;
- }
- else
- {
- max_phonebook_number_length = max_phonebook_sim_number_length = GSM_MAX_PHONEBOOK_NUMBER_LENGTH;
- }
-
- xgnokiiConfig.callerGroups[0] = xgnokiiConfig.callerGroups[1] =
- xgnokiiConfig.callerGroups[2] = xgnokiiConfig.callerGroups[3] =
- xgnokiiConfig.callerGroups[4] = xgnokiiConfig.callerGroups[5] = NULL;
- xgnokiiConfig.smsSets = 0;
-}
-
-
-int main (int argc, char *argv[])
-{
-#ifdef USE_NLS
- textdomain("gnokii");
-#endif
-
- (void) gtk_set_locale ();
-
- gtk_init (&argc, &argv);
-
- /* Show the splash screen. */
-
- SplashScreen ();
-
- /* Remove it after a while. */
-
- ReadConfig ();
- TopLevelWindow ();
-
- splashRemoveHandler = gtk_timeout_add(5000, (GtkFunction) RemoveSplash, (gpointer) SplashWindow);
-
- gtk_main ();
-
- return(0);
-}