This commit was generated by cvs2svn to compensate for changes in r164,
[gnokii.git] / xgnokii / xgnokii_data.c
1 /*
2
3   X G N O K I I
4
5   A Linux/Unix GUI for Nokia mobile phones.
6   Copyright (C) 1999 Pavel Janík ml., Hugh Blemings
7   & Ján Derfiòák <ja@mail.upjs.sk>.
8
9   Released under the terms of the GNU GPL, see file COPYING for more details.
10
11   Last modification: Tues 13 June 2000
12   Modified by Chris Kemp
13
14 */
15
16 #include <stdio.h>
17 #include <gtk/gtk.h>
18 #include "misc.h"
19 #include "xgnokii_common.h"
20 #include "xgnokii.h"
21 #include "xgnokii_lowlevel.h"
22 #include "xgnokii_data.h"
23 #include "data/virtmodem.h"
24
25 static GtkWidget *GUI_DataWindow;
26 bool TerminateThread = false;
27 bool enabled = false;
28 static GtkWidget *label = NULL;
29
30 static inline void Help1 (GtkWidget *w, gpointer data)
31 {
32   gchar *indx = g_strdup_printf ("/help/%s/windows/data/index.html", xgnokiiConfig.locale);
33   Help (w, indx);
34   g_free (indx);
35 }
36
37 static void UpdateStatus (void)
38 {
39   gchar *buf;
40
41   if (!enabled)
42     buf = g_strdup_printf (_("Data calls are currently\nDisabled\n "));
43   else
44     buf = g_strdup_printf (_("Data calls are currently\nEnabled\n "));
45   
46   if (label != NULL)
47     gtk_label_set_text (GTK_LABEL (label), buf);
48
49   g_free (buf);
50 }
51
52
53 inline void GUI_ShowData (void)
54 {
55   if (!phoneMonitor.supported & PM_DATA)
56     return;
57     
58   if (TerminateThread)
59   { 
60 #if 0
61     VM_Terminate ();
62 #endif
63     enabled = false;
64     TerminateThread = false;
65   }
66   UpdateStatus ();
67   
68   gtk_widget_show (GUI_DataWindow);
69 }
70
71
72 inline void GUI_HideData(void)
73 {
74   gtk_widget_hide (GUI_DataWindow);
75 }
76
77 static inline void DisableData (GtkWidget *widget,
78                                 gpointer   data )
79 {
80 #if 0
81   VM_Terminate ();
82 #endif
83   enabled = false;
84   UpdateStatus ();
85 }
86
87
88 static inline void EnableData (GtkWidget *widget,
89                                gpointer   data)
90 {
91
92   TerminateThread = false;
93 #if 0
94   VM_Initialise (xgnokiiConfig.model,  xgnokiiConfig.port, 
95                  0, 0, xgnokiiConfig.bindir, false, false);
96 #endif
97   enabled = true;
98   UpdateStatus ();
99 }
100
101
102 void GUI_CreateDataWindow (void)
103 {
104   GtkWidget *button, *hbox, *vbox;
105   
106   GUI_DataWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); 
107   gtk_window_set_wmclass (GTK_WINDOW (GUI_DataWindow), "DataWindow", "Xgnokii");
108   gtk_window_set_title (GTK_WINDOW (GUI_DataWindow), _("Virtual Modem"));
109   gtk_container_set_border_width (GTK_CONTAINER (GUI_DataWindow), 10);
110   gtk_signal_connect (GTK_OBJECT (GUI_DataWindow), "delete_event",
111                       GTK_SIGNAL_FUNC (DeleteEvent), NULL);
112
113   vbox = gtk_vbox_new (FALSE, 1);
114   gtk_container_border_width (GTK_CONTAINER (vbox), 1);
115   gtk_container_add (GTK_CONTAINER (GUI_DataWindow), vbox);
116   gtk_widget_show (vbox);
117
118   label = gtk_label_new ("");
119   gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
120   gtk_widget_show (label);
121
122   hbox = gtk_hbox_new (FALSE, 0);
123   gtk_container_add (GTK_CONTAINER (vbox), hbox);
124   gtk_widget_show (hbox);
125
126   button = gtk_button_new_with_label (_("Enable"));
127   gtk_box_pack_start (GTK_BOX (hbox),
128                       button, TRUE, FALSE, 5);
129   gtk_signal_connect (GTK_OBJECT (button), "clicked",
130                       GTK_SIGNAL_FUNC (EnableData), NULL);
131   gtk_widget_show (button);
132   button = gtk_button_new_with_label (_("Disable"));
133   gtk_box_pack_start (GTK_BOX (hbox),
134                       button, TRUE, FALSE, 5);
135   gtk_signal_connect (GTK_OBJECT (button), "clicked",
136                       GTK_SIGNAL_FUNC (DisableData), NULL);
137   GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
138   gtk_widget_grab_default (button);
139   gtk_widget_show (button);
140 }