diff options
-rw-r--r-- | tubes/Library_tubes.mk | 1 | ||||
-rw-r--r-- | tubes/Module_tubes.mk | 4 | ||||
-rw-r--r-- | tubes/UI_tubes.mk (renamed from tubes/AllLangResTarget_tubes.mk) | 9 | ||||
-rw-r--r-- | tubes/source/contacts.cxx | 113 | ||||
-rw-r--r-- | tubes/source/contacts.hrc | 12 | ||||
-rw-r--r-- | tubes/source/contacts.src | 66 | ||||
-rw-r--r-- | tubes/uiconfig/ui/contacts.ui | 135 |
7 files changed, 176 insertions, 164 deletions
diff --git a/tubes/Library_tubes.mk b/tubes/Library_tubes.mk index 1f79acade6c7..d2621563514c 100644 --- a/tubes/Library_tubes.mk +++ b/tubes/Library_tubes.mk @@ -47,7 +47,6 @@ $(eval $(call gb_Library_use_libraries,tubes,\ svt \ svxcore \ tl \ - utl \ vcl \ $(gb_UWINAPI) \ )) diff --git a/tubes/Module_tubes.mk b/tubes/Module_tubes.mk index 7eec7984e60f..dc0bba82b283 100644 --- a/tubes/Module_tubes.mk +++ b/tubes/Module_tubes.mk @@ -30,10 +30,10 @@ $(eval $(call gb_Module_Module,tubes)) ifeq ($(ENABLE_TELEPATHY),TRUE) $(eval $(call gb_Module_add_targets,tubes,\ - AllLangResTarget_tubes \ + Executable_liboapprover \ Library_tubes \ Package_inc \ - Executable_liboapprover \ + UI_tubes \ )) $(eval $(call gb_Module_add_subsequentcheck_targets,tubes,\ diff --git a/tubes/AllLangResTarget_tubes.mk b/tubes/UI_tubes.mk index 9cd4e1fea948..59801da9667f 100644 --- a/tubes/AllLangResTarget_tubes.mk +++ b/tubes/UI_tubes.mk @@ -6,14 +6,11 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # -$(eval $(call gb_AllLangResTarget_AllLangResTarget,tubes)) -$(eval $(call gb_AllLangResTarget_add_srs,tubes,tubes/res)) +$(eval $(call gb_UI_UI,tubes)) -$(eval $(call gb_SrsTarget_SrsTarget,tubes/res)) - -$(eval $(call gb_SrsTarget_add_files,tubes/res,\ - tubes/source/contacts.src \ +$(eval $(call gb_UI_add_uifiles,tubes,\ + tubes/uiconfig/ui/contacts \ )) # vim: set noet sw=4 ts=4: diff --git a/tubes/source/contacts.cxx b/tubes/source/contacts.cxx index 3c0a3322bca1..91cce715b831 100644 --- a/tubes/source/contacts.cxx +++ b/tubes/source/contacts.cxx @@ -28,44 +28,26 @@ #include <sal/config.h> -#include "contacts.hrc" #include <svtools/filter.hxx> -#include <svx/simptabl.hxx> -#include <tools/resid.hxx> #include <tubes/conference.hxx> #include <tubes/collaboration.hxx> #include <tubes/manager.hxx> -#include <unotools/confignode.hxx> -#include <vcl/fixed.hxx> +#include <vcl/button.hxx> #include <vcl/dialog.hxx> -#include <vcl/unohelp.hxx> +#include <vcl/lstbox.hxx> -#include <map> -#include <vector> #include <telepathy-glib/telepathy-glib.h> namespace { -ResId TubesResId( sal_uInt32 nId ) -{ - static ResMgr* pResMgr = NULL; - if (!pResMgr) - { - pResMgr = ResMgr::CreateResMgr( "tubes" ); - } - return ResId( nId, *pResMgr ); -} - class TubeContacts : public ModelessDialog { - FixedLine maLabel; - PushButton maBtnDemo; - PushButton maBtnConnect; - PushButton maBtnGroup; - PushButton maBtnInvite; - PushButton maBtnListen; - SvxSimpleTableContainer maListContainer; - SvxSimpleTable maList; + PushButton* mpBtnDemo; + PushButton* mpBtnBuddy; + PushButton* mpBtnGroup; + PushButton* mpBtnInvite; + PushButton* mpBtnListen; + ListBox* mpList; Collaboration* mpCollaboration; DECL_LINK( BtnDemoHdl, void * ); @@ -78,12 +60,11 @@ class TubeContacts : public ModelessDialog void Invite() { - AccountContactPair *pAC = NULL; - if (maList.FirstSelected()) - pAC = static_cast<AccountContactPair*> (maList.FirstSelected()->GetUserData()); - if (pAC) + if (mpList->GetSelectEntryCount()) { - mpCollaboration->Invite( pAC->second ); + sal_uInt16 i = mpList->GetSelectEntryPos(); + TpContact* pContact = maACs[i].second; + mpCollaboration->Invite( pContact ); } } @@ -107,13 +88,11 @@ class TubeContacts : public ModelessDialog void StartBuddySession() { - AccountContactPair *pAC = NULL; - if (maList.FirstSelected()) - pAC = static_cast<AccountContactPair*> (maList.FirstSelected()->GetUserData()); - if (pAC) + if (mpList->GetSelectEntryCount()) { - TpAccount* pAccount = pAC->first; - TpContact* pContact = pAC->second; + sal_uInt16 i = mpList->GetSelectEntryPos(); + TpAccount* pAccount = maACs[i].first; + TpContact* pContact = maACs[i].second; SAL_INFO( "tubes", "picked " << tp_contact_get_identifier( pContact ) ); TeleConference* pConference = TeleManager::startBuddySession( pAccount, pContact ); if (!pConference) @@ -129,12 +108,10 @@ class TubeContacts : public ModelessDialog void StartGroupSession() { - AccountContactPair *pAC = NULL; - if (maList.FirstSelected()) - pAC = static_cast<AccountContactPair*> (maList.FirstSelected()->GetUserData()); - if (pAC) + if (mpList->GetSelectEntryCount()) { - TpAccount* pAccount = pAC->first; + sal_uInt16 i = mpList->GetSelectEntryPos(); + TpAccount* pAccount = maACs[i].first; SAL_INFO( "tubes", "picked " << tp_account_get_display_name( pAccount ) ); TeleConference* pConference = TeleManager::startGroupSession( pAccount, rtl::OUString("liboroom"), rtl::OUString("conference.jabber.org") ); @@ -149,36 +126,20 @@ class TubeContacts : public ModelessDialog public: TubeContacts( Collaboration* pCollaboration ) : - ModelessDialog( NULL, TubesResId( RID_TUBES_DLG_CONTACTS ) ), - maLabel( this, TubesResId( FL_LABEL ) ), - maBtnDemo( this, TubesResId( BTN_DEMO ) ), - maBtnConnect( this, TubesResId( BTN_CONNECT ) ), - maBtnGroup( this, TubesResId( BTN_GROUP ) ), - maBtnInvite( this, TubesResId( BTN_INVITE ) ), - maBtnListen( this, TubesResId( BTN_LISTEN ) ), - maListContainer( this, TubesResId( CTL_LIST ) ), - maList( maListContainer ), + ModelessDialog( NULL, "ContactsDialog", "tubes/ui/contacts.ui" ), mpCollaboration( pCollaboration ) { - Hide(); - maBtnDemo.SetClickHdl( LINK( this, TubeContacts, BtnDemoHdl ) ); - maBtnConnect.SetClickHdl( LINK( this, TubeContacts, BtnConnectHdl ) ); - maBtnGroup.SetClickHdl( LINK( this, TubeContacts, BtnGroupHdl ) ); - maBtnInvite.SetClickHdl( LINK( this, TubeContacts, BtnInviteHdl ) ); - maBtnListen.SetClickHdl( LINK( this, TubeContacts, BtnListenHdl ) ); - - static long aStaticTabs[]= - { - 3 /* count */, 0, 20, 100, 150, 200 - }; - - maList.SvxSimpleTable::SetTabs( aStaticTabs ); - String sHeader( '\t' ); - sHeader += String( TubesResId( STR_HEADER_ALIAS ) ); - sHeader += '\t'; - sHeader += String( TubesResId( STR_HEADER_NAME ) ); - sHeader += '\t'; - maList.InsertHeaderEntry( sHeader, HEADERBAR_APPEND, HIB_LEFT ); + get( mpBtnListen, "listen"); + get( mpBtnInvite, "invite"); + get( mpBtnDemo, "demo"); + get( mpBtnBuddy, "buddy"); + get( mpBtnGroup, "group"); + get( mpList, "contacts"); + mpBtnListen->SetClickHdl( LINK( this, TubeContacts, BtnListenHdl ) ); + mpBtnInvite->SetClickHdl( LINK( this, TubeContacts, BtnInviteHdl ) ); + mpBtnDemo->SetClickHdl( LINK( this, TubeContacts, BtnDemoHdl ) ); + mpBtnBuddy->SetClickHdl( LINK( this, TubeContacts, BtnConnectHdl ) ); + mpBtnGroup->SetClickHdl( LINK( this, TubeContacts, BtnGroupHdl ) ); } virtual ~TubeContacts() { @@ -193,13 +154,13 @@ public: void Populate() { SAL_INFO( "tubes", "Populating contact list dialog" ); - maList.Clear(); + mpList->Clear(); maACs.clear(); AccountContactPairV aPairs = TeleManager::getContacts(); AccountContactPairV::iterator it; // make sure we have enough memory to not need re-allocation - // which would invalidate pointers stored in maList entries + // which would invalidate pointers stored in mpList entries maACs.reserve( aPairs.size() ); for( it = aPairs.begin(); it != aPairs.end(); ++it ) { @@ -218,15 +179,13 @@ public: } } rtl::OUStringBuffer aEntry( 128 ); - aEntry.append( sal_Unicode( '\t' ) ); + aEntry.append( " " ); aEntry.append( fromUTF8 ( tp_contact_get_alias( it->second ) ) ); - aEntry.append( sal_Unicode( '\t' ) ); + aEntry.append( " - " ); aEntry.append( fromUTF8 ( tp_contact_get_identifier( it->second ) ) ); - aEntry.append( sal_Unicode( '\t' ) ); - SvLBoxEntry* pEntry = maList.InsertEntry( aEntry.makeStringAndClear(), aImage, aImage ); + mpList->InsertEntry( aEntry.makeStringAndClear(), aImage); // FIXME: ref the TpAccount, TpContact ... maACs.push_back( AccountContactPair( it->first, it->second ) ); - pEntry->SetUserData( &maACs.back() ); g_object_unref (it->first); g_object_unref (it->second); diff --git a/tubes/source/contacts.hrc b/tubes/source/contacts.hrc deleted file mode 100644 index a9e1e0a2721a..000000000000 --- a/tubes/source/contacts.hrc +++ /dev/null @@ -1,12 +0,0 @@ -#define RID_TUBES_DLG_CONTACTS 1000 - -#define FL_LABEL 1 -#define CTL_LIST 2 -#define BTN_CONNECT 3 -#define BTN_INVITE 4 -#define BTN_LISTEN 5 -#define BTN_GROUP 6 -#define BTN_DEMO 7 - -#define STR_HEADER_ALIAS 20 -#define STR_HEADER_NAME 21 diff --git a/tubes/source/contacts.src b/tubes/source/contacts.src deleted file mode 100644 index 08ad1657d045..000000000000 --- a/tubes/source/contacts.src +++ /dev/null @@ -1,66 +0,0 @@ -#include "contacts.hrc" - -ModelessDialog RID_TUBES_DLG_CONTACTS -{ - HelpId = "TUBES_HID"; // has to be something ... - OutputSize = TRUE ; - SVLook = TRUE ; - Hide = FALSE ; - Moveable = TRUE ; - Closeable = TRUE ; - Size = MAP_APPFONT ( 220 , 225 ) ; - OutputSize = TRUE ; - Text [ en-US ] = "Contacts" ; - - FixedLine FL_LABEL - { - Pos = MAP_APPFONT ( 8 , 2 ) ; - Size = MAP_APPFONT ( 198 , 8 ) ; - Text [ en-US ] = "Select a contact to collaborate with" ; - }; - PushButton BTN_DEMO - { - Pos = MAP_APPFONT( 8, 212 ); - Size = MAP_APPFONT( 50 , 10 ); - Text [ en-US ] = "startDemoSession"; - }; - PushButton BTN_CONNECT - { - Pos = MAP_APPFONT( 70 , 200 ); - Size = MAP_APPFONT( 50 , 10 ); - Text [ en-US ] = "startBuddySession"; - }; - PushButton BTN_GROUP - { - Pos = MAP_APPFONT( 70 , 212 ); - Size = MAP_APPFONT( 50 , 10 ); - Text [ en-US ] = "startGroupSession"; - }; - PushButton BTN_INVITE - { - Pos = MAP_APPFONT( 130 , 200 ); - Size = MAP_APPFONT( 50 , 10 ); - Text [ en-US ] = "Invite"; - }; - PushButton BTN_LISTEN - { - Pos = MAP_APPFONT( 8 , 200 ); - Size = MAP_APPFONT( 50 , 10 ); - Text [ en-US ] = "Listen"; - }; - Control CTL_LIST - { - Pos = MAP_APPFONT ( 8 , 10 ) ; - Size = MAP_APPFONT ( 200 , 190 ) ; - Border = TRUE ; - TabStop = TRUE ; - }; - String STR_HEADER_ALIAS - { - Text [ en-US ] = "Alias" ; - }; - String STR_HEADER_NAME - { - Text [ en-US ] = "Name" ; - }; -}; diff --git a/tubes/uiconfig/ui/contacts.ui b/tubes/uiconfig/ui/contacts.ui new file mode 100644 index 000000000000..5500c0dd3959 --- /dev/null +++ b/tubes/uiconfig/ui/contacts.ui @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkDialog" id="ContactsDialog"> + <property name="can_focus">False</property> + <property name="border_width">5</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkBox" id="dialog-vbox1"> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Select a contact to collaborate with</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="listen"> + <property name="label" translatable="yes">Listen</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="invite"> + <property name="label" translatable="yes">Invite</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="demo"> + <property name="label" translatable="yes">StartDemoSession</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="buddy"> + <property name="label" translatable="yes">StartBuddySession</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="group"> + <property name="label" translatable="yes">StartGroupSession</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">4</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkTreeView" id="contacts"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">listen</action-widget> + <action-widget response="0">invite</action-widget> + <action-widget response="0">demo</action-widget> + <action-widget response="0">buddy</action-widget> + <action-widget response="0">group</action-widget> + </action-widgets> + </object> +</interface> |