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 @@ + + + + + + + +