diff --git a/src/gui/official/Makefile.am b/src/gui/official/Makefile.am
index 8fa0d163ddb9be9f280ce0da3e45928582149ca0..04671388ab1584e83af18624f6f7dae5737ea78a 100644
--- a/src/gui/official/Makefile.am
+++ b/src/gui/official/Makefile.am
@@ -1,20 +1,60 @@
-noinst_PROGRAMS = test
-
-BUILT_SOURCES = 
-
-test_SOURCES = \
+bin_PROGRAMS = sflphonegui
+noinst_PROGRAMS = servertest
+
+#configurationpanel.h configurationpanelui.cpp configurationpanelmoc.cpp 
+BUILT_SOURCES = \
+	url_input.h \
+	url_inputui.cpp \
+	url_inputmoc.cpp \
+	jpushbuttonmoc.cpp \
+	trayiconmoc.cpp\
+	volumecontrolmoc.cpp\
+	numerickeypadmoc.cpp \
+	mydisplaymoc.cpp \
+	qtGUImainwindowmoc.cpp
+
+servertest_SOURCES = \
+	account.cpp \
+	answerreceiver.cpp \
+	call.cpp \
+	main.cpp \
+	request.cpp \
+	requesterimpl.cpp \
+	session.cpp \
+	sessionio.cpp
+
+sflphonegui_SOURCES = \
 	$(BUILT_SOURCES) \
-	account.cpp answerreceiver.cpp call.cpp  main.cpp  request.cpp  requesterimpl.cpp  session.cpp  sessionio.cpp  
-
+	jpushbutton.cpp \
+	mydisplay.cpp \
+	numerickeypad.cpp \
+	numerickeypadtools.cpp \
+	trayicon.cpp \
+	phoneline.cpp \
+	point.cpp \
+	qjlistboxpixmap.cpp \
+	qtGUImainwindow.cpp \
+	transqwidget.cpp \
+	trayicon_x11.cpp \
+	vector.cpp \
+	volumecontrol.cpp 
 
 CLEANFILES = \
 	$(BUILT_SOURCES)
 
-test_LDFLAGS = $(QT_LDFLAGS) $(X_LDFLAGS) -static
-test_LDADD =  ../../../utilspp/libutilspp.la -lpthread $(LIBQT)
+AM_CXXFLAGS = -DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" 
+
+AM_LDFLAGS = $(QT_LDFLAGS) $(X_LDFLAGS) -static
+LDADD =  ../../../utilspp/libutilspp.la -lpthread $(LIBQT)
 KDE_CXXFLAGS = $(USE_EXCEPTIONS)
 AM_CPPFLAGS = $(QT_INCLUDES) $(X_INCLUDES) -I$(top_srcdir)/src
 
 
+%.h: %.ui
+	$(UIC) -o $@ $<
 
+%moc.cpp: %.h
+	$(MOC) -o $@ $<
 
+%ui.cpp: %.ui
+	$(UIC) -o $@ -impl $*.h $<
diff --git a/src/gui/official/configurationpanel.h b/src/gui/official/configurationpanel.h
new file mode 100644
index 0000000000000000000000000000000000000000..147d9b5b85cfebe9d798c570d57a3856634cfb4e
--- /dev/null
+++ b/src/gui/official/configurationpanel.h
@@ -0,0 +1,163 @@
+/****************************************************************************
+** Form interface generated from reading ui file 'configurationpanel.ui'
+**
+** Created: Sat Sep 17 14:20:22 2005
+**      by: The User Interface Compiler ($Id$)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef CONFIGURATIONPANEL_H
+#define CONFIGURATIONPANEL_H
+
+#include <qvariant.h>
+#include <qpixmap.h>
+#include <qdialog.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class QFrame;
+class QPushButton;
+class QListBox;
+class QListBoxItem;
+class QLabel;
+class QTabWidget;
+class QWidget;
+class QGroupBox;
+class QLineEdit;
+class QCheckBox;
+class QButtonGroup;
+class QRadioButton;
+class QSpinBox;
+class QComboBox;
+
+class ConfigurationPanel : public QDialog
+{
+    Q_OBJECT
+
+public:
+    ConfigurationPanel( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~ConfigurationPanel();
+
+    QFrame* line1;
+    QPushButton* buttonHelp;
+    QPushButton* buttonSave;
+    QPushButton* buttonOk;
+    QPushButton* buttonCancel;
+    QListBox* Menu;
+    QLabel* TitleTab;
+    QFrame* line2;
+    QTabWidget* Tab_Signalisations;
+    QWidget* SIPPage;
+    QGroupBox* groupBox1;
+    QLabel* textLabel2;
+    QLineEdit* fullName;
+    QLineEdit* userPart;
+    QLabel* textLabel3;
+    QLabel* textLabel2_3;
+    QLineEdit* username;
+    QLineEdit* hostPart;
+    QLineEdit* sipproxy;
+    QLabel* textLabel3_2_2;
+    QLineEdit* password;
+    QLabel* textLabel1_3;
+    QLabel* textLabel3_2;
+    QCheckBox* autoregister;
+    QPushButton* Register;
+    QWidget* STUNPage;
+    QGroupBox* groupBox3;
+    QLabel* textLabel1_5;
+    QLineEdit* STUNserver;
+    QButtonGroup* stunButtonGroup;
+    QRadioButton* useStunNo;
+    QRadioButton* useStunYes;
+    QWidget* DTMFPage;
+    QGroupBox* SettingsDTMF;
+    QCheckBox* playTones;
+    QLabel* labelPulseLength;
+    QSpinBox* pulseLength;
+    QLabel* labelSendDTMF;
+    QComboBox* sendDTMFas;
+    QTabWidget* Tab_Audio;
+    QWidget* DriversPage;
+    QButtonGroup* DriverChoice;
+    QWidget* CodecsPage;
+    QButtonGroup* CodecsChoice;
+    QComboBox* codec1;
+    QComboBox* codec2;
+    QComboBox* codec3;
+    QLabel* textLabel1_4;
+    QLabel* textLabel1_4_2;
+    QLabel* textLabel1_4_3;
+    QWidget* RingPage;
+    QComboBox* ringsChoice;
+    QTabWidget* Tab_Preferences;
+    QWidget* DriversPage_2;
+    QComboBox* SkinChoice;
+    QPushButton* buttonApplySkin;
+    QWidget* TabPage;
+    QLabel* labelToneZone;
+    QComboBox* zoneToneChoice;
+    QCheckBox* confirmationToQuit;
+    QCheckBox* checkedTray;
+    QLabel* textLabel1_6;
+    QLineEdit* voicemailNumber;
+    QTabWidget* Tab_About;
+    QWidget* DriversPage_3;
+    QLabel* pixmapLabel1;
+    QLabel* textLabel2_2;
+    QWidget* CodecsPage_2;
+    QLabel* textLabel1;
+    QLabel* pixmapLabel2;
+
+public slots:
+    virtual void saveSlot();
+    virtual void changeTabSlot();
+    virtual void useStunSlot( int id );
+    virtual void applySkinSlot();
+    virtual void driverSlot( int id );
+
+protected:
+    QGridLayout* ConfigurationPanelLayout;
+    QVBoxLayout* layout19;
+    QHBoxLayout* layout28;
+    QSpacerItem* Horizontal_Spacing2;
+    QVBoxLayout* layout17;
+    QVBoxLayout* layout24;
+    QGridLayout* groupBox1Layout;
+    QVBoxLayout* layout23;
+    QSpacerItem* spacer9;
+    QHBoxLayout* layout19_2;
+    QSpacerItem* spacer7;
+    QVBoxLayout* stunButtonGroupLayout;
+    QGridLayout* SettingsDTMFLayout;
+    QVBoxLayout* layout11;
+    QHBoxLayout* layout10;
+    QSpacerItem* spacer6;
+    QHBoxLayout* layout7;
+    QSpacerItem* spacer3;
+    QHBoxLayout* layout8;
+    QSpacerItem* spacer4;
+    QGridLayout* layout18;
+    QVBoxLayout* layout17_2;
+    QVBoxLayout* layout18_2;
+    QVBoxLayout* layout17_3;
+    QHBoxLayout* layout16;
+    QSpacerItem* spacer5;
+    QHBoxLayout* layout16_2;
+    QSpacerItem* spacer6_2;
+
+protected slots:
+    virtual void languageChange();
+
+private:
+    QPixmap image0;
+    QPixmap image1;
+
+    void init();
+
+};
+
+#endif // CONFIGURATIONPANEL_H
diff --git a/src/gui/official/configurationpanel.ui b/src/gui/official/configurationpanel.ui
new file mode 100644
index 0000000000000000000000000000000000000000..b06767a7d95d4a7273d17ece47382f091dcc4108
--- /dev/null
+++ b/src/gui/official/configurationpanel.ui
@@ -0,0 +1,1273 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>ConfigurationPanel</class>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>ConfigurationPanel</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>561</width>
+            <height>552</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Configuration panel</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout19</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="Line">
+                    <property name="name">
+                        <cstring>line1</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>HLine</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Sunken</enum>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout28</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonHelp</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Help</string>
+                            </property>
+                            <property name="accel">
+                                <string>F1</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <spacer>
+                            <property name="name">
+                                <cstring>Horizontal Spacing2</cstring>
+                            </property>
+                            <property name="orientation">
+                                <enum>Horizontal</enum>
+                            </property>
+                            <property name="sizeType">
+                                <enum>Expanding</enum>
+                            </property>
+                            <property name="sizeHint">
+                                <size>
+                                    <width>160</width>
+                                    <height>20</height>
+                                </size>
+                            </property>
+                        </spacer>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonSave</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Save</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+S</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                            <property name="default">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonOk</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;OK</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+O</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonCancel</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Cancel</string>
+                            </property>
+                            <property name="accel">
+                                <string>F, Backspace</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QListBox" row="0" column="0">
+            <property name="name">
+                <cstring>Menu</cstring>
+            </property>
+            <property name="sizePolicy">
+                <sizepolicy>
+                    <hsizetype>0</hsizetype>
+                    <vsizetype>7</vsizetype>
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                </sizepolicy>
+            </property>
+            <property name="cursor">
+                <cursor>13</cursor>
+            </property>
+            <property name="currentItem">
+                <number>-1</number>
+            </property>
+            <property name="selectionMode">
+                <enum>Single</enum>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout17</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>TitleTab</cstring>
+                    </property>
+                    <property name="font">
+                        <font>
+                            <bold>1</bold>
+                        </font>
+                    </property>
+                    <property name="text">
+                        <string>Setup signalisation</string>
+                    </property>
+                </widget>
+                <widget class="Line">
+                    <property name="name">
+                        <cstring>line2</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>HLine</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Sunken</enum>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Signalisations</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>SIPPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>SIP Authentication</string>
+                        </attribute>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout24</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>16</x>
+                                    <y>12</y>
+                                    <width>401</width>
+                                    <height>393</height>
+                                </rect>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QGroupBox">
+                                    <property name="name">
+                                        <cstring>groupBox1</cstring>
+                                    </property>
+                                    <property name="title">
+                                        <string></string>
+                                    </property>
+                                    <grid>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel" row="0" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Full name</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="1" column="0">
+                                            <property name="name">
+                                                <cstring>fullName</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="3" column="0">
+                                            <property name="name">
+                                                <cstring>userPart</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="2" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>User Part of SIP URL</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="4" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel2_3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Authorization user</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="5" column="0">
+                                            <property name="name">
+                                                <cstring>username</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="9" column="0">
+                                            <property name="name">
+                                                <cstring>hostPart</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="11" column="0">
+                                            <property name="name">
+                                                <cstring>sipproxy</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="10" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3_2_2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>SIP proxy</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="7" column="0">
+                                            <property name="name">
+                                                <cstring>password</cstring>
+                                            </property>
+                                            <property name="echoMode">
+                                                <enum>Password</enum>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="6" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel1_3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Password</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="8" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3_2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Host part of SIP URL</string>
+                                            </property>
+                                        </widget>
+                                    </grid>
+                                </widget>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout23</cstring>
+                                    </property>
+                                    <vbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout19</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QCheckBox">
+                                                    <property name="name">
+                                                        <cstring>autoregister</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Auto-register</string>
+                                                    </property>
+                                                    <property name="checked">
+                                                        <bool>true</bool>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer7</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>201</width>
+                                                            <height>21</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QPushButton">
+                                                    <property name="name">
+                                                        <cstring>Register</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Register</string>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer9</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Vertical</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>20</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </vbox>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>STUNPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>STUN</string>
+                        </attribute>
+                        <widget class="QGroupBox">
+                            <property name="name">
+                                <cstring>groupBox3</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>110</y>
+                                    <width>253</width>
+                                    <height>100</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Settings </string>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel1_5</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>38</y>
+                                        <width>229</width>
+                                        <height>16</height>
+                                    </rect>
+                                </property>
+                                <property name="text">
+                                    <string>STUN server (address:port)</string>
+                                </property>
+                            </widget>
+                            <widget class="QLineEdit">
+                                <property name="name">
+                                    <cstring>STUNserver</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>60</y>
+                                        <width>229</width>
+                                        <height>23</height>
+                                    </rect>
+                                </property>
+                            </widget>
+                        </widget>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>stunButtonGroup</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>90</width>
+                                    <height>81</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Use STUN</string>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>useStunNo</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>No</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>true</bool>
+                                    </property>
+                                </widget>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>useStunYes</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Yes</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>false</bool>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DTMFPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>DTMF</string>
+                        </attribute>
+                        <widget class="QGroupBox">
+                            <property name="name">
+                                <cstring>SettingsDTMF</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>301</width>
+                                    <height>130</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Settings</string>
+                            </property>
+                            <grid>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLayoutWidget" row="0" column="0">
+                                    <property name="name">
+                                        <cstring>layout11</cstring>
+                                    </property>
+                                    <vbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout10</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QCheckBox">
+                                                    <property name="name">
+                                                        <cstring>playTones</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Play tones locally</string>
+                                                    </property>
+                                                    <property name="checked">
+                                                        <bool>true</bool>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer6</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>111</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                            </hbox>
+                                        </widget>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout7</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QLabel">
+                                                    <property name="name">
+                                                        <cstring>labelPulseLength</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Pulse length</string>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer3</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>115</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QSpinBox">
+                                                    <property name="name">
+                                                        <cstring>pulseLength</cstring>
+                                                    </property>
+                                                    <property name="suffix">
+                                                        <string> ms</string>
+                                                    </property>
+                                                    <property name="maxValue">
+                                                        <number>1500</number>
+                                                    </property>
+                                                    <property name="minValue">
+                                                        <number>10</number>
+                                                    </property>
+                                                    <property name="value">
+                                                        <number>250</number>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout8</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QLabel">
+                                                    <property name="name">
+                                                        <cstring>labelSendDTMF</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Send DTMF as</string>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer4</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>85</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QComboBox">
+                                                    <item>
+                                                        <property name="text">
+                                                            <string>SIP INFO</string>
+                                                        </property>
+                                                    </item>
+                                                    <property name="name">
+                                                        <cstring>sendDTMFas</cstring>
+                                                    </property>
+                                                    <property name="currentItem">
+                                                        <number>0</number>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                    </vbox>
+                                </widget>
+                            </grid>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Audio</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Drivers</string>
+                        </attribute>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>DriverChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>410</width>
+                                    <height>180</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Drivers list</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>CodecsPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Codecs</string>
+                        </attribute>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>CodecsChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>10</y>
+                                    <width>133</width>
+                                    <height>157</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Supported codecs</string>
+                            </property>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout18</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>20</y>
+                                        <width>110</width>
+                                        <height>120</height>
+                                    </rect>
+                                </property>
+                                <grid>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLayoutWidget" row="0" column="0">
+                                        <property name="name">
+                                            <cstring>layout17</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec1</cstring>
+                                                </property>
+                                            </widget>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec2</cstring>
+                                                </property>
+                                            </widget>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec3</cstring>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                    <widget class="QLayoutWidget" row="0" column="1">
+                                        <property name="name">
+                                            <cstring>layout18</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>1</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4_2</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>2</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4_3</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>3</string>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                </grid>
+                            </widget>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>RingPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Ringtones</string>
+                        </attribute>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>ringsChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>21</y>
+                                    <width>150</width>
+                                    <height>30</height>
+                                </rect>
+                            </property>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Preferences</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Themes</string>
+                        </attribute>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>SkinChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>12</x>
+                                    <y>42</y>
+                                    <width>110</width>
+                                    <height>27</height>
+                                </rect>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonApplySkin</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>136</x>
+                                    <y>40</y>
+                                    <width>80</width>
+                                    <height>32</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Apply</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>TabPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Options</string>
+                        </attribute>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout17</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>262</width>
+                                    <height>200</height>
+                                </rect>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout16</cstring>
+                                    </property>
+                                    <hbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel">
+                                            <property name="name">
+                                                <cstring>labelToneZone</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Zone tone:</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QComboBox">
+                                            <item>
+                                                <property name="text">
+                                                    <string>North America</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>France</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Australia</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>United Kingdom</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Spain</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Italy</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Japan</string>
+                                                </property>
+                                            </item>
+                                            <property name="name">
+                                                <cstring>zoneToneChoice</cstring>
+                                            </property>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer5</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Horizontal</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>31</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </hbox>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>confirmationToQuit</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Show confirmation to quit.</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>true</bool>
+                                    </property>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>checkedTray</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Minimize to tray</string>
+                                    </property>
+                                </widget>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout16</cstring>
+                                    </property>
+                                    <hbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel">
+                                            <property name="name">
+                                                <cstring>textLabel1_6</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Voicemail:</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit">
+                                            <property name="name">
+                                                <cstring>voicemailNumber</cstring>
+                                            </property>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer6_2</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Horizontal</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>61</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </hbox>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_About</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>About SFLPhone</string>
+                        </attribute>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>pixmapLabel1</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>50</x>
+                                    <y>40</y>
+                                    <width>312</width>
+                                    <height>91</height>
+                                </rect>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap>image0</pixmap>
+                            </property>
+                            <property name="scaledContents">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_2</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>170</y>
+                                    <width>371</width>
+                                    <height>121</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&lt;p align="center"&gt;
+Copyright (C) 2004-2005 Savoir-faire Linux inc.&lt;br&gt;&lt;br&gt;
+Laurielle LEA &amp;lt;laurielle.lea@savoirfairelinux.com&amp;gt;&lt;br&gt;&lt;br&gt;
+SFLPhone-0.4.1-pre1 is released under &lt;br&gt;the General Public License.&lt;br&gt;
+For more information, see http://www.sflphone.org&lt;br&gt;
+&lt;/p&gt;</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>CodecsPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>About Savoir-faire Linux inc.</string>
+                        </attribute>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>85</x>
+                                    <y>126</y>
+                                    <width>291</width>
+                                    <height>131</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&lt;p align="center"&gt;Website: http://www.savoirfairelinux.com&lt;br&gt;&lt;br&gt;
+5505, Saint-Laurent - bureau 3030&lt;br&gt;
+Montreal, Quebec H2T 1S6&lt;/p&gt;</string>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>pixmapLabel2</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>130</x>
+                                    <y>50</y>
+                                    <width>173</width>
+                                    <height>48</height>
+                                </rect>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap>image1</pixmap>
+                            </property>
+                            <property name="scaledContents">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </widget>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<images>
+    <image name="image0">
+        <data format="XPM.GZ" length="58862">789ced5d596fe3b8b27e9f5f114cbd0d0eea6475625cdc878eb3b4b34ca72799e9745f9c07c74b76c776363b07e7bfdf629194488ad49249e4f40151109292488a923e7dac85a2fff9dbc2e9d1e1c26ffffce5fea1f370d95de85e74260bbff51e6f6f67fff7affffdf72fbfae2c2d2f34971696165717967ffdc72fbfe21f0bdd05682c37d61a52ffcc7a87f40eebbb4a6f2a7d47e93da57f17fafa4aa3b7be2274e8487d7d49eab8a4f43575fc96f533d2cf58df547a53e953a5f794fe22f48d95f5de866caf2df58d25a9c34ce96beaf8b9d4cf96cf56f9f890f5333a2edb1b2bbd29757c547a4f1d1f495dd7c78b44efb13e507a43e9db426fae6ef49af27c7da93797943e50fa9ad4f145ea49fd65a577947ea8f5ee1ad7df557a5f1e872dadcbe3f8c47a97daefb2fea0f4a6d2ef95de53faa5d4757de849bdbbacf496d03babcd5e47f6ff52ea9d25a583d2d7a48e7da927f59f125d5ecf27a537947ec47a97eacbfe4c94de51fab1d2fb528767a927f5af94de913a74b5de93e7df577a5f955f14fad96aa7af9ee758eac9f36d28bda1f0b22775dd1e9e28bdaff403a9f79695bece7a2f799e23a5ebe7f9ac74f5fc7045eaba3e7c4af43e1f5f557a43eac0f8eaae25cffb4eeafa7ee354e90da5f7a4aeebe3b5d23baa3d7e3fba3d7d3fe14ee9ea7ee250e9eafec195d4757dfc5debfd06eb6b4aefabf62fb42e8fc367a9f79795ceef5b6f2db99f33a927f7734fe90da57f937a52ff20d1657fba4a6fa8fefc99e8f238bf2fd43b7d3f51e9fa7a6e95aefa8f9b52d7f5e14ce91dd5de86d0fb0d7d7df855eaba7fd854baea0fec285dd587b6d607f2f8b5d2fbaafd2f5a57c7f97dee27fdc153a5ebf6264ad7f5ffd2baac8f37521f2c2bfd4ce90da5ff10fa20391fee4b3d29df52ba2edf49f4019fff46e91da533df0c06fa3882d2d5f1af0f4a1f683d4a94fa24622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d7f177308d821399bf77544f979e4b598c32ef6b08f033cc70bb55de2155ee3cdbcafe8e30bdee210ef7084639ce03d3ee0233ed1df09e9cf38c519decebb87ef2bd53147ac768d2f8cb601612dfbf7136ecefbaa3ea2600bb70855dbb883bbf8b960dbc5366171847bb83fef7ebfbd54c51c1e58dc16da0e3f0eeef81df91dbfbc4bdbfb848b23622d282cf99570f4c7abb6e379dfc1b7962a98c31b1a3ffddce6fb7b52aac53f091107344a5ff2d87c42e8f8eb2daf0fbf25fd7973d4e1293392e0a5eff8a3a0ec6221b785b6a5b7eef7bca53ce6e8e915f39bbd2de7f916c43f57c17a2b7ebb903c966f6447ae166c6b29be08cdbaddde5bdf3b6c187c342a28bbe4e1b0255c278edcc0267e05c42d00e8f8b80ef0ad7b3e5f298b39465c96cb06849b2b42c8359ce1267433c797b1e36d0d88db2e0ab8f2c41db108a56539f602bfa9f324fbe1cd31077d838f724740ea4786bf60e02b07e7597b0fcedfbae7f3957298f372dc00d7ac327f911597e5ac818fb108a7699915dc14c8c40e9cc105f48cba874ead9ea7fdd0c67da3676df8d56f7defc8df4cb928b7751a855deeea602b507694e1bac5b7eef97ca50ce6f08b974baecd32c47321cec93c0db2e0521f37c38364e3ad32838ae3dfac73749df69709bb3d204e931bc915fd774dffabbec14d5e3ffeae900f9a72513ee6006e1d9edb0a9786a1c373776fddf3f94a29cc2dfbb8c4ba4b6730cae19c15abb52fc9fee073a267744163ab331a1242cd7657a13016581fcf6151d99151760727b9656fd9fa53e561f8d6fd9eb714638ec63eafdd649559ceb7afe0dadb5ec5f8b1652f96b2ce98e7743fde97e7c685a587e42734b3f13698900771ef29dfa211f9166790d766618c46956bc2234ee9fca76f7d0f5e234598a3912ec45f3725caa80d9e8c7bfca4f62f57ed2b3c57e5ac6a3c87fb70477e64533c49dcc7198ef101a6f81d66788477d9676ff1dc1fd2d2a7e7fa0c973084195c12b70523bad4b3676a7da6f90c3a30a61acd40e91f7847e567844260940e71421ecc928e1e877009f7e40bbfa49c293816c80dae7ae7df568a30079fcac4df380b96ef4b265137b6d5c4fe4f55fb6ad87307256b54b0e70861a94fd9f1c6ca1c5bdee439e6ba4e12af4bda8147efb9a6b0e9cf3f402bcb4584c5cf057ddbf58dd6701eb80eb204ca32e47b4821cf0d82fc3548fb4dcfd66bf319db956a2fe144c8b1a2037d49ec39b82859a302cf116b14e604888b8c676bf35cb0ceb6739e0d62a6dc3a84310311706ff154f83cb6853d8171ee39a64551ecf7937ccc4149eee2d859418e425bfc894ffa37ecb9b29833edb97c8cc343b9bc00f99f498cc3e539ff465c6322085d2ef46e064e7156a65fcca98955483ed8b0b04e7b5e5c5780b96e0e772dbb1126f20ef2b84e656089add27c43a5ab4eed3928392e97e7395f3e1436c9f619e13d8f50e9fe84e9caf11c6d897f41c8dec91cff4ee36cb64edab359e9dc6ce2e11253da1cb8497bc66401dad7f72131c7fe68c817ddf194ff421e4288eb5655995563ff7295b900863d57d287b0ecb9c3dc92599e3347d16d63ffae1e95b23c0703c2e83159edf6fe84b518a5d639a4f5c6734edaceb199aa93e1397811ef029dcbe52e957f33f2c09f79144d7c06f2904d3bf27b282efdbe92873908fba397e18c395c046cc0849bac5cc33969d7e5f2ef567ceeba548dd7f39ce32fc038cb412ecfe9d82db6c0e226d00c3fb4b8a7a351a5fbca2832b849ed77788ed84af11379d98e1da86a3c18fb3fdb769b7d9daead598fe4610ebf0438ab2036a66c3bb75e12d123241c7a8ef7b1879b79715e279fbb92df0bae61c6e772633336cfd93618f779cb3caef6d93c67645c9969b2e56d2ef5cc0ae051362dc3fce4f09cc54d60e571a1aff6764c4ecc9c636a5c67e6681d928bb96e96af60b7242765e78c185164c2c20a86e6e1898cd6375f9b467c4ee57269cf09b1a42d9be96c1693e7f27d0887e71a9eb34f8de3724434796ed78ec5391cc8c74c5b0ebc36059c5b9cc628b679ce9e1940bd36cb735c86fc629b17ad5929ecc398c7e71025ce1d5bcf325c5421a606570e9739f32838bf15f6750fb3a36726df1afeab50f76a7bce1335b5388547c5bc3c04581c28222c840593af02790b93a3a41de8f09c937b25de73cb8f1c3b8fd80cef69ef049f4c8e53dbccdf8ff7945c9edb7478a56214173edbf5bde7001ac1d788ad2e3dbce7ccb374f2ad79db4dd27aba2f17738e9de3cb45ad1bfcf0cc7bcc7925ce1be5d85a6453c1a3c55781f94966ec0ea6bcc7b6e79cecabe5f34a9e9b94f673c5f6fc1628aa26b93cd7b6b8a354ae8afcd6d574ae0878edb990e00d95bfb238cb9a7f97999f774863ab98a3796d6e84f4c4267c9d3d07de397f8c22cd5b6ced59f69c930720567379cea8af6d35cf3dc8f4c3e1b90da757e30ccfdd67b82c67f3e749de577279cef65bd3b9b7c44df464fd3697f4493fe9a33c37d3f15bf385ce7a62d88f8615e6d873d725be427815cff96d2df23a537e38e23da6cde662ceb60f7f64e6c505ec28b8346d446ec9e63907ab561f183fe4d796e5b85d7a6be610a32b88cfa5398313b56713b59de68d3d305e64fcaec7333121c9af96f0339356560dae4bfc34d39e2b9789b0ecb9f27eab27f2e8f014fb9c16cfb9b195877c9e0bcd37b7da6cf31e8be7dc6cbe555ef2dc83cd6564cd1d1147cf5c216fe263c68493f9bc623612f9142f066f9c786b98b9089e73492894ba971773ceece42fac7c6bc95cadc573b963bbc34b9ef920786c1c67abaa22cfd97c159887697d3721f754e4393cb2ec46af9d305f29c0dcb5b68792586f9abff4320d5c383ee441e29b56fad69ff854b7b39ab49dda732539d3b2e7cef3de6b87973c2c0426dfb0556571cc716e7b82e79a165f79470998581cb5ce67a9ca730dab8dc2797df54b01e63a094f64e36dde6f02c907f5fb92157d5e6c2575137e34f2adaf9957720139b90bc76fcde484a83fd9785b259e7338cc6bd1d9795299d7a8cc73b7561b7e0b08e6397bb370fedc5e300ee6650d62466f79a8b8a289f18d57ea8526f65cd9d62c7bee22ef8b5b273eb7eb8eae3831b84667a52ad9733cea99e7c85eb39527d57da8ca734e1ee2366b27e0a2884e136fcf213627a4107367c118981f7327deb2b93ea3b79d6b6d131afbd2f85cc9595036cfe5f1a39b6fd579247517d0e21a9d4bafca734de71c1607e186fd0dace6daaa3ca7a2d7693b632b5b36219426b6dec7cbf1ababfa1488f5fba3584f5e4eec5a2d7e29c20c8d6487b23e18350d7baee437f98e3d27da7bc26bfe4aec0c76f026b5313df34a1e93f9235bc416296725b9d86af61cd77062678487a9980bcf2b99d8f3eabeeb79ead5790ef7ed6f64a9f777c4a12d7a73d6ad3cc72eeebd359eca4809cc75d03f4fe44f4fd91b1f278215eb861ecab973413f965a39d4fc68bda3697cae24e65c9ef36df024d8cfbf9e08bc40dfcab38a2dc9c556e539f12e79e7cae5e607aaf31cc7654a9c43e639ea9752df1afee9e52e8f756ac5d5923cab3d57c498537268e62cd4d18ecafecbfa16b68cf85ce9b547f025688f5a9c5d7a9ef0d8988d6bd671fc43e215b3debeb17fa9c479ccb97b95798ef717ae8f42e89fd3ecf492dff11f7839c2f10369b4cae44c61e4ceedc41bd8b2ca5c72066b8dc6bc7dec9bf1347b44b66276a5a39999b928be6d10e2b90cefb5cc33e3c4389659338e9ea93e66dd01f12d56ee7976ecd89df33d843b37fbd8386665897196c7a9e4417cd0ef218c2b58f172841127232bed30cb21bed9c41cc53bcce59e174260c6e6c3dfd5f10a1e49609d15fbef75a9ef2176325fd3fc20ab4b1e6b7bce7cac8e7dcfe6f3f1ab9527357dd5a32c16f029e1a6ec9a08a9afbbebe662bf8a6fd9be67cf43e79e8b1da7a5c2ba4c2b7e8e202611ab21f9befbbac89b794e185dc1cb6c7be4b3acf96b243c7a55e50af10b5c65e6d8a5f24d62db89cf6d8ad506f116ce0939c46770e7fff29438eb0e4710f2e167b01d5ef781fcd4291e93bdb8091db21bc70070e79bcfc2e74142cfc8df07f2b7ee704cfdf0f7615f7c718b47d4fe0c0506a7f3febab5e2fa73df8cfc6be15ff2154a45d1e89e7dc12e1c10a20af334342e1f54cba1951587e7d6dfe31c51a4545b67932cfcb273d856e77d65d5c4b1e7fecb57f49daf545f4f18ce3cebcc59f3e4b057cc581f4d2c9efb3ecfafdcfffbe575eba613dfadaa58b1c96dcb7812b2c53eba58f3e7e6f265cacf254994fb156b6cffbddf87c01659619bbcc666096bec230b790c29cfcdbd37957b7f1b9a1bf54ee79b605bcc3026ff7b884fc15253ff4c82f83b385ae025b1e77e8a95cac9537dd4cf148f0803019ff75dcedda7bbb52efa407f3d7122eed30f98fa675245cc6949e69ded64e35c1f51a08f6d9d8703a0ff6bf47b08ed7c6e62b2761073b774ccfbf646cca5c22b03ce7e8e5f01c12631db4b92d53f224ea9317b8adb74be06af36360dadb543e3ee4be4b9aa8220a2baf82c249d394c96df3eaf8ad8247c9a6b81006ee008c5bccb75f5053e582b324d6cfe34d6779af1d7a723dc4a66ac00b5b108e7380cc589517c952884bf06123c074311b9a636c4b70fd64a50740d47b84eef53c1db04f738c6276a690cad74bd46c2ce3936685ba7f6f5fcaa323c774ac7bcbf60103117161abd8e047a080153fdcee20f7a26e24edf132a1e04d7c84c83989706537af6e2c91fd3336b094b3bcd55c13d3dc9699a3d23dc3e0a1c93d5d3a2273862643cc240cdeedc127692380fb5ef99274f3d7a54fd78e49537c56a9a6dfebda60798d179fa12a9544eac43774c489ca2f82e312707c1f938d9c63db5a1381487b84d75c53b764af7635baf6020ed39be2f219e8310f746cc85c5e405badb6da103f38bcea0121bb465665d7872aebf4b8c933c0f40ae97cc04854769f513e2da3ac34a3ca34ac09d6431f20a037379457d3ece7599e7668a5d9b023bb28764a3b6d3160889399683b8428d4a14efceb6ea53bab2a5e895fc46a304cf718b5e8c47cc95131ecbf6388ed74e5732a7777906721d89470fe6c8e6d2775da09339418f4e13815562b7a9594bd86522064123aae0b87e78ee07f1a4e04048eb19ebe22d4aeb9d38746622826c84b66f25163ec69c9a9ffbc73d7d8d65ec3931c3c0bf3f62ae8c306371448a79cef8f681ac37f915ea3a3353c35979eb51e7f84539168dc16dc144b2969e1387fb0223e249499ecbff5d0818a4f612fbad49691a0fd9cee335eddae96a13c2560bc51e39da92fb8d188fad8a87cbf15c287a1331972fbc7afabde4288101c173e69a21642bb5d53aeb6c0d11f7b4d2df39c4b1b4e8041f12beee68ec92df729dca919af889ed3042e494acf47b14489ae9b857becd0f2de2448d6830ed3ee6e24bf9a6703bf41fa1f888da7e0afd2e19db0ea17b704a0c3911f6a8b01f794f097b2e2c117321c1167b09fcf536bde3438939e639e38b6ec154fa7fb27deea43f49a5e52a3a5bd25aa367ced8a3b148f2c4a2fcc2465873f42cd14597e4b982fedda74cc83c675a9fcc73b0adbcd912d11fb6e63c5fe4d01508bbe007db78e2ad929e45299e0b49c45c48c4334d474acef69c2b9e33ec7ab6d2adf71c26621c250e427e4ec2b34cd0c156d8808f4b5d708767652469cf15f58fb84dfb32c29e4b7a21ceca3c37947fcb5e6d766c657b33b100c5fb26cb94b3e7421231e717810ecbba9f04786e94c58688a7249ee391b2e3b46fda521ea9f47685e5e5fb6587923c67d973e6ac7969cf9d9a9e72416b23ee97b326077be3497e83af3df2dcbb094cf819682ff394b5a987e746ca9e33c625b6a75ea4b720d0435c90c6e59e9903d3b89df00492f9bf34864ba40ec379cca4ec84da51dfae727c2ec3733c86bfa4ab7d91b5300dfa98fb6caf6d2719dc0deaa988eebda416204764c6b2d7ca9e1be6d97310f855b388b990f00828be09ddc031fb93722685e00e234a4b969a8c9534e8dd5f17bf8e04d2a6532312790f633342c1f113834f84374825d6a9ddafb00d331561c6222f52fbd26a55b2a30ccfc9d8728bfde545dc00b16eec76deec059cb1cd3aa41a138ef08937e996e37e77e25de0b743c70f5b9263a5671c686f3fe621aa0bee894c02bdef7b34aaece9cc8fbd8616dd5995d1a2e313fe052f61bf19712ef1bcac1a5fed118cd8846a127300e156b10c79230d7745cdac48bb51b02e21d62a0d8f464e6e28fa457d1a17fdde35e1f252bc5d847cd01904eafdb6f88e82aeee2b217028475a7a0ff95706443fc3bf688c81bc47c4dccf2c345abef91783ef3fc721622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b7efdcffffcf2ff6d14cd7e</data>
+    </image>
+    <image name="image1">
+        <data format="PNG" length="3625">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade00000df049444154789ced5d5f681cc71dfe6d21c529a69c4b1f24438b14eac0a9b4b0aa52904a83566f91e440a4bed8322ebdb31c1af925919d87da71b89c5f94cba5b8951ecef11904920d8ea4827c4a4145e7a0700ad8d5a918ee0c0e9c835a4e460f6721ccc9e8e5ebc3deeeed9f99ddd9bd9323c737603e4b3b7f7e33fb9b6fbff9edcc8a40445789a86e0800eb0000642a885da0eeed34f085c59a1d34f5a0080090134ba0084091192e2a93c0e8e22a00e0bbee78039f5ff45530b7a91268606c0694af38a6470c1480d03c1a0edc40cfe8ad000065d29d51bda2320914b7cb0d09d1402114ca885d9511fd30aa178c2ee71a8edb405774cd90db2c414ed497599d504e2c352443031dd1310336814061ef19d68a81b19986e336908bdc0bb9cd1202633e187322054a009458022580de39355a30932f562586403d75715c00e389ab080d876cff62f11800a0582c3e3f9204406a3e55d7095dde2e23168f21341c4267b782d070c87ffd7b601f0bebc3b01507c3361c53a68067c2b8d8069007821d32721d05043b64fd1febe7f391e873c1ece72351ddfebad9bb08db78bc736ed4d744de13fb18689f79bbf0ccb02229f4c5aa2f8debc77143c321d38d50fa7b319eb80a00989a9e02e280d2df6bcab39a5dddff8cabd95f2f8780d961831d72cd4c5b57fb3868fb8552f6a84137dd1d569eced4a47195c925718782996171873f80780060b7f24873a8170f50fb8d702b5f43fd28fab00f4067b7627b0261dd65bc9e817d6ef9a5ab441426a224118501481fcd12d120118961e8b52c25df68275e0aff334bd7eeb60bd7c7c3a9b71ed2d0af5f9192467b1998cdaee2c4e9537afb8ad24313b1b86b391302183c3e44f7bfb9cfec93a2f4d0d9e1116a7df515a9ab5bc1d6932d0a1c0cd0caed3425254932d6975ecee0c2c50bb4f5648b824782d47be3baa4d999bcd14e6b777b68ebc996a9fee091207576c874f6bdb3e6fae240db0d75acc73f1da79ed77f274d24ae62e2b309bd6c5353333d7ab4414444f977b3941c32dba3a166372be5ef66d57601f41cedd3eb33a6c0c100ad2869da18dea0e6c3872551fb0207037a7f75fb004c5c49d2ecad395b5b4d4dcd943eba403bc776e8e51fff484a1299679e9f375c4ec9ab86757b8326b48701768da6f4f702ebc0d2724668c66b653bbb15b52315a67de7dca8ce489ddd0ab00d14bb4b261962adafd45fb65d8fc56376fb1681d070c8549f551b9a18b154f93d43936aff3f1f89f2c76b97adf97107eadac4d09ed2df0b00aa84aa8c8396bfd45faecd3e0be397facbeaefd7818163c7cde35d617a9d69c3f3abb8b6e683119bd284d33dcc191b26a26b1e99db09a31707a9596233879529db5ee3b33f913ae383475aa9a7bb87868e0f99190d40762d4bededbfb131745b870cad8efcdd2c4d5c4992914996e617aacc63b1237f374b0bb716e8dc471fe8368c0c876968e884b99d69a0edafe672494992e286b647864768e4ed5352783884afd7d64c7d0b1e0952e8d871ea7bb35f9a9e9ec2ca7f86e8e956988888da3bba68e47458edafa59d81a303d4fae107eee3c0e8972ffb8ef651f87498b4eb8ad243edb1b8e9fe5e884431776b8e88883a6599ba3ebb26a91a62b7b6786c8ea76b37ebc7b49ea309801ad69a138b22e8ccc0a86f35bb0aec9a176fb98e029085ce1436862175356d6524a5c2bcb98e82ba68e1d99faf3294b69a67dabb68d1f0967eb0faabb58b2cecfd71185764a18f83b13e6d11ebd53e3c30b73f70ecb889d1b10cdbfd030095697d685923cabf18a4ec7162a64fbe7e48e7fed5eaabde5ab4ad15378a4534373753faab15eab9df45835fda35ab51cb8dbc7f96d6ee666d7a9395ff713c866b37ae1311e9daf6e1370f69e874582f1fbb18a5be37fb252b535b35b0510b9f79ef8c5e67f8cbdb424c36faef351b536dfcefa17efd40e0104d7cfc89de4f16631a19d5cb3878b64fe089684c8183015a9a5f503d5e4ed4ce884e29b6523fc62d3830a2574ccda74c8c319eb80a23c375762baa8eaeac66a7a6a7980c83a29931989abad22eabbc5b14442b2fa219bdf47f35bbcaec8f9521354d6b1c0716437bb5cfdabe68bcfc071bdb65ac3d22a2cf2b8ce61367efdb57985a3adb4934431b4407fcd7afe12b7f9fa53000374d9bcdaec22d5fdfd13efa030dea76ee3c794c6d27dbf559bd723b4dc91f4a121d96a4a42449434327a4334d67f4fced723b2589880e4bd2c0d1012222537ddacfe9a30b7abb71f9927e2d79e33af7c930787ca85afe35b5bcb1fe89cf93ea5ae4f3b0a93d2f4fa076b9dd64afd69f3080b6bfa8e370ea6098d2b716282919c6a1629b6e8f4cbeecb3b67fe9e205ee9367a35884f633017560c0899423d3eaa9f2c6acd6f6a6ee39682fd8e3b45ac05b6b7f69396362544d7362d941e3c1bc6a665d6769662dcae0649f29fe09c6aab958653257cdc81b1706f234adf109d4d9ad9819d8629f674d6bb563bd7a5d8bd6e8f66d032855d70c7af420e4376aa0e14f1708eff491d7245d49133deaf1d5eee8c5410a7266e4ce761927de3ec58db1b252f048903e895ca2d623ad648dcf363535d3d3273b4c4d67d38011a0ed9659a369dacefa24e0c53f8da9a9a999929f8e53ebabaa864f1a62ab2ccdd8d4d44c43a92fdca32bc4d694464ddfa598e3c722e330dddf0bad4f2cfb346d6eb5c3b826e0a5e09120cd5e9f5619bfe4f50d9801b5cd307ed3683ae7f30d9903d352951162f118787142cc81ada15061e64adc148b2ac362b7b2aa2da99b70b00b338312e97b1eb472b178ccd1ced47cca94df54ce6a97965fb347bb8e6ab9a5e58cf73756a8f687f97b835de72351b5df5998c641d43ec7378f8cf642c321200f358a60c84f9e7771456640f1eaaead5a53a650024d786b3f30b6ff37b73470ef90bc325d1970ddcde5396d03855d8fd10a878e69272d461701a55c3d4cd93815fcfd4071a61d13dbcd556b12b5c7a9632d97d9e5e444ed0c5dae4c88cc7a0900a73ec3f5cc7aa9ae13a5cc99785a7bd1e51ca2a89c92ae437be3770a08a1b26909406ed3dc9fd483229449f5ba8651f83ff397db2c210a737d0396fac49856343a50a7542bd3fa2d278285923d3e6d75585e1cbb260742756f889c804d4bb3fa9b59474dfd1dbf63af375010eb2fe52b4f380ffd1bb8c9df0d681c3f77a67d460c6b4db530addf72428f264b7dd6c3980337335cbb954980c794228cc7ed0767bca2a8adbf514ebd46072aefaa0b63de780b9df903d07239c51d376b7957a6dd8b94db5435ec4c5ec071f719d3ba31a8e2128d914b95bd1a5edb07bf1f997536d346977db463c0e8b20706077f97a0e39e1187722d97d94777c8c9c3e5e9bd7059834356ce94c550d12c96d40b8e5d2edaf4bb645a91ef4204c6bc6bdde872ce33d3721dc5eb4411ad17ce5f1a6ab95cd5dca38babe0ad3d28e2fc25227e9cb6006e94a0770ea0922a1d280fd0a40fa7dd64b43b993167da0668dd9e6fe026f62dd37a897b3bbed9e33910a31fe0326d6ddf91882eb3e3e870d1ca3c8616c140c1bd7edb0cd6d0fae260349d03c5f933cfb3d3f266a44543f7ced9cf96591de579635a2386e6c5162b7e98f659685a1e66d6bd9fe69613629adf71b5ab3bd844ca7186b86953a6d396f8f5d9da17d15456c7da279a562e0129e31933a88e6edcbf3c7053e04405f8fdd8179a96815e4e75b714211c47e73293c9615d66889fc4655ae3cc9bb6e70b8cb93bde7e625a1e739477810154f3b9adb2471757f9fd00ffbed4d4df5aebe59467216fd1c5665a221ab8699f510040716786a5c88cd0695ca6d3ba30ad48bc6e3f32ad51d30a9d2286bd3eebae3056bcd4c468fb4cd36a767b3d7328fa49acda4f2eb4ac104e7691d7e4779757e64f8fa9ebe73f713cb9702a02f0ca17dfdda1e6caa94e2f271f3494223330d61755f274e1f55feaf5f54c2ee1f6b76abf9496411afaa3d899b6431fcfd2d653f171b8faa1f98401ebfe099fa9e3e07d007146bdb838c8ddf7bab30bbcfc12915f7f0a1c98a5c7eff3eb379dc66d29fa67be67c5b4caa4c00c2772665a81995c2f4d2b6aaf1f663296cf71cee2796a9f812d97d94f5aae865d079cfc484ea8f73eba9c035079a1c0e95fa90cdb2e3a33d312d1f4bd024efcc3fb59aede5f6569e12df1733e5af233139d66b828d312cd52e8e22085fffb98ba7e7648a8be3d675aaa3266fb9534ad093c814c4c4b44ad9753f876abcf96cf6a9f28f24e6787e42c25dfb49fce3dfbaf2cc5bf66efcb969b0669fc0df61372e24e01176eb7d2d6537bb9c08141baa43ca491df9acf049a3c58995cf21e5f2bf9a0591fdf4350cae20ce9e789e134e35386930575d7b40c0ccdbb8f8f17a656b438bacbea5cdb1dc76340a6e674614c91271bb601d9e1c9abd96f635a276d24c2805e92d7ef21040e0c52fecfe25ad48d69fda0c66c6e4c6b6428cf4c6b40b7279f9569b5fbd7fab7056231ae864a4b9a0e9dec21f9ab3cd1efdb88beca53fa611b6d3d756678a5254de9933dfa93696717f8e0252296e615d5a6565c01c0f30b637daeab59111c4de73c11ad5054c2809ede1c51253c5427a6b5aec28d9a95c92486f11b5df466374b23b218484e3833f8d43dc0ba1bcd2f02fcbd067c66ace1c3d80e4f0ccd1e66c1906690e89b9d31f5048248f2faf544d1374656b4ee7bf58bbc8175bb5ed7bf2161b5cb43b9a97b05d3fe54de5e1339a15e1fb899a9eec77570bca97b05289315078b54f7bdd6651f2f80f13b057d3fad16c75526d571e56a1b278dc1c44df5db5d4ec9ebf70ffc6ac2067ebfd191a9fcfcad05de6147799abfcf948542af361bf842a27b46d44f1b8aa25f49d0c01703c532a2aa5dbc32af170c8ca91a6c3f0c4c03f72f8a17a888f9bd6258c5e10d48031b6844cf0532eb25c733415eb1a6f048035f48f45f01d438a49f3d0bda36b406b336d00fd6a7a24a3c105057fd5a7c4dc30154374934fe066e036bc5ff03859b69b81278b6550000000049454e44ae426082</data>
+    </image>
+</images>
+<connections>
+    <connection>
+        <sender>Menu</sender>
+        <signal>clicked(QListBoxItem*)</signal>
+        <receiver>Tab_Signalisations</receiver>
+        <slot>setFocus()</slot>
+    </connection>
+    <connection>
+        <sender>buttonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>reject()</slot>
+    </connection>
+    <connection>
+        <sender>Menu</sender>
+        <signal>clicked(QListBoxItem*)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>changeTabSlot()</slot>
+    </connection>
+    <connection>
+        <sender>buttonSave</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>saveSlot()</slot>
+    </connection>
+    <connection>
+        <sender>stunButtonGroup</sender>
+        <signal>clicked(int)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>useStunSlot(int)</slot>
+    </connection>
+    <connection>
+        <sender>buttonApplySkin</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>applySkinSlot()</slot>
+    </connection>
+    <connection>
+        <sender>DriverChoice</sender>
+        <signal>clicked(int)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>driverSlot(int)</slot>
+    </connection>
+    <connection>
+        <sender>buttonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>accept()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>fullName</tabstop>
+    <tabstop>userPart</tabstop>
+    <tabstop>username</tabstop>
+    <tabstop>password</tabstop>
+    <tabstop>hostPart</tabstop>
+    <tabstop>sipproxy</tabstop>
+    <tabstop>autoregister</tabstop>
+    <tabstop>Register</tabstop>
+    <tabstop>buttonSave</tabstop>
+    <tabstop>buttonOk</tabstop>
+    <tabstop>buttonCancel</tabstop>
+    <tabstop>Tab_Signalisations</tabstop>
+    <tabstop>buttonHelp</tabstop>
+    <tabstop>SkinChoice</tabstop>
+    <tabstop>zoneToneChoice</tabstop>
+    <tabstop>confirmationToQuit</tabstop>
+    <tabstop>checkedTray</tabstop>
+    <tabstop>voicemailNumber</tabstop>
+    <tabstop>useStunYes</tabstop>
+    <tabstop>STUNserver</tabstop>
+    <tabstop>playTones</tabstop>
+    <tabstop>pulseLength</tabstop>
+    <tabstop>sendDTMFas</tabstop>
+    <tabstop>Menu</tabstop>
+    <tabstop>Tab_Audio</tabstop>
+    <tabstop>codec1</tabstop>
+    <tabstop>codec2</tabstop>
+    <tabstop>codec3</tabstop>
+    <tabstop>Tab_Preferences</tabstop>
+    <tabstop>Tab_About</tabstop>
+    <tabstop>useStunNo</tabstop>
+    <tabstop>ringsChoice</tabstop>
+    <tabstop>buttonApplySkin</tabstop>
+</tabstops>
+<includes>
+    <include location="local" impldecl="in implementation">configurationpanel.ui.h</include>
+</includes>
+<slots>
+    <slot>saveSlot()</slot>
+    <slot>changeTabSlot()</slot>
+    <slot>useStunSlot( int id )</slot>
+    <slot>applySkinSlot()</slot>
+    <slot>driverSlot( int id )</slot>
+</slots>
+<functions>
+    <function access="private" specifier="non virtual">init()</function>
+</functions>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/src/gui/official/configurationpanel.ui.h b/src/gui/official/configurationpanel.ui.h
new file mode 100644
index 0000000000000000000000000000000000000000..15bf76339dc288d94cd7f646b1f0f237052970fc
--- /dev/null
+++ b/src/gui/official/configurationpanel.ui.h
@@ -0,0 +1,246 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you want to add, delete, or rename functions or slots, use
+** Qt Designer to update this file, preserving your code.
+**
+** You should not define a constructor or destructor in this file.
+** Instead, write your code in functions called init() and destroy().
+** These will automatically be called by the form's constructor and
+** destructor.
+*****************************************************************************/
+#include <qdir.h>
+#include <qstringlist.h>
+
+#include "../../configuration.h"
+#include "../../global.h"
+#include "../../manager.h"
+#include "../../skin.h"
+#include "../../user_cfg.h"
+#include "../../audio/audiolayer.h"
+#include "qjlistboxpixmap.h"
+#include "qmessagebox.h"
+#include "qtGUImainwindow.h"
+
+void ConfigurationPanel::init()
+{
+    // For reading settings at application startup
+     // List skin choice from "skins" directory
+   QDir dir(Skin::getPath(QString(SKINDIR)));
+   if ( !dir.exists() ) {
+        _debug("\nCannot find 'skins' directory\n");
+		return;
+    } else {
+    dir.setFilter( QDir::Dirs | QDir::NoSymLinks);
+    dir.setSorting( QDir::Name );
+  
+    QStringList list;
+    list = dir.entryList();
+    for (unsigned int i = 0; i < dir.count(); i++) {
+     if (list[i] != "." && list[i] != ".." && list[i] != "CVS") {
+    SkinChoice->insertItem(list[i]);
+     }
+    } 
+ }
+   
+   // List ring choice from "rings" directory
+   QDir ringdir(Skin::getPath(QString(RINGDIR)));
+   if ( !ringdir.exists() ) {
+        _debug ("\nCannot find 'rings' directory\n");
+		return;
+    } else {
+    ringdir.setFilter( QDir::Files | QDir::NoSymLinks);
+    ringdir.setSorting( QDir::Name );
+  
+    QStringList ringlist;
+    ringlist = ringdir.entryList();
+    for (unsigned int i = 0; i < ringdir.count(); i++) {
+     if (ringlist[i] != "." && ringlist[i] != ".." && ringlist[i] != "CVS") {
+    ringsChoice->insertItem(ringlist[i]);
+     }
+    } 
+ }
+    // List audio devices 
+    const char* devicename ; 
+    const char* hostapiname;
+ 
+    int top = 0;
+    AudioDevice devStruct;
+   
+	portaudio::AutoSystem autoSys;
+	// For each device
+    for (int i = 0; i < Manager::instance().deviceCount(); i++) {
+		// Fill the device structure
+    	devStruct = Manager::instance().deviceList(i);
+   		hostapiname = devStruct.hostApiName;
+        devicename = devStruct.deviceName;
+ 
+     	QString hostNameApi(hostapiname) ;
+        QString name = hostNameApi + " (device #" + QString::number(i) + ")";
+
+		// New radio button with found device name
+     	QRadioButton* device = new QRadioButton(DriverChoice);   
+     	device->setGeometry( QRect( 10, 30 + top, 390, 21 ) );
+    
+		// Set label of radio button
+     	device->setText(devicename);
+		
+		// Add tooltip for each one
+ 		QToolTip::add(device , name );
+     
+        top += 30;
+   		if (Manager::instance().defaultDevice(i)) {
+         	device->setChecked(true);   
+        }
+    }
+	// Set position of the button group, with appropriate length
+ 	DriverChoice->setGeometry( QRect( 10, 10, 410, top + 30 ) );
+    
+  // For signalisations tab
+   fullName->setText(QString(get_config_fields_str(SIGNALISATION, FULL_NAME)));
+   userPart->setText(QString(get_config_fields_str(SIGNALISATION, USER_PART)));
+   username->setText(QString(get_config_fields_str(SIGNALISATION, AUTH_USER_NAME)));
+   password->setText(QString(get_config_fields_str(SIGNALISATION, PASSWORD)));
+   hostPart->setText(QString(get_config_fields_str(SIGNALISATION, HOST_PART)));
+   sipproxy->setText(QString(get_config_fields_str(SIGNALISATION, PROXY)));
+   autoregister->setChecked(get_config_fields_int(SIGNALISATION, AUTO_REGISTER));
+   playTones->setChecked(get_config_fields_int(SIGNALISATION, PLAY_TONES));
+   pulseLength->setValue(get_config_fields_int(SIGNALISATION, PULSE_LENGTH));
+   sendDTMFas->setCurrentItem(get_config_fields_int(SIGNALISATION, SEND_DTMF_AS));
+   STUNserver->setText(QString(get_config_fields_str(SIGNALISATION, STUN_SERVER)));
+((QRadioButton*)stunButtonGroup->find(get_config_fields_int(SIGNALISATION, USE_STUN)))->setChecked(true);
+   // For audio tab
+  
+((QRadioButton*)DriverChoice->find(get_config_fields_int(AUDIO, DRIVER_NAME)))->setChecked(true);
+
+   codec1->setCurrentText(QString(get_config_fields_str(AUDIO, CODEC1)));
+   codec2->setCurrentText(QString(get_config_fields_str(AUDIO, CODEC2)));
+   codec3->setCurrentText(QString(get_config_fields_str(AUDIO, CODEC3)));
+
+   ringsChoice->setCurrentText(QString(get_config_fields_str(AUDIO, RING_CHOICE)));
+   
+   // For preferences tab
+   SkinChoice->setCurrentText(QString(get_config_fields_str(
+               PREFERENCES, SKIN_CHOICE)));
+   confirmationToQuit->setChecked(get_config_fields_int(
+               PREFERENCES, CONFIRM_QUIT));
+     zoneToneChoice->setCurrentText(QString(get_config_fields_str(
+             PREFERENCES, ZONE_TONE)));
+     checkedTray->setChecked(get_config_fields_int(
+               PREFERENCES, CHECKED_TRAY));
+  voicemailNumber->setText(QString(get_config_fields_str(
+               PREFERENCES, VOICEMAIL_NUM)));
+  
+   //  Init tab view order
+    Tab_Signalisations->show();
+    Tab_Audio->hide();
+    Tab_Preferences->hide();
+    Tab_About->hide();
+
+    // Set items for QListBox
+    new QjListBoxPixmap (QjListBoxPixmap::Above, 
+ QPixmap(Skin::getPathPixmap(QString(PIXDIR),QString(PIXMAP_SIGNALISATIONS))),  "Signalisation", Menu );
+    new QjListBoxPixmap (QjListBoxPixmap::Above, 
+ QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_AUDIO))) ,
+ "Audio", Menu );
+    
+    new QjListBoxPixmap (QjListBoxPixmap::Above, 
+ QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_PREFERENCES))),
+ "Preferences", Menu );
+    new QjListBoxPixmap (QjListBoxPixmap::Above, 
+ QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_ABOUT))),
+ "About", Menu );
+}
+
+// For saving settings at application 'save'
+void ConfigurationPanel::saveSlot()
+{ 
+   Config::set("VoIPLink", "SIP.fullName", string(fullName->text().ascii()));
+   Config::set("VoIPLink", "SIP.userPart", string(userPart->text().ascii()));
+   Config::set("VoIPLink", "SIP.username", string(username->text().ascii()));
+   Config::set("VoIPLink", "SIP.password", string(password->text().ascii()));
+   Config::set("VoIPLink", "SIP.hostPart", string(hostPart->text().ascii()));
+   Config::set("VoIPLink", "SIP.proxy", string(sipproxy->text().ascii()));
+   Config::set("VoIPLink", "SIP.autoregister",autoregister->isChecked());
+   Config::set("VoIPLink", "DTMF.pulseLength",  pulseLength->value());
+   Config::set("VoIPLink", "DTMF.playTones",  playTones->isChecked());
+   Config::set("VoIPLink", "DTMF.sendDTMFas" , sendDTMFas->currentItem());
+   Config::set("VoIPLink", "STUN.STUNserver", string(STUNserver->text().ascii()));
+ 
+   Config::set("Audio", "Codecs.codec1", string(codec1->currentText().ascii()));
+   Config::set("Audio", "Codecs.codec2", string(codec2->currentText().ascii()));
+   Config::set("Audio", "Codecs.codec3", string(codec3->currentText().ascii()));
+
+   if (ringsChoice->currentText() != NULL)
+     Config::set("Audio", "Rings.ringChoice", 
+         string(ringsChoice->currentText().ascii()));
+   
+   Config::set("Preferences", "Themes.skinChoice", 
+     string(SkinChoice->currentText().ascii()));
+   Config::set("Preferences", "Options.zoneToneChoice", 
+     string(zoneToneChoice->currentText().ascii()));
+   Config::set("Preferences", "Options.confirmQuit", 
+     confirmationToQuit->isChecked());
+   Config::set("Preferences", "Options.checkedTray", checkedTray->isChecked());
+
+   Config::set("Preferences", "Options.voicemailNumber", 
+     string(voicemailNumber->text().ascii()));   
+#if 0 
+   QMessageBox::information(this, "Save settings",
+   "You must restart SFLPhone",
+    QMessageBox::Yes);
+#endif
+}
+
+// Handle tab view  according to current item of listbox
+void ConfigurationPanel::changeTabSlot()
+{
+    switch (Menu->currentItem()) {
+    case 0:
+ TitleTab->setText("Setup signalisation");
+ Tab_Signalisations->show();
+              Tab_Audio->hide();
+              Tab_Preferences->hide();
+ Tab_About->hide();
+              break;
+    case 1:
+ TitleTab->setText("Setup audio");
+ Tab_Signalisations->hide();
+              Tab_Audio->show();
+ Tab_Preferences->hide();
+              Tab_About->hide();
+              break;
+   case 2:
+       TitleTab->setText("Setup preferences");
+              Tab_Signalisations->hide();
+              Tab_Audio->hide();
+ Tab_Preferences->show();
+              Tab_About->hide();
+              break;
+   case 3:
+       TitleTab->setText("About");
+              Tab_Signalisations->hide();
+              Tab_Audio->hide();
+ Tab_Preferences->hide();
+              Tab_About->show();
+              break;
+    }
+}
+
+
+void ConfigurationPanel::useStunSlot(int id)
+{
+    Config::set("VoIPLink", "STUN.useStun", id);
+}
+
+
+void ConfigurationPanel::applySkinSlot()
+{
+ Config::set("Preferences", "Themes.skinChoice", string(SkinChoice->currentText().ascii()));
+}
+
+
+void ConfigurationPanel::driverSlot(int id)
+{
+Config::set("Audio", "Drivers.driverName", id);
+}
diff --git a/src/gui/official/configurationpanelui.h b/src/gui/official/configurationpanelui.h
new file mode 100644
index 0000000000000000000000000000000000000000..701dddf0aa5929ce900c960e8e15d8d7e0b28015
--- /dev/null
+++ b/src/gui/official/configurationpanelui.h
@@ -0,0 +1,163 @@
+/****************************************************************************
+** Form interface generated from reading ui file 'configurationpanel.ui'
+**
+** Created: Wed Jul 6 11:32:13 2005
+**      by: The User Interface Compiler ($Id$)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef CONFIGURATIONPANEL_H
+#define CONFIGURATIONPANEL_H
+
+#include <qvariant.h>
+#include <qpixmap.h>
+#include <qdialog.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class QFrame;
+class QPushButton;
+class QListBox;
+class QListBoxItem;
+class QLabel;
+class QTabWidget;
+class QWidget;
+class QGroupBox;
+class QLineEdit;
+class QCheckBox;
+class QButtonGroup;
+class QRadioButton;
+class QSpinBox;
+class QComboBox;
+
+class ConfigurationPanel : public QDialog
+{
+    Q_OBJECT
+
+public:
+    ConfigurationPanel( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~ConfigurationPanel();
+
+    QFrame* line1;
+    QPushButton* buttonHelp;
+    QPushButton* buttonSave;
+    QPushButton* buttonOk;
+    QPushButton* buttonCancel;
+    QListBox* Menu;
+    QLabel* TitleTab;
+    QFrame* line2;
+    QTabWidget* Tab_Signalisations;
+    QWidget* SIPPage;
+    QGroupBox* groupBox1;
+    QLabel* textLabel2;
+    QLineEdit* fullName;
+    QLineEdit* userPart;
+    QLabel* textLabel3;
+    QLabel* textLabel2_3;
+    QLineEdit* username;
+    QLineEdit* hostPart;
+    QLineEdit* sipproxy;
+    QLabel* textLabel3_2_2;
+    QLineEdit* password;
+    QLabel* textLabel1_3;
+    QLabel* textLabel3_2;
+    QCheckBox* autoregister;
+    QPushButton* Register;
+    QWidget* STUNPage;
+    QGroupBox* groupBox3;
+    QLabel* textLabel1_5;
+    QLineEdit* STUNserver;
+    QButtonGroup* stunButtonGroup;
+    QRadioButton* useStunNo;
+    QRadioButton* useStunYes;
+    QWidget* DTMFPage;
+    QGroupBox* SettingsDTMF;
+    QCheckBox* playTones;
+    QLabel* labelPulseLength;
+    QSpinBox* pulseLength;
+    QLabel* labelSendDTMF;
+    QComboBox* sendDTMFas;
+    QTabWidget* Tab_Audio;
+    QWidget* DriversPage;
+    QButtonGroup* DriverChoice;
+    QWidget* CodecsPage;
+    QButtonGroup* CodecsChoice;
+    QComboBox* codec1;
+    QComboBox* codec2;
+    QComboBox* codec3;
+    QLabel* textLabel1_4;
+    QLabel* textLabel1_4_2;
+    QLabel* textLabel1_4_3;
+    QWidget* RingPage;
+    QComboBox* ringsChoice;
+    QTabWidget* Tab_Preferences;
+    QWidget* DriversPage_2;
+    QComboBox* SkinChoice;
+    QPushButton* buttonApplySkin;
+    QWidget* TabPage;
+    QLabel* labelToneZone;
+    QComboBox* zoneToneChoice;
+    QCheckBox* confirmationToQuit;
+    QCheckBox* checkedTray;
+    QLabel* textLabel1_6;
+    QLineEdit* voicemailNumber;
+    QTabWidget* Tab_About;
+    QWidget* DriversPage_3;
+    QLabel* pixmapLabel1;
+    QLabel* textLabel2_2;
+    QWidget* CodecsPage_2;
+    QLabel* textLabel1;
+    QLabel* pixmapLabel2;
+
+public slots:
+    virtual void saveSlot();
+    virtual void changeTabSlot();
+    virtual void useStunSlot( int id );
+    virtual void applySkinSlot();
+    virtual void driverSlot( int id );
+
+protected:
+    QGridLayout* ConfigurationPanelLayout;
+    QVBoxLayout* layout19;
+    QHBoxLayout* layout28;
+    QSpacerItem* Horizontal_Spacing2;
+    QVBoxLayout* layout17;
+    QVBoxLayout* layout24;
+    QGridLayout* groupBox1Layout;
+    QVBoxLayout* layout23;
+    QSpacerItem* spacer9;
+    QHBoxLayout* layout19_2;
+    QSpacerItem* spacer7;
+    QVBoxLayout* stunButtonGroupLayout;
+    QGridLayout* SettingsDTMFLayout;
+    QVBoxLayout* layout11;
+    QHBoxLayout* layout10;
+    QSpacerItem* spacer6;
+    QHBoxLayout* layout7;
+    QSpacerItem* spacer3;
+    QHBoxLayout* layout8;
+    QSpacerItem* spacer4;
+    QGridLayout* layout18;
+    QVBoxLayout* layout17_2;
+    QVBoxLayout* layout18_2;
+    QVBoxLayout* layout17_3;
+    QHBoxLayout* layout16;
+    QSpacerItem* spacer5;
+    QHBoxLayout* layout16_2;
+    QSpacerItem* spacer6_2;
+
+protected slots:
+    virtual void languageChange();
+
+private:
+    QPixmap image0;
+    QPixmap image1;
+
+    void init();
+
+};
+
+#endif // CONFIGURATIONPANEL_H
diff --git a/src/gui/official/jpushbutton.cpp b/src/gui/official/jpushbutton.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4259b5acc695e27c99b33794c56b1891ac0a8d18
--- /dev/null
+++ b/src/gui/official/jpushbutton.cpp
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ * Author: Jerome Oufella (jerome.oufella@savoirfairelinux.com)
+ *
+ * Portions (c) Valentin Heinitz
+ *
+ * This 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,
+ * or (at your option) any later version.
+ *
+ * This 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 dpkg; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <qcursor.h>
+#include <qwidget.h>
+#include <qlabel.h>
+#include <qimage.h>
+#include <qbitmap.h>
+#include <qevent.h>
+
+#include "jpushbutton.h"
+#include "../../skin.h"
+#include "qtGUImainwindow.h"
+
+// This is the default constructor, it must be called with pixname being
+// the base name for the picture used as button pixmap.
+JPushButton::JPushButton (QWidget* parent, const char* name,
+	const char* pixname) : QLabel (parent, name) {
+
+	guiWidget = (QtGUIMainWindow*)parent;
+
+	// Load pictures
+	this->loadPixmaps(pixname);
+
+	// Create transparency bitmasks
+	QImage tmpImg[2];
+	MyCreateHeuristicMask (*(this->btnImg[0]), tmpImg[0]);
+	mask[0] = tmpImg[0];
+
+	MyCreateHeuristicMask (*(this->btnImg[1]), tmpImg[1]);
+	mask[1] = tmpImg[1];
+
+	// Resize ourself
+	resize (this->btnImg[0]->width(), this->btnImg[0]->height() );
+	
+	// Set default pixmap (released)
+	setMask (mask[0]);
+	setPixmap (*(this->btnImg[0]));
+
+	// Default cursor is pointing hand
+	setCursor (QCursor (Qt::PointingHandCursor));
+
+	setFocusPolicy(QWidget::NoFocus);
+	show();
+}
+
+// Delete allocated items
+JPushButton::~JPushButton (void) {
+	delete this->btnImg[0];
+	delete this->btnImg[1];
+}
+
+// This loads the pixmaps used for pressed/released state.
+void
+JPushButton::loadPixmaps (const char* pixname) {
+	QString pressedPixmapPath, releasedPixmapPath;
+	
+	pressedPixmapPath = Skin::getPath(QString(SKINDIR),
+									guiWidget->setPathSkin(),
+									QString(pixname) + PRESS_PREFIX + ".png");
+	releasedPixmapPath = Skin::getPath(QString(SKINDIR),
+									guiWidget->setPathSkin(),
+									QString(pixname) + REL_PREFIX + ".png");
+
+	this->btnImg[0] = new QImage (releasedPixmapPath);
+	this->btnImg[1] = new QImage (pressedPixmapPath);
+}
+
+// This function was derived from QImage::createHeuristicMask()
+// It creates the heuristic mask that will allow transparency.
+int
+JPushButton::MyCreateHeuristicMask (const  QImage & img_XX, QImage &m,
+		long transp_col) {
+	if (img_XX.isNull()) {
+		return -1;
+	}
+
+	QImage img = img_XX.convertDepth(32);
+
+	int w = img.width();
+	int h = img.height();
+	m = QImage(w, h, 1, 2, QImage::LittleEndian);
+	m.setColor( 0, 0xffffff );
+	m.setColor( 1, 0 );
+	m.fill( 0xff );
+	QRgb bg;
+	// User defined transp. color not set. get it from pixel at 0x0
+	if (transp_col == -1) {
+		// Pixel im Punkt 0x0
+		bg = *((QRgb*)img.scanLine(0)+0) & 0x00ffffff ;
+	}
+
+	// Use user defined color for transparency
+	else {
+		bg = transp_col & 0x00ffffff;
+	}
+
+
+	QRgb *p;
+	QRgb p24;
+	uchar * mp;
+	int x,y;
+	for (y = 0; y < h; y++) {
+		for (x = 0; x < w; x++) {
+			p = (QRgb *) img.scanLine(y) + x ;
+
+			p24 = (*p & 0x00ffffff );
+			if (p24 == bg) {
+				mp = m.scanLine(y);
+
+				*(mp + (x >> 3)) &= ~(1 << (x & 7));
+			}
+			p++;
+		}
+	}
+	return 0;
+}
+
+// This slot is toggled when the button is pressed
+// It changes the picture.
+void
+JPushButton::iAmPressed (void) {
+	setPixmap (*(this->btnImg[1]));
+	setMask (mask[1]);
+}
+
+// This slot is toggled when the button is released
+// It changes the picture.
+void
+JPushButton::iAmReleased (void) {
+	setPixmap (*(this->btnImg[0]));
+	setMask (mask[0]);
+}
+
+// Mouse button released
+void 
+JPushButton::mousePressEvent (QMouseEvent *e) {
+	switch (e->button()) {
+	case Qt::LeftButton:
+		iAmPressed();
+		break;
+
+	default:
+		e->ignore();
+		break;
+	}
+}
+
+// Mouse button released
+void 
+JPushButton::mouseReleaseEvent (QMouseEvent *e) {
+	switch (e->button()) {
+	case Qt::LeftButton:
+		iAmReleased();
+		// Emulate the left mouse click
+		if (this->rect().contains(e->pos())) {
+			emit clicked();
+		}
+		break;
+
+	default:
+		e->ignore();
+		break;
+	}
+}
+
+void 
+JPushButton::mouseMoveEvent (QMouseEvent *e) {
+	e->accept();
+}
+
diff --git a/src/gui/official/jpushbutton.h b/src/gui/official/jpushbutton.h
new file mode 100644
index 0000000000000000000000000000000000000000..0ef7ac7fa964f31c55fa3c65ad62f576d01f35b2
--- /dev/null
+++ b/src/gui/official/jpushbutton.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ * Author: Jerome Oufella (jerome.oufella@savoirfairelinux.com)
+ *
+ * Portions (c) Valentin Heinitz
+ *
+ * This 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,
+ * or (at your option) any later version.
+ *
+ * This 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 dpkg; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __J_PUSH_BUTTON_H__
+#define __J_PUSH_BUTTON_H__
+
+#include <qbitmap.h>
+#include <qevent.h>
+#include <qimage.h>
+#include <qobject.h>
+#include <qlabel.h>
+#include <qwidget.h>
+#include <qstring.h>
+
+#define	PRESS_PREFIX	"_on"
+#define REL_PREFIX		"_off"
+
+class QtGUIMainWindow;
+
+class JPushButton : public QLabel {
+Q_OBJECT
+
+public:
+	JPushButton (QWidget*, const char*, const char*);
+	~JPushButton (void);
+
+private:
+	QtGUIMainWindow*	guiWidget;
+	
+	void iAmPressed (void);
+	void iAmReleased (void);
+	QImage*		btnImg[2];
+	QBitmap		mask[2];
+	void		loadPixmaps (const char*);
+
+	// This function was derived from QImage::createHeuristicMask()
+	int MyCreateHeuristicMask (const  QImage &, QImage &, long = -1 );
+
+
+protected:
+	void		mousePressEvent		(QMouseEvent *);
+	void		mouseReleaseEvent	(QMouseEvent *);
+	void		mouseMoveEvent		(QMouseEvent *);
+
+signals:
+	void		clicked				(void);
+};
+
+#endif	// defined(__J_PUSH_BUTTON_H__)
diff --git a/src/gui/official/main.cpp b/src/gui/official/main.cpp
index 48af641a24f307790e80b1853eebe34774195ab8..7ce48fb77222f0c6e38e886399817dde30a851bb 100644
--- a/src/gui/official/main.cpp
+++ b/src/gui/official/main.cpp
@@ -20,13 +20,16 @@
 
 #include <iostream>
 #include <stdexcept>
-#include <unistd.h>
+#include <string>
 
 #include "session.h"
 
 int main(int, char **)
 {
   try {
+    while(std::cin.good()) {
+      std::string line;
+      std::getline(&std::cin, line);
     Session session;
     Account account = session.getAccount("patate");
     account.registerAccount();
diff --git a/src/gui/official/mydisplay.cpp b/src/gui/official/mydisplay.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..107a112f7cb1d163f37fb2f36ba8b3794073f7cf
--- /dev/null
+++ b/src/gui/official/mydisplay.cpp
@@ -0,0 +1,497 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <qapplication.h>
+#include <qdatetime.h>
+#include <qfont.h>
+#include <qpainter.h>
+#include <qstring.h>
+#include <stdio.h>
+#include <math.h>
+
+#include "../../skin.h"
+#include "mydisplay.h"
+#include "qtGUImainwindow.h"
+
+#define TABULATION	1
+#define	TEXT_LINE	2
+#define	TIMER_LINE	4
+#define FONT_FAMILY	"Courier"
+// Others fixed font support "Monospace", "Fixed", "MiscFixed"
+#define FONT_SIZE	10
+
+///////////////////////////////////////////////////////////////////////////////
+// MyDisplayThread Implementation                                            //
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Default constructor.
+ */
+MyDisplayThread::MyDisplayThread (QWidget *thewidget) : QThread () {
+	alive = false;
+	widget = thewidget;
+}
+
+/**
+ * Reimplementation of run() to update widget
+ */
+void
+MyDisplayThread::run (void) {
+	alive = true;
+
+	while (alive) {
+		msleep (120);
+		if (widget != NULL) {
+			widget->update();
+		}
+	}
+} 
+
+
+///////////////////////////////////////////////////////////////////////////////
+// MyDisplay Implementation                                                  //
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Default constructor.
+ */
+MyDisplay::MyDisplay (void) : QWidget () {
+	this->initGraphics();
+	this->initText();
+}
+
+/**
+ * Constructor wtih 3 parameters.
+ *
+ * @param	widget parent
+ * 			parent name
+ *			QtGUIMainWindow
+ */
+MyDisplay::MyDisplay (QWidget *parent, const char *name, QtGUIMainWindow* qtgui)
+			: QWidget (parent, name)  {
+	_qtgui = qtgui;
+	this->initGraphics();
+	this->initText();
+
+	// For scrolling text
+	_timerForScrollingText = new QTimer(this);
+	connect (_timerForScrollingText, SIGNAL(timeout()), SLOT(shift()));
+	//emit signal every second
+	_timerForScrollingText->start(2000); 	
+	
+	// Graphics engine animation thread
+	_animationThread = new MyDisplayThread (this);
+	_animationThread->start();
+}
+
+/**
+ * Destructor.
+ */
+MyDisplay::~MyDisplay (void) {
+	delete _animationThread;
+	delete _textBuffer;
+	delete _qtgui;
+	delete _status;
+	delete _time;
+	_timerForScrollingText->stop();
+	delete _timerForScrollingText;
+}
+
+/**
+ * Reimplementation of paintEvent() to render text in the display with 
+ * specified font, a fixed-size font.
+ */
+void
+MyDisplay::paintEvent (QPaintEvent *e) {
+	if (e);
+		
+	QPixmap pm(_centerImage.width(),_centerImage.height());
+	
+	// Painter settings 
+	QFont font(FONT_FAMILY, FONT_SIZE);
+	font.setBold(true);
+	QFontMetrics fm(font);
+
+	QPainter p;
+	p.begin(&pm);
+	p.setFont(font);
+	
+	// Text image (static)
+	bitBlt (&pm, 0, 0,
+		&(_centerImage), 0, 0,
+		_centerImage.width(),
+		_centerImage.height(),
+		Qt::CopyROP);
+	
+	// Display text render
+	renderText (p, fm, *_textBuffer);
+	// Display status
+	renderStatus (p, fm, *_status);
+	// Display time
+	renderTime (p, fm);
+
+	// Overscreen image
+	bitBlt (&pm, 0, 0,
+		&(_overImage), 0, 0,
+		_overImage.width(),
+		_overImage.height(),
+		Qt::CopyROP);
+		
+	p.end();
+	
+	// "Swap" buffers
+	bitBlt (this, 0, 0,
+		&pm, 0, 0,
+		_centerImage.width(),
+		_centerImage.height(),
+		Qt::CopyROP);
+}
+
+/**
+ * Load display image, set geometry and start the thread to redraw LCD display.
+ */
+void
+MyDisplay::initGraphics (void) {
+	// This widget is 100% painted by hand
+	this->setBackgroundMode (Qt::NoBackground);
+
+	// Load display screen image
+	QPixmap *pixcenter = new QPixmap(Skin::getPath(QString(SKINDIR), 
+		_qtgui->setPathSkin(),
+	   	QString(PIXMAP_SCREEN)));
+	_centerImage = pixcenter->convertToImage();
+	delete pixcenter;
+
+	// Load overscreen image
+	QPixmap *pixover = new QPixmap(Skin::getPath(QString(SKINDIR), 
+		_qtgui->setPathSkin(),
+	   	QString(PIXMAP_OVERSCREEN)));
+	_overImage = pixover->convertToImage();
+	delete pixover;
+	
+	// Adjust our size to the picture's one
+	this->setGeometry (0, 0, _centerImage.width(), _centerImage.height());
+}
+
+/**
+ * Create new buffer to compose.
+ */
+void
+MyDisplay::initText (void) {
+	_textBuffer = new QString ();
+	// Init status to free-status
+	_status = new QString(FREE_STATUS);
+	// No display call-timer
+	_inFunction = false;
+	// No scrolling
+	_isScrolling = false;
+	_reset = false;
+	len_to_shift = 0;
+}
+
+/**
+ * Draw text in the appropriate position. 
+ * Scroll text on the left when text is over than width display.
+ * 
+ * @param 	painter		
+ *			fm			size of font
+ *			str			text to draw
+ */
+void
+MyDisplay::renderText (QPainter &painter, QFontMetrics &fm, QString &str) {
+	// cpl = how many chars per line.
+	static unsigned int	cpl = _centerImage.width() / fm.width("a");
+	
+	// If the texts length is greater than the screen, we have to
+	// scroll the WHOLE text towards the left.
+	uint	 x_offset = 0;
+	uint	 extra_chars = 0;
+	QString	 backup_string(".");
+	QString str_tmp = str;
+
+	// If call is closed, reset len_to_shift to 0
+	if (getReset()) {
+		len_to_shift = 0;
+	}
+	
+	// If don't need scrolling message
+	if (!getIsScrolling()) {
+		// If the string is larger than the screen...
+		if (fm.width(str) > (_centerImage.width() - 5)) {
+			extra_chars = str.length() - cpl;
+			x_offset = fm.width(str[0]) * extra_chars;
+
+			// Hack the scrolled string to inform the user
+			backup_string[0] = str[extra_chars];
+			str.replace (extra_chars, backup_string.length(),QString("<"));
+		}
+		// Render text
+		_mutex.enterMutex();
+		painter.drawText (TABULATION - x_offset, fm.height() * TEXT_LINE, str);
+		_mutex.leaveMutex();
+		if (fm.width(str) > (_centerImage.width() - 5)) {
+			// Restore initial string.
+			str.replace(extra_chars, backup_string.length(), backup_string);
+		}
+	} else {
+		// if need scrolling text
+		if (_shift) {
+			len_to_shift += 1;
+		}
+
+		if (str.length() > cpl) {
+			str_tmp = str.left(len_to_shift);
+		} 
+		if (len_to_shift == cpl) {
+			str_tmp = str.right(len_to_shift);
+		}
+		if (len_to_shift == str.length()*2) {
+			str_tmp = str.left(len_to_shift);
+			len_to_shift = 0;
+		}
+
+		_mutex.enterMutex();
+		painter.drawText (TABULATION + _centerImage.width() - 
+				len_to_shift * fm.width(str[0]), 
+				fm.height() * TEXT_LINE, str_tmp);
+		_mutex.leaveMutex();
+	}
+	
+}
+
+
+/**
+ * Draw status text.
+ * 
+ * @param 	painter		
+ *			fm			size of font
+ *			str			text to draw
+ */
+void
+MyDisplay::renderStatus (QPainter &painter, QFontMetrics &fm, QString &str) {
+	painter.drawText (TABULATION, fm.height(), str);
+}
+
+/**
+ * Render current time when line is free, or call timer when line is busy.
+ * 
+ * @param 	painter		
+ *			fm			size of font
+ */
+void
+MyDisplay::renderTime (QPainter &painter, QFontMetrics &fm) {
+	static unsigned int minute = 0;
+	static unsigned int elapse;
+	QString minStr,secStr;
+
+	// If conversation, display call-timer
+	if (_inFunction) {
+		elapse = _qtgui->getElapse();
+		// To calculate minutes
+		if (elapse % 60 == 0) {
+			minute = elapse / 60;
+			elapse = elapse - minute * 60;
+		}
+		// Two digits for seconds
+		if ((elapse % 60) < 10) {
+			secStr = (QString("0" + QString::number(elapse % 60)));
+		} else {
+			secStr = QString::number(elapse % 60);
+		}
+		// Two digits for minutes
+		if (minute < 10) {
+			minStr = (QString("0" + QString::number(minute)));
+		} else {
+			minStr = QString::number(minute);
+		}
+		
+		_time = new QString(minStr + ":" + secStr);
+
+	} else {
+		// If no conversation, display the current time
+		_time = new QString(QDateTime::currentDateTime().toString("hh:mm"));
+		
+		/** For english time format:
+		 * time = new QString(QDateTime::currentDateTime().toString("h:m AP"));
+		 */
+		
+		// Handle time separator blinking.
+		static unsigned int i = 0;
+		if (i++ % 12 > 5) {
+			_time->replace (':', ' ');
+		}
+	}
+	painter.drawText (TABULATION, fm.height() * TIMER_LINE, *_time);
+}
+
+/**
+ * To modify status.
+ *
+ * @param	status
+ */
+void
+MyDisplay::setStatus (const QString &status) {
+	// Free if previously allocated
+	if (_status != NULL) {
+		delete _status;
+	}
+
+	_status = new QString (status);
+}
+
+/**
+ * To access status.
+ *
+ *@return	status
+ */
+QString &
+MyDisplay::getStatus (void) {
+	return *_status;
+}
+
+/**
+ * To modify timer line.
+ *
+ * @param	time
+ */
+void
+MyDisplay::setTimer (const QString &time) {
+	// Free if previously allocated
+	if (_time != NULL) {
+		delete _time;
+	}
+	_time = new QString (time);
+}
+
+/**
+ * To access timer.
+ *
+ * @return	time
+ */
+QString &
+MyDisplay::getTimer (void) {
+	return *_time;
+}
+
+/**
+ * To modify text buffer.
+ *
+ * @param	text buffer
+ */
+void
+MyDisplay::setTextBuffer (const QString& text) {
+	// Free if previously allocated
+	if (_textBuffer != NULL) {
+		delete _textBuffer;
+	}
+	_textBuffer = new QString (text);
+}
+
+/**
+ * To access text buffer.
+ *
+ * @return	text buffer
+ */
+QString &
+MyDisplay::getTextBuffer (void) {
+	return *_textBuffer;
+}
+
+void
+MyDisplay::setIsScrolling (bool s) 
+{ 	
+	_mutex.enterMutex();
+	_isScrolling = s; 
+	_mutex.leaveMutex(); 
+}
+
+void 
+MyDisplay::resetForScrolling (bool r) 
+{ 
+	_mutex.enterMutex();
+	_reset = r; 
+	_mutex.leaveMutex();
+}
+
+void 
+MyDisplay::setLenToShift (unsigned int len) 
+{ 
+	_mutex.enterMutex();
+	len_to_shift = len; 
+	_mutex.leaveMutex();
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Implementation of the public slots                                        //
+///////////////////////////////////////////////////////////////////////////////
+void 
+MyDisplay::appendText (const QString &strToAdd) {
+	_textBuffer->append(strToAdd);
+}
+
+void
+MyDisplay::appendText (const char *text) {
+	_textBuffer->append(QString(text));
+}
+
+void
+MyDisplay::appendText (const QChar &key) {
+	_textBuffer->append(QChar(key));
+}
+
+void
+MyDisplay::clear (void) {
+	// Remove everything in the buffer.
+	_textBuffer->remove(0, _textBuffer->length());
+	setStatus(QString(FREE_STATUS));
+}
+
+void
+MyDisplay::clearBuffer (void) {
+	_textBuffer->remove(0, _textBuffer->length());
+}
+
+void
+MyDisplay::clear (const QString &newstatus) {
+	// Remove everything in the buffer and set the new status.
+	_textBuffer->remove(0, _textBuffer->length());
+	setStatus(newstatus);
+}
+
+void
+MyDisplay::backspace (void) {
+	// Remove the last char of the string
+	_textBuffer->remove(_textBuffer->length() - 1, 1);
+}
+
+void
+MyDisplay::shift (void)
+{
+	_mutex.enterMutex();
+	if (getReset()) {
+		_shift = false;
+		len_to_shift = 0;
+	} else {
+		_shift = true;
+	}
+	_mutex.leaveMutex();
+}
+
+#include "mydisplaymoc.cpp"
+// EOF
diff --git a/src/gui/official/mydisplay.h b/src/gui/official/mydisplay.h
new file mode 100644
index 0000000000000000000000000000000000000000..0c9e6a902a4f8474b4d281cb3ae51f86d4b33faf
--- /dev/null
+++ b/src/gui/official/mydisplay.h
@@ -0,0 +1,155 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __MYDISPLAY_H__
+#define __MYDISPLAY_H__
+
+
+#include <cc++/thread.h>
+
+#include <qevent.h>
+#include <qimage.h>
+#include <qsettings.h>
+#include <qstring.h>
+#include <qthread.h>
+#include <qtimer.h>
+#include <qwidget.h>
+
+#include "../../global.h"
+
+
+#define FREE_STATUS		"Welcome to SFLPhone"
+
+
+/*
+ * The screen looks like this:
+ *
+ *        	---------------------
+ *        	| STATUS			| 
+ *			|					|
+ *			| TextBuffer		|
+ *			|					|
+ *			| call-timer		|
+ *			---------------------
+ */
+
+using namespace ost;
+/////////////////////////////////////////////////////////////////////////////// 
+// Screen animation thread
+///////////////////////////////////////////////////////////////////////////////
+class MyDisplayThread : public QThread {
+public:
+	MyDisplayThread (QWidget *);
+
+public:
+	virtual void 	 run ();
+
+private:
+	QWidget 	*widget;
+	bool	 	 alive;
+};
+
+
+class QtGUIMainWindow;
+
+///////////////////////////////////////////////////////////////////////////////
+// Display
+///////////////////////////////////////////////////////////////////////////////
+class MyDisplay : public QWidget {
+	Q_OBJECT
+public:
+	// Constructors and destructor
+	MyDisplay 	();
+	MyDisplay 	(QWidget *, const char *, QtGUIMainWindow *);
+	~MyDisplay	();
+	
+	void 		setStatus (const QString &);
+	QString &	getStatus (void);
+	void 		setTimer (const QString &);
+	QString &	getTimer (void);
+	void 		setTextBuffer (const QString &);
+	QString &	getTextBuffer (void);
+	
+	// To initialize screen image, position
+	void		initGraphics	(void);
+
+	// To switch between time and call-timer function
+	inline bool getInFunction (void) { return _inFunction; }
+	inline void setInFunction (bool b) { _inFunction = b; }
+
+	// To set/unset in scrolling mode
+	inline bool getIsScrolling (void) { return _isScrolling; }
+	void setIsScrolling (bool s); 
+
+	// To setup to zero X-position for displaying text
+	inline bool getReset (void) { return _reset; }
+	void resetForScrolling (bool r) ;
+	void setLenToShift (unsigned int len) ;
+
+public slots:
+	// To append text which you type
+	void appendText	(const QString &);
+	void appendText	(const char *);
+	void appendText	(const QChar &);
+
+	// To clear caller-id line and set FREE status
+	void clear (void);
+	
+	// To clear just caller-id line
+	void clearBuffer (void);
+	
+	// To clear caller-id line and set new status in parameter
+	void clear (const QString &);
+	
+	// To remove the last char of the string
+	void backspace (void);
+	
+	// Slot for the timeout of the scrolling mode
+	void shift (void);
+
+protected:
+	void	 paintEvent (QPaintEvent *);
+
+private:
+	Mutex  		 		_mutex;
+	QImage		 		_centerImage;	// text zone
+	QImage				_overImage;
+	QString*			_status;	
+	MyDisplayThread*	_animationThread;
+	QtGUIMainWindow*	_qtgui;	
+	QString*			_textBuffer;		
+	QString*			_time;
+	bool 				_inFunction;
+	bool				_shift;
+	QTimer*				_timerForScrollingText;
+	bool 				_isScrolling;
+	bool				_reset;
+	unsigned int 		len_to_shift;
+	
+	// To initialize status, textbuffer and variables
+	void		initText		(void);
+
+	void		renderText		(QPainter &, QFontMetrics &, QString &);
+	void		renderStatus	(QPainter &, QFontMetrics &, QString &);
+	void		renderTime 		(QPainter &, QFontMetrics &);
+};
+
+#endif	// __MYDISPLAY_H__
+
+// EOF
diff --git a/src/gui/official/numerickeypad.cpp b/src/gui/official/numerickeypad.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..21f4fb5e10fba68977add740ed5df72fc1b4976f
--- /dev/null
+++ b/src/gui/official/numerickeypad.cpp
@@ -0,0 +1,118 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <string>
+#include <qapplication.h>
+
+#include "jpushbutton.h"
+#include "numerickeypad.h"
+#include "qtGUImainwindow.h"
+#include "../../skin.h"
+
+using namespace std;
+
+
+NumericKeypad::NumericKeypad (QWidget *parent, const char *name, WFlags f) 
+						: TransQWidget (NULL, name, f) {
+	mainWindow = (TransQWidget *)parent;
+	gui = (QtGUIMainWindow*)parent;
+	this->setCaption("DTMF keypad");
+	
+	// Load background image phone 
+	setbgPixmap (new QPixmap (Skin::getPath(QString(SKINDIR), 
+											gui->setPathSkin(),
+											QString(PIXMAP_KEYPAD))));
+
+	// Transform pixmap to QImage
+	setSourceImage ();
+
+	setMaximumSize (getSourceImage().width(), getSourceImage().height());
+
+	// Calculate just one time the transparency mask bit to bit
+	transparencyMask ();						
+
+	string skinfilename(Skin::getPath(QString(SKINDIR), 
+										gui->setPathSkin(),
+										QString(FILE_INI)));
+	pt = new Point(skinfilename);
+	
+	// Buttons initialisation
+	key0 = new JPushButton(this, NULL, DTMF_0);
+	key1 = new JPushButton(this, NULL, DTMF_1);
+	key2 = new JPushButton(this, NULL, DTMF_2);
+	key3 = new JPushButton(this, NULL, DTMF_3);
+	key4 = new JPushButton(this, NULL, DTMF_4);
+	key5 = new JPushButton(this, NULL, DTMF_5);
+	key6 = new JPushButton(this, NULL, DTMF_6);
+	key7 = new JPushButton(this, NULL, DTMF_7);
+	key8 = new JPushButton(this, NULL, DTMF_8);
+	key9 = new JPushButton(this, NULL, DTMF_9);
+	keyStar = new JPushButton(this, NULL, DTMF_STAR);
+	keyHash = new JPushButton(this, NULL, DTMF_POUND);
+	keyClose = new JPushButton(this, NULL, DTMF_CLOSE);
+
+	// Buttons position 
+	key0->move (pt->getX(DTMF_0), pt->getY(DTMF_0));
+	key1->move (pt->getX(DTMF_1), pt->getY(DTMF_1));
+	key2->move (pt->getX(DTMF_2), pt->getY(DTMF_2));
+	key3->move (pt->getX(DTMF_3), pt->getY(DTMF_3));
+	key4->move (pt->getX(DTMF_4), pt->getY(DTMF_4));
+	key5->move (pt->getX(DTMF_5), pt->getY(DTMF_5));
+	key6->move (pt->getX(DTMF_6), pt->getY(DTMF_6));
+	key7->move (pt->getX(DTMF_7), pt->getY(DTMF_7));
+	key8->move (pt->getX(DTMF_8), pt->getY(DTMF_8));
+	key9->move (pt->getX(DTMF_9), pt->getY(DTMF_9));
+	keyStar->move (pt->getX(DTMF_STAR), pt->getY(DTMF_STAR));
+	keyHash->move (pt->getX(DTMF_POUND), pt->getY(DTMF_POUND));
+	keyClose->move (pt->getX(DTMF_CLOSE), pt->getY(DTMF_CLOSE));
+}
+
+NumericKeypad::~NumericKeypad (void) {
+	delete key0;
+	delete key1;
+	delete key2;
+	delete key3;
+	delete key4;
+	delete key5;
+	delete key6;
+	delete key7;
+	delete key8;
+	delete key9;
+	delete keyStar;
+	delete keyHash;
+	delete keyClose;
+	delete pt;
+}
+
+void
+NumericKeypad::keyPressEvent (QKeyEvent* e) {  
+	QApplication::sendEvent (mainWindow, e);
+
+	// TODO: Key appears pressed when done.
+	if ((e->key() >= Qt::Key_0 and
+			e->key() <= Qt::Key_9) or 
+			e->key() == Qt::Key_Asterisk or
+			e->key() == Qt::Key_NumberSign) {
+		//QApplication::sendEvent(bouton, QEvent(QEvent::MouseButtonPress));
+	} else {
+		//QApplication::sendEvent (mainWindow, e);
+	}
+}
+
+
diff --git a/src/gui/official/numerickeypad.h b/src/gui/official/numerickeypad.h
new file mode 100644
index 0000000000000000000000000000000000000000..513929ae7d4ff6e31fb513e8ab5f0391594eb1d7
--- /dev/null
+++ b/src/gui/official/numerickeypad.h
@@ -0,0 +1,57 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __NUMERIC_KEYPAD_H__
+#define __NUMERIC_KEYPAD_H__
+
+#include "jpushbutton.h"
+#include "point.h"
+#include "transqwidget.h"
+
+class QtGUIMainwindow;
+
+class NumericKeypad : public TransQWidget {
+	Q_OBJECT
+public:
+	// Default Constructor and destructor
+	NumericKeypad	(QWidget* = 0, const char* = 0,WFlags = 0);
+	~NumericKeypad	(void);
+
+	JPushButton		*key0;
+	JPushButton		*key1;
+	JPushButton		*key2;
+	JPushButton		*key3;
+	JPushButton		*key4;
+	JPushButton		*key5;
+	JPushButton		*key6;
+	JPushButton		*key7;
+	JPushButton		*key8;
+	JPushButton		*key9;
+	JPushButton		*keyStar;
+	JPushButton		*keyHash;
+	JPushButton		*keyClose;
+
+private:
+	Point				*pt;	
+	TransQWidget*		mainWindow;
+	QtGUIMainWindow*	gui;
+	void keyPressEvent 	(QKeyEvent*);
+};
+
+#endif // __NUMERIC_KEYPAD_H__
diff --git a/src/gui/official/numerickeypadtools.cpp b/src/gui/official/numerickeypadtools.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a2e9a432d863a1e547cec936b16e7a98e16580fb
--- /dev/null
+++ b/src/gui/official/numerickeypadtools.cpp
@@ -0,0 +1,42 @@
+/**
+ *  Copyright (C) 2004 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <qstring.h>
+#include <stdio.h>
+
+#include "numerickeypadtools.h"
+
+
+
+NumericKeypadTools::NumericKeypadTools (void) {
+}
+
+NumericKeypadTools::~NumericKeypadTools (void) {
+}
+
+int
+NumericKeypadTools::keyToNumber (int key) {
+	QChar tchar(key);
+
+	if (!tchar.isLetter()) {
+		return -1;
+	} else {
+		return Qt::Key_0 + keymapTable[tchar.upper() - Qt::Key_A];
+	}
+}
diff --git a/src/gui/official/numerickeypadtools.h b/src/gui/official/numerickeypadtools.h
new file mode 100644
index 0000000000000000000000000000000000000000..b7238440519d48c11f53187c05346bfc352b826a
--- /dev/null
+++ b/src/gui/official/numerickeypadtools.h
@@ -0,0 +1,67 @@
+/**
+ *  Copyright (C) 2004 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __NUM_KPAD_TOOLS__
+#define __NUM_KPAD_TOOLS__
+#include <qapplication.h>
+
+#define KEYPAD_ID_1 	0
+#define KEYPAD_ID_2 	1
+#define KEYPAD_ID_3		2
+#define KEYPAD_ID_4 	3
+#define KEYPAD_ID_5 	4	
+#define KEYPAD_ID_6 	5	
+#define KEYPAD_ID_7 	6
+#define KEYPAD_ID_8 	7
+#define KEYPAD_ID_9 	8
+#define KEYPAD_ID_STAR 	9	
+#define KEYPAD_ID_0 	10
+#define KEYPAD_ID_HASH 	11
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+	
+// 26 letters mapped to keypad numbers.
+const int keymapTable[] = {
+			2, 2, 2,	// ABC
+			3, 3, 3,	// DEF
+			4, 4, 4,	// GHI
+			5, 5, 5,	// JKL
+			6, 6, 6,	// MNO
+			7, 7, 7, 7,	// PQRS
+			8, 8, 8,	// TUV
+			9, 9, 9, 9	// WXYZ
+		     };
+#ifdef __cplusplus
+}
+#endif
+
+class NumericKeypadTools {
+public:
+	NumericKeypadTools		();
+	~NumericKeypadTools		();
+	static int	keyToNumber	(int);
+
+private:
+};
+
+#endif 	// __NUM_KPAD_TOOLS__
+
+// EOF
diff --git a/src/gui/official/phoneline.cpp b/src/gui/official/phoneline.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..db964bc8cbb37cf74b53da0ee0539969461c7f35
--- /dev/null
+++ b/src/gui/official/phoneline.cpp
@@ -0,0 +1,113 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <qpushbutton.h>
+
+#include "jpushbutton.h"
+#include "phoneline.h"
+
+PhoneLine::PhoneLine (void) {
+	jpb = NULL;
+	setState (FREE);
+	first = true;
+	timer = new QTime();	
+	b_ringing = false;
+	_callid = 0;
+	_status = "";
+	_scrolling = false;
+	_stopScrolling = false;
+}
+
+PhoneLine::~PhoneLine (void) {
+	if (timer != NULL) {
+		delete timer;
+	}
+}
+
+enum line_state
+PhoneLine::getState (void) {
+	return state;
+}
+
+void
+PhoneLine::setState (enum line_state state) {
+	this->state = state;
+}
+
+bool
+PhoneLine::isFree (void) {
+	if (getState() == FREE) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+bool
+PhoneLine::isBusy (void) {
+	if (getState() == BUSY) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+bool
+PhoneLine::isOnHold (void) {
+	if (getState() == ONHOLD) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+void
+PhoneLine::toggleState (void) {
+	if (isBusy()){
+		setState(ONHOLD);
+	} else if (isFree() || isOnHold()) {
+		setState (BUSY);
+	} 
+}
+
+void
+PhoneLine::setButton (JPushButton *jpb) {
+	this->jpb = jpb;
+}
+
+JPushButton *
+PhoneLine::button (void) {
+	return this->jpb;
+}
+
+void
+PhoneLine::startTimer(void) {
+	if (timer == NULL) 
+		timer = new QTime();
+	timer->start();
+}
+
+void
+PhoneLine::stopTimer(void) {
+	delete timer;
+	timer = NULL;
+}
+
+
+// EOF
diff --git a/src/gui/official/phoneline.h b/src/gui/official/phoneline.h
new file mode 100644
index 0000000000000000000000000000000000000000..e07a077a062808ada04568c79d0b49f79cfc930b
--- /dev/null
+++ b/src/gui/official/phoneline.h
@@ -0,0 +1,113 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __PHONE_LINE_H__
+#define __PHONE_LINE_H__
+
+#include <qpushbutton.h>
+#include <qdatetime.h>
+
+
+#define NUMBER_OF_LINES		6
+#define NUMBER_OF_STATES	2 // for the init of phoneline button pixmap
+
+/** Defines the state of a line. */
+enum line_state {
+  FREE = 0, // Line is available
+  BUSY,	// Line is busy
+  ONHOLD, // Line is on hold
+  OFFHOLD // Line is on hold	
+};
+
+class JPushButton;
+class PhoneLine {
+ public:
+  PhoneLine					(void);
+  ~PhoneLine					(void);
+	
+  // Handle different state
+  enum line_state getState();
+  void setState(enum line_state);
+  bool isFree(void);
+  bool isBusy(void);
+  bool isOnHold(void);
+  void toggleState(void);
+	
+  // Handle a line like a push-button
+  void setButton(JPushButton *);
+  JPushButton *button(void);
+	
+  // Handle timer for call-timer
+  void startTimer(void);
+  void stopTimer(void);
+	
+  // Handle status for each phoneline
+  QString getStatus(void) { return _status; }
+  void setStatus(const QString& status) { _status = status; }
+
+  // Manage a ringtone notification if there is an incoming call 
+  bool getbRinging(void) {return b_ringing;}
+  void setbRinging(bool ring) { 
+    if (this->b_ringing != ring)
+      this->b_ringing = ring;
+  }
+
+	
+  // Handle call-id for each phoneline
+  short getCallId(void) 
+  {return _callid;}
+
+  void setCallId(short id)
+  {_callid = id;}
+
+  // Handle if need scrolling or not
+  bool scrolling(void) 
+  {return _scrolling;}
+
+  void setScrolling(bool s)
+  {_scrolling = s;}
+
+  // Handle stop scrolling
+  bool stopScrolling() 
+  {return _stopScrolling;}
+
+  void setStopScrolling(bool s) 
+  {_stopScrolling = s;}
+
+  // For call-timer
+  QTime *timer;
+  // To start just one time the call-timer per call
+  bool first;
+	
+ private:
+  short _callid;
+  QString	_status;
+  bool _scrolling; 
+  bool _stopScrolling;
+	
+  JPushButton* jpb;
+  enum line_state	state;
+
+  // if incoming call, 
+  // before IP-phone user answers (->true) 
+  bool b_ringing;		
+				
+};
+
+#endif	// __PHONE_LINE_H__
diff --git a/src/gui/official/point.cpp b/src/gui/official/point.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..348692f6b5233c37a882af4622338862743d19b7
--- /dev/null
+++ b/src/gui/official/point.cpp
@@ -0,0 +1,132 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com> 
+ *                                                                             
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "../../configurationtree.h"
+#include "point.h"
+
+#include <string>
+using namespace std;
+
+/**
+ * Create a config-tree from file 'filename'
+ */
+Point::Point (const string& filename) {
+	int opened = 1;
+	skinConfigTree = new ConfigurationTree();
+	opened = skinConfigTree->populateFromFile (filename);
+	if (opened != 1) {
+	// If opening failed, stop the application
+		exit(0);
+	}
+}
+
+Point::~Point (void) {
+	if (skinConfigTree != NULL) {
+		delete skinConfigTree;
+		skinConfigTree = NULL;
+	}
+}
+
+
+/**
+ * Extract the substring before the comma
+ */
+string
+Point::getSubstrX (const char* key) {
+	string value = skinConfigTree->getValue("", string(key));
+	int index = value.find(',');
+	return value.substr(0, index);
+}
+
+/**
+ * Extract the substring after the comma
+ */
+string
+Point::getSubstrY (const char* key) {
+	string value = skinConfigTree->getValue("", string(key));
+	int index = value.find(',');
+	return value.substr(index + 1, value.length() - index);
+}
+
+/**
+ * Return the x-value of 'key'
+ */
+int
+Point::getX (const char* key) {
+	int index;
+	string tmp = getSubstrX(key);
+	
+	if (getDirection(key) == HORIZONTAL) {
+		index = tmp.find('-');
+		return atoi((tmp.substr(0, tmp.length() - index)).data());
+	} else {
+		return atoi(tmp.data());
+	}
+}
+
+/**
+ * Return the y-value of 'key'
+ */
+int
+Point::getY (const char* key) {
+	int index;
+	string tmp = getSubstrY(key);
+	
+	if (getDirection(key) == VERTICAL) {
+		index = tmp.find('-');
+		return atoi((tmp.substr(0, tmp.length() - index)).data());
+	} else {
+		return atoi(tmp.data());
+	}
+}
+
+/**
+ * Return the variation-value of 'key' (for volume)
+ */
+int
+Point::getVariation (const char* key) {
+	int index;
+	string str;
+	
+	if (getDirection(key) == HORIZONTAL) {
+		str = getSubstrX(key);
+	} else if (getDirection(key) == VERTICAL) {
+		str = getSubstrY(key);
+	} 
+	index = str.find('-');
+	return atoi((str.substr(index + 1, str.length() - index)).data());
+}
+
+
+/**
+ * Get the direction of the variation for 'key' 
+ *
+ * @return	1 -> horizontal or  2 -> vertical
+ *			(0 if no variation)
+ */
+int
+Point::getDirection (const char* key) {
+	if (getSubstrX(key).find('-') != string::npos) {
+		return HORIZONTAL;
+	} else if (getSubstrY(key).find('-') != string::npos) {
+		return VERTICAL;
+	} else {
+		return NO_DIRECTION;
+	}
+}
diff --git a/src/gui/official/point.h b/src/gui/official/point.h
new file mode 100644
index 0000000000000000000000000000000000000000..8b814815e7641c1e0d43950eff5b57108bc0e004
--- /dev/null
+++ b/src/gui/official/point.h
@@ -0,0 +1,48 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com> 
+ *                                                                             
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __POINT_H__
+#define __POINT_H__
+
+#include <string>
+using namespace std;
+
+#define NO_DIRECTION	0
+#define HORIZONTAL		1
+#define VERTICAL		2
+
+class ConfigurationTree;
+
+class Point {
+public:
+	Point (const string&);
+	~Point (void);
+
+	int	getX			(const char*);
+	int	getY			(const char*);
+	int	getVariation	(const char*);
+	int getDirection	(const char*);	
+	
+private:
+	ConfigurationTree* 	skinConfigTree;
+	string 	getSubstrX	(const char*);	
+	string 	getSubstrY	(const char*);	
+};
+
+#endif // __POINT_H__
diff --git a/src/gui/official/qjlistboxpixmap.cpp b/src/gui/official/qjlistboxpixmap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..270b45cf5193b3fa3e370ff3cc362d9b15e5bf00
--- /dev/null
+++ b/src/gui/official/qjlistboxpixmap.cpp
@@ -0,0 +1,159 @@
+/*
+  Copyright(C)2004 Johan Thelin
+	johan.thelin -at- digitalfanatics.org
+	
+	Visit: http://www.digitalfanatics.org/e8johan/projects/jseries/index.html
+
+  This file is part of the JSeries.
+
+  JSeries 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.
+
+  JSeries 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 JSeries; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+ 
+#include <qpainter.h>
+#include <qstyle.h>
+
+#include "qjlistboxpixmap.h"
+
+QjListBoxPixmap::QjListBoxPixmap( PixmapLocation location, const QPixmap &pixmap, const QString &text, QListBox *listbox ) : QListBoxItem( listbox )
+{
+	m_location = location;
+	m_pixmap = pixmap;
+	setText( text );
+}
+
+QjListBoxPixmap::QjListBoxPixmap( PixmapLocation location, const QPixmap &pixmap, const QString &text, QListBox *listbox, QListBoxItem *after ) : QListBoxItem( listbox, after )
+{
+	m_location = location;
+	m_pixmap = pixmap;
+	setText( text );
+}
+	
+QjListBoxPixmap::PixmapLocation QjListBoxPixmap::location() const
+{
+	return m_location;
+}
+
+const QPixmap *QjListBoxPixmap::pixmap() const
+{
+	return &m_pixmap;
+}
+
+void QjListBoxPixmap::setPixmap( const QPixmap &pixmap )
+{
+	m_pixmap = pixmap;
+	listBox()->repaint();
+}
+
+int QjListBoxPixmap::height( const QListBox *lb ) const
+{
+	switch( m_location )
+	{
+		case Above:
+		case Under:
+		
+			return 6 + m_pixmap.height() + lb->fontMetrics().height();
+			
+		case Left:
+		case Right:
+		
+			if( m_pixmap.height() > lb->fontMetrics().height() )
+				return 4 + m_pixmap.height();
+			else
+				return 4 + lb->fontMetrics().height();
+			
+		default:
+			return 0;
+	}
+}
+
+int QjListBoxPixmap::width( const QListBox *lb ) const
+{
+	int tw;
+
+	switch( m_location )
+	{
+		case Above:
+		case Under:
+		
+			tw = lb->fontMetrics().width( text() );
+			
+			if( tw > m_pixmap.width() )
+				return 4 + tw;
+			else
+				return 4 + m_pixmap.width();
+		
+		case Left:
+		case Right:
+		
+			return 6 + m_pixmap.width() + lb->fontMetrics().width( text() );
+			
+		default:
+			return 0;
+	}
+}
+	
+void QjListBoxPixmap::setLocation( PixmapLocation location )
+{
+	if( m_location == location )
+		return;
+		
+	m_location = location;
+	listBox()->repaint();
+}
+	
+void QjListBoxPixmap::paint( QPainter *p )
+{
+	if( !( listBox() && listBox()->viewport() == p->device() ) )
+		return;
+
+	QRect r( 0, 0, listBox()->width(), height( listBox() ) );
+
+	if( isSelected() )
+		p->eraseRect( r );
+	
+	int tw = listBox()->fontMetrics().width( text() );
+	int th = listBox()->fontMetrics().height();
+	int pw = m_pixmap.width();
+	int ph = m_pixmap.height();
+	int xo = (listBox()->width() - width( listBox() ))/2;
+	int tyo = listBox()->fontMetrics().ascent();
+	
+	switch( m_location )
+	{
+		case Above:
+			p->drawText( (listBox()->width()-tw)/2, ph+4+tyo, text() );
+			p->drawPixmap( (listBox()->width()-pw)/2, 2, m_pixmap );
+		
+			break;
+		case Under:
+			p->drawText( (listBox()->width()-tw)/2, 2+tyo, text() ); 
+			p->drawPixmap( (listBox()->width()-pw)/2, 4+th, m_pixmap );
+			
+		  break;
+		case Left:
+			p->drawText( xo+2+pw, (height( listBox() )-th)/2+tyo, text() );
+			p->drawPixmap( xo, (height( listBox() )-ph)/2, m_pixmap );
+			
+		  break;
+		case Right:		
+			p->drawText( xo, (height( listBox() )-th)/2+tyo, text() );
+			p->drawPixmap( xo+2+tw, (height( listBox() )-ph)/2, m_pixmap );
+			
+			break;
+	}
+
+	if( isCurrent() )
+		listBox()->style().drawPrimitive( QStyle::PE_FocusRect, p, r, listBox()->colorGroup() );
+}
diff --git a/src/gui/official/qjlistboxpixmap.h b/src/gui/official/qjlistboxpixmap.h
new file mode 100644
index 0000000000000000000000000000000000000000..d8839e30f48f521a40ee9d99d04b9a9c6f607584
--- /dev/null
+++ b/src/gui/official/qjlistboxpixmap.h
@@ -0,0 +1,73 @@
+/*
+  Copyright(C)2004 Johan Thelin
+	johan.thelin -at- digitalfanatics.org
+	
+	Visit: http://www.digitalfanatics.org/e8johan/projects/jseries/index.html
+
+  This file is part of the JSeries.
+
+  JSeries 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.
+
+  JSeries 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 JSeries; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef QjLISTBOXPIXMAP_H
+#define QjLISTBOXPIXMAP_H
+
+#include <qlistbox.h>
+#include <qstring.h>
+#include <qpixmap.h>
+
+/** \brief The JPixmapItem is a listbox item showing a pixmap and a text. The location of the pixmap in relation to the text can be altered.
+  *
+	* \image html jpmi.png
+	* The location of the pixmap in relation to the text can be altered using the location and setLocation members.
+	*/
+class QjListBoxPixmap : public QListBoxItem
+{
+public:
+	/** Specifies the location of the pixmap in relation to the text. */
+	enum PixmapLocation 
+		{ Above, /**< The pixmap is above the text. */
+		  Under, /**< The pixmap is under the text. */
+			Left,  /**< The pixmap is to the left of the text. */
+			Right  /**< The pixmap is to the right of the text. */
+		};
+
+  /** Creates a JPixmapItem. */
+	QjListBoxPixmap( PixmapLocation location, const QPixmap &pixmap, const QString &text, QListBox *listbox=0 );
+	/** Creates a JPixmapItem at a certain position in the listbox. */
+	QjListBoxPixmap( PixmapLocation location, const QPixmap &pixmap, const QString &text, QListBox *listbox, QListBoxItem *after );
+	
+	/** Returns the pixmap location in relation to the text. */
+	PixmapLocation location() const;
+	/** Sets the pixmap location in relation to the text. This does not generate a re-paint of the listbox. */
+	void setLocation( PixmapLocation );
+
+	/** Returns the pixmap. */
+	const QPixmap *pixmap() const;	
+	/** Sets the pixmap. This does not generate a re-paint of the listbox. */
+	void setPixmap( const QPixmap &pixmap );
+	
+	int height( const QListBox *lb ) const;
+	int width( const QListBox *lb ) const;
+	
+protected:
+	void paint( QPainter *p );
+	
+private:
+	QPixmap m_pixmap;
+	PixmapLocation m_location;
+};
+
+#endif // QjLISTBOXPIXMAP_H
diff --git a/src/gui/official/qtGUImainwindow.cpp b/src/gui/official/qtGUImainwindow.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..af9879dbb696b8884fa47d0c23de0039119ec74a
--- /dev/null
+++ b/src/gui/official/qtGUImainwindow.cpp
@@ -0,0 +1,1961 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com> 
+ *                                                                             
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include "../../configurationtree.h"
+#include <stdio.h>
+
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qevent.h>
+#include <qlineedit.h>
+#include <qmessagebox.h>
+#include <qpushbutton.h>
+#include <qregexp.h>
+#include <qspinbox.h>
+#include <qtimer.h> 
+#include <qtooltip.h>
+
+#include "global.h"
+#include "qtGUImainwindow.h"
+
+#include "skin.h"
+#include "configurationpanelui.h"
+#include "jpushbutton.h"
+#include "mydisplay.h"
+#include "numerickeypad.h"
+#include "numerickeypadtools.h"
+#include "point.h"
+#include "phoneline.h"
+#include "vector.h"
+#include "volumecontrol.h"
+
+#define QCHAR_TO_STRIP	"-"
+#define REG_EXPR		"(-|\\(|\\)| )"
+	
+using namespace std;
+
+///////////////////////////////////////////////////////////////////////////////
+// Tray Icon implementation
+///////////////////////////////////////////////////////////////////////////////
+MyTrayIcon::MyTrayIcon(const QPixmap &icon, const QString &tooltip, 
+		       QPopupMenu *_mypop, QObject *parent, const char *name)
+  : TrayIcon (icon, tooltip, _mypop, parent, name)
+{
+  menu = _mypop;
+}
+
+void
+MyTrayIcon::mousePressEvent (QMouseEvent *e) 
+{
+  switch ( e->button() ) {
+  case RightButton:
+    menu->popup( e->globalPos() );
+    e->accept();
+    break;
+			
+  case LeftButton:
+    emit clickedLeft();
+    break;
+			
+  case MidButton:
+    break;
+			
+  default:
+    break;
+  }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// QtGUIMainWindow implementation
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Default Constructor
+ * Init, Connections
+ */
+QtGUIMainWindow::QtGUIMainWindow (QWidget *parent, 
+				  const char *name, 
+				  WFlags f)
+  : TransQWidget (parent, name, f), 
+    GuiFramework() 
+{	
+  for (int i = 0; i < NUMBER_OF_LINES; i++) {
+    phLines[i] = new PhoneLine();
+    phLines[i]->setState(FREE);
+    _TabIncomingCalls[i] = -1;
+  }
+	
+  // Create configuration_panel
+  // _panel = new ConfigurationPanel (0, 0, false);
+										
+  // URL input dialog
+  _urlinput = new URL_Input (this);
+	
+
+  // For DTMF
+  _key = new DTMF ();
+  _buf = new int16[SIZEBUF];
+
+  // Create new display and numeric _keypad
+  _lcd = new MyDisplay(this, 0, this);
+  _keypad = new NumericKeypad (this, NULL, Qt::WDestructiveClose |
+			       Qt::WStyle_Customize |
+			       Qt::WStyle_NoBorder);
+  _currentLine = -1;
+  _chosenLine = -1;
+  _prevLine = -1;
+  _first = true;
+  _chooseLine = false;
+  _transfer = false;
+  _dialtone = false;
+  _msgVar = false;
+  _apply = false;
+
+  // Initialisation of all that concern the skin
+  initSkin();
+	
+  this->initBlinkTimer();
+
+	
+  // By default, keyboard mapping mode is numerical mode
+  this->setMode(NUM_MODE);
+	
+  // Move 
+  setMainLCD ();
+	
+  // Change window title and Icon.
+  this->setCaption(PROGNAME);
+  this->setIcon(QPixmap(Skin::getPathPixmap(QString(PIXDIR), 
+					    QString(SFLPHONE_LOGO))));
+
+  // Show the GUI
+  this->show();	
+
+  // Handle the tray icon system menu
+  _mypop = new QPopupMenu(this);
+  _mypop->insertItem ("Compose", _urlinput, SLOT(show()));
+  _mypop->insertItem ("Setup", this, SLOT(configuration()));
+  _mypop->insertItem ("Quit", qApp, SLOT(quit()));
+
+  _trayicon = new MyTrayIcon(QPixmap(
+				     Skin::getPathPixmap(QString(PIXDIR), QString(TRAY_ICON))), 
+			     NULL, _mypop, parent, name);
+  _trayicon->show();
+	
+  // Connect to handle _trayicon
+  connect(_trayicon, SIGNAL(clickedLeft()), this, SLOT(clickHandle()));
+  // Connect _blinkTimer signals to blink slot
+  connect(_blinkTimer, SIGNAL(timeout()),this, SLOT(blinkMessageSlot()));
+  connect (_blinkTimer, SIGNAL(timeout()), this, SLOT(blinkRingSlot()) );
+  connect (_blinkTimer, SIGNAL(timeout()), this, SLOT(blinkLineSlot()));
+  // Connect to append url in display
+  connect (_urlinput->buttonOK, SIGNAL(clicked()), this, SLOT(stripSlot()));
+  // Connect to save settings
+  connect (_panel->buttonSave, SIGNAL(clicked()), this, SLOT(save()));
+  // Connect to apply skin
+  connect (_panel->buttonApplySkin, SIGNAL(clicked()), this,SLOT(applySkin()));
+  // Connect to register manually
+  connect (_panel->Register, SIGNAL(clicked()), this, SLOT(registerSlot()));
+}
+
+/**
+ * Destructor
+ */
+QtGUIMainWindow::~QtGUIMainWindow(void) {
+  deleteButtons();
+  delete	_panel;
+  delete  _blinkTimer;
+  delete  _keypad;
+  delete	_lcd;
+  delete  _urlinput;
+  delete 	_mypop;
+  delete 	_trayicon;
+  delete  pt;
+  delete 	_key;
+  delete[] _buf;
+  delete[] phLines;
+}
+
+void
+QtGUIMainWindow::deleteButtons (void) {
+  delete  phoneKey_transf;
+  delete  phoneKey_msg;
+  delete  phoneKey_conf;
+  delete  reduce_button;
+  delete  quit_button;
+  delete  addr_book_button;
+  delete  configuration_button;
+  delete  hangup_button;
+  delete  dial_button;
+  delete  mute_button;
+  delete	dtmf_button;
+  delete  vol_mic;
+  delete  vol_spkr;
+  delete  micVolVector;
+  delete  spkrVolVector;
+
+  for (int j = 0; j < NUMBER_OF_LINES; j++) {
+    delete phLines[j]->button();
+  }
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Private Methods implementations     	                               	     
+///////////////////////////////////////////////////////////////////////////////
+/**
+ * Init and start blink timer for all blinking pixmap, with 500 ms timeout.
+ */
+void
+QtGUIMainWindow::initBlinkTimer(void) {
+  _blinkTimer = new QTimer(this);
+  _blinkTimer->start(500);
+}
+
+/**
+ * Init variable with skin choice
+ */
+QString
+QtGUIMainWindow::setPathSkin (void) {
+  return QString(Config::getchar(
+				 "Preferences", "Themes.skinChoice", "metal"));
+}
+
+/**
+ * Init variable with ring choice
+ */
+string
+QtGUIMainWindow::ringFile(void) {
+  return get_config_fields_str(AUDIO, RING_CHOICE);
+}
+
+/**
+ * Get whole path for rings
+ */
+string
+QtGUIMainWindow::getRingtoneFile (void) {
+  string ringFilename(Skin::getPathRing(string(RINGDIR), ringFile()));
+  return ringFilename;
+}
+
+void
+QtGUIMainWindow::initSkin (void) {
+  // Load file configuration skin
+  string skinfilename(Skin::getPath(QString(SKINDIR), setPathSkin(),
+				    QString(FILE_INI)));
+	
+  if (!_apply) {
+    this->pt = new Point(skinfilename);	
+  } else {
+    // If click on apply button
+    delete pt;
+    deleteButtons();
+    this->pt = new Point(skinfilename);	
+  }
+  // Initialisation of the buttons
+  initSpkrVolumePosition();
+  initMicVolumePosition();
+  initButtons();
+  initVolume();
+  // Connections of the buttons
+  connections();
+	
+  // Load background image phone
+  setbgPixmap (new QPixmap (Skin::getPath(QString(SKINDIR), 
+					  setPathSkin(),
+					  QString(PIXMAP_PHONE))));
+  // Transform pixmap to QImage
+  setSourceImage ();
+  this->setMaximumSize (getSourceImage().width(), getSourceImage().height());
+  this->setGeometry (MAIN_INITIAL_POSITION, 
+		     MAIN_INITIAL_POSITION, 
+		     getSourceImage().width(),
+		     getSourceImage().height());
+  // Calculate just one time the transparency mask bit to bit
+  transparencyMask ();
+
+  // Line pixmaps initialisation
+  for (int i = 0; i < NUMBER_OF_LINES; i++) {
+    for (int j = 0; j < NUMBER_OF_STATES; j++) {
+      TabLinePixmap[i][j] = QPixmap(Skin::getPath(QString(SKINDIR),
+						  setPathSkin(), 
+						  QString(PIXMAP_LINE(i, j))));
+    }
+  }
+  // Message pixmaps initialisation
+  TabMsgPixmap[0] = QPixmap(Skin::getPath(QString(SKINDIR), setPathSkin(), 
+					  PIXMAP_MESSAGE_OFF));
+  TabMsgPixmap[1] = QPixmap(Skin::getPath(QString(SKINDIR), setPathSkin(), 
+					  PIXMAP_MESSAGE_ON));
+}
+
+void
+QtGUIMainWindow::initSpkrVolumePosition (void) {
+  if (pt->getDirection(VOL_SPKR) == VERTICAL) {
+    vol_spkr_x = Config::get("Audio", "Volume.speakers_x",
+			     pt->getX(VOL_SPKR));
+    vol_spkr_y = Config::get("Audio", "Volume.speakers_y",
+			     pt->getVariation(VOL_SPKR));
+  } else if (pt->getDirection(VOL_SPKR) == HORIZONTAL) {
+    vol_spkr_x = Config::get("Audio", "Volume.speakers_x",
+			     pt->getX(VOL_SPKR) + pt->getVariation(VOL_SPKR));
+    vol_spkr_y = Config::get("Audio", "Volume.speakers_y",
+			     pt->getY(VOL_SPKR));
+  }
+}
+                                                                                
+void
+QtGUIMainWindow::initMicVolumePosition (void) {
+  if (pt->getDirection(VOL_MIC) == VERTICAL) {
+    vol_mic_x = Config::get("Audio", "Volume.micro_x", pt->getX(VOL_MIC));
+    vol_mic_y = Config::get("Audio", "Volume.micro_y",
+			    pt->getVariation(VOL_MIC));
+  } else if (pt->getDirection(VOL_MIC) == HORIZONTAL) {
+    vol_mic_x = Config::get("Audio", "Volume.micro_x",
+			    pt->getX(VOL_MIC) + pt->getVariation(VOL_MIC));
+    vol_mic_y = Config::get("Audio", "Volume.micro_y", pt->getY(VOL_MIC));
+  }
+}
+
+void
+QtGUIMainWindow::initVolume (void) 
+{
+  Manager::instance().setSpkrVolume(spkrVolVector->Y() - vol_spkr_y);
+  Manager::instance().setMicroVolume(micVolVector->Y() - vol_mic_y);
+}
+
+/**
+ * Inits all phonekey buttons.
+ * Create new QPushButtons, set up tool tip, disable focus, set button geometry
+ * set palette.
+ */
+void
+QtGUIMainWindow::initButtons (void) {
+  // Buttons initialisation
+  phoneKey_msg= new JPushButton(this, NULL, VOICEMAIL);
+  phoneKey_transf = new JPushButton(this, NULL, TRANSFER);
+  phoneKey_conf = new JPushButton(this, NULL, CONFERENCE);
+  reduce_button = new JPushButton(this, NULL, MINIMIZE);
+  quit_button = new JPushButton(this, NULL, CLOSE);
+  addr_book_button = new JPushButton(this, NULL, DIRECTORY);
+  configuration_button = new JPushButton(this, NULL, SETUP);
+  hangup_button = new JPushButton(this, NULL, HANGUP);
+  dial_button = new JPushButton(this, NULL, CONNECT);
+  mute_button = new JPushButton(this, NULL, MUTE);
+  dtmf_button = new JPushButton(this, NULL, DTMF_SHOW);
+
+  // Set tooltip buttons
+  QToolTip::add(reduce_button, tr("Minimize window"));
+  QToolTip::add(quit_button, tr("Close window (Ctrl+Q)"));
+  QToolTip::add(phoneKey_msg, tr("Get your message"));
+  QToolTip::add(phoneKey_transf, tr("Call transfer (Ctrl+T)"));
+  QToolTip::add(phoneKey_conf, tr("Conference"));
+  QToolTip::add(addr_book_button, tr("Address book"));
+  QToolTip::add(configuration_button, tr("Configuration tools (Ctrl+C)"));
+  QToolTip::add(hangup_button, tr("Hangup (Esc)"));
+  QToolTip::add(dial_button, tr("Dial (Enter)"));
+  QToolTip::add(mute_button, tr("Mute (Ctrl+M)"));
+  QToolTip::add(dtmf_button, tr("Show DTMF _keypad (Ctrl+D)"));
+
+  // Buttons position
+  phoneKey_msg->move (pt->getX(VOICEMAIL), pt->getY(VOICEMAIL));
+  phoneKey_transf->move (pt->getX(TRANSFER), pt->getY(TRANSFER));
+  phoneKey_conf->move (pt->getX(CONFERENCE), pt->getY(CONFERENCE));
+  reduce_button->move (pt->getX(MINIMIZE), pt->getY(MINIMIZE));
+  addr_book_button->move (pt->getX(DIRECTORY), pt->getY(DIRECTORY));
+  quit_button->move (pt->getX(CLOSE), pt->getY(CLOSE));
+  configuration_button->move (pt->getX(SETUP), pt->getY(SETUP));
+  hangup_button->move (pt->getX(HANGUP), pt->getY(HANGUP));
+  dial_button->move (pt->getX(CONNECT), pt->getY(CONNECT));
+  mute_button->move (pt->getX(MUTE), pt->getY(MUTE));
+  dtmf_button->move (pt->getX(DTMF_SHOW), pt->getY(DTMF_SHOW));
+	
+  // Loop for line buttons
+  // Initialisation, set no focus, set geometry, set palette, pixmap
+  for (int j = 0; j < NUMBER_OF_LINES; j++) {
+    QString lnum;
+   
+    lnum = "l" + lnum.setNum (j + 1);
+    phLines[j]->setButton(new JPushButton(
+					  this, NULL, lnum.ascii()));
+    phLines[j]->button()->move (pt->getX(lnum),pt->getY(lnum));
+  }
+     
+  // Set pixmaps volume
+  micVolVector = new Vector(this, VOL_MIC, pt);
+  spkrVolVector = new Vector(this, VOL_SPKR, pt);
+                                                                               
+  vol_mic = new VolumeControl(this, NULL, VOLUME, micVolVector);
+  vol_spkr = new VolumeControl(this, NULL, VOLUME, spkrVolVector);
+  vol_mic->move(vol_mic_x, vol_mic_y);
+  vol_spkr->move(vol_spkr_x, vol_spkr_y);
+}
+
+void
+QtGUIMainWindow::connections (void) {
+  // Connect for clicked numeric _keypad button 
+  connect ((QObject*)_keypad->key0, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey0()));
+  connect ((QObject*)_keypad->key1, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey1()));
+  connect ((QObject*)_keypad->key2, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey2()));
+  connect ((QObject*)_keypad->key3, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey3()));
+  connect ((QObject*)_keypad->key4, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey4()));
+  connect ((QObject*)_keypad->key5, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey5()));
+  connect ((QObject*)_keypad->key6, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey6()));
+  connect ((QObject*)_keypad->key7, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey7()));
+  connect ((QObject*)_keypad->key8, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey8()));
+  connect ((QObject*)_keypad->key9, SIGNAL(clicked()), this, 
+	   SLOT(pressedKey9()));
+  connect ((QObject*)_keypad->keyStar, SIGNAL(clicked()), this, 
+	   SLOT(pressedKeyStar()));
+  connect ((QObject*)_keypad->keyHash, SIGNAL(clicked()), this, 
+	   SLOT(pressedKeyHash()));
+  connect ((QObject*)_keypad->keyClose, SIGNAL(clicked()), this, 
+	   SLOT(dtmfKeypad()));
+
+  // Connections for the lines 
+  connect (phLines[0]->button(), SIGNAL(clicked()), this, 
+	   SLOT(button_line0()));
+  connect (phLines[1]->button(), SIGNAL(clicked()), this, 
+	   SLOT(button_line1()));
+  connect (phLines[2]->button(), SIGNAL(clicked()), this, 
+	   SLOT(button_line2()));
+  connect (phLines[3]->button(), SIGNAL(clicked()), this, 
+	   SLOT(button_line3()));
+  connect (phLines[4]->button(), SIGNAL(clicked()), this, 
+	   SLOT(button_line4()));
+  connect (phLines[5]->button(), SIGNAL(clicked()), this, 
+	   SLOT(button_line5()));
+
+  // Misc 
+  connect (phoneKey_msg, SIGNAL(clicked()), this, SLOT(button_msg()));
+  connect (phoneKey_transf, SIGNAL(clicked()), this, SLOT(button_transfer()));
+  connect (phoneKey_conf, SIGNAL(clicked()), this, SLOT(button_conf()));
+  connect (dial_button, SIGNAL(clicked()), this, SLOT(dial()));
+  connect (mute_button, SIGNAL(clicked()), this, SLOT(button_mute()));
+  connect (hangup_button, SIGNAL(clicked()), this, SLOT(hangupLine()));
+  connect (configuration_button,SIGNAL(clicked()),this,SLOT(configuration()));
+  connect (addr_book_button, SIGNAL(clicked()), this,SLOT(addressBook()));
+  connect (dtmf_button, SIGNAL(clicked()), this, SLOT(dtmfKeypad()));
+
+  // Connect to reduce
+  connect (reduce_button, SIGNAL(clicked()), this, SLOT(reduceHandle()));
+  // Connect to quit with keyboard
+  connect (this, SIGNAL(keyPressed(int)), this, SLOT(qt_quitApplication()));
+  // Connect to quit with quit button
+  connect (quit_button, SIGNAL(clicked()), this, SLOT(qt_quitApplication()));
+
+  // Connections for volume control
+  connect(vol_spkr, SIGNAL(setVolumeValue(int)), this,
+	  SLOT(volumeSpkrChanged(int)));
+  connect(vol_mic, SIGNAL(setVolumeValue(int)), this,
+	  SLOT(volumeMicChanged(int)));
+
+}
+
+/**
+ * Returns true if the keyboard mapping returns letters. 
+ *
+ * @return	bool
+ */
+bool
+QtGUIMainWindow::isInTextMode (void) {
+  if (modeType == TEXT_MODE) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
+/**
+ * Returns true if the keyboard mapping returns digits. 
+ *
+ * @return	bool
+ */
+bool
+QtGUIMainWindow::isInNumMode (void) {
+  if (modeType == NUM_MODE) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
+/**
+ * Sets up the keyboard mapping mode.
+ */
+void
+QtGUIMainWindow::setMode (int mode) {
+  this->modeType = mode;
+}
+
+short 
+QtGUIMainWindow::isThereIncomingCall (void)
+{
+  for (int i = 0; i < NUMBER_OF_LINES; i++) {
+    if (_TabIncomingCalls[i] > 0) {
+      return _TabIncomingCalls[i];
+    }
+  }
+	
+  return -1;
+}
+
+short 
+QtGUIMainWindow::isIncomingCall (int line)
+{
+  if (_TabIncomingCalls[line] > 0) {
+    return 	_TabIncomingCalls[line];
+  } else {
+    return -1;
+  }
+}
+
+int
+QtGUIMainWindow::id2line (short id)
+{
+  int i;
+  for (i = 0; i < NUMBER_OF_LINES; i++) {
+    if (phLines[i]->getCallId() == id) {
+      return i;
+    }
+  }
+  if (i == NUMBER_OF_LINES) {
+    _debug("Id is not attributed to a phoneline\n");
+    return -1;
+  }
+  return -1;
+}
+
+short
+QtGUIMainWindow::line2id (int line)
+{
+  short i;
+  if (line != -1) {
+    i = phLines[line]->getCallId();
+  } else {
+    return -1;
+  }
+	
+  if (i > 0) {
+    return i;
+  } else {
+    return -1;
+  }
+}
+
+void 
+QtGUIMainWindow::changeLineStatePixmap (int line, line_state state)
+{
+  // Set free-status for current line
+  phLines[line]->setState(state);
+  // Set free-pixmap
+  if (state == ONHOLD) {
+    // Because for the state of line pixmap there are just 2 states 
+    // (FREE and BUSY), so we associate ONHOLD to BUSY
+    state = BUSY;
+  }
+  phLines[line]->button()->setPixmap(TabLinePixmap[line][state]);
+}
+
+int
+QtGUIMainWindow::busyLineNumber (void)
+{
+  int temp = -1;
+  for (int i = 0; i < NUMBER_OF_LINES; i++) {
+    if (phLines[i]->isBusy() and i != _currentLine) {
+      temp = i;
+    }
+  }
+  return temp;
+}
+
+int
+QtGUIMainWindow::putOnHoldBusyLine (int line)
+{
+  if (line != -1 and !phLines[line]->getbRinging()) {
+    if (!getCall(line2id(line))->isRinging() and !getCall(line2id(line))->isProgressing()) {
+      // Occurs when newly off-hook line replaces another one.
+      _debug("On hold line %d [id=%d]\n", line, line2id(line));
+      if (qt_onHoldCall(line2id(line)) != 1) {
+	return -1;
+      }
+    } 
+    changeLineStatePixmap(line, ONHOLD);
+    return 1;
+  } 
+  return 0;
+}
+
+void
+QtGUIMainWindow::dialtone (bool var) {
+  if (Manager::instance().isDriverLoaded()) {
+    if (_dialtone != var) {
+      _dialtone = var;
+    }
+    Manager::instance().setZonetone(var);
+    Manager::instance().getTonegenerator()->toneHandle(ZT_TONE_DIALTONE);
+  } else {
+    Manager::instance().error()->errorName(OPEN_FAILED_DEVICE);
+  }
+}
+
+void
+QtGUIMainWindow::callIsRinging(int id, int line, int busyLine)
+{
+  changeLineStatePixmap(line, BUSY);
+  putOnHoldBusyLine(busyLine);
+  displayContext(id);
+  if (getChooseLine()) {
+    // If a free line is off-hook, set this line to free state
+    setChooseLine(false);
+    changeLineStatePixmap(getChosenLine(), FREE);
+    dialtone(false);
+  }
+}
+
+void
+QtGUIMainWindow::callIsProgressing (int id, int line, int busyLine)
+{
+  // Same function of callIsRinging
+  callIsRinging(id, line, busyLine);
+}
+
+int
+QtGUIMainWindow::callIsBusy (Call* call, int id, int line, int busyLine)
+{
+  if(call->isAnswered() and getPrevLine() != line) {
+    // If the current line is not the line which is answered
+    _debug("CASE 3 Call %d already answered\n", id);
+    changeLineStatePixmap(line, BUSY);
+    putOnHoldBusyLine(busyLine);
+    if (getChooseLine()) {
+      // If a free line is off-hook, set this line to free state
+      changeLineStatePixmap(getChosenLine(), FREE);
+      dialtone(false);
+    }
+    peerAnsweredCall(id);
+    displayContext(id);
+  } else {
+    // If call is busy, put this call on hold
+    _debug("CASE 4 Put Call %d on-hold\n", id);
+    changeLineStatePixmap(line, ONHOLD);
+    displayStatus(ONHOLD_STATUS);
+    if (qt_onHoldCall(id) != 1) {
+      Manager::instance().displayErrorText(id, "On-hold call failed !\n");
+      return -1;
+    }
+  }
+  return 1;
+}
+
+int
+QtGUIMainWindow::callIsOnHold(int id, int line, int busyLine)
+{
+  changeLineStatePixmap(line, BUSY);
+  if (putOnHoldBusyLine(busyLine) == -1) {
+    Manager::instance().displayErrorText(id, "Off-hold call failed !\n");
+    return -1;
+  }
+  if (getChooseLine()) {
+    // If a free line is off-hook, set this line to free state
+    setChooseLine(false);
+    dialtone(false);
+    if (busyLine == -1) {
+      changeLineStatePixmap(getChosenLine(), FREE);
+    }
+  }		
+  _lcd->setInFunction(true);
+  if (qt_offHoldCall(id) != 1) {
+    Manager::instance().displayErrorText(id, "Off-hold call failed !\n");
+    return -1;
+  }
+
+  displayContext(id);
+  _lcd->setLenToShift(0);
+  return 1;
+}
+
+int
+QtGUIMainWindow::callIsIncoming (int id, int line, int busyLine)
+{
+  _TabIncomingCalls[line] = -1;
+  changeLineStatePixmap(line, BUSY);
+  putOnHoldBusyLine(busyLine);
+  if (qt_answerCall(id) != 1) {
+    Manager::instance().displayErrorText(id, "Answered call failed !\n");
+    return -1;
+  }
+  return 1;
+}
+
+void
+QtGUIMainWindow::clickOnFreeLine(int line, int busyLine)
+{
+  phLines[line]->button()->setPixmap(TabLinePixmap[line][BUSY]);
+  displayStatus(ENTER_NUMBER_STATUS);
+  setChooseLine(true);
+  setChosenLine(line);
+
+  if (!Manager::instance().getbCongestion()) {
+    putOnHoldBusyLine(busyLine);
+  } else {
+    // When a new line is off-hook -> hangup the previous line 
+    // which runs congestion tone 
+    changeLineStatePixmap(busyLine, FREE);
+    _lcd->clear(QString(ENTER_NUMBER_STATUS));
+    Manager::instance().congestion(false);
+    phLines[busyLine]->setCallId(0);
+  }
+  if (getPrevLine() != -1 and getPrevLine() != line 
+      and phLines[getPrevLine()]->isFree()) {
+    changeLineStatePixmap(getPrevLine(), FREE);
+  }
+
+  setPrevLine(line);	
+
+  _lcd->setInFunction(false);
+  _lcd->clearBuffer();
+  dialtone(true);
+}
+
+////////////////////////////////////////////////////////////////////////////
+// Public functions
+////////////////////////////////////////////////////////////////////////////
+Call* 
+QtGUIMainWindow::getCall (short id)
+{
+  return Manager::instance().getCall(id);
+}
+
+int 
+QtGUIMainWindow::associateCall2Line (short id)
+{
+  int i;
+
+  if (getChooseLine()) {
+    i = getCurrentLine();
+    phLines[i]->setState(BUSY);
+    phLines[i]->setCallId(id);
+    return i;
+  } else {
+    for (i = 0 ; i < NUMBER_OF_LINES; i++) {
+      if (phLines[i]->isFree()) {
+	phLines[i]->setState(BUSY);
+	phLines[i]->setCallId(id);
+	return i;
+      }
+    }
+    if (i == NUMBER_OF_LINES) {
+      displayError("All the lines are busy");
+      return -1;
+    }
+    return -1;
+  }
+}
+
+PhoneLine* 
+QtGUIMainWindow::getPhoneLine (short id)
+{
+  int i;
+  for (i = 0; i < NUMBER_OF_LINES; i++) {
+    if (phLines[i]->getCallId() == id) {
+      return phLines[i];
+    } 
+  }
+  if (i == NUMBER_OF_LINES) {
+    _debug("getPhoneLine(id): Id %d is not attributed to a phoneline\n", id);
+    return NULL;
+  }
+  return NULL;
+}
+
+int 
+QtGUIMainWindow::getCurrentLine (void)
+{
+  return _currentLine;
+}
+
+void 
+QtGUIMainWindow::setCurrentLine (int current)
+{
+  _currentLine = current;
+}
+
+bool
+QtGUIMainWindow::isCurrentId (short id)
+{
+  if (line2id(getCurrentLine()) == id) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
+int 
+QtGUIMainWindow::getElapse (void)
+{
+  int line = getCurrentLine();
+  return (phLines[line]->timer->elapsed() / 1000);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// Reimplementation of virtual functions
+/////////////////////////////////////////////////////////////////////////////
+
+int 
+QtGUIMainWindow::incomingCall (short id)
+{
+  int i;
+  // Associate call id with a phoneline i.
+  i = associateCall2Line(id);
+  if (i >= 0) {
+    _TabIncomingCalls[i] = id;
+    _debug("Phoneline %d associated to id %d\n", i, id);
+    if (getPhoneLine(id) != NULL) {
+      _lcd->setInFunction(false);
+      // Set boolean to true to blink pixmap to notify the ringing line 
+      getPhoneLine(id)->setbRinging(true);
+      // Set the status to the phoneline
+      getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+    }
+		
+    // To store information about stop scrolling text
+    _lcd->resetForScrolling (false);
+    phLines[i]->setStopScrolling(false);
+    // Set scrolling mode
+    phLines[i]->setScrolling(true);
+    _lcd->setIsScrolling(true);
+  }
+	
+  return i;
+}
+	
+void 
+QtGUIMainWindow::peerAnsweredCall (short id)
+{
+  dialtone(false);
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  // Afficher call-timer
+  startCallTimer(id);
+  Manager::instance().displayStatus(CONNECTED_STATUS);
+  setChooseLine(false);
+}
+
+int 
+QtGUIMainWindow::peerRingingCall (short id)
+{
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  return 1;
+}
+
+	
+int 
+QtGUIMainWindow::peerHungupCall (short id)
+{
+  int line = id2line(id);
+
+  // To store information about scrolling text
+  _lcd->resetForScrolling (true);
+  phLines[line]->setStopScrolling(true);
+  // Unset scrolling mode
+  _lcd->setIsScrolling(false);
+  phLines[getCurrentLine()]->setScrolling(false);
+
+  if (line == getCurrentLine() or getCurrentLine() == -1) {
+    stopCallTimer(id);
+    Manager::instance().displayStatus(HUNGUP_STATUS);
+    setCurrentLine(-1);
+  } else {
+    // Stop the call timer when hang up
+    if (getPhoneLine(id)->timer != NULL) {
+      getPhoneLine(id)->stopTimer();
+    }
+    getPhoneLine(id)->first = true;
+  }
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  changeLineStatePixmap(line, FREE);
+  getPhoneLine(id)->setbRinging(false);
+  getPhoneLine(id)->setCallId(0);
+  setChooseLine(false);
+  _TabIncomingCalls[line] = -1;
+	
+  return 1;
+}
+
+void 
+QtGUIMainWindow::displayTextMessage (short id, const string& message)
+{
+  (void)id; // To remove warning message of unused parameter
+  _lcd->clearBuffer();
+  _lcd->appendText(message);
+}
+	
+void 
+QtGUIMainWindow::displayErrorText (short id, const string& message)
+{
+  _lcd->clearBuffer();
+  _lcd->appendText(message);
+
+  // Set scrolling mode
+  _lcd->setIsScrolling(true);
+  phLines[id2line(id)]->setScrolling(true);
+}
+
+void 
+QtGUIMainWindow::displayError (const string& error)
+{
+  _lcd->clearBuffer();
+  _lcd->appendText(error);
+}
+	
+void 
+QtGUIMainWindow::displayStatus (const string& status)
+{
+  if (status.compare(HUNGUP_STATUS) == 0 or 
+      status.compare(TRANSFER_STATUS) == 0) {
+    _lcd->clearBuffer();
+  }
+  _lcd->setStatus(status);
+}
+
+void 
+QtGUIMainWindow::displayContext (short id)
+{
+  displayStatus(getCall(id)->getStatus());
+	
+  // To fetch information about scrolling text according to the context 
+  // of the phoneline.
+  _lcd->setIsScrolling(phLines[id2line(id)]->scrolling());
+  _lcd->resetForScrolling(phLines[id2line(id)]->stopScrolling());
+	
+  if (getCall(id)->isIncomingType()) {
+    displayTextMessage (id, getCall(id)->getCallerIdName());
+  } else if (getCall(id)->isOutgoingType()) {
+    displayTextMessage (id, getCall(id)->getCallerIdNumber());
+  } else {
+    _debug("No call with id %d\n", id);
+  }
+}
+
+void 
+QtGUIMainWindow::setup (void) 
+{
+  configuration();
+}
+
+int
+QtGUIMainWindow::selectedCall (void) 
+{
+  int id = -1;
+  if (getChooseLine()) {
+    id = line2id(getChosenLine());
+  }
+  return id;
+}
+
+////////////////////////////////////////////////////////////////////////////
+// IP-phone user actions
+////////////////////////////////////////////////////////////////////////////
+
+int 
+QtGUIMainWindow::qt_outgoingCall (void)
+{
+  int id;
+  int line = -1;
+
+	
+  if (_lcd->getTextBuffer() == NULL) {
+    Manager::instance().displayStatus(ENTER_NUMBER_STATUS);
+    return -1;
+  }
+  const string to(_lcd->getTextBuffer().ascii());
+  if (to.empty()) {
+    Manager::instance().displayStatus(ENTER_NUMBER_STATUS);
+    return -1;
+  } 
+	
+  id = outgoingCall(to);
+  if (id > 0) {	
+    line = associateCall2Line(id);
+    if(line == -1) {
+      _debug("Call %d -> there's no available lines\n", id);
+      return -1;
+    }
+    _debug("Call %d -> line %d\n", id, line);
+		
+
+    // To store information about stop scrolling text
+    _lcd->resetForScrolling (false);
+    phLines[line]->setStopScrolling(false);
+
+    setCurrentLine(line);
+    displayStatus(TRYING_STATUS);
+    Manager::instance().getCall(id)->setCallerIdNumber(to);
+    changeLineStatePixmap(line, BUSY);
+  } 
+	
+  return line;
+}	
+	
+int 
+QtGUIMainWindow::qt_hangupCall (short id)
+{
+  int i;
+  i = hangupCall(id);
+  stopCallTimer(id);	
+  displayStatus(HUNGUP_STATUS);
+  setCurrentLine(-1);
+  return i;
+}	
+	
+int 
+QtGUIMainWindow::qt_cancelCall (short id)
+{
+  int i;
+  i = cancelCall(id);
+  displayStatus(HUNGUP_STATUS);
+  setCurrentLine(-1);
+  return i;
+}
+
+int 
+QtGUIMainWindow::qt_answerCall (short id)
+{
+  int i;
+  i = answerCall(id);
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  startCallTimer(id);	
+  displayStatus(CONNECTED_STATUS);
+  getPhoneLine(id)->setbRinging(false);
+  return i;	
+}	
+	
+int 
+QtGUIMainWindow::qt_onHoldCall (short id)
+{
+  int i;
+  i = onHoldCall(id);
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  return i;	
+}	
+	
+int 
+QtGUIMainWindow::qt_offHoldCall (short id)
+{
+  int i;
+  i = offHoldCall(id);
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  displayStatus(CONNECTED_STATUS);
+  return i;	
+}	
+	
+int 
+QtGUIMainWindow::qt_transferCall (short id)
+{
+  int i;
+	
+  if (id != -1) {
+    const string to(_lcd->getTextBuffer().ascii());;
+    _debug("qt_transferCall: Transfer call %d to %s number\n", id, to.data());
+    i = transferCall(id, to);
+    getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+    return i;	
+  } else {
+    return 0;
+  }
+}	
+	
+void 
+QtGUIMainWindow::qt_muteOn (short id)
+{
+  muteOn(id);
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));	
+  displayStatus(MUTE_ON_STATUS);
+}	
+	
+void 
+QtGUIMainWindow::qt_muteOff (short id)
+{
+  muteOff(id);
+  getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus()));
+  displayStatus(CONNECTED_STATUS);
+}	
+	
+int 
+QtGUIMainWindow::qt_refuseCall (short id)
+{
+  int i;
+  i = refuseCall(id);
+  displayStatus(HUNGUP_STATUS);
+  getPhoneLine(id)->setbRinging(false);
+  _TabIncomingCalls[id2line(id)] = -1;
+  setCurrentLine(-1);
+  return i;	
+}	
+	
+///////////////////////////////////////////////////////////////////////////////
+// Public Methods implementations                                            //
+///////////////////////////////////////////////////////////////////////////////
+
+	
+/**
+ * Initializes LCD display, and move it at the configuration file position.
+ */
+void
+QtGUIMainWindow::setMainLCD (void) {
+  // Screen initialisation
+  this->_lcd->move (pt->getX(SCREEN), pt->getY(SCREEN));
+}
+
+
+int
+QtGUIMainWindow::toggleLine (int line) 
+{
+  int id;
+  int busyLine;
+  int ret = 1;
+	
+  Call* call;
+
+  if (line == -1) {
+    return -1;
+  }
+	
+  setCurrentLine(line);
+  busyLine = busyLineNumber();
+  setTransfer(false);
+	
+  id = line2id(line);
+  if (id > 0) {
+    // If the call-id already exists
+    call = getCall(id);
+    if (call == NULL) {
+      // Check if the call exists
+      return -1;
+    } else if (call->isRinging()) {
+      // If call is ringing
+      _debug("CASE 1: Call %d is ringing\n", id);
+      callIsRinging(id, line, busyLine);
+    } else if (!call->isIncomingType() and call->isProgressing()) {
+      // If call is progressing
+      _debug("CASE 2: Call %d is progressing\n", id);
+      callIsProgressing (id, line, busyLine);
+    } else if (call->isBusy()) {
+      ret = callIsBusy (call, id, line, busyLine);
+    } else if (call->isOnHold()) {
+      // If call is on hold, put this call on busy state
+      _debug("CASE 5: Put Call %d off-hold\n", id);
+      ret = callIsOnHold(id, line, busyLine);
+    } else if (call->isIncomingType()) {
+      // If incoming call occurs
+      _debug("CASE 6: Answer call %d\n", id);
+      ret = callIsIncoming (id, line, busyLine);
+    } else {
+      _debug("Others cases to handle\n");
+      ret = -1;
+    }	
+    setPrevLine(line);
+  } else {
+    // If just click on free line
+    _debug("CASE 7: New line off-hook\n");
+    clickOnFreeLine(line, busyLine);
+  }
+  return ret;
+}
+
+/**
+ * Actions occur when click on hang off button. 
+ * Use to validate incoming and outgoing call, transfer call.
+ */
+void
+QtGUIMainWindow::dial (void) 
+{
+  short i;
+  int line = -1;
+	
+  if ((i = isThereIncomingCall()) > 0) {
+    // If new incoming call 
+    line = id2line(i);
+    if (line != -1) {
+      _TabIncomingCalls[line] = -1;
+      toggleLine(line);
+    } else {
+      return;
+    }
+  } else if (getTransfer()){
+    // If call transfer
+    setTransfer(false);
+    int id = line2id(getCurrentLine());
+    if(qt_transferCall (id) != 1) {
+      Manager::instance().displayErrorText(id, "Transfer failed !\n");
+    }
+  } else {
+    // If new outgoing call  
+    if (getCurrentLine() < 0 or getChooseLine()) {
+      line = qt_outgoingCall();
+      if (line == -1) {
+	return;
+      } else {
+	setPrevLine(line);
+      }
+    }
+  }		
+}
+
+/**
+ * Hangup the current call.
+ */
+void
+QtGUIMainWindow::hangupLine (void) 
+{  
+  int i;
+  int line = getCurrentLine();
+  int id = phLines[line]->getCallId();
+
+  setTransfer(false);
+
+  // To store information about stop scrolling text
+  _lcd->resetForScrolling (true);
+  phLines[line]->setStopScrolling(true);
+  // Unset scrolling mode
+  _lcd->setIsScrolling(false);
+  phLines[getCurrentLine()]->setScrolling(false);
+
+  if (Manager::instance().getbCongestion() and line != -1) {
+    // If congestion tone
+    if (id > 0 and qt_hangupCall(id)) {
+      changeLineStatePixmap(line, FREE);
+      _lcd->clear(QString(ENTER_NUMBER_STATUS));
+      Manager::instance().congestion(false);
+      phLines[line]->setCallId(0);
+    } else if (id == 0) {
+      changeLineStatePixmap(line, FREE);
+    } 
+  } else if ((i = isThereIncomingCall()) > 0){
+    // To refuse new incoming call 
+    _debug("Refuse call %d\n", id);
+    if (!qt_refuseCall(i)) {
+      Manager::instance().displayErrorText(id, "Refused call failed !\n");
+    }
+    changeLineStatePixmap(id2line(i), FREE);
+    phLines[id2line(i)]->setCallId(0);
+  } else if (line >= 0 and id > 0 and getCall(id)->isProgressing()) {
+    // If I want to cancel a call before ringing.
+    if (!qt_cancelCall(id)) {
+      Manager::instance().displayErrorText(id, "Cancelled call failed !\n");
+    }
+    changeLineStatePixmap(line, FREE);
+    phLines[line]->setCallId(0);
+    setChooseLine(false);
+  } else if (line >= 0 and id > 0) {
+    // If hangup current line normally
+    _debug("Hangup line %d\n", line);
+    if (!qt_hangupCall(id)) {
+      Manager::instance().displayErrorText(id, "Hangup call failed !\n");
+    }
+    changeLineStatePixmap(line, FREE);
+    phLines[line]->setCallId(0);
+    setChooseLine(false);
+  } else if (line >= 0) {
+    _debug("Just load free pixmap for the line %d\n", line);
+    changeLineStatePixmap(line, FREE);
+    dialtone(false);
+    setChooseLine(false);
+    setCurrentLine(-1);
+  } 
+}
+
+/**
+ * Stop the blinking message slot and load the message-off button pixmap.
+ */
+void
+QtGUIMainWindow::stopVoiceMessageNotification (void) {
+  _msgVar = false;
+  phoneKey_msg->setPixmap(TabMsgPixmap[FREE]);
+}
+
+void
+QtGUIMainWindow::startVoiceMessageNotification (void) {
+  _msgVar = true;
+}
+
+/**
+ * Stop the call timer.
+ * 
+ * @param	line: number of line 
+ */
+void
+QtGUIMainWindow::stopCallTimer (short id) {
+  // Stop the call timer when hang up
+  if (getPhoneLine(id)->timer != NULL) {
+    getPhoneLine(id)->stopTimer();
+  }
+  // No display call timer, display current hour
+  _lcd->setInFunction(false);
+  getPhoneLine(id)->first = true;
+}
+
+/**
+ * Start the call timer.
+ * 
+ * @param	line: number of line 
+ */
+void
+QtGUIMainWindow::startCallTimer (short id) {
+  // Call-timer enable
+  _lcd->setInFunction(true);
+                                                                                
+  // To start the timer for display text just one time
+  if (getPhoneLine(id)->first) {
+    getPhoneLine(id)->startTimer();
+    getPhoneLine(id)->first = false;
+  }
+} 
+
+///////////////////////////////////////////////////////////////////////////////
+// Public slot implementations                                               //
+///////////////////////////////////////////////////////////////////////////////
+void
+QtGUIMainWindow::volumeSpkrChanged (int val) {
+  Manager::instance().setSpkrVolume(val);
+}
+
+void
+QtGUIMainWindow::volumeMicChanged (int val) {
+  Manager::instance().setMicroVolume(val);
+}
+
+void
+QtGUIMainWindow::registerSlot (void) {
+  _panel->saveSlot();	
+  registerVoIPLink();
+}
+
+/**
+ * Slot to blink with free and busy pixmaps when line is hold.
+ */
+void
+QtGUIMainWindow::blinkLineSlot (void) {
+  static bool isOn = false;
+  int state = BUSY;                                                                                 
+  if  (!isOn) {
+    state = FREE;
+  }
+                                                                                
+  for (int i = 0; i < NUMBER_OF_LINES; i++) {
+    // If lines are hold on, set blinking pixmap
+    if (phLines[i]->isOnHold()) {
+      phLines[i]->button()->setPixmap(TabLinePixmap[i][state]);
+    }
+  }
+  isOn = !isOn;
+}
+
+// Dial the voicemail Number automatically when button is clicked
+void
+QtGUIMainWindow::button_msg (void) {
+  stopVoiceMessageNotification();
+  _lcd->clearBuffer();
+  _lcd->appendText(get_config_fields_str(PREFERENCES, VOICEMAIL_NUM));
+  if (qt_outgoingCall() == -1) {
+    return;
+  }
+}
+
+// Allow to enter a phone number to transfer the current call.
+// This number is validated by ok-button or typing Enter
+void
+QtGUIMainWindow::button_transfer (void) {
+  int line_num = getCurrentLine();
+  if (line_num != -1 and phLines[line_num]->isBusy()
+      and !Manager::instance().getbCongestion()) {
+    setTransfer(true);
+    onHoldCall(line2id(getCurrentLine()));
+    displayStatus(TRANSFER_STATUS);
+  }
+}
+
+void
+QtGUIMainWindow::button_conf (void) {
+  //TODO: This feature is not implemented yet
+  QMessageBox::information(this, "Conference",
+			   "This feature is not implemented yet", QMessageBox::Yes);
+}
+
+void
+QtGUIMainWindow::button_line0 (void) {
+  toggleLine (0);
+	 
+}
+
+void
+QtGUIMainWindow::button_line1 (void) {
+  toggleLine (1);
+}
+
+void
+QtGUIMainWindow::button_line2 (void) {
+  toggleLine (2);
+}
+
+void
+QtGUIMainWindow::button_line3 (void) {
+  toggleLine (3);
+}
+
+void
+QtGUIMainWindow::button_line4 (void) {
+  toggleLine (4);
+}
+
+void
+QtGUIMainWindow::button_line5 (void) {
+  toggleLine (5);
+}
+
+void
+QtGUIMainWindow::button_mute(void) 
+{
+  // Disable micro sound
+  static bool isOn = true;
+	
+  int id = line2id(getCurrentLine());
+	
+  if (id != -1 and Manager::instance().getNumberOfCalls() > 0) {
+    // If there is at least a pending call
+    if(!isOn) {
+      qt_muteOff(id);
+    } else {
+      qt_muteOn(id);
+    }                                                                       
+    isOn = !isOn;
+  }
+}
+
+// Show the setup _panel
+void
+QtGUIMainWindow::configuration (void) {
+  _panel->show();
+}
+
+void
+QtGUIMainWindow::addressBook (void) {
+  QMessageBox::information(this, "Directory",
+			   "This feature is not implemented yet", QMessageBox::Yes);
+}
+
+// Handle the dtmf-button click
+void
+QtGUIMainWindow::dtmfKeypad (void) {
+  if (_keypad->isVisible()) {
+    // Hide _keypad if it's visible.
+    _keypad->hide();
+  } else {
+                                                                                
+    if (_first and !getMoved()) {
+      // If it's the first time that _keypad is shown.
+      // The position is fixed with the main initial position.
+      _first = false;
+      _keypad->setGeometry (MAIN_INITIAL_POSITION +
+			    this->getSourceImage().width(),
+			    MAIN_INITIAL_POSITION,
+			    _keypad->getSourceImage().width(),
+			    _keypad->getSourceImage().height());
+    } else {
+      // If main window is moved, we calculate the _keypad new position
+      // to fix it with main window
+      if (getMoved()) {
+	_keypad->setGeometry (positionOffsetX(),
+			      getGlobalMouseY() - getMouseY(),
+			      _keypad->getSourceImage().width(),
+			      _keypad->getSourceImage().height());
+      }
+      if (_keypad->getMoved()) {
+	// If _keypad is moved, it shows at the previous position
+	_keypad->setGeometry (
+			      _keypad->getGlobalMouseX()-_keypad->getMouseX(),
+			      _keypad->getGlobalMouseY()-_keypad->getMouseY(),
+			      _keypad->getSourceImage().width(),
+			      _keypad->getSourceImage().height());
+      }
+    }
+                                                                                
+    // Show _keypad if it's hidden.
+    _keypad->show();
+  }
+
+}
+
+// Get x-position offset, related to the screen size, to show numeric _keypad
+int
+QtGUIMainWindow::positionOffsetX (void) {
+  QRect screenRect;
+  int offset;
+
+  // Get the screen geometry
+  screenRect = (QApplication::desktop())->screenGeometry (0);
+	
+  offset = this->getSourceImage().width() - getMouseX() + getGlobalMouseX();
+  if (offset + _keypad->getSourceImage().width() > screenRect.right()) {
+    return getGlobalMouseX() - (
+				getMouseX() + _keypad->getSourceImage().width());
+  } else {
+    return offset;
+  }
+}
+
+/**
+ * Slot when receive a message, blink pixmap.
+ */
+void
+QtGUIMainWindow::blinkMessageSlot (void) {
+  static bool isOn = false;     
+  int stateMsg = BUSY;
+                                                                                
+  if(!isOn) {
+    stateMsg = FREE;
+  }
+                                                                                
+  if (_msgVar) {
+    phoneKey_msg->setPixmap(TabMsgPixmap[stateMsg]);
+  }
+  isOn = !isOn;
+}
+
+
+/**
+ * Slot when phone is ringing, blink pixmap.
+ */
+void
+QtGUIMainWindow::blinkRingSlot (void) 
+{
+  static bool isOn = false;
+  int state = BUSY;
+  int i;
+
+  if (isThereIncomingCall() != -1) {
+    // For the line
+    if  (!isOn) {
+      state = FREE;
+    }
+    for (i = 0; i < NUMBER_OF_LINES; i++) {
+      if (isIncomingCall(i) != -1 and phLines[i]->getbRinging()) {
+	phLines[i]->button()->setPixmap(TabLinePixmap[i][state]);
+      }
+    }
+    isOn = !isOn;
+  }
+}
+
+/**
+ * Slot to quit application with or without QMessageBox confirmation
+ */
+void
+QtGUIMainWindow::qt_quitApplication (void) 
+{
+  // Save volume positions
+  // TODO: save position if direction is horizontal
+  Config::set("Audio", "Volume.speakers_x",  pt->getX(VOL_SPKR));
+  if (vol_spkr->getValue() != 0) {
+    Config::set("Audio", "Volume.speakers_y",  pt->getY(VOL_SPKR) -
+		vol_spkr->getValue());
+  }
+  Config::set("Audio", "Volume.micro_x",  pt->getX(VOL_MIC));
+  if (vol_mic->getValue() != 0) {
+    Config::set("Audio", "Volume.micro_y",  pt->getY(VOL_MIC) -
+		vol_mic->getValue());
+  }
+  // Save current position of the controls volume
+  save();
+	
+  if (get_config_fields_int(PREFERENCES, CONFIRM_QUIT) == YES) {
+    // If message-box
+    if (QMessageBox::question(this, "Confirm quit",
+			      "Are you sure you want to quit SFLPhone ?",
+			      QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {		
+      QApplication::exit(0);
+      if (!quitApplication()) {
+	_debug("Your data didn't be saved\n");
+      }
+    }
+  } else {
+    // If no message-box
+    QApplication::exit(0);
+    if (!quitApplication()) {
+      _debug("Your data didn't be saved\n");
+    }
+  }
+}
+
+/**
+ * Slot to strip _urlinput.
+ */
+void
+QtGUIMainWindow::stripSlot (void) {
+  QRegExp rx(REG_EXPR);
+  _lcd->appendText(_urlinput->url->text().remove(rx));
+  _urlinput->close();
+  dial();
+}
+
+/**
+ * Slot when numeric _keypad phonekey is pressed, append the key text and setup 
+ * the DTMF _keypad .
+ *
+ * @param	button group id 
+ */ 
+void
+QtGUIMainWindow::pressedKeySlot (int id) {
+  char code = 0;
+  int pulselen = 0;
+  int callid;
+  int k, spkrVolume;
+  int16* buf_ctrl_vol;
+                                                                                
+  // Stop dial tone because we started dialing.
+  if (_dialtone) {
+    dialtone(false);
+  }
+                                                                                
+  switch (id) {
+  case KEYPAD_ID_0:       code = '0'; break;
+  case KEYPAD_ID_1:       code = '1'; break;
+  case KEYPAD_ID_2:       code = '2'; break;
+  case KEYPAD_ID_3:       code = '3'; break;
+  case KEYPAD_ID_4:       code = '4'; break;
+  case KEYPAD_ID_5:       code = '5'; break;
+  case KEYPAD_ID_6:       code = '6'; break;
+  case KEYPAD_ID_7:       code = '7'; break;
+  case KEYPAD_ID_8:       code = '8'; break;
+  case KEYPAD_ID_9:       code = '9'; break;
+  case KEYPAD_ID_STAR:    code = '*'; break;
+  case KEYPAD_ID_HASH:    code = '#'; break;
+  }
+       
+  callid = line2id(getCurrentLine());
+  if (callid != -1 and getCall(callid)->isBusy()) {
+    // To send DTMF during call, no display of them
+    sendDtmf(callid, code); 
+  } else if (Manager::instance().isDriverLoaded()
+	     and Manager::instance().error()->getError() == 0) {
+    // To compose, phone number appears in the screen if the driver is loaded
+    // and there is no error in configuration setup
+    _lcd->appendText (code);
+
+    // Unset scrolling mode
+    _lcd->setIsScrolling(false);
+    phLines[getCurrentLine()]->setScrolling(false);
+  }
+
+  // To generate the dtmf if there is no error in configuration
+  if (Manager::instance().error()->getError() == 0) {
+    // Handle dtmf
+    _key->startTone(code);
+    _key->generateDTMF(_buf, SAMPLING_RATE);
+		
+    // Determine dtmf pulse length
+    pulselen = get_config_fields_int(SIGNALISATION, PULSE_LENGTH);
+    int size = pulselen * (OCTETS /1000);
+	  
+    buf_ctrl_vol = new int16[size*CHANNELS];
+    spkrVolume = Manager::instance().getSpkrVolume();
+		
+    // Control volume and format mono->stereo
+    for (int j = 0; j < size; j++) {
+      k = j*2;  
+      buf_ctrl_vol[k] = buf_ctrl_vol[k+1] = _buf[j] * spkrVolume/100;
+    }
+			
+    Manager::instance().getAudioDriver()->urgentRingBuffer().flush();
+    // Put buffer to urgentRingBuffer 
+    Manager::instance().getAudioDriver()->urgentRingBuffer().Put(buf_ctrl_vol, 
+								 size * CHANNELS);
+
+    // We activate the stream if it's not active yet.
+    if (!Manager::instance().getAudioDriver()->isStreamActive()) {
+      Manager::instance().getAudioDriver()->startStream();
+      Manager::instance().getAudioDriver()->sleep(pulselen);
+      Manager::instance().getAudioDriver()->stopStream();
+      Manager::instance().getAudioDriver()->urgentRingBuffer().flush();
+    } else {
+      Manager::instance().getAudioDriver()->sleep(pulselen);
+    }
+			
+    delete[] buf_ctrl_vol;
+  }
+}
+
+// Save settings in config-file
+void 
+QtGUIMainWindow::save() {
+  saveConfig();
+}
+
+void
+QtGUIMainWindow::applySkin (void) {
+  _apply = true;
+  // For skin of the screen
+  _lcd->initGraphics();
+  setMainLCD();
+  // For skin of the gui
+  initSkin();
+}
+
+
+// Handle operation to minimize the application
+void 
+QtGUIMainWindow::reduceHandle (void) {
+  if (get_config_fields_int(PREFERENCES, CHECKED_TRAY)) {
+    clickHandle();
+  } else {
+    showMinimized();
+  }
+}
+
+// Handle mouse left-button click to minimize/maximize the application
+void
+QtGUIMainWindow::clickHandle (void) {
+  if (this->isShown()) {
+    hide();
+  }
+	
+  else if (this->isMinimized()) {
+    showMaximized();
+  }
+	
+  else {
+    show();
+  }
+}
+
+void
+QtGUIMainWindow::pressedKey0 (void) {
+  pressedKeySlot (KEYPAD_ID_0);
+}
+
+void
+QtGUIMainWindow::pressedKey1 (void) {
+  pressedKeySlot (KEYPAD_ID_1);
+}
+
+void
+QtGUIMainWindow::pressedKey2 (void) {
+  pressedKeySlot (KEYPAD_ID_2);
+}
+void
+QtGUIMainWindow::pressedKey3 (void) {
+  pressedKeySlot (KEYPAD_ID_3);
+}
+void
+QtGUIMainWindow::pressedKey4 (void) {
+  pressedKeySlot (KEYPAD_ID_4);
+}
+void
+QtGUIMainWindow::pressedKey5 (void) {
+  pressedKeySlot (KEYPAD_ID_5);
+}
+void
+QtGUIMainWindow::pressedKey6 (void) {
+  pressedKeySlot (KEYPAD_ID_6);
+}
+void
+QtGUIMainWindow::pressedKey7 (void) {
+  pressedKeySlot (KEYPAD_ID_7);
+}
+void
+QtGUIMainWindow::pressedKey8 (void) {
+  pressedKeySlot (KEYPAD_ID_8);
+}
+void
+QtGUIMainWindow::pressedKey9 (void) {
+  pressedKeySlot (KEYPAD_ID_9);
+}
+void
+QtGUIMainWindow::pressedKeyStar  (void) {
+  pressedKeySlot (KEYPAD_ID_STAR);
+}
+void
+QtGUIMainWindow::pressedKeyHash (void) {
+  pressedKeySlot (KEYPAD_ID_HASH);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Protected Methods implementations                                         //
+///////////////////////////////////////////////////////////////////////////////
+/**
+ * Reimplementation of keyPressEvent() to handle the keyboard mapping.
+ */
+void
+QtGUIMainWindow::keyPressEvent(QKeyEvent *e) {
+  // Misc. key	  
+  switch (e->key()) {
+  case Qt::Key_At:
+  case Qt::Key_Colon:
+  case Qt::Key_Period:
+  case Qt::Key_Comma:
+  case Qt::Key_Plus:
+  case Qt::Key_Minus:
+  case Qt::Key_Slash:
+    _lcd->appendText(QChar(e->key()));
+    return;
+    break;
+
+  case Qt::Key_Backspace:
+    _lcd->backspace();
+    return;
+    break;	
+
+  case Qt::Key_Escape:
+    hangupLine();
+    return;
+    break;	
+
+  case Qt::Key_Return:
+  case Qt::Key_Enter:
+    dial();
+    return;
+    break;	
+
+  case Qt::Key_F1:
+  case Qt::Key_F2:
+  case Qt::Key_F3:
+  case Qt::Key_F4:
+  case Qt::Key_F5:
+  case Qt::Key_F6:
+    this->toggleLine(e->key() - Qt::Key_F1);
+    return;
+    break;
+		
+    // To clear the screen	
+  case Qt::Key_L:
+    if (e->state() == Qt::ControlButton ) {		
+      _lcd->clear();
+      return;
+    }
+    break;
+    // To quit the application
+  case Qt::Key_Q :
+    if (e->state() == Qt::ControlButton ) {
+      emit keyPressed(e->key());
+      return;			
+    }			
+    break;
+
+    // To open input line
+  case Qt::Key_O :
+    if (e->state() == Qt::ControlButton ) {
+      _urlinput->show();
+      return;			
+    }			
+    break;
+
+    // To show window setup
+  case Qt::Key_C :
+    if (e->state() == Qt::ControlButton ) {
+      configuration();
+      return;			
+    }			
+    break;
+
+    // To show/hide dtmf-keypad
+  case Qt::Key_D :
+    if (e->state() == Qt::ControlButton ) {
+      dtmfKeypad();
+      return;			
+    }			
+    break;
+
+    // To set mode (text/num)
+  case Qt::Key_Space:
+    if (this->isInNumMode()) {
+      this->setMode(TEXT_MODE);
+    } else {
+      this->setMode(NUM_MODE);
+    }
+    return;
+    break;
+
+    // To put mute on/off the mike sound
+  case Qt::Key_M :
+    if (e->state() == Qt::ControlButton ) {
+      button_mute();
+      return;			
+    }			
+    break;
+
+    // To transfer call
+  case Qt::Key_T :
+    if (e->state() == Qt::ControlButton ) {
+      button_transfer();
+      return;			
+    }			
+    break;
+
+  case Qt::Key_Alt:
+  case Qt::Key_CapsLock:
+  case Qt::Key_Shift:
+  case Qt::Key_Tab:
+  case Qt::Key_Control:
+    return;
+    break;
+
+  default:
+    break;
+  }
+
+  if (QChar(e->key()).isDigit() ) {
+    // Numeric _keypad
+    if (e->key() == Qt::Key_0) {
+      pressedKeySlot(KEYPAD_ID_0);
+    } else {
+      pressedKeySlot(e->key() - Qt::Key_0 - 1);
+    }
+  }
+	
+  // Handle * and # too.
+  else if ((e->key() == Qt::Key_Asterisk)
+	   or (e->key() == Qt::Key_NumberSign)) {
+    (e->key() == Qt::Key_Asterisk) ? 
+      pressedKeySlot(KEYPAD_ID_STAR)
+      : pressedKeySlot(KEYPAD_ID_HASH);
+  }
+	
+  // If letter _keypad and numeric mode, display digit.
+  else if (QChar(e->key()).isLetter() && this->isInNumMode() ) {
+    pressedKeySlot(
+		   (NumericKeypadTools::keyToNumber(e->key())- Qt::Key_0) - 1);
+  }
+	
+  // If letter _keypad and text mode, display letter.
+  else if (QChar(e->key()).isLetter() && this->isInTextMode()) {
+    _lcd->appendText(QChar(e->key()).lower());
+  }  
+}
+
+// EOF
diff --git a/src/gui/official/qtGUImainwindow.h b/src/gui/official/qtGUImainwindow.h
new file mode 100644
index 0000000000000000000000000000000000000000..54bdf5eb773114f913622a1e51ec6f60dcd6247f
--- /dev/null
+++ b/src/gui/official/qtGUImainwindow.h
@@ -0,0 +1,441 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __QT_GUI_MAIN_WINDOW_H__
+#define __QT_GUI_MAIN_WINDOW_H__
+
+#include <qimage.h>
+#include <qpixmap.h>
+#include <qpopupmenu.h>
+#include <qwidget.h>
+
+#include "skin.h"
+#include "configurationpanelui.h"
+#include "phoneline.h"
+#include "transqwidget.h"
+#include "trayicon.h"
+#include "url_input.h"
+
+#define	MAIN_INITIAL_POSITION	20
+
+// To type with keyboard what you want to appear in the screen.
+#define TEXT_MODE				0
+#define NUM_MODE				1
+
+class JPushButton;
+class MyDisplay;
+class MyTrayIcon;
+class NumericKeypad;
+class PhoneLine;		
+class Point;
+class URL_Input;
+class VolumeControl;
+///////////////////////////////////////////////////////////////////////////////
+// Tray Icon class
+///////////////////////////////////////////////////////////////////////////////
+class MyTrayIcon : public TrayIcon
+{
+	Q_OBJECT
+public:
+	MyTrayIcon(const QPixmap &, const QString &, QPopupMenu *popup = 0, 
+			QObject *parent = 0, const char *name = 0 );
+	~MyTrayIcon(){};
+
+	QPopupMenu *menu;
+
+signals:
+	void	clickedLeft(void);
+protected:	
+	void 	mousePressEvent (QMouseEvent *);
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// GUI main window
+///////////////////////////////////////////////////////////////////////////////
+class QtGUIMainWindow : public TransQWidget {
+	Q_OBJECT
+public:
+	// Default Constructor and destructor
+	QtGUIMainWindow	(QWidget* = 0, const char* = 0,WFlags = 0);
+	~QtGUIMainWindow(void);
+	
+	// To build an array of pixmap according to the state
+	QPixmap	 TabLinePixmap[NUMBER_OF_LINES][NUMBER_OF_STATES];
+
+	/*
+	// Reimplementation of virtual functions
+	virtual int incomingCall (short id);
+	virtual void peerAnsweredCall (short id);
+	virtual int peerRingingCall (short id);
+	virtual int peerHungupCall (short id);
+	virtual void displayTextMessage (short id, const string& message);
+	virtual void displayErrorText (short id, const string& message);
+	virtual void displayError (const string& error);
+	virtual void displayStatus (const string& status);
+	virtual void displayContext (short id);
+	virtual string getRingtoneFile (void);
+	virtual void setup (void);
+	*/
+		
+	/*
+	 * Return the id matching to the chosen line
+	 */
+	virtual int selectedCall (void);
+
+	// Handle IP-phone user actions
+	int qt_outgoingCall (void); 	
+	int qt_hangupCall (short id);
+	int qt_cancelCall (short id);
+	int qt_answerCall (short id);
+	int qt_onHoldCall (short id);
+	int qt_offHoldCall (short id);
+	int qt_transferCall (short id);
+	void qt_muteOn (short id);
+	void qt_muteOff (short id);
+	int qt_refuseCall (short id);
+	
+	/*
+	 * Return the call corresponding to the id
+	 */
+	Call* getCall (short id);
+	
+	/*
+	 * Return the phoneline corresponding to the call-id
+	 */
+	PhoneLine* getPhoneLine (short id);
+
+	/*
+	 * Accessor of the current line
+	 */
+	int getCurrentLine (void);
+
+	/*
+	 * Modifior of the current line
+	 */
+	void setCurrentLine (int current);
+
+	/*
+	 * Check if 'id' is the current id
+	 */
+	bool isCurrentId (short id);
+	
+	/*
+	 * Return elapse for call-timer
+	 */
+	int getElapse (void);
+
+	/*
+	 * Set the skin path from the setup
+	 */ 
+	QString  setPathSkin		(void);
+
+	/**
+	 * Sets the corresponding pixmap button according to its state.
+	 * Handle operations between lines (on hold, off hold) when you click on
+	 * a line. Manage the different cases which could occur.
+	 * 
+	 * @param	line: number of the current line
+	 */
+	int 	 toggleLine 	 	(int);
+	
+	/*
+	 * Functions to handle timer call
+	 */
+	void	 stopCallTimer 		(short);
+	void	 startCallTimer 	(short);
+
+	/*
+	 * Stop the blinking-signal when you check your voicemail (not used yet)
+	 */
+	void 	stopVoiceMessageNotification	(void);
+	void 	startVoiceMessageNotification	(void);
+
+	/*
+	 * Manage if you selected a line before dialing 
+	 */
+	inline void setChooseLine (bool b) { _chooseLine = b; }
+	inline bool getChooseLine (void) { return _chooseLine; }
+	
+	/*
+	 * Store the line you selected before dialing
+	 */
+	inline void setChosenLine (int line) { _chosenLine = line; }
+	inline int getChosenLine (void) { return _chosenLine; }
+
+	/*
+	 * Manage if you are in transfer mode
+	 */
+	inline void setTransfer (bool b) { _transfer = b; }
+	inline bool getTransfer (void) { return _transfer; }
+
+signals:
+	void 	 keyPressed			(int);
+
+public slots:
+	// Slot when you click on ok-button or type Enter
+	void 	 dial				(void);
+	
+	// Notification when you have received incoming call 
+	void 	 blinkRingSlot		(void);
+
+	// Notification when you have put on-hold a call
+	void 	 blinkLineSlot		(void);
+
+	// Notification when you have received message in your mailbox
+	void 	 blinkMessageSlot	(void);
+
+	// Slot to use numeric keypad
+	void 	 pressedKeySlot		(int);
+
+	// To remove specified characters before appending the text in url-input 
+	void 	 stripSlot			(void);
+
+	// To show the address book (not implemented yet)
+	void 	 addressBook 		(void);
+
+	// To show keypad at the specified position
+	void	 dtmfKeypad			(void);
+
+	// To show setup windows
+	void 	 configuration		(void);
+
+	// Slot to hangup call
+	void 	 hangupLine			(void);
+
+	// Slot to quit application
+	void 	 qt_quitApplication	(void);
+	
+	// Manage different buttons in the phone	
+	void 	 button_mute		(void);
+	void 	 button_line0		(void);
+	void 	 button_line1		(void);
+	void 	 button_line2		(void);
+	void 	 button_line3		(void);
+	void 	 button_line4		(void);
+	void 	 button_line5		(void);
+	void 	 button_msg			(void);
+	void 	 button_transfer	(void);
+	void 	 button_conf		(void);
+	void 	 clickHandle 		(void);
+	void	 reduceHandle		(void);
+	
+	// Handle pressed key of the dtmf keypad
+	void 	 pressedKey0		(void);
+	void 	 pressedKey1		(void);
+	void 	 pressedKey2		(void);
+	void 	 pressedKey3		(void);
+	void 	 pressedKey4		(void);
+	void 	 pressedKey5		(void);
+	void 	 pressedKey6		(void);
+	void 	 pressedKey7		(void);
+	void 	 pressedKey8		(void);
+	void 	 pressedKey9		(void);
+	void 	 pressedKeyStar		(void); // (*)
+	void 	 pressedKeyHash		(void); // (#)
+
+	// Manage volume control
+	void	 volumeSpkrChanged		(int);
+	void	 volumeMicChanged		(int);
+
+	// To register manually
+	void	 registerSlot			(void);
+	// To save configuration
+	void	 save				(void);
+	// To apply selected skin
+	void	 applySkin			(void);
+
+protected:
+	// To handle the key pressed event
+	void 		 keyPressEvent 	(QKeyEvent *);
+
+private:
+	NumericKeypad* 		_keypad;
+	MyDisplay*			_lcd;
+	QTimer*				_blinkTimer;
+	URL_Input* 			_urlinput;
+	ConfigurationPanel*	_panel;
+	QPopupMenu*			_mypop;
+	MyTrayIcon*			_trayicon;
+	DTMF*				_key;
+	PhoneLine*			phLines[NUMBER_OF_LINES];
+
+	JPushButton*		phoneKey_msg;
+	JPushButton*		phoneKey_transf;
+	JPushButton*		phoneKey_conf;
+	JPushButton*		phoneKey_line0;
+	JPushButton*		phoneKey_line1;
+	JPushButton*		phoneKey_line2;
+	JPushButton*		phoneKey_line3;
+	JPushButton*		reduce_button;
+	JPushButton*		quit_button;
+	JPushButton*		addr_book_button;
+	JPushButton*		configuration_button;
+	JPushButton*		hangup_button;
+	JPushButton*		dial_button;
+	JPushButton*		mute_button;
+	JPushButton*		dtmf_button;
+	int16*				_buf;
+	// Configuration skin file
+	Point*		pt;
+
+	// For volume buttons
+	VolumeControl*		vol_mic;
+    VolumeControl*		vol_spkr;
+	Vector*		micVolVector;
+    Vector*		spkrVolVector;
+	int			vol_mic_x, 
+				vol_mic_y;
+	int			vol_spkr_x, 
+				vol_spkr_y;
+
+	// To construct ring rect pixmap
+	QImage 		imageRing;
+	QImage 		imageNoRing;
+
+	QPixmap		TabMsgPixmap[NUMBER_OF_STATES];
+	int 		modeType;
+	bool		_apply;
+
+	bool b_dialtone;
+
+	// For numeric keypad
+	bool _first;
+	
+	bool _transfer;
+	bool _msgVar;
+	
+	// For outgoing call, if it occurs on the first free line or on the chosen
+	// line by the user
+	bool _chooseLine;
+	int _chosenLine;
+	int _prevLine;
+
+	// Array of incoming calls, contains call-id
+	int _TabIncomingCalls[NUMBER_OF_LINES];
+
+	// The current phoneline
+	int _currentLine;
+
+	bool _dialtone;
+	
+	////////////////////
+	// Private functions
+	////////////////////
+
+	inline void setPrevLine(int line) { _prevLine = line; }
+	inline int getPrevLine(void) { return _prevLine; }
+
+	// Set position for screen 
+	void setMainLCD		 	(void);
+
+	// Handle num/text mode
+	void setMode			(int);
+	bool isInTextMode		(void);
+	bool isInNumMode		(void);
+
+	// Initialize all the skin 
+	void initSkin			(void);
+	void initButtons 		(void);
+	void initVolume 		(void);
+	void initSpkrVolumePosition (void);
+	void initMicVolumePosition (void);
+
+	// Delete buttons called in destructor
+	void deleteButtons		(void);
+	
+	// Initialize timer for blinking notification
+	void initBlinkTimer		(void);
+
+	// Initialize all the connections (SIGNAL->SLOT) 
+	void connections		(void);
+
+	// Set the ringtone file path
+	string  ringFile		(void);
+
+	// Set position for numeric keypad
+	int  positionOffsetX	(void);
+
+	/*
+	 * Associate a phoneline number to a call identifiant
+	 * @param	identifiant call
+	 * @return	phoneline number
+	 */
+	int associateCall2Line (short id);
+	
+	/**
+	 * Search the busy line number among all lines and different with
+	 * current line number.
+	 *
+	 * @return  number of busy line
+	 */
+	int  busyLineNumber		(void);
+
+	/*
+	 * Put in state on-hold the line 'line'
+	 */
+	int putOnHoldBusyLine 	(int line);
+	
+	/*
+	 * Return the id of the first line number if incoming call occurs
+	 * Otherwise return -1
+	 */
+	short isThereIncomingCall	(void);
+
+	/*
+	 * Return the id of the line number 'line' if an incoming call occurs
+	 * Otherwise return -1
+	 */
+	short isIncomingCall	(int line);
+
+	/*
+	 * Return phoneline number according to the identifiant 'id'
+	 * id2line returns -1 if phoneline number is not found
+	 */
+	int id2line				(short id);
+	
+	/*
+	 * Return id according to the phoneline number 'line'
+	 * line2id returns -1 if id is not found
+	 */
+	short line2id			(int line);
+
+	/*
+	 * Change state and pixmap of the line 'line' according to the state 'state'
+	 */
+	void changeLineStatePixmap (int line, line_state state);
+
+	/*
+	 * Handle dial tone
+	 */
+	void dialtone (bool var);
+
+	/* 
+	 * Functions used in toggle function
+	 */
+	void callIsRinging(int id, int line, int busyLine);
+	void callIsProgressing (int id, int line, int busyLine);
+	int callIsBusy (Call* call, int id, int line, int busyLine);
+	int callIsOnHold(int id, int line, int busyLine);
+	int callIsIncoming (int id, int line, int busyLine);
+	void clickOnFreeLine(int line, int busyLine);
+
+};
+
+
+#endif	// __QT_GUI_MAIN_WIDOW_H__
diff --git a/src/gui/official/sessionmanager.h b/src/gui/official/sessionmanager.h
new file mode 100644
index 0000000000000000000000000000000000000000..5e82fdbee54af5c0841bb9422337ec9f2b86abb8
--- /dev/null
+++ b/src/gui/official/sessionmanager.h
@@ -0,0 +1,29 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Jean-Philippe Barrette-LaPierre
+ *             <jean-philippe.barrette-lapierre@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef SFLPHONEGUI_SESSIONMANAGER_H
+#define SFLPHONEGUI_SESSIONMANAGER_H
+
+#include <qthread.h>
+
+
+
+
+#endif
diff --git a/src/gui/official/skin.cpp b/src/gui/official/skin.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b4d98092612bd11a6019b3b1423bcc92b142401f
--- /dev/null
+++ b/src/gui/official/skin.cpp
@@ -0,0 +1,74 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include "skin.h"
+
+
+const char* PIXMAP_LINE_NAMES[] = {
+	PIXMAP_LINE0_OFF,
+	PIXMAP_LINE0_BUSY,
+	PIXMAP_LINE1_OFF,
+	PIXMAP_LINE1_BUSY,
+	PIXMAP_LINE2_OFF,
+	PIXMAP_LINE2_BUSY,
+	PIXMAP_LINE3_OFF,
+	PIXMAP_LINE3_BUSY,
+	PIXMAP_LINE4_OFF,
+	PIXMAP_LINE4_BUSY,
+	PIXMAP_LINE5_OFF,
+	PIXMAP_LINE5_BUSY,
+};
+
+Skin::Skin (void) {
+}
+
+Skin::~Skin (void) {
+}
+
+string 
+Skin::getPath (const string & prefix, const string & progname, 
+	const string & skindir, const string & skin, 
+	const string & filename) {
+	return (prefix + "/" + progname + "/" + skindir + "/" + skin + "/" + 
+		filename);
+}
+
+string 
+Skin::getPath (const string & skindir, const string & skintype, 
+	const string & filename) {
+	return (string(PROGSHAREDIR) + "/" + skindir + "/" + skintype + "/" + filename);
+}
+		
+string 
+Skin::getPath (const string & dir) {
+	return (string(PROGSHAREDIR) + "/" + dir);
+}
+
+string 
+Skin::getPathPixmap (const string & pixdir, const string & filename) {
+	return (string(PROGSHAREDIR) + "/" + pixdir + "/" + filename);
+}
+
+string 
+Skin::getPathRing (const string & ringdir, const string & filename) {
+	return (string(PROGSHAREDIR) + "/" + ringdir + "/" + filename);
+}
+
+// EOF
diff --git a/src/gui/official/skin.h b/src/gui/official/skin.h
new file mode 100644
index 0000000000000000000000000000000000000000..025a0bcfbda31dac1756cb253cb542b7d1e5b72e
--- /dev/null
+++ b/src/gui/official/skin.h
@@ -0,0 +1,118 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __SKIN_H__
+#define __SKIN_H__
+
+#include <string>
+
+#include "global.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PIXMAP_PHONE			"main.png"
+#define PIXMAP_KEYPAD			"dtmf_main.png"
+#define PIXMAP_SCREEN			"screen_main.png"
+#define PIXMAP_OVERSCREEN		"overscreen.png"
+#define PIXMAP_VOLUME			"volume.png"
+	
+#define PIXMAP_IS_RINGING		"ring.png"
+#define PIXMAP_NO_RINGING		"no_ring.png"
+#define PIXMAP_MESSAGE_ON		"voicemail_on.png"
+#define PIXMAP_MESSAGE_OFF		"voicemail_off.png"
+#define PIXMAP_LINE0_OFF		"l1_off.png"
+#define PIXMAP_LINE1_OFF		"l2_off.png"
+#define PIXMAP_LINE2_OFF		"l3_off.png"
+#define PIXMAP_LINE3_OFF		"l4_off.png"
+#define PIXMAP_LINE4_OFF		"l5_off.png"
+#define PIXMAP_LINE5_OFF		"l6_off.png"
+#define PIXMAP_LINE0_BUSY		"l1_on.png"
+#define PIXMAP_LINE1_BUSY		"l2_on.png"
+#define PIXMAP_LINE2_BUSY		"l3_on.png"
+#define PIXMAP_LINE3_BUSY		"l4_on.png"
+#define PIXMAP_LINE4_BUSY		"l5_on.png"
+#define PIXMAP_LINE5_BUSY		"l6_on.png"
+
+#define LINE1					"l1"
+#define LINE2					"l2"
+#define LINE3					"l3"
+#define LINE4					"l4"
+#define LINE5					"l5"
+#define LINE6					"l6"
+	
+#define VOICEMAIL				"voicemail"
+#define DIRECTORY				"directory"
+#define CONFERENCE				"conference"
+#define TRANSFER				"transfer"
+#define CLOSE					"close"
+#define MINIMIZE				"minimize"
+#define SETUP					"setup"
+#define HANGUP					"hangup"
+#define CONNECT					"ok"
+#define MUTE					"mute"
+#define DTMF_SHOW				"dtmf"
+#define VOLUME					"volume"
+#define VOL_MIC					"vol_mic"
+#define VOL_SPKR				"vol_spkr"
+#define SCREEN					"screen"
+	
+#define	DTMF_0					"dtmf_0"
+#define	DTMF_1					"dtmf_1"
+#define	DTMF_2					"dtmf_2"
+#define	DTMF_3					"dtmf_3"
+#define	DTMF_4					"dtmf_4"
+#define	DTMF_5					"dtmf_5"
+#define	DTMF_6					"dtmf_6"
+#define	DTMF_7					"dtmf_7"
+#define	DTMF_8					"dtmf_8"
+#define	DTMF_9					"dtmf_9"
+#define	DTMF_STAR				"dtmf_star"
+#define	DTMF_POUND				"dtmf_pound"
+#define	DTMF_CLOSE				"dtmf_close"
+	
+
+extern const char* PIXMAP_LINE_NAMES[];
+
+#define PIXMAP_LINE(n,t)	PIXMAP_LINE_NAMES[2*n+t]
+// n = {0..3} and t = {FREE, BUSY, ONHOLD}
+   
+#define FILE_INI				"skin.ini"
+
+#ifdef __cplusplus
+}
+#endif
+
+using namespace std;
+
+class Skin {
+public:
+	Skin (void);
+	~Skin (void);
+	
+	static string getPath(const string &, const string &, const string &, 
+						const string &, const string &);
+	static string getPath(const string &,const string &, const string &);
+	static string getPath(const string &);
+	static string getPathPixmap (const string &, const string &);
+	static string getPathRing	 (const string &, const string &);
+};
+
+#endif	// __SKIN_H__
diff --git a/src/gui/official/transqwidget.cpp b/src/gui/official/transqwidget.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7a91cbed12a0743b46ff91ac428b6007866659cc
--- /dev/null
+++ b/src/gui/official/transqwidget.cpp
@@ -0,0 +1,82 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com> 
+ *                                                                             
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <qpoint.h>
+
+#include "transqwidget.h"
+
+TransQWidget::TransQWidget (QWidget *parent, const char *name, WFlags f) 
+						: QWidget (parent, name, f) {
+	pixmap = NULL;
+	_moved = false;
+}
+
+void
+TransQWidget::setbgPixmap (QPixmap *pix) {
+	this->pixmap = pix;
+}
+
+void
+TransQWidget::setSourceImage (void) {
+	this->SourceImage = pixmap->convertToImage ();
+}
+
+QImage
+TransQWidget::getSourceImage (void) {
+	return this->SourceImage;
+}
+
+void
+TransQWidget::transparencyMask (void) {
+	this->ShowedImage = SourceImage;
+	this->ImageMask = ShowedImage.createAlphaMask ();
+}
+
+/**
+ * Reimplementation of paintEvent() to handle the transparency of the 
+ * widget.
+ * This method is called everytime when the widget is redrawn.
+ */
+void
+TransQWidget::paintEvent (QPaintEvent *e) {
+	if (e);// boring warning
+	bitBlt (this, 0, 0, &ShowedImage, 0, Qt::CopyROP);
+	setMask (ImageMask);
+}
+
+/**
+ * Reimplementation of mouseMoveEvent() to handle the borderless window drag.
+ */
+void
+TransQWidget::mouseMoveEvent (QMouseEvent *e) {
+	move (e->globalPos() - QPoint(mouse_x, mouse_y));
+	global_x = e->globalX();
+	global_y = e->globalY();
+	_moved = true;
+}
+
+/**
+ * Reimplementation of mousePressEvent() to register mouse positions.
+ */
+void
+TransQWidget::mousePressEvent (QMouseEvent *e) {
+	mouse_x = e->x();
+	mouse_y = e->y();
+}
+
diff --git a/src/gui/official/transqwidget.h b/src/gui/official/transqwidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..5083aa30e40752461150b414a43a5a58fa2ad0b9
--- /dev/null
+++ b/src/gui/official/transqwidget.h
@@ -0,0 +1,74 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com> 
+ *                                                                             
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __TRANS_QWIDGET_H__
+#define __TRANS_QWIDGET_H__
+
+#include <qbitmap.h>
+#include <qimage.h>
+#include <qpixmap.h>
+#include <qwidget.h>
+
+class TransQWidget : public QWidget {
+public:
+	TransQWidget	(QWidget* = 0, const char* = 0, WFlags = 0);
+	~TransQWidget	(void) {delete pixmap;};
+	
+	QImage		 getSourceImage		(void);	
+
+	inline
+	int			 getMouseX			(void) { return mouse_x; };
+	inline
+	int			 getMouseY			(void) { return mouse_y; };
+	inline
+	int			 getGlobalMouseX	(void) { return global_x; };
+	inline
+	int			 getGlobalMouseY	(void) { return global_y; };
+	inline
+	bool		 getMoved			(void) { return _moved; };
+
+protected:
+	QPixmap 	*pixmap;
+
+	void 		 setbgPixmap		(QPixmap *);
+	void 		 setSourceImage 	(void);
+	void		 transparencyMask	(void);
+		
+	// To handle the tranparency
+	void 		 paintEvent 		(QPaintEvent *);
+
+	// To handle the drag window with mouse event
+	void 		 mouseMoveEvent 	(QMouseEvent *);
+	void 		 mousePressEvent	(QMouseEvent *);
+
+private:
+	// Private member variables
+	QImage 		 SourceImage;
+	QImage 		 ShowedImage;
+	QBitmap 	 ImageMask;
+
+	int 		 mouse_x, 
+				 mouse_y;
+	int 		 global_x, 
+				 global_y;
+	bool		 _moved;
+};
+
+
+#endif // __TRANS_QWIDGET_H__
diff --git a/src/gui/official/trayicon.cpp b/src/gui/official/trayicon.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4eb1d3e7db82cd4bc192358fbf2eba496d5de1bc
--- /dev/null
+++ b/src/gui/official/trayicon.cpp
@@ -0,0 +1,295 @@
+/*
+ * trayicon.cpp - system-independent trayicon class (adapted from Qt example)
+ * Copyright (C) 2003  Justin Karneges
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#include "trayicon.h"
+#include "qpopupmenu.h"
+
+/*!
+  \class TrayIcon qtrayicon.h
+  \brief The TrayIcon class implements an entry in the system tray.
+*/
+
+/*!
+  Creates a TrayIcon object. \a parent and \a name are propagated
+  to the QObject constructor. The icon is initially invisible.
+
+  \sa show
+*/
+TrayIcon::TrayIcon( QObject *parent, const char *name )
+: QObject(parent, name), pop(0), d(0)
+{
+	v_isWMDock = FALSE;
+}
+
+/*!
+  Creates a TrayIcon object displaying \a icon and \a tooltip, and opening
+  \a popup when clicked with the right mousebutton. \a parent and \a name are
+  propagated to the QObject constructor. The icon is initially invisible.
+
+  \sa show
+*/
+TrayIcon::TrayIcon( const QPixmap &icon, const QString &tooltip, QPopupMenu *popup, QObject *parent, const char *name )
+: QObject(parent, name), pop(popup), pm(icon), tip(tooltip), d(0)
+{
+	v_isWMDock = FALSE;
+
+	if ( !pm.width() || !pm.height() )
+		pm = QPixmap( 16, 16 );
+}
+
+/*!
+  Removes the icon from the system tray and frees all allocated resources.
+*/
+TrayIcon::~TrayIcon()
+{
+    sysRemove();
+}
+
+/*!
+  Informs the trayicon that the notification owner has probably been changed;
+  and that it should attempt to register or re-register.
+*/
+void TrayIcon::newTrayOwner()
+{
+    // detach ourself from any existing notification area.
+    hide();
+    // show ourself on the new notification area
+    show();
+}
+
+
+/*!
+  Sets the context menu to \a popup. The context menu will pop up when the
+  user clicks the system tray entry with the right mouse button.
+*/
+void TrayIcon::setPopup( QPopupMenu* popup )
+{
+    pop = popup;
+}
+
+/*!
+  Returns the current popup menu.
+
+  \sa setPopup
+*/
+QPopupMenu* TrayIcon::popup() const
+{
+    return pop;
+}
+
+/*!
+  \property TrayIcon::icon
+  \brief the system tray icon.
+*/
+void TrayIcon::setIcon( const QPixmap &icon )
+{
+    //if(!popup()) {
+    //    tip = "";
+    //}
+
+    pm = icon;
+    sysUpdateIcon();
+}
+
+QPixmap TrayIcon::icon() const
+{
+    return pm;
+}
+
+/*!
+  \property TrayIcon::toolTip
+  \brief the tooltip for the system tray entry
+
+  On some systems, the tooltip's length is limited and will be truncated as necessary.
+*/
+void TrayIcon::setToolTip( const QString &tooltip )
+{
+    tip = tooltip;
+    sysUpdateToolTip();
+}
+
+QString TrayIcon::toolTip() const
+{
+    return tip;
+}
+
+/*!
+  Shows the icon in the system tray.
+
+  \sa hide
+*/
+void TrayIcon::show()
+{
+    sysInstall();
+}
+
+/*!
+  Hides the system tray entry.
+*/
+void TrayIcon::hide()
+{
+    sysRemove();
+}
+
+/*!
+  \reimp
+*/
+bool TrayIcon::event( QEvent *e )
+{
+    switch ( e->type() ) {
+    case QEvent::MouseMove:
+		mouseMoveEvent( (QMouseEvent*)e );
+	break;
+
+    case QEvent::MouseButtonPress:
+		mousePressEvent( (QMouseEvent*)e );
+	break;
+
+    case QEvent::MouseButtonRelease:
+		mouseReleaseEvent( (QMouseEvent*)e );
+	break;
+
+    case QEvent::MouseButtonDblClick:
+		mouseDoubleClickEvent( (QMouseEvent*)e );
+	break;
+	
+    default:
+		return QObject::event( e );
+		break;
+    }
+
+    return TRUE;
+}
+
+/*!
+  This event handler can be reimplemented in a subclass to receive
+  mouse move events for the system tray entry.
+
+  \sa mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(),  QMouseEvent
+*/
+void TrayIcon::mouseMoveEvent( QMouseEvent *e )
+{
+    e->ignore();
+}
+
+/*!
+  This event handler can be reimplemented in a subclass to receive
+  mouse press events for the system tray entry.
+
+  \sa mouseReleaseEvent(), mouseDoubleClickEvent(),
+  mouseMoveEvent(), QMouseEvent
+*/
+void TrayIcon::mousePressEvent( QMouseEvent *e )
+{
+#ifndef Q_WS_WIN
+// This is for X11, menus appear on mouse press
+// I'm not sure whether Mac should be here or below.. Somebody check?
+	switch ( e->button() ) {
+		case RightButton:
+			if ( pop ) {
+				pop->popup( e->globalPos() );
+				e->accept();
+			}
+			break;
+		case LeftButton:
+		case MidButton:
+			emit clicked( e->globalPos(), e->button() );
+			break;
+		default:
+			break;
+	}
+#endif
+	e->ignore();
+}
+
+/*!
+  This event handler can be reimplemented in a subclass to receive
+  mouse release events for the system tray entry.
+
+  The default implementations opens the context menu when the entry
+  has been clicked with the right mouse button.
+
+  \sa setPopup(), mousePressEvent(), mouseDoubleClickEvent(),
+  mouseMoveEvent(), QMouseEvent
+*/
+void TrayIcon::mouseReleaseEvent( QMouseEvent *e )
+{
+#ifdef Q_WS_WIN
+// This is for Windows, where menus appear on mouse release
+	switch ( e->button() ) {
+		case RightButton:
+			if ( pop ) {
+				// Necessary to make keyboard focus
+				// and menu closing work on Windows.
+				pop->setActiveWindow();
+				pop->popup( e->globalPos() );
+				pop->setActiveWindow();
+				e->accept();
+			}
+			break;
+		case LeftButton:
+		case MidButton:
+			emit clicked( e->globalPos(), e->button() );
+			break;
+		default:
+			break;
+	}
+#endif
+	e->ignore();
+}
+
+/*!
+  This event handler can be reimplemented in a subclass to receive
+  mouse double click events for the system tray entry.
+
+  Note that the system tray entry gets a mousePressEvent() and a
+  mouseReleaseEvent() before the mouseDoubleClickEvent().
+
+  \sa mousePressEvent(), mouseReleaseEvent(),
+  mouseMoveEvent(), QMouseEvent
+*/
+void TrayIcon::mouseDoubleClickEvent( QMouseEvent *e )
+{
+	if ( e->button() == LeftButton )
+		emit doubleClicked( e->globalPos() );
+	e->accept();
+}
+
+/*!
+  \fn void TrayIcon::clicked( const QPoint &p )
+
+  This signal is emitted when the user clicks the system tray icon
+  with the left mouse button, with \a p being the global mouse position
+  at that moment.
+*/
+
+/*!
+  \fn void TrayIcon::doubleClicked( const QPoint &p )
+
+  This signal is emitted when the user double clicks the system tray
+  icon with the left mouse button, with \a p being the global mouse position
+  at that moment.
+*/
+
+void TrayIcon::gotCloseEvent()
+{
+	closed();
+}
+
diff --git a/src/gui/official/trayicon.h b/src/gui/official/trayicon.h
new file mode 100644
index 0000000000000000000000000000000000000000..10775ee26f88c54c71ae9d2e515080fb04cf2437
--- /dev/null
+++ b/src/gui/official/trayicon.h
@@ -0,0 +1,95 @@
+/*
+ * trayicon.h - system-independent trayicon class (adapted from Qt example)
+ * Copyright (C) 2003  Justin Karneges
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#ifndef CS_TRAYICON_H
+#define CS_TRAYICON_H
+
+#include <qobject.h>
+#include <qimage.h>
+
+class QPopupMenu;
+
+class TrayIcon : public QObject
+{
+	Q_OBJECT
+
+	Q_PROPERTY( QString toolTip READ toolTip WRITE setToolTip )
+	Q_PROPERTY( QPixmap icon READ icon WRITE setIcon )
+
+public:
+	TrayIcon( QObject *parent = 0, const char *name = 0 );
+	TrayIcon( const QPixmap &, const QString &, QPopupMenu *popup = 0, QObject *parent = 0, const char *name = 0 );
+	~TrayIcon();
+
+	// use WindowMaker dock mode.  ignored on non-X11 platforms
+	void setWMDock(bool use) { v_isWMDock = use; }
+	bool isWMDock() { return v_isWMDock; }
+
+	// Set a popup menu to handle RMB
+	void setPopup( QPopupMenu * );
+	QPopupMenu* popup() const;
+
+	QPixmap icon() const;
+	QString toolTip() const;
+
+	void gotCloseEvent();
+
+public slots:
+	void setIcon( const QPixmap &icon );
+	void setToolTip( const QString &tip );
+
+	void show();
+	void hide();
+
+	void newTrayOwner();
+
+signals:
+	void clicked( const QPoint&, int);
+	void doubleClicked( const QPoint& );
+	void closed();
+
+protected:
+	bool event( QEvent * );
+	virtual void mouseMoveEvent( QMouseEvent *e );
+	virtual void mousePressEvent( QMouseEvent *e );
+	virtual void mouseReleaseEvent( QMouseEvent *e );
+	virtual void mouseDoubleClickEvent( QMouseEvent *e );
+
+private:
+	QPopupMenu *pop;
+	QPixmap pm;
+	QString tip;
+	bool v_isWMDock;
+
+	// system-dependant part
+public:
+	class TrayIconPrivate;
+private:
+	TrayIconPrivate *d;
+	void sysInstall();
+	void sysRemove();
+	void sysUpdateIcon();
+	void sysUpdateToolTip();
+
+	friend class TrayIconPrivate;
+};
+
+#endif // CS_TRAYICON_H
+
diff --git a/src/gui/official/trayicon_x11.cpp b/src/gui/official/trayicon_x11.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..053eeda9c4f6baedbd11a19adbdf21a0ec401fcd
--- /dev/null
+++ b/src/gui/official/trayicon_x11.cpp
@@ -0,0 +1,407 @@
+/*
+ * trayicon_x11.cpp - X11 trayicon (for use with KDE and GNOME)
+ * Copyright (C) 2003  Justin Karneges
+ * GNOME2 Notification Area support: Tomasz Sterna
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#include "trayicon.h"
+
+#include<qapplication.h>
+#include<qimage.h>
+#include<qpixmap.h>
+#include<qtooltip.h>
+#include<qpainter.h>
+
+#include<X11/Xlib.h>
+#include<X11/Xutil.h>
+#include<X11/Xatom.h>
+
+//#if QT_VERSION < 0x030200
+extern Time qt_x_time;
+//#endif
+
+//----------------------------------------------------------------------------
+// common stuff
+//----------------------------------------------------------------------------
+
+// for Gnome2 Notification Area
+static XErrorHandler old_handler = 0;
+static int dock_xerror = 0;
+extern "C" int dock_xerrhandler(Display* dpy, XErrorEvent* err)
+{
+	dock_xerror = err->error_code;
+	return old_handler(dpy, err);
+}
+
+static void trap_errors()
+{
+	dock_xerror = 0;
+	old_handler = XSetErrorHandler(dock_xerrhandler);
+}
+
+static bool untrap_errors()
+{
+	XSetErrorHandler(old_handler);
+	return (dock_xerror == 0);
+}
+
+static bool send_message(
+	Display* dpy,	/* display */
+	Window w,	/* sender (tray icon window) */
+	long message,	/* message opcode */
+	long data1,	/* message data 1 */
+	long data2,	/* message data 2 */
+	long data3	/* message data 3 */
+) {
+	XEvent ev;
+
+	memset(&ev, 0, sizeof(ev));
+	ev.xclient.type = ClientMessage;
+	ev.xclient.window = w;
+	ev.xclient.message_type = XInternAtom (dpy, "_NET_SYSTEM_TRAY_OPCODE", False );
+	ev.xclient.format = 32;
+	ev.xclient.data.l[0] = CurrentTime;
+	ev.xclient.data.l[1] = message;
+	ev.xclient.data.l[2] = data1;
+	ev.xclient.data.l[3] = data2;
+	ev.xclient.data.l[4] = data3;
+
+	trap_errors();
+	XSendEvent(dpy, w, False, NoEventMask, &ev);
+	XSync(dpy, False);
+	return untrap_errors();
+}
+
+#define SYSTEM_TRAY_REQUEST_DOCK    0
+#define SYSTEM_TRAY_BEGIN_MESSAGE   1
+#define SYSTEM_TRAY_CANCEL_MESSAGE  2
+
+//----------------------------------------------------------------------------
+// TrayIcon::TrayIconPrivate
+//----------------------------------------------------------------------------
+
+class TrayIcon::TrayIconPrivate : public QWidget
+{
+public:
+	TrayIconPrivate(TrayIcon *object, int size);
+	~TrayIconPrivate() { }
+
+	virtual void initWM(WId icon);
+
+	virtual void setPixmap(const QPixmap &pm);
+
+	virtual void paintEvent(QPaintEvent *);
+	virtual void enterEvent(QEvent *);
+	virtual void mouseMoveEvent(QMouseEvent *e);
+	virtual void mousePressEvent(QMouseEvent *e);
+	virtual void mouseReleaseEvent(QMouseEvent *e);
+	virtual void mouseDoubleClickEvent(QMouseEvent *e);
+	virtual void closeEvent(QCloseEvent *e);
+
+private:
+	TrayIcon *iconObject;
+	QPixmap pix;
+	int size;
+};
+
+TrayIcon::TrayIconPrivate::TrayIconPrivate(TrayIcon *object, int _size)
+	: QWidget(0, "psidock", WRepaintNoErase)
+{
+	iconObject = object;
+	size = _size;
+
+	setFocusPolicy(NoFocus);
+	setBackgroundMode(X11ParentRelative);
+
+	setMinimumSize(size, size);
+	setMaximumSize(size, size);
+}
+
+// This base stuff is required by both FreeDesktop specification and WindowMaker
+void TrayIcon::TrayIconPrivate::initWM(WId icon)
+{
+	Display *dsp = x11Display();
+	WId leader   = winId();
+
+	// set the class hint
+	XClassHint classhint;
+	classhint.res_name  = (char*)"psidock";
+	classhint.res_class = (char*)"Psi";
+	XSetClassHint(dsp, leader, &classhint);
+
+	// set the Window Manager hints
+	XWMHints *hints;
+	hints = XGetWMHints(dsp, leader);	// init hints
+	hints->flags = WindowGroupHint | IconWindowHint | StateHint;	// set the window group hint
+	hints->window_group = leader;		// set the window hint
+	hints->initial_state = WithdrawnState;	// initial state
+	hints->icon_window = icon;		// in WM, this should be winId() of separate widget
+	hints->icon_x = 0;
+	hints->icon_y = 0;
+	XSetWMHints(dsp, leader, hints);	// set the window hints for WM to use.
+	XFree( hints );
+}
+
+void TrayIcon::TrayIconPrivate::setPixmap(const QPixmap &pm)
+{
+	pix = pm;
+	setIcon(pix);
+	repaint();
+}
+
+void TrayIcon::TrayIconPrivate::paintEvent(QPaintEvent *)
+{
+	QPainter p(this);
+	p.drawPixmap((width() - pix.width())/2, (height() - pix.height())/2, pix);
+}
+
+void TrayIcon::TrayIconPrivate::enterEvent(QEvent *e)
+{
+	// Taken from KSystemTray..
+//#if QT_VERSION < 0x030200
+	//if ( !qApp->focusWidget() ) {
+		XEvent ev;
+		memset(&ev, 0, sizeof(ev));
+		ev.xfocus.display = qt_xdisplay();
+		ev.xfocus.type = FocusIn;
+		ev.xfocus.window = winId();
+		ev.xfocus.mode = NotifyNormal;
+		ev.xfocus.detail = NotifyAncestor;
+		Time time = qt_x_time;
+		qt_x_time = 1;
+		qApp->x11ProcessEvent( &ev );
+		qt_x_time = time;
+	//}
+//#endif
+	QWidget::enterEvent(e);
+}
+
+void TrayIcon::TrayIconPrivate::mouseMoveEvent(QMouseEvent *e)
+{
+	QApplication::sendEvent(iconObject, e);
+}
+
+void TrayIcon::TrayIconPrivate::mousePressEvent(QMouseEvent *e)
+{
+	QApplication::sendEvent(iconObject, e);
+}
+
+void TrayIcon::TrayIconPrivate::mouseReleaseEvent(QMouseEvent *e)
+{
+	QApplication::sendEvent(iconObject, e);
+}
+
+void TrayIcon::TrayIconPrivate::mouseDoubleClickEvent(QMouseEvent *e)
+{
+	QApplication::sendEvent(iconObject, e);
+}
+
+void TrayIcon::TrayIconPrivate::closeEvent(QCloseEvent *e)
+{
+	iconObject->gotCloseEvent();
+	e->accept();
+}
+
+//----------------------------------------------------------------------------
+// TrayIconFreeDesktop
+//----------------------------------------------------------------------------
+
+class TrayIconFreeDesktop : public TrayIcon::TrayIconPrivate
+{
+public:
+	TrayIconFreeDesktop(TrayIcon *object, const QPixmap &pm);
+protected:
+	virtual bool x11Event(XEvent*);
+};
+
+TrayIconFreeDesktop::TrayIconFreeDesktop(TrayIcon *object, const QPixmap &pm)
+	: TrayIconPrivate(object, 22)
+{
+	initWM( winId() );
+
+	// initialize NetWM
+	Display *dsp = x11Display();
+
+	// dock the widget (adapted from SIM-ICQ)
+	Screen *screen = XDefaultScreenOfDisplay(dsp); // get the screen
+	int screen_id = XScreenNumberOfScreen(screen); // and it's number
+
+	// tell X that we want to see ClientMessage and Deleted events, which
+	// are picked up by QApplication::x11EventFilter
+	Window root_window = QApplication::desktop()->winId();
+	XWindowAttributes attr;
+
+	XGetWindowAttributes(dsp, root_window, &attr);
+	XSelectInput(dsp, root_window, attr.your_event_mask | StructureNotifyMask);
+
+	char buf[32];
+	snprintf(buf, sizeof(buf), "_NET_SYSTEM_TRAY_S%d", screen_id);
+	Atom selection_atom = XInternAtom(dsp, buf, false);
+	XGrabServer(dsp);
+	Window manager_window = XGetSelectionOwner(dsp, selection_atom);
+	if ( manager_window != None )
+		XSelectInput(dsp, manager_window, StructureNotifyMask);
+	XUngrabServer(dsp);
+	XFlush(dsp);
+
+	if ( manager_window != None )
+		send_message(dsp, manager_window, SYSTEM_TRAY_REQUEST_DOCK, winId(), 0, 0);
+	else
+	{
+		object->hide();
+		return;
+	}
+
+	// some KDE mumbo-jumbo... why is it there? anybody?
+	Atom kwm_dockwindow_atom = XInternAtom(dsp, "KWM_DOCKWINDOW", false);
+	Atom kde_net_system_tray_window_for_atom = XInternAtom(dsp, "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", false);
+
+	long data = 0;
+	XChangeProperty(dsp, winId(), kwm_dockwindow_atom, kwm_dockwindow_atom, 32, PropModeReplace, (uchar*)&data, 1);
+	XChangeProperty(dsp, winId(), kde_net_system_tray_window_for_atom, XA_WINDOW, 32, PropModeReplace, (uchar*)&data, 1);
+
+	setPixmap(pm);
+}
+
+bool TrayIconFreeDesktop::x11Event(XEvent *ev)
+{
+	switch(ev->type)
+	{
+		case ReparentNotify:
+			show();
+
+	}
+	return false;
+}
+
+//----------------------------------------------------------------------------
+// TrayIconWindowMaker
+//----------------------------------------------------------------------------
+
+class TrayIconWharf : public TrayIcon::TrayIconPrivate
+{
+public:
+	TrayIconWharf(TrayIcon *object, const QPixmap &pm)
+		: TrayIconPrivate(object, 44)
+	{
+		// set the class hint
+		XClassHint classhint;
+		classhint.res_name  = (char*)"psidock-wharf";
+		classhint.res_class = (char*)"Psi";
+		XSetClassHint(x11Display(), winId(), &classhint);
+
+		setPixmap(pm);
+	}
+
+	void setPixmap(const QPixmap &_pm)
+	{
+		QPixmap pm;
+		QImage i = _pm.convertToImage();
+		i = i.scale(i.width() * 2, i.height() * 2);
+		pm.convertFromImage(i);
+
+		TrayIconPrivate::setPixmap(pm);
+
+		// thanks to Robert Spier for this:
+		// for some reason the repaint() isn't being honored, or isn't for
+		// the icon.  So force one on the widget behind the icon
+		erase();
+		QPaintEvent pe( rect() );
+		paintEvent(&pe);
+	}
+};
+
+class TrayIconWindowMaker : public TrayIcon::TrayIconPrivate
+{
+public:
+	TrayIconWindowMaker(TrayIcon *object, const QPixmap &pm);
+	~TrayIconWindowMaker();
+
+	void setPixmap(const QPixmap &pm);
+
+private:
+	TrayIconWharf *wharf;
+};
+
+TrayIconWindowMaker::TrayIconWindowMaker(TrayIcon *object, const QPixmap &pm)
+	: TrayIconPrivate(object, 32)
+{
+	wharf = new TrayIconWharf(object, pm);
+
+	initWM( wharf->winId() );
+}
+
+TrayIconWindowMaker::~TrayIconWindowMaker()
+{
+	delete wharf;
+}
+
+void TrayIconWindowMaker::setPixmap(const QPixmap &pm)
+{
+	wharf->setPixmap(pm);
+}
+
+//----------------------------------------------------------------------------
+// TrayIcon
+//----------------------------------------------------------------------------
+
+void TrayIcon::sysInstall()
+{
+	if ( d )
+		return;
+
+	if ( v_isWMDock )
+		d = (TrayIconPrivate *)(new TrayIconWindowMaker(this, pm));
+	else
+		d = (TrayIconPrivate *)(new TrayIconFreeDesktop(this, pm));
+
+	sysUpdateToolTip();
+
+	if ( v_isWMDock )
+		d->show();
+}
+
+void TrayIcon::sysRemove()
+{
+	if ( !d )
+		return;
+
+	delete d;
+	d = 0;
+}
+
+void TrayIcon::sysUpdateIcon()
+{
+	if ( !d )
+		return;
+
+	QPixmap pix = pm;
+	d->setPixmap(pix);
+}
+
+void TrayIcon::sysUpdateToolTip()
+{
+	if ( !d )
+		return;
+
+	if ( tip.isEmpty() )
+		QToolTip::remove(d);
+	else
+		QToolTip::add(d, tip);
+}
+
diff --git a/src/gui/official/url_input.ui b/src/gui/official/url_input.ui
new file mode 100644
index 0000000000000000000000000000000000000000..b06767a7d95d4a7273d17ece47382f091dcc4108
--- /dev/null
+++ b/src/gui/official/url_input.ui
@@ -0,0 +1,1273 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>ConfigurationPanel</class>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>ConfigurationPanel</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>561</width>
+            <height>552</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Configuration panel</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout19</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="Line">
+                    <property name="name">
+                        <cstring>line1</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>HLine</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Sunken</enum>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout28</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonHelp</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Help</string>
+                            </property>
+                            <property name="accel">
+                                <string>F1</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <spacer>
+                            <property name="name">
+                                <cstring>Horizontal Spacing2</cstring>
+                            </property>
+                            <property name="orientation">
+                                <enum>Horizontal</enum>
+                            </property>
+                            <property name="sizeType">
+                                <enum>Expanding</enum>
+                            </property>
+                            <property name="sizeHint">
+                                <size>
+                                    <width>160</width>
+                                    <height>20</height>
+                                </size>
+                            </property>
+                        </spacer>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonSave</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Save</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+S</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                            <property name="default">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonOk</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;OK</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+O</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonCancel</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Cancel</string>
+                            </property>
+                            <property name="accel">
+                                <string>F, Backspace</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QListBox" row="0" column="0">
+            <property name="name">
+                <cstring>Menu</cstring>
+            </property>
+            <property name="sizePolicy">
+                <sizepolicy>
+                    <hsizetype>0</hsizetype>
+                    <vsizetype>7</vsizetype>
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                </sizepolicy>
+            </property>
+            <property name="cursor">
+                <cursor>13</cursor>
+            </property>
+            <property name="currentItem">
+                <number>-1</number>
+            </property>
+            <property name="selectionMode">
+                <enum>Single</enum>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout17</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>TitleTab</cstring>
+                    </property>
+                    <property name="font">
+                        <font>
+                            <bold>1</bold>
+                        </font>
+                    </property>
+                    <property name="text">
+                        <string>Setup signalisation</string>
+                    </property>
+                </widget>
+                <widget class="Line">
+                    <property name="name">
+                        <cstring>line2</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>HLine</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Sunken</enum>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Signalisations</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>SIPPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>SIP Authentication</string>
+                        </attribute>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout24</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>16</x>
+                                    <y>12</y>
+                                    <width>401</width>
+                                    <height>393</height>
+                                </rect>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QGroupBox">
+                                    <property name="name">
+                                        <cstring>groupBox1</cstring>
+                                    </property>
+                                    <property name="title">
+                                        <string></string>
+                                    </property>
+                                    <grid>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel" row="0" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Full name</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="1" column="0">
+                                            <property name="name">
+                                                <cstring>fullName</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="3" column="0">
+                                            <property name="name">
+                                                <cstring>userPart</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="2" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>User Part of SIP URL</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="4" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel2_3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Authorization user</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="5" column="0">
+                                            <property name="name">
+                                                <cstring>username</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="9" column="0">
+                                            <property name="name">
+                                                <cstring>hostPart</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="11" column="0">
+                                            <property name="name">
+                                                <cstring>sipproxy</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="10" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3_2_2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>SIP proxy</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="7" column="0">
+                                            <property name="name">
+                                                <cstring>password</cstring>
+                                            </property>
+                                            <property name="echoMode">
+                                                <enum>Password</enum>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="6" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel1_3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Password</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="8" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3_2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Host part of SIP URL</string>
+                                            </property>
+                                        </widget>
+                                    </grid>
+                                </widget>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout23</cstring>
+                                    </property>
+                                    <vbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout19</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QCheckBox">
+                                                    <property name="name">
+                                                        <cstring>autoregister</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Auto-register</string>
+                                                    </property>
+                                                    <property name="checked">
+                                                        <bool>true</bool>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer7</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>201</width>
+                                                            <height>21</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QPushButton">
+                                                    <property name="name">
+                                                        <cstring>Register</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Register</string>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer9</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Vertical</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>20</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </vbox>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>STUNPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>STUN</string>
+                        </attribute>
+                        <widget class="QGroupBox">
+                            <property name="name">
+                                <cstring>groupBox3</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>110</y>
+                                    <width>253</width>
+                                    <height>100</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Settings </string>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel1_5</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>38</y>
+                                        <width>229</width>
+                                        <height>16</height>
+                                    </rect>
+                                </property>
+                                <property name="text">
+                                    <string>STUN server (address:port)</string>
+                                </property>
+                            </widget>
+                            <widget class="QLineEdit">
+                                <property name="name">
+                                    <cstring>STUNserver</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>60</y>
+                                        <width>229</width>
+                                        <height>23</height>
+                                    </rect>
+                                </property>
+                            </widget>
+                        </widget>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>stunButtonGroup</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>90</width>
+                                    <height>81</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Use STUN</string>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>useStunNo</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>No</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>true</bool>
+                                    </property>
+                                </widget>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>useStunYes</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Yes</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>false</bool>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DTMFPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>DTMF</string>
+                        </attribute>
+                        <widget class="QGroupBox">
+                            <property name="name">
+                                <cstring>SettingsDTMF</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>301</width>
+                                    <height>130</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Settings</string>
+                            </property>
+                            <grid>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLayoutWidget" row="0" column="0">
+                                    <property name="name">
+                                        <cstring>layout11</cstring>
+                                    </property>
+                                    <vbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout10</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QCheckBox">
+                                                    <property name="name">
+                                                        <cstring>playTones</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Play tones locally</string>
+                                                    </property>
+                                                    <property name="checked">
+                                                        <bool>true</bool>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer6</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>111</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                            </hbox>
+                                        </widget>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout7</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QLabel">
+                                                    <property name="name">
+                                                        <cstring>labelPulseLength</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Pulse length</string>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer3</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>115</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QSpinBox">
+                                                    <property name="name">
+                                                        <cstring>pulseLength</cstring>
+                                                    </property>
+                                                    <property name="suffix">
+                                                        <string> ms</string>
+                                                    </property>
+                                                    <property name="maxValue">
+                                                        <number>1500</number>
+                                                    </property>
+                                                    <property name="minValue">
+                                                        <number>10</number>
+                                                    </property>
+                                                    <property name="value">
+                                                        <number>250</number>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout8</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QLabel">
+                                                    <property name="name">
+                                                        <cstring>labelSendDTMF</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Send DTMF as</string>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer4</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>85</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QComboBox">
+                                                    <item>
+                                                        <property name="text">
+                                                            <string>SIP INFO</string>
+                                                        </property>
+                                                    </item>
+                                                    <property name="name">
+                                                        <cstring>sendDTMFas</cstring>
+                                                    </property>
+                                                    <property name="currentItem">
+                                                        <number>0</number>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                    </vbox>
+                                </widget>
+                            </grid>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Audio</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Drivers</string>
+                        </attribute>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>DriverChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>410</width>
+                                    <height>180</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Drivers list</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>CodecsPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Codecs</string>
+                        </attribute>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>CodecsChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>10</y>
+                                    <width>133</width>
+                                    <height>157</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Supported codecs</string>
+                            </property>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout18</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>20</y>
+                                        <width>110</width>
+                                        <height>120</height>
+                                    </rect>
+                                </property>
+                                <grid>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLayoutWidget" row="0" column="0">
+                                        <property name="name">
+                                            <cstring>layout17</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec1</cstring>
+                                                </property>
+                                            </widget>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec2</cstring>
+                                                </property>
+                                            </widget>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec3</cstring>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                    <widget class="QLayoutWidget" row="0" column="1">
+                                        <property name="name">
+                                            <cstring>layout18</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>1</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4_2</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>2</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4_3</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>3</string>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                </grid>
+                            </widget>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>RingPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Ringtones</string>
+                        </attribute>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>ringsChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>21</y>
+                                    <width>150</width>
+                                    <height>30</height>
+                                </rect>
+                            </property>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Preferences</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Themes</string>
+                        </attribute>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>SkinChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>12</x>
+                                    <y>42</y>
+                                    <width>110</width>
+                                    <height>27</height>
+                                </rect>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonApplySkin</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>136</x>
+                                    <y>40</y>
+                                    <width>80</width>
+                                    <height>32</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Apply</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>TabPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Options</string>
+                        </attribute>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout17</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>262</width>
+                                    <height>200</height>
+                                </rect>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout16</cstring>
+                                    </property>
+                                    <hbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel">
+                                            <property name="name">
+                                                <cstring>labelToneZone</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Zone tone:</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QComboBox">
+                                            <item>
+                                                <property name="text">
+                                                    <string>North America</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>France</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Australia</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>United Kingdom</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Spain</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Italy</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Japan</string>
+                                                </property>
+                                            </item>
+                                            <property name="name">
+                                                <cstring>zoneToneChoice</cstring>
+                                            </property>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer5</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Horizontal</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>31</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </hbox>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>confirmationToQuit</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Show confirmation to quit.</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>true</bool>
+                                    </property>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>checkedTray</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Minimize to tray</string>
+                                    </property>
+                                </widget>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout16</cstring>
+                                    </property>
+                                    <hbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel">
+                                            <property name="name">
+                                                <cstring>textLabel1_6</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Voicemail:</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit">
+                                            <property name="name">
+                                                <cstring>voicemailNumber</cstring>
+                                            </property>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer6_2</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Horizontal</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>61</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </hbox>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_About</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>About SFLPhone</string>
+                        </attribute>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>pixmapLabel1</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>50</x>
+                                    <y>40</y>
+                                    <width>312</width>
+                                    <height>91</height>
+                                </rect>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap>image0</pixmap>
+                            </property>
+                            <property name="scaledContents">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_2</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>170</y>
+                                    <width>371</width>
+                                    <height>121</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&lt;p align="center"&gt;
+Copyright (C) 2004-2005 Savoir-faire Linux inc.&lt;br&gt;&lt;br&gt;
+Laurielle LEA &amp;lt;laurielle.lea@savoirfairelinux.com&amp;gt;&lt;br&gt;&lt;br&gt;
+SFLPhone-0.4.1-pre1 is released under &lt;br&gt;the General Public License.&lt;br&gt;
+For more information, see http://www.sflphone.org&lt;br&gt;
+&lt;/p&gt;</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>CodecsPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>About Savoir-faire Linux inc.</string>
+                        </attribute>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>85</x>
+                                    <y>126</y>
+                                    <width>291</width>
+                                    <height>131</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&lt;p align="center"&gt;Website: http://www.savoirfairelinux.com&lt;br&gt;&lt;br&gt;
+5505, Saint-Laurent - bureau 3030&lt;br&gt;
+Montreal, Quebec H2T 1S6&lt;/p&gt;</string>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>pixmapLabel2</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>130</x>
+                                    <y>50</y>
+                                    <width>173</width>
+                                    <height>48</height>
+                                </rect>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap>image1</pixmap>
+                            </property>
+                            <property name="scaledContents">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </widget>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<images>
+    <image name="image0">
+        <data format="XPM.GZ" length="58862">789ced5d596fe3b8b27e9f5f114cbd0d0eea6475625cdc878eb3b4b34ca72799e9745f9c07c74b76c776363b07e7bfdf629194488ad49249e4f40151109292488a923e7dac85a2fff9dbc2e9d1e1c26ffffce5fea1f370d95de85e74260bbff51e6f6f67fff7affffdf72fbfae2c2d2f34971696165717967ffdc72fbfe21f0bdd05682c37d61a52ffcc7a87f40eebbb4a6f2a7d47e93da57f17fafa4aa3b7be2274e8487d7d49eab8a4f43575fc96f533d2cf58df547a53e953a5f794fe22f48d95f5de866caf2df58d25a9c34ce96beaf8b9d4cf96cf56f9f890f5333a2edb1b2bbd29757c547a4f1d1f495dd7c78b44efb13e507a43e9db426fae6ef49af27c7da93797943e50fa9ad4f145ea49fd65a577947ea8f5ee1ad7df557a5f1e872dadcbe3f8c47a97daefb2fea0f4a6d2ef95de53faa5d4757de849bdbbacf496d03babcd5e47f6ff52ea9d25a583d2d7a48e7da927f59f125d5ecf27a537947ec47a97eacbfe4c94de51fab1d2fb528767a927f5af94de913a74b5de93e7df577a5f955f14fad96aa7af9ee758eac9f36d28bda1f0b22775dd1e9e28bdaff403a9f79695bece7a2f799e23a5ebe7f9ac74f5fc7045eaba3e7c4af43e1f5f557a43eac0f8eaae25cffb4eeafa7ee354e90da5f7a4aeebe3b5d23baa3d7e3fba3d7d3fe14ee9ea7ee250e9eafec195d4757dfc5debfd06eb6b4aefabf62fb42e8fc367a9f79795ceef5b6f2db99f33a927f7734fe90da57f937a52ff20d1657fba4a6fa8fefc99e8f238bf2fd43b7d3f51e9fa7a6e95aefa8f9b52d7f5e14ce91dd5de86d0fb0d7d7df855eaba7fd854baea0fec285dd587b6d607f2f8b5d2fbaafd2f5a57c7f97dee27fdc153a5ebf6264ad7f5ffd2baac8f37521f2c2bfd4ce90da5ff10fa20391fee4b3d29df52ba2edf49f4019fff46e91da533df0c06fa3882d2d5f1af0f4a1f683d4a94fa24622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d7f177308d821399bf77544f979e4b598c32ef6b08f033cc70bb55de2155ee3cdbcafe8e30bdee210ef7084639ce03d3ee0233ed1df09e9cf38c519decebb87ef2bd53147ac768d2f8cb601612dfbf7136ecefbaa3ea2600bb70855dbb883bbf8b960dbc5366171847bb83fef7ebfbd54c51c1e58dc16da0e3f0eeef81df91dbfbc4bdbfb848b23622d282cf99570f4c7abb6e379dfc1b7962a98c31b1a3ffddce6fb7b52aac53f091107344a5ff2d87c42e8f8eb2daf0fbf25fd7973d4e1293392e0a5eff8a3a0ec6221b785b6a5b7eef7bca53ce6e8e915f39bbd2de7f916c43f57c17a2b7ebb903c966f6447ae166c6b29be08cdbaddde5bdf3b6c187c342a28bbe4e1b0255c278edcc0267e05c42d00e8f8b80ef0ad7b3e5f298b39465c96cb06849b2b42c8359ce1267433c797b1e36d0d88db2e0ab8f2c41db108a56539f602bfa9f324fbe1cd31077d838f724740ea4786bf60e02b07e7597b0fcedfbae7f3957298f372dc00d7ac327f911597e5ac818fb108a7699915dc14c8c40e9cc105f48cba874ead9ea7fdd0c67da3676df8d56f7defc8df4cb928b7751a855deeea602b507694e1bac5b7eef97ca50ce6f08b974baecd32c47321cec93c0db2e0521f37c38364e3ad32838ae3dfac73749df69709bb3d204e931bc915fd774dffabbec14d5e3ffeae900f9a72513ee6006e1d9edb0a9786a1c373776fddf3f94a29cc2dfbb8c4ba4b6730cae19c15abb52fc9fee073a267744163ab331a1242cd7657a13016581fcf6151d99151760727b9656fd9fa53e561f8d6fd9eb714638ec63eafdd649559ceb7afe0dadb5ec5f8b1652f96b2ce98e7743fde97e7c685a587e42734b3f13698900771ef29dfa211f9166790d766618c46956bc2234ee9fca76f7d0f5e234598a3912ec45f3725caa80d9e8c7bfca4f62f57ed2b3c57e5ac6a3c87fb70477e64533c49dcc7198ef101a6f81d66788477d9676ff1dc1fd2d2a7e7fa0c973084195c12b70523bad4b3676a7da6f90c3a30a61acd40e91f7847e567844260940e71421ecc928e1e877009f7e40bbfa49c293816c80dae7ae7df568a30079fcac4df380b96ef4b265137b6d5c4fe4f55fb6ad87307256b54b0e70861a94fd9f1c6ca1c5bdee439e6ba4e12af4bda8147efb9a6b0e9cf3f402bcb4584c5cf057ddbf58dd6701eb80eb204ca32e47b4821cf0d82fc3548fb4dcfd66bf319db956a2fe144c8b1a2037d49ec39b82859a302cf116b14e604888b8c676bf35cb0ceb6739e0d62a6dc3a84310311706ff154f83cb6853d8171ee39a64551ecf7937ccc4149eee2d859418e425bfc894ffa37ecb9b29833edb97c8cc343b9bc00f99f498cc3e539ff465c6322085d2ef46e064e7156a65fcca98955483ed8b0b04e7b5e5c5780b96e0e772dbb1126f20ef2b84e656089add27c43a5ab4eed3928392e97e7395f3e1436c9f619e13d8f50e9fe84e9caf11c6d897f41c8dec91cff4ee36cb64edab359e9dc6ce2e11253da1cb8497bc66401dad7f72131c7fe68c817ddf194ff421e4288eb5655995563ff7295b900863d57d287b0ecb9c3dc92599e3347d16d63ffae1e95b23c0703c2e83159edf6fe84b518a5d639a4f5c6734edaceb199aa93e1397811ef029dcbe52e957f33f2c09f79144d7c06f2904d3bf27b282efdbe92873908fba397e18c395c046cc0849bac5cc33969d7e5f2ef567ceeba548dd7f39ce32fc038cb412ecfe9d82db6c0e226d00c3fb4b8a7a351a5fbca2832b849ed77788ed84af11379d98e1da86a3c18fb3fdb769b7d9daead598fe4610ebf0438ab2036a66c3bb75e12d123241c7a8ef7b1879b79715e279fbb92df0bae61c6e772633336cfd93618f779cb3caef6d93c67645c9969b2e56d2ef5cc0ae051362dc3fce4f09cc54d60e571a1aff6764c4ecc9c636a5c67e6681d928bb96e96af60b7242765e78c185164c2c20a86e6e1898cd6375f9b467c4ee57269cf09b1a42d9be96c1693e7f27d0887e71a9eb34f8de3724434796ed78ec5391cc8c74c5b0ebc36059c5b9cc628b679ce9e1940bd36cb735c86fc629b17ad5929ecc398c7e71025ce1d5bcf325c5421a606570e9739f32838bf15f6750fb3a36726df1afeab50f76a7bce1335b5388547c5bc3c04581c28222c840593af02790b93a3a41de8f09c937b25de73cb8f1c3b8fd80cef69ef049f4c8e53dbccdf8ff7945c9edb7478a56214173edbf5bde7001ac1d788ad2e3dbce7ccb374f2ad79db4dd27aba2f17738e9de3cb45ad1bfcf0cc7bcc7925ce1be5d85a6453c1a3c55781f94966ec0ea6bcc7b6e79cecabe5f34a9e9b94f673c5f6fc1628aa26b93cd7b6b8a354ae8afcd6d574ae0878edb990e00d95bfb238cb9a7f97999f774863ab98a3796d6e84f4c4267c9d3d07de397f8c22cd5b6ced59f69c930720567379cea8af6d35cf3dc8f4c3e1b90da757e30ccfdd67b82c67f3e749de577279cef65bd3b9b7c44df464fd3697f4493fe9a33c37d3f15bf385ce7a62d88f8615e6d873d725be427815cff96d2df23a537e38e23da6cde662ceb60f7f64e6c505ec28b8346d446ec9e63907ab561f183fe4d796e5b85d7a6be610a32b88cfa5398313b56713b59de68d3d305e64fcaec7333121c9af96f0339356560dae4bfc34d39e2b9789b0ecb9f27eab27f2e8f014fb9c16cfb9b195877c9e0bcd37b7da6cf31e8be7dc6cbe555ef2dc83cd6564cd1d1147cf5c216fe263c68493f9bc623612f9142f066f9c786b98b9089e73492894ba971773ceece42fac7c6bc95cadc573b963bbc34b9ef920786c1c67abaa22cfd97c159887697d3721f754e4393cb2ec46af9d305f29c0dcb5b68792586f9abff4320d5c383ee441e29b56fad69ff854b7b39ab49dda732539d3b2e7cef3de6b87973c2c0426dfb0556571cc716e7b82e79a165f79470998581cb5ce67a9ca730dab8dc2797df54b01e63a094f64e36dde6f02c907f5fb92157d5e6c2575137e34f2adaf9957720139b90bc76fcde484a83fd9785b259e7338cc6bd1d9795299d7a8cc73b7561b7e0b08e6397bb370fedc5e300ee6650d62466f79a8b8a289f18d57ea8526f65cd9d62c7bee22ef8b5b273eb7eb8eae3831b84667a52ad9733cea99e7c85eb39527d57da8ca734e1ee2366b27e0a2884e136fcf213627a4107367c118981f7327deb2b93ea3b79d6b6d131afbd2f85cc9595036cfe5f1a39b6fd579247517d0e21a9d4bafca734de71c1607e186fd0dace6daaa3ca7a2d7693b632b5b36219426b6dec7cbf1ababfa1488f5fba3584f5e4eec5a2d7e29c20c8d6487b23e18350d7baee437f98e3d27da7bc26bfe4aec0c76f026b5313df34a1e93f9235bc416296725b9d86af61cd77062678487a9980bcf2b99d8f3eabeeb79ead5790ef7ed6f64a9f777c4a12d7a73d6ad3cc72eeebd359eca4809cc75d03f4fe44f4fd91b1f278215eb861ecab973413f965a39d4fc68bda3697cae24e65c9ef36df024d8cfbf9e08bc40dfcab38a2dc9c556e539f12e79e7cae5e607aaf31cc7654a9c43e639ea9752df1afee9e52e8f756ac5d5923cab3d57c498537268e62cd4d18ecafecbfa16b68cf85ce9b547f025688f5a9c5d7a9ef0d8988d6bd671fc43e215b3debeb17fa9c479ccb97b95798ef717ae8f42e89fd3ecf492dff11f7839c2f10369b4cae44c61e4ceedc41bd8b2ca5c72066b8dc6bc7dec9bf1347b44b66276a5a39999b928be6d10e2b90cefb5cc33e3c4389659338e9ea93e66dd01f12d56ee7976ecd89df33d843b37fbd8386665897196c7a9e4417cd0ef218c2b58f172841127232bed30cb21bed9c41cc53bcce59e174260c6e6c3dfd5f10a1e49609d15fbef75a9ef2176325fd3fc20ab4b1e6b7bce7cac8e7dcfe6f3f1ab9527357dd5a32c16f029e1a6ec9a08a9afbbebe662bf8a6fd9be67cf43e79e8b1da7a5c2ba4c2b7e8e202611ab21f9befbbac89b794e185dc1cb6c7be4b3acf96b243c7a55e50af10b5c65e6d8a5f24d62db89cf6d8ad506f116ce0939c46770e7fff29438eb0e4710f2e167b01d5ef781fcd4291e93bdb8091db21bc70070e79bcfc2e74142cfc8df07f2b7ee704cfdf0f7615f7c718b47d4fe0c0506a7f3febab5e2fa73df8cfc6be15ff2154a45d1e89e7dc12e1c10a20af334342e1f54cba1951587e7d6dfe31c51a4545b67932cfcb273d856e77d65d5c4b1e7fecb57f49daf545f4f18ce3cebcc59f3e4b057cc581f4d2c9efb3ecfafdcfffbe575eba613dfadaa58b1c96dcb7812b2c53eba58f3e7e6f265cacf254994fb156b6cffbddf87c01659619bbcc666096bec230b790c29cfcdbd37957b7f1b9a1bf54ee79b605bcc3026ff7b884fc15253ff4c82f83b385ae025b1e77e8a95cac9537dd4cf148f0803019ff75dcedda7bbb52efa407f3d7122eed30f98fa675245cc6949e69ded64e35c1f51a08f6d9d8703a0ff6bf47b08ed7c6e62b2761073b774ccfbf646cca5c22b03ce7e8e5f01c12631db4b92d53f224ea9317b8adb74be06af36360dadb543e3ee4be4b9aa8220a2baf82c249d394c96df3eaf8ad8247c9a6b81006ee008c5bccb75f5053e582b324d6cfe34d6779af1d7a723dc4a66ac00b5b108e7380cc589517c952884bf06123c074311b9a636c4b70fd64a50740d47b84eef53c1db04f738c6276a690cad74bd46c2ce3936685ba7f6f5fcaa323c774ac7bcbf60103117161abd8e047a080153fdcee20f7a26e24edf132a1e04d7c84c83989706537af6e2c91fd3336b094b3bcd55c13d3dc9699a3d23dc3e0a1c93d5d3a2273862643cc240cdeedc127692380fb5ef99274f3d7a54fd78e49537c56a9a6dfebda60798d179fa12a9544eac43774c489ca2f82e312707c1f938d9c63db5a1381487b84d75c53b764af7635baf6020ed39be2f219e8310f746cc85c5e405badb6da103f38bcea0121bb465665d7872aebf4b8c933c0f40ae97cc04854769f513e2da3ac34a3ca34ac09d6431f20a037379457d3ece7599e7668a5d9b023bb28764a3b6d3160889399683b8428d4a14efceb6ea53bab2a5e895fc46a304cf718b5e8c47cc95131ecbf6388ed74e5732a7777906721d89470fe6c8e6d2775da09339418f4e13815562b7a9594bd86522064123aae0b87e78ee07f1a4e04048eb19ebe22d4aeb9d38746622826c84b66f25163ec69c9a9ffbc73d7d8d65ec3931c3c0bf3f62ae8c306371448a79cef8f681ac37f915ea3a3353c35979eb51e7f84539168dc16dc144b2969e1387fb0223e249499ecbff5d0818a4f612fbad49691a0fd9cee335eddae96a13c2560bc51e39da92fb8d188fad8a87cbf15c287a1331972fbc7afabde4288101c173e69a21642bb5d53aeb6c0d11f7b4d2df39c4b1b4e8041f12beee68ec92df729dca919af889ed3042e494acf47b14489ae9b857becd0f2de2448d6830ed3ee6e24bf9a6703bf41fa1f888da7e0afd2e19db0ea17b704a0c3911f6a8b01f794f097b2e2c117321c1167b09fcf536bde3438939e639e38b6ec154fa7fb27deea43f49a5e52a3a5bd25aa367ced8a3b148f2c4a2fcc2465873f42cd14597e4b982fedda74cc83c675a9fcc73b0adbcd912d11fb6e63c5fe4d01508bbe007db78e2ad929e45299e0b49c45c48c4334d474acef69c2b9e33ec7ab6d2adf71c26621c250e427e4ec2b34cd0c156d8808f4b5d708767652469cf15f58fb84dfb32c29e4b7a21ceca3c37947fcb5e6d766c657b33b100c5fb26cb94b3e7421231e717810ecbba9f04786e94c58688a7249ee391b2e3b46fda521ea9f47685e5e5fb6587923c67d973e6ac7969cf9d9a9e72416b23ee97b326077be3497e83af3df2dcbb094cf819682ff394b5a987e746ca9e33c625b6a75ea4b720d0435c90c6e59e9903d3b89df00492f9bf34864ba40ec379cca4ec84da51dfae727c2ec3733c86bfa4ab7d91b5300dfa98fb6caf6d2719dc0deaa988eebda416204764c6b2d7ca9e1be6d97310f855b388b990f00828be09ddc031fb93722685e00e234a4b969a8c9534e8dd5f17bf8e04d2a6532312790f633342c1f113834f84374825d6a9ddafb00d331561c6222f52fbd26a55b2a30ccfc9d8728bfde545dc00b16eec76deec059cb1cd3aa41a138ef08937e996e37e77e25de0b743c70f5b9263a5671c686f3fe621aa0bee894c02bdef7b34aaece9cc8fbd8616dd5995d1a2e313fe052f61bf19712ef1bcac1a5fed118cd8846a127300e156b10c79230d7745cdac48bb51b02e21d62a0d8f464e6e28fa457d1a17fdde35e1f252bc5d847cd01904eafdb6f88e82aeee2b217028475a7a0ff95706443fc3bf688c81bc47c4dccf2c345abef91783ef3fc721622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b7efdcffffcf2ff6d14cd7e</data>
+    </image>
+    <image name="image1">
+        <data format="PNG" length="3625">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade00000df049444154789ced5d5f681cc71dfe6d21c529a69c4b1f24438b14eac0a9b4b0aa52904a83566f91e440a4bed8322ebdb31c1af925919d87da71b89c5f94cba5b8951ecef11904920d8ea4827c4a4145e7a0700ad8d5a918ee0c0e9c835a4e460f6721ccc9e8e5ebc3deeeed9f99ddd9bd9323c737603e4b3b7f7e33fb9b6fbff9edcc8a40445789a86e0800eb0000642a885da0eeed34f085c59a1d34f5a0080090134ba0084091192e2a93c0e8e22a00e0bbee78039f5ff45530b7a91268606c0694af38a6470c1480d03c1a0edc40cfe8ad000065d29d51bda2320914b7cb0d09d1402114ca885d9511fd30aa178c2ee71a8edb405774cd90db2c414ed497599d504e2c352443031dd1310336814061ef19d68a81b19986e336908bdc0bb9cd1202633e187322054a009458022580de39355a30932f562586403d75715c00e389ab080d876cff62f11800a0582c3e3f9204406a3e55d7095dde2e23168f21341c4267b782d070c87ffd7b601f0bebc3b01507c3361c53a68067c2b8d8069007821d32721d05043b64fd1febe7f391e873c1ece72351ddfebad9bb08db78bc736ed4d744de13fb18689f79bbf0ccb02229f4c5aa2f8debc77143c321d38d50fa7b319eb80a00989a9e02e280d2df6bcab39a5dddff8cabd95f2f8780d961831d72cd4c5b57fb3868fb8552f6a84137dd1d569eced4a47195c925718782996171873f80780060b7f24873a8170f50fb8d702b5f43fd28fab00f4067b7627b0261dd65bc9e817d6ef9a5ab441426a224118501481fcd12d120118961e8b52c25df68275e0aff334bd7eeb60bd7c7c3a9b71ed2d0af5f9192467b1998cdaee2c4e9537afb8ad24313b1b86b391302183c3e44f7bfb9cfec93a2f4d0d9e1116a7df515a9ab5bc1d6932d0a1c0cd0caed3425254932d6975ecee0c2c50bb4f5648b824782d47be3baa4d999bcd14e6b777b68ebc996a9fee091207576c874f6bdb3e6fae240db0d75acc73f1da79ed77f274d24ae62e2b309bd6c5353333d7ab4414444f977b3941c32dba3a166372be5ef66d57601f41cedd3eb33a6c0c100ad2869da18dea0e6c3872551fb0207037a7f75fb004c5c49d2ecad395b5b4d4dcd943eba403bc776e8e51fff484a1299679e9f375c4ec9ab86757b8326b48701768da6f4f702ebc0d2724668c66b653bbb15b52315a67de7dca8ce489ddd0ab00d14bb4b261962adafd45fb65d8fc56376fb1681d070c8549f551b9a18b154f93d43936aff3f1f89f2c76b97adf97107eadac4d09ed2df0b00aa84aa8c8396bfd45faecd3e0be397facbeaefd7818163c7cde35d617a9d69c3f3abb8b6e683119bd284d33dcc191b26a26b1e99db09a31707a9596233879529db5ee3b33f913ae383475aa9a7bb87868e0f99190d40762d4bededbfb131745b870cad8efcdd2c4d5c4992914996e617aacc63b1237f374b0bb716e8dc471fe8368c0c876968e884b99d69a0edafe672494992e286b647864768e4ed5352783884afd7d64c7d0b1e0952e8d871ea7bb35f9a9e9ec2ca7f86e8e956988888da3bba68e47458edafa59d81a303d4fae107eee3c0e8972ffb8ef651f87498b4eb8ad243edb1b8e9fe5e884431776b8e88883a6599ba3ebb26a91a62b7b6786c8ea76b37ebc7b49ea309801ad69a138b22e8ccc0a86f35bb0aec9a176fb98e029085ce1436862175356d6524a5c2bcb98e82ba68e1d99faf3294b69a67dabb68d1f0967eb0faabb58b2cecfd71185764a18f83b13e6d11ebd53e3c30b73f70ecb889d1b10cdbfd030095697d685923cabf18a4ec7162a64fbe7e48e7fed5eaabde5ab4ad15378a4534373753faab15eab9df45835fda35ab51cb8dbc7f96d6ee666d7a9395ff713c866b37ae1311e9daf6e1370f69e874582f1fbb18a5be37fb252b535b35b0510b9f79ef8c5e67f8cbdb424c36faef351b536dfcefa17efd40e0104d7cfc89de4f16631a19d5cb3878b64fe089684c8183015a9a5f503d5e4ed4ce884e29b6523fc62d3830a2574ccda74c8c319eb80a23c375762baa8eaeac66a7a6a7980c83a29931989abad22eabbc5b14442b2fa219bdf47f35bbcaec8f9521354d6b1c0716437bb5cfdabe68bcfc071bdb65ac3d22a2cf2b8ce61367efdb57985a3adb4934431b4407fcd7afe12b7f9fa53000374d9bcdaec22d5fdfd13efa030dea76ee3c794c6d27dbf559bd723b4dc91f4a121d96a4a42449434327a4334d67f4fced723b2589880e4bd2c0d1012222537ddacfe9a30b7abb71f9927e2d79e33af7c930787ca85afe35b5bcb1fe89cf93ea5ae4f3b0a93d2f4fa076b9dd64afd69f3080b6bfa8e370ea6098d2b716282919c6a1629b6e8f4cbeecb3b67fe9e205ee9367a35884f633017560c0899423d3eaa9f2c6acd6f6a6ee39682fd8e3b45ac05b6b7f69396362544d7362d941e3c1bc6a665d6769662dcae0649f29fe09c6aab958653257cdc81b1706f234adf109d4d9ad9819d8629f674d6bb563bd7a5d8bd6e8f66d032855d70c7af420e4376aa0e14f1708eff491d7245d49133deaf1d5eee8c5410a7266e4ce761927de3ec58db1b252f048903e895ca2d623ad648dcf363535d3d3273b4c4d67d38011a0ed9659a369dacefa24e0c53f8da9a9a999929f8e53ebabaa864f1a62ab2ccdd8d4d44c43a92fdca32bc4d694464ddfa598e3c722e330dddf0bad4f2cfb346d6eb5c3b826e0a5e09120cd5e9f5619bfe4f50d9801b5cd307ed3683ae7f30d9903d352951162f118787142cc81ada15061e64adc148b2ac362b7b2aa2da99b70b00b338312e97b1eb472b178ccd1ced47cca94df54ce6a97965fb347bb8e6ab9a5e58cf73756a8f687f97b835de72351b5df5998c641d43ec7378f8cf642c321200f358a60c84f9e7771456640f1eaaead5a53a650024d786b3f30b6ff37b73470ef90bc325d1970ddcde5396d03855d8fd10a878e69272d461701a55c3d4cd93815fcfd4071a61d13dbcd556b12b5c7a9632d97d9e5e444ed0c5dae4c88cc7a0900a73ec3f5cc7aa9ae13a5cc99785a7bd1e51ca2a89c92ae437be3770a08a1b26909406ed3dc9fd483229449f5ba8651f83ff397db2c210a737d0396fac49856343a50a7542bd3fa2d278285923d3e6d75585e1cbb260742756f889c804d4bb3fa9b59474dfd1dbf63af375010eb2fe52b4f380ffd1bb8c9df0d681c3f77a67d460c6b4db530addf72428f264b7dd6c3980337335cbb954980c794228cc7ed0767bca2a8adbf514ebd46072aefaa0b63de780b9df903d07239c51d376b7957a6dd8b94db5435ec4c5ec071f719d3ba31a8e2128d914b95bd1a5edb07bf1f997536d346977db463c0e8b20706077f97a0e39e1187722d97d94777c8c9c3e5e9bd7059834356ce94c550d12c96d40b8e5d2edaf4bb645a91ef4204c6bc6bdde872ce33d3721dc5eb4411ad17ce5f1a6ab95cd5dca38babe0ad3d28e2fc25227e9cb6006e94a0770ea0922a1d280fd0a40fa7dd64b43b993167da0668dd9e6fe026f62dd37a897b3bbed9e33910a31fe0326d6ddf91882eb3e3e870d1ca3c8616c140c1bd7edb0cd6d0fae260349d03c5f933cfb3d3f266a44543f7ced9cf96591de579635a2386e6c5162b7e98f659685a1e66d6bd9fe69613629adf71b5ab3bd844ca7186b86953a6d396f8f5d9da17d15456c7da279a562e0129e31933a88e6edcbf3c7053e04405f8fdd8179a96815e4e75b714211c47e73293c9615d66889fc4655ae3cc9bb6e70b8cb93bde7e625a1e739477810154f3b9adb2471757f9fd00ffbed4d4df5aebe59467216fd1c5665a221ab8699f510040716786a5c88cd0695ca6d3ba30ad48bc6e3f32ad51d30a9d2286bd3eebae3056bcd4c468fb4cd36a767b3d7328fa49acda4f2eb4ac104e7691d7e4779757e64f8fa9ebe73f713cb9702a02f0ca17dfdda1e6caa94e2f271f3494223330d61755f274e1f55feaf5f54c2ee1f6b76abf9496411afaa3d899b6431fcfd2d653f171b8faa1f98401ebfe099fa9e3e07d007146bdb838c8ddf7bab30bbcfc12915f7f0a1c98a5c7eff3eb379dc66d29fa67be67c5b4caa4c00c2772665a81995c2f4d2b6aaf1f663296cf71cee2796a9f812d97d94f5aae865d079cfc484ea8f73eba9c035079a1c0e95fa90cdb2e3a33d312d1f4bd024efcc3fb59aede5f6569e12df1733e5af233139d66b828d312cd52e8e22085fffb98ba7e7648a8be3d675aaa3266fb9534ad093c814c4c4b44ad9753f876abcf96cf6a9f28f24e6787e42c25dfb49fce3dfbaf2cc5bf66efcb969b0669fc0df61372e24e01176eb7d2d6537bb9c08141baa43ca491df9acf049a3c58995cf21e5f2bf9a0591fdf4350cae20ce9e789e134e35386930575d7b40c0ccdbb8f8f17a656b438bacbea5cdb1dc76340a6e674614c91271bb601d9e1c9abd96f635a276d24c2805e92d7ef21040e0c52fecfe25ad48d69fda0c66c6e4c6b6428cf4c6b40b7279f9569b5fbd7fab7056231ae864a4b9a0e9dec21f9ab3cd1efdb88beca53fa611b6d3d756678a5254de9933dfa93696717f8e0252296e615d5a6565c01c0f30b637daeab59111c4de73c11ad5054c2809ede1c51253c5427a6b5aec28d9a95c92486f11b5df466374b23b218484e3833f8d43dc0ba1bcd2f02fcbd067c66ace1c3d80e4f0ccd1e66c1906690e89b9d31f5048248f2faf544d1374656b4ee7bf58bbc8175bb5ed7bf2161b5cb43b9a97b05d3fe54de5e1339a15e1fb899a9eec77570bca97b05289315078b54f7bdd6651f2f80f13b057d3fad16c75526d571e56a1b278dc1c44df5db5d4ec9ebf70ffc6ac2067ebfd191a9fcfcad05de6147799abfcf948542af361bf842a27b46d44f1b8aa25f49d0c01703c532a2aa5dbc32af170c8ca91a6c3f0c4c03f72f8a17a888f9bd6258c5e10d48031b6844cf0532eb25c733415eb1a6f048035f48f45f01d438a49f3d0bda36b406b336d00fd6a7a24a3c105057fd5a7c4dc30154374934fe066e036bc5ff03859b69b81278b6550000000049454e44ae426082</data>
+    </image>
+</images>
+<connections>
+    <connection>
+        <sender>Menu</sender>
+        <signal>clicked(QListBoxItem*)</signal>
+        <receiver>Tab_Signalisations</receiver>
+        <slot>setFocus()</slot>
+    </connection>
+    <connection>
+        <sender>buttonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>reject()</slot>
+    </connection>
+    <connection>
+        <sender>Menu</sender>
+        <signal>clicked(QListBoxItem*)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>changeTabSlot()</slot>
+    </connection>
+    <connection>
+        <sender>buttonSave</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>saveSlot()</slot>
+    </connection>
+    <connection>
+        <sender>stunButtonGroup</sender>
+        <signal>clicked(int)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>useStunSlot(int)</slot>
+    </connection>
+    <connection>
+        <sender>buttonApplySkin</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>applySkinSlot()</slot>
+    </connection>
+    <connection>
+        <sender>DriverChoice</sender>
+        <signal>clicked(int)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>driverSlot(int)</slot>
+    </connection>
+    <connection>
+        <sender>buttonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>accept()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>fullName</tabstop>
+    <tabstop>userPart</tabstop>
+    <tabstop>username</tabstop>
+    <tabstop>password</tabstop>
+    <tabstop>hostPart</tabstop>
+    <tabstop>sipproxy</tabstop>
+    <tabstop>autoregister</tabstop>
+    <tabstop>Register</tabstop>
+    <tabstop>buttonSave</tabstop>
+    <tabstop>buttonOk</tabstop>
+    <tabstop>buttonCancel</tabstop>
+    <tabstop>Tab_Signalisations</tabstop>
+    <tabstop>buttonHelp</tabstop>
+    <tabstop>SkinChoice</tabstop>
+    <tabstop>zoneToneChoice</tabstop>
+    <tabstop>confirmationToQuit</tabstop>
+    <tabstop>checkedTray</tabstop>
+    <tabstop>voicemailNumber</tabstop>
+    <tabstop>useStunYes</tabstop>
+    <tabstop>STUNserver</tabstop>
+    <tabstop>playTones</tabstop>
+    <tabstop>pulseLength</tabstop>
+    <tabstop>sendDTMFas</tabstop>
+    <tabstop>Menu</tabstop>
+    <tabstop>Tab_Audio</tabstop>
+    <tabstop>codec1</tabstop>
+    <tabstop>codec2</tabstop>
+    <tabstop>codec3</tabstop>
+    <tabstop>Tab_Preferences</tabstop>
+    <tabstop>Tab_About</tabstop>
+    <tabstop>useStunNo</tabstop>
+    <tabstop>ringsChoice</tabstop>
+    <tabstop>buttonApplySkin</tabstop>
+</tabstops>
+<includes>
+    <include location="local" impldecl="in implementation">configurationpanel.ui.h</include>
+</includes>
+<slots>
+    <slot>saveSlot()</slot>
+    <slot>changeTabSlot()</slot>
+    <slot>useStunSlot( int id )</slot>
+    <slot>applySkinSlot()</slot>
+    <slot>driverSlot( int id )</slot>
+</slots>
+<functions>
+    <function access="private" specifier="non virtual">init()</function>
+</functions>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/src/gui/official/url_input.ui.h b/src/gui/official/url_input.ui.h
new file mode 100644
index 0000000000000000000000000000000000000000..799834218081035ecd7ba791fe2ae519f9f59de7
--- /dev/null
+++ b/src/gui/official/url_input.ui.h
@@ -0,0 +1,12 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you want to add, delete, or rename functions or slots, use
+** Qt Designer to update this file, preserving your code.
+**
+** You should not define a constructor or destructor in this file.
+** Instead, write your code in functions called init() and destroy().
+** These will automatically be called by the form's constructor and
+** destructor.
+*****************************************************************************/
+
diff --git a/src/gui/official/vector.cpp b/src/gui/official/vector.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c58d02b1f3bd2bb12b48afcc363a607858a55cf8
--- /dev/null
+++ b/src/gui/official/vector.cpp
@@ -0,0 +1,50 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+#include "vector.h"
+#include "point.h"
+#include "transqwidget.h"
+
+Vector::Vector (QtGUIMainWindow* gui, const char* name, Point* pt) {
+	this->x = pt->getX (name);
+	this->y = pt->getY (name);
+	this->variation = pt->getVariation (name);
+	this->direction = pt->getDirection (name);
+
+	this->gui = (TransQWidget*)gui;
+}
+
+Vector::~Vector (void) {
+}
+
+/**
+ * Return the y-offset of the gui
+ */
+int
+Vector::offsetY (void) {
+	return (gui->getGlobalMouseY() - gui->getMouseY());
+}
+
+/**
+ * Return the x-offset of the gui
+ */
+int
+Vector::offsetX (void) {
+	return (gui->getGlobalMouseX() - gui->getMouseX());
+}
diff --git a/src/gui/official/vector.h b/src/gui/official/vector.h
new file mode 100644
index 0000000000000000000000000000000000000000..ef0774808578582a46f7ff06ca146a182a290ba9
--- /dev/null
+++ b/src/gui/official/vector.h
@@ -0,0 +1,50 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __VECTOR_H__
+#define __VECTOR_H__
+
+
+class TransQWidget;
+class Point;
+class QtGUIMainWindow;
+
+class Vector {
+public:
+	Vector (QtGUIMainWindow* = 0, const char* = 0, Point* = 0);
+	~Vector (void);
+
+	inline int X (void) { return x; }
+	inline int Y (void) { return y; }
+	inline int Direction (void) { return direction; }
+	inline int Variation (void) { return variation; }
+
+	int offsetY (void);
+	int offsetX (void);
+
+private:
+	int x;
+	int y;
+	int direction;
+	int variation;
+
+	TransQWidget* gui;
+};
+
+#endif // __VECTOR_H__
diff --git a/src/gui/official/volumecontrol.cpp b/src/gui/official/volumecontrol.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..adbc86af96533d6851b76286cc1635b8e0d82f54
--- /dev/null
+++ b/src/gui/official/volumecontrol.cpp
@@ -0,0 +1,89 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <qapplication.h>
+
+#include "point.h"
+#include "qtGUImainwindow.h"
+#include "vector.h"
+#include "volumecontrol.h"
+#include "../../skin.h"
+
+VolumeControl::VolumeControl (QWidget *parent, const char *name, 
+		const char* pixname, Vector *v) : JPushButton(parent, name, pixname) {
+	this->vect = v;
+	volumeValue = 0;
+}
+
+VolumeControl::~VolumeControl (void) {
+}
+
+int 
+VolumeControl::offset (int dir) {	
+	if (dir == VERTICAL) {
+		if (vect->offsetY() == 0) 
+			return mouse_y + MAIN_INITIAL_POSITION;
+		else if (vect->offsetY() > 0) 
+			return mouse_y + vect->offsetY();
+		else 
+			return 0;
+	} else if (dir == HORIZONTAL) {
+		if (vect->offsetX() == 0) 
+			return mouse_x + MAIN_INITIAL_POSITION;
+		else if (vect->offsetX() > 0) 
+			return mouse_x + vect->offsetX();
+		else 
+			return 0;
+	} else
+		return -1;
+}
+
+void
+VolumeControl::mouseMoveEvent (QMouseEvent *e) {
+	if (vect->Direction() == VERTICAL) {
+		// If the slider for the volume is vertical		
+		QPoint ptref(e->globalX() - mouse_x, e->globalY() - offset(VERTICAL));
+		if (ptref.y() >= vect->Variation() and ptref.y() <= vect->Y()) {
+			volumeValue = vect->Y() - ptref.y();
+			// Emit a signal
+			emit setVolumeValue (volumeValue);
+			move (QPoint(vect->X(), ptref.y()));
+		}
+	} 
+	if (vect->Direction() == HORIZONTAL) {
+		// If the slider for the volume is horizontal
+		QPoint ptref(e->globalX() - offset(HORIZONTAL), e->globalY() - mouse_y);
+		if (ptref.x() >= vect->X() and ptref.x() <= vect->Variation()) {
+			volumeValue = vect->X() - ptref.x();
+			// Emit a signal
+			emit setVolumeValue (volumeValue);
+			move (QPoint(ptref.x(), vect->Y()));
+		}
+	}
+}
+
+void
+VolumeControl::mousePressEvent (QMouseEvent *e) {
+	mouse_x = e->x();
+	mouse_y = e->y();
+}
+
+#include "volumecontrolmoc.cpp"
+
+// EOF
diff --git a/src/gui/official/volumecontrol.h b/src/gui/official/volumecontrol.h
new file mode 100644
index 0000000000000000000000000000000000000000..41816c82ca8e81e8e6dd96db5e0397c6be120bd4
--- /dev/null
+++ b/src/gui/official/volumecontrol.h
@@ -0,0 +1,48 @@
+/**
+ *  Copyright (C) 2004-2005 Savoir-Faire Linux inc.
+ *  Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com>
+ *                                                                              
+ *  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __VOLUME_CONTROL_H__
+#define __VOLUME_CONTROL_H__
+
+#include "jpushbutton.h"
+
+class Vector;
+class VolumeControl : public JPushButton {
+	Q_OBJECT
+public:
+	VolumeControl (QWidget* = 0, const char* = 0, const char* = 0, Vector* = 0);
+	~VolumeControl (void);
+
+	int		getValue		(void) { return volumeValue; }
+	inline	void setValue	(int val) { volumeValue = val; }
+	Vector*	vect;	
+signals:
+	void	setVolumeValue 	(int);
+private:
+	
+	void 	mouseMoveEvent	(QMouseEvent*);
+	void 	mousePressEvent	(QMouseEvent*);
+	int	 	offset			(int);
+
+	int 	mouse_x,
+			mouse_y;
+	int 	volumeValue;
+};
+
+#endif // __VOLUME_CONTROL_H__
diff --git a/src/gui/qt/url_input.ui b/src/gui/qt/url_input.ui
index f213aa8d942ca95968190b8470e11c394b3ed936..b06767a7d95d4a7273d17ece47382f091dcc4108 100644
--- a/src/gui/qt/url_input.ui
+++ b/src/gui/qt/url_input.ui
@@ -1,126 +1,1273 @@
 <!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>URL_Input</class>
+<class>ConfigurationPanel</class>
 <widget class="QDialog">
     <property name="name">
-        <cstring>URL_Input</cstring>
+        <cstring>ConfigurationPanel</cstring>
     </property>
     <property name="geometry">
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>250</width>
-            <height>21</height>
+            <width>561</width>
+            <height>552</height>
         </rect>
     </property>
     <property name="caption">
-        <string>URL_Input</string>
+        <string>Configuration panel</string>
     </property>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>buttonOK</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>208</x>
-                <y>-1</y>
-                <width>20</width>
-                <height>23</height>
-            </rect>
-        </property>
-        <property name="minimumSize">
-            <size>
-                <width>0</width>
-                <height>23</height>
-            </size>
-        </property>
-        <property name="maximumSize">
-            <size>
-                <width>20</width>
-                <height>23</height>
-            </size>
-        </property>
-        <property name="focusPolicy">
-            <enum>StrongFocus</enum>
-        </property>
-        <property name="text">
-            <string>1</string>
-        </property>
-        <property name="accel">
-            <string></string>
-        </property>
-    </widget>
-    <widget class="QPushButton">
-        <property name="name">
-            <cstring>buttonCancel</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>228</x>
-                <y>-1</y>
-                <width>20</width>
-                <height>23</height>
-            </rect>
-        </property>
-        <property name="minimumSize">
-            <size>
-                <width>0</width>
-                <height>23</height>
-            </size>
-        </property>
-        <property name="maximumSize">
-            <size>
-                <width>20</width>
-                <height>23</height>
-            </size>
-        </property>
-        <property name="focusPolicy">
-            <enum>TabFocus</enum>
-        </property>
-        <property name="text">
-            <string>0</string>
-        </property>
-        <property name="accel">
-            <string></string>
-        </property>
-    </widget>
-    <widget class="QLineEdit">
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
         <property name="name">
-            <cstring>url</cstring>
-        </property>
-        <property name="geometry">
-            <rect>
-                <x>-1</x>
-                <y>0</y>
-                <width>210</width>
-                <height>23</height>
-            </rect>
-        </property>
-        <property name="minimumSize">
-            <size>
-                <width>210</width>
-                <height>0</height>
-            </size>
+            <cstring>unnamed</cstring>
         </property>
-        <property name="focusPolicy">
-            <enum>StrongFocus</enum>
-        </property>
-    </widget>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout19</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="Line">
+                    <property name="name">
+                        <cstring>line1</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>HLine</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Sunken</enum>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout28</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonHelp</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Help</string>
+                            </property>
+                            <property name="accel">
+                                <string>F1</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <spacer>
+                            <property name="name">
+                                <cstring>Horizontal Spacing2</cstring>
+                            </property>
+                            <property name="orientation">
+                                <enum>Horizontal</enum>
+                            </property>
+                            <property name="sizeType">
+                                <enum>Expanding</enum>
+                            </property>
+                            <property name="sizeHint">
+                                <size>
+                                    <width>160</width>
+                                    <height>20</height>
+                                </size>
+                            </property>
+                        </spacer>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonSave</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Save</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+S</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                            <property name="default">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonOk</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;OK</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+O</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonCancel</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Cancel</string>
+                            </property>
+                            <property name="accel">
+                                <string>F, Backspace</string>
+                            </property>
+                            <property name="autoDefault">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QListBox" row="0" column="0">
+            <property name="name">
+                <cstring>Menu</cstring>
+            </property>
+            <property name="sizePolicy">
+                <sizepolicy>
+                    <hsizetype>0</hsizetype>
+                    <vsizetype>7</vsizetype>
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                </sizepolicy>
+            </property>
+            <property name="cursor">
+                <cursor>13</cursor>
+            </property>
+            <property name="currentItem">
+                <number>-1</number>
+            </property>
+            <property name="selectionMode">
+                <enum>Single</enum>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout17</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>TitleTab</cstring>
+                    </property>
+                    <property name="font">
+                        <font>
+                            <bold>1</bold>
+                        </font>
+                    </property>
+                    <property name="text">
+                        <string>Setup signalisation</string>
+                    </property>
+                </widget>
+                <widget class="Line">
+                    <property name="name">
+                        <cstring>line2</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>HLine</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Sunken</enum>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Signalisations</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>SIPPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>SIP Authentication</string>
+                        </attribute>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout24</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>16</x>
+                                    <y>12</y>
+                                    <width>401</width>
+                                    <height>393</height>
+                                </rect>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QGroupBox">
+                                    <property name="name">
+                                        <cstring>groupBox1</cstring>
+                                    </property>
+                                    <property name="title">
+                                        <string></string>
+                                    </property>
+                                    <grid>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel" row="0" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Full name</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="1" column="0">
+                                            <property name="name">
+                                                <cstring>fullName</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="3" column="0">
+                                            <property name="name">
+                                                <cstring>userPart</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="2" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>User Part of SIP URL</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="4" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel2_3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Authorization user</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="5" column="0">
+                                            <property name="name">
+                                                <cstring>username</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="9" column="0">
+                                            <property name="name">
+                                                <cstring>hostPart</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="11" column="0">
+                                            <property name="name">
+                                                <cstring>sipproxy</cstring>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="10" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3_2_2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>SIP proxy</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit" row="7" column="0">
+                                            <property name="name">
+                                                <cstring>password</cstring>
+                                            </property>
+                                            <property name="echoMode">
+                                                <enum>Password</enum>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="6" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel1_3</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Password</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLabel" row="8" column="0">
+                                            <property name="name">
+                                                <cstring>textLabel3_2</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Host part of SIP URL</string>
+                                            </property>
+                                        </widget>
+                                    </grid>
+                                </widget>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout23</cstring>
+                                    </property>
+                                    <vbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout19</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QCheckBox">
+                                                    <property name="name">
+                                                        <cstring>autoregister</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Auto-register</string>
+                                                    </property>
+                                                    <property name="checked">
+                                                        <bool>true</bool>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer7</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>201</width>
+                                                            <height>21</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QPushButton">
+                                                    <property name="name">
+                                                        <cstring>Register</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Register</string>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer9</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Vertical</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>20</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </vbox>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>STUNPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>STUN</string>
+                        </attribute>
+                        <widget class="QGroupBox">
+                            <property name="name">
+                                <cstring>groupBox3</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>110</y>
+                                    <width>253</width>
+                                    <height>100</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Settings </string>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel1_5</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>38</y>
+                                        <width>229</width>
+                                        <height>16</height>
+                                    </rect>
+                                </property>
+                                <property name="text">
+                                    <string>STUN server (address:port)</string>
+                                </property>
+                            </widget>
+                            <widget class="QLineEdit">
+                                <property name="name">
+                                    <cstring>STUNserver</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>60</y>
+                                        <width>229</width>
+                                        <height>23</height>
+                                    </rect>
+                                </property>
+                            </widget>
+                        </widget>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>stunButtonGroup</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>90</width>
+                                    <height>81</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Use STUN</string>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>useStunNo</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>No</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>true</bool>
+                                    </property>
+                                </widget>
+                                <widget class="QRadioButton">
+                                    <property name="name">
+                                        <cstring>useStunYes</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Yes</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>false</bool>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DTMFPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>DTMF</string>
+                        </attribute>
+                        <widget class="QGroupBox">
+                            <property name="name">
+                                <cstring>SettingsDTMF</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>301</width>
+                                    <height>130</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Settings</string>
+                            </property>
+                            <grid>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLayoutWidget" row="0" column="0">
+                                    <property name="name">
+                                        <cstring>layout11</cstring>
+                                    </property>
+                                    <vbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout10</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QCheckBox">
+                                                    <property name="name">
+                                                        <cstring>playTones</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Play tones locally</string>
+                                                    </property>
+                                                    <property name="checked">
+                                                        <bool>true</bool>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer6</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>111</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                            </hbox>
+                                        </widget>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout7</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QLabel">
+                                                    <property name="name">
+                                                        <cstring>labelPulseLength</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Pulse length</string>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer3</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>115</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QSpinBox">
+                                                    <property name="name">
+                                                        <cstring>pulseLength</cstring>
+                                                    </property>
+                                                    <property name="suffix">
+                                                        <string> ms</string>
+                                                    </property>
+                                                    <property name="maxValue">
+                                                        <number>1500</number>
+                                                    </property>
+                                                    <property name="minValue">
+                                                        <number>10</number>
+                                                    </property>
+                                                    <property name="value">
+                                                        <number>250</number>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                        <widget class="QLayoutWidget">
+                                            <property name="name">
+                                                <cstring>layout8</cstring>
+                                            </property>
+                                            <hbox>
+                                                <property name="name">
+                                                    <cstring>unnamed</cstring>
+                                                </property>
+                                                <widget class="QLabel">
+                                                    <property name="name">
+                                                        <cstring>labelSendDTMF</cstring>
+                                                    </property>
+                                                    <property name="text">
+                                                        <string>Send DTMF as</string>
+                                                    </property>
+                                                </widget>
+                                                <spacer>
+                                                    <property name="name">
+                                                        <cstring>spacer4</cstring>
+                                                    </property>
+                                                    <property name="orientation">
+                                                        <enum>Horizontal</enum>
+                                                    </property>
+                                                    <property name="sizeType">
+                                                        <enum>Expanding</enum>
+                                                    </property>
+                                                    <property name="sizeHint">
+                                                        <size>
+                                                            <width>85</width>
+                                                            <height>20</height>
+                                                        </size>
+                                                    </property>
+                                                </spacer>
+                                                <widget class="QComboBox">
+                                                    <item>
+                                                        <property name="text">
+                                                            <string>SIP INFO</string>
+                                                        </property>
+                                                    </item>
+                                                    <property name="name">
+                                                        <cstring>sendDTMFas</cstring>
+                                                    </property>
+                                                    <property name="currentItem">
+                                                        <number>0</number>
+                                                    </property>
+                                                </widget>
+                                            </hbox>
+                                        </widget>
+                                    </vbox>
+                                </widget>
+                            </grid>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Audio</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Drivers</string>
+                        </attribute>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>DriverChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>410</width>
+                                    <height>180</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Drivers list</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>CodecsPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Codecs</string>
+                        </attribute>
+                        <widget class="QButtonGroup">
+                            <property name="name">
+                                <cstring>CodecsChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>10</y>
+                                    <width>133</width>
+                                    <height>157</height>
+                                </rect>
+                            </property>
+                            <property name="title">
+                                <string>Supported codecs</string>
+                            </property>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout18</cstring>
+                                </property>
+                                <property name="geometry">
+                                    <rect>
+                                        <x>10</x>
+                                        <y>20</y>
+                                        <width>110</width>
+                                        <height>120</height>
+                                    </rect>
+                                </property>
+                                <grid>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLayoutWidget" row="0" column="0">
+                                        <property name="name">
+                                            <cstring>layout17</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec1</cstring>
+                                                </property>
+                                            </widget>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec2</cstring>
+                                                </property>
+                                            </widget>
+                                            <widget class="QComboBox">
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711u</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>G711a</string>
+                                                    </property>
+                                                </item>
+                                                <item>
+                                                    <property name="text">
+                                                        <string>GSM</string>
+                                                    </property>
+                                                </item>
+                                                <property name="name">
+                                                    <cstring>codec3</cstring>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                    <widget class="QLayoutWidget" row="0" column="1">
+                                        <property name="name">
+                                            <cstring>layout18</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>1</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4_2</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>2</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QLabel">
+                                                <property name="name">
+                                                    <cstring>textLabel1_4_3</cstring>
+                                                </property>
+                                                <property name="text">
+                                                    <string>3</string>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                </grid>
+                            </widget>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>RingPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Ringtones</string>
+                        </attribute>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>ringsChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>21</y>
+                                    <width>150</width>
+                                    <height>30</height>
+                                </rect>
+                            </property>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_Preferences</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Themes</string>
+                        </attribute>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>SkinChoice</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>12</x>
+                                    <y>42</y>
+                                    <width>110</width>
+                                    <height>27</height>
+                                </rect>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>buttonApplySkin</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>136</x>
+                                    <y>40</y>
+                                    <width>80</width>
+                                    <height>32</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Apply</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>TabPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>Options</string>
+                        </attribute>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout17</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>10</x>
+                                    <y>10</y>
+                                    <width>262</width>
+                                    <height>200</height>
+                                </rect>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout16</cstring>
+                                    </property>
+                                    <hbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel">
+                                            <property name="name">
+                                                <cstring>labelToneZone</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Zone tone:</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QComboBox">
+                                            <item>
+                                                <property name="text">
+                                                    <string>North America</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>France</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Australia</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>United Kingdom</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Spain</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Italy</string>
+                                                </property>
+                                            </item>
+                                            <item>
+                                                <property name="text">
+                                                    <string>Japan</string>
+                                                </property>
+                                            </item>
+                                            <property name="name">
+                                                <cstring>zoneToneChoice</cstring>
+                                            </property>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer5</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Horizontal</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>31</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </hbox>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>confirmationToQuit</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Show confirmation to quit.</string>
+                                    </property>
+                                    <property name="checked">
+                                        <bool>true</bool>
+                                    </property>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>checkedTray</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Minimize to tray</string>
+                                    </property>
+                                </widget>
+                                <widget class="QLayoutWidget">
+                                    <property name="name">
+                                        <cstring>layout16</cstring>
+                                    </property>
+                                    <hbox>
+                                        <property name="name">
+                                            <cstring>unnamed</cstring>
+                                        </property>
+                                        <widget class="QLabel">
+                                            <property name="name">
+                                                <cstring>textLabel1_6</cstring>
+                                            </property>
+                                            <property name="text">
+                                                <string>Voicemail:</string>
+                                            </property>
+                                        </widget>
+                                        <widget class="QLineEdit">
+                                            <property name="name">
+                                                <cstring>voicemailNumber</cstring>
+                                            </property>
+                                        </widget>
+                                        <spacer>
+                                            <property name="name">
+                                                <cstring>spacer6_2</cstring>
+                                            </property>
+                                            <property name="orientation">
+                                                <enum>Horizontal</enum>
+                                            </property>
+                                            <property name="sizeType">
+                                                <enum>Expanding</enum>
+                                            </property>
+                                            <property name="sizeHint">
+                                                <size>
+                                                    <width>61</width>
+                                                    <height>21</height>
+                                                </size>
+                                            </property>
+                                        </spacer>
+                                    </hbox>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </widget>
+                </widget>
+                <widget class="QTabWidget">
+                    <property name="name">
+                        <cstring>Tab_About</cstring>
+                    </property>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>DriversPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>About SFLPhone</string>
+                        </attribute>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>pixmapLabel1</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>50</x>
+                                    <y>40</y>
+                                    <width>312</width>
+                                    <height>91</height>
+                                </rect>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap>image0</pixmap>
+                            </property>
+                            <property name="scaledContents">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_2</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>20</x>
+                                    <y>170</y>
+                                    <width>371</width>
+                                    <height>121</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&lt;p align="center"&gt;
+Copyright (C) 2004-2005 Savoir-faire Linux inc.&lt;br&gt;&lt;br&gt;
+Laurielle LEA &amp;lt;laurielle.lea@savoirfairelinux.com&amp;gt;&lt;br&gt;&lt;br&gt;
+SFLPhone-0.4.1-pre1 is released under &lt;br&gt;the General Public License.&lt;br&gt;
+For more information, see http://www.sflphone.org&lt;br&gt;
+&lt;/p&gt;</string>
+                            </property>
+                        </widget>
+                    </widget>
+                    <widget class="QWidget">
+                        <property name="name">
+                            <cstring>CodecsPage</cstring>
+                        </property>
+                        <attribute name="title">
+                            <string>About Savoir-faire Linux inc.</string>
+                        </attribute>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>85</x>
+                                    <y>126</y>
+                                    <width>291</width>
+                                    <height>131</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&lt;p align="center"&gt;Website: http://www.savoirfairelinux.com&lt;br&gt;&lt;br&gt;
+5505, Saint-Laurent - bureau 3030&lt;br&gt;
+Montreal, Quebec H2T 1S6&lt;/p&gt;</string>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>pixmapLabel2</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>130</x>
+                                    <y>50</y>
+                                    <width>173</width>
+                                    <height>48</height>
+                                </rect>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap>image1</pixmap>
+                            </property>
+                            <property name="scaledContents">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </widget>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
 </widget>
+<images>
+    <image name="image0">
+        <data format="XPM.GZ" length="58862">789ced5d596fe3b8b27e9f5f114cbd0d0eea6475625cdc878eb3b4b34ca72799e9745f9c07c74b76c776363b07e7bfdf629194488ad49249e4f40151109292488a923e7dac85a2fff9dbc2e9d1e1c26ffffce5fea1f370d95de85e74260bbff51e6f6f67fff7affffdf72fbfae2c2d2f34971696165717967ffdc72fbfe21f0bdd05682c37d61a52ffcc7a87f40eebbb4a6f2a7d47e93da57f17fafa4aa3b7be2274e8487d7d49eab8a4f43575fc96f533d2cf58df547a53e953a5f794fe22f48d95f5de866caf2df58d25a9c34ce96beaf8b9d4cf96cf56f9f890f5333a2edb1b2bbd29757c547a4f1d1f495dd7c78b44efb13e507a43e9db426fae6ef49af27c7da93797943e50fa9ad4f145ea49fd65a577947ea8f5ee1ad7df557a5f1e872dadcbe3f8c47a97daefb2fea0f4a6d2ef95de53faa5d4757de849bdbbacf496d03babcd5e47f6ff52ea9d25a583d2d7a48e7da927f59f125d5ecf27a537947ec47a97eacbfe4c94de51fab1d2fb528767a927f5af94de913a74b5de93e7df577a5f955f14fad96aa7af9ee758eac9f36d28bda1f0b22775dd1e9e28bdaff403a9f79695bece7a2f799e23a5ebe7f9ac74f5fc7045eaba3e7c4af43e1f5f557a43eac0f8eaae25cffb4eeafa7ee354e90da5f7a4aeebe3b5d23baa3d7e3fba3d7d3fe14ee9ea7ee250e9eafec195d4757dfc5debfd06eb6b4aefabf62fb42e8fc367a9f79795ceef5b6f2db99f33a927f7734fe90da57f937a52ff20d1657fba4a6fa8fefc99e8f238bf2fd43b7d3f51e9fa7a6e95aefa8f9b52d7f5e14ce91dd5de86d0fb0d7d7df855eaba7fd854baea0fec285dd587b6d607f2f8b5d2fbaafd2f5a57c7f97dee27fdc153a5ebf6264ad7f5ffd2baac8f37521f2c2bfd4ce90da5ff10fa20391fee4b3d29df52ba2edf49f4019fff46e91da533df0c06fa3882d2d5f1af0f4a1f683d4a94fa24622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d7f177308d821399bf77544f979e4b598c32ef6b08f033cc70bb55de2155ee3cdbcafe8e30bdee210ef7084639ce03d3ee0233ed1df09e9cf38c519decebb87ef2bd53147ac768d2f8cb601612dfbf7136ecefbaa3ea2600bb70855dbb883bbf8b960dbc5366171847bb83fef7ebfbd54c51c1e58dc16da0e3f0eeef81df91dbfbc4bdbfb848b23622d282cf99570f4c7abb6e379dfc1b7962a98c31b1a3ffddce6fb7b52aac53f091107344a5ff2d87c42e8f8eb2daf0fbf25fd7973d4e1293392e0a5eff8a3a0ec6221b785b6a5b7eef7bca53ce6e8e915f39bbd2de7f916c43f57c17a2b7ebb903c966f6447ae166c6b29be08cdbaddde5bdf3b6c187c342a28bbe4e1b0255c278edcc0267e05c42d00e8f8b80ef0ad7b3e5f298b39465c96cb06849b2b42c8359ce1267433c797b1e36d0d88db2e0ab8f2c41db108a56539f602bfa9f324fbe1cd31077d838f724740ea4786bf60e02b07e7597b0fcedfbae7f3957298f372dc00d7ac327f911597e5ac818fb108a7699915dc14c8c40e9cc105f48cba874ead9ea7fdd0c67da3676df8d56f7defc8df4cb928b7751a855deeea602b507694e1bac5b7eef97ca50ce6f08b974baecd32c47321cec93c0db2e0521f37c38364e3ad32838ae3dfac73749df69709bb3d204e931bc915fd774dffabbec14d5e3ffeae900f9a72513ee6006e1d9edb0a9786a1c373776fddf3f94a29cc2dfbb8c4ba4b6730cae19c15abb52fc9fee073a267744163ab331a1242cd7657a13016581fcf6151d99151760727b9656fd9fa53e561f8d6fd9eb714638ec63eafdd649559ceb7afe0dadb5ec5f8b1652f96b2ce98e7743fde97e7c685a587e42734b3f13698900771ef29dfa211f9166790d766618c46956bc2234ee9fca76f7d0f5e234598a3912ec45f3725caa80d9e8c7bfca4f62f57ed2b3c57e5ac6a3c87fb70477e64533c49dcc7198ef101a6f81d66788477d9676ff1dc1fd2d2a7e7fa0c973084195c12b70523bad4b3676a7da6f90c3a30a61acd40e91f7847e567844260940e71421ecc928e1e877009f7e40bbfa49c293816c80dae7ae7df568a30079fcac4df380b96ef4b265137b6d5c4fe4f55fb6ad87307256b54b0e70861a94fd9f1c6ca1c5bdee439e6ba4e12af4bda8147efb9a6b0e9cf3f402bcb4584c5cf057ddbf58dd6701eb80eb204ca32e47b4821cf0d82fc3548fb4dcfd66bf319db956a2fe144c8b1a2037d49ec39b82859a302cf116b14e604888b8c676bf35cb0ceb6739e0d62a6dc3a84310311706ff154f83cb6853d8171ee39a64551ecf7937ccc4149eee2d859418e425bfc894ffa37ecb9b29833edb97c8cc343b9bc00f99f498cc3e539ff465c6322085d2ef46e064e7156a65fcca98955483ed8b0b04e7b5e5c5780b96e0e772dbb1126f20ef2b84e656089add27c43a5ab4eed3928392e97e7395f3e1436c9f619e13d8f50e9fe84e9caf11c6d897f41c8dec91cff4ee36cb64edab359e9dc6ce2e11253da1cb8497bc66401dad7f72131c7fe68c817ddf194ff421e4288eb5655995563ff7295b900863d57d287b0ecb9c3dc92599e3347d16d63ffae1e95b23c0703c2e83159edf6fe84b518a5d639a4f5c6734edaceb199aa93e1397811ef029dcbe52e957f33f2c09f79144d7c06f2904d3bf27b282efdbe92873908fba397e18c395c046cc0849bac5cc33969d7e5f2ef567ceeba548dd7f39ce32fc038cb412ecfe9d82db6c0e226d00c3fb4b8a7a351a5fbca2832b849ed77788ed84af11379d98e1da86a3c18fb3fdb769b7d9daead598fe4610ebf0438ab2036a66c3bb75e12d123241c7a8ef7b1879b79715e279fbb92df0bae61c6e772633336cfd93618f779cb3caef6d93c67645c9969b2e56d2ef5cc0ae051362dc3fce4f09cc54d60e571a1aff6764c4ecc9c636a5c67e6681d928bb96e96af60b7242765e78c185164c2c20a86e6e1898cd6375f9b467c4ee57269cf09b1a42d9be96c1693e7f27d0887e71a9eb34f8de3724434796ed78ec5391cc8c74c5b0ebc36059c5b9cc628b679ce9e1940bd36cb735c86fc629b17ad5929ecc398c7e71025ce1d5bcf325c5421a606570e9739f32838bf15f6750fb3a36726df1afeab50f76a7bce1335b5388547c5bc3c04581c28222c840593af02790b93a3a41de8f09c937b25de73cb8f1c3b8fd80cef69ef049f4c8e53dbccdf8ff7945c9edb7478a56214173edbf5bde7001ac1d788ad2e3dbce7ccb374f2ad79db4dd27aba2f17738e9de3cb45ad1bfcf0cc7bcc7925ce1be5d85a6453c1a3c55781f94966ec0ea6bcc7b6e79cecabe5f34a9e9b94f673c5f6fc1628aa26b93cd7b6b8a354ae8afcd6d574ae0878edb990e00d95bfb238cb9a7f97999f774863ab98a3796d6e84f4c4267c9d3d07de397f8c22cd5b6ced59f69c930720567379cea8af6d35cf3dc8f4c3e1b90da757e30ccfdd67b82c67f3e749de577279cef65bd3b9b7c44df464fd3697f4493fe9a33c37d3f15bf385ce7a62d88f8615e6d873d725be427815cff96d2df23a537e38e23da6cde662ceb60f7f64e6c505ec28b8346d446ec9e63907ab561f183fe4d796e5b85d7a6be610a32b88cfa5398313b56713b59de68d3d305e64fcaec7333121c9af96f0339356560dae4bfc34d39e2b9789b0ecb9f27eab27f2e8f014fb9c16cfb9b195877c9e0bcd37b7da6cf31e8be7dc6cbe555ef2dc83cd6564cd1d1147cf5c216fe263c68493f9bc623612f9142f066f9c786b98b9089e73492894ba971773ceece42fac7c6bc95cadc573b963bbc34b9ef920786c1c67abaa22cfd97c159887697d3721f754e4393cb2ec46af9d305f29c0dcb5b68792586f9abff4320d5c383ee441e29b56fad69ff854b7b39ab49dda732539d3b2e7cef3de6b87973c2c0426dfb0556571cc716e7b82e79a165f79470998581cb5ce67a9ca730dab8dc2797df54b01e63a094f64e36dde6f02c907f5fb92157d5e6c2575137e34f2adaf9957720139b90bc76fcde484a83fd9785b259e7338cc6bd1d9795299d7a8cc73b7561b7e0b08e6397bb370fedc5e300ee6650d62466f79a8b8a289f18d57ea8526f65cd9d62c7bee22ef8b5b273eb7eb8eae3831b84667a52ad9733cea99e7c85eb39527d57da8ca734e1ee2366b27e0a2884e136fcf213627a4107367c118981f7327deb2b93ea3b79d6b6d131afbd2f85cc9595036cfe5f1a39b6fd579247517d0e21a9d4bafca734de71c1607e186fd0dace6daaa3ca7a2d7693b632b5b36219426b6dec7cbf1ababfa1488f5fba3584f5e4eec5a2d7e29c20c8d6487b23e18350d7baee437f98e3d27da7bc26bfe4aec0c76f026b5313df34a1e93f9235bc416296725b9d86af61cd77062678487a9980bcf2b99d8f3eabeeb79ead5790ef7ed6f64a9f777c4a12d7a73d6ad3cc72eeebd359eca4809cc75d03f4fe44f4fd91b1f278215eb861ecab973413f965a39d4fc68bda3697cae24e65c9ef36df024d8cfbf9e08bc40dfcab38a2dc9c556e539f12e79e7cae5e607aaf31cc7654a9c43e639ea9752df1afee9e52e8f756ac5d5923cab3d57c498537268e62cd4d18ecafecbfa16b68cf85ce9b547f025688f5a9c5d7a9ef0d8988d6bd671fc43e215b3debeb17fa9c479ccb97b95798ef717ae8f42e89fd3ecf492dff11f7839c2f10369b4cae44c61e4ceedc41bd8b2ca5c72066b8dc6bc7dec9bf1347b44b66276a5a39999b928be6d10e2b90cefb5cc33e3c4389659338e9ea93e66dd01f12d56ee7976ecd89df33d843b37fbd8386665897196c7a9e4417cd0ef218c2b58f172841127232bed30cb21bed9c41cc53bcce59e174260c6e6c3dfd5f10a1e49609d15fbef75a9ef2176325fd3fc20ab4b1e6b7bce7cac8e7dcfe6f3f1ab9527357dd5a32c16f029e1a6ec9a08a9afbbebe662bf8a6fd9be67cf43e79e8b1da7a5c2ba4c2b7e8e202611ab21f9befbbac89b794e185dc1cb6c7be4b3acf96b243c7a55e50af10b5c65e6d8a5f24d62db89cf6d8ad506f116ce0939c46770e7fff29438eb0e4710f2e167b01d5ef781fcd4291e93bdb8091db21bc70070e79bcfc2e74142cfc8df07f2b7ee704cfdf0f7615f7c718b47d4fe0c0506a7f3febab5e2fa73df8cfc6be15ff2154a45d1e89e7dc12e1c10a20af334342e1f54cba1951587e7d6dfe31c51a4545b67932cfcb273d856e77d65d5c4b1e7fecb57f49daf545f4f18ce3cebcc59f3e4b057cc581f4d2c9efb3ecfafdcfffbe575eba613dfadaa58b1c96dcb7812b2c53eba58f3e7e6f265cacf254994fb156b6cffbddf87c01659619bbcc666096bec230b790c29cfcdbd37957b7f1b9a1bf54ee79b605bcc3026ff7b884fc15253ff4c82f83b385ae025b1e77e8a95cac9537dd4cf148f0803019ff75dcedda7bbb52efa407f3d7122eed30f98fa675245cc6949e69ded64e35c1f51a08f6d9d8703a0ff6bf47b08ed7c6e62b2761073b774ccfbf646cca5c22b03ce7e8e5f01c12631db4b92d53f224ea9317b8adb74be06af36360dadb543e3ee4be4b9aa8220a2baf82c249d394c96df3eaf8ad8247c9a6b81006ee008c5bccb75f5053e582b324d6cfe34d6779af1d7a723dc4a66ac00b5b108e7380cc589517c952884bf06123c074311b9a636c4b70fd64a50740d47b84eef53c1db04f738c6276a690cad74bd46c2ce3936685ba7f6f5fcaa323c774ac7bcbf60103117161abd8e047a080153fdcee20f7a26e24edf132a1e04d7c84c83989706537af6e2c91fd3336b094b3bcd55c13d3dc9699a3d23dc3e0a1c93d5d3a2273862643cc240cdeedc127692380fb5ef99274f3d7a54fd78e49537c56a9a6dfebda60798d179fa12a9544eac43774c489ca2f82e312707c1f938d9c63db5a1381487b84d75c53b764af7635baf6020ed39be2f219e8310f746cc85c5e405badb6da103f38bcea0121bb465665d7872aebf4b8c933c0f40ae97cc04854769f513e2da3ac34a3ca34ac09d6431f20a037379457d3ece7599e7668a5d9b023bb28764a3b6d3160889399683b8428d4a14efceb6ea53bab2a5e895fc46a304cf718b5e8c47cc95131ecbf6388ed74e5732a7777906721d89470fe6c8e6d2775da09339418f4e13815562b7a9594bd86522064123aae0b87e78ee07f1a4e04048eb19ebe22d4aeb9d38746622826c84b66f25163ec69c9a9ffbc73d7d8d65ec3931c3c0bf3f62ae8c306371448a79cef8f681ac37f915ea3a3353c35979eb51e7f84539168dc16dc144b2969e1387fb0223e249499ecbff5d0818a4f612fbad49691a0fd9cee335eddae96a13c2560bc51e39da92fb8d188fad8a87cbf15c287a1331972fbc7afabde4288101c173e69a21642bb5d53aeb6c0d11f7b4d2df39c4b1b4e8041f12beee68ec92df729dca919af889ed3042e494acf47b14489ae9b857becd0f2de2448d6830ed3ee6e24bf9a6703bf41fa1f888da7e0afd2e19db0ea17b704a0c3911f6a8b01f794f097b2e2c117321c1167b09fcf536bde3438939e639e38b6ec154fa7fb27deea43f49a5e52a3a5bd25aa367ced8a3b148f2c4a2fcc2465873f42cd14597e4b982fedda74cc83c675a9fcc73b0adbcd912d11fb6e63c5fe4d01508bbe007db78e2ad929e45299e0b49c45c48c4334d474acef69c2b9e33ec7ab6d2adf71c26621c250e427e4ec2b34cd0c156d8808f4b5d708767652469cf15f58fb84dfb32c29e4b7a21ceca3c37947fcb5e6d766c657b33b100c5fb26cb94b3e7421231e717810ecbba9f04786e94c58688a7249ee391b2e3b46fda521ea9f47685e5e5fb6587923c67d973e6ac7969cf9d9a9e72416b23ee97b326077be3497e83af3df2dcbb094cf819682ff394b5a987e746ca9e33c625b6a75ea4b720d0435c90c6e59e9903d3b89df00492f9bf34864ba40ec379cca4ec84da51dfae727c2ec3733c86bfa4ab7d91b5300dfa98fb6caf6d2719dc0deaa988eebda416204764c6b2d7ca9e1be6d97310f855b388b990f00828be09ddc031fb93722685e00e234a4b969a8c9534e8dd5f17bf8e04d2a6532312790f633342c1f113834f84374825d6a9ddafb00d331561c6222f52fbd26a55b2a30ccfc9d8728bfde545dc00b16eec76deec059cb1cd3aa41a138ef08937e996e37e77e25de0b743c70f5b9263a5671c686f3fe621aa0bee894c02bdef7b34aaece9cc8fbd8616dd5995d1a2e313fe052f61bf19712ef1bcac1a5fed118cd8846a127300e156b10c79230d7745cdac48bb51b02e21d62a0d8f464e6e28fa457d1a17fdde35e1f252bc5d847cd01904eafdb6f88e82aeee2b217028475a7a0ff95706443fc3bf688c81bc47c4dccf2c345abef91783ef3fc721622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b7efdcffffcf2ff6d14cd7e</data>
+    </image>
+    <image name="image1">
+        <data format="PNG" length="3625">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade00000df049444154789ced5d5f681cc71dfe6d21c529a69c4b1f24438b14eac0a9b4b0aa52904a83566f91e440a4bed8322ebdb31c1af925919d87da71b89c5f94cba5b8951ecef11904920d8ea4827c4a4145e7a0700ad8d5a918ee0c0e9c835a4e460f6721ccc9e8e5ebc3deeeed9f99ddd9bd9323c737603e4b3b7f7e33fb9b6fbff9edcc8a40445789a86e0800eb0000642a885da0eeed34f085c59a1d34f5a0080090134ba0084091192e2a93c0e8e22a00e0bbee78039f5ff45530b7a91268606c0694af38a6470c1480d03c1a0edc40cfe8ad000065d29d51bda2320914b7cb0d09d1402114ca885d9511fd30aa178c2ee71a8edb405774cd90db2c414ed497599d504e2c352443031dd1310336814061ef19d68a81b19986e336908bdc0bb9cd1202633e187322054a009458022580de39355a30932f562586403d75715c00e389ab080d876cff62f11800a0582c3e3f9204406a3e55d7095dde2e23168f21341c4267b782d070c87ffd7b601f0bebc3b01507c3361c53a68067c2b8d8069007821d32721d05043b64fd1febe7f391e873c1ece72351ddfebad9bb08db78bc736ed4d744de13fb18689f79bbf0ccb02229f4c5aa2f8debc77143c321d38d50fa7b319eb80a00989a9e02e280d2df6bcab39a5dddff8cabd95f2f8780d961831d72cd4c5b57fb3868fb8552f6a84137dd1d569eced4a47195c925718782996171873f80780060b7f24873a8170f50fb8d702b5f43fd28fab00f4067b7627b0261dd65bc9e817d6ef9a5ab441426a224118501481fcd12d120118961e8b52c25df68275e0aff334bd7eeb60bd7c7c3a9b71ed2d0af5f9192467b1998cdaee2c4e9537afb8ad24313b1b86b391302183c3e44f7bfb9cfec93a2f4d0d9e1116a7df515a9ab5bc1d6932d0a1c0cd0caed3425254932d6975ecee0c2c50bb4f5648b824782d47be3baa4d999bcd14e6b777b68ebc996a9fee091207576c874f6bdb3e6fae240db0d75acc73f1da79ed77f274d24ae62e2b309bd6c5353333d7ab4414444f977b3941c32dba3a166372be5ef66d57601f41cedd3eb33a6c0c100ad2869da18dea0e6c3872551fb0207037a7f75fb004c5c49d2ecad395b5b4d4dcd943eba403bc776e8e51fff484a1299679e9f375c4ec9ab86757b8326b48701768da6f4f702ebc0d2724668c66b653bbb15b52315a67de7dca8ce489ddd0ab00d14bb4b261962adafd45fb65d8fc56376fb1681d070c8549f551b9a18b154f93d43936aff3f1f89f2c76b97adf97107eadac4d09ed2df0b00aa84aa8c8396bfd45faecd3e0be397facbeaefd7818163c7cde35d617a9d69c3f3abb8b6e683119bd284d33dcc191b26a26b1e99db09a31707a9596233879529db5ee3b33f913ae383475aa9a7bb87868e0f99190d40762d4bededbfb131745b870cad8efcdd2c4d5c4992914996e617aacc63b1237f374b0bb716e8dc471fe8368c0c876968e884b99d69a0edafe672494992e286b647864768e4ed5352783884afd7d64c7d0b1e0952e8d871ea7bb35f9a9e9ec2ca7f86e8e956988888da3bba68e47458edafa59d81a303d4fae107eee3c0e8972ffb8ef651f87498b4eb8ad243edb1b8e9fe5e884431776b8e88883a6599ba3ebb26a91a62b7b6786c8ea76b37ebc7b49ea309801ad69a138b22e8ccc0a86f35bb0aec9a176fb98e029085ce1436862175356d6524a5c2bcb98e82ba68e1d99faf3294b69a67dabb68d1f0967eb0faabb58b2cecfd71185764a18f83b13e6d11ebd53e3c30b73f70ecb889d1b10cdbfd030095697d685923cabf18a4ec7162a64fbe7e48e7fed5eaabde5ab4ad15378a4534373753faab15eab9df45835fda35ab51cb8dbc7f96d6ee666d7a9395ff713c866b37ae1311e9daf6e1370f69e874582f1fbb18a5be37fb252b535b35b0510b9f79ef8c5e67f8cbdb424c36faef351b536dfcefa17efd40e0104d7cfc89de4f16631a19d5cb3878b64fe089684c8183015a9a5f503d5e4ed4ce884e29b6523fc62d3830a2574ccda74c8c319eb80a23c375762baa8eaeac66a7a6a7980c83a29931989abad22eabbc5b14442b2fa219bdf47f35bbcaec8f9521354d6b1c0716437bb5cfdabe68bcfc071bdb65ac3d22a2cf2b8ce61367efdb57985a3adb4934431b4407fcd7afe12b7f9fa53000374d9bcdaec22d5fdfd13efa030dea76ee3c794c6d27dbf559bd723b4dc91f4a121d96a4a42449434327a4334d67f4fced723b2589880e4bd2c0d1012222537ddacfe9a30b7abb71f9927e2d79e33af7c930787ca85afe35b5bcb1fe89cf93ea5ae4f3b0a93d2f4fa076b9dd64afd69f3080b6bfa8e370ea6098d2b716282919c6a1629b6e8f4cbeecb3b67fe9e205ee9367a35884f633017560c0899423d3eaa9f2c6acd6f6a6ee39682fd8e3b45ac05b6b7f69396362544d7362d941e3c1bc6a665d6769662dcae0649f29fe09c6aab958653257cdc81b1706f234adf109d4d9ad9819d8629f674d6bb563bd7a5d8bd6e8f66d032855d70c7af420e4376aa0e14f1708eff491d7245d49133deaf1d5eee8c5410a7266e4ce761927de3ec58db1b252f048903e895ca2d623ad648dcf363535d3d3273b4c4d67d38011a0ed9659a369dacefa24e0c53f8da9a9a999929f8e53ebabaa864f1a62ab2ccdd8d4d44c43a92fdca32bc4d694464ddfa598e3c722e330dddf0bad4f2cfb346d6eb5c3b826e0a5e09120cd5e9f5619bfe4f50d9801b5cd307ed3683ae7f30d9903d352951162f118787142cc81ada15061e64adc148b2ac362b7b2aa2da99b70b00b338312e97b1eb472b178ccd1ced47cca94df54ce6a97965fb347bb8e6ab9a5e58cf73756a8f687f97b835de72351b5df5998c641d43ec7378f8cf642c321200f358a60c84f9e7771456640f1eaaead5a53a650024d786b3f30b6ff37b73470ef90bc325d1970ddcde5396d03855d8fd10a878e69272d461701a55c3d4cd93815fcfd4071a61d13dbcd556b12b5c7a9632d97d9e5e444ed0c5dae4c88cc7a0900a73ec3f5cc7aa9ae13a5cc99785a7bd1e51ca2a89c92ae437be3770a08a1b26909406ed3dc9fd483229449f5ba8651f83ff397db2c210a737d0396fac49856343a50a7542bd3fa2d278285923d3e6d75585e1cbb260742756f889c804d4bb3fa9b59474dfd1dbf63af375010eb2fe52b4f380ffd1bb8c9df0d681c3f77a67d460c6b4db530addf72428f264b7dd6c3980337335cbb954980c794228cc7ed0767bca2a8adbf514ebd46072aefaa0b63de780b9df903d07239c51d376b7957a6dd8b94db5435ec4c5ec071f719d3ba31a8e2128d914b95bd1a5edb07bf1f997536d346977db463c0e8b20706077f97a0e39e1187722d97d94777c8c9c3e5e9bd7059834356ce94c550d12c96d40b8e5d2edaf4bb645a91ef4204c6bc6bdde872ce33d3721dc5eb4411ad17ce5f1a6ab95cd5dca38babe0ad3d28e2fc25227e9cb6006e94a0770ea0922a1d280fd0a40fa7dd64b43b993167da0668dd9e6fe026f62dd37a897b3bbed9e33910a31fe0326d6ddf91882eb3e3e870d1ca3c8616c140c1bd7edb0cd6d0fae260349d03c5f933cfb3d3f266a44543f7ced9cf96591de579635a2386e6c5162b7e98f659685a1e66d6bd9fe69613629adf71b5ab3bd844ca7186b86953a6d396f8f5d9da17d15456c7da279a562e0129e31933a88e6edcbf3c7053e04405f8fdd8179a96815e4e75b714211c47e73293c9615d66889fc4655ae3cc9bb6e70b8cb93bde7e625a1e739477810154f3b9adb2471757f9fd00ffbed4d4df5aebe59467216fd1c5665a221ab8699f510040716786a5c88cd0695ca6d3ba30ad48bc6e3f32ad51d30a9d2286bd3eebae3056bcd4c468fb4cd36a767b3d7328fa49acda4f2eb4ac104e7691d7e4779757e64f8fa9ebe73f713cb9702a02f0ca17dfdda1e6caa94e2f271f3494223330d61755f274e1f55feaf5f54c2ee1f6b76abf9496411afaa3d899b6431fcfd2d653f171b8faa1f98401ebfe099fa9e3e07d007146bdb838c8ddf7bab30bbcfc12915f7f0a1c98a5c7eff3eb379dc66d29fa67be67c5b4caa4c00c2772665a81995c2f4d2b6aaf1f663296cf71cee2796a9f812d97d94f5aae865d079cfc484ea8f73eba9c035079a1c0e95fa90cdb2e3a33d312d1f4bd024efcc3fb59aede5f6569e12df1733e5af233139d66b828d312cd52e8e22085fffb98ba7e7648a8be3d675aaa3266fb9534ad093c814c4c4b44ad9753f876abcf96cf6a9f28f24e6787e42c25dfb49fce3dfbaf2cc5bf66efcb969b0669fc0df61372e24e01176eb7d2d6537bb9c08141baa43ca491df9acf049a3c58995cf21e5f2bf9a0591fdf4350cae20ce9e789e134e35386930575d7b40c0ccdbb8f8f17a656b438bacbea5cdb1dc76340a6e674614c91271bb601d9e1c9abd96f635a276d24c2805e92d7ef21040e0c52fecfe25ad48d69fda0c66c6e4c6b6428cf4c6b40b7279f9569b5fbd7fab7056231ae864a4b9a0e9dec21f9ab3cd1efdb88beca53fa611b6d3d756678a5254de9933dfa93696717f8e0252296e615d5a6565c01c0f30b637daeab59111c4de73c11ad5054c2809ede1c51253c5427a6b5aec28d9a95c92486f11b5df466374b23b218484e3833f8d43dc0ba1bcd2f02fcbd067c66ace1c3d80e4f0ccd1e66c1906690e89b9d31f5048248f2faf544d1374656b4ee7bf58bbc8175bb5ed7bf2161b5cb43b9a97b05d3fe54de5e1339a15e1fb899a9eec77570bca97b05289315078b54f7bdd6651f2f80f13b057d3fad16c75526d571e56a1b278dc1c44df5db5d4ec9ebf70ffc6ac2067ebfd191a9fcfcad05de6147799abfcf948542af361bf842a27b46d44f1b8aa25f49d0c01703c532a2aa5dbc32af170c8ca91a6c3f0c4c03f72f8a17a888f9bd6258c5e10d48031b6844cf0532eb25c733415eb1a6f048035f48f45f01d438a49f3d0bda36b406b336d00fd6a7a24a3c105057fd5a7c4dc30154374934fe066e036bc5ff03859b69b81278b6550000000049454e44ae426082</data>
+    </image>
+</images>
 <connections>
+    <connection>
+        <sender>Menu</sender>
+        <signal>clicked(QListBoxItem*)</signal>
+        <receiver>Tab_Signalisations</receiver>
+        <slot>setFocus()</slot>
+    </connection>
     <connection>
         <sender>buttonCancel</sender>
         <signal>clicked()</signal>
-        <receiver>URL_Input</receiver>
+        <receiver>ConfigurationPanel</receiver>
         <slot>reject()</slot>
     </connection>
+    <connection>
+        <sender>Menu</sender>
+        <signal>clicked(QListBoxItem*)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>changeTabSlot()</slot>
+    </connection>
+    <connection>
+        <sender>buttonSave</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>saveSlot()</slot>
+    </connection>
+    <connection>
+        <sender>stunButtonGroup</sender>
+        <signal>clicked(int)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>useStunSlot(int)</slot>
+    </connection>
+    <connection>
+        <sender>buttonApplySkin</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>applySkinSlot()</slot>
+    </connection>
+    <connection>
+        <sender>DriverChoice</sender>
+        <signal>clicked(int)</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>driverSlot(int)</slot>
+    </connection>
+    <connection>
+        <sender>buttonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>ConfigurationPanel</receiver>
+        <slot>accept()</slot>
+    </connection>
 </connections>
 <tabstops>
-    <tabstop>url</tabstop>
-    <tabstop>buttonOK</tabstop>
+    <tabstop>fullName</tabstop>
+    <tabstop>userPart</tabstop>
+    <tabstop>username</tabstop>
+    <tabstop>password</tabstop>
+    <tabstop>hostPart</tabstop>
+    <tabstop>sipproxy</tabstop>
+    <tabstop>autoregister</tabstop>
+    <tabstop>Register</tabstop>
+    <tabstop>buttonSave</tabstop>
+    <tabstop>buttonOk</tabstop>
     <tabstop>buttonCancel</tabstop>
+    <tabstop>Tab_Signalisations</tabstop>
+    <tabstop>buttonHelp</tabstop>
+    <tabstop>SkinChoice</tabstop>
+    <tabstop>zoneToneChoice</tabstop>
+    <tabstop>confirmationToQuit</tabstop>
+    <tabstop>checkedTray</tabstop>
+    <tabstop>voicemailNumber</tabstop>
+    <tabstop>useStunYes</tabstop>
+    <tabstop>STUNserver</tabstop>
+    <tabstop>playTones</tabstop>
+    <tabstop>pulseLength</tabstop>
+    <tabstop>sendDTMFas</tabstop>
+    <tabstop>Menu</tabstop>
+    <tabstop>Tab_Audio</tabstop>
+    <tabstop>codec1</tabstop>
+    <tabstop>codec2</tabstop>
+    <tabstop>codec3</tabstop>
+    <tabstop>Tab_Preferences</tabstop>
+    <tabstop>Tab_About</tabstop>
+    <tabstop>useStunNo</tabstop>
+    <tabstop>ringsChoice</tabstop>
+    <tabstop>buttonApplySkin</tabstop>
 </tabstops>
 <includes>
-    <include location="local" impldecl="in implementation">url_input.ui.h</include>
+    <include location="local" impldecl="in implementation">configurationpanel.ui.h</include>
 </includes>
+<slots>
+    <slot>saveSlot()</slot>
+    <slot>changeTabSlot()</slot>
+    <slot>useStunSlot( int id )</slot>
+    <slot>applySkinSlot()</slot>
+    <slot>driverSlot( int id )</slot>
+</slots>
+<functions>
+    <function access="private" specifier="non virtual">init()</function>
+</functions>
 <layoutdefaults spacing="6" margin="11"/>
 </UI>