libui/Compatibility.md

6.4 KiB

Useful things in newer versions

Windows

Windows 7

http://channel9.msdn.com/blogs/pdc2008/pc43

TODO look up PDC 2008 talk "new shell user interface"

  • new animation and text engine
  • ribbon control (didn't this have some additional license?)
  • LVITEM.piColFmt

Windows 8

Windows 8.1

Windows 10

GTK+

TODO what ships with Ubuntu Quantal (12.10)?

GTK+ 3.10

ships with: Ubuntu Trusty (14.04 LTS)
GLib version: 2.40

minimum versions (see configure.ac for the relevant tagged 3.x.0 versions):

  • GLib: 2.37.5
  • ATK: 2.7.5
  • cairo: 1.12.0
  • pango: 1.32.4
  • gdk-pixbuf: 2.27.1

features:

  • tab character stops in GtkEntry
  • GtkHeaderBar
    • intended for titlebar overrides; GtkInfoBar is what I keep thinking GtkHeaderBar is
  • GtkListBox
  • GtkRevealer for smooth animations of disclosure triangles
  • GtkSearchBar for custom search popups
  • GtkStack and GtkStackSwitcher
  • titlebar overrides (seems to be the hot new thing)

GTK+ 3.12

ships with: Ubuntu Utopic (14.10)
GLib version: 2.42

minimum versions:

  • GLib: 2.39.5
  • ATK: 2.7.5
  • cairo: 1.12.0
  • pango: 1.32.4
  • gdk-pixbuf: 2.27.1

features:

  • GtkActionBar (basically like the bottom-of-the-window toolbars in Mac programs)
  • gtk_get_locale_direction(), for internationalization
  • more control over GtkHeaderBar
  • GtkPopover
    • GtkPopovers on GtkMenuButtons
  • GtkStack signaling
  • gtk_tree_path_new_from_indicesv() (for when we add Table if we have trees too)

GTK+ 3.14

ships with: Debian Jessie, Ubuntu Vivid (15.04)
GLib version: Debian: 2.42, Ubuntu: 2.44

minimum versions:

  • GLib: 2.41.2
  • ATK: 2.12.0
  • cairo: 1.12.0
  • pango: 1.36.7
  • gdk-pixbuf: 2.30.0

features:

  • gestures
  • better GtkListbox selection handling
  • more style classes (TODO also prior?)
  • delayed switch changes on GtkSwitch

GTK+ 3.16

ships with: Ubuntu Wily (15.10)
GLib version: 2.46

minimum versions:

  • GLib: 2.43.4
  • ATK: 2.15.1
  • cairo: 1.14.0
  • pango: 1.36.7
  • gdk-pixbuf: 2.30.0

features:

  • gtk_clipboard_get_default() (???)
  • GtkGLArea
  • proper xalign and yalign for GtkLabel; should get rid of runtime deprecation warnings
  • better control of GtkListBox model-based creation (probably not relevant but)
  • GtkModelButton (for GActions; probably not relevant?)
  • wide handles on GtkPaned
  • GtkPopoverMenu
  • IPP paper names in GtkPaperSize (TODO will this be important for printing?)
  • multiple matches in GtkSearchEntry (TODO evaluate priority)
  • GtkStackSidebar
  • GTK_STYLE_CLASS_LABEL, GTK_STYLE_CLASS_MONOSPACE, GTK_STYLE_CLASS_STATUSBAR, GTK_STYLE_CLASS_TOUCH_SELECTION, GTK_STYLE_CLASS_WIDE (TODO figure out which of these are useful)
  • GtkTextView: extend-selection
  • GtkTextView: font fallbacks

GTK+ 3.18

ships with: TODO

minimum versions:

  • GLib: 2.45.8 (min_required 2.44 max_allowed 2.46 ?)
  • ATK: 2.15.1
  • cairo: 1.14.0
  • pango: 1.37.3
  • gdk-pixbuf: 2.30.0

features:

  • TODO

GTK+ 3.20

ships with: TODO

minimum versions (TODO double-check these):

  • GLib: 2.45.8 (min_required 2.44 max_allowed 2.46 ?)
  • ATK: 2.15.1
  • cairo: 1.14.0
  • pango: 1.37.3
  • gdk-pixbuf: 2.30.0

features:

  • TODO

GTK+ 3.22

ships with: TODO

minimum versions:

  • GLib: 2.49.4 (min_required 2.48 max_allowed 2.50 ?)
  • ATK: 2.15.1
  • cairo: 1.14.0
  • pango: 1.37.3
  • gdk-pixbuf: 2.30.0

features:

  • TODO

GTK+ 3.24

ships with: TODO

minimum versions:

  • GLib: 2.49.4 (min_required 2.48 max_allowed 2.50 ?)
  • ATK: 2.15.1
  • cairo: 1.14.0
  • pango: 1.41.0
  • gdk-pixbuf: 2.30.0

features:

  • TODO

TODO greater versions

ships with: TODO

minimum versions:

  • GLib: TODO (min_required TODO max_allowed TODO ?)
  • ATK: TODO
  • cairo: TODO
  • pango: TODO
  • gdk-pixbuf: TODO

features:

  • TODO

Cocoa

Mac OS X 10.8

  • Foundation (full details)
    • NSDateComponents supports leap months
    • NSNumberFormatter and NSDateFormatter default to 10.4 behavior by default (need to explicitly do this on 10.7)
    • NSUserNotification and NSUserNotificationCenter for Growl-style notifications
    • better linguistic triggers for Spanish and Italian
    • NSByteCountFormatter
  • AppKit (full details)
    • view-based NSTableView/NSOutlineView have expansion tooltips
    • NSScrollView magnification
    • Quick Look events; TODO see if they conflict with keyboard handling in Area
    • NSPageController (maybe useful?)
    • not useful for package UI, but may be useful for a new library (probably not by me): NSSharingService
    • NSOpenPanel and NSSavePanel are now longer NSPanels or NSWindows in sandboxed applications; this may be an issue should anyone dare to enable sandboxing on a program that uses package ui
    • NSTextAlternatives
    • -[NSOpenGLContext setFullScreen] now ineffective
    • +[NSColor underPageBackgroundColor]

Mac OS X 10.9

  • Foundation (full details)
    • system-provided progress reporting/cancellation support
    • NSURLComponents
    • NSCalendar, NSDateFormatter, and NSNumberFormatter are now thread-safe
    • various NSCalendar and NSDateComponents improvements
  • AppKit (full details)
    • sheet handling is now block-based, queued, and in NSWindow; the delegate-based NSApplication API will still exist, except without the queue
    • similar changes to NSAlert
    • return value changes to NSAlert
    • window visibility APIs (occlusion)
    • NSApplicationActivationPolicyAccessory
    • fullscreen toolbar behavior changes
    • status items for multiple menu bars
    • better NSSharingService support
    • a special accelerated scrolling mode, Responsive Scrolling; won't matter for us since I plan to support the scroll wheel and it won't
    • NSScrollView live scrolling notifications
    • NSScrollView floating (anchored/non-scrolling) subviews
    • better multimonitor support
    • better key-value observing for NSOpenPanel/NSSavePanel (might want to look this up to see if we can override some other juicy details... TODO)
    • better accessory view key-view handling in NSOpenPanel/NSSavePanel
    • NSAppearance
    • -[NSTableView moveRowAtIndex:toIndex:] bug regarding first responders fixed
    • view-specific RTL overrides

Mac OS X 10.10

Mac OS X 10.11

  • NSLayoutGuide