diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2010-08-06 00:27:44 +0800 |
---|---|---|
committer | Philip Withnall <philip.withnall@collabora.co.uk> | 2010-08-12 00:34:55 +0800 |
commit | 62318cf781b2d94dc8bc4d5f084e12e6a269f354 (patch) | |
tree | 928861f60397afa1eacf261b491a74fb82f73ffc /libempathy-gtk/empathy-individual-widget.h | |
parent | 9acc3aabf75d159a0c7b6bb729ccfd9d8daff865 (diff) | |
download | gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.tar gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.tar.gz gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.tar.bz2 gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.tar.lz gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.tar.xz gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.tar.zst gsoc2013-empathy-62318cf781b2d94dc8bc4d5f084e12e6a269f354.zip |
Add EmpathyIndividualWidget
This displays details for a single Individual, in much the same way that
EmpathyContactWidget displays the details of a single Persona.
Diffstat (limited to 'libempathy-gtk/empathy-individual-widget.h')
-rw-r--r-- | libempathy-gtk/empathy-individual-widget.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-individual-widget.h b/libempathy-gtk/empathy-individual-widget.h new file mode 100644 index 000000000..89066f60d --- /dev/null +++ b/libempathy-gtk/empathy-individual-widget.h @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2010 Collabora Ltd. + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Philip Withnall <philip.withnall@collabora.co.uk> + */ + +#ifndef __EMPATHY_INDIVIDUAL_WIDGET_H__ +#define __EMPATHY_INDIVIDUAL_WIDGET_H__ + +#include <gtk/gtk.h> + +#include <folks/folks.h> + +#include "empathy-contact-widget.h" + +G_BEGIN_DECLS + +/** + * EmpathyIndividualWidgetFlags: + * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_NONE: Don't show any widgets to edit any + * details of the individual. This should be the option for widgets that merely + * display information about an individual. + * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_ALIAS: Show a #GtkEntry allowing changes to + * the individual's alias. + * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_AVATAR: Show an #EmpathyAvatarChooser + * allowing changes to the individual's avatar. + * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_ACCOUNT: Show an #EmpathyAccountChooser + * allowing changes to the individual's account. + * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_ID: Show a #GtkEntry allowing changes to the + * individual's identifier. + * @EMPATHY_INDIVIDUAL_WIDGET_EDIT_GROUPS: Show a widget to change the groups + * the individual is in. + * @EMPATHY_INDIVIDUAL_WIDGET_FOR_TOOLTIP: Make widgets more designed for a + * tooltip. For example, make widgets not selectable. + * + * Flags used when creating an #EmpathyIndividualWidget to specify which + * features should be available. + */ +typedef enum +{ + EMPATHY_INDIVIDUAL_WIDGET_EDIT_NONE = 0, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_ALIAS = 1 << 0, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_AVATAR = 1 << 1, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_ACCOUNT = 1 << 2, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_ID = 1 << 3, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_GROUPS = 1 << 4, + EMPATHY_INDIVIDUAL_WIDGET_FOR_TOOLTIP = 1 << 5, + EMPATHY_INDIVIDUAL_WIDGET_SHOW_LOCATION = 1 << 6, + EMPATHY_INDIVIDUAL_WIDGET_NO_SET_ALIAS = 1 << 7, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_FAVOURITE = 1 << 8, + EMPATHY_INDIVIDUAL_WIDGET_SHOW_DETAILS = 1 << 9, + EMPATHY_INDIVIDUAL_WIDGET_EDIT_DETAILS = 1 << 10, + EMPATHY_INDIVIDUAL_WIDGET_SHOW_PERSONAS = 1 << 11, +} EmpathyIndividualWidgetFlags; + +#define EMPATHY_TYPE_INDIVIDUAL_WIDGET (empathy_individual_widget_get_type ()) +#define EMPATHY_INDIVIDUAL_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + EMPATHY_TYPE_INDIVIDUAL_WIDGET, EmpathyIndividualWidget)) +#define EMPATHY_INDIVIDUAL_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), \ + EMPATHY_TYPE_INDIVIDUAL_WIDGET, EmpathyIndividualWidgetClass)) +#define EMPATHY_IS_INDIVIDUAL_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + EMPATHY_TYPE_INDIVIDUAL_WIDGET)) +#define EMPATHY_IS_INDIVIDUAL_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + EMPATHY_TYPE_INDIVIDUAL_WIDGET)) +#define EMPATHY_INDIVIDUAL_WIDGET_GET_CLASS(o) ( \ + G_TYPE_INSTANCE_GET_CLASS ((o), EMPATHY_TYPE_INDIVIDUAL_WIDGET, \ + EmpathyIndividualWidgetClass)) + +typedef struct { + GtkBox parent; + + /*<private>*/ + gpointer priv; +} EmpathyIndividualWidget; + +typedef struct { + GtkBoxClass parent_class; +} EmpathyIndividualWidgetClass; + +GType empathy_individual_widget_get_type (void) G_GNUC_CONST; + +GtkWidget * empathy_individual_widget_new (FolksIndividual *individual, + EmpathyIndividualWidgetFlags flags); + +FolksIndividual * empathy_individual_widget_get_individual ( + EmpathyIndividualWidget *self); +void empathy_individual_widget_set_individual (EmpathyIndividualWidget *self, + FolksIndividual *individual); + +G_END_DECLS + +#endif /* __EMPATHY_INDIVIDUAL_WIDGET_H__ */ |