projects
/
conv-inbox
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d8b11e5
)
Draw avatar manually with cairo
author
Artem Garmash
<artemgarmash@gmail.com>
Wed, 27 Jan 2010 15:56:35 +0000
(17:56 +0200)
committer
Artem Garmash
<artem.garmash@nokia.com>
Sun, 27 Jun 2010 19:13:45 +0000
(22:13 +0300)
src/el-home-applet.c
patch
|
blob
|
history
diff --git
a/src/el-home-applet.c
b/src/el-home-applet.c
index
761072e
..
a2f2923
100644
(file)
--- a/
src/el-home-applet.c
+++ b/
src/el-home-applet.c
@@
-63,6
+63,10
@@
#define MESSAGE_WIDTH (C_WIDTH - 2*HILDON_MARGIN_DEFAULT)
#define SERVICE_ICON_SIZE 64
#define MESSAGE_WIDTH (C_WIDTH - 2*HILDON_MARGIN_DEFAULT)
#define SERVICE_ICON_SIZE 64
+#define AVATAR_SIZE HILDON_ICON_PIXEL_SIZE_THUMB
+
+#define AVATAR_X (C_WIDTH - AVATAR_SIZE - HILDON_MARGIN_DEFAULT)
+#define AVATAR_Y 3*HILDON_MARGIN_HALF
#define BOX_RADIOUS 20
#define BOX_RADIOUS 20
@@
-473,6
+477,29
@@
expose_event (GtkWidget *self, GdkEventExpose *event)
cairo_pattern_destroy (grad);
cairo_pattern_destroy (grad);
+ /* draw avatar */
+ if (priv->avatar_pixbuf) {
+ rounded_rectangle (cr,
+ AVATAR_X, -AVATAR_Y,
+ AVATAR_SIZE, AVATAR_SIZE,
+ BOX_RADIOUS,
+ ROUND_CORNER_ALL);
+ cairo_close_path (cr);
+
+ gdk_cairo_set_source_pixbuf (cr,
+ priv->avatar_pixbuf,
+ AVATAR_X,
+ -AVATAR_Y);
+ cairo_fill_preserve (cr);
+
+ cairo_set_source_rgba (cr,
+ priv->active_color.red,
+ priv->active_color.green,
+ priv->active_color.blue,
+ 1.0f);
+ cairo_stroke (cr);
+ }
+
if (priv->message) {
if (priv->service_pixbuf) {
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
if (priv->message) {
if (priv->service_pixbuf) {
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
@@
-558,6
+585,10
@@
clean_state (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv = self->priv;
{
ELHomeAppletPrivate *priv = self->priv;
+ gtk_widget_set_size_request (priv->sender,
+ C_WIDTH,
+ HILDON_ICON_PIXEL_SIZE_THUMB);
+
if (priv->service_pixbuf) {
g_object_unref (priv->service_pixbuf);
priv->service_pixbuf = NULL;
if (priv->service_pixbuf) {
g_object_unref (priv->service_pixbuf);
priv->service_pixbuf = NULL;
@@
-644,7
+675,7
@@
aggregator_ready_cb (OssoABookWaitable *waitable,
ELHomeApplet *self = EL_HOME_APPLET(userdata);
ELHomeAppletPrivate *priv = self->priv;
GList *contacts = NULL;
ELHomeApplet *self = EL_HOME_APPLET(userdata);
ELHomeAppletPrivate *priv = self->priv;
GList *contacts = NULL;
-
+ g_warning (G_STRFUNC);
priv->aggregator_ready_closure = NULL;
if (error) {
priv->aggregator_ready_closure = NULL;
if (error) {
@@
-690,13
+721,21
@@
aggregator_ready_cb (OssoABookWaitable *waitable,
TRUE);
/* -1, */
/* priv->border_color); */
TRUE);
/* -1, */
/* priv->border_color); */
+ g_warning ("HAVE avatar");
+ if (priv->avatar_pixbuf) {
+ gtk_widget_set_size_request (priv->sender,
+ C_WIDTH - AVATAR_SIZE - HILDON_MARGIN_DEFAULT,
+ HILDON_ICON_PIXEL_SIZE_THUMB);
- /* if (priv->avatar_image) { */
- /* gtk_image_set_from_pixbuf (GTK_IMAGE (priv->avatar), */
- /* priv->avatar_image); */
- /* gtk_widget_show (priv->avatar); */
+ }
+#if 0
+ if (priv->avatar_pixbuf) {
+ gtk_image_set_from_pixbuf (GTK_IMAGE (priv->avatar),
+ priv->avatar_pixbuf);
+ gtk_widget_show (priv->avatar);
/* g_object_unref (avatar_image); */
/* g_object_unref (avatar_image); */
- /* } */
+ }
+#endif
gtk_widget_queue_draw (GTK_WIDGET (self));
}
}
gtk_widget_queue_draw (GTK_WIDGET (self));
}
}
@@
-708,8
+747,6
@@
resolve_contact (ELHomeApplet *self)
EBookQuery *query = NULL;
GError *error = NULL;
EBookQuery *query = NULL;
GError *error = NULL;
-
-
if (priv->local_id && priv->remote_id) {
const gchar *vcard = osso_abook_account_manager_get_vcard_field
(NULL, priv->local_id);
if (priv->local_id && priv->remote_id) {
const gchar *vcard = osso_abook_account_manager_get_vcard_field
(NULL, priv->local_id);
@@
-720,7
+757,7
@@
resolve_contact (ELHomeApplet *self)
else
query = e_book_query_any_field_contains (priv->remote_id);
}
else
query = e_book_query_any_field_contains (priv->remote_id);
}
-
+ g_warning ("%s query %p", G_STRFUNC, query);
if (query) {
priv->aggregator = osso_abook_aggregator_new_with_query (NULL,
query,
if (query) {
priv->aggregator = osso_abook_aggregator_new_with_query (NULL,
query,
@@
-736,6
+773,7
@@
resolve_contact (ELHomeApplet *self)
}
if (priv->aggregator) {
}
if (priv->aggregator) {
+ g_warning ("%s start aggr", G_STRFUNC);
priv->aggregator_ready_closure = osso_abook_waitable_call_when_ready
(OSSO_ABOOK_WAITABLE (priv->aggregator),
aggregator_ready_cb,
priv->aggregator_ready_closure = osso_abook_waitable_call_when_ready
(OSSO_ABOOK_WAITABLE (priv->aggregator),
aggregator_ready_cb,
@@
-1107,6
+1145,8
@@
read_new_event (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv = self->priv;
{
ELHomeAppletPrivate *priv = self->priv;
+ g_warning ("read_new_event");
+
read_event (self);
priv->unread_count = query_unread_events (priv->eventlogger);
update_unread_label (self);
read_event (self);
priv->unread_count = query_unread_events (priv->eventlogger);
update_unread_label (self);
@@
-1120,7
+1160,7
@@
static void
add_new_idle (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv = self->priv;
add_new_idle (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv = self->priv;
-
+ g_warning ("add_new_idle");
if (priv->idle_id)
g_source_remove (priv->idle_id);
priv->idle_id = g_idle_add ((GSourceFunc)read_new_event,
if (priv->idle_id)
g_source_remove (priv->idle_id);
priv->idle_id = g_idle_add ((GSourceFunc)read_new_event,
@@
-1137,15
+1177,21
@@
new_event_cb (RTComEl *backend,
const gchar *service,
ELHomeApplet *self)
{
const gchar *service,
ELHomeApplet *self)
{
+ g_warning ("%s %s %s %s", local_uid, remote_uid, remote_ebook_uid, service);
+#if 0
const gchar** conv_service = conv_services;
const gchar** conv_service = conv_services;
-
+ g_warning ("%s", service);
do {
do {
+ g_warning ("%s", *conv_service);
if (!g_strcmp0 (*conv_service, service)) {
add_new_idle (self);
return;
}
}
if (!g_strcmp0 (*conv_service, service)) {
add_new_idle (self);
return;
}
}
- while(++conv_service);
+ while(*++conv_service);
+#else
+ add_new_idle (self);
+#endif
}
static gboolean
}
static gboolean
@@
-1324,17
+1370,6
@@
leave_notify_event_cb (GtkWidget *widget,
}
static void
}
static void
-abook_acount_manager_ready (OssoABookAccountManager *manager,
- const GError *error,
- gpointer user_data)
-{
- ELHomeApplet *self = EL_HOME_APPLET (user_data);
-
- /* ignore error, continue in any case */
- read_new_event (self);
-}
-
-static void
el_home_applet_init (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv;
el_home_applet_init (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv;
@@
-1375,7
+1410,7
@@
el_home_applet_init (ELHomeApplet *self)
gtk_widget_set_name (priv->sender, "hildon-shadow-label");
hildon_helper_set_logical_font (priv->sender, "SystemFont");
gtk_widget_set_size_request (priv->sender,
gtk_widget_set_name (priv->sender, "hildon-shadow-label");
hildon_helper_set_logical_font (priv->sender, "SystemFont");
gtk_widget_set_size_request (priv->sender,
- -1,
+ C_WIDTH,
HILDON_ICON_PIXEL_SIZE_THUMB);
priv->message = g_strdup ("One two three four five six seven eight nine ten");
HILDON_ICON_PIXEL_SIZE_THUMB);
priv->message = g_strdup ("One two three four five six seven eight nine ten");
@@
-1403,8
+1438,8
@@
el_home_applet_init (ELHomeApplet *self)
hbox = gtk_hbox_new (FALSE, 0);
/* gtk_box_pack_start (GTK_BOX (hbox), priv->icon, FALSE, FALSE, 0); */
hbox = gtk_hbox_new (FALSE, 0);
/* gtk_box_pack_start (GTK_BOX (hbox), priv->icon, FALSE, FALSE, 0); */
- gtk_box_pack_start (GTK_BOX (hbox), priv->sender, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), priv->avatar, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), priv->sender, FALSE, FALSE, 0);
+ /* gtk_box_pack_start (GTK_BOX (hbox), priv->avatar, FALSE, FALSE, 0); */
footer = gtk_hbox_new (FALSE, HILDON_MARGIN_DEFAULT);
gtk_box_pack_start (GTK_BOX (footer), priv->unread, FALSE, FALSE, 0);
footer = gtk_hbox_new (FALSE, HILDON_MARGIN_DEFAULT);
gtk_box_pack_start (GTK_BOX (footer), priv->unread, FALSE, FALSE, 0);
@@
-1467,10
+1502,7
@@
el_home_applet_init (ELHomeApplet *self)
osso_abook_init_with_name (PACKAGE, NULL);
osso_abook_init_with_name (PACKAGE, NULL);
- osso_abook_account_manager_call_when_ready (NULL,
- abook_acount_manager_ready,
- self,
- NULL);
+ read_new_event (self);
#endif
}
#endif
}