diff --git a/Makefile.in b/Makefile.in
index 44f1868..fa3f59d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -33,6 +33,7 @@ INSTALL_PACKAGES=@INSTALL_PACKAGES@
SOURCES= \
$(wildcard src/objects/actions/*.c) \
$(wildcard src/objects/actions/lib3270/*.c) \
+ $(wildcard src/objects/actions/v3270/*.c) \
$(wildcard src/objects/application/*.c) \
$(wildcard src/objects/application/actions/*.c) \
$(wildcard src/objects/window/*.c) \
diff --git a/pw3270.cbp b/pw3270.cbp
index 8316f71..d311e6b 100644
--- a/pw3270.cbp
+++ b/pw3270.cbp
@@ -82,6 +82,9 @@
+
+
+
diff --git a/src/include/pw3270/actions.h b/src/include/pw3270/actions.h
index be8b593..241f1d5 100644
--- a/src/include/pw3270/actions.h
+++ b/src/include/pw3270/actions.h
@@ -183,6 +183,34 @@
pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(GtkWidget *));
+ //
+ // V3270 Property Action
+ //
+ #define V3270_TYPE_PROPERTY_ACTION (v3270PropertyAction_get_type())
+ #define V3270_PROPERTY_ACTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), V3270_TYPE_PROPERTY_ACTION, v3270PropertyAction))
+ #define V3270_PROPERTY_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), V3270_TYPE_PROPERTY_ACTION, v3270PropertyActionClass))
+ #define V3270_IS_PROPERTY_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), V3270_TYPE_PROPERTY_ACTION))
+ #define V3270_IS_PROPERTY_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), V3270_TYPE_PROPERTY_ACTION))
+ #define V3270_PROPERTY_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), V3270_TYPE_PROPERTY_ACTION, v3270PropertyActionClass))
+
+ typedef struct _v3270PropertyAction {
+
+ pw3270Action parent;
+
+ GParamSpec *pspec;
+
+ } v3270PropertyAction;
+
+ typedef struct _v3270PropertyActionClass {
+
+ pw3270ActionClass parent_class;
+
+ } v3270PropertyActionClass;
+
+ GType v3270PropertyAction_get_type(void) G_GNUC_CONST;
+
+ v3270PropertyAction * v3270_property_action_new(GtkWidget *widget, const gchar *property_name);
+
G_END_DECLS
#endif // PW3270_ACTIONS_H_INCLUDED
diff --git a/src/objects/actions/v3270/property.c b/src/objects/actions/v3270/property.c
new file mode 100644
index 0000000..8906e8a
--- /dev/null
+++ b/src/objects/actions/v3270/property.c
@@ -0,0 +1,74 @@
+/*
+ * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
+ * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
+ * aplicativos mainframe. Registro no INPI sob o nome G3270.
+ *
+ * Copyright (C) <2008>
+ *
+ * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
+ * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
+ * Free Software Foundation.
+ *
+ * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
+ * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
+ * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
+ * obter mais detalhes.
+ *
+ * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
+ * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
+ * St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Este programa está nomeado como - e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+ /**
+ * @brief Implement GAction "wrapper" for v3270 properties.
+ *
+ * Reference:
+ *
+ *
+ *
+ */
+
+ #include "../private.h"
+ #include
+ #include
+
+ static void v3270PropertyAction_class_init(v3270PropertyActionClass *klass);
+ static void v3270PropertyAction_init(v3270PropertyAction *action);
+
+ G_DEFINE_TYPE(v3270PropertyAction, v3270PropertyAction, PW3270_TYPE_ACTION);
+
+ void v3270PropertyAction_class_init(v3270PropertyActionClass *klass) {
+
+ }
+
+ static void v3270PropertyAction_init(v3270PropertyAction *action) {
+
+ }
+
+ v3270PropertyAction * v3270_property_action_new(GtkWidget *widget, const gchar *property_name) {
+
+ v3270PropertyAction * action = (v3270PropertyAction *) g_object_new(V3270_TYPE_PROPERTY_ACTION, NULL);
+
+ action->pspec = g_object_class_find_property(G_OBJECT_GET_CLASS(widget), property_name);
+
+ if(~action->pspec->flags & G_PARAM_READABLE || ~action->pspec->flags & G_PARAM_WRITABLE || action->pspec->flags & G_PARAM_CONSTRUCT_ONLY) {
+
+ g_critical(
+ "Property '%s::%s' must be readable, writable, and not construct-only",
+ G_OBJECT_TYPE_NAME(G_OBJECT(widget)),
+ property_name
+ );
+
+ return NULL;
+ }
+
+ return action;
+ }
--
libgit2 0.21.2