diff --git a/configure.ac b/configure.ac
index 00ea01e..f49c807 100644
--- a/configure.ac
+++ b/configure.ac
@@ -194,6 +194,7 @@ dnl ---------------------------------------------------------------------------
AC_SUBST(INSTALL_PACKAGES)
AC_CONFIG_FILES(Makefile)
+AC_CONFIG_FILES(schemas/application.gschema.xml)
dnl ---------------------------------------------------------------------------
dnl Output the generated config.status script.
diff --git a/schemas/application.gschema.xml b/schemas/application.gschema.xml
deleted file mode 100644
index 9b71833..0000000
--- a/schemas/application.gschema.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
- 1
- UI Style
- The ID of the current user interface style
-
-
-
-
-
diff --git a/schemas/application.gschema.xml.in b/schemas/application.gschema.xml.in
new file mode 100644
index 0000000..9b71833
--- /dev/null
+++ b/schemas/application.gschema.xml.in
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+ 1
+ UI Style
+ The ID of the current user interface style
+
+
+
+
+
diff --git a/src/include/pw3270/application.h b/src/include/pw3270/application.h
index 586e59c..9544910 100644
--- a/src/include/pw3270/application.h
+++ b/src/include/pw3270/application.h
@@ -52,10 +52,10 @@
#define PW3270_APPLICATION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \
GTK_TYPE_APPLICATION, pw3270ApplicationClass))
- typedef enum _pw3270_ui_type {
+ typedef enum _pw3270_ui_style {
PW3270_UI_STYLE_CLASSICAL, ///< @brief Interface "classica", com menu e toolbar.
PW3270_UI_STYLE_GNOME, ///< @brief Interface padrĂ£o gnome.
- } PW3270_UI_TYPE;
+ } PW3270_UI_STYLE;
typedef struct _pw3270ApplicationClass pw3270ApplicationClass;
@@ -64,8 +64,8 @@
GType pw3270Application_get_type();
GtkApplication * pw3270_application_new(const gchar *application_id, GApplicationFlags flags);
- void pw3270_application_set_ui_type(GApplication *app, PW3270_UI_TYPE type);
- PW3270_UI_TYPE pw3270_application_get_ui_type(GApplication *app);
+ void pw3270_application_set_ui_style(GApplication *app, PW3270_UI_STYLE type);
+ PW3270_UI_STYLE pw3270_application_get_ui_style(GApplication *app);
G_END_DECLS
diff --git a/src/main/main.c b/src/main/main.c
index 4e432bb..1946c52 100644
--- a/src/main/main.c
+++ b/src/main/main.c
@@ -45,6 +45,7 @@ int main (int argc, char **argv) {
GtkApplication *app;
int status;
+/*
#ifdef DEBUG
{
GError * error = NULL;
@@ -73,8 +74,11 @@ int main (int argc, char **argv) {
g_object_unref(settings);
}
#endif // DEBUG
+*/
+
+// app = pw3270_application_new("br.com.bb." G_STRINGIFY(PRODUCT_NAME),G_APPLICATION_HANDLES_OPEN);
+ app = pw3270_application_new("br.com.bb.pw3270",G_APPLICATION_HANDLES_OPEN);
- app = pw3270_application_new("br.com.bb." G_STRINGIFY(PRODUCT_NAME),G_APPLICATION_HANDLES_OPEN);
status = g_application_run(G_APPLICATION (app), argc, argv);
g_object_unref (app);
diff --git a/src/objects/window/application.c b/src/objects/window/application.c
index 98b075c..2331405 100644
--- a/src/objects/window/application.c
+++ b/src/objects/window/application.c
@@ -36,7 +36,7 @@
enum {
PROP_ZERO,
- PROP_UI_TYPE,
+ PROP_UI_STYLE,
NUM_PROPERTIES
};
@@ -50,7 +50,7 @@
struct _pw3270Application {
GtkApplication parent;
- PW3270_UI_TYPE ui_type;
+ PW3270_UI_STYLE ui_style;
};
@@ -63,8 +63,8 @@
static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) {
switch (prop_id) {
- case PROP_UI_TYPE:
- g_value_set_uint(value,pw3270_application_get_ui_type(G_APPLICATION(object)));
+ case PROP_UI_STYLE:
+ g_value_set_uint(value,pw3270_application_get_ui_style(G_APPLICATION(object)));
break;
default:
@@ -76,8 +76,8 @@
static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) {
switch (prop_id) {
- case PROP_UI_TYPE:
- pw3270_application_set_ui_type(G_APPLICATION(object),g_value_get_uint(value));
+ case PROP_UI_STYLE:
+ pw3270_application_set_ui_style(G_APPLICATION(object),g_value_get_uint(value));
break;
default:
@@ -98,9 +98,9 @@
application_class->activate = activate;
application_class->open = open;
- props[PROP_UI_TYPE] =
+ props[PROP_UI_STYLE] =
g_param_spec_uint(
- "ui_type",
+ "ui-style",
_("UI Type"),
_("The code of the User interface type"),
PW3270_UI_STYLE_CLASSICAL,
@@ -121,11 +121,53 @@
static void pw3270Application_init(pw3270Application *app) {
#ifdef _WIN32
- app->ui_type = PW3270_UI_STYLE_CLASSICAL;
+ app->ui_style = PW3270_UI_STYLE_CLASSICAL;
#else
- app->ui_type = PW3270_UI_STYLE_GNOME;
+ app->ui_style = PW3270_UI_STYLE_GNOME;
#endif // _WIN32
+ // Bind properties
+ GSettings * settings = NULL;
+
+#ifdef DEBUG
+ {
+ GError * error = NULL;
+ GSettingsSchemaSource * source =
+ g_settings_schema_source_new_from_directory(
+ ".",
+ NULL,
+ TRUE,
+ &error
+ );
+
+ g_assert_no_error(error);
+
+ GSettingsSchema * schema =
+ g_settings_schema_source_lookup(
+ source,
+ "br.com.bb.pw3270",
+ TRUE);
+
+ g_settings_schema_source_unref(source);
+
+ settings = g_settings_new_full(schema, NULL, "/br/com/bb/pw3270/application/");
+
+ }
+#else
+
+ #error TODO!
+
+#endif // DEBUG
+
+ if(settings) {
+
+ g_settings_bind(settings, "ui-style", app, "ui-style", G_SETTINGS_BIND_DEFAULT);
+
+
+ g_object_unref(settings);
+
+ }
+
}
GtkApplication * pw3270_application_new(const gchar *application_id, GApplicationFlags flags) {
@@ -200,7 +242,7 @@
GtkBuilder * builder = gtk_builder_new_from_file("ui/application.xml");
gtk_application_set_app_menu(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "app-menu")));
- if(pw3270_application_get_ui_type(application) == PW3270_UI_STYLE_CLASSICAL)
+ if(pw3270_application_get_ui_style(application) == PW3270_UI_STYLE_CLASSICAL)
gtk_application_set_menubar(GTK_APPLICATION (application), G_MENU_MODEL(gtk_builder_get_object (builder, "menubar")));
g_object_unref(builder);
@@ -244,24 +286,24 @@
}
- void pw3270_application_set_ui_type(GApplication *app, PW3270_UI_TYPE type) {
+ void pw3270_application_set_ui_style(GApplication *app, PW3270_UI_STYLE type) {
g_return_if_fail(PW3270_IS_APPLICATION(app));
pw3270Application * application = PW3270_APPLICATION(app);
- if(application->ui_type == type)
+ if(application->ui_style == type)
return;
- application->ui_type = type;
- g_object_notify_by_pspec(G_OBJECT(app), props[PROP_UI_TYPE]);
+ application->ui_style = type;
+ g_object_notify_by_pspec(G_OBJECT(app), props[PROP_UI_STYLE]);
}
- PW3270_UI_TYPE pw3270_application_get_ui_type(GApplication *app) {
+ PW3270_UI_STYLE pw3270_application_get_ui_style(GApplication *app) {
g_return_val_if_fail(PW3270_IS_APPLICATION(app),PW3270_UI_STYLE_CLASSICAL);
- return PW3270_APPLICATION(app)->ui_type;
+ return PW3270_APPLICATION(app)->ui_style;
}
diff --git a/src/objects/window/window.c b/src/objects/window/window.c
index cb13512..68ad0c8 100644
--- a/src/objects/window/window.c
+++ b/src/objects/window/window.c
@@ -108,7 +108,7 @@
GtkBuilder * builder = gtk_builder_new_from_file("ui/window.xml");
- switch(pw3270_application_get_ui_type(G_APPLICATION(application))) {
+ switch(pw3270_application_get_ui_style(G_APPLICATION(application))) {
case PW3270_UI_STYLE_CLASSICAL:
{
gtk_window_set_title(GTK_WINDOW(window), title);
--
libgit2 0.21.2