[tepl/wip/edit-menu: 2/3] Edit menu: provide a TeplActionInfo for the select-all action
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl/wip/edit-menu: 2/3] Edit menu: provide a TeplActionInfo for the select-all action
- Date: Tue, 11 Jul 2017 19:03:39 +0000 (UTC)
commit 86c43b3699dd33abefaee4dd98bd1a02b2fcf1ea
Author: Sébastien Wilmet <swilmet gnome org>
Date: Tue Jul 11 20:46:55 2017 +0200
Edit menu: provide a TeplActionInfo for the select-all action
docs/reference/tepl-3.0-sections.txt | 1 +
tepl/tepl-application.c | 55 ++++++++++++++++++++++++++++++++++
tepl/tepl-application.h | 2 +
3 files changed, 58 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/tepl-3.0-sections.txt b/docs/reference/tepl-3.0-sections.txt
index ccdec5c..2619540 100644
--- a/docs/reference/tepl-3.0-sections.txt
+++ b/docs/reference/tepl-3.0-sections.txt
@@ -75,6 +75,7 @@ tepl_application_get_from_gtk_application
tepl_application_get_default
tepl_application_get_application
tepl_application_get_app_action_info_store
+tepl_application_get_tepl_action_info_store
tepl_application_open_simple
<SUBSECTION Standard>
TEPL_APPLICATION
diff --git a/tepl/tepl-application.c b/tepl/tepl-application.c
index 3d9ae1b..ec529d5 100644
--- a/tepl/tepl-application.c
+++ b/tepl/tepl-application.c
@@ -17,7 +17,10 @@
* along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#include "config.h"
#include "tepl-application.h"
+#include <glib/gi18n-lib.h>
+#include "tepl-action-info.h"
#include "tepl-action-info-store.h"
/**
@@ -38,6 +41,7 @@ struct _TeplApplicationPrivate
{
GtkApplication *gtk_app;
TeplActionInfoStore *app_action_info_store;
+ TeplActionInfoStore *tepl_action_info_store;
};
enum
@@ -63,6 +67,33 @@ init_app_action_info_store (TeplApplication *tepl_app)
}
static void
+init_tepl_action_info_store (TeplApplication *tepl_app)
+{
+ const TeplActionInfoEntry entries[] =
+ {
+ /* When adding an item to this array, do not forget to update
+ * the documentation of
+ * tepl_application_get_tepl_action_info_store().
+ */
+
+ /* action, icon, label, accel, tooltip */
+
+ { "win.tepl-select-all", "edit-select-all", N_("Select _All"), "<Control>a",
+ N_("Select all the text") },
+ };
+
+ g_return_if_fail (tepl_app->priv->tepl_action_info_store == NULL);
+ g_assert (tepl_app->priv->gtk_app != NULL);
+
+ tepl_app->priv->tepl_action_info_store = tepl_action_info_store_new (tepl_app->priv->gtk_app);
+
+ tepl_action_info_store_add_entries (tepl_app->priv->tepl_action_info_store,
+ entries,
+ G_N_ELEMENTS (entries),
+ GETTEXT_PACKAGE);
+}
+
+static void
tepl_application_get_property (GObject *object,
guint prop_id,
GValue *value,
@@ -97,6 +128,7 @@ tepl_application_set_property (GObject *object,
tepl_app->priv->gtk_app = g_value_get_object (value);
init_app_action_info_store (tepl_app);
+ init_tepl_action_info_store (tepl_app);
break;
default:
@@ -112,6 +144,7 @@ tepl_application_dispose (GObject *object)
tepl_app->priv->gtk_app = NULL;
g_clear_object (&tepl_app->priv->app_action_info_store);
+ g_clear_object (&tepl_app->priv->tepl_action_info_store);
G_OBJECT_CLASS (tepl_application_parent_class)->dispose (object);
}
@@ -243,6 +276,28 @@ tepl_application_get_app_action_info_store (TeplApplication *tepl_app)
}
/**
+ * tepl_application_get_tepl_action_info_store:
+ * @tepl_app: a #TeplApplication.
+ *
+ * The returned #TeplActionInfoStore contains #TeplActionInfo's for the
+ * following actions:
+ * - `"win.tepl-select-all"`
+ *
+ * To know what the #GAction's do, see the class description of
+ * #TeplApplicationWindow.
+ *
+ * Returns: (transfer none): the #TeplActionInfoStore of the Tepl library.
+ * Since: 3.0
+ */
+TeplActionInfoStore *
+tepl_application_get_tepl_action_info_store (TeplApplication *tepl_app)
+{
+ g_return_val_if_fail (TEPL_IS_APPLICATION (tepl_app), NULL);
+
+ return tepl_app->priv->tepl_action_info_store;
+}
+
+/**
* tepl_application_open_simple:
* @tepl_app: a #TeplApplication.
* @file: a #GFile.
diff --git a/tepl/tepl-application.h b/tepl/tepl-application.h
index 98e5dee..c5621f5 100644
--- a/tepl/tepl-application.h
+++ b/tepl/tepl-application.h
@@ -63,6 +63,8 @@ GtkApplication * tepl_application_get_application (TeplApplication
*tepl_app);
TeplActionInfoStore * tepl_application_get_app_action_info_store (TeplApplication *tepl_app);
+TeplActionInfoStore * tepl_application_get_tepl_action_info_store (TeplApplication *tepl_app);
+
void tepl_application_open_simple (TeplApplication *tepl_app,
GFile *file);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]