projects
/
conv-inbox
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
84cdd26
)
Add scrolling message indicator
author
Artem Garmash
<artemgarmash@gmail.com>
Tue, 10 Nov 2009 17:38:31 +0000
(19:38 +0200)
committer
Artem Garmash
<artem.garmash@nokia.com>
Sun, 27 Jun 2010 19:13:40 +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
1fda56e
..
d871a5d
100644
(file)
--- a/
src/el-home-applet.c
+++ b/
src/el-home-applet.c
@@
-58,6
+58,7
@@
struct _ELHomeAppletPrivate
GtkWidget *unread;
GtkWidget *received;
GtkWidget *empty;
GtkWidget *unread;
GtkWidget *received;
GtkWidget *empty;
+ GtkWidget *cut_message;
gchar *message;
gint event_id;
gchar *message;
gint event_id;
@@
-201,6
+202,7
@@
stop_scroll_anim (ELHomeAppletPrivate *priv)
g_source_remove (priv->scroll_anim_id);
priv->scroll_anim_id = 0;
priv->scroll_on_click = FALSE;
g_source_remove (priv->scroll_anim_id);
priv->scroll_anim_id = 0;
priv->scroll_on_click = FALSE;
+ gtk_widget_hide (priv->cut_message);
}
}
}
}
@@
-245,6
+247,8
@@
notify_on_current_desktop (GObject *object,
stop_scroll_anim (self->priv);
priv->scroll_on_click = priv->scroll_offset;
priv->scroll_offset = 0;
stop_scroll_anim (self->priv);
priv->scroll_on_click = priv->scroll_offset;
priv->scroll_offset = 0;
+ if (priv->scroll_on_click)
+ gtk_widget_show (priv->cut_message);
gtk_widget_queue_draw (GTK_WIDGET (self));
}
}
gtk_widget_queue_draw (GTK_WIDGET (self));
}
}
@@
-362,6
+366,8
@@
expose_event (GtkWidget *self, GdkEventExpose *event)
priv->hidden_message_height = height - message_height;
priv->scroll_on_click = priv->hidden_message_height > 0;
priv->hidden_message_height = height - message_height;
priv->scroll_on_click = priv->hidden_message_height > 0;
+ if (priv->scroll_on_click)
+ gtk_widget_show (priv->cut_message);
}
cairo_rectangle (cr,
}
cairo_rectangle (cr,
@@
-508,6
+514,8
@@
show_event (ELHomeApplet *self, RTComElIter *it)
cairo_surface_destroy (priv->message_surface);
priv->message_surface = NULL;
}
cairo_surface_destroy (priv->message_surface);
priv->message_surface = NULL;
}
+
+ gtk_widget_hide (priv->cut_message);
gtk_widget_queue_draw (GTK_WIDGET (self));
}
gtk_widget_queue_draw (GTK_WIDGET (self));
}
@@
-674,8
+682,10
@@
scroll_anim_cb (ELHomeApplet *self)
C_HEIGHT - priv->received->allocation.height - HEADER_HEIGHT);
to_continue = priv->scroll_offset <= priv->hidden_message_height;
C_HEIGHT - priv->received->allocation.height - HEADER_HEIGHT);
to_continue = priv->scroll_offset <= priv->hidden_message_height;
- if (!to_continue)
+ if (!to_continue) {
priv->scroll_anim_id = 0;
priv->scroll_anim_id = 0;
+ gtk_widget_hide (priv->cut_message);
+ }
return to_continue;
}
return to_continue;
}
@@
-744,7
+754,7
@@
el_home_applet_init (ELHomeApplet *self)
{
ELHomeAppletPrivate *priv;
GtkWidget *event_box;
{
ELHomeAppletPrivate *priv;
GtkWidget *event_box;
- GtkWidget *hbox, *vbox, *align;
+ GtkWidget *hbox, *vbox, *align, *footer;
self->priv = EL_HOME_APPLET_GET_PRIVATE (self);
priv = self->priv;
self->priv = EL_HOME_APPLET_GET_PRIVATE (self);
priv = self->priv;
@@
-789,21
+799,31
@@
el_home_applet_init (ELHomeApplet *self)
gtk_misc_set_alignment (GTK_MISC (priv->received),
1.0f,
0.5f);
gtk_misc_set_alignment (GTK_MISC (priv->received),
1.0f,
0.5f);
- gtk_widget_set_size_request (priv->received,
- MESSAGE_WIDTH,
- -1);
hildon_helper_set_logical_font (priv->received, "SmallSystemFont");
gtk_widget_set_name (priv->received, "hildon-shadow-label");
hildon_helper_set_logical_font (priv->received, "SmallSystemFont");
gtk_widget_set_name (priv->received, "hildon-shadow-label");
+
+ priv->cut_message = gtk_label_new ("...");
+ gtk_misc_set_alignment (GTK_MISC (priv->cut_message),
+ 0.5f,
+ 0.0f);
+ hildon_helper_set_logical_font (priv->cut_message, "SmallSystemFont");
+ gtk_widget_set_name (priv->cut_message, "hildon-shadow-label");
+ GTK_WIDGET_SET_FLAGS (priv->cut_message, GTK_NO_SHOW_ALL);
+
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), priv->unread, FALSE, 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);
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox), priv->unread, FALSE, 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);
+ footer = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (footer), priv->cut_message, TRUE, TRUE, 0);
+ gtk_box_pack_end (GTK_BOX (footer), priv->received, FALSE, FALSE, 0);
+
vbox = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), priv->empty, TRUE, TRUE, 0);
vbox = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), priv->empty, TRUE, TRUE, 0);
- gtk_box_pack_end (GTK_BOX (vbox), priv->received, FALSE, FALSE, 0);
+ gtk_box_pack_end (GTK_BOX (vbox), footer, FALSE, FALSE, 0);
align = gtk_alignment_new (0.5f, 0.0f, 1.0f, 1.0f);
gtk_alignment_set_padding (GTK_ALIGNMENT (align),
align = gtk_alignment_new (0.5f, 0.0f, 1.0f, 1.0f);
gtk_alignment_set_padding (GTK_ALIGNMENT (align),