diff --git a/pw3270.cbp b/pw3270.cbp
index 3b9ead2..6c388ce 100644
--- a/pw3270.cbp
+++ b/pw3270.cbp
@@ -275,6 +275,9 @@
+
+
+
@@ -344,6 +347,7 @@
+
diff --git a/src/pw3270/uiparser/keypad.c b/src/pw3270/uiparser/keypad.c
new file mode 100644
index 0000000..71c7cf5
--- /dev/null
+++ b/src/pw3270/uiparser/keypad.c
@@ -0,0 +1,82 @@
+/*
+ * "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 accelerator.c e possui - linhas de código.
+ *
+ * Contatos:
+ *
+ * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
+ * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
+ *
+ */
+
+ #include
+ #include "private.h"
+
+/*--[ Implement ]------------------------------------------------------------------------------------*/
+
+ static void element_start(GMarkupParseContext *context, const gchar *element_name, const gchar **names,const gchar **values, struct parser *info, GError **error)
+ {
+ trace("%s: %s",__FUNCTION__,element_name);
+ }
+
+ static void element_end(GMarkupParseContext *context, const gchar *element_name, struct parser *info, GError **error)
+ {
+ trace("%s: %s",__FUNCTION__,element_name);
+ }
+
+ GObject * ui_create_keypad(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error)
+ {
+ static const GMarkupParser parser =
+ {
+ (void (*)(GMarkupParseContext *, const gchar *, const gchar **, const gchar **, gpointer, GError **))
+ element_start,
+ (void (*)(GMarkupParseContext *, const gchar *, gpointer, GError **))
+ element_end,
+ (void (*)(GMarkupParseContext *, const gchar *, gsize, gpointer, GError **))
+ NULL,
+
+// (void (*)(GMarkupParseContext *, GError *, gpointer))
+ NULL
+
+ };
+
+ if(info->element)
+ {
+ *error = g_error_new(ERROR_DOMAIN,EINVAL, _( "<%s> should be on toplevel"), "keypad");
+ return NULL;
+ }
+
+ if(action)
+ {
+ *error = g_error_new(ERROR_DOMAIN,EINVAL,_( "action attribute is invalid for <%s>"),"keypad");
+ return NULL;
+ }
+
+ g_markup_parse_context_push(context,(GMarkupParser *) &parser,info);
+
+ return NULL;
+ }
+
+ void ui_end_keypad(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error)
+ {
+
+ g_markup_parse_context_pop(context);
+ }
diff --git a/src/pw3270/uiparser/parsefile.c b/src/pw3270/uiparser/parsefile.c
index a8fb403..33f8d9a 100644
--- a/src/pw3270/uiparser/parsefile.c
+++ b/src/pw3270/uiparser/parsefile.c
@@ -52,6 +52,7 @@
{ "popup", UI_ELEMENT_POPUP, ui_create_popup, ui_end_popup },
{ "script", UI_ELEMENT_SCRIPT, ui_create_script, ui_end_script },
{ "scroll", UI_ELEMENT_SCROLL, ui_create_scroll, ui_end_scroll },
+ { "keypad", UI_ELEMENT_KEYPAD, ui_create_keypad, ui_end_keypad },
};
/*--[ Implement ]------------------------------------------------------------------------------------*/
diff --git a/src/pw3270/uiparser/private.h b/src/pw3270/uiparser/private.h
index fc15b37..e752771 100644
--- a/src/pw3270/uiparser/private.h
+++ b/src/pw3270/uiparser/private.h
@@ -43,6 +43,7 @@
UI_ELEMENT_TOOLBAR,
UI_ELEMENT_TOOLITEM,
UI_ELEMENT_POPUP,
+ UI_ELEMENT_KEYPAD,
UI_ELEMENT_COUNT
};
@@ -106,6 +107,7 @@
GObject * ui_create_popup(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error);
GObject * ui_create_script(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error);
GObject * ui_create_scroll(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error);
+ GObject * ui_create_keypad(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error);
void ui_end_menubar(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error);
void ui_end_menu(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error);
@@ -117,5 +119,6 @@
void ui_end_popup(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error);
void ui_end_script(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error);
void ui_end_scroll(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error);
+ void ui_end_keypad(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error);
#include "parser.h"
diff --git a/src/pw3270/uiparser/sources.mak b/src/pw3270/uiparser/sources.mak
index a1ae1d0..d7ed738 100644
--- a/src/pw3270/uiparser/sources.mak
+++ b/src/pw3270/uiparser/sources.mak
@@ -1,5 +1,5 @@
UI_PARSER_SRC=accelerator.c action.c menubar.c menu.c menuitem.c parser.c \
parsefile.c separator.c toolbar.c toolitem.c popup.c script.c \
- scroll.c
+ scroll.c keypad.c
diff --git a/ui/10keypad.xml b/ui/10keypad.xml
new file mode 100644
index 0000000..464d963
--- /dev/null
+++ b/ui/10keypad.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
libgit2 0.21.2