ICEpdf
  1. ICEpdf
  2. PDF-81

Support MacOS (OS X) menus in the ICEpdf Viewer RI application

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: 4.0 - Beta, 4.0
    • Component/s: Viewer RI
    • Labels:
      None
    • Environment:
      Mac OS X
    • Affects:
      Sample App./Tutorial, Compatibility/Configuration

      Description

      When running the ICEpdf Viewer RI Swing application on OS X platforms the application menus are not adjusted to meet Mac UI expectations. Further integration work should be done to make the ViewerRI behave in a more Mac-like manner.

      Specifically:

      - The application menu should appear at the top of the desktop (Mac menubar) instead of inside the application window frame.
      - The application name should appear in the leftmost menu-item of the Mac menubar.
      - The native Mac application menu in the desktop menubar should be integrated with the application to support the "About" and "Quit" functions.
      - The application menubar should *not* display the "About" or "Exit" menuitems when running on a Mac, as these are part of the native Application menu.

       

        Activity

        Hide
        Ken Fyten added a comment -

        Fixed.

        All code is still multi-platform friendly, but had to add a new .jar to the lib folder for this: AppleJavaExtensions.jar. This is a stub-jar of the required Apple OS APIs and is not required at runtime, just compile-time on non-Mac platforms.

        Added: icepdf/lib/AppleJavaExtensions.jar
        Modified: icepdf/viewer/src/org/icepdf/ri/common/SwingViewBuilder.java
        Modified: icepdf/viewer/src/org/icepdf/ri/viewer/Launcher.java
        Committed revision 19683.

        Show
        Ken Fyten added a comment - Fixed. All code is still multi-platform friendly, but had to add a new .jar to the lib folder for this: AppleJavaExtensions.jar. This is a stub-jar of the required Apple OS APIs and is not required at runtime, just compile-time on non-Mac platforms. Added: icepdf/lib/AppleJavaExtensions.jar Modified: icepdf/viewer/src/org/icepdf/ri/common/SwingViewBuilder.java Modified: icepdf/viewer/src/org/icepdf/ri/viewer/Launcher.java Committed revision 19683.
        Hide
        Ken Fyten added a comment -

        Looks like the AppleJavaExtensions.jar doesn't include the com.apple.mrj package...

        Show
        Ken Fyten added a comment - Looks like the AppleJavaExtensions.jar doesn't include the com.apple.mrj package...
        Hide
        Ken Fyten added a comment -

        Okay, got rid of the AppleJavaExtensions.jar altogether, replaced with a little utility class from Apple that uses introspection to invoke the necessary callbacks, etc.

        Deleted: icepdf/lib/AppleJavaExtensions.jar
        Deleted: icepdf/viewer/src/org/icepdf/ri/common/MacOSAppMenuEventHandler.java
        Modified: icepdf/lib/versions-licenses.html
        Added: icepdf/viewer/src/apple/dts/samplecode/osxadapter/OSXAdapter.java
        Modified: icepdf/viewer/src/org/icepdf/ri/common/SwingController.java
        Modified: icepdf/viewer/src/org/icepdf/ri/common/SwingViewBuilder.java
        Committed revision 19688.

        Show
        Ken Fyten added a comment - Okay, got rid of the AppleJavaExtensions.jar altogether, replaced with a little utility class from Apple that uses introspection to invoke the necessary callbacks, etc. Deleted: icepdf/lib/AppleJavaExtensions.jar Deleted: icepdf/viewer/src/org/icepdf/ri/common/MacOSAppMenuEventHandler.java Modified: icepdf/lib/versions-licenses.html Added: icepdf/viewer/src/apple/dts/samplecode/osxadapter/OSXAdapter.java Modified: icepdf/viewer/src/org/icepdf/ri/common/SwingController.java Modified: icepdf/viewer/src/org/icepdf/ri/common/SwingViewBuilder.java Committed revision 19688.

          People

          • Assignee:
            Ken Fyten
            Reporter:
            Ken Fyten
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: