X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=xgnokii%2Fxgnokii.c;h=233ebd6af2a97e218e1acdf078532732c6accd07;hp=ecfe668ff0e35248cfa73610a0e0e41c9e1c11fa;hb=2656067281b2441a179b8492b95ee8992aa0225c;hpb=2c2798de53319dcec0435cd651e3e1922bdd6e86 diff --git a/xgnokii/xgnokii.c b/xgnokii/xgnokii.c index ecfe668..233ebd6 100644 --- a/xgnokii/xgnokii.c +++ b/xgnokii/xgnokii.c @@ -1,12 +1,8 @@ /* - $Id$ - X G N O K I I A Linux/Unix GUI for Nokia mobile phones. - Copyright (C) 1999 Pavel Janík ml., Hugh Blemings - & Ján Derfiòák . Released under the terms of the GNU GPL, see file COPYING for more details. @@ -37,11 +33,7 @@ #include "misc.h" #include "gsm-common.h" #include "gsm-api.h" -#include "cfgreader.h" -#include "phones/nk7110.h" -#include "phones/nk6100.h" -#include "phones/nk3110.h" -#include "phones/nk2110.h" +#include "files/cfgreader.h" #include "xgnokii.h" #include "xgnokii_common.h" #include "xgnokii_lowlevel.h" @@ -53,8 +45,10 @@ #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" @@ -111,11 +105,15 @@ 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; @@ -132,7 +130,7 @@ typedef struct { GtkWidget *model; GtkWidget *init; GtkWidget *bindir; - GtkWidget *serial, *infrared, *irda; + GtkWidget *serial, *infrared, *mbus; } ConnectionWidgets; typedef struct { @@ -147,9 +145,10 @@ typedef struct { typedef struct { GtkWidget *set; GtkWidget *number; + GtkWidget *defaultrecipient; GtkWidget *format; GtkWidget *validity; - SMS_MessageCenter smsSetting[MAX_SMS_CENTER]; + GSM_MessageCenter smsSetting[MAX_SMS_CENTER]; } SMSWidgets; typedef struct { @@ -177,16 +176,26 @@ static struct ConfigDialogData GtkWidget *help; } configDialogData; -static SMS_MessageCenter tempMessageSettings; +static GSM_MessageCenter tempMessageSettings; static inline void Help1 (GtkWidget *w, gpointer data) { - gchar *indx = g_strdup_printf ("/help/%s/index.html", xgnokiiConfig.locale); + 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) { @@ -208,7 +217,7 @@ void GUI_InitCallerGroupsInf (void) xgnokiiConfig.callerGroups[4] = g_strndup( _("Other"), MAX_CALLER_GROUP_LENGTH); xgnokiiConfig.callerGroups[5] = g_strndup( _("No group"), MAX_CALLER_GROUP_LENGTH); - if (phoneMonitor.supported & PM_CALLERGROUP) + if (GetModelFeature(FN_CALLERGROUPS)!=0) for (i = 0; i < 5; i++) { cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup)); @@ -245,7 +254,6 @@ static inline void DrawBackground (GtkWidget *data) 261, 96); } - int network_levels[] = { 152, 69, 11, 3, 138, 69, 11, 3, @@ -282,7 +290,6 @@ int battery_levels[] = { 92, 69, 11, 6 }; - static inline void DrawBattery (GtkWidget *data, int batterylevel) { int i; @@ -304,7 +311,6 @@ static inline void DrawBattery (GtkWidget *data, int batterylevel) } } - static inline void DrawSMS (GtkWidget *data) { gdk_draw_pixmap (Pixmap, @@ -326,12 +332,11 @@ static inline void DrawAlarm (GtkWidget *data) 9, 9); } - static inline void DrawText (GtkWidget *data, int at, char *text) { static GdkFont *Font; - Font = gdk_font_load ("-misc-fixed-medium-r-*-*-*-90-*-*-*-*-iso8859-*"); + Font = gdk_font_load ("-misc-fixed-medium-r-*-*-*-90-*-*-*-*-*-*"); gdk_draw_string (Pixmap, Font, GTK_WIDGET(data)->style->fg_gc[GTK_STATE_NORMAL], @@ -411,13 +416,13 @@ static gint Update (gpointer data) DrawBackground (data); - DrawNetwork (data, phoneMonitor.rfLevel); + DrawNetwork(data, phoneMonitor.rfLevel); - DrawBattery (data, phoneMonitor.batteryLevel); + DrawBattery(data, phoneMonitor.batteryLevel); if (phoneMonitor.alarm) DrawAlarm (data); - + if (phoneMonitor.working) DrawText (data, 25, phoneMonitor.working); @@ -528,7 +533,7 @@ static void ParseSMSCenters (void) for (i = 0; i < xgnokiiConfig.smsSets; i++) { - gchar *row[4]; + gchar *row[5]; if (*(configDialogData.sms.smsSetting[i].Name) == '\0') row[0] = g_strdup_printf (_("Set %d"), i + 1); else @@ -538,32 +543,32 @@ static void ParseSMSCenters (void) switch (configDialogData.sms.smsSetting[i].Format) { - case SMS_FText: + case GSMF_Text: row[2] = g_strdup (_("Text")); break; - case SMS_FPaging: + case GSMF_Paging: row[2] = g_strdup (_("Paging")); break; - case SMS_FFax: + case GSMF_Fax: row[2] = g_strdup (_("Fax")); break; - case SMS_FEmail: - case SMS_FUCI: + case GSMF_Email: + case GSMF_UCI: row[2] = g_strdup (_("E-Mail")); break; - case SMS_FERMES: + case GSMF_ERMES: row[2] = g_strdup (_("ERMES")); break; - case SMS_FX400: + case GSMF_X400: row[2] = g_strdup (_("X.400")); break; - case SMS_FVoice: + case GSMF_Voice: row[2] = g_strdup (_("Voice")); break; @@ -574,27 +579,27 @@ static void ParseSMSCenters (void) switch (configDialogData.sms.smsSetting[i].Validity) { - case SMS_V1H: + case GSMV_1_Hour: row[3] = g_strdup (_("1 h")); break; - case SMS_V6H: + case GSMV_6_Hours: row[3] = g_strdup (_("6 h")); break; - case SMS_V24H: + case GSMV_24_Hours: row[3] = g_strdup (_("24 h")); break; - case SMS_V72H: + case GSMV_72_Hours: row[3] = g_strdup (_("72 h")); break; - case SMS_V1W: + case GSMV_1_Week: row[3] = g_strdup (_("1 week")); break; - case SMS_VMax: + case GSMV_Max_Time: row[3] = g_strdup (_("Max. time")); break; @@ -603,9 +608,11 @@ static void ParseSMSCenters (void) break; } + row[4] = g_strdup (configDialogData.sms.smsSetting[i].DefaultRecipient); + gtk_clist_append( GTK_CLIST (SMSClist), row); - for (j = 0; j < 4; j++) + for (j = 0; j < 5; j++) g_free (row[j]); } @@ -695,13 +702,14 @@ void GUI_ShowOptions (void) gtk_entry_set_text (GTK_ENTRY (configDialogData.connection.bindir), xgnokiiConfig.bindir); - if(!strcmp(xgnokiiConfig.connection, "serial")) { + if (!strcmp(xgnokiiConfig.connection, "fbus")) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.connection.serial), TRUE); - } else if(!strcmp(xgnokiiConfig.connection, "infrared")) { + + if (!strcmp(xgnokiiConfig.connection, "infrared")) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.connection.infrared), TRUE); - } else { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (configDialogData.connection.irda), 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); @@ -738,7 +746,7 @@ void GUI_ShowOptions (void) else { xgnokiiConfig.alarmSupported = TRUE; - if (alarm->time.AlarmEnabled) + 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); @@ -748,7 +756,7 @@ void GUI_ShowOptions (void) g_free (alarm); /* SMS */ - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) { gtk_widget_show (sms_option_frame); GUI_InitSMSSettings (); @@ -758,7 +766,7 @@ void GUI_ShowOptions (void) /* BUSINESS CARD */ - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) { gtk_widget_show (user_option_frame); @@ -784,7 +792,7 @@ void GUI_ShowOptions (void) /* Groups */ - if (phoneMonitor.supported & PM_CALLERGROUP) + if (GetModelFeature(FN_CALLERGROUPS)!=0) { gtk_widget_show (cg_names_option_frame); GUI_InitCallerGroupsInf (); @@ -795,7 +803,7 @@ void GUI_ShowOptions (void) gtk_widget_hide (cg_names_option_frame); /* Mail */ - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) { gtk_widget_show (mail_option_frame); gtk_entry_set_text (GTK_ENTRY (configDialogData.mailbox), @@ -808,6 +816,9 @@ void GUI_ShowOptions (void) 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); } @@ -833,6 +844,10 @@ static void MainExit (void) e->data = NULL; GUI_InsertEvent (e); pthread_join (monitor_th, NULL); + + //need to correctly close connection + GSM->Terminate(); + gtk_main_quit(); } @@ -841,37 +856,37 @@ static void ShowMenu (GdkEventButton *event) { GdkEventButton *bevent = (GdkEventButton *) event; - if (phoneMonitor.supported & PM_KEYBOARD) + if (GetModelFeature(FN_KEYPRESS)!=0) gtk_widget_show (xkeyb_menu_item); else gtk_widget_hide (xkeyb_menu_item); - if (phoneMonitor.supported & PM_NETMONITOR) + if (GetModelFeature(FN_NETMONITOR)!=0) gtk_widget_show (netmon_menu_item); else gtk_widget_hide (netmon_menu_item); - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) gtk_widget_show (sms_menu_item); else gtk_widget_hide (sms_menu_item); - if (phoneMonitor.supported & PM_CALENDAR) + if (GetModelFeature(FN_CALENDAR)!=0) gtk_widget_show (calendar_menu_item); else gtk_widget_hide (calendar_menu_item); - if (phoneMonitor.supported & PM_DTMF) + if (GetModelFeature(FN_DTMF)!=0) gtk_widget_show (dtmf_menu_item); else gtk_widget_hide (dtmf_menu_item); - if (phoneMonitor.supported & PM_SPEEDDIAL) + if (GetModelFeature(FN_SPEEDDIAL)!=0) gtk_widget_show (speedDial_menu_item); else gtk_widget_hide (speedDial_menu_item); - if (phoneMonitor.supported & PM_DATA) + if (GetModelFeature(FN_DATACALLS)!=0) gtk_widget_show (data_menu_item); else gtk_widget_hide (data_menu_item); @@ -905,7 +920,7 @@ static gint ButtonPressEvent (GtkWidget *widget, GdkEventButton *event) else if (event->x >= 190 && event->x <= 210 && event->y >= 70 && event->y <= 85) { - if (!phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)==0) phoneMonitor.working = _("SMS not supported!"); else GUI_ShowSMS (); @@ -913,7 +928,7 @@ static gint ButtonPressEvent (GtkWidget *widget, GdkEventButton *event) else if (event->x >= 235 && event->x <= 248 && event->y >= 27 && event->y <= 75) { - if (!phoneMonitor.supported & PM_CALENDAR) + if (GetModelFeature(FN_CALENDAR)==0) phoneMonitor.working = _("Calendar not supported!"); else GUI_ShowCalendar (); @@ -964,7 +979,7 @@ static void OptionsApplyCallback (GtkWidget *widget, gpointer data ) } /* SMS */ - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) { for (i = 0; i < xgnokiiConfig.smsSets; i++) xgnokiiConfig.smsSetting[i] = configDialogData.sms.smsSetting[i]; @@ -972,7 +987,7 @@ static void OptionsApplyCallback (GtkWidget *widget, gpointer data ) } /* BUSINESS CARD */ - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) { g_free(xgnokiiConfig.user.name); xgnokiiConfig.user.name = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.user.name))); @@ -991,7 +1006,7 @@ static void OptionsApplyCallback (GtkWidget *widget, gpointer data ) } /* GROUPS */ - if (phoneMonitor.supported & PM_CALLERGROUP) + if (GetModelFeature(FN_CALLERGROUPS)!=0) { for ( i = 0; i < 6; i++) { @@ -1005,7 +1020,7 @@ static void OptionsApplyCallback (GtkWidget *widget, gpointer data ) } /* Mail */ - if (phoneMonitor.supported & PM_SMS) + if (GetModelFeature(FN_SMS)!=0) { g_free(xgnokiiConfig.mailbox); xgnokiiConfig.mailbox = g_strdup (gtk_entry_get_text(GTK_ENTRY (configDialogData.mailbox))); @@ -1037,7 +1052,7 @@ static void OptionsSaveCallback (GtkWidget *widget, gpointer data ) GUI_InsertEvent (e); } - if (phoneMonitor.supported & PM_CALLERGROUP) + if (GetModelFeature(FN_CALLERGROUPS)!=0) { cg = (D_CallerGroup *) g_malloc (sizeof (D_CallerGroup)); cg->number = 0; @@ -1135,7 +1150,13 @@ static GtkWidget *CreateMenu (void) 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", @@ -1195,7 +1216,7 @@ static GtkWidget *CreateAboutDialog (void) { GtkWidget *dialog; GtkWidget *button, *hbox, *label; - gchar buf[2000]; + gchar buf[200]; dialog = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (dialog), _("About")); @@ -1215,12 +1236,8 @@ static GtkWidget *CreateAboutDialog (void) gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox); gtk_widget_show (hbox); - g_snprintf (buf, 2000, _("xgnokii version: %s\ngnokii version: %s\n\n\ -Copyright (C) 1999,2000 Pavel Janík ml.,\nHugh Blemings, Jan Derfinak and others\n\ -xgnokii is free software, covered by the GNU General Public License, and you are\n\ -welcome to change it and/or distribute copies of it under certain conditions.\n\ -There is absolutely no waranty for xgnokii. See GPL for details.\n"), - XVERSION, VERSION); + 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); @@ -1346,6 +1363,13 @@ static void OkEditSMSSetDialog (GtkWidget *w, gpointer data) 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; @@ -1372,7 +1396,7 @@ static inline void EditSMSSetDialogClick (GtkWidget *clist, static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data) { static GtkWidget *dialog = NULL; - GtkWidget *button, *label, *hbox, *menu, *item; + GtkWidget *button, *label, *label2, *hbox, *hbox2, *menu, *item; if (GTK_CLIST (SMSClist)->selection == NULL) return; @@ -1429,10 +1453,25 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data) 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); @@ -1444,28 +1483,28 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data) item = gtk_menu_item_new_with_label (_("Text")); gtk_signal_connect (GTK_OBJECT (item), "activate", GTK_SIGNAL_FUNC(SetFormat), - (gpointer) SMS_FText); + (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) SMS_FFax); + (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) SMS_FPaging); + (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) SMS_FEmail); + (gpointer) GSMF_Email); gtk_widget_show (item); gtk_menu_append (GTK_MENU (menu), item); @@ -1488,42 +1527,42 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data) item = gtk_menu_item_new_with_label (_("Max. Time")); gtk_signal_connect (GTK_OBJECT (item), "activate", GTK_SIGNAL_FUNC(SetValidity), - (gpointer) SMS_VMax); + (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) SMS_V1H); + (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) SMS_V6H); + (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) SMS_V24H); + (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) SMS_V72H); + (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) SMS_V1W); + (gpointer) GSMV_1_Week); gtk_widget_show (item); gtk_menu_append (GTK_MENU (menu), item); @@ -1540,25 +1579,29 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data) 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 SMS_FText: + case GSMF_Text: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format), 0); break; - case SMS_FPaging: + case GSMF_Paging: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format), 2); break; - case SMS_FFax: + case GSMF_Fax: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format), 1); break; - case SMS_FEmail: + case GSMF_Email: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.format), 3); break; @@ -1571,32 +1614,32 @@ static void ShowEditSMSSetDialog (GtkWidget *w, gpointer data) switch (configDialogData.sms.smsSetting [GPOINTER_TO_INT(GTK_CLIST (SMSClist)->selection->data)].Validity) { - case SMS_V1H: + case GSMV_1_Hour: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity), 1); break; - case SMS_V6H: + case GSMV_6_Hours: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity), 2); break; - case SMS_V24H: + case GSMV_24_Hours: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity), 3); break; - case SMS_V72H: + case GSMV_72_Hours: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity), 4); break; - case SMS_V1W: + case GSMV_1_Week: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity), 5); break; - case SMS_VMax: + case GSMV_Max_Time: gtk_option_menu_set_history (GTK_OPTION_MENU (configDialogData.sms.validity), 0); break; @@ -1622,7 +1665,7 @@ static GtkWidget *CreateOptionsDialog (void) GtkWidget *button, *hbox, *vbox, *label, *notebook, *frame, *clistScrolledWindow; register gint i; GtkAdjustment *adj; - gchar *titles[4] = { _("Set's name"), _("Center number"), _("Format"), _("Validity")}; + gchar *titles[5] = { _("Set's name"), _("Center number"), _("Format"), _("Validity"), _("Default recipient")}; dialog = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (dialog), _("Options")); @@ -1736,22 +1779,22 @@ static GtkWidget *CreateOptionsDialog (void) gtk_widget_show (hbox); label = gtk_label_new (_("Connection:")); - gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 2); + 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)), _("serial")); + 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.irda = gtk_radio_button_new_with_label ( - gtk_radio_button_group (GTK_RADIO_BUTTON (configDialogData.connection.infrared)), _("irda")); - gtk_box_pack_end (GTK_BOX (hbox), configDialogData.connection.irda, TRUE, FALSE, 2); - gtk_widget_show (configDialogData.connection.irda); + + 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")); @@ -1828,7 +1871,7 @@ static GtkWidget *CreateOptionsDialog (void) gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_widget_show (hbox); - label = gtk_label_new (_("Names length:")); + label = gtk_label_new ("Names length:"); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2); gtk_widget_show (label); @@ -1836,7 +1879,7 @@ static GtkWidget *CreateOptionsDialog (void) gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_widget_show (hbox); - label = gtk_label_new (_("SIM:")); + label = gtk_label_new ("SIM:"); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2); gtk_widget_show (label); @@ -1854,7 +1897,7 @@ static GtkWidget *CreateOptionsDialog (void) gtk_box_pack_end (GTK_BOX (hbox), configDialogData.phone.phoneNameLen, FALSE, FALSE, 2); gtk_widget_show (configDialogData.phone.phoneNameLen); - label = gtk_label_new (_("Phone:")); + label = gtk_label_new ("Phone:"); gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 2); gtk_widget_show (label); @@ -1907,7 +1950,7 @@ static GtkWidget *CreateOptionsDialog (void) label = gtk_label_new (_("SMS")); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), sms_option_frame, label); - SMSClist = gtk_clist_new_with_titles (4, titles); + 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); @@ -1916,6 +1959,7 @@ static GtkWidget *CreateOptionsDialog (void) 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); @@ -1926,6 +1970,7 @@ static GtkWidget *CreateOptionsDialog (void) TRUE, TRUE, 10); gtk_widget_show (SMSClist); + gtk_widget_show (clistScrolledWindow); hbox = gtk_hbox_new (FALSE, 0); @@ -2241,8 +2286,6 @@ static void TopLevelWindow (void) struct sigaction act; GUI_MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_wmclass (GTK_WINDOW (GUI_MainWindow), "MainWindow", "Xgnokii"); -/* gtk_window_set_decorated (GTK_WINDOW (GUI_MainWindow), GTK_FALSE); */ gtk_widget_realize (GUI_MainWindow); BackgroundPixmap = gdk_pixmap_create_from_xpm_d (GUI_MainWindow->window, &mask, &GUI_MainWindow->style->white, (gchar **) XPM_background); @@ -2298,6 +2341,7 @@ static void TopLevelWindow (void) GUI_CreateCalendarWindow (); GUI_CreateLogosWindow (); GUI_CreateDataWindow(); + GUI_CreateRingtonesWindow (); CreateErrorDialog (&errorDialog, GUI_MainWindow); CreateInfoDialog (&infoDialog, GUI_MainWindow); CreateInCallDialog (); @@ -2307,7 +2351,7 @@ static void TopLevelWindow (void) act.sa_flags = SA_NOCLDSTOP; sigaction (SIGCHLD, &act, NULL); -#if __unices__ +#if defined(__svr4__) || defined(__FreeBSD__) act.sa_handler = SIG_IGN; sigemptyset (&(act.sa_mask)); sigaction (SIGALRM, &act, NULL); @@ -2372,29 +2416,36 @@ static gint RemoveSplash (GtkWidget *Win) static void ReadConfig (void) { -#ifdef WIN32 - xgnokiiConfig.locale = ""; -#else + /* 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 - if (readconfig(&xgnokiiConfig.model, &xgnokiiConfig.port, - &xgnokiiConfig.initlength, &xgnokiiConfig.connection, - &xgnokiiConfig.bindir) < 0) - { - exit(-1); - } - + 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 - max_phonebook_number_length = max_phonebook_sim_number_length = GSM_MAX_PHONEBOOK_NUMBER_LENGTH; + 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] = @@ -2426,5 +2477,5 @@ int main (int argc, char *argv[]) gtk_main (); - return (0); + return(0); }