Featured Products
Omegabundle for Xojo 2021 Products

The Ohanaware App Kit is a huge collection of declares and objects that we've created over the years to help us with crafting better macOS applications from the Xojo development tool.

New for 2021

OAK Mac Application Template
  • Project template which includes OAK installed and configured
  • Includes a preconfigure Preferences window
  • Starting point for new Mac applications
  • Set up for Window Restoration and auto save
OWStackView
  • Reworked scrolling handlers
  • Smoother collapse animations
  • Insert & append animations
  • Content reveal animations.
  • Floating / Sticky headers.
  • Insets.
OWControlAnimator
  • New easier design
  • kTimingFunctionEaseOutBack
  • Set global timing function
  • Set global animation duration
OWPartialToolbar
  • Moves the toolbar to the right
  • Background Styles
  • Auto hiding divider
Full Color Icon Preferences Option
  • Allows the user to choose flat or color icons
  • Sends a notification when changed
  • Auto saves the users choice
  • App properties to control which style of icons to use where
New OAK Demo project
  • Based upon OAK Mac Application Template
  • Shows how to make Xojo made Mac Apps look and feel more native
  • Includes many examples of how to use functionality
OWListboxForAqua (Listbox subclass)
  • Overlay scrollbars
  • Wallpaper Tinted row backgrounds
  • Classic Wide style
  • Big Sur inset style
OWDestructiveButton
  • Rebuilt using Apple API
  • Uses correct color in Dark Mode
  • Now compatible with NSPopovers
OWWindowSplitter
  • Now works on container controls on page panels
  • Uses the OS supplied divider cursors
NSAlerts
  • Further customisation for the MessageDialog
  • Set keyboard modifiers on buttons
  • Display a checkbox in a message dialog
Disable Wallpaper Tinting for Active window
  • Customer settable preferences option
  • Auto saves the users choice
  • Makes in-focus window and toolbar opaque
  • Helps to quicker identify active window
  • use Wallpaper Tinting to help defocus other windows
OWScrollView
  • Reworked scrolling handlers
  • Insets
  • Center content horizontally
OWSourceList
  • Now supports header rows
  • Improvements across different OS versions
  • UpdateIcons event auto responds to Full Color Icon changes
OWConfirmDeletePopover
  • Uses OWDestructiveButton on Big Sur and newer
NSSwitch
  • Use the iOS style switch control on 10.15 or newer.
NSWindowCloseAnimation
  • Fades the window out on close
OWQLPreviewController
  • Add Quicklook functionality to your Mac app
NSearchToolbarItem
  • Use Big Sur style toolbar search item
  • Works with the new XojoToolbarDelegate
XojoToolbarDelegate
  • Allows more control over toolbar item creation
  • Required for NSearchToolbarItem

 

 

This library consists of multiple parts.

  • Declares

    These are lightweight modules that contain the raw declares to Apple's APIs. Because of their design, unneeded functions are stripped at compile time (keeping application sizes minimal) and are the most performant means of accessing Apple's huge toolbox. Some of these "Declare" modules can be removed entirely when crafting or updating applications, but most share components with each other.
  • Convenience Code

    The OAK2020 module contains a lot of convenience code which makes it easier to work with some of the declares, as well as functions that are used throughout Ohanaware's applications.
  • Convenience Objects

    Are wrappers for the declares (they rely on the presence of the declare modules) or wrappers for Xojo code, they make it easier to interact with certain system functions, with a slight performance cost.

 Application Object

    •    Application Icon
    •    Display Version
    •    Display Name
    •    Recent Items Menu
    •    Dock Badges
    •    Sudden termination
    •    Automatic Windows menu
    •    Apple About Box
    •    Multiple files dropped onto App icon
    •    Application is hidden or unhidden
    •    Launch arguments
    •    Reading properties from app's plist
    •    Bounce icon in dock
    •    Handling URL schemas

Apps that are running

    •    List of running applications
    •    Current Application
    •    Getting information
    •    Interacting with


App Nap
    •    Controlling App Nap

App Sandbox
    •    Determining if the application is Sandboxed
    •    Window Restoration
    •    Recent Items Menu
    •    Security-Scoped Bodgemarks
    •    Launching included Applications
    •    Interface to choose photos/videos
    •    Using shared memory
    •    Apple Script in a Sandboxed application


Apple Script
    •    Apple Script in a Sandboxed application
    •    Apple Script in NON-Sandboxed app
    •    Execute shell commands with authorization


