[tepl/wip/tepl-next] AbstractFactory: add create_file()



commit 09381200931e6695d76c9adffbe5f6d23240e510
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri Aug 25 11:35:05 2017 +0200

    AbstractFactory: add create_file()

 docs/reference/tepl-3.0-sections.txt |    1 +
 tepl/tepl-abstract-factory.c         |   23 +++++++++++++++++++++++
 tepl/tepl-abstract-factory.h         |    9 ++++++++-
 3 files changed, 32 insertions(+), 1 deletions(-)
---
diff --git a/docs/reference/tepl-3.0-sections.txt b/docs/reference/tepl-3.0-sections.txt
index 51e3a95..cc98aa1 100644
--- a/docs/reference/tepl-3.0-sections.txt
+++ b/docs/reference/tepl-3.0-sections.txt
@@ -176,6 +176,7 @@ tepl_abstract_factory_set_singleton
 tepl_abstract_factory_get_singleton
 tepl_abstract_factory_create_tab
 tepl_abstract_factory_create_tab_label
+tepl_abstract_factory_create_file
 <SUBSECTION Standard>
 TEPL_ABSTRACT_FACTORY
 TEPL_ABSTRACT_FACTORY_CLASS
diff --git a/tepl/tepl-abstract-factory.c b/tepl/tepl-abstract-factory.c
index 1ecdce6..e5efd2f 100644
--- a/tepl/tepl-abstract-factory.c
+++ b/tepl/tepl-abstract-factory.c
@@ -18,6 +18,7 @@
  */
 
 #include "tepl-abstract-factory.h"
+#include "tepl-file.h"
 #include "tepl-tab.h"
 #include "tepl-tab-label.h"
 
@@ -75,6 +76,12 @@ tepl_abstract_factory_create_tab_label_default (TeplAbstractFactory *factory,
        return tepl_tab_label_new (tab);
 }
 
+static TeplFile *
+tepl_abstract_factory_create_file_default (TeplAbstractFactory *factory)
+{
+       return tepl_file_new ();
+}
+
 static void
 tepl_abstract_factory_class_init (TeplAbstractFactoryClass *klass)
 {
@@ -84,6 +91,7 @@ tepl_abstract_factory_class_init (TeplAbstractFactoryClass *klass)
 
        klass->create_tab = tepl_abstract_factory_create_tab_default;
        klass->create_tab_label = tepl_abstract_factory_create_tab_label_default;
+       klass->create_file = tepl_abstract_factory_create_file_default;
 }
 
 static void
@@ -191,3 +199,18 @@ tepl_abstract_factory_create_tab_label (TeplAbstractFactory *factory,
 
        return TEPL_ABSTRACT_FACTORY_GET_CLASS (factory)->create_tab_label (factory, tab);
 }
+
+/**
+ * tepl_abstract_factory_create_file:
+ * @factory: the #TeplAbstractFactory.
+ *
+ * Returns: (transfer full): a new #TeplFile.
+ * Since: 3.2
+ */
+TeplFile *
+tepl_abstract_factory_create_file (TeplAbstractFactory *factory)
+{
+       g_return_val_if_fail (TEPL_IS_ABSTRACT_FACTORY (factory), NULL);
+
+       return TEPL_ABSTRACT_FACTORY_GET_CLASS (factory)->create_file (factory);
+}
diff --git a/tepl/tepl-abstract-factory.h b/tepl/tepl-abstract-factory.h
index efc65cf..6693045 100644
--- a/tepl/tepl-abstract-factory.h
+++ b/tepl/tepl-abstract-factory.h
@@ -51,6 +51,9 @@ struct _TeplAbstractFactory
  * @create_tab_label: Virtual function pointer for
  *   tepl_abstract_factory_create_tab_label(). By default the tab label is
  *   created with tepl_tab_label_new().
+ * @create_file: Virtual function pointer for
+ *   tepl_abstract_factory_create_file(). By default the #TeplFile is created
+ *   with tepl_file_new().
  */
 struct _TeplAbstractFactoryClass
 {
@@ -61,8 +64,10 @@ struct _TeplAbstractFactoryClass
        GtkWidget *     (* create_tab_label)    (TeplAbstractFactory *factory,
                                                 TeplTab             *tab);
 
+       TeplFile *      (* create_file)         (TeplAbstractFactory *factory);
+
        /*< private >*/
-       gpointer padding[12];
+       gpointer padding[11];
 };
 
 GType                  tepl_abstract_factory_get_type                  (void);
@@ -76,6 +81,8 @@ TeplTab *             tepl_abstract_factory_create_tab                (TeplAbstractFactory 
*factory);
 GtkWidget *            tepl_abstract_factory_create_tab_label          (TeplAbstractFactory *factory,
                                                                         TeplTab             *tab);
 
+TeplFile *             tepl_abstract_factory_create_file               (TeplAbstractFactory *factory);
+
 G_GNUC_INTERNAL
 void                   _tepl_abstract_factory_unref_singleton          (void);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]