diff --git a/pw3270.komodoproject b/pw3270.komodoproject index 7c3ba41..f335803 100644 --- a/pw3270.komodoproject +++ b/pw3270.komodoproject @@ -1,4 +1,254 @@ + + 1 + 1 + 1 + 1 + 250 + 0 + 1 + 0 + 2 + 1 + 0 + %25a %25b %25d %25H:%25M:%25S %25Y + + + + 0 + 0 + 0 + 0 + 0 + 0 + smart + 80 + 1 + 1 + 1 + squaretree + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + mac-roman + 1 + 0 + 1 + 1 + 0 + 1 + 1 + + *.*~;*.bak;*.tmp;CVS;.#*;*.pyo;*.pyc;.svn;.git;.hg;.bzr;*%25*;tmp*.html;.DS_Store;*.swp;*.kpf;*.komodoproject;.komodotools;__pycache__ + + 0 + 4 + + default + + + default + + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + utf-8 + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + 1 + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + ascii + + + 0 + ascii + + + 0 + Default Encoding + 2 + + + 0 + Default Encoding + 2 + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + Default Encoding + + + 0 + utf-8 + + + 0 + utf-8 + + + 0 + utf-8 + + + 0 + Default Encoding + + + 0 + 1000 + 1 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 1 + cw + 1 + 1 + off + + + + cwT + 0 + 2000 + 0 + 0 + 0 + 1 + 1 + 0 + 8 + 0 + + errors + 1 + 1 + + 5 + diff --git a/src/pw3270/uiparser/action.c b/src/pw3270/uiparser/action.c index 6324b65..e7b5d6d 100644 --- a/src/pw3270/uiparser/action.c +++ b/src/pw3270/uiparser/action.c @@ -120,4 +120,3 @@ } } } - diff --git a/src/pw3270/uiparser/menu.c b/src/pw3270/uiparser/menu.c index 73b9e93..72cde38 100644 --- a/src/pw3270/uiparser/menu.c +++ b/src/pw3270/uiparser/menu.c @@ -72,7 +72,9 @@ gtk_menu_shell_append((GtkMenuShell *) menu, widget); -// trace("%s: %s=%p",__FUNCTION__,gtk_widget_get_name(widget),widget); +#ifdef HAVE_GTKMAC + ui_check_for_sysmenu(widget,info,ui_get_attribute("sysmenu",names,values)); +#endif // HAVE_GTKMAC return ui_insert_element(info, action, UI_ELEMENT_MENU, names, values, G_OBJECT(widget), error); } diff --git a/src/pw3270/uiparser/menuitem.c b/src/pw3270/uiparser/menuitem.c index 0b62675..69d4e4f 100644 --- a/src/pw3270/uiparser/menuitem.c +++ b/src/pw3270/uiparser/menuitem.c @@ -32,12 +32,34 @@ #include "private.h" #ifdef HAVE_GTKMAC - #include + #include #endif // HAVE_GTKMAC /*--[ Implement ]------------------------------------------------------------------------------------*/ +#ifdef HAVE_GTKMAC + void ui_check_for_sysmenu(GtkWidget *widget, struct parser *info, const gchar *name) + { + static const gchar *sysmenu[SYSMENU_ITEM_COUNT] = { "about", "preferences", "quit" }; + int f; + + if(!name) + return; + + for(f=0;fsysmenu[f] = widget; + return; + } + } + + } +#endif // HAVE_GTKMAC + + GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error) { GtkWidget * widget = NULL; @@ -113,10 +135,13 @@ } } +#ifdef HAVE_GTKMAC + ui_check_for_sysmenu(widget,info,ui_get_attribute("sysmenu",names,values)); +#endif // HAVE_GTKMAC + return G_OBJECT(widget); } void ui_end_menuitem(GMarkupParseContext *context,GObject *widget,struct parser *info,GError **error) { } - diff --git a/src/pw3270/uiparser/parser.c b/src/pw3270/uiparser/parser.c index 61f99e4..6e5b5a4 100644 --- a/src/pw3270/uiparser/parser.c +++ b/src/pw3270/uiparser/parser.c @@ -232,10 +232,30 @@ void parser_build(struct parser *p, GtkWidget *widget) gtk_window_set_default(GTK_WINDOW(p->toplevel),widget); #ifdef HAVE_GTKMAC - if(p->topmenu) { - gtk_widget_set_visible(p->topmenu,FALSE); - gtk_mac_menu_set_menu_bar(GTK_MENU_SHELL(p->topmenu)); + if(p->topmenu) + { + gtk_widget_set_visible(p->topmenu,FALSE); + gtk_mac_menu_set_menu_bar(GTK_MENU_SHELL(p->topmenu)); + } + + if(p->sysmenu[SYSMENU_ITEM_QUIT]) + { + gtk_mac_menu_set_quit_menu_item (GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_QUIT])); + } + + if(p->sysmenu[SYSMENU_ITEM_ABOUT]) + { + GtkMacMenuGroup *group = gtk_mac_menu_add_app_menu_group(); + gtk_mac_menu_add_app_menu_item(group,GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_ABOUT]),NULL); + } + + if(p->sysmenu[SYSMENU_ITEM_PREFERENCES]) + { + GtkMacMenuGroup *group = gtk_mac_menu_add_app_menu_group(); + gtk_mac_menu_add_app_menu_item(group,GTK_MENU_ITEM(p->sysmenu[SYSMENU_ITEM_PREFERENCES]),NULL); + } + } #endif // HAVE_GTKMAC @@ -364,4 +384,3 @@ const gchar * ui_get_dir_name(UI_ATTR_DIRECTION dir) return ""; return dirname[dir]; } - diff --git a/src/pw3270/uiparser/private.h b/src/pw3270/uiparser/private.h index 8034861..fc15b37 100644 --- a/src/pw3270/uiparser/private.h +++ b/src/pw3270/uiparser/private.h @@ -53,6 +53,18 @@ #define UI_ELEMENT_MENUITEM UI_ELEMENT_COUNT+4 #define UI_ELEMENT_SCROLL UI_ELEMENT_COUNT+5 +#ifdef HAVE_GTKMAC + enum SYSMENU_ITEM + { + SYSMENU_ITEM_ABOUT, + SYSMENU_ITEM_PREFERENCES, + SYSMENU_ITEM_QUIT, + + SYSMENU_ITEM_COUNT + + }; +#endif // HAVE_GTKMAC + struct parser { GtkWidget * toplevel; @@ -69,6 +81,9 @@ GHashTable * actions; /**< List of actions */ GHashTable * element_list[UI_ELEMENT_COUNT]; const UI_WIDGET_SETUP * setup; +#ifdef HAVE_GTKMAC + GtkWidget * sysmenu[SYSMENU_ITEM_COUNT]; +#endif // HAVE_GTKMAC }; int ui_parse_file(struct parser *info, const gchar *filename); @@ -77,6 +92,10 @@ GObject * ui_get_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GError **error); GObject * ui_insert_element(struct parser *info, GtkAction *action, enum ui_element id, const gchar **names, const gchar **values, GObject *widget, GError **error); +#ifdef HAVE_GTKMAC + void ui_check_for_sysmenu(GtkWidget *widget, struct parser *info, const gchar *name); +#endif // HAVE_GTKMAC + GObject * ui_create_menubar(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); GObject * ui_create_menu(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); GObject * ui_create_menuitem(GMarkupParseContext *context,GtkAction *action,struct parser *info,const gchar **names, const gchar **values, GError **error); diff --git a/ui/00default.xml b/ui/00default.xml index 66023fb..acb41ca 100644 --- a/ui/00default.xml +++ b/ui/00default.xml @@ -54,7 +54,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -138,7 +138,7 @@ - + @@ -260,4 +260,3 @@ - -- libgit2 0.21.2