Set key shortcuts for menu and back button in Shell
[modest] / src / gtk / modest-shell.c
index 763b76a..f8703ac 100644 (file)
@@ -111,6 +111,7 @@ modest_shell_instance_init (ModestShell *obj)
 {
        ModestShellPrivate *priv;
        GtkWidget *title_vbox;
+       GtkWidget *title_arrow;
        GtkWidget *new_message_icon;
        GtkToolItem *separator_toolitem;
        GtkWidget *top_hbox;
@@ -129,6 +130,7 @@ modest_shell_instance_init (ModestShell *obj)
 
        priv->top_toolbar = gtk_toolbar_new ();
        gtk_toolbar_set_style (GTK_TOOLBAR (priv->top_toolbar), GTK_TOOLBAR_BOTH_HORIZ);
+       gtk_toolbar_set_show_arrow (GTK_TOOLBAR (priv->top_toolbar), FALSE);
        gtk_widget_show (priv->top_toolbar);
        gtk_box_pack_start (GTK_BOX (top_hbox), priv->top_toolbar, TRUE, TRUE, 0);
 
@@ -156,8 +158,10 @@ modest_shell_instance_init (ModestShell *obj)
 
        title_vbox = gtk_vbox_new (FALSE, 0);
        priv->title_label = gtk_label_new (NULL);
+       gtk_label_set_ellipsize (GTK_LABEL (priv->title_label), PANGO_ELLIPSIZE_END);
        gtk_misc_set_alignment (GTK_MISC (priv->title_label), 0.0, 1.0);
        priv->subtitle_label = gtk_label_new (NULL);
+       gtk_label_set_ellipsize (GTK_LABEL (priv->subtitle_label), PANGO_ELLIPSIZE_START);
        gtk_misc_set_alignment (GTK_MISC (priv->subtitle_label), 0.0, 0.0);
        gtk_widget_show (priv->title_label);
        gtk_widget_show (priv->subtitle_label);
@@ -167,6 +171,9 @@ modest_shell_instance_init (ModestShell *obj)
 
        priv->title_button = gtk_tool_button_new (NULL, NULL);
        gtk_widget_show (GTK_WIDGET (priv->title_button));
+       title_arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
+       gtk_widget_show (title_arrow);
+       gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (priv->title_button), title_arrow);
        gtk_tool_button_set_label_widget (GTK_TOOL_BUTTON (priv->title_button), title_vbox);
        gtk_toolbar_insert (GTK_TOOLBAR (priv->top_toolbar), priv->title_button, -1);
        gtk_container_child_set (GTK_CONTAINER (priv->top_toolbar), GTK_WIDGET (priv->title_button), "expand", TRUE, NULL);
@@ -181,6 +188,22 @@ modest_shell_instance_init (ModestShell *obj)
        gtk_container_add (GTK_CONTAINER (obj), priv->main_vbox);
 
        g_signal_connect (G_OBJECT (obj), "style-set", G_CALLBACK (on_style_set), obj);
+
+       guint accel_key;
+       GdkModifierType accel_mods;
+       GtkAccelGroup *accel_group;
+       accel_group = gtk_accel_group_new ();
+       gtk_accelerator_parse ("<Control>n", &accel_key, &accel_mods);
+       gtk_widget_add_accelerator (GTK_WIDGET (priv->new_message_button), "clicked", accel_group,
+                                   accel_key, accel_mods, 0);
+       gtk_accelerator_parse ("Esc", &accel_key, &accel_mods);
+       gtk_widget_add_accelerator (GTK_WIDGET (priv->back_button), "clicked", accel_group,
+                                   accel_key, accel_mods, 0);
+       gtk_accelerator_parse ("F10", &accel_key, &accel_mods);
+       gtk_widget_add_accelerator (GTK_WIDGET (priv->title_button), "clicked", accel_group,
+                                   accel_key, accel_mods, 0);
+       gtk_window_add_accel_group (GTK_WINDOW (obj), accel_group);
+
 }
 
 static void