summaryrefslogtreecommitdiff
path: root/pjsip-apps/src
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2008-05-30 11:35:46 +0000
committerNanang Izzuddin <nanang@teluu.com>2008-05-30 11:35:46 +0000
commit46a922dee766612e1f60aeae66b71ec13a9ebb4a (patch)
treea1374048199dd16512f1602a322f46e24e0e9ec1 /pjsip-apps/src
parentf3c4d699b34f41157d87ddb5903ec19323531d94 (diff)
Initial source of GUI version of Symbian UA
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1973 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip-apps/src')
-rw-r--r--pjsip-apps/src/symbian_ua_gui/application.uidesign157
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.l0112
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.loc11
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.rss71
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.l0121
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.loc11
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.rssi141
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.l0131
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.loc11
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.rssi275
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.loc11
-rw-r--r--pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.rss21
-rw-r--r--pjsip-apps/src/symbian_ua_gui/gfx/list_icon.bmpbin0 -> 2356 bytes
-rw-r--r--pjsip-apps/src/symbian_ua_gui/gfx/list_icon_mask.bmpbin0 -> 294 bytes
-rw-r--r--pjsip-apps/src/symbian_ua_gui/gfx/mark_icon.bmpbin0 -> 2134 bytes
-rw-r--r--pjsip-apps/src/symbian_ua_gui/gfx/mark_icon_mask.bmpbin0 -> 166 bytes
-rw-r--r--pjsip-apps/src/symbian_ua_gui/gfx/qgn_menu_symbian_ua_gui.svg56
-rw-r--r--pjsip-apps/src/symbian_ua_gui/group/ABLD.BAT15
-rw-r--r--pjsip-apps/src/symbian_ua_gui/group/Icons_aif_scalable_dc.mk71
-rw-r--r--pjsip-apps/src/symbian_ua_gui/group/bld.inf12
-rw-r--r--pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp60
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/Symbian_ua_guiSettingItemListSettings.h63
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua.h47
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.hrh17
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.pan18
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiAppUi.h119
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiApplication.h35
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.h113
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.hrh17
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainerView.h88
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiDocument.h36
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.h87
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.hrh22
-rw-r--r--pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemListView.h85
-rw-r--r--pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.pkg36
-rw-r--r--pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.txt0
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/Symbian_ua_guiSettingItemListSets.cpp144
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp504
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiAppUi.cpp247
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiApplication.cpp82
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainer.cpp285
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainerView.cpp478
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiDocument.cpp57
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemList.cpp423
-rw-r--r--pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemListView.cpp285
-rw-r--r--pjsip-apps/src/symbian_ua_gui/symbian_ua_guiContainer.uidesign382
-rw-r--r--pjsip-apps/src/symbian_ua_gui/symbian_ua_guiSettingItemList.uidesign380
47 files changed, 5037 insertions, 0 deletions
diff --git a/pjsip-apps/src/symbian_ua_gui/application.uidesign b/pjsip-apps/src/symbian_ua_gui/application.uidesign
new file mode 100644
index 00000000..abe5c5a1
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/application.uidesign
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<designerData version="1.1.0">
+ <componentManifest>
+ <manifestEntry id="com.nokia.sdt.series60.CAknApplication" version="1.1.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.NonLayoutBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CAknDocument" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CAknViewAppUi" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CAknAppUi" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CAknAppUiBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.DesignTimeContainer" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPane" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.ControlBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPaneCaption" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPaneTitleBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CBA" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CBABase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.AvkonViewReference" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.DesignReference" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.WaitDialog" version="1.0.0"/>
+ </componentManifest>
+ <property id="com.nokia.sdt.symbian.dm.RESOURCE_DIRECTORY_ID">data</property>
+ <property id="com.nokia.sdt.component.symbian.vendor">com.nokia.series60</property>
+ <property id="com.nokia.sdt.component.symbian.version">3.0.1</property>
+ <property id="com.nokia.sdt.symbian.dm.COMPONENT_PROVIDER">com.nokia.sdt.component.symbian.Symbian-Provider</property>
+ <property id="com.nokia.sdt.symbian.dm.INCLUDE_DIRECTORY_ID">inc</property>
+ <property id="com.nokia.sdt.symbian.dm.ROOT_CONTAINER">symbian_ua_guiAppUi</property>
+ <property id="com.nokia.sdt.symbian.dm.SOURCE_DIRECTORY_ID">src</property>
+ <property id="com.nokia.sdt.symbian.dm.LOCALIZED_FILE_FORMAT">loc</property>
+ <property id="com.nokia.sdt.symbian.dm.ROOT_APPLICATION_NAME">symbian_ua_gui</property>
+ <property id="com.nokia.sdt.symbian.dm.SOURCEGEN_PROVIDER">com.nokia.sdt.sourcegen.Symbian-Provider</property>
+ <property id="com.nokia.sdt.symbian.dm.BUILD_DIRECTORY_ID">group</property>
+ <component id="com.nokia.sdt.series60.CAknApplication">
+ <property id="className">Csymbian_ua_guiApplication</property>
+ <property id="documentBase">symbian_ua_gui</property>
+ <property id="name">symbian_ua_guiApplication</property>
+ <property id="uid">0xEBD12EE4</property>
+ <component id="com.nokia.sdt.series60.CAknDocument">
+ <property id="className">Csymbian_ua_guiDocument</property>
+ <property id="name">symbian_ua_guiDocument</property>
+ <component id="com.nokia.sdt.series60.CAknViewAppUi">
+ <property id="initialDesign" type="componentRef">aknViewReference2</property>
+ <property id="className">Csymbian_ua_guiAppUi</property>
+ <compoundProperty id="location">
+ <property id="x">52</property>
+ <property id="y">45</property>
+ </compoundProperty>
+ <property id="name">symbian_ua_guiAppUi</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">320</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.StatusPane">
+ <compoundProperty id="location">
+ <property id="x">20</property>
+ </compoundProperty>
+ <property id="name">statusPane</property>
+ <compoundProperty id="size">
+ <property id="width">204</property>
+ <property id="height">66</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.StatusPaneCaption">
+ <property id="shortCaption" type="i18n">STR_symbian_ua_guiApplication_2</property>
+ <compoundProperty id="location">
+ <property id="x">56</property>
+ </compoundProperty>
+ <property id="longCaption" type="i18n">STR_symbian_ua_guiApplication_1</property>
+ <property id="name">caption</property>
+ <compoundProperty id="size">
+ <property id="width">148</property>
+ <property id="height">43</property>
+ </compoundProperty>
+ </component>
+ </component>
+ <component id="com.nokia.sdt.series60.CBA">
+ <compoundProperty id="location">
+ <property id="y">288</property>
+ </compoundProperty>
+ <compoundProperty id="info"/>
+ <property id="name">controlPane</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">32</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.AvkonViewReference">
+ <property id="filePath">symbian_ua_guiContainer.uidesign</property>
+ <property id="baseName">symbian_ua_guiContainer</property>
+ <compoundProperty id="tabImage"/>
+ <property id="name">aknViewReference1</property>
+ </component>
+ <component id="com.nokia.sdt.series60.AvkonViewReference">
+ <property id="filePath">symbian_ua_guiSettingItemList.uidesign</property>
+ <property id="baseName">symbian_ua_guiSettingItemList</property>
+ <compoundProperty id="tabImage"/>
+ <property id="name">aknViewReference2</property>
+ </component>
+ <component id="com.nokia.sdt.series60.WaitDialog">
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">171</property>
+ </compoundProperty>
+ <property id="name">dlg_wait_init</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiApplication_3</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">149</property>
+ </compoundProperty>
+ <eventBinding id="canceled" handlerDisplay="HandleDlg_wait_initCanceledL" handlerSymbol="cpp@src//symbian_ua_guiAppUi.cpp/function(Csymbian_ua_guiAppUi::HandleDlg_wait_initCanceledL(CAknProgressDialog*))"/>
+ </component>
+ </component>
+ </component>
+ </component>
+ <stringBundle>
+ <stringTable language="LANG_English">
+ <string id="STR_symbian_ua_guiApplication_1">symbian_ua_gui</string>
+ <string id="STR_symbian_ua_guiApplication_2">symbian_ua_gui</string>
+ <string id="STR_symbian_ua_guiApplication_3">Please wait...</string>
+ </stringTable>
+ </stringBundle>
+ <macroTable/>
+ <sourceMappingState>
+ <resourceMappings>
+ <resourceMapping instanceName="symbian_ua_guiAppUi">r_application_symbian_ua_gui_app_ui</resourceMapping>
+ <resourceMapping instanceName="statusPane">r_application_status_pane</resourceMapping>
+ <resourceMapping instanceName="aknViewReference2" rsrcId="tabText">r_application_akn_view_reference2</resourceMapping>
+ <resourceMapping instanceName="dlg_wait_init">r_application_dlg_wait_init</resourceMapping>
+ <resourceMapping instanceName="symbian_ua_guiAppUi" rsrcId="localisable_app_info">r_localisable_app_info</resourceMapping>
+ <resourceMapping instanceName="aknViewReference1" rsrcId="tabText">r_application_akn_view_reference1</resourceMapping>
+ </resourceMappings>
+ <enumMappings>
+ <enumMapping instanceName="aknViewReference2" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_VIEW_UID">ESymbian_ua_guiSettingItemListViewId</enumMapping>
+ <enumMapping instanceName="dlg_wait_init" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_DIALOG_LINE_ID">ESymbian_ua_guiApplicationDlg_wait_init</enumMapping>
+ <enumMapping instanceName="aknViewReference1" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_VIEW_UID">ESymbian_ua_guiContainerViewId</enumMapping>
+ </enumMappings>
+ <arrayMappings/>
+ </sourceMappingState>
+ <generatedFiles>
+ <file>src/symbian_ua_guiAppUi.cpp</file>
+ <file>src/symbian_ua_guiDocument.cpp</file>
+ <file>inc/symbian_ua_guiApplication.h</file>
+ <file>src/symbian_ua_guiApplication.cpp</file>
+ <file>inc/symbian_ua_guiAppUi.h</file>
+ <file>inc/symbian_ua_guiDocument.h</file>
+ <file>data/symbian_ua_gui.rss</file>
+ <file>data/symbian_ua_guiContainer.rssi</file>
+ <file>inc/symbian_ua_gui.hrh</file>
+ <file>inc/symbian_ua_guiContainer.hrh</file>
+ <file>data/symbian_ua_guiSettingItemList.rssi</file>
+ <file>inc/symbian_ua_guiSettingItemList.hrh</file>
+ <file>data/symbian_ua_gui.loc</file>
+ <file>data/symbian_ua_gui.l01</file>
+ <file>data/symbian_ua_guiContainer.loc</file>
+ <file>data/symbian_ua_guiContainer.l01</file>
+ <file>data/symbian_ua_guiSettingItemList.loc</file>
+ <file>data/symbian_ua_guiSettingItemList.l01</file>
+ </generatedFiles>
+</designerData>
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.l01 b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.l01
new file mode 100644
index 00000000..c2a81405
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.l01
@@ -0,0 +1,12 @@
+/*
+========================================================================
+ Name : symbian_ua_gui.l01
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// localized strings for language: UK English (01)
+#define STR_symbian_ua_guiApplication_1 "symbian_ua_gui"
+#define STR_symbian_ua_guiApplication_2 "symbian_ua_gui"
+#define STR_symbian_ua_guiApplication_3 "Please wait..."
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.loc b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.loc
new file mode 100644
index 00000000..d13671ed
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.loc
@@ -0,0 +1,11 @@
+/*
+========================================================================
+ Name : symbian_ua_gui.loc
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifdef LANGUAGE_01
+#include "symbian_ua_gui.l01"
+#endif
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.rss b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.rss
new file mode 100644
index 00000000..c502c33b
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui.rss
@@ -0,0 +1,71 @@
+/*
+========================================================================
+ Name : symbian_ua_gui.rss
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+NAME SYMB
+
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <eikon.rh>
+#include <appinfo.rh>
+#include "symbian_ua_gui.hrh"
+#include "symbian_ua_gui.loc"
+
+RESOURCE RSS_SIGNATURE
+ {
+ }
+RESOURCE TBUF
+ {
+ buf = "symbian_ua_gui";
+ }
+RESOURCE EIK_APP_INFO r_application_symbian_ua_gui_app_ui
+ {
+ cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
+ status_pane = r_application_status_pane;
+ }
+RESOURCE STATUS_PANE_APP_MODEL r_application_status_pane
+ {
+ }
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+ {
+ short_caption = STR_symbian_ua_guiApplication_2;
+ caption_and_icon = CAPTION_AND_ICON_INFO
+ {
+ caption = STR_symbian_ua_guiApplication_1;
+ number_of_icons = 0;
+ };
+ }
+RESOURCE TBUF r_application_akn_view_reference1
+ {
+ }
+
+RESOURCE TBUF r_application_akn_view_reference2
+ {
+ }
+
+RESOURCE DIALOG r_application_dlg_wait_init
+ {
+ flags = EAknWaitNoteFlags;
+ buttons = R_AVKON_SOFTKEYS_CANCEL;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EAknCtNote;
+ id = ESymbian_ua_guiApplicationDlg_wait_init;
+ control = AVKON_NOTE
+ {
+ layout = EWaitLayout;
+ singular_label = STR_symbian_ua_guiApplication_3;
+ animation = R_QGN_GRAF_WAIT_BAR_ANIM;
+ };
+ }
+ };
+ }
+
+#include "symbian_ua_guiContainer.rssi"
+#include "symbian_ua_guiSettingItemList.rssi"
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.l01 b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.l01
new file mode 100644
index 00000000..ddf47ce0
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.l01
@@ -0,0 +1,21 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainer.l01
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// localized strings for language: UK English (01)
+#define STR_symbian_ua_guiContainerView_1 "PJSUA for S60"
+#define STR_symbian_ua_guiContainerView_7 "Options"
+#define STR_symbian_ua_guiContainerView_8 "Call"
+#define STR_symbian_ua_guiContainerView_2 "URL"
+#define STR_symbian_ua_guiContainerView_4 "sip:"
+#define STR_symbian_ua_guiContainerView_9 "Setting"
+#define STR_symbian_ua_guiContainerView_10 "Exit"
+#define STR_symbian_ua_guiContainerView_3 ""
+#define STR_symbian_ua_guiContainerView_13 "Failed initializing PJSUA!"
+#define STR_symbian_ua_guiContainerView_16 "Register Success"
+#define STR_symbian_ua_guiContainerView_17 "Register Failed"
+#define STR_symbian_ua_guiContainerView_18 "Accept Call"
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.loc b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.loc
new file mode 100644
index 00000000..7cf063f7
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.loc
@@ -0,0 +1,11 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainer.loc
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifdef LANGUAGE_01
+#include "symbian_ua_guiContainer.l01"
+#endif
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.rssi b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.rssi
new file mode 100644
index 00000000..54192895
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiContainer.rssi
@@ -0,0 +1,141 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainer.rssi
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#include "symbian_ua_guiContainer.hrh"
+#include "symbian_ua_guiContainer.loc"
+
+RESOURCE AVKON_VIEW r_symbian_ua_gui_container_symbian_ua_gui_container_view
+ {
+ cba = r_symbian_ua_gui_container_control_pane;
+ menubar = r_symbian_ua_gui_container_options_menu;
+ }
+RESOURCE MENU_BAR r_symbian_ua_gui_container_options_menu
+ {titles =
+ {
+ MENU_TITLE
+ {
+ menu_pane = r_symbian_ua_gui_container_menu_pane1_menu_pane;
+ }
+ };
+
+ }
+RESOURCE STATUS_PANE_APP_MODEL r_symbian_ua_gui_container_status_pane
+ {
+ panes =
+ {
+ SPANE_PANE
+ {
+ id = EEikStatusPaneUidTitle;
+ type = EAknCtTitlePane;
+ resource = r_symbian_ua_gui_container_title_resource;
+ }
+ };
+ }
+RESOURCE TITLE_PANE r_symbian_ua_gui_container_title_resource
+ {
+ txt = STR_symbian_ua_guiContainerView_1;
+ }
+RESOURCE CBA r_symbian_ua_gui_container_control_pane
+ {
+ buttons =
+ {
+ CBA_BUTTON
+ {
+ id = EAknSoftkeyOptions;
+ txt = STR_symbian_ua_guiContainerView_7;
+ },
+ CBA_BUTTON
+ {
+ id = ESymbian_ua_guiContainerViewControlPaneRightId;
+ txt = STR_symbian_ua_guiContainerView_8;
+ }
+ };
+ }
+RESOURCE LABEL r_symbian_ua_gui_container_label1
+ {
+ txt = STR_symbian_ua_guiContainerView_2;
+ horiz_align = EEikLabelAlignHCenter;
+ }
+RESOURCE EDWIN r_symbian_ua_gui_container_ed_url
+ {
+ maxlength = 255;
+ default_case = EAknEditorLowerCase;
+ allowed_case_modes = EAknEditorAllCaseModes;
+ numeric_keymap = EAknEditorStandardNumberModeKeymap;
+ default_input_mode = EAknEditorTextInputMode;
+ allowed_input_modes = EAknEditorTextInputMode | EAknEditorNumericInputMode | EAknEditorSecretAlphaInputMode | EAknEditorFullWidthTextInputMode | EAknEditorFullWidthNumericInputMode | EAknEditorHalfWidthTextInputMode;
+ special_character_table = R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG;
+ avkon_flags = EAknEditorFlagNoT9 | EAknEditorFlagSupressShiftMenu;
+ }
+RESOURCE TBUF r_symbian_ua_gui_container_ed_url_2
+ {
+ buf = STR_symbian_ua_guiContainerView_4;
+ }
+RESOURCE MENU_PANE r_symbian_ua_gui_container_menu_pane1_menu_pane
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ command = ESymbian_ua_guiContainerViewSettingMenuItemCommand;
+ txt = STR_symbian_ua_guiContainerView_9;
+ },
+ MENU_ITEM
+ {
+ command = EAknCmdExit;
+ txt = STR_symbian_ua_guiContainerView_10;
+ }
+ };
+ }
+RESOURCE EDWIN r_symbian_ua_gui_container_ed_info
+ {
+ flags = EEikEdwinReadOnly;
+ lines = 10;
+ maxlength = 2000;
+ default_case = EAknEditorTextCase;
+ allowed_case_modes = EAknEditorAllCaseModes;
+ numeric_keymap = EAknEditorStandardNumberModeKeymap;
+ default_input_mode = EAknEditorTextInputMode;
+ allowed_input_modes = EAknEditorTextInputMode | EAknEditorNumericInputMode | EAknEditorSecretAlphaInputMode | EAknEditorKatakanaInputMode | EAknEditorFullWidthTextInputMode | EAknEditorFullWidthNumericInputMode | EAknEditorFullWidthKatakanaInputMode | EAknEditorHiraganaKanjiInputMode | EAknEditorHalfWidthTextInputMode;
+ avkon_flags = EAknEditorFlagNoEditIndicators | EAknEditorFlagEnableScrollBars;
+ special_character_table = 0;
+ }
+RESOURCE TBUF r_symbian_ua_gui_container_ed_info_2
+ {
+ buf = STR_symbian_ua_guiContainerView_3;
+ }
+RESOURCE TBUF r_symbian_ua_gui_container_note_error
+ {
+ buf = STR_symbian_ua_guiContainerView_13;
+ }
+RESOURCE TBUF r_symbian_ua_gui_container_note_info
+ {
+ buf = STR_symbian_ua_guiContainerView_16;
+ }
+RESOURCE TBUF r_symbian_ua_gui_container_note_warning
+ {
+ buf = STR_symbian_ua_guiContainerView_17;
+ }
+RESOURCE DIALOG r_symbian_ua_gui_container_qry_accept_call
+ {
+ flags = EAknGeneralQueryFlags;
+ buttons = R_AVKON_SOFTKEYS_YES_NO;
+ items =
+ {
+ DLG_LINE
+ {
+ type = EAknCtQuery;
+ id = ESymbian_ua_guiContainerViewQry_accept_call;
+ control = AVKON_CONFIRMATION_QUERY
+ {
+ layout = EConfirmationQueryLayout;
+ label = STR_symbian_ua_guiContainerView_18;
+ };
+ }
+ };
+ }
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.l01 b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.l01
new file mode 100644
index 00000000..1f812f5c
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.l01
@@ -0,0 +1,31 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemList.l01
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// localized strings for language: UK English (01)
+#define STR_symbian_ua_guiSettingItemListView_1 "Settings"
+#define STR_symbian_ua_guiSettingItemListView_2 "Account Settings"
+#define STR_symbian_ua_guiSettingItemListView_4 "Change"
+#define STR_symbian_ua_guiSettingItemListView_16 "Password"
+#define STR_symbian_ua_guiSettingItemListView_18 ""
+#define STR_symbian_ua_guiSettingItemListView_19 "STUN Server"
+#define STR_symbian_ua_guiSettingItemListView_24 "SRTP"
+#define STR_symbian_ua_guiSettingItemListView_25 "On"
+#define STR_symbian_ua_guiSettingItemListView_26 "Popup text for On"
+#define STR_symbian_ua_guiSettingItemListView_27 "Off"
+#define STR_symbian_ua_guiSettingItemListView_28 "Popup text for Off"
+#define STR_symbian_ua_guiSettingItemListView_3 ""
+#define STR_symbian_ua_guiSettingItemListView_5 "Registrar"
+#define STR_symbian_ua_guiSettingItemListView_7 ""
+#define STR_symbian_ua_guiSettingItemListView_8 "User"
+#define STR_symbian_ua_guiSettingItemListView_46 "ICE"
+#define STR_symbian_ua_guiSettingItemListView_47 "On"
+#define STR_symbian_ua_guiSettingItemListView_48 "Popup text for On"
+#define STR_symbian_ua_guiSettingItemListView_49 "Off"
+#define STR_symbian_ua_guiSettingItemListView_140 "Options"
+#define STR_symbian_ua_guiSettingItemListView_141 "Done"
+#define STR_symbian_ua_guiSettingItemListView_50 "Popup text for Off"
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.loc b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.loc
new file mode 100644
index 00000000..c454d8f9
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.loc
@@ -0,0 +1,11 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemList.loc
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifdef LANGUAGE_01
+#include "symbian_ua_guiSettingItemList.l01"
+#endif
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.rssi b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.rssi
new file mode 100644
index 00000000..c8a4b30d
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_guiSettingItemList.rssi
@@ -0,0 +1,275 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemList.rssi
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#include "symbian_ua_guiSettingItemList.hrh"
+#include "symbian_ua_guiSettingItemList.loc"
+
+RESOURCE AVKON_VIEW r_symbian_ua_gui_setting_item_list_symbian_ua_gui_setting_item_list_view
+ {
+ cba = r_symbian_ua_gui_setting_item_list_control_pane;
+ menubar = r_symbian_ua_gui_setting_item_list_options_menu;
+ }
+RESOURCE MENU_BAR r_symbian_ua_gui_setting_item_list_options_menu
+ {
+ titles =
+ {
+ MENU_TITLE
+ {
+ menu_pane = r_symbian_ua_gui_setting_item_list_menu_pane1_menu_pane;
+ }
+ };
+ }
+RESOURCE MENU_PANE r_symbian_ua_gui_setting_item_list_menu_pane1_menu_pane
+ {
+ items =
+ {
+ MENU_ITEM
+ {
+ command = ESymbian_ua_guiSettingItemListViewMenuItem1Command;
+ txt = STR_symbian_ua_guiSettingItemListView_4;
+ }
+ };
+ }
+RESOURCE STATUS_PANE_APP_MODEL r_symbian_ua_gui_setting_item_list_status_pane
+ {
+ panes =
+ {
+ SPANE_PANE
+ {
+ id = EEikStatusPaneUidTitle;
+ type = EAknCtTitlePane;
+ resource = r_symbian_ua_gui_setting_item_list_title_resource;
+ }
+ };
+ }
+RESOURCE TITLE_PANE r_symbian_ua_gui_setting_item_list_title_resource
+ {
+ txt = STR_symbian_ua_guiSettingItemListView_2;
+ }
+RESOURCE AVKON_SETTING_ITEM_LIST r_symbian_ua_gui_setting_item_list_symbian_ua_gui_setting_item_list
+ {
+ items =
+ {
+ AVKON_SETTING_ITEM
+ {
+ name = STR_symbian_ua_guiSettingItemListView_5;
+ identifier = ESymbian_ua_guiSettingItemListViewEd_registrar;
+ setting_page_resource = r_symbian_ua_gui_setting_item_list_ed_registrar_setting_page_resource;
+ },
+ AVKON_SETTING_ITEM
+ {
+ name = STR_symbian_ua_guiSettingItemListView_8;
+ identifier = ESymbian_ua_guiSettingItemListViewEd_user;
+ setting_page_resource = r_symbian_ua_gui_setting_item_list_ed_user_setting_page_resource;
+ },
+ AVKON_SETTING_ITEM
+ {
+ name = STR_symbian_ua_guiSettingItemListView_16;
+ identifier = ESymbian_ua_guiSettingItemListViewEd_password;
+ setting_page_resource = r_symbian_ua_gui_setting_item_list_ed_password_setting_page_resource;
+ },
+ AVKON_SETTING_ITEM
+ {
+ name = STR_symbian_ua_guiSettingItemListView_24;
+ identifier = ESymbian_ua_guiSettingItemListViewB_srtp;
+ setting_page_resource = r_symbian_ua_gui_setting_item_list_b_srtp_setting_page_resource;
+ associated_resource = r_symbian_ua_gui_setting_item_list_b_srtp;
+ },
+ AVKON_SETTING_ITEM
+ {
+ name = STR_symbian_ua_guiSettingItemListView_46;
+ identifier = ESymbian_ua_guiSettingItemListViewB_ice;
+ setting_page_resource = r_symbian_ua_gui_setting_item_list_b_ice_setting_page_resource;
+ associated_resource = r_symbian_ua_gui_setting_item_list_b_ice;
+ },
+ AVKON_SETTING_ITEM
+ {
+ name = STR_symbian_ua_guiSettingItemListView_19;
+ identifier = ESymbian_ua_guiSettingItemListViewEd_stun_server;
+ setting_page_resource = r_symbian_ua_gui_setting_item_list_ed_stun_server_setting_page_resource;
+ }
+ };
+ }
+RESOURCE CBA r_symbian_ua_gui_setting_item_list_control_pane
+ {
+ buttons =
+ {
+ CBA_BUTTON
+ {
+ id = EAknSoftkeyOptions;
+ txt = STR_symbian_ua_guiSettingItemListView_140;
+ },
+ CBA_BUTTON
+ {
+ id = EAknSoftkeySave;
+ txt = STR_symbian_ua_guiSettingItemListView_141;
+ }
+ };
+ }
+RESOURCE AVKON_SETTING_PAGE r_symbian_ua_gui_setting_item_list_ed_registrar_setting_page_resource
+ {
+ number = -16380;
+ label = STR_symbian_ua_guiSettingItemListView_5;
+ type = EEikCtEdwin;
+ editor_resource_id = r_symbian_ua_gui_setting_item_list_ed_registrar_editor_resource_id;
+ }
+RESOURCE EDWIN r_symbian_ua_gui_setting_item_list_ed_registrar_editor_resource_id
+ {
+ maxlength = 255;
+ default_case = EAknEditorLowerCase;
+ allowed_case_modes = EAknEditorAllCaseModes;
+ numeric_keymap = EAknEditorStandardNumberModeKeymap;
+ default_input_mode = EAknEditorTextInputMode;
+ allowed_input_modes = EAknEditorTextInputMode | EAknEditorNumericInputMode | EAknEditorSecretAlphaInputMode | EAknEditorKatakanaInputMode | EAknEditorFullWidthTextInputMode | EAknEditorFullWidthNumericInputMode | EAknEditorFullWidthKatakanaInputMode | EAknEditorHiraganaKanjiInputMode | EAknEditorHalfWidthTextInputMode;
+ special_character_table = 0;
+ }
+RESOURCE AVKON_SETTING_PAGE r_symbian_ua_gui_setting_item_list_ed_user_setting_page_resource
+ {
+ number = -16380;
+ label = STR_symbian_ua_guiSettingItemListView_8;
+ type = EEikCtEdwin;
+ editor_resource_id = r_symbian_ua_gui_setting_item_list_ed_user_editor_resource_id;
+ }
+RESOURCE EDWIN r_symbian_ua_gui_setting_item_list_ed_user_editor_resource_id
+ {
+ maxlength = 255;
+ default_case = EAknEditorLowerCase;
+ allowed_case_modes = EAknEditorAllCaseModes;
+ numeric_keymap = EAknEditorStandardNumberModeKeymap;
+ default_input_mode = EAknEditorTextInputMode;
+ allowed_input_modes = EAknEditorTextInputMode | EAknEditorNumericInputMode | EAknEditorSecretAlphaInputMode | EAknEditorKatakanaInputMode | EAknEditorFullWidthTextInputMode | EAknEditorFullWidthNumericInputMode | EAknEditorFullWidthKatakanaInputMode | EAknEditorHiraganaKanjiInputMode | EAknEditorHalfWidthTextInputMode;
+ special_character_table = 0;
+ }
+RESOURCE AVKON_SETTING_PAGE r_symbian_ua_gui_setting_item_list_ed_password_setting_page_resource
+ {
+ number = -16380;
+ label = STR_symbian_ua_guiSettingItemListView_16;
+ type = EEikCtSecretEd;
+ editor_resource_id = r_symbian_ua_gui_setting_item_list_ed_password_editor_resource_id;
+ }
+RESOURCE SECRETED r_symbian_ua_gui_setting_item_list_ed_password_editor_resource_id
+ {num_letters = 32;
+
+ }
+RESOURCE AVKON_SETTING_PAGE r_symbian_ua_gui_setting_item_list_ed_stun_server_setting_page_resource
+ {
+ number = -16380;
+ label = STR_symbian_ua_guiSettingItemListView_19;
+ type = EEikCtEdwin;
+ editor_resource_id = r_symbian_ua_gui_setting_item_list_ed_stun_server_editor_resource_id;
+ }
+RESOURCE EDWIN r_symbian_ua_gui_setting_item_list_ed_stun_server_editor_resource_id
+ {
+ maxlength = 255;
+ default_case = EAknEditorTextCase;
+ allowed_case_modes = EAknEditorAllCaseModes;
+ numeric_keymap = EAknEditorStandardNumberModeKeymap;
+ default_input_mode = EAknEditorTextInputMode;
+ allowed_input_modes = EAknEditorTextInputMode | EAknEditorNumericInputMode | EAknEditorSecretAlphaInputMode | EAknEditorKatakanaInputMode | EAknEditorFullWidthTextInputMode | EAknEditorFullWidthNumericInputMode | EAknEditorFullWidthKatakanaInputMode | EAknEditorHiraganaKanjiInputMode | EAknEditorHalfWidthTextInputMode;
+ special_character_table = 0;
+ }
+RESOURCE AVKON_SETTING_PAGE r_symbian_ua_gui_setting_item_list_b_srtp_setting_page_resource
+ {
+ number = -16380;
+ label = STR_symbian_ua_guiSettingItemListView_24;
+ type = EAknCtPopupSettingList;
+ editor_resource_id = r_symbian_ua_gui_setting_item_list_b_srtp_editor_resource_id;
+ }
+RESOURCE POPUP_SETTING_LIST r_symbian_ua_gui_setting_item_list_b_srtp_editor_resource_id
+ {
+ }
+RESOURCE AVKON_POPUP_SETTING_TEXTS r_symbian_ua_gui_setting_item_list_b_srtp
+ {
+ setting_texts_resource = r_symbian_ua_gui_setting_item_list_b_srtp_setting_texts_resource;
+ popped_up_texts_resource = r_symbian_ua_gui_setting_item_list_b_srtp_popped_up_texts_resource;
+ }
+RESOURCE ARRAY r_symbian_ua_gui_setting_item_list_b_srtp_setting_texts_resource
+ {
+ items =
+ {
+ AVKON_ENUMERATED_TEXT
+ {
+ text = STR_symbian_ua_guiSettingItemListView_25;
+ value = 1;
+ },
+ AVKON_ENUMERATED_TEXT
+ {
+ text = STR_symbian_ua_guiSettingItemListView_27;
+ }
+ };
+ }
+RESOURCE ARRAY r_symbian_ua_gui_setting_item_list_b_srtp_popped_up_texts_resource
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = STR_symbian_ua_guiSettingItemListView_26;
+ },
+ LBUF
+ {
+ txt = STR_symbian_ua_guiSettingItemListView_28;
+ }
+ };
+ }
+RESOURCE AVKON_SETTING_PAGE r_symbian_ua_gui_setting_item_list_b_ice_setting_page_resource
+ {
+ number = -16380;
+ label = STR_symbian_ua_guiSettingItemListView_46;
+ type = EAknCtPopupSettingList;
+ editor_resource_id = r_symbian_ua_gui_setting_item_list_b_ice_editor_resource_id;
+ }
+RESOURCE POPUP_SETTING_LIST r_symbian_ua_gui_setting_item_list_b_ice_editor_resource_id
+ {
+ }
+RESOURCE AVKON_POPUP_SETTING_TEXTS r_symbian_ua_gui_setting_item_list_b_ice
+ {
+ setting_texts_resource = r_symbian_ua_gui_setting_item_list_b_ice_setting_texts_resource;
+ popped_up_texts_resource = r_symbian_ua_gui_setting_item_list_b_ice_popped_up_texts_resource;
+ }
+RESOURCE ARRAY r_symbian_ua_gui_setting_item_list_b_ice_setting_texts_resource
+ {
+ items =
+ {
+ AVKON_ENUMERATED_TEXT
+ {
+ text = STR_symbian_ua_guiSettingItemListView_47;
+ value = 1;
+ },
+ AVKON_ENUMERATED_TEXT
+ {
+ text = STR_symbian_ua_guiSettingItemListView_49;
+ }
+ };
+ }
+RESOURCE ARRAY r_symbian_ua_gui_setting_item_list_b_ice_popped_up_texts_resource
+ {
+ items =
+ {
+ LBUF
+ {
+ txt = STR_symbian_ua_guiSettingItemListView_48;
+ },
+ LBUF
+ {
+ txt = STR_symbian_ua_guiSettingItemListView_50;
+ }
+ };
+ }
+RESOURCE TBUF r_symbian_ua_gui_setting_item_list_ed_registrar
+ {
+ buf = STR_symbian_ua_guiSettingItemListView_3;
+ }
+RESOURCE TBUF r_symbian_ua_gui_setting_item_list_ed_user
+ {
+ buf = STR_symbian_ua_guiSettingItemListView_7;
+ }
+RESOURCE TBUF r_symbian_ua_gui_setting_item_list_ed_stun_server
+ {
+ buf = STR_symbian_ua_guiSettingItemListView_18;
+ }
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.loc b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.loc
new file mode 100644
index 00000000..876b4b5d
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.loc
@@ -0,0 +1,11 @@
+// LOCALISATION STRINGS
+
+// Caption string for app.
+#define qtn_caption_string "symbian_ua_gui"
+
+// Short caption string for app.
+#define qtn_short_caption_string "HW"
+
+#define qtn_loc_resource_file_1 "\\resource\\apps\\symbian_ua_gui"
+
+// End of File
diff --git a/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.rss b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.rss
new file mode 100644
index 00000000..ad50c4fe
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/data/symbian_ua_gui_reg.rss
@@ -0,0 +1,21 @@
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "symbian_ua_gui_reg.loc"
+#include <symbian_ua_gui.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xEBD12EE4
+
+RESOURCE APP_REGISTRATION_INFO
+ {
+ app_file="symbian_ua_gui";
+ localisable_resource_file = qtn_loc_resource_file_1;
+ localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+ embeddability=KAppNotEmbeddable;
+ newfile=KAppDoesNotSupportNewFile;
+ }
+
diff --git a/pjsip-apps/src/symbian_ua_gui/gfx/list_icon.bmp b/pjsip-apps/src/symbian_ua_gui/gfx/list_icon.bmp
new file mode 100644
index 00000000..a874feae
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/gfx/list_icon.bmp
Binary files differ
diff --git a/pjsip-apps/src/symbian_ua_gui/gfx/list_icon_mask.bmp b/pjsip-apps/src/symbian_ua_gui/gfx/list_icon_mask.bmp
new file mode 100644
index 00000000..e3205279
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/gfx/list_icon_mask.bmp
Binary files differ
diff --git a/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon.bmp b/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon.bmp
new file mode 100644
index 00000000..35571e2c
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon.bmp
Binary files differ
diff --git a/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon_mask.bmp b/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon_mask.bmp
new file mode 100644
index 00000000..dc8744bb
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/gfx/mark_icon_mask.bmp
Binary files differ
diff --git a/pjsip-apps/src/symbian_ua_gui/gfx/qgn_menu_symbian_ua_gui.svg b/pjsip-apps/src/symbian_ua_gui/gfx/qgn_menu_symbian_ua_gui.svg
new file mode 100644
index 00000000..47da6d7f
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/gfx/qgn_menu_symbian_ua_gui.svg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 88 87.999">
+<g>
+<g>
+<g>
+<g>
+<rect fill="none" width="88" height="87.999"/>
+</g>
+</g>
+<g>
+<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="12.3042" y1="18.3799" x2="63.4113" y2="79.287">
+<stop offset="0" style="stop-color:#B3DDFF"/>
+<stop offset="0.8146" style="stop-color:#084296"/>
+<stop offset="1" style="stop-color:#084296"/>
+</linearGradient>
+<path fill="url(#XMLID_7_)" d="M32.135,7.415L14.363,17.432v23.167c0,0,8.926,15.351,10.468,18.001 c-2.386,1.704-15.44,11.03-15.44,11.03l21.613,12.652c0,0,12.907-9.85,14.71-11.226c1.979,1.109,16.231,9.101,16.231,9.101 l16.664-15.132c0,0-14.066-6.929-16.888-8.318c1.467-3.01,10.531-21.604,10.531-21.604l-22.298-9.59 c0,0-1.486,3.173-2.093,4.467c-2.046-0.88-6.573-2.826-6.573-2.826s-3.713,2.463-5.696,3.778 c-0.327-0.744-0.542-1.233-0.657-1.495c0.007-0.824,0.213-23.72,0.213-23.72L32.135,7.415z"/>
+<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="40.8276" y1="52.1914" x2="16.1997" y2="21.1353">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_8_)" points="59.051,57.621 69.536,36.111 50.944,28.115 48.852,32.581 41.493,29.418 34.719,33.911 32.932,29.849 33.117,9.157 16.363,18.601 16.363,40.06 27.476,59.169 13.064,69.463 30.856,79.879 45.546,68.669 61.667,77.708 75.089,65.521 "/>
+<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="60.585" y1="31.876" x2="53.8582" y2="45.1125">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_9_)" points="41.26,48.783 50.944,28.115 69.536,36.111 59.051,57.621 "/>
+<polygon fill="#0046B7" points="16.363,40.06 27.476,59.169 41.26,48.783 32.932,29.849 "/>
+<polygon fill="#3366CC" points="16.363,40.06 16.363,18.601 33.117,9.157 32.932,29.849 "/>
+<polygon fill="#CFECFF" points="26.696,39.23 41.493,29.418 59.523,37.168 45.546,47.954 "/>
+<path fill="#5AA7E0" d="M41.954,55.286"/>
+<polygon fill="#3366CC" points="26.696,39.23 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#5AA7E0" points="13.064,69.463 27.476,59.169 45.546,68.669 30.856,79.879 "/>
+<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="29.2085" y1="63.6836" x2="48.7102" y2="56.1976">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.0056" style="stop-color:#5AA7E0"/>
+<stop offset="0.85" style="stop-color:#3366CC"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_10_)" points="43.423,46.971 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#0046B7" points="45.546,47.954 45.546,68.669 59.051,57.621 59.523,37.168 "/>
+<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="45.3936" y1="59.5186" x2="59.0508" y2="59.5186">
+<stop offset="0" style="stop-color:#0046B7"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_11_)" points="45.394,50.368 45.546,68.669 59.051,57.621 "/>
+<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="60.8945" y1="68.6807" x2="57.2953" y2="58.792">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.4101" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_12_)" points="61.667,77.708 45.546,68.669 59.051,57.621 75.089,65.521 "/>
+</g>
+</g>
+</g>
+</svg>
diff --git a/pjsip-apps/src/symbian_ua_gui/group/ABLD.BAT b/pjsip-apps/src/symbian_ua_gui/group/ABLD.BAT
new file mode 100644
index 00000000..8ccf2edf
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/group/ABLD.BAT
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+REM Bldmake-generated batch file - ABLD.BAT
+REM ** DO NOT EDIT **
+
+perl -S ABLD.PL "\project\pjproject-trunk\pjsip-apps\src\symbian_ua_gui\group\\" %1 %2 %3 %4 %5 %6 %7 %8 %9
+if errorlevel==1 goto CheckPerl
+goto End
+
+:CheckPerl
+perl -v >NUL
+if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed?
+goto End
+
+:End
diff --git a/pjsip-apps/src/symbian_ua_gui/group/Icons_aif_scalable_dc.mk b/pjsip-apps/src/symbian_ua_gui/group/Icons_aif_scalable_dc.mk
new file mode 100644
index 00000000..8aa63c70
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/group/Icons_aif_scalable_dc.mk
@@ -0,0 +1,71 @@
+# ============================================================================
+# Name : Icons_aif_scalable_dc.mk
+# Part of : symbian_ua_gui
+#
+# Description:
+#
+# ============================================================================
+
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=$(EPOCROOT)epoc32\data\z
+endif
+
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\symbian_ua_gui_aif.mif
+HEADERDIR=$(EPOCROOT)epoc32\include
+HEADERFILENAME=$(HEADERDIR)\symbian_ua_gui_aif.mbg
+
+ICONDIR=..\gfx
+
+do_nothing :
+ @rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN : do_nothing
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
+# and this command crashes, consider adding "/X" to the command line.
+# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
+# ----------------------------------------------------------------------------
+
+RESOURCE :
+ mifconv $(ICONTARGETFILENAME) \
+ /H$(HEADERFILENAME) \
+ /c32,8 $(ICONDIR)\qgn_menu_symbian_ua_gui.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+ @echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
+
diff --git a/pjsip-apps/src/symbian_ua_gui/group/bld.inf b/pjsip-apps/src/symbian_ua_gui/group/bld.inf
new file mode 100644
index 00000000..dcdef78f
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/group/bld.inf
@@ -0,0 +1,12 @@
+
+PRJ_PLATFORMS
+WINSCW ARMV5 GCCE
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+gnumakefile icons_aif_scalable_dc.mk
+
+
+symbian_ua_gui.mmp
diff --git a/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp b/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
new file mode 100644
index 00000000..38aedf16
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/group/symbian_ua_gui.mmp
@@ -0,0 +1,60 @@
+TARGET symbian_ua_gui.exe
+UID 0x100039CE 0xEBD12EE4
+VENDORID 0
+TARGETTYPE exe
+EPOCSTACKSIZE 0x8000
+
+MACRO PJ_M_I386=1
+MACRO PJ_SYMBIAN=1
+
+SYSTEMINCLUDE \epoc32\include \epoc32\include\variant \epoc32\include\ecom
+SYSTEMINCLUDE \epoc32\include\libc
+SYSTEMINCLUDE ..\..\..\..\pjlib\include
+SYSTEMINCLUDE ..\..\..\..\pjlib-util\include
+SYSTEMINCLUDE ..\..\..\..\pjnath\include
+SYSTEMINCLUDE ..\..\..\..\pjmedia\include
+SYSTEMINCLUDE ..\..\..\..\pjsip\include
+
+USERINCLUDE ..\inc ..\data
+
+SOURCEPATH ..\data
+START RESOURCE symbian_ua_gui.rss
+HEADER
+TARGETPATH resource\apps
+END //RESOURCE
+
+START RESOURCE symbian_ua_gui_reg.rss
+TARGETPATH \private\10003a3f\apps
+END //RESOURCE
+
+LIBRARY euser.lib apparc.lib cone.lib eikcore.lib avkon.lib
+LIBRARY commonengine.lib efsrv.lib estor.lib eikcoctl.lib eikdlg.lib
+LIBRARY eikctl.lib bafl.lib fbscli.lib aknnotify.lib aknicon.lib
+LIBRARY etext.lib gdi.lib egul.lib insock.lib
+LIBRARY ecom.lib InetProtUtil.lib http.lib esock.lib
+
+STATICLIBRARY pjsua_lib.lib pjsip_ua.lib
+STATICLIBRARY pjsip_simple.lib pjsip.lib pjsdp.lib pjmedia.lib
+STATICLIBRARY pjnath.lib pjlib_util.lib pjlib.lib
+STATICLIBRARY symbian_audio.lib
+STATICLIBRARY libgsmcodec.lib
+STATICLIBRARY libspeexcodec.lib
+
+LIBRARY charconv.lib estlib.lib
+LIBRARY mediaclientaudiostream.lib
+LIBRARY mediaclientaudioinputstream.lib
+
+LANG 01
+
+START BITMAP symbian_ua_gui.mbm
+HEADER
+TARGETPATH \resource\apps
+SOURCEPATH ..\gfx
+SOURCE c12,1 list_icon.bmp list_icon_mask.bmp
+END
+
+SOURCEPATH ..\src
+SOURCE symbian_ua_guiContainerView.cpp symbian_ua_guiContainer.cpp symbian_ua_guiAppUi.cpp symbian_ua_guiDocument.cpp symbian_ua_guiApplication.cpp symbian_ua_guiSettingItemList.cpp Symbian_ua_guiSettingItemListSets.cpp symbian_ua_guiSettingItemListView.cpp
+SOURCE symbian_ua.cpp
+
+CAPABILITY NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/Symbian_ua_guiSettingItemListSettings.h b/pjsip-apps/src/symbian_ua_gui/inc/Symbian_ua_guiSettingItemListSettings.h
new file mode 100644
index 00000000..c805f174
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/Symbian_ua_guiSettingItemListSettings.h
@@ -0,0 +1,63 @@
+/*
+========================================================================
+ Name : Symbian_ua_guiSettingItemListSettings.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUISETTINGITEMLISTSETTINGS_H
+#define SYMBIAN_UA_GUISETTINGITEMLISTSETTINGS_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <e32std.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+const int KEd_registrarMaxLength = 255;
+const int KEd_userMaxLength = 255;
+const int KEd_passwordMaxLength = 32;
+const int KEd_stun_serverMaxLength = 255;
+// ]]] end generated region [Generated Constants]
+
+/**
+ * @class TSymbian_ua_guiSettingItemListSettings Symbian_ua_guiSettingItemListSettings.h
+ */
+class TSymbian_ua_guiSettingItemListSettings
+ {
+public:
+ // construct and destroy
+ static TSymbian_ua_guiSettingItemListSettings* NewL();
+ void ConstructL();
+
+private:
+ // constructor
+ TSymbian_ua_guiSettingItemListSettings();
+ // [[[ begin generated region: do not modify [Generated Accessors]
+public:
+ TDes& Ed_registrar();
+ void SetEd_registrar(const TDesC& aValue);
+ TDes& Ed_user();
+ void SetEd_user(const TDesC& aValue);
+ TDes& Ed_password();
+ void SetEd_password(const TDesC& aValue);
+ TBool& B_srtp();
+ void SetB_srtp(const TBool& aValue);
+ TBool& B_ice();
+ void SetB_ice(const TBool& aValue);
+ TDes& Ed_stun_server();
+ void SetEd_stun_server(const TDesC& aValue);
+ // ]]] end generated region [Generated Accessors]
+
+ // [[[ begin generated region: do not modify [Generated Members]
+protected:
+ TBuf<KEd_registrarMaxLength> iEd_registrar;
+ TBuf<KEd_userMaxLength> iEd_user;
+ TBuf<KEd_passwordMaxLength> iEd_password;
+ TBool iB_srtp;
+ TBool iB_ice;
+ TBuf<KEd_stun_serverMaxLength> iEd_stun_server;
+ // ]]] end generated region [Generated Members]
+
+ };
+#endif // SYMBIAN_UA_GUISETTINGITEMLISTSETTINGS_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua.h
new file mode 100644
index 00000000..4258d3c7
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua.h
@@ -0,0 +1,47 @@
+/* $Id: ua.cpp 1793 2008-02-14 13:39:24Z bennylp $ */
+/*
+ * Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __SYMBIAN_UA_H__
+#define __SYMBIAN_UA_H__
+
+typedef struct
+{
+ void (*on_info)(const wchar_t* buf);
+ void (*on_incoming_call)(const wchar_t* caller_disp, const wchar_t* caller_uri);
+ void (*on_call_end)(const wchar_t* reason);
+ void (*on_reg_state)(bool success);
+ void (*on_unreg_state)(bool success);
+} symbian_ua_info_cb_t;
+
+int symbian_ua_init();
+int symbian_ua_destroy();
+
+void symbian_ua_set_info_callback(const symbian_ua_info_cb_t *cb);
+
+int symbian_ua_set_account(const char *domain, const char *username,
+ const char *password,
+ bool use_srtp, bool use_ice);
+
+bool symbian_ua_anycall();
+int symbian_ua_makecall(const char* dest_url);
+int symbian_ua_endcall();
+int symbian_ua_answercall();
+
+#endif
+
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.hrh b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.hrh
new file mode 100644
index 00000000..72127e03
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.hrh
@@ -0,0 +1,17 @@
+/*
+========================================================================
+ Name : symbian_ua_gui.hrh
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+enum Tsymbian_ua_guiViewUids
+ {
+ ESymbian_ua_guiContainerViewId = 1,
+ ESymbian_ua_guiSettingItemListViewId
+ };
+enum TSymbian_ua_guiApplicationControls
+ {
+ ESymbian_ua_guiApplicationDlg_wait_init = 1
+ };
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.pan b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.pan
new file mode 100644
index 00000000..a06f56b8
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_gui.pan
@@ -0,0 +1,18 @@
+
+#ifndef SYMBIAN_UA_GUI_PAN_H
+#define SYMBIAN_UA_GUI_PAN_H
+
+/** symbian_ua_gui application panic codes */
+enum Tsymbian_ua_guiPanics
+ {
+ Esymbian_ua_guiUi = 1
+ // add further panics here
+ };
+
+inline void Panic(Tsymbian_ua_guiPanics aReason)
+ {
+ _LIT(applicationName,"symbian_ua_gui");
+ User::Panic(applicationName, aReason);
+ }
+
+#endif // SYMBIAN_UA_GUI_PAN_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiAppUi.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiAppUi.h
new file mode 100644
index 00000000..be27309f
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiAppUi.h
@@ -0,0 +1,119 @@
+/*
+========================================================================
+ Name : symbian_ua_guiAppUi.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUIAPPUI_H
+#define SYMBIAN_UA_GUIAPPUI_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknviewappui.h>
+#include <aknwaitdialog.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class Csymbian_ua_guiContainerView;
+class Csymbian_ua_guiSettingItemListView;
+// ]]] end generated region [Generated Forward Declarations]
+
+/**
+ * @class Csymbian_ua_guiAppUi symbian_ua_guiAppUi.h
+ * @brief The AppUi class handles application-wide aspects of the user interface, including
+ * view management and the default menu, control pane, and status pane.
+ */
+class Csymbian_ua_guiAppUi : public CAknViewAppUi, public CTimer
+ {
+public:
+ // constructor and destructor
+ Csymbian_ua_guiAppUi();
+ virtual ~Csymbian_ua_guiAppUi();
+ void ConstructL();
+
+public:
+ // from CCoeAppUi
+ TKeyResponse HandleKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ // from CEikAppUi
+ void HandleCommandL( TInt aCommand );
+ void HandleResourceChangeL( TInt aType );
+
+ // from CAknAppUi
+ void HandleViewDeactivation(
+ const TVwsViewId& aViewIdToBeDeactivated,
+ const TVwsViewId& aNewlyActivatedViewId );
+
+private:
+ void InitializeContainersL();
+ // [[[ begin generated region: do not modify [Generated Methods]
+public:
+ void ExecuteDlg_wait_initLD( const TDesC* aOverrideText = NULL );
+ void RemoveDlg_wait_initL();
+ // ]]] end generated region [Generated Methods]
+
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
+private:
+ CAknWaitDialog* iDlg_wait_init;
+ class CProgressDialogCallback;
+ CProgressDialogCallback* iDlg_wait_initCallback;
+ Csymbian_ua_guiContainerView* iSymbian_ua_guiContainerView;
+ Csymbian_ua_guiSettingItemListView* iSymbian_ua_guiSettingItemListView;
+ // ]]] end generated region [Generated Instance Variables]
+
+
+ // [[[ begin [User Handlers]
+protected:
+ void HandleSymbian_ua_guiAppUiApplicationSpecificEventL(
+ TInt aType,
+ const TWsEvent& anEvent );
+ void HandleDlg_wait_initCanceledL( CAknProgressDialog* aDialog );
+ // ]]] end [User Handlers]
+
+
+ // [[[ begin [Overridden Methods]
+protected:
+ void HandleApplicationSpecificEventL(
+ TInt aType,
+ const TWsEvent& anEvent );
+ // ]]] end [Overridden Methods]
+
+ virtual void RunL();
+
+ // [[[ begin [MProgressDialogCallback support]
+private:
+ typedef void ( Csymbian_ua_guiAppUi::*ProgressDialogEventHandler )(
+ CAknProgressDialog* aProgressDialog );
+
+ /**
+ * This is a helper class for progress/wait dialog callbacks. It routes the dialog's
+ * cancel notification to the handler function for the cancel event.
+ */
+ class CProgressDialogCallback : public CBase, public MProgressDialogCallback
+ {
+ public:
+ CProgressDialogCallback(
+ Csymbian_ua_guiAppUi* aHandlerObj,
+ CAknProgressDialog* aDialog,
+ ProgressDialogEventHandler aHandler ) :
+ handlerObj( aHandlerObj ), dialog( aDialog ), handler( aHandler )
+ {}
+
+ void DialogDismissedL( TInt aButtonId )
+ {
+ ( handlerObj->*handler )( dialog );
+ }
+ private:
+ Csymbian_ua_guiAppUi* handlerObj;
+ CAknProgressDialog* dialog;
+ ProgressDialogEventHandler handler;
+ };
+
+ // ]]] end [MProgressDialogCallback support]
+
+ };
+
+#endif // SYMBIAN_UA_GUIAPPUI_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiApplication.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiApplication.h
new file mode 100644
index 00000000..26cb7b8a
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiApplication.h
@@ -0,0 +1,35 @@
+/*
+========================================================================
+ Name : symbian_ua_guiApplication.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUIAPPLICATION_H
+#define SYMBIAN_UA_GUIAPPLICATION_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknapp.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+const TUid KUidsymbian_ua_guiApplication = { 0xEBD12EE4 };
+// ]]] end generated region [Generated Constants]
+
+/**
+ *
+ * @class Csymbian_ua_guiApplication symbian_ua_guiApplication.h
+ * @brief A CAknApplication-derived class is required by the S60 application
+ * framework. It is subclassed to create the application's document
+ * object.
+ */
+class Csymbian_ua_guiApplication : public CAknApplication
+ {
+private:
+ TUid AppDllUid() const;
+ CApaDocument* CreateDocumentL();
+
+ };
+
+#endif // SYMBIAN_UA_GUIAPPLICATION_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.h
new file mode 100644
index 00000000..465496c9
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.h
@@ -0,0 +1,113 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainer.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUICONTAINER_H
+#define SYMBIAN_UA_GUICONTAINER_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <coecntrl.h>
+// ]]] end generated region [Generated Includes]
+
+
+// [[[ begin [Event Handler Includes]
+// ]]] end [Event Handler Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class MEikCommandObserver;
+class CEikLabel;
+class CEikEdwin;
+// ]]] end generated region [Generated Forward Declarations]
+
+/**
+ * Container class for symbian_ua_guiContainer
+ *
+ * @class CSymbian_ua_guiContainer symbian_ua_guiContainer.h
+ */
+class CSymbian_ua_guiContainer : public CCoeControl
+ {
+public:
+ // constructors and destructor
+ CSymbian_ua_guiContainer();
+ static CSymbian_ua_guiContainer* NewL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver );
+ static CSymbian_ua_guiContainer* NewLC(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver );
+ void ConstructL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver );
+ virtual ~CSymbian_ua_guiContainer();
+
+public:
+ // from base class CCoeControl
+ TInt CountComponentControls() const;
+ CCoeControl* ComponentControl( TInt aIndex ) const;
+ TKeyResponse OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+ void HandleResourceChange( TInt aType );
+
+protected:
+ // from base class CCoeControl
+ void SizeChanged();
+
+private:
+ // from base class CCoeControl
+ void Draw( const TRect& aRect ) const;
+
+private:
+ void InitializeControlsL();
+ void LayoutControls();
+ CCoeControl* iFocusControl;
+ MEikCommandObserver* iCommandObserver;
+ // [[[ begin generated region: do not modify [Generated Methods]
+public:
+ // ]]] end generated region [Generated Methods]
+
+ // [[[ begin generated region: do not modify [Generated Type Declarations]
+public:
+ // ]]] end generated region [Generated Type Declarations]
+
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
+private:
+ CEikLabel* iLabel1;
+ CEikEdwin* iEd_url;
+ CEikEdwin* iEd_info;
+ // ]]] end generated region [Generated Instance Variables]
+
+
+ // [[[ begin [Overridden Methods]
+protected:
+ // ]]] end [Overridden Methods]
+
+
+ // [[[ begin [User Handlers]
+protected:
+ // ]]] end [User Handlers]
+
+public:
+ enum TControls
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ ELabel1,
+ EEd_url,
+ EEd_info,
+
+ // ]]] end generated region [Generated Contents]
+
+ // add any user-defined entries here...
+
+ ELastControl
+ };
+ };
+
+#endif // SYMBIAN_UA_GUICONTAINER_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.hrh b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.hrh
new file mode 100644
index 00000000..1ad366fb
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainer.hrh
@@ -0,0 +1,17 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainer.hrh
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+enum TSymbian_ua_guiContainerViewCommands
+ {
+ ESymbian_ua_guiContainerViewControlPaneRightId = 0x6000,
+ ESymbian_ua_guiContainerViewSettingMenuItemCommand
+ };
+enum TSymbian_ua_guiContainerViewControls
+ {
+ ESymbian_ua_guiContainerViewQry_accept_call = 1
+ };
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainerView.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainerView.h
new file mode 100644
index 00000000..4c294c9c
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiContainerView.h
@@ -0,0 +1,88 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainerView.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUICONTAINERVIEW_H
+#define SYMBIAN_UA_GUICONTAINERVIEW_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknview.h>
+// ]]] end generated region [Generated Includes]
+
+
+// [[[ begin [Event Handler Includes]
+// ]]] end [Event Handler Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class CSymbian_ua_guiContainer;
+// ]]] end generated region [Generated Forward Declarations]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+/**
+ * Avkon view class for symbian_ua_guiContainerView. It is register with the view server
+ * by the AppUi. It owns the container control.
+ * @class Csymbian_ua_guiContainerView symbian_ua_guiContainerView.h
+ */
+class Csymbian_ua_guiContainerView : public CAknView
+ {
+public:
+ // constructors and destructor
+ Csymbian_ua_guiContainerView();
+ static Csymbian_ua_guiContainerView* NewL();
+ static Csymbian_ua_guiContainerView* NewLC();
+ void ConstructL();
+ virtual ~Csymbian_ua_guiContainerView();
+
+public:
+ // from base class CAknView
+ TUid Id() const;
+ void HandleCommandL( TInt aCommand );
+
+ void PutMessage(const TDesC &msg);
+
+protected:
+ // from base class CAknView
+ void DoActivateL(
+ const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage );
+ void DoDeactivate();
+ void HandleStatusPaneSizeChange();
+
+private:
+ void SetupStatusPaneL();
+ void CleanupStatusPane();
+ // [[[ begin generated region: do not modify [Generated Methods]
+public:
+ static void RunNote_errorL( const TDesC* aOverrideText = NULL );
+ static void RunNote_infoL( const TDesC* aOverrideText = NULL );
+ static void RunNote_warningL( const TDesC* aOverrideText = NULL );
+ static TInt RunQry_accept_callL( const TDesC* aOverrideText = NULL );
+ // ]]] end generated region [Generated Methods]
+
+
+ // [[[ begin [Overridden Methods]
+protected:
+ // ]]] end [Overridden Methods]
+
+
+ // [[[ begin [User Handlers]
+protected:
+ TBool CallSoftKeyPressedL( TInt aCommand );
+ TBool HandleSettingMenuItemSelectedL( TInt aCommand );
+ // ]]] end [User Handlers]
+
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
+private:
+ CSymbian_ua_guiContainer* iSymbian_ua_guiContainer;
+ // ]]] end generated region [Generated Instance Variables]
+
+ };
+
+#endif // SYMBIAN_UA_GUICONTAINERVIEW_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiDocument.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiDocument.h
new file mode 100644
index 00000000..83012311
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiDocument.h
@@ -0,0 +1,36 @@
+/*
+========================================================================
+ Name : symbian_ua_guiDocument.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUIDOCUMENT_H
+#define SYMBIAN_UA_GUIDOCUMENT_H
+
+#include <akndoc.h>
+
+class CEikAppUi;
+
+/**
+* @class Csymbian_ua_guiDocument symbian_ua_guiDocument.h
+* @brief A CAknDocument-derived class is required by the S60 application
+* framework. It is responsible for creating the AppUi object.
+*/
+class Csymbian_ua_guiDocument : public CAknDocument
+ {
+public:
+ // constructor
+ static Csymbian_ua_guiDocument* NewL( CEikApplication& aApp );
+
+private:
+ // constructors
+ Csymbian_ua_guiDocument( CEikApplication& aApp );
+ void ConstructL();
+
+public:
+ // from base class CEikDocument
+ CEikAppUi* CreateAppUiL();
+ };
+#endif // SYMBIAN_UA_GUIDOCUMENT_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.h
new file mode 100644
index 00000000..bdaa089c
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.h
@@ -0,0 +1,87 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemList.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUISETTINGITEMLIST_H
+#define SYMBIAN_UA_GUISETTINGITEMLIST_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknsettingitemlist.h>
+// ]]] end generated region [Generated Includes]
+
+
+// [[[ begin [Event Handler Includes]
+// ]]] end [Event Handler Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class MEikCommandObserver;
+class TSymbian_ua_guiSettingItemListSettings;
+// ]]] end generated region [Generated Forward Declarations]
+
+/**
+ * @class CSymbian_ua_guiSettingItemList symbian_ua_guiSettingItemList.h
+ */
+class CSymbian_ua_guiSettingItemList : public CAknSettingItemList
+ {
+public: // constructors and destructor
+
+ CSymbian_ua_guiSettingItemList(
+ TSymbian_ua_guiSettingItemListSettings& settings,
+ MEikCommandObserver* aCommandObserver );
+ virtual ~CSymbian_ua_guiSettingItemList();
+
+public:
+
+ // from CCoeControl
+ void HandleResourceChange( TInt aType );
+
+ // overrides of CAknSettingItemList
+ CAknSettingItem* CreateSettingItemL( TInt id );
+ void EditItemL( TInt aIndex, TBool aCalledFromMenu );
+ TKeyResponse OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+public:
+ // utility function for menu
+ void ChangeSelectedItemL();
+
+ void LoadSettingValuesL();
+ void SaveSettingValuesL();
+
+private:
+ // override of CAknSettingItemList
+ void SizeChanged();
+
+private:
+ // current settings values
+ TSymbian_ua_guiSettingItemListSettings& iSettings;
+ MEikCommandObserver* iCommandObserver;
+ // [[[ begin generated region: do not modify [Generated Methods]
+public:
+ // ]]] end generated region [Generated Methods]
+
+ // [[[ begin generated region: do not modify [Generated Type Declarations]
+public:
+ // ]]] end generated region [Generated Type Declarations]
+
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
+private:
+ // ]]] end generated region [Generated Instance Variables]
+
+
+ // [[[ begin [Overridden Methods]
+protected:
+ // ]]] end [Overridden Methods]
+
+
+ // [[[ begin [User Handlers]
+protected:
+ // ]]] end [User Handlers]
+
+ };
+#endif // SYMBIAN_UA_GUISETTINGITEMLIST_H
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.hrh b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.hrh
new file mode 100644
index 00000000..e9b4de47
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemList.hrh
@@ -0,0 +1,22 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemList.hrh
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+enum TSymbian_ua_guiSettingItemListViewCommands
+ {
+ ESymbian_ua_guiSettingItemListViewMenuItem1Command = 0x6000,
+ ESymbian_ua_guiSettingItemListViewSave_SettingsMenuItemCommand
+ };
+enum TSymbian_ua_guiSettingItemListViewSave_SettingsItems
+ {
+ ESymbian_ua_guiSettingItemListViewEd_registrar = 1,
+ ESymbian_ua_guiSettingItemListViewEd_user,
+ ESymbian_ua_guiSettingItemListViewEd_password,
+ ESymbian_ua_guiSettingItemListViewEd_stun_server,
+ ESymbian_ua_guiSettingItemListViewB_srtp,
+ ESymbian_ua_guiSettingItemListViewB_ice
+ };
diff --git a/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemListView.h b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemListView.h
new file mode 100644
index 00000000..18b3f2b1
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/inc/symbian_ua_guiSettingItemListView.h
@@ -0,0 +1,85 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemListView.h
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+#ifndef SYMBIAN_UA_GUISETTINGITEMLISTVIEW_H
+#define SYMBIAN_UA_GUISETTINGITEMLISTVIEW_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknview.h>
+#include "Symbian_ua_guiSettingItemListSettings.h"
+// ]]] end generated region [Generated Includes]
+
+
+// [[[ begin [Event Handler Includes]
+// ]]] end [Event Handler Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class CSymbian_ua_guiSettingItemList;
+// ]]] end generated region [Generated Forward Declarations]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+/**
+ * Avkon view class for symbian_ua_guiSettingItemListView. It is register with the view server
+ * by the AppUi. It owns the container control.
+ * @class Csymbian_ua_guiSettingItemListView symbian_ua_guiSettingItemListView.h
+ */
+class Csymbian_ua_guiSettingItemListView : public CAknView
+ {
+public:
+ // constructors and destructor
+ Csymbian_ua_guiSettingItemListView();
+ static Csymbian_ua_guiSettingItemListView* NewL();
+ static Csymbian_ua_guiSettingItemListView* NewLC();
+ void ConstructL();
+ virtual ~Csymbian_ua_guiSettingItemListView();
+
+public:
+ // from base class CAknView
+ TUid Id() const;
+ void HandleCommandL( TInt aCommand );
+
+protected:
+ // from base class CAknView
+ void DoActivateL(
+ const TVwsViewId& aPrevViewId,
+ TUid aCustomMessageId,
+ const TDesC8& aCustomMessage );
+ void DoDeactivate();
+ void HandleStatusPaneSizeChange();
+
+private:
+ void SetupStatusPaneL();
+ void CleanupStatusPane();
+ // [[[ begin generated region: do not modify [Generated Methods]
+public:
+ // ]]] end generated region [Generated Methods]
+
+
+ // [[[ begin [Overridden Methods]
+protected:
+ // ]]] end [Overridden Methods]
+
+
+ // [[[ begin [User Handlers]
+protected:
+ TBool HandleChangeSelectedSettingItemL( TInt aCommand );
+ TBool HandleControlPaneRightSoftKeyPressedL( TInt aCommand );
+ TBool HandleCancelMenuItemSelectedL( TInt aCommand );
+ // ]]] end [User Handlers]
+
+ // [[[ begin generated region: do not modify [Generated Instance Variables]
+private:
+ CSymbian_ua_guiSettingItemList* iSymbian_ua_guiSettingItemList;
+ TSymbian_ua_guiSettingItemListSettings* iSettings;
+ // ]]] end generated region [Generated Instance Variables]
+
+ };
+
+#endif // SYMBIAN_UA_GUISETTINGITEMLISTVIEW_H
diff --git a/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.pkg b/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.pkg
new file mode 100644
index 00000000..b460505d
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.pkg
@@ -0,0 +1,36 @@
+; symbian_ua_gui.pkg
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+; Also, the resource file entries should be changed to match the language
+; used in the build. For example, if building for LANGUAGE_01, change the file
+; extensions .rsc to .r01.
+;
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"symbian_ua_gui"},(0xEBD12EE4),1,0,0
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+;You should change the source paths to match that of your environment
+;<source> <destination>
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\symbian_ua_gui.exe" -"!:\sys\bin\symbian_ua_gui.exe"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\symbian_ua_gui.r01" -"!:\resource\apps\symbian_ua_gui.r01"
+"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\symbian_ua_gui_reg.r01" -"!:\private\10003a3f\import\apps\symbian_ua_gui_reg.r01"
+"$(EPOCROOT)epoc32\data\z\resource\apps\symbian_ua_gui_aif.mif" -"!:\resource\apps\symbian_ua_gui_aif.mif"
+"$(EPOCROOT)epoc32\data\z\resource\apps\symbian_ua_gui.mbm" -"!:\resource\apps\symbian_ua_gui.mbm"
+; Add any installation notes if applicable
+;"symbian_ua_gui.txt" -"!:\private\0xEBD12EE4\symbian_ua_gui.txt"
+
diff --git a/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.txt b/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/sis/symbian_ua_gui.txt
diff --git a/pjsip-apps/src/symbian_ua_gui/src/Symbian_ua_guiSettingItemListSets.cpp b/pjsip-apps/src/symbian_ua_gui/src/Symbian_ua_guiSettingItemListSets.cpp
new file mode 100644
index 00000000..af53f186
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/Symbian_ua_guiSettingItemListSets.cpp
@@ -0,0 +1,144 @@
+/*
+========================================================================
+ Name : Symbian_ua_guiSettingItemListSettings.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+/**
+ * Generated helper class which manages the settings contained
+ * in 'symbian_ua_guiSettingItemList'. Each CAknSettingItem maintains
+ * a reference to data in this class so that changes in the setting
+ * item list can be synchronized with this storage.
+ */
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <e32base.h>
+#include <stringloader.h>
+#include <barsread.h>
+#include <symbian_ua_gui.rsg>
+#include "Symbian_ua_guiSettingItemListSettings.h"
+// ]]] end generated region [Generated Includes]
+
+/**
+ * C/C++ constructor for settings data, cannot throw
+ */
+TSymbian_ua_guiSettingItemListSettings::TSymbian_ua_guiSettingItemListSettings()
+ {
+ }
+
+/**
+ * Two-phase constructor for settings data
+ */
+TSymbian_ua_guiSettingItemListSettings* TSymbian_ua_guiSettingItemListSettings::NewL()
+ {
+ TSymbian_ua_guiSettingItemListSettings* data = new( ELeave ) TSymbian_ua_guiSettingItemListSettings;
+ CleanupStack::PushL( data );
+ data->ConstructL();
+ CleanupStack::Pop( data );
+ return data;
+ }
+
+/**
+ * Second phase for initializing settings data
+ */
+void TSymbian_ua_guiSettingItemListSettings::ConstructL()
+ {
+ // [[[ begin generated region: do not modify [Generated Initializers]
+ {
+ HBufC* text = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_ED_REGISTRAR );
+ SetEd_registrar( text->Des() );
+ CleanupStack::PopAndDestroy( text );
+ }
+ {
+ HBufC* text = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_ED_USER );
+ SetEd_user( text->Des() );
+ CleanupStack::PopAndDestroy( text );
+ }
+ SetB_srtp( 0 );
+ SetB_ice( 0 );
+ {
+ HBufC* text = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_ED_STUN_SERVER );
+ SetEd_stun_server( text->Des() );
+ CleanupStack::PopAndDestroy( text );
+ }
+ // ]]] end generated region [Generated Initializers]
+
+ }
+
+// [[[ begin generated region: do not modify [Generated Contents]
+TDes& TSymbian_ua_guiSettingItemListSettings::Ed_registrar()
+ {
+ return iEd_registrar;
+ }
+
+void TSymbian_ua_guiSettingItemListSettings::SetEd_registrar(const TDesC& aValue)
+ {
+ if ( aValue.Length() < KEd_registrarMaxLength)
+ iEd_registrar.Copy( aValue );
+ else
+ iEd_registrar.Copy( aValue.Ptr(), KEd_registrarMaxLength);
+ }
+
+TDes& TSymbian_ua_guiSettingItemListSettings::Ed_user()
+ {
+ return iEd_user;
+ }
+
+void TSymbian_ua_guiSettingItemListSettings::SetEd_user(const TDesC& aValue)
+ {
+ if ( aValue.Length() < KEd_userMaxLength)
+ iEd_user.Copy( aValue );
+ else
+ iEd_user.Copy( aValue.Ptr(), KEd_userMaxLength);
+ }
+
+TDes& TSymbian_ua_guiSettingItemListSettings::Ed_password()
+ {
+ return iEd_password;
+ }
+
+void TSymbian_ua_guiSettingItemListSettings::SetEd_password(const TDesC& aValue)
+ {
+ if ( aValue.Length() < KEd_passwordMaxLength)
+ iEd_password.Copy( aValue );
+ else
+ iEd_password.Copy( aValue.Ptr(), KEd_passwordMaxLength);
+ }
+
+TBool& TSymbian_ua_guiSettingItemListSettings::B_srtp()
+ {
+ return iB_srtp;
+ }
+
+void TSymbian_ua_guiSettingItemListSettings::SetB_srtp(const TBool& aValue)
+ {
+ iB_srtp = aValue;
+ }
+
+TBool& TSymbian_ua_guiSettingItemListSettings::B_ice()
+ {
+ return iB_ice;
+ }
+
+void TSymbian_ua_guiSettingItemListSettings::SetB_ice(const TBool& aValue)
+ {
+ iB_ice = aValue;
+ }
+
+TDes& TSymbian_ua_guiSettingItemListSettings::Ed_stun_server()
+ {
+ return iEd_stun_server;
+ }
+
+void TSymbian_ua_guiSettingItemListSettings::SetEd_stun_server(const TDesC& aValue)
+ {
+ if ( aValue.Length() < KEd_stun_serverMaxLength)
+ iEd_stun_server.Copy( aValue );
+ else
+ iEd_stun_server.Copy( aValue.Ptr(), KEd_stun_serverMaxLength);
+ }
+
+// ]]] end generated region [Generated Contents]
+
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
new file mode 100644
index 00000000..ac29a6a0
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
@@ -0,0 +1,504 @@
+/* $Id: ua.cpp 1793 2008-02-14 13:39:24Z bennylp $ */
+/*
+ * Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <pjsua-lib/pjsua.h>
+#include <pjsua-lib/pjsua_internal.h>
+#include <es_sock.h>
+#include "symbian_ua.h"
+
+#define THIS_FILE "symbian_ua.cpp"
+#define LOG_LEVEL 3
+
+#define SIP_PORT 5060
+#define USE_ICE 0
+
+static RSocketServ aSocketServer;
+static RConnection aConn;
+
+static pjsua_acc_id g_acc_id = PJSUA_INVALID_ID;
+static pjsua_call_id g_call_id = PJSUA_INVALID_ID;
+static pjsua_buddy_id g_buddy_id = PJSUA_INVALID_ID;
+
+static symbian_ua_info_cb_t g_cb = {NULL, NULL, NULL, NULL, NULL};
+
+static void log_writer(int level, const char *buf, int len)
+{
+ static wchar_t buf16[PJ_LOG_MAX_SIZE];
+
+ PJ_UNUSED_ARG(level);
+
+ if (!g_cb.on_info)
+ return;
+
+ pj_ansi_to_unicode(buf, len, buf16, PJ_ARRAY_SIZE(buf16));
+ g_cb.on_info(buf16);
+}
+
+static void on_reg_state(pjsua_acc_id acc_id)
+{
+ pjsua_acc_info acc_info;
+ pj_status_t status;
+
+ status = pjsua_acc_get_info(acc_id, &acc_info);
+ if (status != PJ_SUCCESS)
+ return;
+
+ if (acc_info.status == 200) {
+ if (acc_info.expires) {
+ PJ_LOG(3,(THIS_FILE, "Registration success!"));
+ if (g_cb.on_reg_state) g_cb.on_reg_state(true);
+ } else {
+ PJ_LOG(3,(THIS_FILE, "Unregistration success!"));
+ if (g_cb.on_unreg_state) g_cb.on_unreg_state(true);
+ }
+ } else {
+ if (acc_info.expires) {
+ PJ_LOG(3,(THIS_FILE, "Registration failed!"));
+ if (g_cb.on_reg_state) g_cb.on_reg_state(false);
+ } else {
+ PJ_LOG(3,(THIS_FILE, "Unregistration failed!"));
+ if (g_cb.on_unreg_state) g_cb.on_unreg_state(false);
+ }
+ }
+}
+
+/* Callback called by the library upon receiving incoming call */
+static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id,
+ pjsip_rx_data *rdata)
+{
+ pjsua_call_info ci;
+
+ PJ_UNUSED_ARG(acc_id);
+ PJ_UNUSED_ARG(rdata);
+
+ if (g_call_id != PJSUA_INVALID_ID) {
+ pjsua_call_answer(call_id, PJSIP_SC_BUSY_HERE, NULL, NULL);
+ return;
+ }
+
+ pjsua_call_get_info(call_id, &ci);
+
+ PJ_LOG(3,(THIS_FILE, "Incoming call from %.*s!!",
+ (int)ci.remote_info.slen,
+ ci.remote_info.ptr));
+
+ g_call_id = call_id;
+
+ /* Automatically answer incoming calls with 180/Ringing */
+ pjsua_call_answer(call_id, 180, NULL, NULL);
+
+ if (g_cb.on_incoming_call) {
+ static wchar_t disp[256];
+ static wchar_t uri[PJSIP_MAX_URL_SIZE];
+
+ pj_ansi_to_unicode(ci.remote_info.ptr, ci.remote_info.slen,
+ disp, PJ_ARRAY_SIZE(disp));
+ pj_ansi_to_unicode(ci.remote_contact.ptr, ci.remote_contact.slen,
+ uri, PJ_ARRAY_SIZE(uri));
+
+ g_cb.on_incoming_call(disp, uri);
+ }
+}
+
+/* Callback called by the library when call's state has changed */
+static void on_call_state(pjsua_call_id call_id, pjsip_event *e)
+{
+ pjsua_call_info ci;
+
+ PJ_UNUSED_ARG(e);
+
+ pjsua_call_get_info(call_id, &ci);
+
+ if (ci.state == PJSIP_INV_STATE_DISCONNECTED) {
+ if (call_id == g_call_id)
+ g_call_id = PJSUA_INVALID_ID;
+ if (g_cb.on_call_end) {
+ static wchar_t reason[256];
+ pj_ansi_to_unicode(ci.last_status_text.ptr, ci.last_status_text.slen,
+ reason, PJ_ARRAY_SIZE(reason));
+ g_cb.on_call_end(reason);
+ }
+
+ } else if (ci.state != PJSIP_INV_STATE_INCOMING) {
+ if (g_call_id == PJSUA_INVALID_ID)
+ g_call_id = call_id;
+ }
+
+ PJ_LOG(3,(THIS_FILE, "Call %d state=%.*s", call_id,
+ (int)ci.state_text.slen,
+ ci.state_text.ptr));
+}
+
+/* Callback called by the library when call's media state has changed */
+static void on_call_media_state(pjsua_call_id call_id)
+{
+ pjsua_call_info ci;
+
+ pjsua_call_get_info(call_id, &ci);
+
+ if (ci.media_status == PJSUA_CALL_MEDIA_ACTIVE) {
+ // When media is active, connect call to sound device.
+ pjsua_conf_connect(ci.conf_slot, 0);
+ pjsua_conf_connect(0, ci.conf_slot);
+ }
+}
+
+
+/* Handler on buddy state changed. */
+static void on_buddy_state(pjsua_buddy_id buddy_id)
+{
+ pjsua_buddy_info info;
+ pjsua_buddy_get_info(buddy_id, &info);
+
+ PJ_LOG(3,(THIS_FILE, "%.*s status is %.*s",
+ (int)info.uri.slen,
+ info.uri.ptr,
+ (int)info.status_text.slen,
+ info.status_text.ptr));
+}
+
+
+/* Incoming IM message (i.e. MESSAGE request)! */
+static void on_pager(pjsua_call_id call_id, const pj_str_t *from,
+ const pj_str_t *to, const pj_str_t *contact,
+ const pj_str_t *mime_type, const pj_str_t *text)
+{
+ /* Note: call index may be -1 */
+ PJ_UNUSED_ARG(call_id);
+ PJ_UNUSED_ARG(to);
+ PJ_UNUSED_ARG(contact);
+ PJ_UNUSED_ARG(mime_type);
+
+ PJ_LOG(3,(THIS_FILE,"MESSAGE from %.*s: %.*s",
+ (int)from->slen, from->ptr,
+ (int)text->slen, text->ptr));
+}
+
+
+/* Received typing indication */
+static void on_typing(pjsua_call_id call_id, const pj_str_t *from,
+ const pj_str_t *to, const pj_str_t *contact,
+ pj_bool_t is_typing)
+{
+ PJ_UNUSED_ARG(call_id);
+ PJ_UNUSED_ARG(to);
+ PJ_UNUSED_ARG(contact);
+
+ PJ_LOG(3,(THIS_FILE, "IM indication: %.*s %s",
+ (int)from->slen, from->ptr,
+ (is_typing?"is typing..":"has stopped typing")));
+}
+
+
+/* Call transfer request status. */
+static void on_call_transfer_status(pjsua_call_id call_id,
+ int status_code,
+ const pj_str_t *status_text,
+ pj_bool_t final,
+ pj_bool_t *p_cont)
+{
+ PJ_LOG(3,(THIS_FILE, "Call %d: transfer status=%d (%.*s) %s",
+ call_id, status_code,
+ (int)status_text->slen, status_text->ptr,
+ (final ? "[final]" : "")));
+
+ if (status_code/100 == 2) {
+ PJ_LOG(3,(THIS_FILE,
+ "Call %d: call transfered successfully, disconnecting call",
+ call_id));
+ pjsua_call_hangup(call_id, PJSIP_SC_GONE, NULL, NULL);
+ *p_cont = PJ_FALSE;
+ }
+}
+
+
+/* NAT detection result */
+static void on_nat_detect(const pj_stun_nat_detect_result *res)
+{
+ if (res->status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "NAT detection failed", res->status);
+ } else {
+ PJ_LOG(3, (THIS_FILE, "NAT detected as %s", res->nat_type_name));
+ }
+}
+
+/* Notification that call is being replaced. */
+static void on_call_replaced(pjsua_call_id old_call_id,
+ pjsua_call_id new_call_id)
+{
+ pjsua_call_info old_ci, new_ci;
+
+ pjsua_call_get_info(old_call_id, &old_ci);
+ pjsua_call_get_info(new_call_id, &new_ci);
+
+ PJ_LOG(3,(THIS_FILE, "Call %d with %.*s is being replaced by "
+ "call %d with %.*s",
+ old_call_id,
+ (int)old_ci.remote_info.slen, old_ci.remote_info.ptr,
+ new_call_id,
+ (int)new_ci.remote_info.slen, new_ci.remote_info.ptr));
+}
+
+int symbian_ua_init()
+{
+ TInt err;
+ pj_symbianos_params sym_params;
+ pj_status_t status;
+
+ // Initialize RSocketServ
+ if ((err=aSocketServer.Connect()) != KErrNone)
+ return PJ_STATUS_FROM_OS(err);
+
+ // Open up a connection
+ if ((err=aConn.Open(aSocketServer)) != KErrNone) {
+ aSocketServer.Close();
+ return PJ_STATUS_FROM_OS(err);
+ }
+
+ if ((err=aConn.Start()) != KErrNone) {
+ aConn.Close();
+ aSocketServer.Close();
+ return PJ_STATUS_FROM_OS(err);
+ }
+
+ // Set Symbian OS parameters in pjlib.
+ // This must be done before pj_init() is called.
+ pj_bzero(&sym_params, sizeof(sym_params));
+ sym_params.rsocketserv = &aSocketServer;
+ sym_params.rconnection = &aConn;
+ pj_symbianos_set_params(&sym_params);
+
+ /* Redirect log before pjsua_init() */
+ pj_log_set_log_func(&log_writer);
+
+ /* Set log level */
+ pj_log_set_level(LOG_LEVEL);
+
+ /* Create pjsua first! */
+ status = pjsua_create();
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "pjsua_create() error", status);
+ return status;
+ }
+
+ /* Init pjsua */
+ pjsua_config cfg;
+
+ pjsua_config_default(&cfg);
+ cfg.max_calls = 2;
+ cfg.thread_cnt = 0; // Disable threading on Symbian
+ //cfg.use_srtp = 0;
+ //cfg.srtp_secure_signaling = 0;
+
+ cfg.cb.on_incoming_call = &on_incoming_call;
+ cfg.cb.on_call_media_state = &on_call_media_state;
+ cfg.cb.on_call_state = &on_call_state;
+ cfg.cb.on_buddy_state = &on_buddy_state;
+ cfg.cb.on_pager = &on_pager;
+ cfg.cb.on_typing = &on_typing;
+ cfg.cb.on_call_transfer_status = &on_call_transfer_status;
+ cfg.cb.on_call_replaced = &on_call_replaced;
+ cfg.cb.on_nat_detect = &on_nat_detect;
+ cfg.cb.on_reg_state = &on_reg_state;
+
+ pjsua_media_config med_cfg;
+
+ pjsua_media_config_default(&med_cfg);
+ med_cfg.thread_cnt = 0; // Disable threading on Symbian
+ med_cfg.has_ioqueue = PJ_FALSE;
+ med_cfg.clock_rate = 8000;
+ med_cfg.audio_frame_ptime = 40;
+ med_cfg.ec_tail_len = 0;
+ med_cfg.enable_ice = USE_ICE;
+
+ pjsua_logging_config log_cfg;
+
+ pjsua_logging_config_default(&log_cfg);
+ log_cfg.console_level = LOG_LEVEL;
+ log_cfg.cb = &log_writer;
+ log_cfg.decor = 0;
+
+ status = pjsua_init(&cfg, &log_cfg, &med_cfg);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "pjsua_init() error", status);
+ pjsua_destroy();
+ return status;
+ }
+
+ /* Add UDP transport. */
+ pjsua_transport_config tcfg;
+ pjsua_transport_id tid;
+
+ pjsua_transport_config_default(&tcfg);
+ tcfg.port = SIP_PORT;
+ status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &tcfg, &tid);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Error creating transport", status);
+ pjsua_destroy();
+ return status;
+ }
+
+ /* Add account for the transport */
+ pjsua_acc_add_local(tid, PJ_TRUE, &g_acc_id);
+
+ /* Initialization is done, now start pjsua */
+ status = pjsua_start();
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Error starting pjsua", status);
+ pjsua_destroy();
+ return status;
+ }
+
+ /* Adjust Speex priority and enable only the narrowband */
+ {
+ pj_str_t codec_id = pj_str("speex/8000");
+ pjmedia_codec_mgr_set_codec_priority(
+ pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt),
+ &codec_id, PJMEDIA_CODEC_PRIO_NORMAL+1);
+
+ codec_id = pj_str("speex/16000");
+ pjmedia_codec_mgr_set_codec_priority(
+ pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt),
+ &codec_id, PJMEDIA_CODEC_PRIO_DISABLED);
+
+ codec_id = pj_str("speex/32000");
+ pjmedia_codec_mgr_set_codec_priority(
+ pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt),
+ &codec_id, PJMEDIA_CODEC_PRIO_DISABLED);
+ }
+
+ return PJ_SUCCESS;
+}
+
+
+int symbian_ua_destroy()
+{
+ // Shutdown pjsua
+ pjsua_destroy();
+
+ // Close connection and socket server
+ aConn.Close();
+ aSocketServer.Close();
+
+ return PJ_SUCCESS;
+}
+
+void symbian_ua_set_info_callback(const symbian_ua_info_cb_t *cb)
+{
+ if (cb)
+ g_cb = *cb;
+ else
+ pj_bzero(&g_cb, sizeof(g_cb));
+}
+
+int symbian_ua_set_account(const char *domain, const char *username,
+ const char *password,
+ bool use_srtp, bool use_ice)
+{
+ pj_status_t status;
+
+ PJ_ASSERT_RETURN(username && password && domain, PJ_EINVAL);
+ PJ_UNUSED_ARG(use_srtp);
+ PJ_UNUSED_ARG(use_ice);
+
+ if (domain[0] == 0) {
+ pjsua_acc_info acc_info;
+ pj_status_t status;
+
+ status = pjsua_acc_get_info(g_acc_id, &acc_info);
+ if (status != PJ_SUCCESS)
+ return status;
+
+ if (acc_info.status == 200) {
+ PJ_LOG(3,(THIS_FILE, "Unregistering.."));
+ pjsua_acc_set_registration(g_acc_id, PJ_FALSE);
+ g_acc_id = 0;
+ }
+ return PJ_SUCCESS;
+ }
+
+ if (pjsua_acc_get_count() > 1) {
+ status = pjsua_acc_del(g_acc_id);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Error removing account", status);
+ return status;
+ }
+ g_acc_id = 0;
+ }
+
+ pjsua_acc_config cfg;
+ char tmp_id[PJSIP_MAX_URL_SIZE];
+ char tmp_reg_uri[PJSIP_MAX_URL_SIZE];
+
+ if (!pj_ansi_strnicmp(domain, "sip:", 4)) {
+ domain += 4;
+ }
+
+ pjsua_acc_config_default(&cfg);
+ pj_ansi_sprintf(tmp_id, "sip:%s@%s", username, domain);
+ cfg.id = pj_str(tmp_id);
+ pj_ansi_sprintf(tmp_reg_uri, "sip:%s", domain);
+ cfg.reg_uri = pj_str(tmp_reg_uri);
+ cfg.cred_count = 1;
+ cfg.cred_info[0].realm = pj_str("*");
+ cfg.cred_info[0].scheme = pj_str("digest");
+ cfg.cred_info[0].username = pj_str((char*)username);
+ cfg.cred_info[0].data_type = PJSIP_CRED_DATA_PLAIN_PASSWD;
+ cfg.cred_info[0].data = pj_str((char*)password);
+
+ status = pjsua_acc_add(&cfg, PJ_TRUE, &g_acc_id);
+ if (status != PJ_SUCCESS) {
+ pjsua_perror(THIS_FILE, "Error setting account", status);
+ pjsua_destroy();
+ return status;
+ }
+
+ return PJ_SUCCESS;
+}
+
+int symbian_ua_makecall(const char* dest_url)
+{
+ if (pjsua_verify_sip_url(dest_url) == PJ_SUCCESS) {
+ pj_str_t dst = pj_str((char*)dest_url);
+ pjsua_call_make_call(g_acc_id, &dst, 0, NULL,
+ NULL, &g_call_id);
+
+ return PJ_SUCCESS;
+ }
+
+ return PJ_EINVAL;
+}
+
+int symbian_ua_endcall()
+{
+ pjsua_call_hangup_all();
+
+ return PJ_SUCCESS;
+}
+
+bool symbian_ua_anycall()
+{
+ return (pjsua_call_get_count()>0);
+}
+
+int symbian_ua_answercall()
+{
+ PJ_ASSERT_RETURN (g_call_id != PJSUA_INVALID_ID, PJ_EINVAL);
+
+ return pjsua_call_answer(g_call_id, 200, NULL, NULL);
+}
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiAppUi.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiAppUi.cpp
new file mode 100644
index 00000000..70dd7ece
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiAppUi.cpp
@@ -0,0 +1,247 @@
+/*
+========================================================================
+ Name : symbian_ua_guiAppUi.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <eikmenub.h>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <symbian_ua_gui.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "symbian_ua_guiAppUi.h"
+#include "symbian_ua_gui.hrh"
+#include "symbian_ua_guiContainer.hrh"
+#include "symbian_ua_guiSettingItemList.hrh"
+#include "symbian_ua_guiContainerView.h"
+#include "symbian_ua_guiSettingItemListView.h"
+// ]]] end generated region [Generated User Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+#include "symbian_ua.h"
+
+/**
+ * Construct the Csymbian_ua_guiAppUi instance
+ */
+Csymbian_ua_guiAppUi::Csymbian_ua_guiAppUi() : CTimer(0)
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * The appui's destructor removes the container from the control
+ * stack and destroys it.
+ */
+Csymbian_ua_guiAppUi::~Csymbian_ua_guiAppUi()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ TRAPD( err_Dlg_wait_init, RemoveDlg_wait_initL() );
+ // ]]] end generated region [Generated Contents]
+
+ symbian_ua_destroy();
+ }
+
+// [[[ begin generated function: do not modify
+void Csymbian_ua_guiAppUi::InitializeContainersL()
+ {
+ iSymbian_ua_guiContainerView = Csymbian_ua_guiContainerView::NewL();
+ AddViewL( iSymbian_ua_guiContainerView );
+ iSymbian_ua_guiSettingItemListView = Csymbian_ua_guiSettingItemListView::NewL();
+ AddViewL( iSymbian_ua_guiSettingItemListView );
+ SetDefaultViewL( *iSymbian_ua_guiSettingItemListView );
+ }
+// ]]] end generated function
+
+/**
+ * Handle a command for this appui (override)
+ * @param aCommand command id to be handled
+ */
+void Csymbian_ua_guiAppUi::HandleCommandL( TInt aCommand )
+ {
+ // [[[ begin generated region: do not modify [Generated Code]
+ TBool commandHandled = EFalse;
+ switch ( aCommand )
+ { // code to dispatch to the AppUi's menu and CBA commands is generated here
+ default:
+ break;
+ }
+
+
+ if ( !commandHandled )
+ {
+ if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
+ {
+ Exit();
+ }
+ }
+ // ]]] end generated region [Generated Code]
+
+ }
+
+/**
+ * Override of the HandleResourceChangeL virtual function
+ */
+void Csymbian_ua_guiAppUi::HandleResourceChangeL( TInt aType )
+ {
+ CAknViewAppUi::HandleResourceChangeL( aType );
+ // [[[ begin generated region: do not modify [Generated Code]
+ // ]]] end generated region [Generated Code]
+
+ }
+
+/**
+ * Override of the HandleKeyEventL virtual function
+ * @return EKeyWasConsumed if event was handled, EKeyWasNotConsumed if not
+ * @param aKeyEvent
+ * @param aType
+ */
+TKeyResponse Csymbian_ua_guiAppUi::HandleKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ // The inherited HandleKeyEventL is private and cannot be called
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ return EKeyWasNotConsumed;
+ }
+
+/**
+ * Override of the HandleViewDeactivation virtual function
+ *
+ * @param aViewIdToBeDeactivated
+ * @param aNewlyActivatedViewId
+ */
+void Csymbian_ua_guiAppUi::HandleViewDeactivation(
+ const TVwsViewId& aViewIdToBeDeactivated,
+ const TVwsViewId& aNewlyActivatedViewId )
+ {
+ CAknViewAppUi::HandleViewDeactivation(
+ aViewIdToBeDeactivated,
+ aNewlyActivatedViewId );
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * @brief Completes the second phase of Symbian object construction.
+ * Put initialization code that could leave here.
+ */
+void Csymbian_ua_guiAppUi::ConstructL()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ BaseConstructL( EAknEnableSkin );
+ InitializeContainersL();
+ // ]]] end generated region [Generated Contents]
+
+ // Create private folder
+ RProcess process;
+ TFileName path;
+
+ path.Copy( process.FileName().Left(2) );
+
+ if(path.Compare(_L("c")) || path.Compare(_L("C")))
+ CEikonEnv::Static()->FsSession().CreatePrivatePath(EDriveC);
+ else if(path.Compare(_L("e")) || path.Compare(_L("E")))
+ CEikonEnv::Static()->FsSession().CreatePrivatePath(EDriveE);
+
+ // Init PJSUA
+ if (symbian_ua_init() != 0) {
+ Exit();
+ }
+
+ ExecuteDlg_wait_initLD();
+
+ CTimer::ConstructL();
+ CActiveScheduler::Add( this );
+ After(4000000);
+ }
+
+/**
+ * Override of the HandleApplicationSpecificEventL virtual function
+ */
+void Csymbian_ua_guiAppUi::HandleApplicationSpecificEventL(
+ TInt aType,
+ const TWsEvent& anEvent )
+ {
+ CAknViewAppUi::HandleApplicationSpecificEventL( aType, anEvent );
+ // [[[ begin generated region: do not modify [Generated Code]
+ // ]]] end generated region [Generated Code]
+
+ }
+
+/**
+ * Handle the applicationSpecificEvent event.
+ */
+void Csymbian_ua_guiAppUi::HandleSymbian_ua_guiAppUiApplicationSpecificEventL(
+ TInt /* aType */,
+ const TWsEvent& /* anEvent */ )
+ {
+ // TODO: implement applicationSpecificEvent event handler
+ }
+
+// [[[ begin generated function: do not modify
+/**
+ * Execute the wait dialog for dlg_wait_init. This routine returns
+ * while the dialog is showing. It will be closed and destroyed when
+ * RemoveDlg_wait_initL() or the user selects the Cancel soft key.
+ * @param aOverrideText optional override text. When null the text configured
+ * in the UI Designer is used.
+ */
+void Csymbian_ua_guiAppUi::ExecuteDlg_wait_initLD( const TDesC* aOverrideText )
+ {
+ iDlg_wait_init = new ( ELeave ) CAknWaitDialog(
+ reinterpret_cast< CEikDialog** >( &iDlg_wait_init ), EFalse );
+ if ( aOverrideText != NULL )
+ {
+ iDlg_wait_init->SetTextL( *aOverrideText );
+ }
+ iDlg_wait_init->ExecuteLD( R_APPLICATION_DLG_WAIT_INIT );
+ iDlg_wait_initCallback = new ( ELeave ) CProgressDialogCallback(
+ this, iDlg_wait_init, &Csymbian_ua_guiAppUi::HandleDlg_wait_initCanceledL );
+ iDlg_wait_init->SetCallback( iDlg_wait_initCallback );
+ }
+// ]]] end generated function
+
+// [[[ begin generated function: do not modify
+/**
+ * Close and dispose of the wait dialog for dlg_wait_init
+ */
+void Csymbian_ua_guiAppUi::RemoveDlg_wait_initL()
+ {
+ if ( iDlg_wait_init != NULL )
+ {
+ iDlg_wait_init->SetCallback( NULL );
+ iDlg_wait_init->ProcessFinishedL(); // deletes the dialog
+ iDlg_wait_init = NULL;
+ }
+ delete iDlg_wait_initCallback;
+ iDlg_wait_initCallback = NULL;
+
+ }
+// ]]] end generated function
+
+/**
+ * Handle the canceled event.
+ */
+void Csymbian_ua_guiAppUi::HandleDlg_wait_initCanceledL( CAknProgressDialog* /* aDialog */ )
+ {
+ // TODO: implement canceled event handler
+
+ }
+
+void Csymbian_ua_guiAppUi::RunL()
+ {
+ RemoveDlg_wait_initL();
+ iSymbian_ua_guiSettingItemListView->HandleCommandL(EAknSoftkeySave);
+ }
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiApplication.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiApplication.cpp
new file mode 100644
index 00000000..e1b5e2bf
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiApplication.cpp
@@ -0,0 +1,82 @@
+/*
+========================================================================
+ Name : symbian_ua_guiApplication.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// [[[ begin generated region: do not modify [Generated System Includes]
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include "symbian_ua_guiApplication.h"
+#include "symbian_ua_guiDocument.h"
+#ifdef EKA2
+#include <eikstart.h>
+#endif
+// ]]] end generated region [Generated Includes]
+
+/**
+ * @brief Returns the application's UID (override from CApaApplication::AppDllUid())
+ * @return UID for this application (KUidsymbian_ua_guiApplication)
+ */
+TUid Csymbian_ua_guiApplication::AppDllUid() const
+ {
+ return KUidsymbian_ua_guiApplication;
+ }
+
+/**
+ * @brief Creates the application's document (override from CApaApplication::CreateDocumentL())
+ * @return Pointer to the created document object (Csymbian_ua_guiDocument)
+ */
+CApaDocument* Csymbian_ua_guiApplication::CreateDocumentL()
+ {
+ return Csymbian_ua_guiDocument::NewL( *this );
+ }
+
+#ifdef EKA2
+
+/**
+ * @brief Called by the application framework to construct the application object
+ * @return The application (Csymbian_ua_guiApplication)
+ */
+LOCAL_C CApaApplication* NewApplication()
+ {
+ return new Csymbian_ua_guiApplication;
+ }
+
+/**
+* @brief This standard export is the entry point for all Series 60 applications
+* @return error code
+ */
+GLDEF_C TInt E32Main()
+ {
+ TInt err;
+
+ err = EikStart::RunApplication( NewApplication );
+
+ return err;
+ }
+
+#else // Series 60 2.x main DLL program code
+
+/**
+* @brief This standard export constructs the application object.
+* @return The application (Csymbian_ua_guiApplication)
+*/
+EXPORT_C CApaApplication* NewApplication()
+ {
+ return new Csymbian_ua_guiApplication;
+ }
+
+/**
+* @brief This standard export is the entry point for all Series 60 applications
+* @return error code
+*/
+GLDEF_C TInt E32Dll(TDllReason /*reason*/)
+ {
+ return KErrNone;
+ }
+
+#endif // EKA2
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainer.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainer.cpp
new file mode 100644
index 00000000..d36dfbf7
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainer.cpp
@@ -0,0 +1,285 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainer.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <barsread.h>
+#include <stringloader.h>
+#include <eiklabel.h>
+#include <eikenv.h>
+#include <gdi.h>
+#include <eikedwin.h>
+#include <aknviewappui.h>
+#include <eikappui.h>
+#include <symbian_ua_gui.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "symbian_ua_guiContainer.h"
+#include "symbian_ua_guiContainerView.h"
+#include "symbian_ua_gui.hrh"
+#include "symbian_ua_guiContainer.hrh"
+#include "symbian_ua_guiSettingItemList.hrh"
+// ]]] end generated region [Generated User Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+/**
+ * First phase of Symbian two-phase construction. Should not
+ * contain any code that could leave.
+ */
+CSymbian_ua_guiContainer::CSymbian_ua_guiContainer()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ iLabel1 = NULL;
+ iEd_url = NULL;
+ iEd_info = NULL;
+ // ]]] end generated region [Generated Contents]
+
+ }
+/**
+ * Destroy child controls.
+ */
+CSymbian_ua_guiContainer::~CSymbian_ua_guiContainer()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ delete iLabel1;
+ iLabel1 = NULL;
+ delete iEd_url;
+ iEd_url = NULL;
+ delete iEd_info;
+ iEd_info = NULL;
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * Construct the control (first phase).
+ * Creates an instance and initializes it.
+ * Instance is not left on cleanup stack.
+ * @param aRect bounding rectangle
+ * @param aParent owning parent, or NULL
+ * @param aCommandObserver command observer
+ * @return initialized instance of CSymbian_ua_guiContainer
+ */
+CSymbian_ua_guiContainer* CSymbian_ua_guiContainer::NewL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver )
+ {
+ CSymbian_ua_guiContainer* self = CSymbian_ua_guiContainer::NewLC(
+ aRect,
+ aParent,
+ aCommandObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/**
+ * Construct the control (first phase).
+ * Creates an instance and initializes it.
+ * Instance is left on cleanup stack.
+ * @param aRect The rectangle for this window
+ * @param aParent owning parent, or NULL
+ * @param aCommandObserver command observer
+ * @return new instance of CSymbian_ua_guiContainer
+ */
+CSymbian_ua_guiContainer* CSymbian_ua_guiContainer::NewLC(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver )
+ {
+ CSymbian_ua_guiContainer* self = new ( ELeave ) CSymbian_ua_guiContainer();
+ CleanupStack::PushL( self );
+ self->ConstructL( aRect, aParent, aCommandObserver );
+ return self;
+ }
+
+/**
+ * Construct the control (second phase).
+ * Creates a window to contain the controls and activates it.
+ * @param aRect bounding rectangle
+ * @param aCommandObserver command observer
+ * @param aParent owning parent, or NULL
+ */
+void CSymbian_ua_guiContainer::ConstructL(
+ const TRect& aRect,
+ const CCoeControl* aParent,
+ MEikCommandObserver* aCommandObserver )
+ {
+ if ( aParent == NULL )
+ {
+ CreateWindowL();
+ }
+ else
+ {
+ SetContainerWindowL( *aParent );
+ }
+ iFocusControl = NULL;
+ iCommandObserver = aCommandObserver;
+ InitializeControlsL();
+ SetRect( aRect );
+ ActivateL();
+ // [[[ begin generated region: do not modify [Post-ActivateL initializations]
+ // ]]] end generated region [Post-ActivateL initializations]
+
+ }
+
+/**
+* Return the number of controls in the container (override)
+* @return count
+*/
+TInt CSymbian_ua_guiContainer::CountComponentControls() const
+ {
+ return ( int ) ELastControl;
+ }
+
+/**
+* Get the control with the given index (override)
+* @param aIndex Control index [0...n) (limited by #CountComponentControls)
+* @return Pointer to control
+*/
+CCoeControl* CSymbian_ua_guiContainer::ComponentControl( TInt aIndex ) const
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ switch ( aIndex )
+ {
+ case ELabel1:
+ return iLabel1;
+ case EEd_url:
+ return iEd_url;
+ case EEd_info:
+ return iEd_info;
+ }
+ // ]]] end generated region [Generated Contents]
+
+ // handle any user controls here...
+
+ return NULL;
+ }
+
+/**
+ * Handle resizing of the container. This implementation will lay out
+ * full-sized controls like list boxes for any screen size, and will layout
+ * labels, editors, etc. to the size they were given in the UI designer.
+ * This code will need to be modified to adjust arbitrary controls to
+ * any screen size.
+ */
+void CSymbian_ua_guiContainer::SizeChanged()
+ {
+ CCoeControl::SizeChanged();
+ LayoutControls();
+ // [[[ begin generated region: do not modify [Generated Contents]
+
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+// [[[ begin generated function: do not modify
+/**
+ * Layout components as specified in the UI Designer
+ */
+void CSymbian_ua_guiContainer::LayoutControls()
+ {
+ iLabel1->SetExtent( TPoint( 2, 23 ), TSize( 32, 28 ) );
+ iEd_url->SetExtent( TPoint( 49, 25 ), TSize( 197, 28 ) );
+ iEd_info->SetExtent( TPoint( 3, 78 ), TSize( 235, 143 ) );
+ }
+// ]]] end generated function
+
+/**
+ * Handle key events.
+ */
+TKeyResponse CSymbian_ua_guiContainer::OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+
+ // ]]] end generated region [Generated Contents]
+
+ if ( iFocusControl != NULL
+ && iFocusControl->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )
+ {
+ return EKeyWasConsumed;
+ }
+ return CCoeControl::OfferKeyEventL( aKeyEvent, aType );
+ }
+
+// [[[ begin generated function: do not modify
+/**
+ * Initialize each control upon creation.
+ */
+void CSymbian_ua_guiContainer::InitializeControlsL()
+ {
+ iLabel1 = new ( ELeave ) CEikLabel;
+ iLabel1->SetContainerWindowL( *this );
+ {
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, R_SYMBIAN_UA_GUI_CONTAINER_LABEL1 );
+ iLabel1->ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+ iEd_url = new ( ELeave ) CEikEdwin;
+ iEd_url->SetContainerWindowL( *this );
+ {
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, R_SYMBIAN_UA_GUI_CONTAINER_ED_URL );
+ iEd_url->ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+ {
+ HBufC* text = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_CONTAINER_ED_URL_2 );
+ iEd_url->SetTextL( text );
+ CleanupStack::PopAndDestroy( text );
+ }
+ iEd_info = new ( ELeave ) CEikEdwin;
+ iEd_info->SetContainerWindowL( *this );
+ {
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, R_SYMBIAN_UA_GUI_CONTAINER_ED_INFO );
+ iEd_info->ConstructFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+ {
+ HBufC* text = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_CONTAINER_ED_INFO_2 );
+ iEd_info->SetTextL( text );
+ CleanupStack::PopAndDestroy( text );
+ }
+
+ iEd_url->SetFocus( ETrue );
+ iFocusControl = iEd_url;
+
+ }
+// ]]] end generated function
+
+/**
+ * Handle global resource changes, such as scalable UI or skin events (override)
+ */
+void CSymbian_ua_guiContainer::HandleResourceChange( TInt aType )
+ {
+ CCoeControl::HandleResourceChange( aType );
+ SetRect( iAvkonViewAppUi->View( TUid::Uid( ESymbian_ua_guiContainerViewId ) )->ClientRect() );
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * Draw container contents.
+ */
+void CSymbian_ua_guiContainer::Draw( const TRect& aRect ) const
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ CWindowGc& gc = SystemGc();
+ gc.Clear( aRect );
+
+ // ]]] end generated region [Generated Contents]
+
+ }
+
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainerView.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainerView.cpp
new file mode 100644
index 00000000..e22f0125
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiContainerView.cpp
@@ -0,0 +1,478 @@
+/*
+========================================================================
+ Name : symbian_ua_guiContainerView.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <aknviewappui.h>
+#include <eikmenub.h>
+#include <avkon.hrh>
+#include <barsread.h>
+#include <stringloader.h>
+#include <eiklabel.h>
+#include <eikenv.h>
+#include <gdi.h>
+#include <eikedwin.h>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <eikbtgpc.h>
+#include <aknnotewrappers.h>
+#include <aknquerydialog.h>
+#include <symbian_ua_gui.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "symbian_ua_gui.hrh"
+#include "symbian_ua_guiContainerView.h"
+#include "symbian_ua_guiContainer.hrh"
+#include "symbian_ua_guiSettingItemList.hrh"
+#include "symbian_ua_guiContainer.h"
+// ]]] end generated region [Generated User Includes]
+
+#include <UTF.H>
+#include "symbian_ua.h"
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+Csymbian_ua_guiContainerView *myinstance = NULL;
+_LIT(KStCall, "Call");
+_LIT(KStHangUp, "Hang Up");
+
+void on_info(const wchar_t* buf)
+{
+ TPtrC aBuf((const TUint16*)buf);
+
+ if (myinstance)
+ myinstance->PutMessage(aBuf);
+}
+
+void on_incoming_call(const wchar_t* caller_disp, const wchar_t* caller_uri)
+{
+ TBuf<512> buf;
+ TPtrC aDisp((const TUint16*)caller_disp);
+ TPtrC aUri((const TUint16*)caller_uri);
+ _LIT(KFormat, "Incoming call from %S, accept?");
+
+ buf.Format(KFormat, &aDisp);
+ if (Csymbian_ua_guiContainerView::RunQry_accept_callL(&buf) == EAknSoftkeyYes)
+ {
+ CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
+ if (cba != NULL) {
+ TRAPD(result, cba->SetCommandL(ESymbian_ua_guiContainerViewControlPaneRightId, KStHangUp));
+ cba->DrawDeferred();
+ }
+ symbian_ua_answercall();
+ } else {
+ symbian_ua_endcall();
+ }
+}
+
+void on_call_end(const wchar_t* reason)
+{
+ TPtrC aReason((const TUint16*)reason);
+
+ CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
+ if (cba != NULL) {
+ TRAPD(result, cba->SetCommandL(ESymbian_ua_guiContainerViewControlPaneRightId, KStCall));
+ cba->DrawDeferred();
+ }
+
+ Csymbian_ua_guiContainerView::RunNote_infoL(&aReason);
+}
+
+void on_reg_state(bool success)
+{
+ if (success)
+ Csymbian_ua_guiContainerView::RunNote_infoL();
+ else
+ Csymbian_ua_guiContainerView::RunNote_warningL();
+}
+
+void on_unreg_state(bool success)
+{
+ TPtrC st_success(_L("Unregistration Success!"));
+ TPtrC st_failed(_L("Unregistration Failed!"));
+
+ if (success)
+ Csymbian_ua_guiContainerView::RunNote_infoL(&st_success);
+ else
+ Csymbian_ua_guiContainerView::RunNote_warningL(&st_failed);
+}
+
+void Csymbian_ua_guiContainerView::PutMessage(const TDesC &msg)
+ {
+ if (!iSymbian_ua_guiContainer)
+ return;
+
+ CEikEdwin *obj_info = (CEikEdwin*) iSymbian_ua_guiContainer->ComponentControl(iSymbian_ua_guiContainer->EEd_info);
+
+ obj_info->SetTextL(&msg);
+ obj_info->DrawDeferred();
+ }
+
+/**
+ * First phase of Symbian two-phase construction. Should not contain any
+ * code that could leave.
+ */
+Csymbian_ua_guiContainerView::Csymbian_ua_guiContainerView()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ iSymbian_ua_guiContainer = NULL;
+ // ]]] end generated region [Generated Contents]
+
+ }
+/**
+ * The view's destructor removes the container from the control
+ * stack and destroys it.
+ */
+Csymbian_ua_guiContainerView::~Csymbian_ua_guiContainerView()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ delete iSymbian_ua_guiContainer;
+ iSymbian_ua_guiContainer = NULL;
+ // ]]] end generated region [Generated Contents]
+
+ symbian_ua_set_info_callback(NULL);
+ myinstance = NULL;
+ }
+
+/**
+ * Symbian two-phase constructor.
+ * This creates an instance then calls the second-phase constructor
+ * without leaving the instance on the cleanup stack.
+ * @return new instance of Csymbian_ua_guiContainerView
+ */
+Csymbian_ua_guiContainerView* Csymbian_ua_guiContainerView::NewL()
+ {
+ Csymbian_ua_guiContainerView* self = Csymbian_ua_guiContainerView::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/**
+ * Symbian two-phase constructor.
+ * This creates an instance, pushes it on the cleanup stack,
+ * then calls the second-phase constructor.
+ * @return new instance of Csymbian_ua_guiContainerView
+ */
+Csymbian_ua_guiContainerView* Csymbian_ua_guiContainerView::NewLC()
+ {
+ Csymbian_ua_guiContainerView* self = new ( ELeave ) Csymbian_ua_guiContainerView();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+/**
+ * Second-phase constructor for view.
+ * Initialize contents from resource.
+ */
+void Csymbian_ua_guiContainerView::ConstructL()
+ {
+ // [[[ begin generated region: do not modify [Generated Code]
+ BaseConstructL( R_SYMBIAN_UA_GUI_CONTAINER_SYMBIAN_UA_GUI_CONTAINER_VIEW );
+ // ]]] end generated region [Generated Code]
+
+ // add your own initialization code here
+ symbian_ua_info_cb_t cb;
+ Mem::FillZ(&cb, sizeof(cb));
+
+ cb.on_info = &on_info;
+ cb.on_incoming_call = &on_incoming_call;
+ cb.on_reg_state = &on_reg_state;
+ cb.on_unreg_state = &on_unreg_state;
+ cb.on_call_end = &on_call_end;
+
+ symbian_ua_set_info_callback(&cb);
+ myinstance = this;
+ }
+
+/**
+ * @return The UID for this view
+ */
+TUid Csymbian_ua_guiContainerView::Id() const
+ {
+ return TUid::Uid( ESymbian_ua_guiContainerViewId );
+ }
+
+/**
+ * Handle a command for this view (override)
+ * @param aCommand command id to be handled
+ */
+void Csymbian_ua_guiContainerView::HandleCommandL( TInt aCommand )
+ {
+ // [[[ begin generated region: do not modify [Generated Code]
+ TBool commandHandled = EFalse;
+ switch ( aCommand )
+ { // code to dispatch to the AknView's menu and CBA commands is generated here
+
+ case ESymbian_ua_guiContainerViewControlPaneRightId:
+ commandHandled = CallSoftKeyPressedL( aCommand );
+ break;
+ case ESymbian_ua_guiContainerViewSettingMenuItemCommand:
+ commandHandled = HandleSettingMenuItemSelectedL( aCommand );
+ break;
+ default:
+ break;
+ }
+
+
+ if ( !commandHandled )
+ {
+
+ if ( aCommand == ESymbian_ua_guiContainerViewControlPaneRightId )
+ {
+ AppUi()->HandleCommandL( EEikCmdExit );
+ }
+
+ }
+ // ]]] end generated region [Generated Code]
+
+ }
+
+/**
+ * Handles user actions during activation of the view,
+ * such as initializing the content.
+ */
+void Csymbian_ua_guiContainerView::DoActivateL(
+ const TVwsViewId& /*aPrevViewId*/,
+ TUid /*aCustomMessageId*/,
+ const TDesC8& /*aCustomMessage*/ )
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ SetupStatusPaneL();
+
+ CEikButtonGroupContainer* cba = AppUi()->Cba();
+ if ( cba != NULL )
+ {
+ cba->MakeVisible( EFalse );
+ }
+
+ if ( iSymbian_ua_guiContainer == NULL )
+ {
+ iSymbian_ua_guiContainer = CSymbian_ua_guiContainer::NewL( ClientRect(), NULL, this );
+ iSymbian_ua_guiContainer->SetMopParent( this );
+ AppUi()->AddToStackL( *this, iSymbian_ua_guiContainer );
+ }
+ // ]]] end generated region [Generated Contents]
+
+ cba = CEikButtonGroupContainer::Current();
+ if (cba != NULL) {
+ if (symbian_ua_anycall())
+ cba->SetCommandL(ESymbian_ua_guiContainerViewControlPaneRightId, KStHangUp);
+ else
+ cba->SetCommandL(ESymbian_ua_guiContainerViewControlPaneRightId, KStCall);
+ }
+
+ }
+
+/**
+ */
+void Csymbian_ua_guiContainerView::DoDeactivate()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ CleanupStatusPane();
+
+ CEikButtonGroupContainer* cba = AppUi()->Cba();
+ if ( cba != NULL )
+ {
+ cba->MakeVisible( ETrue );
+ cba->DrawDeferred();
+ }
+
+ if ( iSymbian_ua_guiContainer != NULL )
+ {
+ AppUi()->RemoveFromViewStack( *this, iSymbian_ua_guiContainer );
+ delete iSymbian_ua_guiContainer;
+ iSymbian_ua_guiContainer = NULL;
+ }
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+// [[[ begin generated function: do not modify
+void Csymbian_ua_guiContainerView::SetupStatusPaneL()
+ {
+ // reset the context pane
+ TUid contextPaneUid = TUid::Uid( EEikStatusPaneUidContext );
+ CEikStatusPaneBase::TPaneCapabilities subPaneContext =
+ StatusPane()->PaneCapabilities( contextPaneUid );
+ if ( subPaneContext.IsPresent() && subPaneContext.IsAppOwned() )
+ {
+ CAknContextPane* context = static_cast< CAknContextPane* > (
+ StatusPane()->ControlL( contextPaneUid ) );
+ context->SetPictureToDefaultL();
+ }
+
+ // setup the title pane
+ TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
+ CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
+ StatusPane()->PaneCapabilities( titlePaneUid );
+ if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
+ {
+ CAknTitlePane* title = static_cast< CAknTitlePane* >(
+ StatusPane()->ControlL( titlePaneUid ) );
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, R_SYMBIAN_UA_GUI_CONTAINER_TITLE_RESOURCE );
+ title->SetFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+
+ }
+// ]]] end generated function
+
+// [[[ begin generated function: do not modify
+void Csymbian_ua_guiContainerView::CleanupStatusPane()
+ {
+ }
+// ]]] end generated function
+
+/**
+ * Handle status pane size change for this view (override)
+ */
+void Csymbian_ua_guiContainerView::HandleStatusPaneSizeChange()
+ {
+ CAknView::HandleStatusPaneSizeChange();
+
+ // this may fail, but we're not able to propagate exceptions here
+ TInt result;
+ TRAP( result, SetupStatusPaneL() );
+ }
+
+/**
+ * Handle the rightSoftKeyPressed event.
+ * @return ETrue if the command was handled, EFalse if not
+ */
+TBool Csymbian_ua_guiContainerView::CallSoftKeyPressedL( TInt aCommand )
+ {
+ CEikEdwin *obj_url = (CEikEdwin*) iSymbian_ua_guiContainer->ComponentControl(iSymbian_ua_guiContainer->EEd_url);
+ CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
+
+ if (symbian_ua_anycall()) {
+ symbian_ua_endcall();
+ return ETrue;
+ }
+
+ PutMessage(_L("Making call..."));
+ if ( cba != NULL ) {
+ cba->SetCommandL(aCommand, KStHangUp);
+ cba->DrawDeferred();
+ }
+
+
+ TUint8 url[256];
+ TPtr8 aUrl(url, 256);
+
+ HBufC *buf = obj_url->GetTextInHBufL();
+ CnvUtfConverter::ConvertFromUnicodeToUtf8(aUrl, *buf);
+ delete buf;
+
+ if (symbian_ua_makecall((char *)aUrl.PtrZ()) != 0) {
+ PutMessage(_L("Making call failed!"));
+ if ( cba != NULL ) {
+ cba->SetCommandL(aCommand, KStCall);
+ cba->DrawDeferred();
+ }
+ }
+
+ return ETrue;
+ }
+
+/**
+ * Handle the selected event.
+ * @param aCommand the command id invoked
+ * @return ETrue if the command was handled, EFalse if not
+ */
+TBool Csymbian_ua_guiContainerView::HandleSettingMenuItemSelectedL( TInt aCommand )
+ {
+ AppUi()->ActivateLocalViewL(TUid::Uid(ESymbian_ua_guiSettingItemListViewId));
+ return ETrue;
+ }
+
+// [[[ begin generated function: do not modify
+/**
+ * Show the popup note for note_error
+ * @param aOverrideText optional override text
+ */
+void Csymbian_ua_guiContainerView::RunNote_errorL( const TDesC* aOverrideText )
+ {
+ CAknErrorNote* note = new ( ELeave ) CAknErrorNote();
+ if ( aOverrideText == NULL )
+ {
+ HBufC* noteText = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_CONTAINER_NOTE_ERROR );
+ note->ExecuteLD( *noteText );
+ CleanupStack::PopAndDestroy( noteText );
+ }
+ else
+ {
+ note->ExecuteLD( *aOverrideText );
+ }
+ }
+// ]]] end generated function
+
+// [[[ begin generated function: do not modify
+/**
+ * Show the popup note for note_info
+ * @param aOverrideText optional override text
+ */
+void Csymbian_ua_guiContainerView::RunNote_infoL( const TDesC* aOverrideText )
+ {
+ CAknInformationNote* note = new ( ELeave ) CAknInformationNote();
+ if ( aOverrideText == NULL )
+ {
+ HBufC* noteText = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_CONTAINER_NOTE_INFO );
+ note->ExecuteLD( *noteText );
+ CleanupStack::PopAndDestroy( noteText );
+ }
+ else
+ {
+ note->ExecuteLD( *aOverrideText );
+ }
+ }
+// ]]] end generated function
+
+// [[[ begin generated function: do not modify
+/**
+ * Show the popup note for note_warning
+ * @param aOverrideText optional override text
+ */
+void Csymbian_ua_guiContainerView::RunNote_warningL( const TDesC* aOverrideText )
+ {
+ CAknWarningNote* note = new ( ELeave ) CAknWarningNote();
+ if ( aOverrideText == NULL )
+ {
+ HBufC* noteText = StringLoader::LoadLC( R_SYMBIAN_UA_GUI_CONTAINER_NOTE_WARNING );
+ note->ExecuteLD( *noteText );
+ CleanupStack::PopAndDestroy( noteText );
+ }
+ else
+ {
+ note->ExecuteLD( *aOverrideText );
+ }
+ }
+// ]]] end generated function
+
+// [[[ begin generated function: do not modify
+/**
+ * Show the popup dialog for qry_accept_call
+ * @param aOverrideText optional override text
+ * @return EAknSoftkeyYes (left soft key id) or 0
+ */
+TInt Csymbian_ua_guiContainerView::RunQry_accept_callL( const TDesC* aOverrideText )
+ {
+
+ CAknQueryDialog* queryDialog = CAknQueryDialog::NewL();
+
+ if ( aOverrideText != NULL )
+ {
+ queryDialog->SetPromptL( *aOverrideText );
+ }
+ return queryDialog->ExecuteLD( R_SYMBIAN_UA_GUI_CONTAINER_QRY_ACCEPT_CALL );
+ }
+// ]]] end generated function
+
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiDocument.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiDocument.cpp
new file mode 100644
index 00000000..4f23d95a
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiDocument.cpp
@@ -0,0 +1,57 @@
+/*
+========================================================================
+ Name : symbian_ua_guiDocument.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "symbian_ua_guiDocument.h"
+#include "symbian_ua_guiAppUi.h"
+// ]]] end generated region [Generated User Includes]
+
+/**
+ * @brief Constructs the document class for the application.
+ * @param anApplication the application instance
+ */
+Csymbian_ua_guiDocument::Csymbian_ua_guiDocument( CEikApplication& anApplication )
+ : CAknDocument( anApplication )
+ {
+ }
+
+/**
+ * @brief Completes the second phase of Symbian object construction.
+ * Put initialization code that could leave here.
+ */
+void Csymbian_ua_guiDocument::ConstructL()
+ {
+ }
+
+/**
+ * Symbian OS two-phase constructor.
+ *
+ * Creates an instance of Csymbian_ua_guiDocument, constructs it, and
+ * returns it.
+ *
+ * @param aApp the application instance
+ * @return the new Csymbian_ua_guiDocument
+ */
+Csymbian_ua_guiDocument* Csymbian_ua_guiDocument::NewL( CEikApplication& aApp )
+ {
+ Csymbian_ua_guiDocument* self = new ( ELeave ) Csymbian_ua_guiDocument( aApp );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/**
+ * @brief Creates the application UI object for this document.
+ * @return the new instance
+ */
+CEikAppUi* Csymbian_ua_guiDocument::CreateAppUiL()
+ {
+ return new ( ELeave ) Csymbian_ua_guiAppUi;
+ }
+
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemList.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemList.cpp
new file mode 100644
index 00000000..16b90090
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemList.cpp
@@ -0,0 +1,423 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemList.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <avkon.hrh>
+#include <avkon.rsg>
+#include <eikmenup.h>
+#include <aknappui.h>
+#include <eikcmobs.h>
+#include <barsread.h>
+#include <stringloader.h>
+#include <gdi.h>
+#include <eikedwin.h>
+#include <eikenv.h>
+#include <eikseced.h>
+#include <aknpopupfieldtext.h>
+#include <eikappui.h>
+#include <aknviewappui.h>
+#include <akntextsettingpage.h>
+#include <symbian_ua_gui.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "symbian_ua_guiSettingItemList.h"
+#include "Symbian_ua_guiSettingItemListSettings.h"
+#include "symbian_ua_guiSettingItemList.hrh"
+#include "symbian_ua_gui.hrh"
+#include "symbian_ua_guiSettingItemListView.h"
+// ]]] end generated region [Generated User Includes]
+
+
+#include <S32STOR.H>
+#include <S32FILE.H>
+
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+
+_LIT(KtxDicFileName ,"settings.ini" );
+
+const TInt KRegistrar = 2;
+const TInt KUsername = 3;
+const TInt KPassword = 4;
+const TInt KStunServer = 5;
+const TInt KSrtp = 6;
+const TInt KIce = 7;
+
+/**
+ * Construct the CSymbian_ua_guiSettingItemList instance
+ * @param aCommandObserver command observer
+ */
+CSymbian_ua_guiSettingItemList::CSymbian_ua_guiSettingItemList(
+ TSymbian_ua_guiSettingItemListSettings& aSettings,
+ MEikCommandObserver* aCommandObserver )
+ : iSettings( aSettings ), iCommandObserver( aCommandObserver )
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+/**
+ * Destroy any instance variables
+ */
+CSymbian_ua_guiSettingItemList::~CSymbian_ua_guiSettingItemList()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * Handle system notification that the container's size has changed.
+ */
+void CSymbian_ua_guiSettingItemList::SizeChanged()
+ {
+ if ( ListBox() )
+ {
+ ListBox()->SetRect( Rect() );
+ }
+ }
+
+/**
+ * Create one setting item at a time, identified by id.
+ * CAknSettingItemList calls this method and takes ownership
+ * of the returned value. The CAknSettingItem object owns
+ * a reference to the underlying data, which EditItemL() uses
+ * to edit and store the value.
+ */
+CAknSettingItem* CSymbian_ua_guiSettingItemList::CreateSettingItemL( TInt aId )
+ {
+ switch ( aId )
+ {
+ // [[[ begin generated region: do not modify [Initializers]
+ case ESymbian_ua_guiSettingItemListViewEd_registrar:
+ {
+ CAknTextSettingItem* item = new ( ELeave )
+ CAknTextSettingItem(
+ aId,
+ iSettings.Ed_registrar() );
+ item->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
+ return item;
+ }
+ case ESymbian_ua_guiSettingItemListViewEd_user:
+ {
+ CAknTextSettingItem* item = new ( ELeave )
+ CAknTextSettingItem(
+ aId,
+ iSettings.Ed_user() );
+ item->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
+ return item;
+ }
+ case ESymbian_ua_guiSettingItemListViewEd_password:
+ {
+ CAknPasswordSettingItem* item = new ( ELeave )
+ CAknPasswordSettingItem(
+ aId,
+ CAknPasswordSettingItem::EAlpha,
+ iSettings.Ed_password() );
+ item->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed);
+ return item;
+ }
+ case ESymbian_ua_guiSettingItemListViewB_srtp:
+ {
+ CAknBinaryPopupSettingItem* item = new ( ELeave )
+ CAknBinaryPopupSettingItem(
+ aId,
+ iSettings.B_srtp() );
+ item->SetHidden( ETrue );
+ return item;
+ }
+ case ESymbian_ua_guiSettingItemListViewB_ice:
+ {
+ CAknBinaryPopupSettingItem* item = new ( ELeave )
+ CAknBinaryPopupSettingItem(
+ aId,
+ iSettings.B_ice() );
+ item->SetHidden( ETrue );
+ return item;
+ }
+ case ESymbian_ua_guiSettingItemListViewEd_stun_server:
+ {
+ CAknTextSettingItem* item = new ( ELeave )
+ CAknTextSettingItem(
+ aId,
+ iSettings.Ed_stun_server() );
+ item->SetHidden( ETrue );
+ return item;
+ }
+ // ]]] end generated region [Initializers]
+
+ }
+
+ return NULL;
+ }
+
+/**
+ * Edit the setting item identified by the given id and store
+ * the changes into the store.
+ * @param aIndex the index of the setting item in SettingItemArray()
+ * @param aCalledFromMenu true: a menu item invoked editing, thus
+ * always show the edit page and interactively edit the item;
+ * false: change the item in place if possible, else show the edit page
+ */
+void CSymbian_ua_guiSettingItemList::EditItemL ( TInt aIndex, TBool aCalledFromMenu )
+ {
+ CAknSettingItem* item = ( *SettingItemArray() )[aIndex];
+ switch ( item->Identifier() )
+ {
+ // [[[ begin generated region: do not modify [Editing Started Invoker]
+ // ]]] end generated region [Editing Started Invoker]
+
+ }
+
+ CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
+
+ TBool storeValue = ETrue;
+ switch ( item->Identifier() )
+ {
+ // [[[ begin generated region: do not modify [Editing Stopped Invoker]
+ // ]]] end generated region [Editing Stopped Invoker]
+
+ }
+
+ if ( storeValue )
+ {
+ item->StoreL();
+ SaveSettingValuesL();
+ }
+ }
+/**
+ * Handle the "Change" option on the Options menu. This is an
+ * alternative to the Selection key that forces the settings page
+ * to come up rather than changing the value in place (if possible).
+ */
+void CSymbian_ua_guiSettingItemList::ChangeSelectedItemL()
+ {
+ if ( ListBox()->CurrentItemIndex() >= 0 )
+ {
+ EditItemL( ListBox()->CurrentItemIndex(), ETrue );
+ }
+ }
+
+/**
+ * Load the initial contents of the setting items. By default,
+ * the setting items are populated with the default values from
+ * the design. You can override those values here.
+ * <p>
+ * Note: this call alone does not update the UI.
+ * LoadSettingsL() must be called afterwards.
+ */
+void CSymbian_ua_guiSettingItemList::LoadSettingValuesL()
+ {
+ // load values into iSettings
+
+ TFileName path;
+ TFileName pathWithoutDrive;
+ CEikonEnv::Static()->FsSession().PrivatePath( pathWithoutDrive );
+
+ // Extract drive letter into appDrive:
+#ifdef __WINS__
+ path.Copy( _L("c:") );
+#else
+ RProcess process;
+ path.Copy( process.FileName().Left(2) );
+#endif
+
+ path.Append( pathWithoutDrive );
+ path.Append( KtxDicFileName );
+
+ TFindFile AufFolder(CCoeEnv::Static()->FsSession());
+ if(KErrNone == AufFolder.FindByDir(path, KNullDesC))
+ {
+ CDictionaryFileStore* MyDStore = CDictionaryFileStore::OpenLC(CCoeEnv::Static()->FsSession(),AufFolder.File(), TUid::Uid(1));
+ TUid FileUid;
+
+ FileUid.iUid = KRegistrar;
+ if(MyDStore->IsPresentL(FileUid))
+ {
+ RDictionaryReadStream in;
+ in.OpenLC(*MyDStore,FileUid);
+ in >> iSettings.Ed_registrar();
+ CleanupStack::PopAndDestroy(1);// in
+ }
+
+ FileUid.iUid = KUsername;
+ if(MyDStore->IsPresentL(FileUid))
+ {
+ RDictionaryReadStream in;
+ in.OpenLC(*MyDStore,FileUid);
+ in >> iSettings.Ed_user();
+ CleanupStack::PopAndDestroy(1);// in
+ }
+
+ FileUid.iUid = KPassword;
+ if(MyDStore->IsPresentL(FileUid))
+ {
+ RDictionaryReadStream in;
+ in.OpenLC(*MyDStore,FileUid);
+ in >> iSettings.Ed_password();
+ CleanupStack::PopAndDestroy(1);// in
+ }
+
+ FileUid.iUid = KStunServer;
+ if(MyDStore->IsPresentL(FileUid))
+ {
+ RDictionaryReadStream in;
+ in.OpenLC(*MyDStore,FileUid);
+ in >> iSettings.Ed_stun_server();
+ CleanupStack::PopAndDestroy(1);// in
+ }
+
+ FileUid.iUid = KSrtp;
+ if(MyDStore->IsPresentL(FileUid))
+ {
+ RDictionaryReadStream in;
+ in.OpenLC(*MyDStore,FileUid);
+ iSettings.SetB_srtp((TBool)in.ReadInt32L());
+ CleanupStack::PopAndDestroy(1);// in
+ }
+
+ FileUid.iUid = KIce;
+ if(MyDStore->IsPresentL(FileUid))
+ {
+ RDictionaryReadStream in;
+ in.OpenLC(*MyDStore,FileUid);
+ iSettings.SetB_ice((TBool)in.ReadInt32L());
+ CleanupStack::PopAndDestroy(1);// in
+ }
+
+ CleanupStack::PopAndDestroy(1);// Store
+ }
+
+ }
+
+/**
+ * Save the contents of the setting items. Note, this is called
+ * whenever an item is changed and stored to the model, so it
+ * may be called multiple times or not at all.
+ */
+void CSymbian_ua_guiSettingItemList::SaveSettingValuesL()
+ {
+ // store values from iSettings
+
+ TFileName path;
+ TFileName pathWithoutDrive;
+ CEikonEnv::Static()->FsSession().PrivatePath( pathWithoutDrive );
+
+ // Extract drive letter into appDrive:
+#ifdef __WINS__
+ path.Copy( _L("c:") );
+#else
+ RProcess process;
+ path.Copy( process.FileName().Left(2) );
+
+ if(path.Compare(_L("c")) || path.Compare(_L("C")))
+ CEikonEnv::Static()->FsSession().CreatePrivatePath(EDriveC);
+ else if(path.Compare(_L("e")) || path.Compare(_L("E")))
+ CEikonEnv::Static()->FsSession().CreatePrivatePath(EDriveE);
+#endif
+
+ path.Append( pathWithoutDrive );
+ path.Append( KtxDicFileName );
+
+ TFindFile AufFolder(CCoeEnv::Static()->FsSession());
+ if(KErrNone == AufFolder.FindByDir(path, KNullDesC))
+ {
+ User::LeaveIfError(CCoeEnv::Static()->FsSession().Delete(AufFolder.File()));
+ }
+
+ CDictionaryFileStore* MyDStore = CDictionaryFileStore::OpenLC(CCoeEnv::Static()->FsSession(),path, TUid::Uid(1));
+
+ TUid FileUid = {0x0};
+
+ FileUid.iUid = KRegistrar;
+ RDictionaryWriteStream out1;
+ out1.AssignLC(*MyDStore,FileUid);
+ out1 << iSettings.Ed_registrar();
+ out1.CommitL();
+ CleanupStack::PopAndDestroy(1);// out2
+
+ FileUid.iUid = KUsername;
+ RDictionaryWriteStream out2;
+ out2.AssignLC(*MyDStore,FileUid);
+ out2 << iSettings.Ed_user();
+ out2.CommitL();
+ CleanupStack::PopAndDestroy(1);// out2
+
+ FileUid.iUid = KPassword;
+ RDictionaryWriteStream out3;
+ out3.AssignLC(*MyDStore,FileUid);
+ out3 << iSettings.Ed_password();
+ out3.CommitL();
+ CleanupStack::PopAndDestroy(1);// out2
+
+ FileUid.iUid = KStunServer;
+ RDictionaryWriteStream out4;
+ out4.AssignLC(*MyDStore,FileUid);
+ out4 << iSettings.Ed_stun_server();
+ out4.CommitL();
+ CleanupStack::PopAndDestroy(1);// out2
+
+ FileUid.iUid = KSrtp;
+ RDictionaryWriteStream out5;
+ out5.AssignLC(*MyDStore,FileUid);
+ out5.WriteInt32L(iSettings.B_srtp());
+ out5.CommitL();
+ CleanupStack::PopAndDestroy(1);// out1
+
+ FileUid.iUid = KIce;
+ RDictionaryWriteStream out6;
+ out6.AssignLC(*MyDStore,FileUid);
+ out6.WriteInt32L(iSettings.B_ice());
+ out6.CommitL();
+ CleanupStack::PopAndDestroy(1);// out1
+
+ MyDStore->CommitL();
+ CleanupStack::PopAndDestroy(1);// Store
+
+ }
+
+
+/**
+ * Handle global resource changes, such as scalable UI or skin events (override)
+ */
+void CSymbian_ua_guiSettingItemList::HandleResourceChange( TInt aType )
+ {
+ CAknSettingItemList::HandleResourceChange( aType );
+ SetRect( iAvkonViewAppUi->View( TUid::Uid( ESymbian_ua_guiSettingItemListViewId ) )->ClientRect() );
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * Handle key event (override)
+ * @param aKeyEvent key event
+ * @param aType event code
+ * @return EKeyWasConsumed if the event was handled, else EKeyWasNotConsumed
+ */
+TKeyResponse CSymbian_ua_guiSettingItemList::OfferKeyEventL(
+ const TKeyEvent& aKeyEvent,
+ TEventCode aType )
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ if ( aKeyEvent.iCode == EKeyLeftArrow
+ || aKeyEvent.iCode == EKeyRightArrow )
+ {
+ // allow the tab control to get the arrow keys
+ return EKeyWasNotConsumed;
+ }
+
+ return CAknSettingItemList::OfferKeyEventL( aKeyEvent, aType );
+ }
+
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemListView.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemListView.cpp
new file mode 100644
index 00000000..048ba2ab
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua_guiSettingItemListView.cpp
@@ -0,0 +1,285 @@
+/*
+========================================================================
+ Name : symbian_ua_guiSettingItemListView.cpp
+ Author : nanang
+ Copyright : (c) PJSIP 2008
+ Description :
+========================================================================
+*/
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <aknviewappui.h>
+#include <eikmenub.h>
+#include <avkon.hrh>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <stringloader.h>
+#include <barsread.h>
+#include <eikbtgpc.h>
+#include <symbian_ua_gui.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "symbian_ua_gui.hrh"
+#include "symbian_ua_guiSettingItemListView.h"
+#include "symbian_ua_guiContainer.hrh"
+#include "symbian_ua_guiSettingItemList.hrh"
+#include "symbian_ua_guiSettingItemList.h"
+// ]]] end generated region [Generated User Includes]
+
+#include "symbian_ua.h"
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+/**
+ * First phase of Symbian two-phase construction. Should not contain any
+ * code that could leave.
+ */
+Csymbian_ua_guiSettingItemListView::Csymbian_ua_guiSettingItemListView()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+/**
+ * The view's destructor removes the container from the control
+ * stack and destroys it.
+ */
+Csymbian_ua_guiSettingItemListView::~Csymbian_ua_guiSettingItemListView()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ * Symbian two-phase constructor.
+ * This creates an instance then calls the second-phase constructor
+ * without leaving the instance on the cleanup stack.
+ * @return new instance of Csymbian_ua_guiSettingItemListView
+ */
+Csymbian_ua_guiSettingItemListView* Csymbian_ua_guiSettingItemListView::NewL()
+ {
+ Csymbian_ua_guiSettingItemListView* self = Csymbian_ua_guiSettingItemListView::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+/**
+ * Symbian two-phase constructor.
+ * This creates an instance, pushes it on the cleanup stack,
+ * then calls the second-phase constructor.
+ * @return new instance of Csymbian_ua_guiSettingItemListView
+ */
+Csymbian_ua_guiSettingItemListView* Csymbian_ua_guiSettingItemListView::NewLC()
+ {
+ Csymbian_ua_guiSettingItemListView* self = new ( ELeave ) Csymbian_ua_guiSettingItemListView();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+/**
+ * Second-phase constructor for view.
+ * Initialize contents from resource.
+ */
+void Csymbian_ua_guiSettingItemListView::ConstructL()
+ {
+ // [[[ begin generated region: do not modify [Generated Code]
+ BaseConstructL( R_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_VIEW );
+ // ]]] end generated region [Generated Code]
+
+ // add your own initialization code here
+ }
+
+/**
+ * @return The UID for this view
+ */
+TUid Csymbian_ua_guiSettingItemListView::Id() const
+ {
+ return TUid::Uid( ESymbian_ua_guiSettingItemListViewId );
+ }
+
+/**
+ * Handle a command for this view (override)
+ * @param aCommand command id to be handled
+ */
+void Csymbian_ua_guiSettingItemListView::HandleCommandL( TInt aCommand )
+ {
+ // [[[ begin generated region: do not modify [Generated Code]
+ TBool commandHandled = EFalse;
+ switch ( aCommand )
+ { // code to dispatch to the AknView's menu and CBA commands is generated here
+
+ case EAknSoftkeySave:
+ commandHandled = HandleControlPaneRightSoftKeyPressedL( aCommand );
+ break;
+ case ESymbian_ua_guiSettingItemListViewMenuItem1Command:
+ commandHandled = HandleChangeSelectedSettingItemL( aCommand );
+ break;
+ default:
+ break;
+ }
+
+
+ if ( !commandHandled )
+ {
+
+ }
+ // ]]] end generated region [Generated Code]
+
+ }
+
+/**
+ * Handles user actions during activation of the view,
+ * such as initializing the content.
+ */
+void Csymbian_ua_guiSettingItemListView::DoActivateL(
+ const TVwsViewId& /*aPrevViewId*/,
+ TUid /*aCustomMessageId*/,
+ const TDesC8& /*aCustomMessage*/ )
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ SetupStatusPaneL();
+
+ CEikButtonGroupContainer* cba = AppUi()->Cba();
+ if ( cba != NULL )
+ {
+ cba->MakeVisible( EFalse );
+ }
+
+ if ( iSymbian_ua_guiSettingItemList == NULL )
+ {
+ iSettings = TSymbian_ua_guiSettingItemListSettings::NewL();
+ iSymbian_ua_guiSettingItemList = new ( ELeave ) CSymbian_ua_guiSettingItemList( *iSettings, this );
+ iSymbian_ua_guiSettingItemList->SetMopParent( this );
+ iSymbian_ua_guiSettingItemList->ConstructFromResourceL( R_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_SYMBIAN_UA_GUI_SETTING_ITEM_LIST );
+ iSymbian_ua_guiSettingItemList->ActivateL();
+ iSymbian_ua_guiSettingItemList->LoadSettingValuesL();
+ iSymbian_ua_guiSettingItemList->LoadSettingsL();
+ AppUi()->AddToStackL( *this, iSymbian_ua_guiSettingItemList );
+ }
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+/**
+ */
+void Csymbian_ua_guiSettingItemListView::DoDeactivate()
+ {
+ // [[[ begin generated region: do not modify [Generated Contents]
+ CleanupStatusPane();
+
+ CEikButtonGroupContainer* cba = AppUi()->Cba();
+ if ( cba != NULL )
+ {
+ cba->MakeVisible( ETrue );
+ cba->DrawDeferred();
+ }
+
+ if ( iSymbian_ua_guiSettingItemList != NULL )
+ {
+ AppUi()->RemoveFromStack( iSymbian_ua_guiSettingItemList );
+ delete iSymbian_ua_guiSettingItemList;
+ iSymbian_ua_guiSettingItemList = NULL;
+ delete iSettings;
+ iSettings = NULL;
+ }
+ // ]]] end generated region [Generated Contents]
+
+ }
+
+// [[[ begin generated function: do not modify
+void Csymbian_ua_guiSettingItemListView::SetupStatusPaneL()
+ {
+ // reset the context pane
+ TUid contextPaneUid = TUid::Uid( EEikStatusPaneUidContext );
+ CEikStatusPaneBase::TPaneCapabilities subPaneContext =
+ StatusPane()->PaneCapabilities( contextPaneUid );
+ if ( subPaneContext.IsPresent() && subPaneContext.IsAppOwned() )
+ {
+ CAknContextPane* context = static_cast< CAknContextPane* > (
+ StatusPane()->ControlL( contextPaneUid ) );
+ context->SetPictureToDefaultL();
+ }
+
+ // setup the title pane
+ TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
+ CEikStatusPaneBase::TPaneCapabilities subPaneTitle =
+ StatusPane()->PaneCapabilities( titlePaneUid );
+ if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
+ {
+ CAknTitlePane* title = static_cast< CAknTitlePane* >(
+ StatusPane()->ControlL( titlePaneUid ) );
+ TResourceReader reader;
+ iEikonEnv->CreateResourceReaderLC( reader, R_SYMBIAN_UA_GUI_SETTING_ITEM_LIST_TITLE_RESOURCE );
+ title->SetFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader internal state
+ }
+
+ }
+// ]]] end generated function
+
+// [[[ begin generated function: do not modify
+void Csymbian_ua_guiSettingItemListView::CleanupStatusPane()
+ {
+ }
+// ]]] end generated function
+
+/**
+ * Handle status pane size change for this view (override)
+ */
+void Csymbian_ua_guiSettingItemListView::HandleStatusPaneSizeChange()
+ {
+ CAknView::HandleStatusPaneSizeChange();
+
+ // this may fail, but we're not able to propagate exceptions here
+ TInt result;
+ TRAP( result, SetupStatusPaneL() );
+ }
+
+/**
+ * Handle the selected event.
+ * @param aCommand the command id invoked
+ * @return ETrue if the command was handled, EFalse if not
+ */
+TBool Csymbian_ua_guiSettingItemListView::HandleChangeSelectedSettingItemL( TInt aCommand )
+ {
+ iSymbian_ua_guiSettingItemList->ChangeSelectedItemL();
+ return ETrue;
+ }
+
+/**
+ * Handle the rightSoftKeyPressed event.
+ * @return ETrue if the command was handled, EFalse if not
+ */
+TBool Csymbian_ua_guiSettingItemListView::HandleControlPaneRightSoftKeyPressedL( TInt aCommand )
+ {
+ TUint8 domain[256] = {0};
+ TPtr8 cDomain(domain, sizeof(domain));
+ TUint8 user[64] = {0};
+ TPtr8 cUser(user, sizeof(user));
+ TUint8 pass[64] = {0};
+ TPtr8 cPass(pass, sizeof(pass));
+
+ cDomain.Copy(iSettings->Ed_registrar());
+ cUser.Copy(iSettings->Ed_user());
+ cPass.Copy(iSettings->Ed_password());
+ symbian_ua_set_account((char*)domain, (char*)user, (char*)pass, false, false);
+
+ AppUi()->ActivateLocalViewL(TUid::Uid(ESymbian_ua_guiContainerViewId));
+ return ETrue;
+ }
+
+/**
+ * Handle the selected event.
+ * @param aCommand the command id invoked
+ * @return ETrue if the command was handled, EFalse if not
+ */
+TBool Csymbian_ua_guiSettingItemListView::HandleCancelMenuItemSelectedL( TInt aCommand )
+ {
+ AppUi()->ActivateLocalViewL(TUid::Uid(ESymbian_ua_guiContainerViewId));
+ return ETrue;
+ }
+
diff --git a/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiContainer.uidesign b/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiContainer.uidesign
new file mode 100644
index 00000000..3867c1b1
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiContainer.uidesign
@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<designerData version="1.1.0">
+ <componentManifest>
+ <manifestEntry id="com.nokia.sdt.series60.CAknView" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.DesignTimeContainer" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPane" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.ControlBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPaneTitle" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPaneTitleBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CBA" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CBABase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CCoeControl" version="1.1.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.ContainerBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CEikLabel" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CCoeControlBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CEikEdwin" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CEikEdwinBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.EditorBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuBar" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuPane" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuItem" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuItemBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StandardNote" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.NonLayoutBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.ConfirmationQuery" version="1.0.0"/>
+ </componentManifest>
+ <property id="com.nokia.sdt.symbian.dm.RESOURCE_DIRECTORY_ID">data</property>
+ <property id="com.nokia.sdt.component.symbian.vendor">com.nokia.series60</property>
+ <property id="com.nokia.sdt.component.symbian.version">3.0.1</property>
+ <property id="com.nokia.sdt.symbian.dm.COMPONENT_PROVIDER">com.nokia.sdt.component.symbian.Symbian-Provider</property>
+ <property id="com.nokia.sdt.symbian.dm.INCLUDE_DIRECTORY_ID">inc</property>
+ <property id="com.nokia.sdt.symbian.dm.SOURCE_DIRECTORY_ID">src</property>
+ <property id="com.nokia.sdt.symbian.dm.SOURCEGEN_PROVIDER">com.nokia.sdt.sourcegen.Symbian-Provider</property>
+ <property id="com.nokia.sdt.symbian.dm.BUILD_DIRECTORY_ID">group</property>
+ <component id="com.nokia.sdt.series60.CAknView">
+ <property id="className">Csymbian_ua_guiContainerView</property>
+ <compoundProperty id="location">
+ <property id="x">52</property>
+ <property id="y">45</property>
+ </compoundProperty>
+ <property id="optionsMenu" type="componentRef">optionsMenu</property>
+ <property id="name">symbian_ua_guiContainerView</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">320</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.StatusPane">
+ <compoundProperty id="location">
+ <property id="x">20</property>
+ </compoundProperty>
+ <property id="name">statusPane</property>
+ <compoundProperty id="size">
+ <property id="width">204</property>
+ <property id="height">66</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.StatusPaneTitle">
+ <compoundProperty id="location">
+ <property id="x">56</property>
+ </compoundProperty>
+ <property id="name">title</property>
+ <property id="titleText" type="i18n">STR_symbian_ua_guiContainerView_1</property>
+ <compoundProperty id="size">
+ <property id="width">148</property>
+ <property id="height">43</property>
+ </compoundProperty>
+ <compoundProperty id="image"/>
+ </component>
+ </component>
+ <component id="com.nokia.sdt.series60.CBA">
+ <compoundProperty id="location">
+ <property id="y">288</property>
+ </compoundProperty>
+ <compoundProperty id="info">
+ <property id="rightId">UNIQUE</property>
+ <property id="leftText" type="i18n">STR_symbian_ua_guiContainerView_7</property>
+ <property id="rightText" type="i18n">STR_symbian_ua_guiContainerView_8</property>
+ </compoundProperty>
+ <property id="name">controlPane</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">32</property>
+ </compoundProperty>
+ <eventBinding id="rightSoftKeyPressed" handlerDisplay="CallSoftKeyPressedL" handlerSymbol="cpp@src//symbian_ua_guiContainerView.cpp/function(Csymbian_ua_guiContainerView::CallSoftKeyPressedL(TInt))"/>
+ </component>
+ <component id="com.nokia.sdt.series60.CCoeControl">
+ <property id="initialFocus" type="componentRef">ed_url</property>
+ <compoundProperty id="location">
+ <property id="y">66</property>
+ </compoundProperty>
+ <property id="className">CSymbian_ua_guiContainer</property>
+ <property id="name">symbian_ua_guiContainer</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">222</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.CEikLabel">
+ <compoundProperty id="location">
+ <property id="x">2</property>
+ <property id="y">23</property>
+ </compoundProperty>
+ <property id="name">label1</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_2</property>
+ <compoundProperty id="size">
+ <property id="width">32</property>
+ <property id="height">28</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.CEikEdwin">
+ <property id="defaultCase">EAknEditorLowerCase</property>
+ <compoundProperty id="size">
+ <property id="width">197</property>
+ <property id="height">28</property>
+ </compoundProperty>
+ <compoundProperty id="avkonFlags">
+ <property id="EAknEditorFlagNoT9">true</property>
+ <property id="EAknEditorFlagFixedCase">false</property>
+ <property id="EAknEditorFlagNoEditIndicators">false</property>
+ <property id="EAknEditorFlagNoLRNavigation">false</property>
+ <property id="EAknEditorFlagSupressShiftMenu">true</property>
+ <property id="EAknEditorFlagEnableScrollBars">false</property>
+ <property id="EAknEditorFlagMTAutoOverwrite">false</property>
+ <property id="EAknEditorFlagUseSCTNumericCharmap">false</property>
+ <property id="EAknEditorFlagLatinInputModesOnly">false</property>
+ <property id="EAknEditorFlagForceTransparentFepModes">false</property>
+ <property id="EAknEditorFlagAllowEntersWithScrollDown">false</property>
+ <property id="EAknEditorFlagEnablePictographInput">false</property>
+ <property id="EAknEditorFlagFindPane">false</property>
+ </compoundProperty>
+ <compoundProperty id="location">
+ <property id="x">49</property>
+ <property id="y">25</property>
+ </compoundProperty>
+ <compoundProperty id="flags"/>
+ <compoundProperty id="allowedCaseModes"/>
+ <property id="name">ed_url</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_4</property>
+ <compoundProperty id="allowedInputModes">
+ <property id="EAknEditorFullWidthTextInputMode">true</property>
+ <property id="EAknEditorFullWidthNumericInputMode">true</property>
+ <property id="EAknEditorHalfWidthTextInputMode">true</property>
+ <property id="EAknEditorTextInputMode">true</property>
+ <property id="EAknEditorNumericInputMode">true</property>
+ <property id="EAknEditorSecretAlphaInputMode">true</property>
+ <property id="EAknEditorFullWidthKatakanaInputMode">false</property>
+ <property id="EAknEditorHiraganaInputMode">false</property>
+ <property id="EAknEditorHiraganaKanjiInputMode">false</property>
+ <property id="EAknEditorKatakanaInputMode">false</property>
+ </compoundProperty>
+ <property id="specialCharacterTable">R_AVKON_URL_SPECIAL_CHARACTER_TABLE_DIALOG</property>
+ </component>
+ <component id="com.nokia.sdt.series60.CEikEdwin">
+ <compoundProperty id="size">
+ <property id="width">235</property>
+ <property id="height">143</property>
+ </compoundProperty>
+ <compoundProperty id="avkonFlags">
+ <property id="EAknEditorFlagNoEditIndicators">true</property>
+ <property id="EAknEditorFlagFixedCase">false</property>
+ <property id="EAknEditorFlagNoT9">false</property>
+ <property id="EAknEditorFlagNoLRNavigation">false</property>
+ <property id="EAknEditorFlagSupressShiftMenu">false</property>
+ <property id="EAknEditorFlagEnableScrollBars">true</property>
+ <property id="EAknEditorFlagMTAutoOverwrite">false</property>
+ <property id="EAknEditorFlagUseSCTNumericCharmap">false</property>
+ <property id="EAknEditorFlagLatinInputModesOnly">false</property>
+ <property id="EAknEditorFlagForceTransparentFepModes">false</property>
+ <property id="EAknEditorFlagAllowEntersWithScrollDown">false</property>
+ <property id="EAknEditorFlagEnablePictographInput">false</property>
+ <property id="EAknEditorFlagFindPane">false</property>
+ </compoundProperty>
+ <compoundProperty id="location">
+ <property id="x">3</property>
+ <property id="y">78</property>
+ </compoundProperty>
+ <compoundProperty id="flags">
+ <property id="EEikEdwinReadOnly">true</property>
+ <property id="EEikEdwinKeepDocument">false</property>
+ <property id="EEikEdwinSegmentedStorage">false</property>
+ <property id="EEikEdwinNoAutoSelection">false</property>
+ <property id="EEikEdwinJustAutoCurEnd">false</property>
+ <property id="EEikEdwinNoWrap">false</property>
+ <property id="EEikEdwinLineCursor">false</property>
+ <property id="EEikEdwinNoHorizScrolling">false</property>
+ <property id="EEikEdwinInclusiveSizeFixed">false</property>
+ <property id="EEikEdwinDisplayOnly">false</property>
+ <property id="EEikEdwinAlwaysShowSelection">false</property>
+ <property id="EEikEdwinAllowPictures">false</property>
+ <property id="EEikEdwinAllowUndo">false</property>
+ <property id="EEikEdwinNoLineOrParaBreaks">false</property>
+ <property id="EEikEdwinOnlyASCIIChars">false</property>
+ <property id="EEikEdwinIgnoreVirtualCursor">false</property>
+ <property id="EEikEdwinAvkonDisableCursor">false</property>
+ <property id="EEikEdwinAlternativeWrapping">false</property>
+ <property id="EEikEdwinResizable">false</property>
+ </compoundProperty>
+ <compoundProperty id="allowedCaseModes"/>
+ <property id="maxLength">2000</property>
+ <property id="name">ed_info</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_3</property>
+ <compoundProperty id="allowedInputModes">
+ <property id="EAknEditorKatakanaInputMode">true</property>
+ <property id="EAknEditorFullWidthTextInputMode">true</property>
+ <property id="EAknEditorFullWidthNumericInputMode">true</property>
+ <property id="EAknEditorFullWidthKatakanaInputMode">true</property>
+ <property id="EAknEditorHiraganaKanjiInputMode">true</property>
+ <property id="EAknEditorHalfWidthTextInputMode">true</property>
+ </compoundProperty>
+ <property id="lines">10</property>
+ </component>
+ </component>
+ <component id="com.nokia.sdt.series60.MenuBar">
+ <compoundProperty id="location">
+ <property id="x">3</property>
+ <property id="y">215</property>
+ </compoundProperty>
+ <property id="name">optionsMenu</property>
+ <compoundProperty id="size">
+ <property id="height">73</property>
+ <property id="width">237</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.MenuPane">
+ <compoundProperty id="location"/>
+ <property id="name">menuPane1</property>
+ <compoundProperty id="size">
+ <property id="height">73</property>
+ <property id="width">237</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.MenuItem">
+ <compoundProperty id="location">
+ <property id="x">5</property>
+ <property id="y">2</property>
+ </compoundProperty>
+ <property id="name">settingMenuItem</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_9</property>
+ <compoundProperty id="size">
+ <property id="width">222</property>
+ <property id="height">33</property>
+ </compoundProperty>
+ <eventBinding id="selected" handlerDisplay="HandleSettingMenuItemSelectedL" handlerSymbol="cpp@src//symbian_ua_guiContainerView.cpp/function(Csymbian_ua_guiContainerView::HandleSettingMenuItemSelectedL(TInt))"/>
+ </component>
+ <component id="com.nokia.sdt.series60.MenuItem">
+ <compoundProperty id="location">
+ <property id="x">5</property>
+ <property id="y">35</property>
+ </compoundProperty>
+ <property id="name">exitMenuItem</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_10</property>
+ <property id="command">EAknCmdExit</property>
+ <compoundProperty id="size">
+ <property id="width">222</property>
+ <property id="height">33</property>
+ </compoundProperty>
+ </component>
+ </component>
+ </component>
+ <component id="com.nokia.sdt.series60.StandardNote">
+ <property id="type">CAknErrorNote</property>
+ <compoundProperty id="location">
+ <property id="x">8</property>
+ <property id="y">171</property>
+ </compoundProperty>
+ <property id="name">note_error</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_13</property>
+ <compoundProperty id="size">
+ <property id="width">227</property>
+ <property id="height">114</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.StandardNote">
+ <property id="type">CAknInformationNote</property>
+ <compoundProperty id="location">
+ <property id="x">8</property>
+ <property id="y">171</property>
+ </compoundProperty>
+ <property id="name">note_info</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_16</property>
+ <compoundProperty id="size">
+ <property id="width">227</property>
+ <property id="height">114</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.StandardNote">
+ <property id="type">CAknWarningNote</property>
+ <compoundProperty id="location">
+ <property id="x">8</property>
+ <property id="y">171</property>
+ </compoundProperty>
+ <property id="name">note_warning</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_17</property>
+ <compoundProperty id="size">
+ <property id="width">227</property>
+ <property id="height">114</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.ConfirmationQuery">
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">171</property>
+ </compoundProperty>
+ <property id="name">qry_accept_call</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiContainerView_18</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">149</property>
+ </compoundProperty>
+ </component>
+ </component>
+ <stringBundle>
+ <stringTable language="LANG_English">
+ <string id="STR_symbian_ua_guiContainerView_1">PJSUA for S60</string>
+ <string id="STR_symbian_ua_guiContainerView_2">URL</string>
+ <string id="STR_symbian_ua_guiContainerView_4">sip:</string>
+ <string id="STR_symbian_ua_guiContainerView_7">Options</string>
+ <string id="STR_symbian_ua_guiContainerView_8">Call</string>
+ <string id="STR_symbian_ua_guiContainerView_9">Setting</string>
+ <string id="STR_symbian_ua_guiContainerView_10">Exit</string>
+ <string id="STR_symbian_ua_guiContainerView_3"/>
+ <string id="STR_symbian_ua_guiContainerView_13">Failed initializing PJSUA!</string>
+ <string id="STR_symbian_ua_guiContainerView_16">Register Success</string>
+ <string id="STR_symbian_ua_guiContainerView_17">Register Failed</string>
+ <string id="STR_symbian_ua_guiContainerView_18">Accept Call</string>
+ </stringTable>
+ </stringBundle>
+ <macroTable/>
+ <sourceMappingState>
+ <resourceMappings>
+ <resourceMapping instanceName="qry_accept_call">r_symbian_ua_gui_container_qry_accept_call</resourceMapping>
+ <resourceMapping instanceName="note_warning">r_symbian_ua_gui_container_note_warning</resourceMapping>
+ <resourceMapping instanceName="ed_info" rsrcId="text">r_symbian_ua_gui_container_ed_info_2</resourceMapping>
+ <resourceMapping instanceName="optionsMenu">r_symbian_ua_gui_container_options_menu</resourceMapping>
+ <resourceMapping instanceName="menuPane1">r_symbian_ua_gui_container_menu_pane1_menu_pane</resourceMapping>
+ <resourceMapping instanceName="title">r_symbian_ua_gui_container_title_resource</resourceMapping>
+ <resourceMapping instanceName="statusPane">r_symbian_ua_gui_container_status_pane</resourceMapping>
+ <resourceMapping instanceName="ed_url">r_symbian_ua_gui_container_ed_url</resourceMapping>
+ <resourceMapping instanceName="symbian_ua_guiContainerView">r_symbian_ua_gui_container_symbian_ua_gui_container_view</resourceMapping>
+ <resourceMapping instanceName="label1">r_symbian_ua_gui_container_label1</resourceMapping>
+ <resourceMapping instanceName="controlPane">r_symbian_ua_gui_container_control_pane</resourceMapping>
+ <resourceMapping instanceName="ed_url" rsrcId="text">r_symbian_ua_gui_container_ed_url_2</resourceMapping>
+ <resourceMapping instanceName="note_info">r_symbian_ua_gui_container_note_info</resourceMapping>
+ <resourceMapping instanceName="note_error">r_symbian_ua_gui_container_note_error</resourceMapping>
+ <resourceMapping instanceName="ed_info">r_symbian_ua_gui_container_ed_info</resourceMapping>
+ </resourceMappings>
+ <enumMappings>
+ <enumMapping instanceName="title" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EAknCtTitlePane</enumMapping>
+ <enumMapping instanceName="settingMenuItem" propertyId="command" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">ESymbian_ua_guiContainerViewSettingMenuItemCommand</enumMapping>
+ <enumMapping instanceName="ed_info" propertyId="numericKeymap">EAknEditorStandardNumberModeKeymap</enumMapping>
+ <enumMapping instanceName="label1" propertyId="font">EEikLabelFontNormal</enumMapping>
+ <enumMapping instanceName="ed_url" propertyId="defaultCase">EAknEditorLowerCase</enumMapping>
+ <enumMapping instanceName="symbian_ua_guiContainerView" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_VIEW_UID">ESymbian_ua_guiContainerViewId</enumMapping>
+ <enumMapping instanceName="label1" propertyId="alignment">EEikLabelAlignHCenter</enumMapping>
+ <enumMapping instanceName="controlPane" propertyId="leftId" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">EAknSoftkeyOptions</enumMapping>
+ <enumMapping instanceName="qry_accept_call" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_DIALOG_LINE_ID">ESymbian_ua_guiContainerViewQry_accept_call</enumMapping>
+ <enumMapping instanceName="controlPane" propertyId="rightId" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">ESymbian_ua_guiContainerViewControlPaneRightId</enumMapping>
+ <enumMapping instanceName="exitMenuItem" propertyId="command" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">EAknCmdExit</enumMapping>
+ <enumMapping instanceName="title" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_STATUS_PANE_ID">EEikStatusPaneUidTitle</enumMapping>
+ <enumMapping instanceName="ed_url" propertyId="numericKeymap">EAknEditorStandardNumberModeKeymap</enumMapping>
+ <enumMapping instanceName="ed_info" propertyId="defaultInputMode">EAknEditorTextInputMode</enumMapping>
+ <enumMapping instanceName="ed_url" propertyId="defaultInputMode">EAknEditorTextInputMode</enumMapping>
+ <enumMapping instanceName="ed_info" propertyId="defaultCase">EAknEditorTextCase</enumMapping>
+ </enumMappings>
+ <arrayMappings/>
+ </sourceMappingState>
+ <generatedFiles>
+ <file>inc/symbian_ua_guiContainer.h</file>
+ <file>inc/symbian_ua_guiContainerView.h</file>
+ <file>src/symbian_ua_guiContainerView.cpp</file>
+ <file>src/symbian_ua_guiContainer.cpp</file>
+ <file>data/symbian_ua_gui.rss</file>
+ <file>data/symbian_ua_guiContainer.rssi</file>
+ <file>inc/symbian_ua_gui.hrh</file>
+ <file>inc/symbian_ua_guiContainer.hrh</file>
+ <file>data/symbian_ua_guiSettingItemList.rssi</file>
+ <file>inc/symbian_ua_guiSettingItemList.hrh</file>
+ <file>data/symbian_ua_gui.loc</file>
+ <file>data/symbian_ua_gui.l01</file>
+ <file>data/symbian_ua_guiContainer.loc</file>
+ <file>data/symbian_ua_guiContainer.l01</file>
+ <file>data/symbian_ua_guiSettingItemList.loc</file>
+ <file>data/symbian_ua_guiSettingItemList.l01</file>
+ </generatedFiles>
+</designerData>
diff --git a/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiSettingItemList.uidesign b/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiSettingItemList.uidesign
new file mode 100644
index 00000000..95962b69
--- /dev/null
+++ b/pjsip-apps/src/symbian_ua_gui/symbian_ua_guiSettingItemList.uidesign
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<designerData version="1.1.0">
+ <componentManifest>
+ <manifestEntry id="com.nokia.sdt.series60.CAknView" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.DesignTimeContainer" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPane" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.ControlBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPaneTitle" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.StatusPaneTitleBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CBA" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CBABase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CAknSettingItemList" version="1.1.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.ContainerBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CEikEdwin" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CEikEdwinBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.EditorBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CCoeControlBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.SecretEditor" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.CAknBinaryPopupSettingItem" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.EnumeratedTextPopupBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuBar" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuBase" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuPane" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuItem" version="1.0.0"/>
+ <manifestEntry id="com.nokia.sdt.series60.MenuItemBase" version="1.0.0"/>
+ </componentManifest>
+ <property id="com.nokia.sdt.symbian.dm.RESOURCE_DIRECTORY_ID">data</property>
+ <property id="com.nokia.sdt.component.symbian.vendor">com.nokia.series60</property>
+ <property id="com.nokia.sdt.component.symbian.version">3.0.1</property>
+ <property id="com.nokia.sdt.symbian.dm.COMPONENT_PROVIDER">com.nokia.sdt.component.symbian.Symbian-Provider</property>
+ <property id="com.nokia.sdt.symbian.dm.INCLUDE_DIRECTORY_ID">inc</property>
+ <property id="com.nokia.sdt.symbian.dm.SOURCE_DIRECTORY_ID">src</property>
+ <property id="com.nokia.sdt.symbian.dm.SOURCEGEN_PROVIDER">com.nokia.sdt.sourcegen.Symbian-Provider</property>
+ <property id="com.nokia.sdt.symbian.dm.BUILD_DIRECTORY_ID">group</property>
+ <component id="com.nokia.sdt.series60.CAknView">
+ <property id="className">Csymbian_ua_guiSettingItemListView</property>
+ <compoundProperty id="location">
+ <property id="x">52</property>
+ <property id="y">45</property>
+ </compoundProperty>
+ <property id="optionsMenu" type="componentRef">optionsMenu</property>
+ <property id="name">symbian_ua_guiSettingItemListView</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">320</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.StatusPane">
+ <compoundProperty id="location">
+ <property id="x">20</property>
+ </compoundProperty>
+ <property id="name">statusPane</property>
+ <compoundProperty id="size">
+ <property id="width">204</property>
+ <property id="height">66</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.StatusPaneTitle">
+ <compoundProperty id="location">
+ <property id="x">56</property>
+ </compoundProperty>
+ <property id="name">title</property>
+ <property id="titleText" type="i18n">STR_symbian_ua_guiSettingItemListView_2</property>
+ <compoundProperty id="size">
+ <property id="width">148</property>
+ <property id="height">43</property>
+ </compoundProperty>
+ <compoundProperty id="image"/>
+ </component>
+ </component>
+ <component id="com.nokia.sdt.series60.CBA">
+ <compoundProperty id="location">
+ <property id="y">288</property>
+ </compoundProperty>
+ <compoundProperty id="info">
+ <property id="leftText" type="i18n">STR_symbian_ua_guiSettingItemListView_140</property>
+ <property id="rightText" type="i18n">STR_symbian_ua_guiSettingItemListView_141</property>
+ <property id="rightId">EAknSoftkeySave</property>
+ </compoundProperty>
+ <property id="name">controlPane</property>
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">32</property>
+ </compoundProperty>
+ <eventBinding id="rightSoftKeyPressed" handlerDisplay="HandleControlPaneRightSoftKeyPressedL" handlerSymbol="cpp@src//symbian_ua_guiSettingItemListView.cpp/function(Csymbian_ua_guiSettingItemListView::HandleControlPaneRightSoftKeyPressedL(TInt))"/>
+ </component>
+ <component id="com.nokia.sdt.series60.CAknSettingItemList">
+ <compoundProperty id="size">
+ <property id="width">240</property>
+ <property id="height">222</property>
+ </compoundProperty>
+ <property id="className">CSymbian_ua_guiSettingItemList</property>
+ <compoundProperty id="location">
+ <property id="y">66</property>
+ </compoundProperty>
+ <property id="EAknSettingItemNumberedStyle">false</property>
+ <property id="title" type="i18n">STR_symbian_ua_guiSettingItemListView_1</property>
+ <property id="name">symbian_ua_guiSettingItemList</property>
+ <property id="exitsApp">false</property>
+ <component id="com.nokia.sdt.series60.CEikEdwin">
+ <compoundProperty id="size">
+ <property id="height">58</property>
+ <property id="width">240</property>
+ </compoundProperty>
+ <property id="defaultCase">EAknEditorLowerCase</property>
+ <compoundProperty id="avkonFlags"/>
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">0</property>
+ </compoundProperty>
+ <property id="itemTitle" type="i18n">STR_symbian_ua_guiSettingItemListView_5</property>
+ <compoundProperty id="flags"/>
+ <compoundProperty id="allowedCaseModes"/>
+ <property id="name">ed_registrar</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiSettingItemListView_3</property>
+ <compoundProperty id="allowedInputModes">
+ <property id="EAknEditorKatakanaInputMode">true</property>
+ <property id="EAknEditorFullWidthTextInputMode">true</property>
+ <property id="EAknEditorFullWidthNumericInputMode">true</property>
+ <property id="EAknEditorFullWidthKatakanaInputMode">true</property>
+ <property id="EAknEditorHiraganaKanjiInputMode">true</property>
+ <property id="EAknEditorHalfWidthTextInputMode">true</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.CEikEdwin">
+ <compoundProperty id="size">
+ <property id="height">58</property>
+ <property id="width">240</property>
+ </compoundProperty>
+ <property id="defaultCase">EAknEditorLowerCase</property>
+ <compoundProperty id="avkonFlags"/>
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">58</property>
+ </compoundProperty>
+ <property id="itemTitle" type="i18n">STR_symbian_ua_guiSettingItemListView_8</property>
+ <compoundProperty id="flags"/>
+ <compoundProperty id="allowedCaseModes"/>
+ <property id="name">ed_user</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiSettingItemListView_7</property>
+ <compoundProperty id="allowedInputModes">
+ <property id="EAknEditorKatakanaInputMode">true</property>
+ <property id="EAknEditorFullWidthTextInputMode">true</property>
+ <property id="EAknEditorFullWidthNumericInputMode">true</property>
+ <property id="EAknEditorFullWidthKatakanaInputMode">true</property>
+ <property id="EAknEditorHiraganaKanjiInputMode">true</property>
+ <property id="EAknEditorHalfWidthTextInputMode">true</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.SecretEditor">
+ <property id="maxLength">32</property>
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">116</property>
+ </compoundProperty>
+ <property id="name">ed_password</property>
+ <property id="itemTitle" type="i18n">STR_symbian_ua_guiSettingItemListView_16</property>
+ <compoundProperty id="size">
+ <property id="height">58</property>
+ <property id="width">240</property>
+ </compoundProperty>
+ </component>
+ <component id="com.nokia.sdt.series60.CAknBinaryPopupSettingItem">
+ <sequenceProperty id="items">
+ <compoundElement>
+ <property id="settingText" type="i18n">STR_symbian_ua_guiSettingItemListView_25</property>
+ <property id="popupText" type="i18n">STR_symbian_ua_guiSettingItemListView_26</property>
+ <property id="value">1</property>
+ </compoundElement>
+ <compoundElement>
+ <property id="settingText" type="i18n">STR_symbian_ua_guiSettingItemListView_27</property>
+ <property id="popupText" type="i18n">STR_symbian_ua_guiSettingItemListView_28</property>
+ </compoundElement>
+ </sequenceProperty>
+ <compoundProperty id="size">
+ <property id="height">0</property>
+ <property id="width">240</property>
+ </compoundProperty>
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">174</property>
+ </compoundProperty>
+ <property id="itemTitle" type="i18n">STR_symbian_ua_guiSettingItemListView_24</property>
+ <property id="active">1</property>
+ <property id="name">b_srtp</property>
+ <property id="itemHidden">true</property>
+ </component>
+ <component id="com.nokia.sdt.series60.CAknBinaryPopupSettingItem">
+ <sequenceProperty id="items">
+ <compoundElement>
+ <property id="settingText" type="i18n">STR_symbian_ua_guiSettingItemListView_47</property>
+ <property id="popupText" type="i18n">STR_symbian_ua_guiSettingItemListView_48</property>
+ <property id="value">1</property>
+ </compoundElement>
+ <compoundElement>
+ <property id="settingText" type="i18n">STR_symbian_ua_guiSettingItemListView_49</property>
+ <property id="popupText" type="i18n">STR_symbian_ua_guiSettingItemListView_50</property>
+ </compoundElement>
+ </sequenceProperty>
+ <compoundProperty id="size">
+ <property id="height">0</property>
+ <property id="width">240</property>
+ </compoundProperty>
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">174</property>
+ </compoundProperty>
+ <property id="itemTitle" type="i18n">STR_symbian_ua_guiSettingItemListView_46</property>
+ <property id="active">1</property>
+ <property id="name">b_ice</property>
+ <property id="itemHidden">true</property>
+ </component>
+ <component id="com.nokia.sdt.series60.CEikEdwin">
+ <compoundProperty id="size">
+ <property id="height">0</property>
+ <property id="width">240</property>
+ </compoundProperty>
+ <compoundProperty id="avkonFlags"/>
+ <compoundProperty id="location">
+ <property id="x">0</property>
+ <property id="y">174</property>
+ </compoundProperty>
+ <property id="itemTitle" type="i18n">STR_symbian_ua_guiSettingItemListView_19</property>
+ <compoundProperty id="flags"/>
+ <compoundProperty id="allowedCaseModes"/>
+ <property id="name">ed_stun_server</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiSettingItemListView_18</property>
+ <property id="itemHidden">true</property>
+ <compoundProperty id="allowedInputModes">
+ <property id="EAknEditorKatakanaInputMode">true</property>
+ <property id="EAknEditorFullWidthTextInputMode">true</property>
+ <property id="EAknEditorFullWidthNumericInputMode">true</property>
+ <property id="EAknEditorFullWidthKatakanaInputMode">true</property>
+ <property id="EAknEditorHiraganaKanjiInputMode">true</property>
+ <property id="EAknEditorHalfWidthTextInputMode">true</property>
+ </compoundProperty>
+ </component>
+ </component>
+ <component id="com.nokia.sdt.series60.MenuBar">
+ <compoundProperty id="location">
+ <property id="x">3</property>
+ <property id="y">248</property>
+ </compoundProperty>
+ <property id="name">optionsMenu</property>
+ <compoundProperty id="size">
+ <property id="height">40</property>
+ <property id="width">237</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.MenuPane">
+ <compoundProperty id="location"/>
+ <property id="name">menuPane1</property>
+ <compoundProperty id="size">
+ <property id="height">40</property>
+ <property id="width">237</property>
+ </compoundProperty>
+ <component id="com.nokia.sdt.series60.MenuItem">
+ <compoundProperty id="location">
+ <property id="x">5</property>
+ <property id="y">2</property>
+ </compoundProperty>
+ <property id="name">menuItem1</property>
+ <property id="text" type="i18n">STR_symbian_ua_guiSettingItemListView_4</property>
+ <compoundProperty id="size">
+ <property id="width">222</property>
+ <property id="height">33</property>
+ </compoundProperty>
+ <eventBinding id="selected" handlerDisplay="HandleChangeSelectedSettingItemL" handlerSymbol="cpp@src//symbian_ua_guiSettingItemListView.cpp/function(Csymbian_ua_guiSettingItemListView::HandleChangeSelectedSettingItemL(TInt))"/>
+ </component>
+ </component>
+ </component>
+ </component>
+ <stringBundle>
+ <stringTable language="LANG_English">
+ <string id="STR_symbian_ua_guiSettingItemListView_1">Settings</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_2">Account Settings</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_4">Change</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_3"/>
+ <string id="STR_symbian_ua_guiSettingItemListView_5">Registrar</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_7"/>
+ <string id="STR_symbian_ua_guiSettingItemListView_8">User</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_16">Password</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_18"/>
+ <string id="STR_symbian_ua_guiSettingItemListView_19">STUN Server</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_24">SRTP</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_25">On</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_26">Popup text for On</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_27">Off</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_28">Popup text for Off</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_46">ICE</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_47">On</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_48">Popup text for On</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_49">Off</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_50">Popup text for Off</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_140">Options</string>
+ <string id="STR_symbian_ua_guiSettingItemListView_141">Done</string>
+ </stringTable>
+ </stringBundle>
+ <macroTable/>
+ <sourceMappingState>
+ <resourceMappings>
+ <resourceMapping instanceName="b_srtp" rsrcId="member$setting_page_resource">r_symbian_ua_gui_setting_item_list_b_srtp_setting_page_resource</resourceMapping>
+ <resourceMapping instanceName="ed_stun_server">r_symbian_ua_gui_setting_item_list_ed_stun_server_editor_resource_id</resourceMapping>
+ <resourceMapping instanceName="b_ice" rsrcId="setting">r_symbian_ua_gui_setting_item_list_b_ice_setting_texts_resource</resourceMapping>
+ <resourceMapping instanceName="ed_registrar">r_symbian_ua_gui_setting_item_list_ed_registrar_editor_resource_id</resourceMapping>
+ <resourceMapping instanceName="ed_user" rsrcId="text">r_symbian_ua_gui_setting_item_list_ed_user</resourceMapping>
+ <resourceMapping instanceName="b_srtp" rsrcId="popup">r_symbian_ua_gui_setting_item_list_b_srtp_popped_up_texts_resource</resourceMapping>
+ <resourceMapping instanceName="ed_stun_server" rsrcId="text">r_symbian_ua_gui_setting_item_list_ed_stun_server</resourceMapping>
+ <resourceMapping instanceName="optionsMenu">r_symbian_ua_gui_setting_item_list_options_menu</resourceMapping>
+ <resourceMapping instanceName="ed_password" rsrcId="member$setting_page_resource">r_symbian_ua_gui_setting_item_list_ed_password_setting_page_resource</resourceMapping>
+ <resourceMapping instanceName="b_ice" rsrcId="popup">r_symbian_ua_gui_setting_item_list_b_ice_popped_up_texts_resource</resourceMapping>
+ <resourceMapping instanceName="symbian_ua_guiSettingItemListView">r_symbian_ua_gui_setting_item_list_symbian_ua_gui_setting_item_list_view</resourceMapping>
+ <resourceMapping instanceName="ed_password">r_symbian_ua_gui_setting_item_list_ed_password_editor_resource_id</resourceMapping>
+ <resourceMapping instanceName="symbian_ua_guiSettingItemList">r_symbian_ua_gui_setting_item_list_symbian_ua_gui_setting_item_list</resourceMapping>
+ <resourceMapping instanceName="b_ice" rsrcId="member$setting_page_resource">r_symbian_ua_gui_setting_item_list_b_ice_setting_page_resource</resourceMapping>
+ <resourceMapping instanceName="statusPane">r_symbian_ua_gui_setting_item_list_status_pane</resourceMapping>
+ <resourceMapping instanceName="b_ice">r_symbian_ua_gui_setting_item_list_b_ice_editor_resource_id</resourceMapping>
+ <resourceMapping instanceName="ed_user">r_symbian_ua_gui_setting_item_list_ed_user_editor_resource_id</resourceMapping>
+ <resourceMapping instanceName="b_srtp" rsrcId="associated">r_symbian_ua_gui_setting_item_list_b_srtp</resourceMapping>
+ <resourceMapping instanceName="ed_registrar" rsrcId="text">r_symbian_ua_gui_setting_item_list_ed_registrar</resourceMapping>
+ <resourceMapping instanceName="b_srtp">r_symbian_ua_gui_setting_item_list_b_srtp_editor_resource_id</resourceMapping>
+ <resourceMapping instanceName="b_srtp" rsrcId="setting">r_symbian_ua_gui_setting_item_list_b_srtp_setting_texts_resource</resourceMapping>
+ <resourceMapping instanceName="ed_registrar" rsrcId="member$setting_page_resource">r_symbian_ua_gui_setting_item_list_ed_registrar_setting_page_resource</resourceMapping>
+ <resourceMapping instanceName="menuPane1">r_symbian_ua_gui_setting_item_list_menu_pane1_menu_pane</resourceMapping>
+ <resourceMapping instanceName="ed_user" rsrcId="member$setting_page_resource">r_symbian_ua_gui_setting_item_list_ed_user_setting_page_resource</resourceMapping>
+ <resourceMapping instanceName="controlPane">r_symbian_ua_gui_setting_item_list_control_pane</resourceMapping>
+ <resourceMapping instanceName="title">r_symbian_ua_gui_setting_item_list_title_resource</resourceMapping>
+ <resourceMapping instanceName="ed_stun_server" rsrcId="member$setting_page_resource">r_symbian_ua_gui_setting_item_list_ed_stun_server_setting_page_resource</resourceMapping>
+ <resourceMapping instanceName="b_ice" rsrcId="associated">r_symbian_ua_gui_setting_item_list_b_ice</resourceMapping>
+ </resourceMappings>
+ <enumMappings>
+ <enumMapping instanceName="menuItem1" propertyId="command" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">ESymbian_ua_guiSettingItemListViewMenuItem1Command</enumMapping>
+ <enumMapping instanceName="ed_password" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_SETTING_ITEM_ID">ESymbian_ua_guiSettingItemListViewEd_password</enumMapping>
+ <enumMapping instanceName="ed_user" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EEikCtEdwin</enumMapping>
+ <enumMapping instanceName="ed_stun_server" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_SETTING_ITEM_ID">ESymbian_ua_guiSettingItemListViewEd_stun_server</enumMapping>
+ <enumMapping instanceName="title" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_STATUS_PANE_ID">EEikStatusPaneUidTitle</enumMapping>
+ <enumMapping instanceName="ed_user" propertyId="defaultCase">EAknEditorLowerCase</enumMapping>
+ <enumMapping instanceName="b_ice" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_SETTING_ITEM_ID">ESymbian_ua_guiSettingItemListViewB_ice</enumMapping>
+ <enumMapping instanceName="ed_user" propertyId="numericKeymap">EAknEditorStandardNumberModeKeymap</enumMapping>
+ <enumMapping instanceName="ed_stun_server" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EEikCtEdwin</enumMapping>
+ <enumMapping instanceName="b_srtp" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_SETTING_ITEM_ID">ESymbian_ua_guiSettingItemListViewB_srtp</enumMapping>
+ <enumMapping instanceName="ed_user" propertyId="defaultInputMode">EAknEditorTextInputMode</enumMapping>
+ <enumMapping instanceName="ed_registrar" propertyId="numericKeymap">EAknEditorStandardNumberModeKeymap</enumMapping>
+ <enumMapping instanceName="b_srtp" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EAknCtPopupSettingList</enumMapping>
+ <enumMapping instanceName="ed_registrar" propertyId="defaultInputMode">EAknEditorTextInputMode</enumMapping>
+ <enumMapping instanceName="title" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EAknCtTitlePane</enumMapping>
+ <enumMapping instanceName="symbian_ua_guiSettingItemListView" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_VIEW_UID">ESymbian_ua_guiSettingItemListViewId</enumMapping>
+ <enumMapping instanceName="ed_registrar" propertyId="defaultCase">EAknEditorLowerCase</enumMapping>
+ <enumMapping instanceName="ed_password" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EEikCtSecretEd</enumMapping>
+ <enumMapping instanceName="controlPane" propertyId="leftId" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">EAknSoftkeyOptions</enumMapping>
+ <enumMapping instanceName="ed_user" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_SETTING_ITEM_ID">ESymbian_ua_guiSettingItemListViewEd_user</enumMapping>
+ <enumMapping instanceName="controlPane" propertyId="rightId" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">EAknSoftkeySave</enumMapping>
+ <enumMapping instanceName="ed_stun_server" propertyId="numericKeymap">EAknEditorStandardNumberModeKeymap</enumMapping>
+ <enumMapping instanceName="save_SettingsMenuItem" propertyId="command" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_COMMANDS">ESymbian_ua_guiSettingItemListViewSave_SettingsMenuItemCommand</enumMapping>
+ <enumMapping instanceName="ed_registrar" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_SETTING_ITEM_ID">ESymbian_ua_guiSettingItemListViewEd_registrar</enumMapping>
+ <enumMapping instanceName="ed_stun_server" propertyId="defaultInputMode">EAknEditorTextInputMode</enumMapping>
+ <enumMapping instanceName="b_ice" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EAknCtPopupSettingList</enumMapping>
+ <enumMapping instanceName="ed_registrar" propertyId="" nameAlgorithm="com.nokia.sdt.component.symbian.NAME_ALG_CONTROL_TYPE">EEikCtEdwin</enumMapping>
+ <enumMapping instanceName="ed_stun_server" propertyId="defaultCase">EAknEditorTextCase</enumMapping>
+ </enumMappings>
+ <arrayMappings/>
+ </sourceMappingState>
+ <generatedFiles>
+ <file>src/symbian_ua_guiSettingItemList.cpp</file>
+ <file>src/Symbian_ua_guiSettingItemListSets.cpp</file>
+ <file>src/symbian_ua_guiSettingItemListView.cpp</file>
+ <file>inc/Symbian_ua_guiSettingItemListSettings.h</file>
+ <file>inc/symbian_ua_guiSettingItemList.h</file>
+ <file>inc/symbian_ua_guiSettingItemListView.h</file>
+ <file>data/symbian_ua_gui.rss</file>
+ <file>data/symbian_ua_guiContainer.rssi</file>
+ <file>inc/symbian_ua_gui.hrh</file>
+ <file>inc/symbian_ua_guiContainer.hrh</file>
+ <file>data/symbian_ua_guiSettingItemList.rssi</file>
+ <file>inc/symbian_ua_guiSettingItemList.hrh</file>
+ <file>data/symbian_ua_gui.loc</file>
+ <file>data/symbian_ua_gui.l01</file>
+ <file>data/symbian_ua_guiContainer.loc</file>
+ <file>data/symbian_ua_guiContainer.l01</file>
+ <file>data/symbian_ua_guiSettingItemList.loc</file>
+ <file>data/symbian_ua_guiSettingItemList.l01</file>
+ </generatedFiles>
+</designerData>