[110903] trunk/dports/gnome/gnumeric

larryv at macports.org larryv at macports.org
Mon Sep 9 12:23:43 PDT 2013


Revision: 110903
          https://trac.macports.org/changeset/110903
Author:   larryv at macports.org
Date:     2013-09-09 12:23:43 -0700 (Mon, 09 Sep 2013)
Log Message:
-----------
gnumeric: Add quartz variant and OS X menu bar integration (maintainer, #40419).

Modified Paths:
--------------
    trunk/dports/gnome/gnumeric/Portfile

Added Paths:
-----------
    trunk/dports/gnome/gnumeric/files/
    trunk/dports/gnome/gnumeric/files/patch_quartz-src-GNOME_Gnumeric-gtk.xml.in.diff
    trunk/dports/gnome/gnumeric/files/patch_quartz-src-wbc-gtk.c.diff

Modified: trunk/dports/gnome/gnumeric/Portfile
===================================================================
--- trunk/dports/gnome/gnumeric/Portfile	2013-09-09 19:23:37 UTC (rev 110902)
+++ trunk/dports/gnome/gnumeric/Portfile	2013-09-09 19:23:43 UTC (rev 110903)
@@ -2,6 +2,7 @@
 # $Id$
 
 PortSystem          1.0
+PortGroup           active_variants 1.0
 
 name                gnumeric
 version             1.12.7
@@ -63,10 +64,14 @@
     default_variants +python27
 }
 
-if {[variant_isset python25]} {
-# variant +python25 was declared obsolete on 7/28/2013
-    ui_error "Gnumeric python needs python 2.6 or 2.7, please consider reinstalling."
-    return -code error
+variant quartz description {build with gtk-osx-application support} {
+    require_active_variants gtk3 quartz
+    require_active_variants gtk-osx-application gtk3
+
+    depends_lib-append  port:gtk-osx-application
+    
+    patchfiles-append   patch_quartz-src-wbc-gtk.c.diff \
+                        patch_quartz-src-GNOME_Gnumeric-gtk.xml.in.diff
 }
 
 post-activate {

Added: trunk/dports/gnome/gnumeric/files/patch_quartz-src-GNOME_Gnumeric-gtk.xml.in.diff
===================================================================
--- trunk/dports/gnome/gnumeric/files/patch_quartz-src-GNOME_Gnumeric-gtk.xml.in.diff	                        (rev 0)
+++ trunk/dports/gnome/gnumeric/files/patch_quartz-src-GNOME_Gnumeric-gtk.xml.in.diff	2013-09-09 19:23:43 UTC (rev 110903)
@@ -0,0 +1,25 @@
+--- src/GNOME_Gnumeric-gtk-orig.xml.in	2013-05-28 16:38:55.000000000 -0700
++++ src/GNOME_Gnumeric-gtk.xml.in	2013-09-08 23:35:27.000000000 -0700
+@@ -96,14 +96,11 @@
+       </menu>
+       <menuitem action="EditRecalc"/>
+       <placeholder name="ops"/>
+-      <separator/>
+       <menuitem action="EditPreferences"/>
+     </menu>
+     <menu name="View" action="MenuView">
+       <menuitem action="ViewNew"/>
+       <menuitem action="ViewFreezeThawPanes"/>
+-      <menu name="Windows" action="MenuViewWindows">
+-      </menu>
+       <separator/>
+       <menu name="Toolbars" action="MenuViewToolbars">
+       </menu>
+@@ -326,7 +323,6 @@
+       <menuitem action="HelpWeb"/>
+       <menuitem action="HelpIRC"/>
+       <menuitem action="HelpBug"/>
+-      <separator/>
+       <menuitem action="HelpAbout"/>
+     </menu>
+   </menubar>

Added: trunk/dports/gnome/gnumeric/files/patch_quartz-src-wbc-gtk.c.diff
===================================================================
--- trunk/dports/gnome/gnumeric/files/patch_quartz-src-wbc-gtk.c.diff	                        (rev 0)
+++ trunk/dports/gnome/gnumeric/files/patch_quartz-src-wbc-gtk.c.diff	2013-09-09 19:23:43 UTC (rev 110903)
@@ -0,0 +1,48 @@
+--- src/wbc-gtk-orig.c	2013-08-22 14:25:13.000000000 -0700
++++ src/wbc-gtk.c	2013-09-08 23:39:38.000000000 -0700
+@@ -69,6 +69,7 @@
+ #include "gnm-i18n.h"
+ #include <errno.h>
+ #include <string.h>
++#include <gtkmacintegration/gtkosxapplication.h>
+ 
+ #define GET_GUI_ITEM(i_) (gpointer)(gtk_builder_get_object(wbcg->gui, (i_)))
+ 
+@@ -5738,6 +5739,37 @@
+ 		list_actions (wbcg->windows.actions);
+ 		list_actions (wbcg->templates.actions);
+ 	}
++    
++        // GTK-OSX-APPLICATION
++    GtkosxApplication *theApp = g_object_new (GTKOSX_TYPE_APPLICATION, NULL);
++    GtkWidget *osx_menubar, *osx_help, *osx_about, *osx_preferences, *osx_quit;
++    
++        // Define objects from gnumeric
++    osx_menubar = gtk_ui_manager_get_widget (wbcg->ui, "/ui/menubar");
++    osx_help = gtk_ui_manager_get_widget (wbcg->ui, "/menubar/Help/Help");
++    osx_about = gtk_ui_manager_get_widget (wbcg->ui, "/menubar/Help/HelpAbout");
++    osx_preferences = gtk_ui_manager_get_widget (wbcg->ui, "/menubar/Edit/EditPreferences");
++    osx_quit = gtk_ui_manager_get_widget (wbcg->ui, "/menubar/File/FileQuit");
++    
++        // Make the OS X menu bar object
++    gtkosx_application_set_menu_bar (theApp, GTK_MENU_SHELL (osx_menubar));
++    gtkosx_application_set_help_menu (theApp, GTK_MENU_ITEM (osx_help));
++    gtkosx_application_set_window_menu (theApp, NULL);
++    gtkosx_application_set_use_quartz_accelerators (theApp, TRUE);
++    
++        // Rearange certain menu items the way OS X users expect to see them
++    gtkosx_application_insert_app_menu_item (theApp, osx_about, 1);
++    gtkosx_application_insert_app_menu_item (theApp, gtk_separator_menu_item_new (), 2);
++    gtkosx_application_insert_app_menu_item (theApp, osx_preferences, 3);
++    gtkosx_application_insert_app_menu_item (theApp, gtk_separator_menu_item_new (), 4);
++    
++        // Hide the original menu items, but Window menu doesn't work...
++    gtk_widget_hide (osx_menubar);
++    gtk_widget_hide (osx_quit);
++    
++        // Tell OS X to show the menu bar
++    gtkosx_application_ready (theApp);
++        //END GTK-OSX-APPLICATION
+ }
+ 
+ GSF_CLASS_FULL (WBCGtk, wbc_gtk, NULL, NULL, wbc_gtk_class_init, NULL,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130909/f3c96ede/attachment.html>


More information about the macports-changes mailing list