summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tubes/Library_tubes.mk1
-rw-r--r--tubes/Module_tubes.mk4
-rw-r--r--tubes/UI_tubes.mk (renamed from tubes/AllLangResTarget_tubes.mk)9
-rw-r--r--tubes/source/contacts.cxx113
-rw-r--r--tubes/source/contacts.hrc12
-rw-r--r--tubes/source/contacts.src66
-rw-r--r--tubes/uiconfig/ui/contacts.ui135
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>