# 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](https://developer.apple.com/library/mac/releasenotes/Foundation/RN-FoundationOlderNotes/#//apple_ref/doc/uid/TP40008080-TRANSLATED_CHAPTER_965-TRANSLATED_DEST_999B)) - 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](https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKitOlderNotes/#X10_8Notes)) - 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](https://developer.apple.com/library/mac/releasenotes/Foundation/RN-Foundation/)) - system-provided progress reporting/cancellation support - NSURLComponents - **NSCalendar, NSDateFormatter, and NSNumberFormatter are now thread-safe** - various NSCalendar and NSDateComponents improvements - AppKit ([full details](https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/)) - 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**