r1843 - trunk/src/target/OM-2007/applications/openmoko-dialer/src
thomas at sita.openmoko.org
thomas at sita.openmoko.org
Thu Apr 26 14:16:51 CEST 2007
Author: thomas
Date: 2007-04-26 14:16:43 +0200 (Thu, 26 Apr 2007)
New Revision: 1843
Added:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-dialer.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-dialer.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-outgoing.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-outgoing.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-pin.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-pin.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.h
Removed:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.h
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.c
trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.h
Modified:
trunk/src/target/OM-2007/applications/openmoko-dialer/src/Makefile.am
Log:
* Reduce filename lengths
Modified: trunk/src/target/OM-2007/applications/openmoko-dialer/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/Makefile.am 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/Makefile.am 2007-04-26 12:16:43 UTC (rev 1843)
@@ -6,7 +6,7 @@
openmoko_dialer_SOURCES = \
dialer-callbacks-connection.c\
-openmoko-dialer-main.c\
+dialer-main.c\
moko-digit-button.c\
moko-dialer-panel.c\
moko-dialer-textview.c\
@@ -15,12 +15,12 @@
history.c\
contacts.c\
common.c\
-openmoko-dialer-window-history.c\
-openmoko-dialer-window-dialer.c\
-openmoko-dialer-window-outgoing.c\
-openmoko-dialer-window-incoming.c\
-openmoko-dialer-window-talking.c\
-openmoko-dialer-window-pin.c\
+dialer-window-history.c\
+dialer-window-dialer.c\
+dialer-window-outgoing.c\
+dialer-window-incoming.c\
+dialer-window-talking.c\
+dialer-window-pin.c\
moko-dialer-status.c\
alsa.c
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,218 @@
+/* openmoko-dialer.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+#include <libmokoui/moko-application.h>
+#include <libmokoui/moko-finger-tool-box.h>
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-finger-wheel.h>
+
+#include <libmokogsmd/moko-gsmd-connection.h>
+
+
+#include <gtk/gtk.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#include "contacts.h"
+#include "history.h"
+#include "error.h"
+#include "errno.h"
+#include "dialer-main.h"
+#include "dialer-window-dialer.h"
+#include "dialer-window-talking.h"
+#include "dialer-window-outgoing.h"
+#include "dialer-window-incoming.h"
+#include "dialer-window-pin.h"
+#include "dialer-window-history.h"
+
+#include "dialer-callbacks-connection.h"
+
+MokoDialerData *p_dialer_data = 0;
+MokoDialerData *
+moko_get_app_data ()
+{
+ return p_dialer_data;
+}
+
+static void
+handle_sigusr1 (int value)
+{
+ DBG_ENTER ();
+ MokoDialerData *p_data = moko_get_app_data ();
+ if (!p_data)
+ return;
+ GtkWidget *mainwindow = p_data->window_present;
+ if (mainwindow == 0)
+ mainwindow = p_data->window_dialer;
+
+ if (mainwindow == NULL)
+ {
+ return;
+ }
+ gtk_widget_show_all (mainwindow);
+ gtk_window_present (GTK_WINDOW (mainwindow));
+ DBG_TRACE ();
+ signal (SIGUSR1, handle_sigusr1);
+ DBG_LEAVE ();
+}
+
+static pid_t
+testlock (char *fname)
+{
+ int fd;
+ struct flock fl;
+
+ fd = open (fname, O_WRONLY, S_IWUSR);
+ if (fd < 0)
+ {
+ if (errno == ENOENT)
+ {
+ return 0;
+ }
+ else
+ {
+ perror ("Test lock open file");
+ return -1;
+ }
+ }
+
+ fl.l_type = F_WRLCK;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+
+ if (fcntl (fd, F_GETLK, &fl) < 0)
+ {
+ close (fd);
+ return -1;
+ }
+ close (fd);
+
+ if (fl.l_type == F_UNLCK)
+ return 0;
+
+ return fl.l_pid;
+}
+
+static void
+setlock (char *fname)
+{
+ int fd;
+ struct flock fl;
+
+ fd = open (fname, O_WRONLY | O_CREAT, S_IWUSR);
+ if (fd < 0)
+ {
+ perror ("Set lock open file");
+ return;
+ }
+
+ fl.l_type = F_WRLCK;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 0;
+
+ if (fcntl (fd, F_SETLK, &fl) < 0)
+ {
+ perror ("Lock file");
+ close (fd);
+ }
+}
+
+static gboolean show_gui;
+
+static GOptionEntry entries[] = {
+ {"show-gui", 's', 0, G_OPTION_ARG_NONE, &show_gui,
+ "Show the GUI at startup (default off)", "N"},
+ {NULL}
+};
+
+
+int
+main (int argc, char **argv)
+{
+ pid_t lockapp;
+
+ /* Initialize GTK+ */
+ gtk_init (&argc, &argv);
+
+ if (argc != 1)
+ {
+ /* Add init code. */
+ GError *error = NULL;
+ GOptionContext *context = g_option_context_new ("");
+
+ g_option_context_add_main_entries (context, entries, NULL);
+ g_option_context_add_group (context, gtk_get_option_group (TRUE));
+ g_option_context_parse (context, &argc, &argv, &error);
+
+ g_option_context_free (context);
+ }
+ //FIXME: the following lines to enable unique instance will be changed.
+ lockapp = testlock ("/tmp/dialer.lock");
+ if (lockapp > 0)
+ {
+ kill (lockapp, SIGUSR1);
+ return 0;
+ }
+ setlock ("/tmp/dialer.lock");
+
+
+ p_dialer_data = g_new0 (MokoDialerData, 1);
+
+ //init application data
+ contact_init_contact_data (&(p_dialer_data->g_contactlist));
+ history_init_history_data (&(p_dialer_data->g_historylist));
+
+
+ /* application object */
+// MokoApplication* app = MOKO_APPLICATION(moko_application_get_instance());
+ g_set_application_name ("OpenMoko Dialer");
+
+ /* Set up gsmd connection object */
+ MokoGsmdConnection* conn = p_dialer_data->connection = moko_gsmd_connection_new ();
+ g_signal_connect (G_OBJECT (conn), "network-registration", (GCallback) network_registration_cb, NULL);
+ g_signal_connect (G_OBJECT (conn), "incoming-call", (GCallback) incoming_call_cb, NULL);
+ g_signal_connect (G_OBJECT (conn), "incoming-clip", (GCallback) incoming_clip_cb, NULL);
+
+ signal (SIGUSR1, handle_sigusr1);
+
+ //init the dialer window
+ window_dialer_init (p_dialer_data);
+ window_incoming_init (p_dialer_data);
+ window_pin_init (p_dialer_data);
+ window_outgoing_init (p_dialer_data);
+ window_history_init (p_dialer_data);
+ DBG_MSG
+ ("\nusage: \"dialer\" will not show any GUI initialy until you reactivate the app using another \"openmoko-dialer\" command");
+
+ if (show_gui)
+ {
+ handle_sigusr1 (SIGUSR1);
+ }
+
+ gtk_main ();
+
+
+//release everything
+ contact_release_contact_list (&(p_dialer_data->g_contactlist));
+
+ history_release_history_list (&(p_dialer_data->g_historylist));
+ return 0;
+}
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.h)
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-dialer.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-dialer.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,476 @@
+/* openmoko-dialer-window-dialer.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+
+#include <libmokoui/moko-finger-tool-box.h>
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-finger-wheel.h>
+#include <libmokoui/moko-pixmap-button.h>
+
+#include <gtk/gtkalignment.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkvbox.h>
+
+#include "common.h"
+#include "contacts.h"
+#include "dialer-main.h"
+#include "dialer-window-dialer.h"
+#include "dialer-window-history.h"
+#include "dialer-window-outgoing.h"
+
+void
+cb_delete_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ g_debug ("delete button clicked");
+
+ if (moko_dialer_autolist_has_selected (appdata->moko_dialer_autolist))
+ {
+//first of all, we un-select the selection.
+ moko_dialer_autolist_set_select (appdata->moko_dialer_autolist, -1);
+
+//fill the textview with ""
+ moko_dialer_textview_fill_it (appdata->moko_dialer_text_view, "");
+//moko_dialer_textview_set_color(moko_dialer_textview);
+ }
+ else
+ {
+ moko_dialer_textview_delete (appdata->moko_dialer_text_view);
+//refresh the autolist,but do not automaticall fill the textview
+ gchar *codesinput = 0;
+ codesinput =
+ g_strdup (moko_dialer_textview_get_input
+ (appdata->moko_dialer_text_view, FALSE));
+
+ if (codesinput)
+ {
+ DBG_MESSAGE ("input %s", codesinput);
+ if (g_utf8_strlen (codesinput, -1) >= MOKO_DIALER_MIN_SENSATIVE_LEN)
+ {
+ moko_dialer_autolist_refresh_by_string (appdata->
+ moko_dialer_autolist,
+ codesinput, FALSE);
+ moko_dialer_textview_set_color (appdata->moko_dialer_text_view);
+ }
+ else
+ moko_dialer_autolist_hide_all_tips (appdata->moko_dialer_autolist);
+ g_free (codesinput);
+ }
+ else
+ {
+ DBG_WARN ("No input now.");
+ }
+
+
+ }
+
+}
+
+void
+cb_history_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ if (!appdata->window_history)
+ window_history_init (appdata);
+
+//start dialling.
+ gtk_widget_show_all (appdata->window_history);
+
+}
+
+void
+window_dialer_dial_out (MokoDialerData * appdata)
+{
+ gchar *codesinput;
+ //get the input digits
+ codesinput =
+ g_strdup (moko_dialer_textview_get_input
+ (appdata->moko_dialer_text_view, FALSE));
+ DBG_TRACE ();
+ if ((!codesinput)
+ || ((codesinput != NULL) && g_utf8_strlen (codesinput, -1)) < 1)
+ {
+ //user didn't input anything, maybe it's a redial, so we just insert the last dialed number and return this time.
+ if (g_utf8_strlen (appdata->g_state.lastnumber, -1) > 0)
+ {
+ moko_dialer_textview_insert (appdata->moko_dialer_text_view,
+ appdata->g_state.lastnumber);
+ moko_dialer_autolist_refresh_by_string (appdata->
+ moko_dialer_autolist,
+ appdata->g_state.lastnumber,
+ TRUE);
+ }
+ return;
+ }
+//empty the textview
+ moko_dialer_textview_empty (appdata->moko_dialer_text_view);
+
+//and we set the selected autolist to be No
+ moko_dialer_autolist_set_select (appdata->moko_dialer_autolist, -1);
+ moko_dialer_autolist_hide_all_tips (appdata->moko_dialer_autolist);
+
+//got the number;//FIXME:which function should I use if not g_strdup. & strcpy.
+ //strcpy(appdata->g_peer_info.number, codesinput );
+ g_stpcpy (appdata->g_peer_info.number, codesinput);
+
+//retrieve the contact information if any.
+ contact_get_peer_info_from_number (appdata->g_contactlist.contacts,
+ &(appdata->g_peer_info));
+// contact_get_peer_info_from_number
+
+/*
+if(!appdata->window_outgoing)
+ window_incoming_init(appdata);
+
+//transfer the contact info
+window_incoming_prepare(appdata);
+
+//start dialling.
+gtk_widget_show(appdata->window_incoming);
+*/
+
+//transfer the contact info
+ window_outgoing_prepare (appdata);
+
+//start dialling.
+ gtk_widget_show_all (appdata->window_outgoing);
+
+ g_free (codesinput);
+
+}
+
+void
+cb_dialer_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ window_dialer_dial_out (appdata);
+}
+
+
+
+void
+on_dialer_autolist_user_selected (GtkWidget * widget, gpointer para_pointer,
+ gpointer user_data)
+{
+ gchar *codesinput;
+ gint lenstring = 0;
+ gint leninput = 0;
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
+ DIALER_READY_CONTACT *ready_contact = (DIALER_READY_CONTACT *) para_pointer;
+ codesinput = moko_dialer_textview_get_input (moko_dialer_text_view, FALSE);
+ if (ready_contact->p_entry->content)
+ lenstring = g_utf8_strlen (ready_contact->p_entry->content, -1);
+ else
+ lenstring = 0;
+
+ if (codesinput)
+ leninput = g_utf8_strlen (codesinput, -1);
+ else
+ leninput = 0;
+ if (lenstring > leninput)
+ {
+
+ moko_dialer_textview_fill_it (moko_dialer_text_view,
+ &(ready_contact->p_entry->
+ content[leninput]));
+
+ }
+ else
+ moko_dialer_textview_fill_it (moko_dialer_text_view, "");
+ g_free (codesinput);
+
+}
+
+void
+on_dialer_autolist_user_confirmed (GtkWidget * widget, gpointer para_pointer,
+ gpointer user_data)
+{
+
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
+ DIALER_READY_CONTACT *ready_contact = (DIALER_READY_CONTACT *) para_pointer;
+ DBG_MESSAGE ("GOT THE MESSAGE OF confirmed:%s",
+ ready_contact->p_entry->content);
+ moko_dialer_textview_confirm_it (moko_dialer_text_view,
+ ready_contact->p_entry->content);
+ DBG_MESSAGE ("And here we are supposed to call out directly");
+ window_dialer_dial_out (appdata);
+
+
+}
+
+void
+on_dialer_autolist_nomatch (GtkWidget * widget, gpointer user_data)
+{
+
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
+
+ DBG_MESSAGE ("GOT THE MESSAGE OF no match");
+ moko_dialer_textview_fill_it (moko_dialer_text_view, "");
+
+}
+
+void
+on_dialer_menu_close (GtkWidget * widget, gpointer user_data)
+{
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ gtk_main_quit ();
+}
+
+void
+on_dialer_menu_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+ gtk_widget_hide (appdata->window_dialer);
+}
+
+
+
+
+void
+on_dialer_panel_user_input (GtkWidget * widget, gchar parac,
+ gpointer user_data)
+{
+ char input[2];
+ input[0] = parac;
+ input[1] = 0;
+ gchar *codesinput = NULL;
+
+//DBG_TRACE();
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
+
+
+ moko_dialer_textview_insert (moko_dialer_text_view, input);
+//DBG_TRACE();
+
+
+ codesinput =
+ g_strdup (moko_dialer_textview_get_input (moko_dialer_text_view, FALSE));
+
+ if (codesinput
+ && (g_utf8_strlen (codesinput, -1) >= MOKO_DIALER_MIN_SENSATIVE_LEN))
+ {
+ moko_dialer_autolist_refresh_by_string (appdata->moko_dialer_autolist,
+ codesinput, TRUE);
+ }
+ else
+ {
+ moko_dialer_autolist_hide_all_tips (appdata->moko_dialer_autolist);
+ }
+
+ if (codesinput)
+ g_free (codesinput);
+
+}
+
+void
+on_dialer_panel_user_hold (GtkWidget * widget, gchar parac,
+ gpointer user_data)
+{
+ g_print ("on_dialer_panel_user_hold:%c\n", parac);
+}
+
+void
+on_window_dialer_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+ appdata->window_present = 0;
+}
+
+void
+on_window_dialer_show (GtkWidget * widget, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ appdata->window_present = widget;
+ DBG_LEAVE ();
+}
+
+
+
+
+
+
+#define WINDOW_DIALER_BUTTON_SIZE_X 100
+#define WINDOW_DIALER_BUTTON_SIZE_Y 100
+gint
+window_dialer_init (MokoDialerData * p_dialer_data)
+{
+
+ if (!p_dialer_data->window_dialer)
+ {
+
+ GdkColor color;
+ gdk_color_parse ("black", &color);
+
+ GtkWidget *vbox = NULL;
+
+
+ GtkWidget *window = moko_finger_window_new ();
+
+ GtkMenu *appmenu = GTK_MENU (gtk_menu_new ());
+ GtkWidget *closeitem = gtk_menu_item_new_with_label ("Close");
+ g_signal_connect (G_OBJECT (closeitem), "activate",
+ G_CALLBACK (on_dialer_menu_close), p_dialer_data);
+ gtk_menu_shell_append (GTK_MENU_SHELL (appmenu), closeitem);
+
+ GtkMenuItem *hideitem =
+ GTK_MENU_ITEM (gtk_menu_item_new_with_label ("Hide"));
+ g_signal_connect (G_OBJECT (hideitem), "activate",
+ G_CALLBACK (on_dialer_menu_hide), p_dialer_data);
+ gtk_menu_shell_append (GTK_MENU_SHELL (appmenu), GTK_WIDGET (hideitem));
+
+
+ moko_finger_window_set_application_menu (MOKO_FINGER_WINDOW (window),
+ appmenu);
+
+ g_signal_connect (G_OBJECT (window), "delete_event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+ g_signal_connect (G_OBJECT (window), "show",
+ G_CALLBACK (on_window_dialer_show), p_dialer_data);
+ g_signal_connect (G_OBJECT (window), "hide",
+ G_CALLBACK (on_window_dialer_hide), p_dialer_data);
+
+
+
+ /* contents */
+ vbox = gtk_vbox_new (FALSE, 0);
+ GtkWidget *hbox = gtk_hbox_new (FALSE, 10);
+
+
+ GtkWidget *eventbox1 = gtk_event_box_new ();
+ gtk_widget_set_name (eventbox1, "gtkeventbox-black");
+
+ GtkWidget *autolist = moko_dialer_autolist_new ();
+ moko_dialer_autolist_set_data (MOKO_DIALER_AUTOLIST (autolist),
+ &(p_dialer_data->g_contactlist));
+ p_dialer_data->moko_dialer_autolist = MOKO_DIALER_AUTOLIST (autolist);
+
+ gtk_container_add (GTK_CONTAINER (eventbox1), autolist);
+ gtk_box_pack_start (GTK_BOX (vbox), eventbox1, FALSE, FALSE, 0);
+
+ gtk_widget_modify_bg (eventbox1, GTK_STATE_NORMAL, &color);
+
+ g_signal_connect (GTK_OBJECT (autolist), "user_selected",
+ G_CALLBACK (on_dialer_autolist_user_selected),
+ p_dialer_data);
+
+
+ g_signal_connect (GTK_OBJECT (autolist), "user_confirmed",
+ G_CALLBACK (on_dialer_autolist_user_confirmed),
+ p_dialer_data);
+
+ g_signal_connect (GTK_OBJECT (autolist), "autolist_nomatch",
+ G_CALLBACK (on_dialer_autolist_nomatch), p_dialer_data);
+
+
+
+
+
+ eventbox1 = gtk_event_box_new ();
+ gtk_widget_set_name (eventbox1, "gtkeventbox-black");
+ gtk_widget_modify_bg (eventbox1, GTK_STATE_NORMAL, &color);
+
+ GtkWidget *mokotextview = moko_dialer_textview_new ();
+ p_dialer_data->moko_dialer_text_view =
+ MOKO_DIALER_TEXTVIEW (mokotextview);
+
+ gtk_container_add (GTK_CONTAINER (eventbox1), mokotextview);
+ gtk_box_pack_start (GTK_BOX (vbox), eventbox1, FALSE, FALSE, 0);
+
+ GtkWidget *mokodialerpanel = moko_dialer_panel_new ();
+
+ gtk_widget_set_size_request (mokodialerpanel, 380, 384);
+
+
+ g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_input",
+ G_CALLBACK (on_dialer_panel_user_input), p_dialer_data);
+
+
+ g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_hold",
+ G_CALLBACK (on_dialer_panel_user_hold), p_dialer_data);
+
+ gtk_box_pack_start (GTK_BOX (hbox), mokodialerpanel, TRUE, TRUE, 5);
+
+
+
+//the buttons
+
+ GtkWidget *vbox2 = gtk_vbox_new (FALSE, 0);
+ GtkWidget *button1 = moko_pixmap_button_new ();
+ g_signal_connect (G_OBJECT (button1), "clicked",
+ G_CALLBACK (cb_delete_button_clicked), p_dialer_data);
+ gtk_widget_set_name (button1, "mokofingerbutton-orange");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button1),
+ file_new_image_from_relative_path ("delete.png"));
+ moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
+ (button1), "Delete");
+ gtk_widget_set_size_request (button1, WINDOW_DIALER_BUTTON_SIZE_X,
+ WINDOW_DIALER_BUTTON_SIZE_Y);
+
+ gtk_box_pack_start (GTK_BOX (vbox2), button1, FALSE, FALSE, 5);
+
+ GtkWidget *button3 = moko_pixmap_button_new ();
+ g_signal_connect (G_OBJECT (button3), "clicked",
+ G_CALLBACK (cb_history_button_clicked), p_dialer_data);
+ gtk_widget_set_name (button3, "mokofingerbutton-orange");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button3),
+ file_new_image_from_relative_path ("history.png"));
+ moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
+ (button3), "History");
+ gtk_widget_set_size_request (button3, WINDOW_DIALER_BUTTON_SIZE_X,
+ WINDOW_DIALER_BUTTON_SIZE_Y);
+ gtk_box_pack_start (GTK_BOX (vbox2), button3, FALSE, FALSE, 5);
+
+
+ GtkWidget *button2 = moko_pixmap_button_new ();
+
+ g_signal_connect (G_OBJECT (button2), "clicked",
+ G_CALLBACK (cb_dialer_button_clicked), p_dialer_data);
+ gtk_widget_set_name (button2, "mokofingerbutton-black");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button2),
+ file_new_image_from_relative_path ("phone.png"));
+ moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
+ (button2), "Dial");
+ gtk_widget_set_size_request (button2, WINDOW_DIALER_BUTTON_SIZE_X + 20,
+ WINDOW_DIALER_BUTTON_SIZE_Y + 80);
+
+ gtk_box_pack_start (GTK_BOX (vbox2), button2, FALSE, FALSE, 20);
+
+
+ gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5);
+
+
+
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 5);
+
+
+
+
+ moko_finger_window_set_contents (MOKO_FINGER_WINDOW (window), vbox);
+
+ p_dialer_data->window_dialer = window;
+
+ }
+
+ return 1;
+}
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-dialer.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.h)
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,1042 @@
+/* openmoko-dialer-window-talking.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+
+#include <libmokoui/moko-finger-tool-box.h>
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-finger-wheel.h>
+#include <libmokoui/moko-pixmap-button.h>
+
+#include <gtk/gtkalignment.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkvbox.h>
+#include <gtk/gtktreeview.h>
+#include <gtk/gtktreemodelfilter.h>
+#include <gtk/gtkscrolledwindow.h>
+#include <gtk/gtkimagemenuitem.h>
+#include <gtk/gtkmenu.h>
+
+#include "common.h"
+#include "contacts.h"
+#include "dialer-main.h"
+#include "moko-dialer-status.h"
+#include "history.h"
+#include "dialer-window-history.h"
+
+
+/* function declarations */
+
+gint history_update_counter (MokoDialerData * p_dialer_data);
+
+
+/**
+ * @brief re-filter the treeview widget by the history type
+ *
+ *
+ *
+ * @param type HISTORY_TYPE, indicating only the history items of that type will be displayed
+ * @return 1
+ * @retval
+ */
+
+int
+history_view_change_filter (MokoDialerData * p_dialer_data,
+ HISTORY_TYPE type)
+{
+ GtkTreePath *path;
+ DBG_TRACE ();
+ p_dialer_data->g_history_filter_type = type;
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER
+ (p_dialer_data->g_list_store_filter));
+
+ path = gtk_tree_path_new_first ();
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (p_dialer_data->treeview_history),
+ path, 0, 0);
+ gtk_tree_path_free (path);
+
+
+ return 1;
+}
+
+void
+on_all_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
+{
+ MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
+ GtkWidget *label = p_dialer_data->label_filter_history;
+ gtk_label_set_text (GTK_LABEL (label), "All");
+ history_view_change_filter (p_dialer_data, ALL);
+ history_update_counter (p_dialer_data);
+}
+
+
+void
+on_missed_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
+{
+ MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
+ GtkWidget *label = p_dialer_data->label_filter_history;
+ gtk_label_set_text (GTK_LABEL (label), "Missed");
+ history_view_change_filter (p_dialer_data, MISSED);
+ history_update_counter (p_dialer_data);
+}
+
+
+void
+on_dialed_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
+{
+ MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
+ GtkWidget *label = p_dialer_data->label_filter_history;
+ gtk_label_set_text (GTK_LABEL (label), "Dialed");
+ history_view_change_filter (p_dialer_data, OUTGOING);
+ history_update_counter (p_dialer_data);
+}
+
+
+void
+on_received_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
+{
+ MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
+ GtkWidget *label = p_dialer_data->label_filter_history;
+ gtk_label_set_text (GTK_LABEL (label), "Received");
+ history_view_change_filter (p_dialer_data, INCOMING);
+ history_update_counter (p_dialer_data);
+}
+
+gboolean
+on_eventboxTop_button_release_event (GtkWidget * widget,
+ GdkEventButton * event,
+ MokoDialerData * appdata)
+{
+
+ gtk_menu_popup (GTK_MENU (appdata->menu_history), 0, 0, 0, 0, 0, 0);
+
+ return FALSE;
+}
+
+void
+cb_openmoko_history_wheel_press_left_up (GtkWidget * widget,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GtkTreeView *treeview;
+ //DBG_ENTER();
+
+ treeview = GTK_TREE_VIEW (appdata->treeview_history);
+ if (treeview == 0)
+ return;
+
+ selection = gtk_tree_view_get_selection (treeview);
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ DBG_WARN ("no current selection\n");
+ return;
+ }
+ path = gtk_tree_model_get_path (model, &iter);
+ if (!gtk_tree_path_prev (path))
+ {
+ DBG_WARN ("no prev for the top level\n");
+ gtk_tree_path_free (path);
+ return;
+ }
+ gtk_tree_view_set_cursor (treeview, path, 0, 0);
+ return;
+
+
+}
+
+void
+cb_openmoko_history_wheel_press_right_down (GtkWidget * widget,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+ GtkTreeView *treeview;
+ //DBG_ENTER();
+ treeview = GTK_TREE_VIEW (appdata->treeview_history);
+ if (treeview == 0)
+ return;
+
+ selection = gtk_tree_view_get_selection (treeview);
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ DBG_WARN ("no current selection\n");
+ return;
+ }
+ if (gtk_tree_model_iter_next (model, &iter))
+ {
+ path = gtk_tree_model_get_path (model, &iter);
+ gtk_tree_view_set_cursor (treeview, path, 0, 0);
+ gtk_tree_path_free (path);
+ return;
+ }
+
+ return;
+}
+
+
+void
+cb_tool_button_history_delete_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ GtkTreeIter iter; //iter of the filter store
+ GtkTreeIter iter0; //iter of the back store
+ GtkTreeModel *model;
+ GtkTreeModel *model0;
+ GtkTreeSelection *selection;
+ GtkTreeView *treeview;
+ GtkTreePath *path;
+ treeview = GTK_TREE_VIEW (appdata->treeview_history);
+ selection = gtk_tree_view_get_selection (treeview);
+
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ return;
+ }
+
+ if (appdata->g_currentselected)
+ {
+ DBG_MESSAGE ("to delete %s", appdata->g_currentselected->number);
+ history_delete_entry (&(appdata->g_historylist),
+ appdata->g_currentselected);
+ }
+
+ path = gtk_tree_model_get_path (model, &iter);
+
+
+ model0 = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
+
+
+ gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER
+ (model), &iter0, &iter);
+
+ gtk_list_store_remove (GTK_LIST_STORE (model0), &iter0);
+
+
+ gtk_tree_view_set_cursor (treeview, path, 0, 0);
+
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ if (!gtk_tree_path_prev (path))
+ {
+ gtk_tree_view_set_cursor (treeview, path, 0, 0);
+ DBG_WARN ("history is empty now!");
+ history_update_counter (appdata);
+ }
+ else
+ {
+ gtk_tree_view_set_cursor (treeview, path, 0, 0);
+ }
+ //we deleted the last one.
+
+ }
+
+ gtk_tree_path_free (path);
+
+ return;
+
+ DBG_ENTER ();
+}
+
+void
+cb_tool_button_history_call_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+
+
+
+}
+
+void
+cb_tool_button_history_sms_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+
+
+
+}
+
+void
+cb_tool_button_history_back_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ gtk_widget_hide (appdata->window_history);
+
+}
+
+
+void
+on_window_history_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+
+ gtk_widget_hide (appdata->wheel_history);
+ gtk_widget_hide (appdata->toolbox_history);
+
+}
+
+void
+on_window_history_show (GtkWidget * widget, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+
+
+
+ if (appdata->toolbox_history)
+ gtk_widget_show (appdata->toolbox_history);
+
+ if (appdata->wheel_history)
+ gtk_widget_show (appdata->wheel_history);
+
+//FIXME: some day later, the contact changed infor will be sent to the dialer.
+ if (appdata->history_need_to_update)
+ {
+ DBG_MESSAGE ("NEED TO UPDATE HISTORY");
+ }
+ history_update_counter (appdata);
+
+ DBG_LEAVE ();
+}
+
+
+
+
+gint
+window_history_init (MokoDialerData * p_dialer_data)
+{
+
+ DBG_ENTER ();
+
+
+ if (p_dialer_data->window_history == 0)
+ {
+
+ history_create_menu_history (p_dialer_data);
+
+ MokoFingerWindow *window = NULL;
+ MokoFingerToolBox *tools = NULL;
+ GtkWidget *button;
+ GtkWidget *image;
+
+//now the container--window
+ window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
+ p_dialer_data->window_history = GTK_WIDGET (window);
+
+
+ moko_finger_window_set_contents (window,
+ create_window_history_content
+ (p_dialer_data));
+
+ g_signal_connect ((gpointer) window, "show",
+ G_CALLBACK (on_window_history_show), p_dialer_data);
+ g_signal_connect ((gpointer) window, "hide",
+ G_CALLBACK (on_window_history_hide), p_dialer_data);
+
+ //FIXME: without gtk_widget_show_all first and then hide, the history view will not show properly. -tony
+ //gtk_widget_show_all(GTK_WIDGET(window));
+
+ //now the wheel and tool box, why should the wheel and toolbox created after the gtk_widget_show_all???
+ // This causes a segfault for me... maybe a problem in libmokoui? - thomas
+ //gtk_widget_show (GTK_WIDGET (moko_finger_window_get_wheel (window)));
+
+ g_signal_connect (G_OBJECT (moko_finger_window_get_wheel (window)),
+ "press_left_up",
+ G_CALLBACK (cb_openmoko_history_wheel_press_left_up),
+ p_dialer_data);
+ g_signal_connect (G_OBJECT (moko_finger_window_get_wheel (window)),
+ "press_right_down",
+ G_CALLBACK
+ (cb_openmoko_history_wheel_press_right_down),
+ p_dialer_data);
+
+ g_signal_connect (G_OBJECT (moko_finger_window_get_wheel (window)),
+ "press_bottom",
+ G_CALLBACK (cb_tool_button_history_back_clicked),
+ p_dialer_data);
+
+
+ tools = moko_finger_window_get_toolbox (window);
+
+ /* TODO: remove the GTK_WIDGET() casts when libmokoui is fixed */
+ button = moko_finger_tool_box_add_button_without_label (tools);
+ image = file_new_image_from_relative_path ("phone.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_history_call_clicked),
+ p_dialer_data);
+
+ button =
+ GTK_WIDGET (moko_finger_tool_box_add_button_without_label (tools));
+ image = file_new_image_from_relative_path ("sms.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_history_sms_clicked),
+ p_dialer_data);
+
+
+ button =
+ GTK_WIDGET (moko_finger_tool_box_add_button_without_label (tools));
+ image = file_new_image_from_relative_path ("delete_01.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_history_delete_clicked),
+ p_dialer_data);
+ button =
+ GTK_WIDGET (moko_finger_tool_box_add_button_without_label (tools));
+ image = file_new_image_from_relative_path ("exit.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_history_back_clicked),
+ p_dialer_data);
+
+ p_dialer_data->wheel_history =
+ GTK_WIDGET (moko_finger_window_get_wheel (window));
+ p_dialer_data->toolbox_history = GTK_WIDGET (tools);
+ DBG_LEAVE ();
+ }
+ else
+ {
+ //here we have to refresh it.
+ DBG_TRACE ();
+ }
+ return 1;
+}
+
+void
+on_treeviewHistory_cursor_changed (GtkTreeView * treeview, gpointer user_data)
+{
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreeSelection *selection;
+ HISTORY_ENTRY *p;
+ int hasname;
+ MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
+
+ selection =
+ gtk_tree_view_get_selection (GTK_TREE_VIEW
+ (p_dialer_data->treeview_history));
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ p_dialer_data->g_currentselected = 0;
+ return;
+ }
+
+ gtk_tree_model_get (model, &iter, COLUMN_ENTRYPOINTER, &p, -1);
+
+ p_dialer_data->g_currentselected = p;
+
+ gtk_tree_model_get (model, &iter, COLUMN_HASNAME, &hasname, -1);
+ history_update_counter (p_dialer_data);
+
+}
+
+
+
+GtkWidget *
+create_window_history_content (MokoDialerData * p_dialer_data)
+{
+
+ GtkWidget *treeviewHistory;
+ GtkWidget *vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+ //FIRST of all, the top title area;
+ GtkWidget *eventboxTop = gtk_event_box_new ();
+ gtk_widget_show (eventboxTop);
+ gtk_box_pack_start (GTK_BOX (vbox), eventboxTop, FALSE, FALSE, 5);
+ gtk_widget_set_size_request (eventboxTop, 480, 64);
+ gtk_widget_set_name (eventboxTop, "gtkeventbox-black");
+
+ GtkWidget *hbox67 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_show (hbox67);
+ gtk_container_add (GTK_CONTAINER (eventboxTop), hbox67);
+
+ GtkWidget *eventboxLeftTop = gtk_event_box_new ();
+ gtk_widget_show (eventboxLeftTop);
+ gtk_box_pack_start (GTK_BOX (hbox67), eventboxLeftTop, FALSE, TRUE, 0);
+ gtk_widget_set_name (eventboxLeftTop, "gtkeventbox-black");
+
+
+
+ GtkWidget *imageLeftMenu = file_new_image_from_relative_path ("all.png");
+ gtk_widget_show (imageLeftMenu);
+ gtk_container_add (GTK_CONTAINER (eventboxLeftTop), imageLeftMenu);
+
+ GtkWidget *labelHistoryTitle = gtk_label_new (("History-"));
+ gtk_widget_show (labelHistoryTitle);
+ gtk_box_pack_start (GTK_BOX (hbox67), labelHistoryTitle, FALSE, FALSE, 0);
+ gtk_widget_set_size_request (labelHistoryTitle, 221, -1);
+ gtk_label_set_justify (GTK_LABEL (labelHistoryTitle), GTK_JUSTIFY_RIGHT);
+ gtk_misc_set_alignment (GTK_MISC (labelHistoryTitle), 1, 0.5);
+
+ GtkWidget *labelFilter = gtk_label_new (("All"));
+ gtk_widget_show (labelFilter);
+ gtk_box_pack_start (GTK_BOX (hbox67), labelFilter, TRUE, TRUE, 0);
+ gtk_misc_set_alignment (GTK_MISC (labelFilter), 0, 0.5);
+ p_dialer_data->label_filter_history = labelFilter;
+
+ GtkWidget *labelCounter = gtk_label_new (("0/0"));
+ gtk_widget_show (labelCounter);
+ gtk_box_pack_start (GTK_BOX (hbox67), labelCounter, TRUE, TRUE, 0);
+ gtk_label_set_justify (GTK_LABEL (labelCounter), GTK_JUSTIFY_RIGHT);
+ gtk_misc_set_alignment (GTK_MISC (labelCounter), 0.8, 0.5);
+ p_dialer_data->label_counter_history = labelCounter;
+
+ g_signal_connect ((gpointer) eventboxTop, "button_release_event",
+ G_CALLBACK (on_eventboxTop_button_release_event),
+ p_dialer_data);
+
+ GtkWidget *align = gtk_alignment_new (0, 0, 1, 1);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 150, 0, 0); //FIXME too many numbers has to be retrieved from style
+
+ GtkWidget *scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (scrolledwindow);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow),
+ GTK_POLICY_NEVER, GTK_POLICY_NEVER);
+
+ treeviewHistory = gtk_tree_view_new ();
+ gtk_widget_show (treeviewHistory);
+ gtk_container_add (GTK_CONTAINER (align), scrolledwindow);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow), treeviewHistory);
+
+
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeviewHistory), FALSE);
+ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeviewHistory), FALSE);
+// gtk_misc_set_alignment (GTK_MISC (treeviewHistory), 0.5, 0.5);
+ gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
+
+
+ gtk_widget_set_name (treeviewHistory, "gtktreeview-black");
+ p_dialer_data->treeview_history = treeviewHistory;
+ history_build_history_list_view (p_dialer_data);
+ gtk_widget_set_size_request (scrolledwindow, -1, 400);
+// gtk_misc_set_alignment (GTK_MISC (treeviewHistory),1,0.1);
+
+
+ g_signal_connect ((gpointer) treeviewHistory, "cursor_changed",
+ G_CALLBACK (on_treeviewHistory_cursor_changed),
+ p_dialer_data);
+
+ gtk_widget_show (vbox);
+ return vbox;
+}
+
+
+/**
+ * @brief re-filter the treeview widget by current history type,a callback when the history treeview refreshes
+ *
+ * this callback will be called for every treemodel iters,whenever the treeview filter is refreshing
+ *
+ * @param model GtkTreeModel *, the background database of the treeview
+ * @param iter GtkTreeIter *, the iterator of every item of the model.
+ * @param data gpointer , of no use currently
+ * @return boolean
+ * @retval TRUE means the iter will be displayed
+ * @retval FALSE means the iter will not be displayed
+ */
+static gboolean
+history_view_filter_visible_function (GtkTreeModel * model,
+ GtkTreeIter * iter, gpointer data)
+{
+ MokoDialerData *p_dialer_data = (MokoDialerData *) data;
+ HISTORY_TYPE type;
+ if (p_dialer_data->g_history_filter_type == ALL)
+ return TRUE;
+ gtk_tree_model_get (model, iter, COLUMN_TYPE, &type, -1);
+ if (type == p_dialer_data->g_history_filter_type)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+
+
+/**
+ * @brief find the treeview in the window, fill-in the data and show it on the screen.
+ *
+ *
+ *
+ * @param window GtkWidget* the window which contains the history treeview. but it's not necessarilly
+ *to be a window, any widget that can help to lookup the treeview will be OK.
+ * @return
+ * @retval 0 error occured
+ * @retval 1 everything is OK
+ */
+
+gint
+history_build_history_list_view (MokoDialerData * p_dialer_data)
+{
+ GtkListStore *list_store;
+
+ GtkTreeIter iter;
+ HISTORY_ENTRY *entry;
+
+ //copied
+ GtkTreeViewColumn *col;
+ GtkCellRenderer *renderer;
+
+ //GtkTreeModel *model;
+ GtkWidget *contactview = NULL;
+
+ //DBG_ENTER();
+
+ //DBG_TRACE();
+ p_dialer_data->g_history_filter_type = ALL;
+ contactview = p_dialer_data->treeview_history;
+
+ if (contactview == NULL)
+ return 0;
+//pack image and label
+ col = gtk_tree_view_column_new ();
+
+ gtk_tree_view_column_set_title (col, ("Title"));
+ gtk_tree_view_column_set_resizable (col, TRUE);
+
+
+
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ gtk_tree_view_column_pack_start (col, renderer, FALSE);
+ gtk_tree_view_column_set_attributes (col, renderer,
+ "pixbuf", COLUMN_TYPEICON, NULL);
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (col, renderer, FALSE);
+ gtk_tree_view_column_set_attributes (col, renderer,
+ "text", COLUMN_TIME, NULL);
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (col, renderer, FALSE);
+ gtk_tree_view_column_set_attributes (col, renderer,
+ "text", COLUMN_SEPRATE, NULL);
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (col, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (col, renderer,
+ "text", COLUMN_NAME_NUMBER, NULL);
+
+
+ gtk_tree_view_append_column (GTK_TREE_VIEW (contactview), col);
+
+
+ entry = p_dialer_data->g_historylist.first;
+
+ list_store = gtk_list_store_new (N_COLUMN, G_TYPE_INT, GDK_TYPE_PIXBUF,
+ G_TYPE_STRING, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_INT, G_TYPE_POINTER,
+ G_TYPE_INT, -1);
+ //we will use a filter to facilitate the filtering in treeview without rebuilding the database.
+ p_dialer_data->g_list_store_filter =
+ gtk_tree_model_filter_new (GTK_TREE_MODEL (list_store), NULL);
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER
+ (p_dialer_data->
+ g_list_store_filter),
+ history_view_filter_visible_function,
+ p_dialer_data, NULL);
+
+ //load the three icons to memory.
+
+ // GError *error = NULL;
+ p_dialer_data->g_iconReceived = create_pixbuf ("received.png");
+
+ /* FIXME: error handling hasn't been implemented yet!
+ p_dialer_data->g_iconReceived = create_pixbuf ("received.png", &error);
+ if (error)
+ {
+ DBG_WARN ("Cound not load icon :%s", error->message);
+ g_error_free (error);
+ p_dialer_data->g_iconReceived = NULL;
+ error = NULL;
+ }
+ */
+
+ p_dialer_data->g_iconDialed = create_pixbuf ("dialed.png");
+ /* FIXME: error handling hasn't been implemented yet!
+ p_dialer_data->g_iconDialed = create_pixbuf ("dialed.png", &error);
+ if (error)
+ {
+ DBG_WARN ("Cound not load icon :%s", error->message);
+ g_error_free (error);
+ p_dialer_data->g_iconDialed = NULL;
+ error = NULL;
+ }
+ */
+
+ p_dialer_data->g_iconMissed = create_pixbuf ("missed.png");
+ /* FIXME: error handling hasn't been implemented yet!
+ p_dialer_data->g_iconMissed = create_pixbuf ("missed.png", &error);
+ if (error)
+ {
+ DBG_WARN ("Cound not load icon :%s", error->message);
+ g_error_free (error);
+ p_dialer_data->g_iconMissed = NULL;
+ error = NULL;
+ }
+ */
+
+ while (entry)
+ {
+ //DBG_MESSAGE(entry->number);
+ gtk_list_store_append (list_store, &iter);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPE, entry->type,
+ COLUMN_SEPRATE, "--", COLUMN_TIME, entry->time,
+ COLUMN_DURATION, entry->durationsec,
+ COLUMN_ENTRYPOINTER, entry, COLUMN_HASNAME, 0, -1);
+ if (entry->name == 0)
+ {
+ //DBG_MESSAGE(entry->number);
+ gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER,
+ entry->number, -1);
+ gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 0, -1);
+ }
+ else
+ {
+ gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER,
+ entry->name, -1);
+ gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 1, -1);
+ }
+ switch (entry->type)
+ {
+ case INCOMING:
+ {
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ p_dialer_data->g_iconReceived, -1);
+ // icon=gdk_pixbuf_new_from_file("./received.png",&error);
+ break;
+ }
+ case OUTGOING:
+ { // icon=gdk_pixbuf_new_from_file("./dialed.png",&error);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ p_dialer_data->g_iconDialed, -1);
+ break;
+ }
+ case MISSED:
+ { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ p_dialer_data->g_iconMissed, -1);
+ break;
+ }
+
+ default:
+
+ { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ p_dialer_data->g_iconMissed, -1);
+ break;
+ }
+ }
+
+
+
+ entry = entry->next;
+ }
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW (contactview),
+ GTK_TREE_MODEL (p_dialer_data->
+ g_list_store_filter));
+
+ g_object_unref (list_store);
+
+ return 1;
+}
+
+
+/**
+ * @brief update the counter display widget - labelCounter
+ *
+ * @param widget GtkWidget*, any widget in the same window with treeviewHistory and labelCounter
+ *
+ * @return 1
+ */
+gint
+history_update_counter (MokoDialerData * p_dialer_data)
+{
+ DBG_ENTER ();
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreeSelection *selection;
+ GtkTreePath *path;
+ GtkTreeView *treeview;
+ int count = 0;
+ int nth = 0;
+ char *pathstring;
+ char display[10];
+
+ treeview = GTK_TREE_VIEW (p_dialer_data->treeview_history);
+ if (!p_dialer_data->treeview_history)
+ {
+ DBG_WARN ("COUNTER NOT READY ");
+ return 0;
+ }
+
+
+ model = gtk_tree_view_get_model (treeview);
+
+ count = gtk_tree_model_iter_n_children (model, NULL);
+
+ selection = gtk_tree_view_get_selection (treeview);
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ {
+ nth = 0;
+ }
+ else
+ {
+ path = gtk_tree_model_get_path (model, &iter);
+ pathstring = gtk_tree_path_to_string (path);
+ nth = atoi (pathstring) + 1;
+ gtk_tree_path_free (path);
+
+ }
+
+ GtkWidget *labelcounter;
+ labelcounter = p_dialer_data->label_counter_history;
+ sprintf (display, "%d/%d", nth, count);
+ gtk_label_set_text (GTK_LABEL (labelcounter), display);
+ return 1;
+
+}
+
+GtkWidget *
+history_create_menu_history (MokoDialerData * p_dialer_data)
+{
+ if (!p_dialer_data->menu_history)
+ {
+ GtkWidget *menu_history;
+ GtkWidget *all_calls;
+ GtkWidget *imageAll;
+ GtkWidget *separator1;
+ GtkWidget *missed_calls;
+ GtkWidget *imageMissed;
+ GtkWidget *separator3;
+ GtkWidget *dialed_calls;
+ GtkWidget *imageDialed;
+ GtkWidget *separator2;
+ GtkWidget *received_calls;
+ GtkWidget *imageReceived;
+
+ menu_history = gtk_menu_new ();
+ gtk_container_set_border_width (GTK_CONTAINER (menu_history), 2);
+
+ all_calls = gtk_image_menu_item_new_with_mnemonic (("Calls All"));
+ gtk_widget_show (all_calls);
+ gtk_container_add (GTK_CONTAINER (menu_history), all_calls);
+ gtk_widget_set_size_request (all_calls, 250, 60);
+
+
+ imageAll = file_new_image_from_relative_path ("all.png");
+ gtk_widget_show (imageAll);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (all_calls), imageAll);
+
+ separator1 = gtk_separator_menu_item_new ();
+ gtk_widget_show (separator1);
+ gtk_container_add (GTK_CONTAINER (menu_history), separator1);
+ gtk_widget_set_size_request (separator1, 120, -1);
+ gtk_widget_set_sensitive (separator1, FALSE);
+
+ missed_calls = gtk_image_menu_item_new_with_mnemonic (("Calls Missed "));
+ gtk_widget_show (missed_calls);
+ gtk_container_add (GTK_CONTAINER (menu_history), missed_calls);
+ gtk_widget_set_size_request (missed_calls, 120, 60);
+
+ //imageMissed = gtk_image_new_from_stock ("gtk-goto-bottom", GTK_ICON_SIZE_MENU);
+ imageMissed = file_new_image_from_relative_path ("missed.png");
+
+ gtk_widget_show (imageMissed);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (missed_calls),
+ imageMissed);
+
+ separator3 = gtk_separator_menu_item_new ();
+ gtk_widget_show (separator3);
+ gtk_container_add (GTK_CONTAINER (menu_history), separator3);
+ gtk_widget_set_size_request (separator3, 120, -1);
+ gtk_widget_set_sensitive (separator3, FALSE);
+
+ dialed_calls = gtk_image_menu_item_new_with_mnemonic (("Calls Dialed"));
+ gtk_widget_show (dialed_calls);
+ gtk_container_add (GTK_CONTAINER (menu_history), dialed_calls);
+ gtk_widget_set_size_request (dialed_calls, 120, 60);
+
+ // imageDialed = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_MENU);
+ imageDialed = file_new_image_from_relative_path ("dialed.png");
+ gtk_widget_show (imageDialed);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (dialed_calls),
+ imageDialed);
+
+ separator2 = gtk_separator_menu_item_new ();
+ gtk_widget_show (separator2);
+ gtk_container_add (GTK_CONTAINER (menu_history), separator2);
+ gtk_widget_set_size_request (separator2, 120, -1);
+ gtk_widget_set_sensitive (separator2, FALSE);
+
+ received_calls =
+ gtk_image_menu_item_new_with_mnemonic (("Calls Received "));
+ gtk_widget_show (received_calls);
+ gtk_container_add (GTK_CONTAINER (menu_history), received_calls);
+ gtk_widget_set_size_request (received_calls, 120, 60);
+
+// imageReceived = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_MENU);
+ imageReceived = file_new_image_from_relative_path ("received.png");
+ gtk_widget_show (imageReceived);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (received_calls),
+ imageReceived);
+
+ g_signal_connect ((gpointer) all_calls, "activate",
+ G_CALLBACK (on_all_calls_activate), p_dialer_data);
+ g_signal_connect ((gpointer) missed_calls, "activate",
+ G_CALLBACK (on_missed_calls_activate), p_dialer_data);
+ g_signal_connect ((gpointer) dialed_calls, "activate",
+ G_CALLBACK (on_dialed_calls_activate), p_dialer_data);
+ g_signal_connect ((gpointer) received_calls, "activate",
+ G_CALLBACK (on_received_calls_activate), p_dialer_data);
+
+ p_dialer_data->menu_history = menu_history;
+ return menu_history;
+ }
+ else
+ return p_dialer_data->menu_history;
+}
+
+
+
+/**
+ * @brief add an entry to the history treeview
+ *
+ *
+ *
+ * @param entry HISTORY_ENTRY *, the history entry to be added to the treeview.
+ * @return
+ * @retval 0 error occured
+ * @retval 1 everything is OK
+ */
+gint
+history_list_view_add (MokoDialerData * appdata, HISTORY_ENTRY * entry)
+{
+ DBG_ENTER ();
+ if (entry == 0)
+ {
+ DBG_ERROR ("THE ENTRY IS ZERO");
+ return 0;
+ }
+
+ if (appdata->treeview_history == 0)
+ {
+ DBG_WARN ("treeview_history not ready");
+ return 0;
+
+ }
+ //
+ GtkTreeIter iter; //iter of the filter store
+ GtkTreeModel *model;
+ GtkListStore *list_store;
+ GtkTreeView *treeview;
+
+ treeview = GTK_TREE_VIEW (appdata->treeview_history);
+
+ model =
+ gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER
+ (appdata->g_list_store_filter));
+
+ list_store = GTK_LIST_STORE (model);
+ //
+
+
+ //DBG_MESSAGE(entry->number);
+ gtk_list_store_insert (list_store, &iter, 0);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPE, entry->type,
+ COLUMN_SEPRATE, "--", COLUMN_TIME, entry->time,
+ COLUMN_DURATION, entry->durationsec,
+ COLUMN_ENTRYPOINTER, entry, COLUMN_HASNAME, 0, -1);
+ if (entry->name == 0)
+ {
+ //DBG_MESSAGE(entry->number);
+ gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER,
+ entry->number, -1);
+ gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 0, -1);
+ }
+ else
+ {
+ gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER, entry->name,
+ -1);
+ gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 1, -1);
+ }
+ switch (entry->type)
+ {
+ case INCOMING:
+ {
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ appdata->g_iconReceived, -1);
+ // icon=gdk_pixbuf_new_from_file("./received.png",&error);
+ break;
+ }
+ case OUTGOING:
+ { // icon=gdk_pixbuf_new_from_file("./dialed.png",&error);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ appdata->g_iconDialed, -1);
+ break;
+ }
+ case MISSED:
+ { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ appdata->g_iconMissed, -1);
+ break;
+ }
+
+ default:
+
+ { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
+ gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
+ appdata->g_iconMissed, -1);
+ break;
+ }
+ }
+ history_update_counter (appdata);
+ return 1;
+}
+
+
+gint
+add_histroy_entry (MokoDialerData * appdata, HISTORY_TYPE type,
+ const char *name, const char *number, const char *id,
+ char *time, char *date, int durationsec)
+{
+
+//DBG_ENTER();
+ //DBG_MESSAGE("History add:%s,%s,%s,%s,%s,%d",name,number,picpath,time,date,durationsec);
+ HISTORY_ENTRY *pentry =
+ history_add_entry (&(appdata->g_historylist), type, name, number, id,
+ time, date, durationsec);
+ return history_list_view_add (appdata, pentry);
+}
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.h)
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,281 @@
+/* openmoko-dialer-window-incoming.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+
+#include <libmokoui/moko-finger-tool-box.h>
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-finger-wheel.h>
+#include <libmokoui/moko-pixmap-button.h>
+
+#include <gtk/gtkalignment.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkvbox.h>
+
+#include "contacts.h"
+#include "dialer-main.h"
+#include "moko-dialer-status.h"
+#include "dialer-window-incoming.h"
+#include "dialer-window-talking.h"
+#include "dialer-window-history.h"
+#include "history.h"
+void
+cb_answer_button_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ appdata->g_state.callstate = STATE_TALKING;
+ /* TODO: MokoGsmdConnection->answer
+ * gsm_answer ();
+ */
+
+ gtk_widget_hide (appdata->window_incoming);
+
+ //transfer the contact info
+ window_talking_prepare (appdata);
+ gtk_widget_show (appdata->window_talking);
+ DBG_LEAVE ();
+}
+
+void
+cb_ignore_button_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ DBG_MESSAGE ("We will mute the phone for this call.");
+ appdata->g_state.callstate = STATE_IGNORED;
+ DBG_LEAVE ();
+} void
+
+cb_reject_button_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ /* TODO: MokoGsmdConnection->hangup
+ * gsm_hangup ();
+ */
+ appdata->g_state.callstate = STATE_REJECTED;
+ gtk_widget_hide (appdata->window_incoming);
+ DBG_LEAVE ();
+}
+
+void
+window_incoming_prepare (MokoDialerData * appdata)
+{
+ if (!appdata)
+
+ {
+ DBG_WARN ("appdata=NULL!");
+ return;
+ }
+ if (appdata->window_incoming == 0)
+
+ {
+ window_incoming_init (appdata);
+ }
+ moko_dialer_status_set_person_number (appdata->status_incoming,
+ appdata->g_peer_info.number);
+ if (appdata->g_peer_info.hasname)
+
+ {
+ moko_dialer_status_set_person_image (appdata->status_incoming,
+ appdata->g_peer_info.ID);
+ moko_dialer_status_set_person_name (appdata->status_incoming,
+ appdata->g_peer_info.name);
+ }
+
+ else
+
+ {
+ moko_dialer_status_set_person_image (appdata->status_incoming, "");
+ moko_dialer_status_set_person_name (appdata->status_incoming, "");
+ }
+}
+void
+window_incoming_fails (MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ DBG_LEAVE ();
+} gint timer_incoming_time_out (MokoDialerData * appdata)
+{
+
+//DBG_ENTER();
+ TIMER_DATA * timer_data = &(appdata->g_timer_data);
+ moko_dialer_status_update_icon (appdata->status_incoming);
+
+//now that we have the incoming call status report correctly, the timeout mechanism is not needed.
+/*
+ if (event_get_keep_calling ())
+ {
+ event_reset_keep_calling ();
+ timer_data->ticks = 0;
+ }
+ else
+ { //we count 4 before we confirm that there are no calling at all.
+ if (timer_data->ticks >= 3)
+ {
+ DBG_MESSAGE ("THE CALLER aborted, we quit.");
+ gsm_hangup ();
+ appdata->g_state.callstate = STATE_MISSED;
+ appdata->g_state.historytype = MISSED;
+ gdk_threads_enter ();
+ gtk_widget_hide (appdata->window_incoming);
+ gdk_threads_leave ();
+ return 0; //don't lookout the timeout.
+ }
+ else
+ {
+ DBG_MESSAGE ("ticks=%d", timer_data->ticks);
+ timer_data->ticks++;
+ }
+ }
+*/
+ return 1;
+}
+void
+on_window_incoming_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ if (appdata->g_timer_data.ptimer != 0)
+
+ {
+ g_source_remove (appdata->g_timer_data.ptimer);
+ appdata->g_timer_data.ptimer = 0;
+ }
+ /*
+ event_reset_clip_signaled ();
+ event_reset_incoming_signaled ();
+ event_reset_keep_calling ();
+ */
+ if (appdata->g_state.callstate != STATE_TALKING)
+
+ { // add_histroy_entry(g_state.historytype,g_state.contactinfo.name,g_state.contactinfo.number,g_state.contactinfo.picpath,g_state.starttime,0);
+ add_histroy_entry (appdata, appdata->g_state.historytype,
+ appdata->g_peer_info.name,
+ appdata->g_peer_info.number,
+ appdata->g_peer_info.ID,
+ appdata->g_state.starttime,
+ appdata->g_state.startdate, 0);
+ }
+ DBG_LEAVE ();
+}
+void
+window_incoming_setup_timer (MokoDialerData * appdata)
+{
+ time_t timep;
+ struct tm *p;
+ time (&timep);
+ p = localtime (&timep);
+ sprintf (appdata->g_state.starttime, "%02d:%02d:%02d", p->tm_hour,
+ p->tm_min, p->tm_sec);
+ sprintf (appdata->g_state.startdate, "%04d/%02d/%02d", p->tm_year,
+ p->tm_mon, p->tm_mday);
+ if (appdata->g_timer_data.ptimer != 0)
+
+ {
+ g_source_remove (appdata->g_timer_data.ptimer);
+ appdata->g_timer_data.ptimer = 0;
+ }
+ memset (&(appdata->g_timer_data), 0, sizeof (appdata->g_timer_data));
+ appdata->g_timer_data.stopsec = 0;
+ appdata->g_timer_data.ptimer =
+ g_timeout_add (1000, (GSourceFunc) timer_incoming_time_out,
+ (gpointer) appdata);
+}
+void
+on_window_incoming_show (GtkWidget * widget, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ appdata->g_state.callstate = STATE_INCOMING;
+ window_incoming_setup_timer (appdata);
+ DBG_LEAVE ();
+} gint window_incoming_init (MokoDialerData * p_dialer_data)
+{
+ DBG_ENTER ();
+ MokoFingerWindow * window;
+ GtkWidget * vbox;
+ GtkWidget * status;
+ if (p_dialer_data->window_incoming == 0)
+
+ {
+ vbox = gtk_vbox_new (FALSE, 0);
+ status = moko_dialer_status_new ();
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "incoming_0.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "incoming_1.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "incoming_2.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "incoming_3.png");
+ moko_dialer_status_set_icon_by_index (MOKO_DIALER_STATUS (status), 0);
+ gtk_box_pack_start (GTK_BOX (vbox), status, FALSE, FALSE, 0);
+ GtkWidget * hbox2 = gtk_hbox_new (FALSE, 0);
+ GtkWidget * button = gtk_button_new_with_label ("Answer");
+ gtk_button_set_image (GTK_BUTTON (button),
+ file_new_image_from_relative_path ("answer.png"));
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_answer_button_clicked), p_dialer_data);
+ gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE,
+ 10);
+ button = gtk_button_new_with_label ("Ignore");
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_ignore_button_clicked), p_dialer_data);
+ gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE,
+ 10);
+ button = gtk_button_new_with_label ("Reject");
+ gtk_button_set_image (GTK_BUTTON (button),
+ file_new_image_from_relative_path ("cancel.png"));
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_reject_button_clicked), p_dialer_data);
+ gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE,
+ 10);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 50);
+
+//currently MokoDialogWindow is not finished, wating...
+// MokoDialogWindow* window = (MokoDialogWindow *)(moko_dialog_window_new());
+// moko_dialog_window_set_contents( window, GTK_WIDGET(vbox) );
+ window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
+ moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
+
+ //FIXME: dear thomas, I know that show & hide is not good, but when you removed the following 2 lines, the incoming window
+ //is simply not displaying well. please have a try and then commit. If you cannot test the incoming window, you can simply modify the code to show it out debuggingly.
+ //Pardon me to re-add the 2 lines. Tony Guan 14,3,2007
+ gtk_widget_show_all (GTK_WIDGET (window));
+ gtk_widget_hide (GTK_WIDGET (window));
+ moko_dialer_status_set_title_label (MOKO_DIALER_STATUS (status),
+ "Incoming call");
+ moko_dialer_status_set_status_label (MOKO_DIALER_STATUS (status), "");
+ p_dialer_data->window_incoming = GTK_WIDGET (window);
+ p_dialer_data->status_incoming = MOKO_DIALER_STATUS (status);
+
+// DBG_MESSAGE("p_dialer_data->status_incoming=0X%x",p_dialer_data->status_incoming);
+ g_signal_connect ((gpointer) window, "show",
+ G_CALLBACK (on_window_incoming_show),
+ p_dialer_data);
+ g_signal_connect ((gpointer) window, "hide",
+ G_CALLBACK (on_window_incoming_hide), p_dialer_data);
+ }
+ DBG_LEAVE ();
+ return 1;
+}
+
+
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-incoming.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.h)
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-outgoing.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-outgoing.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,345 @@
+/* openmoko-dialer-window-outgoing.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+
+#include <libmokoui/moko-finger-tool-box.h>
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-finger-wheel.h>
+#include <libmokoui/moko-pixmap-button.h>
+
+#include <gtk/gtkalignment.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkvbox.h>
+
+#include "contacts.h"
+#include "dialer-main.h"
+#include "moko-dialer-status.h"
+#include "dialer-window-outgoing.h"
+#include "dialer-window-history.h"
+#include "dialer-window-talking.h"
+
+/* function declerations */
+void window_outgoing_setup_timer (MokoDialerData * appdata);
+
+void
+cb_speaker_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ //moko_dialer_status_update_icon(appdata->status_outgoing);
+
+
+ appdata->g_state.callstate = STATE_TALKING;
+
+ gtk_widget_hide (appdata->window_outgoing);
+
+
+ //transfer the contact info
+ window_talking_prepare (appdata);
+
+ //start dialling.
+
+ DBG_TRACE ();
+// gtk_widget_show_all (appdata->window_talking);
+ gtk_widget_show (appdata->window_talking);
+
+
+ DBG_LEAVE ();
+}
+
+void
+cb_redial_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ gtk_widget_hide (appdata->buttonRedial);
+ gtk_widget_show (appdata->buttonSpeaker);
+ moko_dialer_status_set_title_label (appdata->status_outgoing,
+ "Outgoing call");
+ moko_dialer_status_set_status_label (appdata->status_outgoing,
+ "Calling ... (00:00:00)");
+ window_outgoing_setup_timer (appdata);
+
+ appdata->g_state.callstate = STATE_CALLING;
+ appdata->g_state.historytype = OUTGOING;
+ /* TOOD: MokoGsmdConnection->dial
+ * gsm_dial (appdata->g_peer_info.number);
+ */
+
+ DBG_LEAVE ();
+}
+
+void
+cb_cancel_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ /* TODO: MokoGsmdConnection->hangup
+ * gsm_hangup ();
+ */
+ appdata->g_state.callstate = STATE_FAILED;
+ DBG_TRACE ();
+ gtk_widget_hide (appdata->window_outgoing);
+ DBG_LEAVE ();
+}
+
+void
+window_outgoing_prepare (MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ if (appdata->window_outgoing == 0)
+ window_outgoing_init (appdata);
+
+
+ moko_dialer_status_set_person_number (appdata->status_outgoing,
+ appdata->g_peer_info.number);
+ if (appdata->g_peer_info.hasname)
+ {
+ moko_dialer_status_set_person_image (appdata->status_outgoing,
+ appdata->g_peer_info.ID);
+ moko_dialer_status_set_person_name (appdata->status_outgoing,
+ appdata->g_peer_info.name);
+ }
+ else
+ {
+ moko_dialer_status_set_person_image (appdata->status_outgoing, "");
+ moko_dialer_status_set_person_name (appdata->status_outgoing, "");
+
+ }
+// strcpy (appdata->g_state.lastnumber, appdata->g_peer_info.number);
+ g_stpcpy (appdata->g_state.lastnumber, appdata->g_peer_info.number);
+ DBG_LEAVE ();
+
+}
+
+void
+window_outgoing_fails (MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ moko_dialer_status_set_error (appdata->status_outgoing);
+ moko_dialer_status_set_title_label (appdata->status_outgoing,
+ "Call Failure");
+ gtk_widget_hide (appdata->buttonSpeaker);
+ gtk_widget_show (appdata->buttonRedial);
+ DBG_LEAVE ();
+}
+
+gint
+timer_outgoing_time_out (MokoDialerData * appdata)
+{
+//DBG_ENTER();
+ TIMER_DATA *timer_data = &(appdata->g_timer_data);
+
+
+ timer_data->ticks++;
+ timer_data->hour = timer_data->ticks / 3600;
+ timer_data->min = (timer_data->ticks - timer_data->hour * 3600) / 60;
+ timer_data->sec = timer_data->ticks % 60;
+
+
+ sprintf (timer_data->timestring, "Calling ... (%02d:%02d:%02d)",
+ timer_data->hour, timer_data->min, timer_data->sec);
+
+//ok,we update the label now.
+
+
+ moko_dialer_status_set_status_label (appdata->status_outgoing,
+ timer_data->timestring);
+ moko_dialer_status_update_icon (appdata->status_outgoing);
+
+ if (timer_data->stopsec != 0 && timer_data->ticks >= timer_data->stopsec)
+ {
+
+ timer_data->timeout = 1;
+ g_source_remove (timer_data->ptimer);
+ timer_data->ptimer = 0;
+//maybe it failes
+ window_outgoing_fails (appdata);
+ return 0; //0 stops the timer.
+ }
+ else
+ return 1;
+}
+
+
+
+void
+on_window_outgoing_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+ if (appdata->g_timer_data.ptimer != 0)
+ {
+ g_source_remove (appdata->g_timer_data.ptimer);
+ appdata->g_timer_data.ptimer = 0;
+ }
+ if (appdata->g_state.callstate != STATE_TALKING)
+ { // add_histroy_entry(g_state.historytype,g_state.contactinfo.name,g_state.contactinfo.number,g_state.contactinfo.picpath,g_state.starttime,0);
+
+ add_histroy_entry (appdata, appdata->g_state.historytype,
+ appdata->g_peer_info.name,
+ appdata->g_peer_info.number,
+ appdata->g_peer_info.picpath,
+ appdata->g_state.starttime,
+ appdata->g_state.startdate, 0);
+
+ }
+
+
+}
+
+void
+window_outgoing_setup_timer (MokoDialerData * appdata)
+{
+ time_t timep;
+ struct tm *p;
+ time (&timep);
+ p = localtime (&timep);
+
+ sprintf (appdata->g_state.starttime, "%02d:%02d:%02d", p->tm_hour,
+ p->tm_min, p->tm_sec);
+ sprintf (appdata->g_state.startdate, "%04d/%02d/%02d", p->tm_year,
+ p->tm_mon, p->tm_mday);
+
+ if (appdata->g_timer_data.ptimer != 0)
+ {
+ g_source_remove (appdata->g_timer_data.ptimer);
+ appdata->g_timer_data.ptimer = 0;
+ }
+
+ memset (&(appdata->g_timer_data), 0, sizeof (appdata->g_timer_data));
+// 1:30 timeout
+ appdata->g_timer_data.stopsec = 90;
+
+ appdata->g_timer_data.ptimer =
+ g_timeout_add (1000, (GSourceFunc) timer_outgoing_time_out, appdata);
+
+
+}
+
+void
+on_window_outgoing_show (GtkWidget * widget, MokoDialerData * appdata)
+{
+
+ //DBG_ENTER ();
+ window_outgoing_setup_timer (appdata);
+ //DBG_TRACE ();
+ appdata->g_state.callstate = STATE_CALLING;
+ //DBG_TRACE ();
+ appdata->g_state.historytype = OUTGOING;
+ //DBG_TRACE ();
+ /* TODO: MokoGsmdConnection->dial
+ * int retv = gsm_dial (appdata->g_peer_info.number);
+ * DBG_MESSAGE ("GSM_DIAL returns %d", retv);
+ */
+ //DBG_LEAVE ();
+}
+
+
+gint
+window_outgoing_init (MokoDialerData * p_dialer_data)
+{
+
+ DBG_ENTER ();
+ MokoFingerWindow *window;
+ GtkWidget *vbox;
+ GtkWidget *status;
+
+ if (p_dialer_data->window_outgoing == 0)
+ {
+
+ vbox = gtk_vbox_new (FALSE, 0);
+ status = moko_dialer_status_new ();
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "outgoing_0.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "outgoing_1.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "outgoing_2.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "outgoing_3.png");
+ moko_dialer_status_set_error_icon (MOKO_DIALER_STATUS (status),
+ "failure.png");
+ moko_dialer_status_set_icon_by_index (MOKO_DIALER_STATUS (status), 0);
+
+ gtk_box_pack_start (GTK_BOX (vbox), status, FALSE, FALSE, 0);
+
+
+ GtkWidget *hbox2 = gtk_hbox_new (FALSE, 0);
+ GtkWidget *button = gtk_button_new_with_label ("Speaker");
+ gtk_button_set_image (GTK_BUTTON (button),
+ file_new_image_from_relative_path ("speaker.png"));
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_speaker_button_clicked), p_dialer_data);
+ p_dialer_data->buttonSpeaker = button;
+//gtk_widget_set_size_request(button,100,32);
+ gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE, 40);
+
+ button = gtk_button_new_with_label ("Redial");
+ gtk_button_set_image (GTK_BUTTON (button),
+ file_new_image_from_relative_path ("redial.png"));
+ p_dialer_data->buttonRedial = button;
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_redial_button_clicked), p_dialer_data);
+ gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE, 40);
+ g_object_set (G_OBJECT (button), "no-show-all", TRUE, NULL);
+
+
+ button = gtk_button_new_with_label ("Cancel");
+ gtk_button_set_image (GTK_BUTTON (button),
+ file_new_image_from_relative_path ("cancel.png"));
+ p_dialer_data->buttonCancel = button;
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_cancel_button_clicked), p_dialer_data);
+//gtk_widget_set_size_request(button,100,32);
+ gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE, 40);
+
+ gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 50);
+
+
+//currently MokoDialogWindow is not finished, wating...
+// MokoDialogWindow* window = (MokoDialogWindow *)(moko_dialog_window_new());
+// moko_dialog_window_set_contents( window, GTK_WIDGET(vbox) );
+
+ window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
+ moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
+
+ moko_dialer_status_set_title_label (MOKO_DIALER_STATUS (status),
+ "Outgoing call");
+ moko_dialer_status_set_status_label (MOKO_DIALER_STATUS (status),
+ "Calling ... (00:00:00)");
+
+ p_dialer_data->window_outgoing = GTK_WIDGET (window);
+ p_dialer_data->status_outgoing = MOKO_DIALER_STATUS (status);
+
+// DBG_MESSAGE("p_dialer_data->status_outgoing=0X%x",p_dialer_data->status_outgoing);
+
+
+ g_signal_connect ((gpointer) window, "show",
+ G_CALLBACK (on_window_outgoing_show), p_dialer_data);
+ g_signal_connect ((gpointer) window, "hide",
+ G_CALLBACK (on_window_outgoing_hide), p_dialer_data);
+
+ }
+
+
+
+// gtk_widget_show(p_dialer_data->window_outgoing);
+
+ DBG_LEAVE ();
+ return 1;
+}
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-outgoing.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.h)
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-pin.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-pin.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,220 @@
+/* openmoko-dialer-window-dialer.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-pixmap-button.h>
+#include <gtk/gtkalignment.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkvbox.h>
+#include "dialer-main.h"
+
+void
+pin_delete_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ if (appdata->int_sim_pin_end_point)
+ {
+ moko_dialer_textview_delete (appdata->moko_pin_text_view);
+ appdata->int_sim_pin_end_point--;
+ appdata->str_sim_pin[appdata->int_sim_pin_end_point] = 0;
+ }
+
+}
+
+
+void
+pin_ok_button_clicked (GtkButton * button, MokoDialerData * appdata)
+{
+ // gchar *codesinput;
+// codesinput =g_strdup(moko_dialer_textview_get_input (appdata->moko_pin_text_view, TRUE));
+
+ if (!appdata->str_sim_pin || g_utf8_strlen (appdata->str_sim_pin, -1) < 1)
+ {
+ //user didn't input anything
+ DBG_MESSAGE ("no input for pin");
+ }
+ else
+ { //here send the pin codes and hide our window.
+
+ DBG_MESSAGE ("here we send the pin:%s", appdata->str_sim_pin);
+ //FIXME:why this call will cause segment fault?
+ //lgsm_pin (appdata->lh, appdata->str_sim_pin);
+ //lgsm_pin (appdata->lh, "1234");
+ DBG_MESSAGE ("pin:%s sent", appdata->str_sim_pin);
+ gtk_widget_hide (appdata->window_pin);
+ }
+
+}
+
+
+
+
+void
+on_pin_panel_user_input (GtkWidget * widget, gchar parac, gpointer user_data)
+{
+ char input[2];
+ input[0] = parac;
+ input[1] = 0;
+
+//DBG_TRACE();
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ MokoDialerTextview *moko_pin_text_view = appdata->moko_pin_text_view;
+ if (appdata->int_sim_pin_end_point < MOKO_DIALER_MAX_NUMBER_LEN)
+ {
+ appdata->str_sim_pin[appdata->int_sim_pin_end_point] = parac;
+ appdata->int_sim_pin_end_point++;
+ moko_dialer_textview_insert (moko_pin_text_view, "*");
+ }
+ else
+ {
+ appdata->str_sim_pin[0] = parac;
+ appdata->int_sim_pin_end_point = 1;
+ }
+//DBG_TRACE();
+
+}
+
+void
+on_window_pin_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+ appdata->window_present = 0;
+
+}
+
+void
+on_window_pin_show (GtkWidget * widget, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ appdata->window_present = widget;
+
+ DBG_LEAVE ();
+}
+
+
+
+
+gint
+window_pin_init (MokoDialerData * p_dialer_data)
+{
+
+ if (!p_dialer_data->window_pin)
+ {
+
+ g_stpcpy (p_dialer_data->str_sim_pin, "");
+ p_dialer_data->int_sim_pin_end_point = 0;
+ GdkColor color;
+ gdk_color_parse ("black", &color);
+
+ GtkVBox *vbox = NULL;
+
+
+ MokoFingerWindow *window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
+ g_signal_connect ((gpointer) window, "show",
+ G_CALLBACK (on_window_pin_show), p_dialer_data);
+ g_signal_connect ((gpointer) window, "hide",
+ G_CALLBACK (on_window_pin_hide), p_dialer_data);
+
+
+ /* contents */
+ vbox = gtk_vbox_new (FALSE, 0);
+ GtkHBox *hbox = gtk_hbox_new (FALSE, 10);
+
+
+ GtkEventBox *eventbox1 = gtk_event_box_new ();
+ gtk_widget_show (eventbox1);
+ gtk_widget_set_name (GTK_WIDGET (eventbox1), "gtkeventbox-black");
+ gtk_widget_modify_bg (eventbox1, GTK_STATE_NORMAL, &color);
+// gtk_widget_set_size_request (eventbox1, 480, 132);
+
+ MokoDialerTextview *mokotextview = moko_dialer_textview_new ();
+ p_dialer_data->moko_pin_text_view = mokotextview;
+// moko_dialer_textview_fill_it(mokotextview , "Please input the pin:");
+
+ gtk_container_add (GTK_CONTAINER (eventbox1), mokotextview);
+ gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (eventbox1), FALSE,
+ FALSE, 0);
+
+ MokoDialerPanel *mokodialerpanel = moko_dialer_panel_new ();
+
+ gtk_widget_set_size_request (mokodialerpanel, 380, 384);
+
+
+ g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_input",
+ G_CALLBACK (on_pin_panel_user_input), p_dialer_data);
+
+ gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (mokodialerpanel), TRUE,
+ TRUE, 5);
+
+
+
+//the buttons
+
+ GtkVBox *vbox2 = gtk_vbox_new (FALSE, 0);
+ GtkButton *button1 = moko_pixmap_button_new ();
+ g_signal_connect (G_OBJECT (button1), "clicked",
+ G_CALLBACK (pin_delete_button_clicked), p_dialer_data);
+ gtk_widget_set_name (GTK_WIDGET (button1), "mokofingerbutton-orange");
+
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button1),
+ file_new_image_from_relative_path ("delete.png"));
+
+ moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
+ (button1), "Delete");
+// gtk_widget_set_size_request (button1, WINDOW_DIALER_BUTTON_SIZE_X,
+ // WINDOW_DIALER_BUTTON_SIZE_Y);
+
+ gtk_box_pack_start (GTK_BOX (vbox2), GTK_WIDGET (button1), FALSE, FALSE,
+ 5);
+
+ GtkButton *button2 = moko_pixmap_button_new ();
+
+ g_signal_connect (G_OBJECT (button2), "clicked",
+ G_CALLBACK (pin_ok_button_clicked), p_dialer_data);
+ gtk_widget_set_name (GTK_WIDGET (button1), "mokofingerbutton-orange");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button2),
+ file_new_image_from_relative_path ("phone.png"));
+ moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
+ (button2), "OK");
+ //gtk_widget_set_size_request (button2, WINDOW_DIALER_BUTTON_SIZE_X,
+ // WINDOW_DIALER_BUTTON_SIZE_Y);
+
+ gtk_box_pack_start (GTK_BOX (vbox2), GTK_WIDGET (button2), FALSE, FALSE,
+ 20);
+
+ gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (vbox2), TRUE, TRUE, 5);
+
+
+
+ gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (hbox), TRUE, TRUE, 5);
+
+
+ moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
+
+
+ p_dialer_data->window_pin = window;
+
+ }
+
+ return 1;
+}
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-pin.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.h)
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.c)
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -0,0 +1,450 @@
+/* openmoko-dialer-window-talking.c
+ *
+ * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
+ *
+ * Copyright (C) 2006 FIC Shanghai Lab
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Public License as published by
+ * the Free Software Foundation; version 2 of the license.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
+ */
+#include "alsa.h"
+#include <libmokoui/moko-finger-tool-box.h>
+#include <libmokoui/moko-finger-window.h>
+#include <libmokoui/moko-finger-wheel.h>
+#include <libmokoui/moko-pixmap-button.h>
+
+#include <gtk/gtkalignment.h>
+#include <gtk/gtkbutton.h>
+#include <gtk/gtkhbox.h>
+#include <gtk/gtklabel.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkvbox.h>
+
+#include "contacts.h"
+#include "common.h"
+#include "dialer-main.h"
+#include "moko-dialer-status.h"
+#include "dialer-window-talking.h"
+#include "dialer-window-history.h"
+
+void
+openmoko_wheel_press_left_up_cb (GtkWidget * widget,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+ gint l, r;
+ alsa_get_volume (&l, &r);
+ alsa_set_volume (l + 10, r + 10);
+
+ alsa_get_volume (&l, &r);
+ g_print ("l = %d, r = %d\n", l, r);
+
+/*
+ l = 90;
+ r = 90;
+
+*/
+
+}
+
+void
+openmoko_wheel_press_right_down_cb (GtkWidget * widget,
+ MokoDialerData * appdata)
+{
+ gint l, r;
+ alsa_get_volume (&l, &r);
+ alsa_set_volume (l - 10, r - 10);
+ alsa_get_volume (&l, &r);
+ g_print ("l = %d, r = %d\n", l, r);
+
+ DBG_ENTER ();
+}
+
+
+void
+cb_tool_button_speaker_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+}
+
+void
+cb_tool_button_dtmf_talk_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+
+ appdata->dtmf_in_talking_window = !appdata->dtmf_in_talking_window;
+ if (appdata->dtmf_in_talking_window)
+ {
+
+
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), appdata->imageTALK);
+ gtk_widget_hide (appdata->content_talk);
+ gtk_widget_show (appdata->content_dtmf);
+ }
+ else
+ {
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), appdata->imageDTMF);
+ gtk_widget_hide (appdata->content_dtmf);
+ gtk_widget_show (appdata->content_talk);
+
+
+ }
+
+
+}
+
+void
+cb_tool_button_hangup_clicked (GtkButton * button,
+ MokoDialerData * appdata)
+{
+ /* TODO: MokoGsmdConnection->hangup
+ * gsm_hangup ();
+ */
+ gtk_widget_hide (appdata->window_talking);
+
+}
+
+
+void
+on_dtmf_panel_user_input (GtkWidget * widget, gchar parac, gpointer user_data)
+{
+ char input[2];
+ input[0] = parac;
+ input[1] = 0;
+
+
+ MokoDialerData *appdata = (MokoDialerData *) user_data;
+ MokoDialerTextview *moko_dtmf_text_view = appdata->moko_dtmf_text_view;
+
+ moko_dialer_textview_insert (moko_dtmf_text_view, input);
+
+
+ /* TODO: MokoGsmdConnection->dtmf_send
+ * gsm_dtmf_send (input[0]);
+ */
+//lgsm_voice_dtmf(lgsmh, buf[1]);
+
+}
+
+
+
+void
+window_talking_prepare (MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+
+// moko_dialer_status_set_person_number(appdata->status_talking, appdata->g_peer_info.number);
+
+ if (!appdata->window_talking)
+ window_talking_init (appdata);
+
+ if (!appdata->window_talking)
+ {
+ DBG_WARN ("NO TALKING WINDOW INITIATED");
+ return;
+ }
+
+
+ if (appdata->g_peer_info.hasname)
+ {
+ DBG_TRACE ();
+ moko_dialer_status_set_person_image (appdata->status_talking,
+ appdata->g_peer_info.ID);
+ DBG_TRACE ();
+ moko_dialer_status_set_person_name (appdata->status_talking,
+ appdata->g_peer_info.name);
+ DBG_TRACE ();
+ }
+ else
+ {
+ moko_dialer_status_set_person_image (appdata->status_talking, "");
+ moko_dialer_status_set_person_name (appdata->status_talking, "");
+
+ }
+
+ DBG_LEAVE ();
+
+}
+
+gint
+timer_talking_time_out (MokoDialerData * appdata)
+{
+//DBG_ENTER();
+ TIMER_DATA *timer_data = &(appdata->g_timer_data);
+
+
+ timer_data->ticks++;
+ timer_data->hour = timer_data->ticks / 3600;
+ timer_data->min = (timer_data->ticks - timer_data->hour * 3600) / 60;
+ timer_data->sec = timer_data->ticks % 60;
+
+
+ sprintf (timer_data->timestring, "Talking (%02d:%02d:%02d)",
+ timer_data->hour, timer_data->min, timer_data->sec);
+
+//ok,we update the label now.
+
+
+ moko_dialer_status_set_status_label (appdata->status_talking,
+ timer_data->timestring);
+ moko_dialer_status_update_icon (appdata->status_talking);
+
+ if (timer_data->stopsec != 0 && timer_data->ticks >= timer_data->stopsec)
+ {
+
+ timer_data->timeout = 1;
+ g_source_remove (timer_data->ptimer);
+ timer_data->ptimer = 0;
+ return 0; //0 stops the timer.
+ }
+ else
+ return 1;
+}
+
+void
+on_window_talking_hide (GtkWidget * widget, MokoDialerData * appdata)
+{
+
+
+ if (appdata->g_timer_data.ptimer != 0)
+ {
+ g_source_remove (appdata->g_timer_data.ptimer);
+ appdata->g_timer_data.ptimer = 0;
+ }
+
+ gtk_widget_hide (appdata->wheel_talking);
+ gtk_widget_hide (appdata->toolbox_talking);
+
+ moko_dialer_textview_empty (appdata->moko_dtmf_text_view);
+ add_histroy_entry (appdata, appdata->g_state.historytype,
+ appdata->g_peer_info.name,
+ appdata->g_peer_info.number,
+ appdata->g_peer_info.picpath,
+ appdata->g_state.starttime,
+ appdata->g_state.startdate, appdata->g_timer_data.ticks);
+
+
+}
+
+void
+on_window_talking_show (GtkWidget * widget, MokoDialerData * appdata)
+{
+ DBG_ENTER ();
+
+ appdata->dtmf_in_talking_window = TRUE;
+ //hide the talking button in talking mode.
+
+ time_t timep;
+ struct tm *p;
+ time (&timep);
+ p = localtime (&timep);
+
+ sprintf (appdata->g_state.starttime, "%02d:%02d:%02d", p->tm_hour,
+ p->tm_min, p->tm_sec);
+ sprintf (appdata->g_state.startdate, "%04d/%02d/%02d", p->tm_year + 1900,
+ p->tm_mon, p->tm_mday);
+
+ memset (&(appdata->g_timer_data), 0, sizeof (appdata->g_timer_data));
+
+ appdata->g_timer_data.stopsec = 0;
+
+ appdata->g_timer_data.ptimer =
+ g_timeout_add (1000, (GSourceFunc) timer_talking_time_out, appdata);
+
+ if (appdata->toolbox_talking)
+ {
+ gtk_widget_show (appdata->toolbox_talking);
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (appdata->buttonTalk_DTMF), appdata->imageDTMF);
+ gtk_widget_hide (appdata->content_dtmf);
+ gtk_widget_show (appdata->content_talk);
+ }
+
+
+
+ if (appdata->wheel_talking)
+ gtk_widget_show (appdata->wheel_talking);
+
+
+
+
+ DBG_LEAVE ();
+}
+
+
+
+
+gint
+window_talking_init (MokoDialerData * p_dialer_data)
+{
+
+ DBG_ENTER ();
+
+
+ if (p_dialer_data->window_talking == 0)
+ {
+
+ MokoFingerWindow *window = NULL;
+ GtkWidget *vbox = gtk_vbox_new (FALSE, 0);;
+ GtkWidget *status = NULL;
+ GtkWidget *content_talk = NULL;
+ GtkWidget *content_dtmf = NULL;
+ MokoFingerToolBox *tools = NULL;
+ MokoFingerWheel *wheel = NULL;
+ GtkWidget *mokodialerpanel = NULL;
+ MokoPixmapButton *button;
+ GtkWidget *image;
+
+
+//first, the talking content.
+
+ content_talk = gtk_vbox_new (FALSE, 0);
+ status = moko_dialer_status_new ();
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "talking_0.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "talking_1.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "talking_2.png");
+ moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
+ "talking_3.png");
+ moko_dialer_status_set_icon_by_index (MOKO_DIALER_STATUS (status), 0);
+
+
+ moko_dialer_status_set_title_label (MOKO_DIALER_STATUS (status),
+ "In Call");
+ moko_dialer_status_set_status_label (MOKO_DIALER_STATUS (status),
+ "Talking ...(00:00:00)");
+
+ gtk_box_pack_start (GTK_BOX (content_talk), status, FALSE, FALSE, 0);
+
+
+ p_dialer_data->status_talking = MOKO_DIALER_STATUS (status);
+ p_dialer_data->content_talk = content_talk;
+
+ gtk_box_pack_start (GTK_BOX (vbox), content_talk, FALSE, FALSE, 0);
+
+
+ //now the dtmf content
+ content_dtmf = gtk_vbox_new (FALSE, 0);
+ GtkWidget *eventbox1 = gtk_event_box_new ();
+ gtk_widget_show (eventbox1);
+ gtk_widget_set_name (eventbox1, "gtkeventbox-black");
+
+ GtkWidget *mokotextview = moko_dialer_textview_new ();
+
+ gtk_container_add (GTK_CONTAINER (eventbox1), mokotextview);
+
+ p_dialer_data->moko_dtmf_text_view = MOKO_DIALER_TEXTVIEW (mokotextview);
+
+ gtk_box_pack_start (GTK_BOX (content_dtmf), GTK_WIDGET (eventbox1),
+ FALSE, FALSE, 2);
+
+
+
+ mokodialerpanel = moko_dialer_panel_new ();
+
+ gtk_widget_set_size_request (mokodialerpanel, 380, 384);
+ g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_input",
+ G_CALLBACK (on_dtmf_panel_user_input), p_dialer_data);
+ gtk_box_pack_start (GTK_BOX (content_dtmf),
+ GTK_WIDGET (mokodialerpanel), TRUE, TRUE, 5);
+
+ gtk_box_pack_start (GTK_BOX (vbox), content_dtmf, FALSE, FALSE, 0);
+ p_dialer_data->content_dtmf = content_dtmf;
+ //g_object_set (G_OBJECT (content_dtmf), "no-show-all", TRUE);
+
+
+ //now the container--window
+ window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
+ p_dialer_data->window_talking = GTK_WIDGET (window);
+ moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
+ g_signal_connect ((gpointer) window, "show",
+ G_CALLBACK (on_window_talking_show), p_dialer_data);
+ g_signal_connect ((gpointer) window, "hide",
+ G_CALLBACK (on_window_talking_hide), p_dialer_data);
+
+
+ //now the wheel and tool box, why should the wheel and toolbox created after the gtk_widget_show_all???
+ //please refer to bug 175.
+ //FIXME:Dear Thomas, please modify the libmokoui before deleting the show_all & hide codes. I don't want to splash
+ //any window either, but for now, it's the most convenient way to debug the application. We will remove it, but later, OK?
+ //Tony Guan 14/3/2007
+ gtk_widget_show_all (GTK_WIDGET (window));
+ gtk_widget_hide (content_dtmf); //And this line is necessary because dtmf interface & talking interface share the same window.
+ //we have to hide it first.
+ wheel = moko_finger_window_get_wheel (window);
+
+ g_signal_connect (G_OBJECT (wheel),
+ "press_left_up",
+ G_CALLBACK (openmoko_wheel_press_left_up_cb),
+ p_dialer_data);
+ g_signal_connect (G_OBJECT (wheel),
+ "press_right_down",
+ G_CALLBACK (openmoko_wheel_press_right_down_cb),
+ p_dialer_data);
+
+
+
+
+ tools = moko_finger_window_get_toolbox (window);
+ button =
+ MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
+ (tools));
+ image = file_new_image_from_relative_path ("speaker.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_speaker_clicked),
+ p_dialer_data);
+
+ button =
+ MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
+ (tools));
+ image = file_new_image_from_relative_path ("dtmf.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_dtmf_talk_clicked),
+ p_dialer_data);
+ p_dialer_data->buttonTalk_DTMF = button;
+ p_dialer_data->imageDTMF = image;
+ p_dialer_data->imageTALK =
+ file_new_image_from_relative_path ("talking.png");
+
+
+ button =
+ MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
+ (tools));
+ image = file_new_image_from_relative_path ("hangup.png");
+ moko_pixmap_button_set_finger_toolbox_btn_center_image
+ (MOKO_PIXMAP_BUTTON (button), image);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (cb_tool_button_hangup_clicked),
+ p_dialer_data);
+ gtk_widget_show (GTK_WIDGET (tools));
+ gtk_widget_show (GTK_WIDGET (wheel));
+
+ p_dialer_data->dtmf_in_talking_window = 0;
+ p_dialer_data->wheel_talking = GTK_WIDGET (wheel);
+ p_dialer_data->toolbox_talking = GTK_WIDGET (tools);
+
+ DBG_LEAVE ();
+ }
+
+ return 1;
+}
Copied: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-talking.h (from rev 1842, trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.h)
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,218 +0,0 @@
-/* openmoko-dialer.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include <libmokoui/moko-application.h>
-#include <libmokoui/moko-finger-tool-box.h>
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-finger-wheel.h>
-
-#include <libmokogsmd/moko-gsmd-connection.h>
-
-
-#include <gtk/gtk.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include "contacts.h"
-#include "history.h"
-#include "error.h"
-#include "errno.h"
-#include "openmoko-dialer-main.h"
-#include "openmoko-dialer-window-dialer.h"
-#include "openmoko-dialer-window-talking.h"
-#include "openmoko-dialer-window-outgoing.h"
-#include "openmoko-dialer-window-incoming.h"
-#include "openmoko-dialer-window-pin.h"
-#include "openmoko-dialer-window-history.h"
-
-#include "dialer-callbacks-connection.h"
-
-MokoDialerData *p_dialer_data = 0;
-MokoDialerData *
-moko_get_app_data ()
-{
- return p_dialer_data;
-}
-
-static void
-handle_sigusr1 (int value)
-{
- DBG_ENTER ();
- MokoDialerData *p_data = moko_get_app_data ();
- if (!p_data)
- return;
- GtkWidget *mainwindow = p_data->window_present;
- if (mainwindow == 0)
- mainwindow = p_data->window_dialer;
-
- if (mainwindow == NULL)
- {
- return;
- }
- gtk_widget_show_all (mainwindow);
- gtk_window_present (GTK_WINDOW (mainwindow));
- DBG_TRACE ();
- signal (SIGUSR1, handle_sigusr1);
- DBG_LEAVE ();
-}
-
-static pid_t
-testlock (char *fname)
-{
- int fd;
- struct flock fl;
-
- fd = open (fname, O_WRONLY, S_IWUSR);
- if (fd < 0)
- {
- if (errno == ENOENT)
- {
- return 0;
- }
- else
- {
- perror ("Test lock open file");
- return -1;
- }
- }
-
- fl.l_type = F_WRLCK;
- fl.l_whence = SEEK_SET;
- fl.l_start = 0;
- fl.l_len = 0;
-
- if (fcntl (fd, F_GETLK, &fl) < 0)
- {
- close (fd);
- return -1;
- }
- close (fd);
-
- if (fl.l_type == F_UNLCK)
- return 0;
-
- return fl.l_pid;
-}
-
-static void
-setlock (char *fname)
-{
- int fd;
- struct flock fl;
-
- fd = open (fname, O_WRONLY | O_CREAT, S_IWUSR);
- if (fd < 0)
- {
- perror ("Set lock open file");
- return;
- }
-
- fl.l_type = F_WRLCK;
- fl.l_whence = SEEK_SET;
- fl.l_start = 0;
- fl.l_len = 0;
-
- if (fcntl (fd, F_SETLK, &fl) < 0)
- {
- perror ("Lock file");
- close (fd);
- }
-}
-
-static gboolean show_gui;
-
-static GOptionEntry entries[] = {
- {"show-gui", 's', 0, G_OPTION_ARG_NONE, &show_gui,
- "Show the GUI at startup (default off)", "N"},
- {NULL}
-};
-
-
-int
-main (int argc, char **argv)
-{
- pid_t lockapp;
-
- /* Initialize GTK+ */
- gtk_init (&argc, &argv);
-
- if (argc != 1)
- {
- /* Add init code. */
- GError *error = NULL;
- GOptionContext *context = g_option_context_new ("");
-
- g_option_context_add_main_entries (context, entries, NULL);
- g_option_context_add_group (context, gtk_get_option_group (TRUE));
- g_option_context_parse (context, &argc, &argv, &error);
-
- g_option_context_free (context);
- }
- //FIXME: the following lines to enable unique instance will be changed.
- lockapp = testlock ("/tmp/dialer.lock");
- if (lockapp > 0)
- {
- kill (lockapp, SIGUSR1);
- return 0;
- }
- setlock ("/tmp/dialer.lock");
-
-
- p_dialer_data = g_new0 (MokoDialerData, 1);
-
- //init application data
- contact_init_contact_data (&(p_dialer_data->g_contactlist));
- history_init_history_data (&(p_dialer_data->g_historylist));
-
-
- /* application object */
-// MokoApplication* app = MOKO_APPLICATION(moko_application_get_instance());
- g_set_application_name ("OpenMoko Dialer");
-
- /* Set up gsmd connection object */
- MokoGsmdConnection* conn = p_dialer_data->connection = moko_gsmd_connection_new ();
- g_signal_connect (G_OBJECT (conn), "network-registration", (GCallback) network_registration_cb, NULL);
- g_signal_connect (G_OBJECT (conn), "incoming-call", (GCallback) incoming_call_cb, NULL);
- g_signal_connect (G_OBJECT (conn), "incoming-clip", (GCallback) incoming_clip_cb, NULL);
-
- signal (SIGUSR1, handle_sigusr1);
-
- //init the dialer window
- window_dialer_init (p_dialer_data);
- window_incoming_init (p_dialer_data);
- window_pin_init (p_dialer_data);
- window_outgoing_init (p_dialer_data);
- window_history_init (p_dialer_data);
- DBG_MSG
- ("\nusage: \"openmoko-dialer\" will not show any GUI initialy until you reactivate the app using another \"openmoko-dialer\" command");
-
- if (show_gui)
- {
- handle_sigusr1 (SIGUSR1);
- }
-
- gtk_main ();
-
-
-//release everything
- contact_release_contact_list (&(p_dialer_data->g_contactlist));
-
- history_release_history_list (&(p_dialer_data->g_historylist));
- return 0;
-}
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-main.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,103 +0,0 @@
-/* openmoko-dialer.h
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-#include <libmokogsmd/moko-gsmd-connection.h>
-/*
-
-typedef struct _window_outgoing
-{
-
-MokoDialerStatus * status_outgoing;
-
-GtkWidget* window_outgoing;
-
-GtkWidget* buttonSpeaker;
-GtkWidget* buttonCancel;
-GtkWidget* buttonRedial;
-}WindowOutgoing;
-*/
-typedef struct _dialer_data
-{
- //the global data area begins here
- MokoGsmdConnection *connection;
-
- char str_sim_pin[MOKO_DIALER_MAX_PIN_LEN + 1];
- gint int_sim_pin_end_point;
- MokoDialerTextview *moko_dialer_text_view; ///<the textview for the dialer window
-
- MokoDialerTextview *moko_dtmf_text_view; ///<the textview for the dtmf window
- MokoDialerTextview *moko_pin_text_view;
-
- MokoDialerAutolist *moko_dialer_autolist;
-
- DIALER_CONTACTS_LIST_HEAD g_contactlist; ///< the whole list of the contacts from the contact book.
-
- DIALER_CONTACT_PEER_INFO g_peer_info; ///<hold the peer's name, number, etc.
-
- HISTORY_LIST_HEAD g_historylist; ///< the whole list of the talk history
- HISTORY_ENTRY *g_currentselected; ///<pointer to the history entry which in the GUI the user selects.
- GLOBAL_STATE g_state; ///< the global states holder. we count on it a lot.
-
-
- TIMER_DATA g_timer_data; ///< the data used by the timers
-
- MokoDialerStatus *status_outgoing;
- MokoDialerStatus *status_talking;
- MokoDialerStatus *status_incoming;
-
- GtkWidget *window_incoming;
- GtkWidget *window_outgoing;
- GtkWidget *window_talking;
- GtkWidget *window_history;
- GtkWidget *window_dialer;
- GtkWidget *window_pin;
- GtkWidget *window_present;
-
-//buttons
- GtkWidget *buttonSpeaker;
- GtkWidget *buttonCancel;
- GtkWidget *buttonRedial;
-
- GtkWidget *imageTALK;
- GtkWidget *imageDTMF;
-
- GtkWidget *buttonTalk_DTMF;
- GtkWidget *content_talk;
- GtkWidget *content_dtmf;
-
-
- GtkWidget *wheel_talking;
- GtkWidget *toolbox_talking;
-
-
- GtkWidget *wheel_history;
- GtkWidget *toolbox_history;
- GtkWidget *label_filter_history;
- GtkWidget *label_counter_history;
- GtkWidget *treeview_history;
- GtkWidget *menu_history;
-
- gboolean dtmf_in_talking_window;
- gboolean history_need_to_update;
-
- GtkTreeModel *g_list_store_filter; ///<the list store used by the gtktreeview, for displaying the history list dynamically.
-
- HISTORY_TYPE g_history_filter_type; ///<indicates the current history filter type, the gtktreeview will be filtered on the value.
-
- GdkPixbuf *g_iconReceived, *g_iconMissed, *g_iconDialed; ///<the global pixbuf for the 3 icons displayed in the history window.}DIALER_APP_DATA;
-} MokoDialerData;
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,476 +0,0 @@
-/* openmoko-dialer-window-dialer.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-
-#include <libmokoui/moko-finger-tool-box.h>
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-finger-wheel.h>
-#include <libmokoui/moko-pixmap-button.h>
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkvbox.h>
-
-#include "common.h"
-#include "contacts.h"
-#include "openmoko-dialer-main.h"
-#include "openmoko-dialer-window-dialer.h"
-#include "openmoko-dialer-window-history.h"
-#include "openmoko-dialer-window-outgoing.h"
-
-void
-cb_delete_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- g_debug ("delete button clicked");
-
- if (moko_dialer_autolist_has_selected (appdata->moko_dialer_autolist))
- {
-//first of all, we un-select the selection.
- moko_dialer_autolist_set_select (appdata->moko_dialer_autolist, -1);
-
-//fill the textview with ""
- moko_dialer_textview_fill_it (appdata->moko_dialer_text_view, "");
-//moko_dialer_textview_set_color(moko_dialer_textview);
- }
- else
- {
- moko_dialer_textview_delete (appdata->moko_dialer_text_view);
-//refresh the autolist,but do not automaticall fill the textview
- gchar *codesinput = 0;
- codesinput =
- g_strdup (moko_dialer_textview_get_input
- (appdata->moko_dialer_text_view, FALSE));
-
- if (codesinput)
- {
- DBG_MESSAGE ("input %s", codesinput);
- if (g_utf8_strlen (codesinput, -1) >= MOKO_DIALER_MIN_SENSATIVE_LEN)
- {
- moko_dialer_autolist_refresh_by_string (appdata->
- moko_dialer_autolist,
- codesinput, FALSE);
- moko_dialer_textview_set_color (appdata->moko_dialer_text_view);
- }
- else
- moko_dialer_autolist_hide_all_tips (appdata->moko_dialer_autolist);
- g_free (codesinput);
- }
- else
- {
- DBG_WARN ("No input now.");
- }
-
-
- }
-
-}
-
-void
-cb_history_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- if (!appdata->window_history)
- window_history_init (appdata);
-
-//start dialling.
- gtk_widget_show_all (appdata->window_history);
-
-}
-
-void
-window_dialer_dial_out (MokoDialerData * appdata)
-{
- gchar *codesinput;
- //get the input digits
- codesinput =
- g_strdup (moko_dialer_textview_get_input
- (appdata->moko_dialer_text_view, FALSE));
- DBG_TRACE ();
- if ((!codesinput)
- || ((codesinput != NULL) && g_utf8_strlen (codesinput, -1)) < 1)
- {
- //user didn't input anything, maybe it's a redial, so we just insert the last dialed number and return this time.
- if (g_utf8_strlen (appdata->g_state.lastnumber, -1) > 0)
- {
- moko_dialer_textview_insert (appdata->moko_dialer_text_view,
- appdata->g_state.lastnumber);
- moko_dialer_autolist_refresh_by_string (appdata->
- moko_dialer_autolist,
- appdata->g_state.lastnumber,
- TRUE);
- }
- return;
- }
-//empty the textview
- moko_dialer_textview_empty (appdata->moko_dialer_text_view);
-
-//and we set the selected autolist to be No
- moko_dialer_autolist_set_select (appdata->moko_dialer_autolist, -1);
- moko_dialer_autolist_hide_all_tips (appdata->moko_dialer_autolist);
-
-//got the number;//FIXME:which function should I use if not g_strdup. & strcpy.
- //strcpy(appdata->g_peer_info.number, codesinput );
- g_stpcpy (appdata->g_peer_info.number, codesinput);
-
-//retrieve the contact information if any.
- contact_get_peer_info_from_number (appdata->g_contactlist.contacts,
- &(appdata->g_peer_info));
-// contact_get_peer_info_from_number
-
-/*
-if(!appdata->window_outgoing)
- window_incoming_init(appdata);
-
-//transfer the contact info
-window_incoming_prepare(appdata);
-
-//start dialling.
-gtk_widget_show(appdata->window_incoming);
-*/
-
-//transfer the contact info
- window_outgoing_prepare (appdata);
-
-//start dialling.
- gtk_widget_show_all (appdata->window_outgoing);
-
- g_free (codesinput);
-
-}
-
-void
-cb_dialer_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- window_dialer_dial_out (appdata);
-}
-
-
-
-void
-on_dialer_autolist_user_selected (GtkWidget * widget, gpointer para_pointer,
- gpointer user_data)
-{
- gchar *codesinput;
- gint lenstring = 0;
- gint leninput = 0;
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
- DIALER_READY_CONTACT *ready_contact = (DIALER_READY_CONTACT *) para_pointer;
- codesinput = moko_dialer_textview_get_input (moko_dialer_text_view, FALSE);
- if (ready_contact->p_entry->content)
- lenstring = g_utf8_strlen (ready_contact->p_entry->content, -1);
- else
- lenstring = 0;
-
- if (codesinput)
- leninput = g_utf8_strlen (codesinput, -1);
- else
- leninput = 0;
- if (lenstring > leninput)
- {
-
- moko_dialer_textview_fill_it (moko_dialer_text_view,
- &(ready_contact->p_entry->
- content[leninput]));
-
- }
- else
- moko_dialer_textview_fill_it (moko_dialer_text_view, "");
- g_free (codesinput);
-
-}
-
-void
-on_dialer_autolist_user_confirmed (GtkWidget * widget, gpointer para_pointer,
- gpointer user_data)
-{
-
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
- DIALER_READY_CONTACT *ready_contact = (DIALER_READY_CONTACT *) para_pointer;
- DBG_MESSAGE ("GOT THE MESSAGE OF confirmed:%s",
- ready_contact->p_entry->content);
- moko_dialer_textview_confirm_it (moko_dialer_text_view,
- ready_contact->p_entry->content);
- DBG_MESSAGE ("And here we are supposed to call out directly");
- window_dialer_dial_out (appdata);
-
-
-}
-
-void
-on_dialer_autolist_nomatch (GtkWidget * widget, gpointer user_data)
-{
-
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
-
- DBG_MESSAGE ("GOT THE MESSAGE OF no match");
- moko_dialer_textview_fill_it (moko_dialer_text_view, "");
-
-}
-
-void
-on_dialer_menu_close (GtkWidget * widget, gpointer user_data)
-{
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- gtk_main_quit ();
-}
-
-void
-on_dialer_menu_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
- gtk_widget_hide (appdata->window_dialer);
-}
-
-
-
-
-void
-on_dialer_panel_user_input (GtkWidget * widget, gchar parac,
- gpointer user_data)
-{
- char input[2];
- input[0] = parac;
- input[1] = 0;
- gchar *codesinput = NULL;
-
-//DBG_TRACE();
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- MokoDialerTextview *moko_dialer_text_view = appdata->moko_dialer_text_view;
-
-
- moko_dialer_textview_insert (moko_dialer_text_view, input);
-//DBG_TRACE();
-
-
- codesinput =
- g_strdup (moko_dialer_textview_get_input (moko_dialer_text_view, FALSE));
-
- if (codesinput
- && (g_utf8_strlen (codesinput, -1) >= MOKO_DIALER_MIN_SENSATIVE_LEN))
- {
- moko_dialer_autolist_refresh_by_string (appdata->moko_dialer_autolist,
- codesinput, TRUE);
- }
- else
- {
- moko_dialer_autolist_hide_all_tips (appdata->moko_dialer_autolist);
- }
-
- if (codesinput)
- g_free (codesinput);
-
-}
-
-void
-on_dialer_panel_user_hold (GtkWidget * widget, gchar parac,
- gpointer user_data)
-{
- g_print ("on_dialer_panel_user_hold:%c\n", parac);
-}
-
-void
-on_window_dialer_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
- appdata->window_present = 0;
-}
-
-void
-on_window_dialer_show (GtkWidget * widget, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- appdata->window_present = widget;
- DBG_LEAVE ();
-}
-
-
-
-
-
-
-#define WINDOW_DIALER_BUTTON_SIZE_X 100
-#define WINDOW_DIALER_BUTTON_SIZE_Y 100
-gint
-window_dialer_init (MokoDialerData * p_dialer_data)
-{
-
- if (!p_dialer_data->window_dialer)
- {
-
- GdkColor color;
- gdk_color_parse ("black", &color);
-
- GtkWidget *vbox = NULL;
-
-
- GtkWidget *window = moko_finger_window_new ();
-
- GtkMenu *appmenu = GTK_MENU (gtk_menu_new ());
- GtkWidget *closeitem = gtk_menu_item_new_with_label ("Close");
- g_signal_connect (G_OBJECT (closeitem), "activate",
- G_CALLBACK (on_dialer_menu_close), p_dialer_data);
- gtk_menu_shell_append (GTK_MENU_SHELL (appmenu), closeitem);
-
- GtkMenuItem *hideitem =
- GTK_MENU_ITEM (gtk_menu_item_new_with_label ("Hide"));
- g_signal_connect (G_OBJECT (hideitem), "activate",
- G_CALLBACK (on_dialer_menu_hide), p_dialer_data);
- gtk_menu_shell_append (GTK_MENU_SHELL (appmenu), GTK_WIDGET (hideitem));
-
-
- moko_finger_window_set_application_menu (MOKO_FINGER_WINDOW (window),
- appmenu);
-
- g_signal_connect (G_OBJECT (window), "delete_event",
- G_CALLBACK (gtk_widget_hide_on_delete), NULL);
- g_signal_connect (G_OBJECT (window), "show",
- G_CALLBACK (on_window_dialer_show), p_dialer_data);
- g_signal_connect (G_OBJECT (window), "hide",
- G_CALLBACK (on_window_dialer_hide), p_dialer_data);
-
-
-
- /* contents */
- vbox = gtk_vbox_new (FALSE, 0);
- GtkWidget *hbox = gtk_hbox_new (FALSE, 10);
-
-
- GtkWidget *eventbox1 = gtk_event_box_new ();
- gtk_widget_set_name (eventbox1, "gtkeventbox-black");
-
- GtkWidget *autolist = moko_dialer_autolist_new ();
- moko_dialer_autolist_set_data (MOKO_DIALER_AUTOLIST (autolist),
- &(p_dialer_data->g_contactlist));
- p_dialer_data->moko_dialer_autolist = MOKO_DIALER_AUTOLIST (autolist);
-
- gtk_container_add (GTK_CONTAINER (eventbox1), autolist);
- gtk_box_pack_start (GTK_BOX (vbox), eventbox1, FALSE, FALSE, 0);
-
- gtk_widget_modify_bg (eventbox1, GTK_STATE_NORMAL, &color);
-
- g_signal_connect (GTK_OBJECT (autolist), "user_selected",
- G_CALLBACK (on_dialer_autolist_user_selected),
- p_dialer_data);
-
-
- g_signal_connect (GTK_OBJECT (autolist), "user_confirmed",
- G_CALLBACK (on_dialer_autolist_user_confirmed),
- p_dialer_data);
-
- g_signal_connect (GTK_OBJECT (autolist), "autolist_nomatch",
- G_CALLBACK (on_dialer_autolist_nomatch), p_dialer_data);
-
-
-
-
-
- eventbox1 = gtk_event_box_new ();
- gtk_widget_set_name (eventbox1, "gtkeventbox-black");
- gtk_widget_modify_bg (eventbox1, GTK_STATE_NORMAL, &color);
-
- GtkWidget *mokotextview = moko_dialer_textview_new ();
- p_dialer_data->moko_dialer_text_view =
- MOKO_DIALER_TEXTVIEW (mokotextview);
-
- gtk_container_add (GTK_CONTAINER (eventbox1), mokotextview);
- gtk_box_pack_start (GTK_BOX (vbox), eventbox1, FALSE, FALSE, 0);
-
- GtkWidget *mokodialerpanel = moko_dialer_panel_new ();
-
- gtk_widget_set_size_request (mokodialerpanel, 380, 384);
-
-
- g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_input",
- G_CALLBACK (on_dialer_panel_user_input), p_dialer_data);
-
-
- g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_hold",
- G_CALLBACK (on_dialer_panel_user_hold), p_dialer_data);
-
- gtk_box_pack_start (GTK_BOX (hbox), mokodialerpanel, TRUE, TRUE, 5);
-
-
-
-//the buttons
-
- GtkWidget *vbox2 = gtk_vbox_new (FALSE, 0);
- GtkWidget *button1 = moko_pixmap_button_new ();
- g_signal_connect (G_OBJECT (button1), "clicked",
- G_CALLBACK (cb_delete_button_clicked), p_dialer_data);
- gtk_widget_set_name (button1, "mokofingerbutton-orange");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button1),
- file_new_image_from_relative_path ("delete.png"));
- moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
- (button1), "Delete");
- gtk_widget_set_size_request (button1, WINDOW_DIALER_BUTTON_SIZE_X,
- WINDOW_DIALER_BUTTON_SIZE_Y);
-
- gtk_box_pack_start (GTK_BOX (vbox2), button1, FALSE, FALSE, 5);
-
- GtkWidget *button3 = moko_pixmap_button_new ();
- g_signal_connect (G_OBJECT (button3), "clicked",
- G_CALLBACK (cb_history_button_clicked), p_dialer_data);
- gtk_widget_set_name (button3, "mokofingerbutton-orange");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button3),
- file_new_image_from_relative_path ("history.png"));
- moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
- (button3), "History");
- gtk_widget_set_size_request (button3, WINDOW_DIALER_BUTTON_SIZE_X,
- WINDOW_DIALER_BUTTON_SIZE_Y);
- gtk_box_pack_start (GTK_BOX (vbox2), button3, FALSE, FALSE, 5);
-
-
- GtkWidget *button2 = moko_pixmap_button_new ();
-
- g_signal_connect (G_OBJECT (button2), "clicked",
- G_CALLBACK (cb_dialer_button_clicked), p_dialer_data);
- gtk_widget_set_name (button2, "mokofingerbutton-black");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button2),
- file_new_image_from_relative_path ("phone.png"));
- moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
- (button2), "Dial");
- gtk_widget_set_size_request (button2, WINDOW_DIALER_BUTTON_SIZE_X + 20,
- WINDOW_DIALER_BUTTON_SIZE_Y + 80);
-
- gtk_box_pack_start (GTK_BOX (vbox2), button2, FALSE, FALSE, 20);
-
-
- gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5);
-
-
-
- gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 5);
-
-
-
-
- moko_finger_window_set_contents (MOKO_FINGER_WINDOW (window), vbox);
-
- p_dialer_data->window_dialer = window;
-
- }
-
- return 1;
-}
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-dialer.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,38 +0,0 @@
-/* openmoko-dialer-window-dialer.h
- *
- * Authored By Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-
-#ifndef _OPENMOKO_DIALER_WINDOW_DIALER_H
-#define _OPENMOKO_DIALER_WINDOW_DIALER_H
-
-#ifdef __cplusplus
-
-
-
-extern "C"
-{
-#endif
-
-
- gint window_dialer_init (MokoDialerData * p_dialer_data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,1042 +0,0 @@
-/* openmoko-dialer-window-talking.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-
-#include <libmokoui/moko-finger-tool-box.h>
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-finger-wheel.h>
-#include <libmokoui/moko-pixmap-button.h>
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtktreeview.h>
-#include <gtk/gtktreemodelfilter.h>
-#include <gtk/gtkscrolledwindow.h>
-#include <gtk/gtkimagemenuitem.h>
-#include <gtk/gtkmenu.h>
-
-#include "common.h"
-#include "contacts.h"
-#include "openmoko-dialer-main.h"
-#include "moko-dialer-status.h"
-#include "history.h"
-#include "openmoko-dialer-window-history.h"
-
-
-/* function declarations */
-
-gint history_update_counter (MokoDialerData * p_dialer_data);
-
-
-/**
- * @brief re-filter the treeview widget by the history type
- *
- *
- *
- * @param type HISTORY_TYPE, indicating only the history items of that type will be displayed
- * @return 1
- * @retval
- */
-
-int
-history_view_change_filter (MokoDialerData * p_dialer_data,
- HISTORY_TYPE type)
-{
- GtkTreePath *path;
- DBG_TRACE ();
- p_dialer_data->g_history_filter_type = type;
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER
- (p_dialer_data->g_list_store_filter));
-
- path = gtk_tree_path_new_first ();
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (p_dialer_data->treeview_history),
- path, 0, 0);
- gtk_tree_path_free (path);
-
-
- return 1;
-}
-
-void
-on_all_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
-{
- MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
- GtkWidget *label = p_dialer_data->label_filter_history;
- gtk_label_set_text (GTK_LABEL (label), "All");
- history_view_change_filter (p_dialer_data, ALL);
- history_update_counter (p_dialer_data);
-}
-
-
-void
-on_missed_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
-{
- MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
- GtkWidget *label = p_dialer_data->label_filter_history;
- gtk_label_set_text (GTK_LABEL (label), "Missed");
- history_view_change_filter (p_dialer_data, MISSED);
- history_update_counter (p_dialer_data);
-}
-
-
-void
-on_dialed_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
-{
- MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
- GtkWidget *label = p_dialer_data->label_filter_history;
- gtk_label_set_text (GTK_LABEL (label), "Dialed");
- history_view_change_filter (p_dialer_data, OUTGOING);
- history_update_counter (p_dialer_data);
-}
-
-
-void
-on_received_calls_activate (GtkMenuItem * menuitem, gpointer user_data)
-{
- MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
- GtkWidget *label = p_dialer_data->label_filter_history;
- gtk_label_set_text (GTK_LABEL (label), "Received");
- history_view_change_filter (p_dialer_data, INCOMING);
- history_update_counter (p_dialer_data);
-}
-
-gboolean
-on_eventboxTop_button_release_event (GtkWidget * widget,
- GdkEventButton * event,
- MokoDialerData * appdata)
-{
-
- gtk_menu_popup (GTK_MENU (appdata->menu_history), 0, 0, 0, 0, 0, 0);
-
- return FALSE;
-}
-
-void
-cb_openmoko_history_wheel_press_left_up (GtkWidget * widget,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
- GtkTreeSelection *selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreePath *path;
- GtkTreeView *treeview;
- //DBG_ENTER();
-
- treeview = GTK_TREE_VIEW (appdata->treeview_history);
- if (treeview == 0)
- return;
-
- selection = gtk_tree_view_get_selection (treeview);
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- DBG_WARN ("no current selection\n");
- return;
- }
- path = gtk_tree_model_get_path (model, &iter);
- if (!gtk_tree_path_prev (path))
- {
- DBG_WARN ("no prev for the top level\n");
- gtk_tree_path_free (path);
- return;
- }
- gtk_tree_view_set_cursor (treeview, path, 0, 0);
- return;
-
-
-}
-
-void
-cb_openmoko_history_wheel_press_right_down (GtkWidget * widget,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
- GtkTreeSelection *selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreePath *path;
- GtkTreeView *treeview;
- //DBG_ENTER();
- treeview = GTK_TREE_VIEW (appdata->treeview_history);
- if (treeview == 0)
- return;
-
- selection = gtk_tree_view_get_selection (treeview);
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- DBG_WARN ("no current selection\n");
- return;
- }
- if (gtk_tree_model_iter_next (model, &iter))
- {
- path = gtk_tree_model_get_path (model, &iter);
- gtk_tree_view_set_cursor (treeview, path, 0, 0);
- gtk_tree_path_free (path);
- return;
- }
-
- return;
-}
-
-
-void
-cb_tool_button_history_delete_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- GtkTreeIter iter; //iter of the filter store
- GtkTreeIter iter0; //iter of the back store
- GtkTreeModel *model;
- GtkTreeModel *model0;
- GtkTreeSelection *selection;
- GtkTreeView *treeview;
- GtkTreePath *path;
- treeview = GTK_TREE_VIEW (appdata->treeview_history);
- selection = gtk_tree_view_get_selection (treeview);
-
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- return;
- }
-
- if (appdata->g_currentselected)
- {
- DBG_MESSAGE ("to delete %s", appdata->g_currentselected->number);
- history_delete_entry (&(appdata->g_historylist),
- appdata->g_currentselected);
- }
-
- path = gtk_tree_model_get_path (model, &iter);
-
-
- model0 = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
-
-
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER
- (model), &iter0, &iter);
-
- gtk_list_store_remove (GTK_LIST_STORE (model0), &iter0);
-
-
- gtk_tree_view_set_cursor (treeview, path, 0, 0);
-
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- if (!gtk_tree_path_prev (path))
- {
- gtk_tree_view_set_cursor (treeview, path, 0, 0);
- DBG_WARN ("history is empty now!");
- history_update_counter (appdata);
- }
- else
- {
- gtk_tree_view_set_cursor (treeview, path, 0, 0);
- }
- //we deleted the last one.
-
- }
-
- gtk_tree_path_free (path);
-
- return;
-
- DBG_ENTER ();
-}
-
-void
-cb_tool_button_history_call_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
-
-
-
-}
-
-void
-cb_tool_button_history_sms_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
-
-
-
-}
-
-void
-cb_tool_button_history_back_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- gtk_widget_hide (appdata->window_history);
-
-}
-
-
-void
-on_window_history_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
-
- gtk_widget_hide (appdata->wheel_history);
- gtk_widget_hide (appdata->toolbox_history);
-
-}
-
-void
-on_window_history_show (GtkWidget * widget, MokoDialerData * appdata)
-{
- DBG_ENTER ();
-
-
-
- if (appdata->toolbox_history)
- gtk_widget_show (appdata->toolbox_history);
-
- if (appdata->wheel_history)
- gtk_widget_show (appdata->wheel_history);
-
-//FIXME: some day later, the contact changed infor will be sent to the dialer.
- if (appdata->history_need_to_update)
- {
- DBG_MESSAGE ("NEED TO UPDATE HISTORY");
- }
- history_update_counter (appdata);
-
- DBG_LEAVE ();
-}
-
-
-
-
-gint
-window_history_init (MokoDialerData * p_dialer_data)
-{
-
- DBG_ENTER ();
-
-
- if (p_dialer_data->window_history == 0)
- {
-
- history_create_menu_history (p_dialer_data);
-
- MokoFingerWindow *window = NULL;
- MokoFingerToolBox *tools = NULL;
- GtkWidget *button;
- GtkWidget *image;
-
-//now the container--window
- window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
- p_dialer_data->window_history = GTK_WIDGET (window);
-
-
- moko_finger_window_set_contents (window,
- create_window_history_content
- (p_dialer_data));
-
- g_signal_connect ((gpointer) window, "show",
- G_CALLBACK (on_window_history_show), p_dialer_data);
- g_signal_connect ((gpointer) window, "hide",
- G_CALLBACK (on_window_history_hide), p_dialer_data);
-
- //FIXME: without gtk_widget_show_all first and then hide, the history view will not show properly. -tony
- //gtk_widget_show_all(GTK_WIDGET(window));
-
- //now the wheel and tool box, why should the wheel and toolbox created after the gtk_widget_show_all???
- // This causes a segfault for me... maybe a problem in libmokoui? - thomas
- //gtk_widget_show (GTK_WIDGET (moko_finger_window_get_wheel (window)));
-
- g_signal_connect (G_OBJECT (moko_finger_window_get_wheel (window)),
- "press_left_up",
- G_CALLBACK (cb_openmoko_history_wheel_press_left_up),
- p_dialer_data);
- g_signal_connect (G_OBJECT (moko_finger_window_get_wheel (window)),
- "press_right_down",
- G_CALLBACK
- (cb_openmoko_history_wheel_press_right_down),
- p_dialer_data);
-
- g_signal_connect (G_OBJECT (moko_finger_window_get_wheel (window)),
- "press_bottom",
- G_CALLBACK (cb_tool_button_history_back_clicked),
- p_dialer_data);
-
-
- tools = moko_finger_window_get_toolbox (window);
-
- /* TODO: remove the GTK_WIDGET() casts when libmokoui is fixed */
- button = moko_finger_tool_box_add_button_without_label (tools);
- image = file_new_image_from_relative_path ("phone.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_history_call_clicked),
- p_dialer_data);
-
- button =
- GTK_WIDGET (moko_finger_tool_box_add_button_without_label (tools));
- image = file_new_image_from_relative_path ("sms.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_history_sms_clicked),
- p_dialer_data);
-
-
- button =
- GTK_WIDGET (moko_finger_tool_box_add_button_without_label (tools));
- image = file_new_image_from_relative_path ("delete_01.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_history_delete_clicked),
- p_dialer_data);
- button =
- GTK_WIDGET (moko_finger_tool_box_add_button_without_label (tools));
- image = file_new_image_from_relative_path ("exit.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_history_back_clicked),
- p_dialer_data);
-
- p_dialer_data->wheel_history =
- GTK_WIDGET (moko_finger_window_get_wheel (window));
- p_dialer_data->toolbox_history = GTK_WIDGET (tools);
- DBG_LEAVE ();
- }
- else
- {
- //here we have to refresh it.
- DBG_TRACE ();
- }
- return 1;
-}
-
-void
-on_treeviewHistory_cursor_changed (GtkTreeView * treeview, gpointer user_data)
-{
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- HISTORY_ENTRY *p;
- int hasname;
- MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
-
- selection =
- gtk_tree_view_get_selection (GTK_TREE_VIEW
- (p_dialer_data->treeview_history));
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- p_dialer_data->g_currentselected = 0;
- return;
- }
-
- gtk_tree_model_get (model, &iter, COLUMN_ENTRYPOINTER, &p, -1);
-
- p_dialer_data->g_currentselected = p;
-
- gtk_tree_model_get (model, &iter, COLUMN_HASNAME, &hasname, -1);
- history_update_counter (p_dialer_data);
-
-}
-
-
-
-GtkWidget *
-create_window_history_content (MokoDialerData * p_dialer_data)
-{
-
- GtkWidget *treeviewHistory;
- GtkWidget *vbox = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox);
- //FIRST of all, the top title area;
- GtkWidget *eventboxTop = gtk_event_box_new ();
- gtk_widget_show (eventboxTop);
- gtk_box_pack_start (GTK_BOX (vbox), eventboxTop, FALSE, FALSE, 5);
- gtk_widget_set_size_request (eventboxTop, 480, 64);
- gtk_widget_set_name (eventboxTop, "gtkeventbox-black");
-
- GtkWidget *hbox67 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox67);
- gtk_container_add (GTK_CONTAINER (eventboxTop), hbox67);
-
- GtkWidget *eventboxLeftTop = gtk_event_box_new ();
- gtk_widget_show (eventboxLeftTop);
- gtk_box_pack_start (GTK_BOX (hbox67), eventboxLeftTop, FALSE, TRUE, 0);
- gtk_widget_set_name (eventboxLeftTop, "gtkeventbox-black");
-
-
-
- GtkWidget *imageLeftMenu = file_new_image_from_relative_path ("all.png");
- gtk_widget_show (imageLeftMenu);
- gtk_container_add (GTK_CONTAINER (eventboxLeftTop), imageLeftMenu);
-
- GtkWidget *labelHistoryTitle = gtk_label_new (("History-"));
- gtk_widget_show (labelHistoryTitle);
- gtk_box_pack_start (GTK_BOX (hbox67), labelHistoryTitle, FALSE, FALSE, 0);
- gtk_widget_set_size_request (labelHistoryTitle, 221, -1);
- gtk_label_set_justify (GTK_LABEL (labelHistoryTitle), GTK_JUSTIFY_RIGHT);
- gtk_misc_set_alignment (GTK_MISC (labelHistoryTitle), 1, 0.5);
-
- GtkWidget *labelFilter = gtk_label_new (("All"));
- gtk_widget_show (labelFilter);
- gtk_box_pack_start (GTK_BOX (hbox67), labelFilter, TRUE, TRUE, 0);
- gtk_misc_set_alignment (GTK_MISC (labelFilter), 0, 0.5);
- p_dialer_data->label_filter_history = labelFilter;
-
- GtkWidget *labelCounter = gtk_label_new (("0/0"));
- gtk_widget_show (labelCounter);
- gtk_box_pack_start (GTK_BOX (hbox67), labelCounter, TRUE, TRUE, 0);
- gtk_label_set_justify (GTK_LABEL (labelCounter), GTK_JUSTIFY_RIGHT);
- gtk_misc_set_alignment (GTK_MISC (labelCounter), 0.8, 0.5);
- p_dialer_data->label_counter_history = labelCounter;
-
- g_signal_connect ((gpointer) eventboxTop, "button_release_event",
- G_CALLBACK (on_eventboxTop_button_release_event),
- p_dialer_data);
-
- GtkWidget *align = gtk_alignment_new (0, 0, 1, 1);
- gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 150, 0, 0); //FIXME too many numbers has to be retrieved from style
-
- GtkWidget *scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (scrolledwindow);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow),
- GTK_POLICY_NEVER, GTK_POLICY_NEVER);
-
- treeviewHistory = gtk_tree_view_new ();
- gtk_widget_show (treeviewHistory);
- gtk_container_add (GTK_CONTAINER (align), scrolledwindow);
- gtk_container_add (GTK_CONTAINER (scrolledwindow), treeviewHistory);
-
-
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeviewHistory), FALSE);
- gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeviewHistory), FALSE);
-// gtk_misc_set_alignment (GTK_MISC (treeviewHistory), 0.5, 0.5);
- gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
-
-
- gtk_widget_set_name (treeviewHistory, "gtktreeview-black");
- p_dialer_data->treeview_history = treeviewHistory;
- history_build_history_list_view (p_dialer_data);
- gtk_widget_set_size_request (scrolledwindow, -1, 400);
-// gtk_misc_set_alignment (GTK_MISC (treeviewHistory),1,0.1);
-
-
- g_signal_connect ((gpointer) treeviewHistory, "cursor_changed",
- G_CALLBACK (on_treeviewHistory_cursor_changed),
- p_dialer_data);
-
- gtk_widget_show (vbox);
- return vbox;
-}
-
-
-/**
- * @brief re-filter the treeview widget by current history type,a callback when the history treeview refreshes
- *
- * this callback will be called for every treemodel iters,whenever the treeview filter is refreshing
- *
- * @param model GtkTreeModel *, the background database of the treeview
- * @param iter GtkTreeIter *, the iterator of every item of the model.
- * @param data gpointer , of no use currently
- * @return boolean
- * @retval TRUE means the iter will be displayed
- * @retval FALSE means the iter will not be displayed
- */
-static gboolean
-history_view_filter_visible_function (GtkTreeModel * model,
- GtkTreeIter * iter, gpointer data)
-{
- MokoDialerData *p_dialer_data = (MokoDialerData *) data;
- HISTORY_TYPE type;
- if (p_dialer_data->g_history_filter_type == ALL)
- return TRUE;
- gtk_tree_model_get (model, iter, COLUMN_TYPE, &type, -1);
- if (type == p_dialer_data->g_history_filter_type)
- return TRUE;
- else
- return FALSE;
-}
-
-
-
-/**
- * @brief find the treeview in the window, fill-in the data and show it on the screen.
- *
- *
- *
- * @param window GtkWidget* the window which contains the history treeview. but it's not necessarilly
- *to be a window, any widget that can help to lookup the treeview will be OK.
- * @return
- * @retval 0 error occured
- * @retval 1 everything is OK
- */
-
-gint
-history_build_history_list_view (MokoDialerData * p_dialer_data)
-{
- GtkListStore *list_store;
-
- GtkTreeIter iter;
- HISTORY_ENTRY *entry;
-
- //copied
- GtkTreeViewColumn *col;
- GtkCellRenderer *renderer;
-
- //GtkTreeModel *model;
- GtkWidget *contactview = NULL;
-
- //DBG_ENTER();
-
- //DBG_TRACE();
- p_dialer_data->g_history_filter_type = ALL;
- contactview = p_dialer_data->treeview_history;
-
- if (contactview == NULL)
- return 0;
-//pack image and label
- col = gtk_tree_view_column_new ();
-
- gtk_tree_view_column_set_title (col, ("Title"));
- gtk_tree_view_column_set_resizable (col, TRUE);
-
-
-
- renderer = gtk_cell_renderer_pixbuf_new ();
- gtk_tree_view_column_pack_start (col, renderer, FALSE);
- gtk_tree_view_column_set_attributes (col, renderer,
- "pixbuf", COLUMN_TYPEICON, NULL);
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (col, renderer, FALSE);
- gtk_tree_view_column_set_attributes (col, renderer,
- "text", COLUMN_TIME, NULL);
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (col, renderer, FALSE);
- gtk_tree_view_column_set_attributes (col, renderer,
- "text", COLUMN_SEPRATE, NULL);
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (col, renderer, TRUE);
- gtk_tree_view_column_set_attributes (col, renderer,
- "text", COLUMN_NAME_NUMBER, NULL);
-
-
- gtk_tree_view_append_column (GTK_TREE_VIEW (contactview), col);
-
-
- entry = p_dialer_data->g_historylist.first;
-
- list_store = gtk_list_store_new (N_COLUMN, G_TYPE_INT, GDK_TYPE_PIXBUF,
- G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_INT, G_TYPE_POINTER,
- G_TYPE_INT, -1);
- //we will use a filter to facilitate the filtering in treeview without rebuilding the database.
- p_dialer_data->g_list_store_filter =
- gtk_tree_model_filter_new (GTK_TREE_MODEL (list_store), NULL);
- gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER
- (p_dialer_data->
- g_list_store_filter),
- history_view_filter_visible_function,
- p_dialer_data, NULL);
-
- //load the three icons to memory.
-
- // GError *error = NULL;
- p_dialer_data->g_iconReceived = create_pixbuf ("received.png");
-
- /* FIXME: error handling hasn't been implemented yet!
- p_dialer_data->g_iconReceived = create_pixbuf ("received.png", &error);
- if (error)
- {
- DBG_WARN ("Cound not load icon :%s", error->message);
- g_error_free (error);
- p_dialer_data->g_iconReceived = NULL;
- error = NULL;
- }
- */
-
- p_dialer_data->g_iconDialed = create_pixbuf ("dialed.png");
- /* FIXME: error handling hasn't been implemented yet!
- p_dialer_data->g_iconDialed = create_pixbuf ("dialed.png", &error);
- if (error)
- {
- DBG_WARN ("Cound not load icon :%s", error->message);
- g_error_free (error);
- p_dialer_data->g_iconDialed = NULL;
- error = NULL;
- }
- */
-
- p_dialer_data->g_iconMissed = create_pixbuf ("missed.png");
- /* FIXME: error handling hasn't been implemented yet!
- p_dialer_data->g_iconMissed = create_pixbuf ("missed.png", &error);
- if (error)
- {
- DBG_WARN ("Cound not load icon :%s", error->message);
- g_error_free (error);
- p_dialer_data->g_iconMissed = NULL;
- error = NULL;
- }
- */
-
- while (entry)
- {
- //DBG_MESSAGE(entry->number);
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPE, entry->type,
- COLUMN_SEPRATE, "--", COLUMN_TIME, entry->time,
- COLUMN_DURATION, entry->durationsec,
- COLUMN_ENTRYPOINTER, entry, COLUMN_HASNAME, 0, -1);
- if (entry->name == 0)
- {
- //DBG_MESSAGE(entry->number);
- gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER,
- entry->number, -1);
- gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 0, -1);
- }
- else
- {
- gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER,
- entry->name, -1);
- gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 1, -1);
- }
- switch (entry->type)
- {
- case INCOMING:
- {
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- p_dialer_data->g_iconReceived, -1);
- // icon=gdk_pixbuf_new_from_file("./received.png",&error);
- break;
- }
- case OUTGOING:
- { // icon=gdk_pixbuf_new_from_file("./dialed.png",&error);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- p_dialer_data->g_iconDialed, -1);
- break;
- }
- case MISSED:
- { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- p_dialer_data->g_iconMissed, -1);
- break;
- }
-
- default:
-
- { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- p_dialer_data->g_iconMissed, -1);
- break;
- }
- }
-
-
-
- entry = entry->next;
- }
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (contactview),
- GTK_TREE_MODEL (p_dialer_data->
- g_list_store_filter));
-
- g_object_unref (list_store);
-
- return 1;
-}
-
-
-/**
- * @brief update the counter display widget - labelCounter
- *
- * @param widget GtkWidget*, any widget in the same window with treeviewHistory and labelCounter
- *
- * @return 1
- */
-gint
-history_update_counter (MokoDialerData * p_dialer_data)
-{
- DBG_ENTER ();
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- GtkTreePath *path;
- GtkTreeView *treeview;
- int count = 0;
- int nth = 0;
- char *pathstring;
- char display[10];
-
- treeview = GTK_TREE_VIEW (p_dialer_data->treeview_history);
- if (!p_dialer_data->treeview_history)
- {
- DBG_WARN ("COUNTER NOT READY ");
- return 0;
- }
-
-
- model = gtk_tree_view_get_model (treeview);
-
- count = gtk_tree_model_iter_n_children (model, NULL);
-
- selection = gtk_tree_view_get_selection (treeview);
-
- if (!gtk_tree_selection_get_selected (selection, &model, &iter))
- {
- nth = 0;
- }
- else
- {
- path = gtk_tree_model_get_path (model, &iter);
- pathstring = gtk_tree_path_to_string (path);
- nth = atoi (pathstring) + 1;
- gtk_tree_path_free (path);
-
- }
-
- GtkWidget *labelcounter;
- labelcounter = p_dialer_data->label_counter_history;
- sprintf (display, "%d/%d", nth, count);
- gtk_label_set_text (GTK_LABEL (labelcounter), display);
- return 1;
-
-}
-
-GtkWidget *
-history_create_menu_history (MokoDialerData * p_dialer_data)
-{
- if (!p_dialer_data->menu_history)
- {
- GtkWidget *menu_history;
- GtkWidget *all_calls;
- GtkWidget *imageAll;
- GtkWidget *separator1;
- GtkWidget *missed_calls;
- GtkWidget *imageMissed;
- GtkWidget *separator3;
- GtkWidget *dialed_calls;
- GtkWidget *imageDialed;
- GtkWidget *separator2;
- GtkWidget *received_calls;
- GtkWidget *imageReceived;
-
- menu_history = gtk_menu_new ();
- gtk_container_set_border_width (GTK_CONTAINER (menu_history), 2);
-
- all_calls = gtk_image_menu_item_new_with_mnemonic (("Calls All"));
- gtk_widget_show (all_calls);
- gtk_container_add (GTK_CONTAINER (menu_history), all_calls);
- gtk_widget_set_size_request (all_calls, 250, 60);
-
-
- imageAll = file_new_image_from_relative_path ("all.png");
- gtk_widget_show (imageAll);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (all_calls), imageAll);
-
- separator1 = gtk_separator_menu_item_new ();
- gtk_widget_show (separator1);
- gtk_container_add (GTK_CONTAINER (menu_history), separator1);
- gtk_widget_set_size_request (separator1, 120, -1);
- gtk_widget_set_sensitive (separator1, FALSE);
-
- missed_calls = gtk_image_menu_item_new_with_mnemonic (("Calls Missed "));
- gtk_widget_show (missed_calls);
- gtk_container_add (GTK_CONTAINER (menu_history), missed_calls);
- gtk_widget_set_size_request (missed_calls, 120, 60);
-
- //imageMissed = gtk_image_new_from_stock ("gtk-goto-bottom", GTK_ICON_SIZE_MENU);
- imageMissed = file_new_image_from_relative_path ("missed.png");
-
- gtk_widget_show (imageMissed);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (missed_calls),
- imageMissed);
-
- separator3 = gtk_separator_menu_item_new ();
- gtk_widget_show (separator3);
- gtk_container_add (GTK_CONTAINER (menu_history), separator3);
- gtk_widget_set_size_request (separator3, 120, -1);
- gtk_widget_set_sensitive (separator3, FALSE);
-
- dialed_calls = gtk_image_menu_item_new_with_mnemonic (("Calls Dialed"));
- gtk_widget_show (dialed_calls);
- gtk_container_add (GTK_CONTAINER (menu_history), dialed_calls);
- gtk_widget_set_size_request (dialed_calls, 120, 60);
-
- // imageDialed = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_MENU);
- imageDialed = file_new_image_from_relative_path ("dialed.png");
- gtk_widget_show (imageDialed);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (dialed_calls),
- imageDialed);
-
- separator2 = gtk_separator_menu_item_new ();
- gtk_widget_show (separator2);
- gtk_container_add (GTK_CONTAINER (menu_history), separator2);
- gtk_widget_set_size_request (separator2, 120, -1);
- gtk_widget_set_sensitive (separator2, FALSE);
-
- received_calls =
- gtk_image_menu_item_new_with_mnemonic (("Calls Received "));
- gtk_widget_show (received_calls);
- gtk_container_add (GTK_CONTAINER (menu_history), received_calls);
- gtk_widget_set_size_request (received_calls, 120, 60);
-
-// imageReceived = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_MENU);
- imageReceived = file_new_image_from_relative_path ("received.png");
- gtk_widget_show (imageReceived);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (received_calls),
- imageReceived);
-
- g_signal_connect ((gpointer) all_calls, "activate",
- G_CALLBACK (on_all_calls_activate), p_dialer_data);
- g_signal_connect ((gpointer) missed_calls, "activate",
- G_CALLBACK (on_missed_calls_activate), p_dialer_data);
- g_signal_connect ((gpointer) dialed_calls, "activate",
- G_CALLBACK (on_dialed_calls_activate), p_dialer_data);
- g_signal_connect ((gpointer) received_calls, "activate",
- G_CALLBACK (on_received_calls_activate), p_dialer_data);
-
- p_dialer_data->menu_history = menu_history;
- return menu_history;
- }
- else
- return p_dialer_data->menu_history;
-}
-
-
-
-/**
- * @brief add an entry to the history treeview
- *
- *
- *
- * @param entry HISTORY_ENTRY *, the history entry to be added to the treeview.
- * @return
- * @retval 0 error occured
- * @retval 1 everything is OK
- */
-gint
-history_list_view_add (MokoDialerData * appdata, HISTORY_ENTRY * entry)
-{
- DBG_ENTER ();
- if (entry == 0)
- {
- DBG_ERROR ("THE ENTRY IS ZERO");
- return 0;
- }
-
- if (appdata->treeview_history == 0)
- {
- DBG_WARN ("treeview_history not ready");
- return 0;
-
- }
- //
- GtkTreeIter iter; //iter of the filter store
- GtkTreeModel *model;
- GtkListStore *list_store;
- GtkTreeView *treeview;
-
- treeview = GTK_TREE_VIEW (appdata->treeview_history);
-
- model =
- gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER
- (appdata->g_list_store_filter));
-
- list_store = GTK_LIST_STORE (model);
- //
-
-
- //DBG_MESSAGE(entry->number);
- gtk_list_store_insert (list_store, &iter, 0);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPE, entry->type,
- COLUMN_SEPRATE, "--", COLUMN_TIME, entry->time,
- COLUMN_DURATION, entry->durationsec,
- COLUMN_ENTRYPOINTER, entry, COLUMN_HASNAME, 0, -1);
- if (entry->name == 0)
- {
- //DBG_MESSAGE(entry->number);
- gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER,
- entry->number, -1);
- gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 0, -1);
- }
- else
- {
- gtk_list_store_set (list_store, &iter, COLUMN_NAME_NUMBER, entry->name,
- -1);
- gtk_list_store_set (list_store, &iter, COLUMN_HASNAME, 1, -1);
- }
- switch (entry->type)
- {
- case INCOMING:
- {
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- appdata->g_iconReceived, -1);
- // icon=gdk_pixbuf_new_from_file("./received.png",&error);
- break;
- }
- case OUTGOING:
- { // icon=gdk_pixbuf_new_from_file("./dialed.png",&error);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- appdata->g_iconDialed, -1);
- break;
- }
- case MISSED:
- { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- appdata->g_iconMissed, -1);
- break;
- }
-
- default:
-
- { //icon=gdk_pixbuf_new_from_file("./missed.png",&error);
- gtk_list_store_set (list_store, &iter, COLUMN_TYPEICON,
- appdata->g_iconMissed, -1);
- break;
- }
- }
- history_update_counter (appdata);
- return 1;
-}
-
-
-gint
-add_histroy_entry (MokoDialerData * appdata, HISTORY_TYPE type,
- const char *name, const char *number, const char *id,
- char *time, char *date, int durationsec)
-{
-
-//DBG_ENTER();
- //DBG_MESSAGE("History add:%s,%s,%s,%s,%s,%d",name,number,picpath,time,date,durationsec);
- HISTORY_ENTRY *pentry =
- history_add_entry (&(appdata->g_historylist), type, name, number, id,
- time, date, durationsec);
- return history_list_view_add (appdata, pentry);
-}
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-history.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,49 +0,0 @@
-/* openmoko-dialer-window-history.h
- *
- * Authored By Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-
-#ifndef _OPENMOKO_DIALER_WINDOW_HISTORY_H
-#define _OPENMOKO_DIALER_WINDOW_HISTORY_H
-
-#ifdef __cplusplus
-
-
-
-extern "C"
-{
-#endif
-
-
- GtkWidget *create_window_history_content (MokoDialerData *
- p_dialer_data);
- gint window_history_init (MokoDialerData * p_dialer_data);
- gint history_build_history_list_view (MokoDialerData * p_dialer_data);
- void window_history_prepare (MokoDialerData * appdata);
- GtkWidget *history_create_menu_history (MokoDialerData *
- p_dialer_data);
- gint add_histroy_entry (MokoDialerData * appdata, HISTORY_TYPE type,
- const char *name, const char *number,
- const char *picpath, char *time, char *date,
- int durationsec);
- gint history_list_view_add (MokoDialerData * appdata,
- HISTORY_ENTRY * entry);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,281 +0,0 @@
-/* openmoko-dialer-window-incoming.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-
-#include <libmokoui/moko-finger-tool-box.h>
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-finger-wheel.h>
-#include <libmokoui/moko-pixmap-button.h>
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkvbox.h>
-
-#include "contacts.h"
-#include "openmoko-dialer-main.h"
-#include "moko-dialer-status.h"
-#include "openmoko-dialer-window-incoming.h"
-#include "openmoko-dialer-window-talking.h"
-#include "openmoko-dialer-window-history.h"
-#include "history.h"
-void
-cb_answer_button_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
- appdata->g_state.callstate = STATE_TALKING;
- /* TODO: MokoGsmdConnection->answer
- * gsm_answer ();
- */
-
- gtk_widget_hide (appdata->window_incoming);
-
- //transfer the contact info
- window_talking_prepare (appdata);
- gtk_widget_show (appdata->window_talking);
- DBG_LEAVE ();
-}
-
-void
-cb_ignore_button_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
- DBG_MESSAGE ("We will mute the phone for this call.");
- appdata->g_state.callstate = STATE_IGNORED;
- DBG_LEAVE ();
-} void
-
-cb_reject_button_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
- /* TODO: MokoGsmdConnection->hangup
- * gsm_hangup ();
- */
- appdata->g_state.callstate = STATE_REJECTED;
- gtk_widget_hide (appdata->window_incoming);
- DBG_LEAVE ();
-}
-
-void
-window_incoming_prepare (MokoDialerData * appdata)
-{
- if (!appdata)
-
- {
- DBG_WARN ("appdata=NULL!");
- return;
- }
- if (appdata->window_incoming == 0)
-
- {
- window_incoming_init (appdata);
- }
- moko_dialer_status_set_person_number (appdata->status_incoming,
- appdata->g_peer_info.number);
- if (appdata->g_peer_info.hasname)
-
- {
- moko_dialer_status_set_person_image (appdata->status_incoming,
- appdata->g_peer_info.ID);
- moko_dialer_status_set_person_name (appdata->status_incoming,
- appdata->g_peer_info.name);
- }
-
- else
-
- {
- moko_dialer_status_set_person_image (appdata->status_incoming, "");
- moko_dialer_status_set_person_name (appdata->status_incoming, "");
- }
-}
-void
-window_incoming_fails (MokoDialerData * appdata)
-{
- DBG_ENTER ();
- DBG_LEAVE ();
-} gint timer_incoming_time_out (MokoDialerData * appdata)
-{
-
-//DBG_ENTER();
- TIMER_DATA * timer_data = &(appdata->g_timer_data);
- moko_dialer_status_update_icon (appdata->status_incoming);
-
-//now that we have the incoming call status report correctly, the timeout mechanism is not needed.
-/*
- if (event_get_keep_calling ())
- {
- event_reset_keep_calling ();
- timer_data->ticks = 0;
- }
- else
- { //we count 4 before we confirm that there are no calling at all.
- if (timer_data->ticks >= 3)
- {
- DBG_MESSAGE ("THE CALLER aborted, we quit.");
- gsm_hangup ();
- appdata->g_state.callstate = STATE_MISSED;
- appdata->g_state.historytype = MISSED;
- gdk_threads_enter ();
- gtk_widget_hide (appdata->window_incoming);
- gdk_threads_leave ();
- return 0; //don't lookout the timeout.
- }
- else
- {
- DBG_MESSAGE ("ticks=%d", timer_data->ticks);
- timer_data->ticks++;
- }
- }
-*/
- return 1;
-}
-void
-on_window_incoming_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- if (appdata->g_timer_data.ptimer != 0)
-
- {
- g_source_remove (appdata->g_timer_data.ptimer);
- appdata->g_timer_data.ptimer = 0;
- }
- /*
- event_reset_clip_signaled ();
- event_reset_incoming_signaled ();
- event_reset_keep_calling ();
- */
- if (appdata->g_state.callstate != STATE_TALKING)
-
- { // add_histroy_entry(g_state.historytype,g_state.contactinfo.name,g_state.contactinfo.number,g_state.contactinfo.picpath,g_state.starttime,0);
- add_histroy_entry (appdata, appdata->g_state.historytype,
- appdata->g_peer_info.name,
- appdata->g_peer_info.number,
- appdata->g_peer_info.ID,
- appdata->g_state.starttime,
- appdata->g_state.startdate, 0);
- }
- DBG_LEAVE ();
-}
-void
-window_incoming_setup_timer (MokoDialerData * appdata)
-{
- time_t timep;
- struct tm *p;
- time (&timep);
- p = localtime (&timep);
- sprintf (appdata->g_state.starttime, "%02d:%02d:%02d", p->tm_hour,
- p->tm_min, p->tm_sec);
- sprintf (appdata->g_state.startdate, "%04d/%02d/%02d", p->tm_year,
- p->tm_mon, p->tm_mday);
- if (appdata->g_timer_data.ptimer != 0)
-
- {
- g_source_remove (appdata->g_timer_data.ptimer);
- appdata->g_timer_data.ptimer = 0;
- }
- memset (&(appdata->g_timer_data), 0, sizeof (appdata->g_timer_data));
- appdata->g_timer_data.stopsec = 0;
- appdata->g_timer_data.ptimer =
- g_timeout_add (1000, (GSourceFunc) timer_incoming_time_out,
- (gpointer) appdata);
-}
-void
-on_window_incoming_show (GtkWidget * widget, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- appdata->g_state.callstate = STATE_INCOMING;
- window_incoming_setup_timer (appdata);
- DBG_LEAVE ();
-} gint window_incoming_init (MokoDialerData * p_dialer_data)
-{
- DBG_ENTER ();
- MokoFingerWindow * window;
- GtkWidget * vbox;
- GtkWidget * status;
- if (p_dialer_data->window_incoming == 0)
-
- {
- vbox = gtk_vbox_new (FALSE, 0);
- status = moko_dialer_status_new ();
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "incoming_0.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "incoming_1.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "incoming_2.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "incoming_3.png");
- moko_dialer_status_set_icon_by_index (MOKO_DIALER_STATUS (status), 0);
- gtk_box_pack_start (GTK_BOX (vbox), status, FALSE, FALSE, 0);
- GtkWidget * hbox2 = gtk_hbox_new (FALSE, 0);
- GtkWidget * button = gtk_button_new_with_label ("Answer");
- gtk_button_set_image (GTK_BUTTON (button),
- file_new_image_from_relative_path ("answer.png"));
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_answer_button_clicked), p_dialer_data);
- gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE,
- 10);
- button = gtk_button_new_with_label ("Ignore");
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_ignore_button_clicked), p_dialer_data);
- gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE,
- 10);
- button = gtk_button_new_with_label ("Reject");
- gtk_button_set_image (GTK_BUTTON (button),
- file_new_image_from_relative_path ("cancel.png"));
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_reject_button_clicked), p_dialer_data);
- gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE,
- 10);
- gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 50);
-
-//currently MokoDialogWindow is not finished, wating...
-// MokoDialogWindow* window = (MokoDialogWindow *)(moko_dialog_window_new());
-// moko_dialog_window_set_contents( window, GTK_WIDGET(vbox) );
- window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
- moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
-
- //FIXME: dear thomas, I know that show & hide is not good, but when you removed the following 2 lines, the incoming window
- //is simply not displaying well. please have a try and then commit. If you cannot test the incoming window, you can simply modify the code to show it out debuggingly.
- //Pardon me to re-add the 2 lines. Tony Guan 14,3,2007
- gtk_widget_show_all (GTK_WIDGET (window));
- gtk_widget_hide (GTK_WIDGET (window));
- moko_dialer_status_set_title_label (MOKO_DIALER_STATUS (status),
- "Incoming call");
- moko_dialer_status_set_status_label (MOKO_DIALER_STATUS (status), "");
- p_dialer_data->window_incoming = GTK_WIDGET (window);
- p_dialer_data->status_incoming = MOKO_DIALER_STATUS (status);
-
-// DBG_MESSAGE("p_dialer_data->status_incoming=0X%x",p_dialer_data->status_incoming);
- g_signal_connect ((gpointer) window, "show",
- G_CALLBACK (on_window_incoming_show),
- p_dialer_data);
- g_signal_connect ((gpointer) window, "hide",
- G_CALLBACK (on_window_incoming_hide), p_dialer_data);
- }
- DBG_LEAVE ();
- return 1;
-}
-
-
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-incoming.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,40 +0,0 @@
-/* openmoko-dialer-window-outgoing.h
- *
- * Authored By Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-
-#ifndef _OPENMOKO_DIALER_WINDOW_INCOMING_H
-#define _OPENMOKO_DIALER_WINDOW_INCOMING_H
-
-#ifdef __cplusplus
-
-
-
-extern "C"
-{
-#endif
-
-
-
- gint window_incoming_init (MokoDialerData * p_dialer_data);
-
- void window_incoming_prepare (MokoDialerData * appdata);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,345 +0,0 @@
-/* openmoko-dialer-window-outgoing.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-
-#include <libmokoui/moko-finger-tool-box.h>
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-finger-wheel.h>
-#include <libmokoui/moko-pixmap-button.h>
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkvbox.h>
-
-#include "contacts.h"
-#include "openmoko-dialer-main.h"
-#include "moko-dialer-status.h"
-#include "openmoko-dialer-window-outgoing.h"
-#include "openmoko-dialer-window-history.h"
-#include "openmoko-dialer-window-talking.h"
-
-/* function declerations */
-void window_outgoing_setup_timer (MokoDialerData * appdata);
-
-void
-cb_speaker_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- //moko_dialer_status_update_icon(appdata->status_outgoing);
-
-
- appdata->g_state.callstate = STATE_TALKING;
-
- gtk_widget_hide (appdata->window_outgoing);
-
-
- //transfer the contact info
- window_talking_prepare (appdata);
-
- //start dialling.
-
- DBG_TRACE ();
-// gtk_widget_show_all (appdata->window_talking);
- gtk_widget_show (appdata->window_talking);
-
-
- DBG_LEAVE ();
-}
-
-void
-cb_redial_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- gtk_widget_hide (appdata->buttonRedial);
- gtk_widget_show (appdata->buttonSpeaker);
- moko_dialer_status_set_title_label (appdata->status_outgoing,
- "Outgoing call");
- moko_dialer_status_set_status_label (appdata->status_outgoing,
- "Calling ... (00:00:00)");
- window_outgoing_setup_timer (appdata);
-
- appdata->g_state.callstate = STATE_CALLING;
- appdata->g_state.historytype = OUTGOING;
- /* TOOD: MokoGsmdConnection->dial
- * gsm_dial (appdata->g_peer_info.number);
- */
-
- DBG_LEAVE ();
-}
-
-void
-cb_cancel_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- /* TODO: MokoGsmdConnection->hangup
- * gsm_hangup ();
- */
- appdata->g_state.callstate = STATE_FAILED;
- DBG_TRACE ();
- gtk_widget_hide (appdata->window_outgoing);
- DBG_LEAVE ();
-}
-
-void
-window_outgoing_prepare (MokoDialerData * appdata)
-{
- DBG_ENTER ();
- if (appdata->window_outgoing == 0)
- window_outgoing_init (appdata);
-
-
- moko_dialer_status_set_person_number (appdata->status_outgoing,
- appdata->g_peer_info.number);
- if (appdata->g_peer_info.hasname)
- {
- moko_dialer_status_set_person_image (appdata->status_outgoing,
- appdata->g_peer_info.ID);
- moko_dialer_status_set_person_name (appdata->status_outgoing,
- appdata->g_peer_info.name);
- }
- else
- {
- moko_dialer_status_set_person_image (appdata->status_outgoing, "");
- moko_dialer_status_set_person_name (appdata->status_outgoing, "");
-
- }
-// strcpy (appdata->g_state.lastnumber, appdata->g_peer_info.number);
- g_stpcpy (appdata->g_state.lastnumber, appdata->g_peer_info.number);
- DBG_LEAVE ();
-
-}
-
-void
-window_outgoing_fails (MokoDialerData * appdata)
-{
- DBG_ENTER ();
- moko_dialer_status_set_error (appdata->status_outgoing);
- moko_dialer_status_set_title_label (appdata->status_outgoing,
- "Call Failure");
- gtk_widget_hide (appdata->buttonSpeaker);
- gtk_widget_show (appdata->buttonRedial);
- DBG_LEAVE ();
-}
-
-gint
-timer_outgoing_time_out (MokoDialerData * appdata)
-{
-//DBG_ENTER();
- TIMER_DATA *timer_data = &(appdata->g_timer_data);
-
-
- timer_data->ticks++;
- timer_data->hour = timer_data->ticks / 3600;
- timer_data->min = (timer_data->ticks - timer_data->hour * 3600) / 60;
- timer_data->sec = timer_data->ticks % 60;
-
-
- sprintf (timer_data->timestring, "Calling ... (%02d:%02d:%02d)",
- timer_data->hour, timer_data->min, timer_data->sec);
-
-//ok,we update the label now.
-
-
- moko_dialer_status_set_status_label (appdata->status_outgoing,
- timer_data->timestring);
- moko_dialer_status_update_icon (appdata->status_outgoing);
-
- if (timer_data->stopsec != 0 && timer_data->ticks >= timer_data->stopsec)
- {
-
- timer_data->timeout = 1;
- g_source_remove (timer_data->ptimer);
- timer_data->ptimer = 0;
-//maybe it failes
- window_outgoing_fails (appdata);
- return 0; //0 stops the timer.
- }
- else
- return 1;
-}
-
-
-
-void
-on_window_outgoing_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
- if (appdata->g_timer_data.ptimer != 0)
- {
- g_source_remove (appdata->g_timer_data.ptimer);
- appdata->g_timer_data.ptimer = 0;
- }
- if (appdata->g_state.callstate != STATE_TALKING)
- { // add_histroy_entry(g_state.historytype,g_state.contactinfo.name,g_state.contactinfo.number,g_state.contactinfo.picpath,g_state.starttime,0);
-
- add_histroy_entry (appdata, appdata->g_state.historytype,
- appdata->g_peer_info.name,
- appdata->g_peer_info.number,
- appdata->g_peer_info.picpath,
- appdata->g_state.starttime,
- appdata->g_state.startdate, 0);
-
- }
-
-
-}
-
-void
-window_outgoing_setup_timer (MokoDialerData * appdata)
-{
- time_t timep;
- struct tm *p;
- time (&timep);
- p = localtime (&timep);
-
- sprintf (appdata->g_state.starttime, "%02d:%02d:%02d", p->tm_hour,
- p->tm_min, p->tm_sec);
- sprintf (appdata->g_state.startdate, "%04d/%02d/%02d", p->tm_year,
- p->tm_mon, p->tm_mday);
-
- if (appdata->g_timer_data.ptimer != 0)
- {
- g_source_remove (appdata->g_timer_data.ptimer);
- appdata->g_timer_data.ptimer = 0;
- }
-
- memset (&(appdata->g_timer_data), 0, sizeof (appdata->g_timer_data));
-// 1:30 timeout
- appdata->g_timer_data.stopsec = 90;
-
- appdata->g_timer_data.ptimer =
- g_timeout_add (1000, (GSourceFunc) timer_outgoing_time_out, appdata);
-
-
-}
-
-void
-on_window_outgoing_show (GtkWidget * widget, MokoDialerData * appdata)
-{
-
- //DBG_ENTER ();
- window_outgoing_setup_timer (appdata);
- //DBG_TRACE ();
- appdata->g_state.callstate = STATE_CALLING;
- //DBG_TRACE ();
- appdata->g_state.historytype = OUTGOING;
- //DBG_TRACE ();
- /* TODO: MokoGsmdConnection->dial
- * int retv = gsm_dial (appdata->g_peer_info.number);
- * DBG_MESSAGE ("GSM_DIAL returns %d", retv);
- */
- //DBG_LEAVE ();
-}
-
-
-gint
-window_outgoing_init (MokoDialerData * p_dialer_data)
-{
-
- DBG_ENTER ();
- MokoFingerWindow *window;
- GtkWidget *vbox;
- GtkWidget *status;
-
- if (p_dialer_data->window_outgoing == 0)
- {
-
- vbox = gtk_vbox_new (FALSE, 0);
- status = moko_dialer_status_new ();
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "outgoing_0.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "outgoing_1.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "outgoing_2.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "outgoing_3.png");
- moko_dialer_status_set_error_icon (MOKO_DIALER_STATUS (status),
- "failure.png");
- moko_dialer_status_set_icon_by_index (MOKO_DIALER_STATUS (status), 0);
-
- gtk_box_pack_start (GTK_BOX (vbox), status, FALSE, FALSE, 0);
-
-
- GtkWidget *hbox2 = gtk_hbox_new (FALSE, 0);
- GtkWidget *button = gtk_button_new_with_label ("Speaker");
- gtk_button_set_image (GTK_BUTTON (button),
- file_new_image_from_relative_path ("speaker.png"));
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_speaker_button_clicked), p_dialer_data);
- p_dialer_data->buttonSpeaker = button;
-//gtk_widget_set_size_request(button,100,32);
- gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE, 40);
-
- button = gtk_button_new_with_label ("Redial");
- gtk_button_set_image (GTK_BUTTON (button),
- file_new_image_from_relative_path ("redial.png"));
- p_dialer_data->buttonRedial = button;
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_redial_button_clicked), p_dialer_data);
- gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE, 40);
- g_object_set (G_OBJECT (button), "no-show-all", TRUE, NULL);
-
-
- button = gtk_button_new_with_label ("Cancel");
- gtk_button_set_image (GTK_BUTTON (button),
- file_new_image_from_relative_path ("cancel.png"));
- p_dialer_data->buttonCancel = button;
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_cancel_button_clicked), p_dialer_data);
-//gtk_widget_set_size_request(button,100,32);
- gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (button), TRUE, TRUE, 40);
-
- gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 50);
-
-
-//currently MokoDialogWindow is not finished, wating...
-// MokoDialogWindow* window = (MokoDialogWindow *)(moko_dialog_window_new());
-// moko_dialog_window_set_contents( window, GTK_WIDGET(vbox) );
-
- window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
- moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
-
- moko_dialer_status_set_title_label (MOKO_DIALER_STATUS (status),
- "Outgoing call");
- moko_dialer_status_set_status_label (MOKO_DIALER_STATUS (status),
- "Calling ... (00:00:00)");
-
- p_dialer_data->window_outgoing = GTK_WIDGET (window);
- p_dialer_data->status_outgoing = MOKO_DIALER_STATUS (status);
-
-// DBG_MESSAGE("p_dialer_data->status_outgoing=0X%x",p_dialer_data->status_outgoing);
-
-
- g_signal_connect ((gpointer) window, "show",
- G_CALLBACK (on_window_outgoing_show), p_dialer_data);
- g_signal_connect ((gpointer) window, "hide",
- G_CALLBACK (on_window_outgoing_hide), p_dialer_data);
-
- }
-
-
-
-// gtk_widget_show(p_dialer_data->window_outgoing);
-
- DBG_LEAVE ();
- return 1;
-}
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-outgoing.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,39 +0,0 @@
-/* openmoko-dialer-window-outgoing.h
- *
- * Authored By Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-
-#ifndef _OPENMOKO_DIALER_WINDOW_OUTGOING_H
-#define _OPENMOKO_DIALER_WINDOW_OUTGOING_H
-
-#ifdef __cplusplus
-
-
-
-extern "C"
-{
-#endif
-
- gint window_outgoing_init (MokoDialerData * p_dialer_data);
- void window_outgoing_prepare (MokoDialerData * appdata);
- void window_outgoing_fails (MokoDialerData * appdata);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,220 +0,0 @@
-/* openmoko-dialer-window-dialer.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-pixmap-button.h>
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkvbox.h>
-#include "openmoko-dialer-main.h"
-
-void
-pin_delete_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- if (appdata->int_sim_pin_end_point)
- {
- moko_dialer_textview_delete (appdata->moko_pin_text_view);
- appdata->int_sim_pin_end_point--;
- appdata->str_sim_pin[appdata->int_sim_pin_end_point] = 0;
- }
-
-}
-
-
-void
-pin_ok_button_clicked (GtkButton * button, MokoDialerData * appdata)
-{
- // gchar *codesinput;
-// codesinput =g_strdup(moko_dialer_textview_get_input (appdata->moko_pin_text_view, TRUE));
-
- if (!appdata->str_sim_pin || g_utf8_strlen (appdata->str_sim_pin, -1) < 1)
- {
- //user didn't input anything
- DBG_MESSAGE ("no input for pin");
- }
- else
- { //here send the pin codes and hide our window.
-
- DBG_MESSAGE ("here we send the pin:%s", appdata->str_sim_pin);
- //FIXME:why this call will cause segment fault?
- //lgsm_pin (appdata->lh, appdata->str_sim_pin);
- //lgsm_pin (appdata->lh, "1234");
- DBG_MESSAGE ("pin:%s sent", appdata->str_sim_pin);
- gtk_widget_hide (appdata->window_pin);
- }
-
-}
-
-
-
-
-void
-on_pin_panel_user_input (GtkWidget * widget, gchar parac, gpointer user_data)
-{
- char input[2];
- input[0] = parac;
- input[1] = 0;
-
-//DBG_TRACE();
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- MokoDialerTextview *moko_pin_text_view = appdata->moko_pin_text_view;
- if (appdata->int_sim_pin_end_point < MOKO_DIALER_MAX_NUMBER_LEN)
- {
- appdata->str_sim_pin[appdata->int_sim_pin_end_point] = parac;
- appdata->int_sim_pin_end_point++;
- moko_dialer_textview_insert (moko_pin_text_view, "*");
- }
- else
- {
- appdata->str_sim_pin[0] = parac;
- appdata->int_sim_pin_end_point = 1;
- }
-//DBG_TRACE();
-
-}
-
-void
-on_window_pin_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
- appdata->window_present = 0;
-
-}
-
-void
-on_window_pin_show (GtkWidget * widget, MokoDialerData * appdata)
-{
- DBG_ENTER ();
- appdata->window_present = widget;
-
- DBG_LEAVE ();
-}
-
-
-
-
-gint
-window_pin_init (MokoDialerData * p_dialer_data)
-{
-
- if (!p_dialer_data->window_pin)
- {
-
- g_stpcpy (p_dialer_data->str_sim_pin, "");
- p_dialer_data->int_sim_pin_end_point = 0;
- GdkColor color;
- gdk_color_parse ("black", &color);
-
- GtkVBox *vbox = NULL;
-
-
- MokoFingerWindow *window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
- g_signal_connect ((gpointer) window, "show",
- G_CALLBACK (on_window_pin_show), p_dialer_data);
- g_signal_connect ((gpointer) window, "hide",
- G_CALLBACK (on_window_pin_hide), p_dialer_data);
-
-
- /* contents */
- vbox = gtk_vbox_new (FALSE, 0);
- GtkHBox *hbox = gtk_hbox_new (FALSE, 10);
-
-
- GtkEventBox *eventbox1 = gtk_event_box_new ();
- gtk_widget_show (eventbox1);
- gtk_widget_set_name (GTK_WIDGET (eventbox1), "gtkeventbox-black");
- gtk_widget_modify_bg (eventbox1, GTK_STATE_NORMAL, &color);
-// gtk_widget_set_size_request (eventbox1, 480, 132);
-
- MokoDialerTextview *mokotextview = moko_dialer_textview_new ();
- p_dialer_data->moko_pin_text_view = mokotextview;
-// moko_dialer_textview_fill_it(mokotextview , "Please input the pin:");
-
- gtk_container_add (GTK_CONTAINER (eventbox1), mokotextview);
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (eventbox1), FALSE,
- FALSE, 0);
-
- MokoDialerPanel *mokodialerpanel = moko_dialer_panel_new ();
-
- gtk_widget_set_size_request (mokodialerpanel, 380, 384);
-
-
- g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_input",
- G_CALLBACK (on_pin_panel_user_input), p_dialer_data);
-
- gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (mokodialerpanel), TRUE,
- TRUE, 5);
-
-
-
-//the buttons
-
- GtkVBox *vbox2 = gtk_vbox_new (FALSE, 0);
- GtkButton *button1 = moko_pixmap_button_new ();
- g_signal_connect (G_OBJECT (button1), "clicked",
- G_CALLBACK (pin_delete_button_clicked), p_dialer_data);
- gtk_widget_set_name (GTK_WIDGET (button1), "mokofingerbutton-orange");
-
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button1),
- file_new_image_from_relative_path ("delete.png"));
-
- moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
- (button1), "Delete");
-// gtk_widget_set_size_request (button1, WINDOW_DIALER_BUTTON_SIZE_X,
- // WINDOW_DIALER_BUTTON_SIZE_Y);
-
- gtk_box_pack_start (GTK_BOX (vbox2), GTK_WIDGET (button1), FALSE, FALSE,
- 5);
-
- GtkButton *button2 = moko_pixmap_button_new ();
-
- g_signal_connect (G_OBJECT (button2), "clicked",
- G_CALLBACK (pin_ok_button_clicked), p_dialer_data);
- gtk_widget_set_name (GTK_WIDGET (button1), "mokofingerbutton-orange");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button2),
- file_new_image_from_relative_path ("phone.png"));
- moko_pixmap_button_set_action_btn_lower_label (MOKO_PIXMAP_BUTTON
- (button2), "OK");
- //gtk_widget_set_size_request (button2, WINDOW_DIALER_BUTTON_SIZE_X,
- // WINDOW_DIALER_BUTTON_SIZE_Y);
-
- gtk_box_pack_start (GTK_BOX (vbox2), GTK_WIDGET (button2), FALSE, FALSE,
- 20);
-
- gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (vbox2), TRUE, TRUE, 5);
-
-
-
- gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (hbox), TRUE, TRUE, 5);
-
-
- moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
-
-
- p_dialer_data->window_pin = window;
-
- }
-
- return 1;
-}
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-pin.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,37 +0,0 @@
-/* openmoko-dialer-window-dialer.h
- *
- * Authored By Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-
-#ifndef _OPENMOKO_DIALER_WINDOW_PIN_H
-#define _OPENMOKO_DIALER_WINDOW_PIN_H
-
-#ifdef __cplusplus
-
-
-
-extern "C"
-{
-#endif
-
- gint window_pin_init (MokoDialerData * p_dialer_data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.c 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.c 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,450 +0,0 @@
-/* openmoko-dialer-window-talking.c
- *
- * Authored by Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "alsa.h"
-#include <libmokoui/moko-finger-tool-box.h>
-#include <libmokoui/moko-finger-window.h>
-#include <libmokoui/moko-finger-wheel.h>
-#include <libmokoui/moko-pixmap-button.h>
-
-#include <gtk/gtkalignment.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtkvbox.h>
-
-#include "contacts.h"
-#include "common.h"
-#include "openmoko-dialer-main.h"
-#include "moko-dialer-status.h"
-#include "openmoko-dialer-window-talking.h"
-#include "openmoko-dialer-window-history.h"
-
-void
-openmoko_wheel_press_left_up_cb (GtkWidget * widget,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
- gint l, r;
- alsa_get_volume (&l, &r);
- alsa_set_volume (l + 10, r + 10);
-
- alsa_get_volume (&l, &r);
- g_print ("l = %d, r = %d\n", l, r);
-
-/*
- l = 90;
- r = 90;
-
-*/
-
-}
-
-void
-openmoko_wheel_press_right_down_cb (GtkWidget * widget,
- MokoDialerData * appdata)
-{
- gint l, r;
- alsa_get_volume (&l, &r);
- alsa_set_volume (l - 10, r - 10);
- alsa_get_volume (&l, &r);
- g_print ("l = %d, r = %d\n", l, r);
-
- DBG_ENTER ();
-}
-
-
-void
-cb_tool_button_speaker_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
-}
-
-void
-cb_tool_button_dtmf_talk_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- DBG_ENTER ();
-
- appdata->dtmf_in_talking_window = !appdata->dtmf_in_talking_window;
- if (appdata->dtmf_in_talking_window)
- {
-
-
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), appdata->imageTALK);
- gtk_widget_hide (appdata->content_talk);
- gtk_widget_show (appdata->content_dtmf);
- }
- else
- {
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), appdata->imageDTMF);
- gtk_widget_hide (appdata->content_dtmf);
- gtk_widget_show (appdata->content_talk);
-
-
- }
-
-
-}
-
-void
-cb_tool_button_hangup_clicked (GtkButton * button,
- MokoDialerData * appdata)
-{
- /* TODO: MokoGsmdConnection->hangup
- * gsm_hangup ();
- */
- gtk_widget_hide (appdata->window_talking);
-
-}
-
-
-void
-on_dtmf_panel_user_input (GtkWidget * widget, gchar parac, gpointer user_data)
-{
- char input[2];
- input[0] = parac;
- input[1] = 0;
-
-
- MokoDialerData *appdata = (MokoDialerData *) user_data;
- MokoDialerTextview *moko_dtmf_text_view = appdata->moko_dtmf_text_view;
-
- moko_dialer_textview_insert (moko_dtmf_text_view, input);
-
-
- /* TODO: MokoGsmdConnection->dtmf_send
- * gsm_dtmf_send (input[0]);
- */
-//lgsm_voice_dtmf(lgsmh, buf[1]);
-
-}
-
-
-
-void
-window_talking_prepare (MokoDialerData * appdata)
-{
- DBG_ENTER ();
-
-// moko_dialer_status_set_person_number(appdata->status_talking, appdata->g_peer_info.number);
-
- if (!appdata->window_talking)
- window_talking_init (appdata);
-
- if (!appdata->window_talking)
- {
- DBG_WARN ("NO TALKING WINDOW INITIATED");
- return;
- }
-
-
- if (appdata->g_peer_info.hasname)
- {
- DBG_TRACE ();
- moko_dialer_status_set_person_image (appdata->status_talking,
- appdata->g_peer_info.ID);
- DBG_TRACE ();
- moko_dialer_status_set_person_name (appdata->status_talking,
- appdata->g_peer_info.name);
- DBG_TRACE ();
- }
- else
- {
- moko_dialer_status_set_person_image (appdata->status_talking, "");
- moko_dialer_status_set_person_name (appdata->status_talking, "");
-
- }
-
- DBG_LEAVE ();
-
-}
-
-gint
-timer_talking_time_out (MokoDialerData * appdata)
-{
-//DBG_ENTER();
- TIMER_DATA *timer_data = &(appdata->g_timer_data);
-
-
- timer_data->ticks++;
- timer_data->hour = timer_data->ticks / 3600;
- timer_data->min = (timer_data->ticks - timer_data->hour * 3600) / 60;
- timer_data->sec = timer_data->ticks % 60;
-
-
- sprintf (timer_data->timestring, "Talking (%02d:%02d:%02d)",
- timer_data->hour, timer_data->min, timer_data->sec);
-
-//ok,we update the label now.
-
-
- moko_dialer_status_set_status_label (appdata->status_talking,
- timer_data->timestring);
- moko_dialer_status_update_icon (appdata->status_talking);
-
- if (timer_data->stopsec != 0 && timer_data->ticks >= timer_data->stopsec)
- {
-
- timer_data->timeout = 1;
- g_source_remove (timer_data->ptimer);
- timer_data->ptimer = 0;
- return 0; //0 stops the timer.
- }
- else
- return 1;
-}
-
-void
-on_window_talking_hide (GtkWidget * widget, MokoDialerData * appdata)
-{
-
-
- if (appdata->g_timer_data.ptimer != 0)
- {
- g_source_remove (appdata->g_timer_data.ptimer);
- appdata->g_timer_data.ptimer = 0;
- }
-
- gtk_widget_hide (appdata->wheel_talking);
- gtk_widget_hide (appdata->toolbox_talking);
-
- moko_dialer_textview_empty (appdata->moko_dtmf_text_view);
- add_histroy_entry (appdata, appdata->g_state.historytype,
- appdata->g_peer_info.name,
- appdata->g_peer_info.number,
- appdata->g_peer_info.picpath,
- appdata->g_state.starttime,
- appdata->g_state.startdate, appdata->g_timer_data.ticks);
-
-
-}
-
-void
-on_window_talking_show (GtkWidget * widget, MokoDialerData * appdata)
-{
- DBG_ENTER ();
-
- appdata->dtmf_in_talking_window = TRUE;
- //hide the talking button in talking mode.
-
- time_t timep;
- struct tm *p;
- time (&timep);
- p = localtime (&timep);
-
- sprintf (appdata->g_state.starttime, "%02d:%02d:%02d", p->tm_hour,
- p->tm_min, p->tm_sec);
- sprintf (appdata->g_state.startdate, "%04d/%02d/%02d", p->tm_year + 1900,
- p->tm_mon, p->tm_mday);
-
- memset (&(appdata->g_timer_data), 0, sizeof (appdata->g_timer_data));
-
- appdata->g_timer_data.stopsec = 0;
-
- appdata->g_timer_data.ptimer =
- g_timeout_add (1000, (GSourceFunc) timer_talking_time_out, appdata);
-
- if (appdata->toolbox_talking)
- {
- gtk_widget_show (appdata->toolbox_talking);
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (appdata->buttonTalk_DTMF), appdata->imageDTMF);
- gtk_widget_hide (appdata->content_dtmf);
- gtk_widget_show (appdata->content_talk);
- }
-
-
-
- if (appdata->wheel_talking)
- gtk_widget_show (appdata->wheel_talking);
-
-
-
-
- DBG_LEAVE ();
-}
-
-
-
-
-gint
-window_talking_init (MokoDialerData * p_dialer_data)
-{
-
- DBG_ENTER ();
-
-
- if (p_dialer_data->window_talking == 0)
- {
-
- MokoFingerWindow *window = NULL;
- GtkWidget *vbox = gtk_vbox_new (FALSE, 0);;
- GtkWidget *status = NULL;
- GtkWidget *content_talk = NULL;
- GtkWidget *content_dtmf = NULL;
- MokoFingerToolBox *tools = NULL;
- MokoFingerWheel *wheel = NULL;
- GtkWidget *mokodialerpanel = NULL;
- MokoPixmapButton *button;
- GtkWidget *image;
-
-
-//first, the talking content.
-
- content_talk = gtk_vbox_new (FALSE, 0);
- status = moko_dialer_status_new ();
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "talking_0.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "talking_1.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "talking_2.png");
- moko_dialer_status_add_status_icon (MOKO_DIALER_STATUS (status),
- "talking_3.png");
- moko_dialer_status_set_icon_by_index (MOKO_DIALER_STATUS (status), 0);
-
-
- moko_dialer_status_set_title_label (MOKO_DIALER_STATUS (status),
- "In Call");
- moko_dialer_status_set_status_label (MOKO_DIALER_STATUS (status),
- "Talking ...(00:00:00)");
-
- gtk_box_pack_start (GTK_BOX (content_talk), status, FALSE, FALSE, 0);
-
-
- p_dialer_data->status_talking = MOKO_DIALER_STATUS (status);
- p_dialer_data->content_talk = content_talk;
-
- gtk_box_pack_start (GTK_BOX (vbox), content_talk, FALSE, FALSE, 0);
-
-
- //now the dtmf content
- content_dtmf = gtk_vbox_new (FALSE, 0);
- GtkWidget *eventbox1 = gtk_event_box_new ();
- gtk_widget_show (eventbox1);
- gtk_widget_set_name (eventbox1, "gtkeventbox-black");
-
- GtkWidget *mokotextview = moko_dialer_textview_new ();
-
- gtk_container_add (GTK_CONTAINER (eventbox1), mokotextview);
-
- p_dialer_data->moko_dtmf_text_view = MOKO_DIALER_TEXTVIEW (mokotextview);
-
- gtk_box_pack_start (GTK_BOX (content_dtmf), GTK_WIDGET (eventbox1),
- FALSE, FALSE, 2);
-
-
-
- mokodialerpanel = moko_dialer_panel_new ();
-
- gtk_widget_set_size_request (mokodialerpanel, 380, 384);
- g_signal_connect (GTK_OBJECT (mokodialerpanel), "user_input",
- G_CALLBACK (on_dtmf_panel_user_input), p_dialer_data);
- gtk_box_pack_start (GTK_BOX (content_dtmf),
- GTK_WIDGET (mokodialerpanel), TRUE, TRUE, 5);
-
- gtk_box_pack_start (GTK_BOX (vbox), content_dtmf, FALSE, FALSE, 0);
- p_dialer_data->content_dtmf = content_dtmf;
- //g_object_set (G_OBJECT (content_dtmf), "no-show-all", TRUE);
-
-
- //now the container--window
- window = MOKO_FINGER_WINDOW (moko_finger_window_new ());
- p_dialer_data->window_talking = GTK_WIDGET (window);
- moko_finger_window_set_contents (window, GTK_WIDGET (vbox));
- g_signal_connect ((gpointer) window, "show",
- G_CALLBACK (on_window_talking_show), p_dialer_data);
- g_signal_connect ((gpointer) window, "hide",
- G_CALLBACK (on_window_talking_hide), p_dialer_data);
-
-
- //now the wheel and tool box, why should the wheel and toolbox created after the gtk_widget_show_all???
- //please refer to bug 175.
- //FIXME:Dear Thomas, please modify the libmokoui before deleting the show_all & hide codes. I don't want to splash
- //any window either, but for now, it's the most convenient way to debug the application. We will remove it, but later, OK?
- //Tony Guan 14/3/2007
- gtk_widget_show_all (GTK_WIDGET (window));
- gtk_widget_hide (content_dtmf); //And this line is necessary because dtmf interface & talking interface share the same window.
- //we have to hide it first.
- wheel = moko_finger_window_get_wheel (window);
-
- g_signal_connect (G_OBJECT (wheel),
- "press_left_up",
- G_CALLBACK (openmoko_wheel_press_left_up_cb),
- p_dialer_data);
- g_signal_connect (G_OBJECT (wheel),
- "press_right_down",
- G_CALLBACK (openmoko_wheel_press_right_down_cb),
- p_dialer_data);
-
-
-
-
- tools = moko_finger_window_get_toolbox (window);
- button =
- MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
- (tools));
- image = file_new_image_from_relative_path ("speaker.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_speaker_clicked),
- p_dialer_data);
-
- button =
- MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
- (tools));
- image = file_new_image_from_relative_path ("dtmf.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_dtmf_talk_clicked),
- p_dialer_data);
- p_dialer_data->buttonTalk_DTMF = button;
- p_dialer_data->imageDTMF = image;
- p_dialer_data->imageTALK =
- file_new_image_from_relative_path ("talking.png");
-
-
- button =
- MOKO_PIXMAP_BUTTON (moko_finger_tool_box_add_button_without_label
- (tools));
- image = file_new_image_from_relative_path ("hangup.png");
- moko_pixmap_button_set_finger_toolbox_btn_center_image
- (MOKO_PIXMAP_BUTTON (button), image);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (cb_tool_button_hangup_clicked),
- p_dialer_data);
- gtk_widget_show (GTK_WIDGET (tools));
- gtk_widget_show (GTK_WIDGET (wheel));
-
- p_dialer_data->dtmf_in_talking_window = 0;
- p_dialer_data->wheel_talking = GTK_WIDGET (wheel);
- p_dialer_data->toolbox_talking = GTK_WIDGET (tools);
-
- DBG_LEAVE ();
- }
-
- return 1;
-}
Deleted: trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.h 2007-04-26 03:38:14 UTC (rev 1842)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/openmoko-dialer-window-talking.h 2007-04-26 12:16:43 UTC (rev 1843)
@@ -1,40 +0,0 @@
-/* openmoko-dialer-window-outgoing.h
- *
- * Authored By Tony Guan<tonyguan at fic-sh.com.cn>
- *
- * Copyright (C) 2006 FIC Shanghai Lab
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Public License as published by
- * the Free Software Foundation; version 2.1 of the license.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser Public License for more details.
- *
- * Current Version: $Rev$ ($Date) [$Author: Tony Guan $]
- */
-#include "moko-dialer-includes.h"
-
-#ifndef _OPENMOKO_DIALER_WINDOW_TALKING_H
-#define _OPENMOKO_DIALER_WINDOW_TALKING_H
-
-#ifdef __cplusplus
-
-
-
-extern "C"
-{
-#endif
-
-
-
- gint window_talking_init (MokoDialerData * p_dialer_data);
-
- void window_talking_prepare (MokoDialerData * appdata);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
More information about the commitlog
mailing list