Commit 0cfd8084 authored by xclaesse's avatar xclaesse

merge git work


git-svn-id: svn+ssh://svn.gnome.org/svn/empathy/trunk@518 4ee84921-47dd-4033-b63a-18d7a039a3e4
parent 748631b8
......@@ -5,14 +5,13 @@ Makefile.in
Makefile
.deps
.libs
*.sw[po]
*.swp
*enum-types*
*.pc
*.tar.*
*.orig
*.rej
*.bak
*~
ChangeLog
stamp-h1
......@@ -24,7 +23,6 @@ config.h
config.h.in
config.log
config.status
config.status.lineno
config.sub
configure
depcomp
......@@ -37,4 +35,3 @@ ltmain.sh
missing
mkinstalldirs
omf.make
compile
......@@ -33,7 +33,6 @@ EXTRA_DIST = \
$(INTLTOOL)
DISTCLEANFILES = \
ChangeLog \
intltool-extract \
intltool-merge \
intltool-update
......@@ -42,9 +41,15 @@ DISTCLEANFILES = \
# uninstall.
distuninstallcheck_listfiles = find . -type f -print | grep -v '^\./var/scrollkeeper'
ChangeLog: Makefile.am
git-log --pretty=short > ChangeLog
# Build ChangeLog from SVN history (r470 was the first ChangeLog-less checkin).
# Only build this when in an svn checkout.
ChangeLog:
@if test -f $(top_srcdir)/.svn/entries; then \
svn log -v --xml -r HEAD:470 $(SVN_ROOT)/$(SVN_MODULE) | \
xsltproc --stringparam strip-prefix "$(SVN_MODULE)/$(SVN_BRANCH)" \
--stringparam include-rev "yes" $(top_srcdir)/svn2cl.xsl - > $@; \
fi
dist: ChangeLog
......
......@@ -13,6 +13,7 @@ Things you can do if you want to help:
- Add sound events
- Add register capability in EmpathyAccountsDialog if the profile says
it's supported.
- Import gossip's new chat theme system.
- Write a manual based on gossip's.
- Reviewing File Transfer patch, see bug #462172.
- Drop libtelepathy and use telepathy-glib instead when it gets client-side
......
......@@ -5,6 +5,17 @@ AC_COPYRIGHT([
Copyright (C) 2007 Collabora Ltd.
])
AC_CONFIG_AUX_DIR(.)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(1.9 dist-bzip2 no-define)
AM_MAINTAINER_MODE
AC_ISC_POSIX
AC_PROG_CC
AC_HEADER_STDC
# LT Version numbers, remember to change them just *before* a release.
# (Interfaces removed: CURRENT++, AGE=0, REVISION=0)
# (Interfaces added: CURRENT++, AGE++, REVISION=0)
......@@ -24,7 +35,18 @@ AC_SUBST(LIBEMPATHY_GTK_CURRENT)
AC_SUBST(LIBEMPATHY_GTK_AGE)
AC_SUBST(LIBEMPATHY_GTK_REVISION)
# Minimal version required
AM_PROG_LIBTOOL
AM_PATH_GLIB_2_0
AC_PATH_XTRA
AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool)
AC_PATH_PROG(GCONFTOOL, gconftool-2)
AM_GCONF_SOURCE_2
IT_PROG_INTLTOOL([0.35.0])
GTK_DOC_CHECK([1.3])
GLIB_REQUIRED=2.14.0
GTK_REQUIRED=2.12.0
GCONF_REQUIRED=1.2.0
......@@ -34,34 +56,37 @@ TELEPATHY_REQUIRED=0.3.1
TELEPATHY_GLIB_REQUIRED=0.7.0
MISSION_CONTROL_REQUIRED=4.37
# Uncomment that to build without deprecated symbols
# AC_DEFINE(GTK_DISABLE_DEPRECATED, 1, [Disable deprecated GTK symbols])
# AC_DEFINE(G_DISABLE_DEPRECATED, 1, [Disable deprecated GLib symbols])
# AC_DEFINE(LIBTELEPATHY_DISABLE_DEPRECATED, 1, [Disable deprecated libtelepathy symbols])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR(.)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(1.9 dist-bzip2 no-define)
AM_MAINTAINER_MODE
AC_ISC_POSIX
AC_PROG_CC
AC_HEADER_STDC
AM_PROG_LIBTOOL
AM_PATH_GLIB_2_0
AC_PATH_XTRA
IT_PROG_INTLTOOL([0.35.0])
GTK_DOC_CHECK([1.3])
IDT_COMPILE_WARNINGS
AC_PATH_PROG(DBUS_BINDING_TOOL, dbus-binding-tool)
AC_PATH_PROG(GCONFTOOL, gconftool-2)
AM_GCONF_SOURCE_2
dnl Uncomment that to build without deprecated symbols
dnl AC_DEFINE(GTK_DISABLE_DEPRECATED, 1, [Disable deprecated GTK symbols])
dnl AC_DEFINE(G_DISABLE_DEPRECATED, 1, [Disable deprecated GLib symbols])
dnl AC_DEFINE(LIBTELEPATHY_DISABLE_DEPRECATED, 1, [Disable deprecated libtelepathy symbols])
GLIB_GENMARSHAL=`$PKG_CONFIG glib-2.0 --variable=glib_genmarshal`
AC_SUBST(GLIB_GENMARSHAL)
# -----------------------------------------------------------
# Pkg-Config dependency checks
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl SVN for ChangeLog generation
dnl -----------------------------------------------------------
AC_SUBST([SVN_ROOT],[http://svn.gnome.org/svn])
AC_SUBST([SVN_MODULE],[empathy])
AC_SUBST([SVN_BRANCH],["trunk"])
dnl -----------------------------------------------------------
dnl Language Support
dnl -----------------------------------------------------------
GETTEXT_PACKAGE=empathy
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name])
AM_GLIB_GNU_GETTEXT
dnl -----------------------------------------------------------
dnl Pkg-Config dependency checks
dnl -----------------------------------------------------------
PKG_CHECK_MODULES(LIBEMPATHY,
[
......@@ -90,19 +115,9 @@ PKG_CHECK_MODULES(EMPATHY,
libebook-1.2
])
# -----------------------------------------------------------
# Language Support
# -----------------------------------------------------------
GETTEXT_PACKAGE=empathy
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package name])
AM_GLIB_GNU_GETTEXT
# -----------------------------------------------------------
# ISO codes, used for aspell support
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl ISO codes, used for aspell support
dnl -----------------------------------------------------------
AC_MSG_CHECKING([whether iso-codes exists and has iso-639 domain])
if $PKG_CONFIG --variable=domains iso-codes | grep -q 639 ; then
AC_MSG_RESULT([yes])
......@@ -118,9 +133,9 @@ fi
AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["$iso_codes_prefix"],[ISO codes prefix])
# -----------------------------------------------------------
# ASpell
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl ASpell
dnl -----------------------------------------------------------
AC_ARG_ENABLE(aspell,
AS_HELP_STRING([--enable-aspell=@<:@no/yes/auto@:>@],
[compile with aspell support]), ,
......@@ -148,9 +163,9 @@ if test "x$enable_aspell" = "xyes" -a "x$have_aspell" != "xyes"; then
fi
# -----------------------------------------------------------
# Megaphone
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl Megaphone
dnl -----------------------------------------------------------
AC_ARG_ENABLE(megaphone,
AS_HELP_STRING([--enable-megaphone=@<:@no/yes/auto@:>@],
[build megaphone applet]), ,
......@@ -178,9 +193,9 @@ fi
AM_CONDITIONAL(HAVE_MEGAPHONE, test "x$have_megaphone" = "xyes")
# -----------------------------------------------------------
# Nothere
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl Nothere
dnl -----------------------------------------------------------
AC_ARG_ENABLE(nothere,
AS_HELP_STRING([--enable-nothere=@<:@no/yes/auto@:>@],
[build nothere applet]), ,
......@@ -207,32 +222,19 @@ fi
AM_CONDITIONAL(HAVE_NOTHERE, test "x$have_nothere" = "xyes")
# -----------------------------------------------------------
# Tests
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl Tests
dnl -----------------------------------------------------------
AC_ARG_ENABLE(tests,
AS_HELP_STRING([--enable-tests=@<:@no/yes/auto@:>@],
AS_HELP_STRING([--enable-tests=@<:@no/yes@:>@],
[build tests]), ,
enable_tests=no)
if test "x$enable_tests" != "xno"; then
PKG_CHECK_MODULES(CHECK,
[
check >= 0.9.4
], have_check="yes", have_check="no")
else
have_check=no
fi
if test "x$enable_tests" = "xyes" -a "x$have_check" != "xyes"; then
AC_MSG_ERROR([Couldn't find check dependencies.])
fi
AM_CONDITIONAL(HAVE_TESTS, test "x$have_check" = "xyes")
AM_CONDITIONAL(HAVE_TESTS, test "x$enable_tests" = "xyes")
# -----------------------------------------------------------
# Python Bindings
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl Python Bindings
dnl -----------------------------------------------------------
AC_ARG_ENABLE(python,
AS_HELP_STRING([--enable-python=@<:@no/yes/auto@:>@],
[build python bindings to libempathy and libempathy-gtk]), ,
......@@ -267,9 +269,9 @@ fi
AM_CONDITIONAL(HAVE_PYTHON, test "x$have_python" = "xyes")
# -----------------------------------------------------------
# VoIP support
# -----------------------------------------------------------
dnl -----------------------------------------------------------
dnl VoIP support
dnl -----------------------------------------------------------
AC_ARG_ENABLE(voip,
AS_HELP_STRING([--enable-voip=@<:@no/yes@:>@],
[Add support for Voice and Video call]), ,
......@@ -281,7 +283,7 @@ fi
AM_CONDITIONAL(HAVE_VOIP, test "x$enable_voip" = "xyes")
# -----------------------------------------------------------
dnl -----------------------------------------------------------
AC_OUTPUT([
Makefile
......
......@@ -32,10 +32,11 @@ libempathy_gtk_la_SOURCES = \
empathy-contact-list-store.c \
empathy-contact-list-view.c \
empathy-preferences.c \
empathy-theme.c \
empathy-theme.c \
empathy-theme-boxes.c \
empathy-theme-irc.c \
empathy-theme-irc.c \
empathy-theme-manager.c \
empathy-theme-utils.c \
empathy-smiley-manager.c \
empathy-chat-window.c \
empathy-chat.c \
......@@ -88,10 +89,11 @@ libempathy_gtk_headers = \
empathy-contact-list-store.h \
empathy-contact-list-view.h \
empathy-preferences.h \
empathy-theme.h \
empathy-theme.h \
empathy-theme-boxes.h \
empathy-theme-irc.h \
empathy-theme-irc.h \
empathy-theme-manager.h \
empathy-theme-utils.h \
empathy-smiley-manager.h \
empathy-chat-window.h \
empathy-chat.h \
......
......@@ -24,7 +24,6 @@
#include "config.h"
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <libempathy/empathy-debug.h>
......@@ -104,20 +103,6 @@ call_window_capabilities_notify_cb (EmpathyContact *contact,
capabilities & EMPATHY_CAPABILITIES_VIDEO);
}
static void
call_window_name_notify_cb (EmpathyContact *contact,
GParamSpec *param,
EmpathyCallWindow *window)
{
const gchar *name;
gchar *title;
name = empathy_contact_get_name (contact);
title = g_strdup_printf (_("Call from %s"), name);
gtk_window_set_title (GTK_WINDOW (window->window), title);
g_free (title);
}
static void
call_window_status_notify_cb (EmpathyTpCall *call,
GParamSpec *param,
......@@ -139,11 +124,7 @@ call_window_status_notify_cb (EmpathyTpCall *call,
g_signal_connect (contact, "notify::capabilities",
G_CALLBACK (call_window_capabilities_notify_cb),
window);
g_signal_connect (contact, "notify::name",
G_CALLBACK (call_window_name_notify_cb),
window);
call_window_capabilities_notify_cb (contact, NULL, window);
call_window_name_notify_cb (contact, NULL, window);
}
}
......@@ -161,7 +142,7 @@ call_window_destroy_cb (GtkWidget *widget,
g_slice_free (EmpathyCallWindow, window);
}
GtkWidget *
void
empathy_call_window_show (EmpathyTpCall *call)
{
EmpathyCallWindow *window;
......@@ -213,7 +194,5 @@ empathy_call_window_show (EmpathyTpCall *call)
window);
gtk_widget_show (window->window);
return window->window;
}
......@@ -28,7 +28,7 @@
G_BEGIN_DECLS
GtkWidget * empathy_call_window_show (EmpathyTpCall *call);
void empathy_call_window_show (EmpathyTpCall *call);
G_END_DECLS
......
......@@ -68,6 +68,7 @@ struct _EmpathyChatViewPriv {
GtkTextBuffer *buffer;
EmpathyTheme *theme;
gpointer theme_context;
time_t last_timestamp;
BlockType last_block_type;
......@@ -129,8 +130,7 @@ static void chat_view_clear_view_cb (GtkMenuItem *
static gboolean chat_view_is_scrolled_down (EmpathyChatView *view);
static void chat_view_theme_changed_cb (EmpathyThemeManager *manager,
EmpathyChatView *view);
static void chat_view_theme_notify_cb (EmpathyTheme *theme,
GParamSpec *param,
static void chat_view_theme_updated_cb (EmpathyTheme *theme,
EmpathyChatView *view);
G_DEFINE_TYPE (EmpathyChatView, empathy_chat_view, GTK_TYPE_TEXT_VIEW);
......@@ -233,8 +233,12 @@ chat_view_finalize (GObject *object)
if (priv->theme) {
g_signal_handlers_disconnect_by_func (priv->theme,
chat_view_theme_notify_cb,
chat_view_theme_updated_cb,
view);
empathy_theme_detach_from_view (priv->theme, priv->theme_context,
view);
g_object_unref (priv->theme);
}
......@@ -792,7 +796,8 @@ empathy_chat_view_append_message (EmpathyChatView *view,
chat_view_maybe_trim_buffer (view);
empathy_theme_append_message (priv->theme, view, msg);
empathy_theme_append_message (priv->theme, priv->theme_context,
view, msg);
if (bottom) {
empathy_chat_view_scroll_down (view);
......@@ -815,7 +820,9 @@ empathy_chat_view_append_event (EmpathyChatView *view,
chat_view_maybe_trim_buffer (view);
empathy_theme_append_event (priv->theme, view, str);
empathy_theme_append_event (priv->theme,
priv->theme_context,
view, str);
if (bottom) {
empathy_chat_view_scroll_down (view);
......@@ -845,10 +852,13 @@ empathy_chat_view_append_button (EmpathyChatView *view,
bottom = chat_view_is_scrolled_down (view);
empathy_theme_append_timestamp (priv->theme, view, NULL, TRUE, TRUE);
empathy_theme_append_timestamp (priv->theme, priv->theme_context,
view, NULL,
TRUE, TRUE);
if (message) {
empathy_theme_append_text (priv->theme, view, message, tag, NULL);
empathy_theme_append_text (priv->theme, priv->theme_context,
view, message, tag, NULL);
}
gtk_text_buffer_get_end_iter (priv->buffer, &iter);
......@@ -996,6 +1006,8 @@ empathy_chat_view_clear (EmpathyChatView *view)
*/
priv = GET_PRIV (view);
empathy_theme_view_cleared (priv->theme, priv->theme_context, view);
priv->last_block_type = BLOCK_TYPE_NONE;
priv->last_timestamp = 0;
}
......@@ -1358,11 +1370,16 @@ empathy_chat_view_get_theme (EmpathyChatView *view)
}
static void
chat_view_theme_notify_cb (EmpathyTheme *theme,
GParamSpec *param,
EmpathyChatView *view)
chat_view_theme_updated_cb (EmpathyTheme *theme, EmpathyChatView *view)
{
empathy_theme_update_view (theme, view);
EmpathyChatViewPriv *priv;
priv = GET_PRIV (view);
empathy_theme_detach_from_view (priv->theme, priv->theme_context,
view);
priv->theme_context = empathy_theme_setup_with_view (theme, view);
}
void
......@@ -1377,19 +1394,24 @@ empathy_chat_view_set_theme (EmpathyChatView *view, EmpathyTheme *theme)
if (priv->theme) {
g_signal_handlers_disconnect_by_func (priv->theme,
chat_view_theme_notify_cb,
chat_view_theme_updated_cb,
view);
empathy_theme_detach_from_view (priv->theme, priv->theme_context,
view);
g_object_unref (priv->theme);
}
priv->theme = g_object_ref (theme);
empathy_theme_update_view (theme, view);
g_signal_connect (priv->theme, "notify",
G_CALLBACK (chat_view_theme_notify_cb),
g_signal_connect (priv->theme,
"updated",
G_CALLBACK (chat_view_theme_updated_cb),
view);
/* FIXME: Redraw all messages using the new theme */
priv->theme_context = empathy_theme_setup_with_view (theme, view);
/* FIXME: Possibly redraw the function and make it a property */
}
void
......
......@@ -1034,21 +1034,27 @@ contact_list_view_cell_set_background (EmpathyContactListView *view,
style = gtk_widget_get_style (GTK_WIDGET (view));
if (!is_group && is_active) {
color = style->bg[GTK_STATE_SELECTED];
/* Here we take the current theme colour and add it to
* the colour for white and average the two. This
* gives a colour which is inline with the theme but
* slightly whiter.
*/
color.red = (color.red + (style->white).red) / 2;
color.green = (color.green + (style->white).green) / 2;
color.blue = (color.blue + (style->white).blue) / 2;
g_object_set (cell,
"cell-background-gdk", &color,
NULL);
if (!is_group) {
if (is_active) {
color = style->bg[GTK_STATE_SELECTED];
/* Here we take the current theme colour and add it to
* the colour for white and average the two. This
* gives a colour which is inline with the theme but
* slightly whiter.
*/
color.red = (color.red + (style->white).red) / 2;
color.green = (color.green + (style->white).green) / 2;
color.blue = (color.blue + (style->white).blue) / 2;
g_object_set (cell,
"cell-background-gdk", &color,
NULL);
} else {
g_object_set (cell,
"cell-background-gdk", NULL,
NULL);
}
} else {
g_object_set (cell,
"cell-background-gdk", NULL,
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--*- mode: xml -*-->
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="group_chat_window">
<property name="border_width">6</property>
<property name="title" translatable="yes">Group Chat</property>
<property name="default_width">1000</property>
<property name="default_height">800</property>
<property name="icon_name">system-users</property>
<child>
<widget class="GtkVBox" id="group_chat_widget">
<property name="visible">True</property>
<property name="border_width">4</property>
<property name="spacing">6</property>
<child>
<widget class="GtkHBox" id="hbox_topic">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<widget class="GtkLabel" id="label80">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="label" translatable="yes">&lt;b&gt;Topic:&lt;/b&gt;</property>
<property name="use_markup">True</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label_topic">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="xalign">0</property>
<property name="use_markup">True</property>
<property name="wrap">True</property>
<property name="selectable">True</property>
<property name="ellipsize">PANGO_ELLIPSIZE_END</property>
<property name="single_line_mode">True</property>
</widget>
<packing>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">2</property>
</packing>
</child>
<child>
<widget class="GtkHPaned" id="hpaned">
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<widget class="GtkVBox" id="vbox_left">
<property name="width_request">600</property>
<property name="height_request">500</property>
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<widget class="GtkScrolledWindow" id="scrolled_window_chat">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<child>
<placeholder/>
</child>
</widget>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolled_window_input">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<child>
<placeholder/>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolled_window_contacts">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<child>
<placeholder/>
</child>
</widget>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
</widget>
<packing>
<property name="position">1</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkWindow" id="group_chat_window">
<property name="border_width">6</property>
<property name="title" translatable="yes">Group Chat</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="default_width">600</property>
<property name="default_height">400</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="icon_name">system-users</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<child>
<widget class="GtkVBox" id="group_chat_widget">
<property name="border_width">4</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkHBox" id="hbox_topic">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkLabel" id="label80">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Topic:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label_topic">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">True</property>