Controls
    •    Using CoreAnimation
    •    Precision scrolling
    •    Scrolling inertia to provide a bounce back
    •    Capturing contents as an image
    •    Capturing contents as PDF
    •    Setting a shadow on a control
    •    Button
    ◦    Setting icons
    •    Canvas
    ◦    Configuring Delegate
    ◦    Rotation gesture
    ◦    Magnify gesture
    ◦    Smart Magnify gesture
    ◦    A Swipe style gesture
    ◦    Adding animation
    ◦    Custom Focus Ring
    •    Color Well
    ◦    Adding a Color Well
    ◦    Events
    ◦    Methods
    ◦    Properties
    •    Image Well
    ◦    Removing the border
    ◦    Auto resizing images
    ◦    Setting a system image
    •    Listbox
    ◦    Transparent background
    ◦    Drawing system images.
    ◦    Alternating row colors
    ◦    Invalidate row
    •    Popup Menus
    ◦    Action menu
    ◦    Setting icons
    ◦    Setting the style
    ◦    Setting tool tips on items
    •    Scrollbars
    ◦    Overlay "Style" Scrollbar
    ◦    Events
    ◦    Methods
    ◦    Properties
    ◦    Style options
    •    ScrollView
    ◦    Adding a scrollView
    ◦    Using with a Canvas
    ◦    Using with a Listbox
    ◦    Selection Rect
    ◦    Methods
    ◦    Properties
    •    Sliders
    ◦    Slider Style





    •    Search field
    ◦    Adding a Search Field
    ◦    Events
    ◦    Properties
    ◦    searchActionOptions
    •    Segmented Controls
    ◦    Setting icons
    ◦    Image scaling
    ◦    Selected Item Index
    •    Text Areas
    ◦    Style controls
    ◦    Auto link handling
    ◦    Auto dash handling
    ◦    Auto Quote handling
    ◦    Auto text replacement
    ◦    Loading RTFD data
    ◦    Saving RTFD data
    ◦    Handling images
    •    Visual Effect Views
    ◦    Adding to a window
    ◦    Adding to a canvas
    ◦    Function description
    ◦    Additional Functions
    ◦    NSVisualEffectMaterialValue
    ◦    NSVisualEffectViewBlendingModeValue

Email
    •    Create a text based e-mail
    •    Create a "Feedback" e-mail
    •    Create an e-mail with a file attachment


Errors
    •    Handling NSErrors
    •    Reporting exceptions
    •    Debugging a NSException
    •    Finding crash reports


Files
    •    File Icons
    •    File icons from name
    •    Finding an App by bundle identifier
    •    Opening a file in a specific app
    •    Creating a Symbolic Link
    •    Creating a Hard Link
    •    Creating a Bookmark file (Alias)
    •    Sending to Trash/Bin
    •    Revealing in the Finder
    •    Getting display type from a file
    •    Atomic file saving
    •    Spotlight data
    •    UTI information
    •    Xattrs
    •    Finder Tags


Fonts
    •    System Font Name
    •    System Font Sizes
    •    Font Weights
    •    Replicating older OSes
    •    WYSIWYG font menu


Graphics
    •    Clipping to a vector path
    •    Theme colors
    •    Possible colors
    •    Tiling a texture
    •    Dropshadows
    •    Transparency Layers
    •    Drawing system supplied icons
    •    Gradients
    •    Erasing content


Images
    •    Different image objects
    •    Drawing CGImages & NSImages
    •    Converting between image objects
    •    System supplied images
    •    Image names
    •    Loading images with CoreGraphics
    •    Reading image meta data
    •    Writing images & meta data.
    •    Quickly getting the thumbnail from an image
    •    Getting actual bytes of an image
    •    ICNS, ICO or Tiff for multi-image retina assets
    •    Creating a multi-image file
    •    Creating a HEIC image file

 Menus
    •    Setting icons
    •    Alternative items
    •    Recent Items Menu
    •    Close All menu
    •    Automatic Windows menu
    •    Full Screen MenuItem
    •    About this application

Notifications
    •    Handling OS issued Notifications.
    •    Notifications between Xojo Objects
    •    User visible Notifications


Preferences system.
    •    Supported Data Types
    •    Saving Preferences
    •    Reading Preferences
    •    Saving & Restoring Window locations
    •    Removing a Preference
    •    Removing all preferences for an app


Property Lists
    •    Reading plist files
    •    Writing plist files
    •    Reading plist data
    •    Creating plist data


Save Dialog
    •    Read this first
    •    Adding a NSSavePanel to your app
    •    Adding custom options


Shared Memory
    •    Setting up with the parent/controller app
    •    Accessing from the helper application


Sharing Services
    •    Building a list of services
    •    Sharing the users data
    •    Handling the sharing delegate
    •    Did the share fail or succeed?
    •    Attaching to the window

System Information
    •    OS Version
    •    Testing OS Version
    •    Testing OS functionality
    •    Installed memory
    •    Uptime
    •    Computer is to enter or exit sleep
    •    Disks are connected or removed
    •    Responding to the system theme change.
    •    How many active cores are available
    •    Thermal state of the machine
    •    Computer name

Toolbars
    •    Controls on the Toolbar
    •    Customizing the appearance
    •    Using system icons
User
    •    Username
    •    User's name
    •    User's Language
    •    Media Browser


Windows
    •    Built-in animation
    •    Customizing the appearance
    •    Auto Tabbed Windows
    •    Obscured from the users view
    •    Moved screen
    •    Entering Full Screen
    •    Customizing the full screen experience
    •    Exiting Full Screen
    •    Started to move
    •    About to Resize
    •    Adjusting the location of sheet windows
    •    App Store style window example
    •    Adding a Visual Effect View to a window
    •    Automatically restoring when app re-opens
    •    Making a Pallet window that auto-reopens and recalls it's position


Zip Files
    •    Creating Zip files
    •    Extracting Zip Files
    •    Exploring a Zip file
    •    Reading a file inside a zip