Commit 17769a39 authored by Felix Paul Kühne's avatar Felix Paul Kühne

macosx: prepare sidebar

removed remnants of the Dudiak interface, added PXSourceList by Alex Rozanski (BSD-new licensed) which will be used for the new implementation, added a to-be-replaced png for the window's topbar
parent 666390fa
......@@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1040</int>
<string key="IBDocument.SystemVersion">11A511</string>
<string key="IBDocument.SystemVersion">11C26</string>
<string key="IBDocument.InterfaceBuilderVersion">851</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.AppKitVersion">1138.11</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
......@@ -12,12 +12,13 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="283"/>
<integer value="4596"/>
<integer value="1590"/>
<integer value="1617"/>
<integer value="915"/>
<integer value="283"/>
<integer value="2730"/>
<integer value="235"/>
<integer value="2"/>
<integer value="2730"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
......@@ -54,258 +55,6 @@
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSScrollView" id="915491793">
<reference key="NSNextResponder" ref="429932428"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSClipView" id="343242432">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSOutlineView" id="23448837">
<reference key="NSNextResponder" ref="343242432"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{604, 231}</string>
<reference key="NSSuperview" ref="343242432"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="823165105">
<reference key="NSNextResponder" ref="576307303"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{604, 17}</string>
<reference key="NSSuperview" ref="576307303"/>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="803225886">
<string key="NSIdentifier">status</string>
<double key="NSWidth">16</double>
<double key="NSMinWidth">16</double>
<double key="NSMaxWidth">3.4028229999999999e+38</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3088</int>
</object>
<object class="NSColor" key="NSBackgroundColor" id="1018329413">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerColor</string>
<object class="NSColor" key="NSColor" id="712893775">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="141148336">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<object class="NSColor" key="NSColor" id="563235091">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<object class="NSImageCell" key="NSDataCell" id="1059212168">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">33685504</int>
<reference key="NSSupport" ref="26"/>
<int key="NSAlign">0</int>
<int key="NSScale">0</int>
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="NSTableColumn" id="965199398">
<string key="NSIdentifier">name</string>
<double key="NSWidth">346</double>
<double key="NSMinWidth">16</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Name</string>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor" id="320837044">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
</object>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="80936197">
<int key="NSCellFlags">67239488</int>
<int key="NSCellFlags2">272761856</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="23448837"/>
<object class="NSColor" key="NSBackgroundColor" id="3414043">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor" id="528917951">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="306532497">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="563235091"/>
</object>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="NSTableColumn" id="475692067">
<string key="NSIdentifier">artist</string>
<double key="NSWidth">170</double>
<double key="NSMinWidth">20</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Artist</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="320837044"/>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="306147575">
<int key="NSCellFlags">67239488</int>
<int key="NSCellFlags2">272761856</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="23448837"/>
<reference key="NSBackgroundColor" ref="3414043"/>
<reference key="NSTextColor" ref="306532497"/>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="NSTableColumn" id="207035020">
<string key="NSIdentifier">duration</string>
<double key="NSWidth">60</double>
<double key="NSMinWidth">60</double>
<double key="NSMaxWidth">60</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">134219776</int>
<string key="NSContents">Duration</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="1018329413"/>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="984895421">
<int key="NSCellFlags">67239488</int>
<int key="NSCellFlags2">272761856</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="23448837"/>
<reference key="NSBackgroundColor" ref="3414043"/>
<reference key="NSTextColor" ref="306532497"/>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor" id="885475112">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="528917951"/>
</object>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">15</double>
<int key="NSTvFlags">-71303168</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<string key="NSAutosaveName">mainPlaylistView</string>
<int key="NSGridStyleMask">1</int>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
<reference key="NSOutlineViewOutlineTableColumnKey" ref="965199398"/>
</object>
</object>
<string key="NSFrame">{{1, 17}, {604, 231}}</string>
<reference key="NSSuperview" ref="915491793"/>
<reference key="NSNextKeyView" ref="23448837"/>
<reference key="NSDocView" ref="23448837"/>
<reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="573737110">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{560, 17}, {15, 18}}</string>
<reference key="NSSuperview" ref="915491793"/>
<reference key="NSTarget" ref="915491793"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.54545460000000001</double>
</object>
<object class="NSScroller" id="297523533">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 35}, {559, 15}}</string>
<reference key="NSSuperview" ref="915491793"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="915491793"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.97785350000000004</double>
</object>
<object class="NSClipView" id="576307303">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="823165105"/>
</object>
<string key="NSFrame">{{1, 0}, {604, 17}}</string>
<reference key="NSSuperview" ref="915491793"/>
<reference key="NSNextKeyView" ref="823165105"/>
<reference key="NSDocView" ref="823165105"/>
<reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int>
</object>
</object>
<string key="NSFrame">{{-1, 36}, {606, 249}}</string>
<reference key="NSSuperview" ref="429932428"/>
<reference key="NSNextKeyView" ref="343242432"/>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="573737110"/>
<reference key="NSHScroller" ref="297523533"/>
<reference key="NSContentView" ref="343242432"/>
<reference key="NSHeaderClipView" ref="576307303"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBiAAAQYgAAA</bytes>
</object>
<object class="NSImageView" id="1041205852">
<reference key="NSNextResponder" ref="429932428"/>
<int key="NSvFlags">290</int>
......@@ -762,14 +511,17 @@
<object class="NSTextFieldCell" key="NSCell" id="896153998">
<int key="NSCellFlags">-2079195584</int>
<int key="NSCellFlags2">138413056</int>
<string key="NSContents">0:00:00</string>
<string key="NSContents">00:00</string>
<reference key="NSSupport" ref="188716167"/>
<reference key="NSControlView" ref="533732100"/>
<object class="NSColor" key="NSBackgroundColor" id="166084101">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">textBackgroundColor</string>
<reference key="NSColor" ref="712893775"/>
<object class="NSColor" key="NSColor" id="712893775">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">3</int>
......@@ -780,68 +532,6 @@
</object>
</object>
</object>
<object class="NSSearchField" id="596740638">
<reference key="NSNextResponder" ref="429932428"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{486, 288}, {110, 22}}</string>
<reference key="NSSuperview" ref="429932428"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSearchFieldCell" key="NSCell" id="600721723">
<int key="NSCellFlags">343014976</int>
<int key="NSCellFlags2">268436480</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="841513812"/>
<reference key="NSControlView" ref="596740638"/>
<bool key="NSDrawsBackground">YES</bool>
<int key="NSTextBezelStyle">1</int>
<reference key="NSBackgroundColor" ref="166084101"/>
<reference key="NSTextColor" ref="306532497"/>
<object class="NSButtonCell" key="NSSearchButtonCell">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">search</string>
<reference key="NSControlView" ref="596740638"/>
<string key="NSAction">_searchFieldSearch:</string>
<reference key="NSTarget" ref="600721723"/>
<int key="NSButtonFlags">138690815</int>
<int key="NSButtonFlags2">0</int>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
<object class="NSButtonCell" key="NSCancelButtonCell">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">clear</string>
<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableDictionary">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>AXDescription</string>
<string>NSAccessibilityEncodedAttributesValueType</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>cancel</string>
<integer value="1"/>
</object>
</object>
</object>
<reference key="NSControlView" ref="596740638"/>
<string key="NSAction">_searchFieldCancel:</string>
<reference key="NSTarget" ref="600721723"/>
<int key="NSButtonFlags">138690815</int>
<int key="NSButtonFlags2">0</int>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
<string key="NSRecentsAutosaveName">VLC media player search</string>
<int key="NSMaximumRecents">10</int>
</object>
</object>
<object class="NSProgressIndicator" id="664576649">
<reference key="NSNextResponder" ref="429932428"/>
<int key="NSvFlags">-2147482334</int>
......@@ -942,10 +632,515 @@
<bool key="NSVertical">NO</bool>
</object>
</object>
<object class="NSSplitView" id="302568132">
<reference key="NSNextResponder" ref="429932428"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSCustomView" id="824340487">
<reference key="NSNextResponder" ref="302568132"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSScrollView" id="506374457">
<reference key="NSNextResponder" ref="824340487"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSClipView" id="644916584">
<reference key="NSNextResponder" ref="506374457"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSOutlineView" id="83182032">
<reference key="NSNextResponder" ref="644916584"/>
<int key="NSvFlags">4370</int>
<string key="NSFrameSize">{123, 273}</string>
<reference key="NSSuperview" ref="644916584"/>
<bool key="NSEnabled">YES</bool>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{200, 0}, {16, 17}}</string>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="950807616">
<string key="NSIdentifier">name</string>
<double key="NSWidth">120</double>
<double key="NSMinWidth">16</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3088</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
</object>
<object class="NSColor" key="NSTextColor" id="141148336">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<object class="NSColor" key="NSColor" id="563235091">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="806672982">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="83182032"/>
<object class="NSColor" key="NSBackgroundColor" id="885475112">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor" id="528917951">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="306532497">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="563235091"/>
</object>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="83182032"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">0.0</double>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">_sourceListBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">alternateSelectedControlColor</string>
<object class="NSColor" key="NSColor" id="829159933">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDEAA</bytes>
</object>
</object>
</object>
<object class="NSColor" key="NSGridColor" id="756174976">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">20</double>
<int key="NSTvFlags">37748736</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">5</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">NO</bool>
<int key="NSTableViewSelectionHighlightStyle">1</int>
<int key="NSTableViewDraggingDestinationStyle">1</int>
<int key="NSTableViewGroupRowStyle">1</int>
<bool key="NSOutlineViewAutoresizesOutlineColumnKey">NO</bool>
<float key="NSOutlineViewIndentationPerLevelKey">14</float>
</object>
</object>
<string key="NSFrameSize">{122, 273}</string>
<reference key="NSSuperview" ref="506374457"/>
<reference key="NSNextKeyView" ref="83182032"/>
<reference key="NSDocView" ref="83182032"/>
<reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="1024767070">
<reference key="NSNextResponder" ref="506374457"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{200, 0}, {15, 496}}</string>
<reference key="NSSuperview" ref="506374457"/>
<reference key="NSTarget" ref="506374457"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99798790000000004</double>
</object>
<object class="NSScroller" id="677088452">
<reference key="NSNextResponder" ref="506374457"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-100, -100}, {128, 15}}</string>
<reference key="NSSuperview" ref="506374457"/>
<bool key="NSEnabled">YES</bool>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="506374457"/>
<string key="NSAction">_doScroller:</string>
<double key="NSCurValue">0.0046511629999999998</double>
<double key="NSPercent">0.88888889999999998</double>
</object>
</object>
<string key="NSFrameSize">{122, 273}</string>
<reference key="NSSuperview" ref="824340487"/>
<reference key="NSNextKeyView" ref="644916584"/>
<int key="NSsFlags">133776</int>
<reference key="NSVScroller" ref="1024767070"/>
<reference key="NSHScroller" ref="677088452"/>
<reference key="NSContentView" ref="644916584"/>
<bytes key="NSScrollAmts">AAAAAAAAAABBoAAAQaAAAA</bytes>
</object>
</object>
<string key="NSFrameSize">{122, 274}</string>
<reference key="NSSuperview" ref="302568132"/>
<string key="NSReuseIdentifierKey">_NS:1082</string>
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomView" id="440594360">
<reference key="NSNextResponder" ref="302568132"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSSearchField" id="596740638">
<reference key="NSNextResponder" ref="440594360"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{371, 255}, {110, 19}}</string>
<reference key="NSSuperview" ref="440594360"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSearchFieldCell" key="NSCell" id="600721723">
<int key="NSCellFlags">343014976</int>
<int key="NSCellFlags2">268567552</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="596740638"/>
<bool key="NSDrawsBackground">YES</bool>
<int key="NSTextBezelStyle">1</int>
<reference key="NSBackgroundColor" ref="166084101"/>
<reference key="NSTextColor" ref="306532497"/>
<object class="NSButtonCell" key="NSSearchButtonCell">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">search</string>
<reference key="NSControlView" ref="596740638"/>
<string key="NSAction">_searchFieldSearch:</string>
<reference key="NSTarget" ref="600721723"/>
<int key="NSButtonFlags">138690815</int>
<int key="NSButtonFlags2">0</int>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
<object class="NSButtonCell" key="NSCancelButtonCell">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">clear</string>
<object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableDictionary">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>AXDescription</string>
<string>NSAccessibilityEncodedAttributesValueType</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>cancel</string>
<integer value="1"/>
</object>
</object>
</object>
<reference key="NSControlView" ref="596740638"/>
<string key="NSAction">_searchFieldCancel:</string>
<reference key="NSTarget" ref="600721723"/>
<int key="NSButtonFlags">138690815</int>
<int key="NSButtonFlags2">0</int>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
<string key="NSRecentsAutosaveName">VLC media player search</string>
<int key="NSMaximumRecents">10</int>
</object>
</object>
<object class="NSScrollView" id="915491793">
<reference key="NSNextResponder" ref="440594360"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSClipView" id="343242432">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSOutlineView" id="23448837">
<reference key="NSNextResponder" ref="343242432"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{479, 236}</string>
<reference key="NSSuperview" ref="343242432"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="823165105">
<reference key="NSNextResponder" ref="576307303"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{479, 17}</string>
<reference key="NSSuperview" ref="576307303"/>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="115465232">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="915491793"/>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="803225886">
<string key="NSIdentifier">status</string>
<double key="NSWidth">16</double>
<double key="NSMinWidth">16</double>
<double key="NSMaxWidth">3.4028229999999999e+38</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor" id="1018329413">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerColor</string>
<reference key="NSColor" ref="712893775"/>
</object>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSImageCell" key="NSDataCell" id="1059212168">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">33685504</int>
<reference key="NSSupport" ref="26"/>
<int key="NSAlign">0</int>
<int key="NSScale">0</int>
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="NSTableColumn" id="965199398">
<string key="NSIdentifier">name</string>
<double key="NSWidth">221</double>
<double key="NSMinWidth">16</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Name</string>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor" id="320837044">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
</object>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="80936197">
<int key="NSCellFlags">67239488</int>
<int key="NSCellFlags2">272761856</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="23448837"/>
<object class="NSColor" key="NSBackgroundColor" id="3414043">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<reference key="NSColor" ref="528917951"/>
</object>
<reference key="NSTextColor" ref="306532497"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="NSTableColumn" id="475692067">
<string key="NSIdentifier">artist</string>
<double key="NSWidth">170</double>
<double key="NSMinWidth">20</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Artist</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="320837044"/>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="306147575">
<int key="NSCellFlags">67239488</int>
<int key="NSCellFlags2">272761856</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="23448837"/>
<reference key="NSBackgroundColor" ref="3414043"/>
<reference key="NSTextColor" ref="306532497"/>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
<object class="NSTableColumn" id="207035020">
<string key="NSIdentifier">duration</string>
<double key="NSWidth">60</double>
<double key="NSMinWidth">60</double>
<double key="NSMaxWidth">60</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">134219776</int>
<string key="NSContents">Duration</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="1018329413"/>
<reference key="NSTextColor" ref="141148336"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="984895421">
<int key="NSCellFlags">67239488</int>
<int key="NSCellFlags2">272761856</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="23448837"/>
<reference key="NSBackgroundColor" ref="3414043"/>
<reference key="NSTextColor" ref="306532497"/>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="23448837"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="885475112"/>
<reference key="NSGridColor" ref="756174976"/>
<double key="NSRowHeight">15</double>
<int key="NSTvFlags">-71303168</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<string key="NSAutosaveName">10thaniversary-mainPlaylistView</string>
<int key="NSGridStyleMask">1</int>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
<reference key="NSOutlineViewOutlineTableColumnKey" ref="965199398"/>
</object>
</object>
<string key="NSFrame">{{1, 17}, {479, 236}}</string>
<reference key="NSSuperview" ref="915491793"/>
<reference key="NSNextKeyView" ref="23448837"/>
<reference key="NSDocView" ref="23448837"/>
<reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="573737110">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{560, 17}, {15, 18}}</string>
<reference key="NSSuperview" ref="915491793"/>
<reference key="NSTarget" ref="915491793"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.54545460000000001</double>
</object>
<object class="NSScroller" id="297523533">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 233}, {315.7578125, 15}}</string>
<reference key="NSSuperview" ref="915491793"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="915491793"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.97785350000000004</double>
</object>
<object class="NSClipView" id="576307303">
<reference key="NSNextResponder" ref="915491793"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="823165105"/>
</object>
<string key="NSFrame">{{1, 0}, {479, 17}}</string>
<reference key="NSSuperview" ref="915491793"/>
<reference key="NSNextKeyView" ref="823165105"/>
<reference key="NSDocView" ref="823165105"/>
<reference key="NSBGColor" ref="885475112"/>
<int key="NScvFlags">4</int>
</object>
<reference ref="115465232"/>
</object>
<string key="NSFrameSize">{481, 254}</string>
<reference key="NSSuperview" ref="440594360"/>
<reference key="NSNextKeyView" ref="343242432"/>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="573737110"/>
<reference key="NSHScroller" ref="297523533"/>
<reference key="NSContentView" ref="343242432"/>
<reference key="NSHeaderClipView" ref="576307303"/>
<reference key="NSCornerView" ref="115465232"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBiAAAQYgAAA</bytes>
</object>
<object class="NSImageView" id="447614808">
<reference key="NSNextResponder" ref="440594360"/>
<int key="NSvFlags">266</int>
<object class="NSMutableSet" key="NSDragTypes">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="set.sortedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>Apple PDF pasteboard type</string>
<string>Apple PICT pasteboard type</string>
<string>Apple PNG pasteboard type</string>
<string>NSFilenamesPboardType</string>
<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
<string>NeXT TIFF v4.0 pasteboard type</string>
</object>
</object>
<string key="NSFrame">{{0, 251}, {481, 23}}</string>
<reference key="NSSuperview" ref="440594360"/>
<string key="NSReuseIdentifierKey">_NS:2165</string>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="660513772">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">33554432</int>
<object class="NSCustomResource" key="NSContents">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">topbar_background</string>
</object>
<string key="NSCellIdentifier">_NS:2165</string>
<int key="NSAlign">0</int>
<int key="NSScale">1</int>
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
<bool key="NSEditable">YES</bool>
</object>
</object>
<string key="NSFrame">{{123, 0}, {481, 274}}</string>
<reference key="NSSuperview" ref="302568132"/>
<string key="NSReuseIdentifierKey">_NS:1084</string>
<string key="NSClassName">NSView</string>
</object>
</object>
<string key="NSFrame">{{0, 36}, {604, 274}}</string>
<reference key="NSSuperview" ref="429932428"/>
<string key="NSReuseIdentifierKey">_NS:1080</string>
<bool key="NSIsVertical">YES</bool>
<int key="NSDividerStyle">2</int>
<string key="NSAutosaveName">10thanniversary-splitview</string>
</object>
<object class="NSCustomView" id="515305233">
<reference key="NSNextResponder" ref="429932428"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{157, 214}, {163, 96}}</string>
<string key="NSFrame">{{401, 110}, {163, 96}}</string>
<reference key="NSSuperview" ref="429932428"/>
<string key="NSReuseIdentifierKey">_NS:1109</string>
<string key="NSClassName">NSView</string>
......@@ -2487,10 +2682,7 @@
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSColor" id="829159933">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDEAA</bytes>
</object>
<reference ref="829159933"/>
<integer value="1"/>
</object>
</object>
......@@ -6666,6 +6858,22 @@ LCAuLi4</string>
</object>
<int key="connectionID">4679</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_sidebar_view</string>
<reference key="source" ref="498338108"/>
<reference key="destination" ref="83182032"/>
</object>
<int key="connectionID">4690</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_split_view</string>
<reference key="source" ref="498338108"/>
<reference key="destination" ref="302568132"/>
</object>
<int key="connectionID">4691</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
......@@ -6717,17 +6925,16 @@ LCAuLi4</string>
<reference ref="474770834"/>
<reference ref="963106097"/>
<reference ref="533732100"/>
<reference ref="596740638"/>
<reference ref="915491793"/>
<reference ref="1041205852"/>
<reference ref="828712633"/>
<reference ref="354459361"/>
<reference ref="21901908"/>
<reference ref="704525034"/>
<reference ref="788281303"/>
<reference ref="515305233"/>
<reference ref="955174811"/>
<reference ref="664576649"/>
<reference ref="302568132"/>
<reference ref="515305233"/>
</object>
<reference key="parent" ref="498338108"/>
</object>
......@@ -8850,115 +9057,6 @@ LCAuLi4</string>
<reference key="object" ref="276068486"/>
<reference key="parent" ref="704525034"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2485</int>
<reference key="object" ref="596740638"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="600721723"/>
</object>
<reference key="parent" ref="429932428"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4315</int>
<reference key="object" ref="600721723"/>
<reference key="parent" ref="596740638"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4372</int>
<reference key="object" ref="915491793"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="23448837"/>
<reference ref="573737110"/>
<reference ref="297523533"/>
<reference ref="823165105"/>
</object>
<reference key="parent" ref="429932428"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4376</int>
<reference key="object" ref="23448837"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="803225886"/>
<reference ref="207035020"/>
<reference ref="475692067"/>
<reference ref="965199398"/>
</object>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4375</int>
<reference key="object" ref="573737110"/>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4374</int>
<reference key="object" ref="297523533"/>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4373</int>
<reference key="object" ref="823165105"/>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4380</int>
<reference key="object" ref="803225886"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1059212168"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4379</int>
<reference key="object" ref="207035020"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="984895421"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4378</int>
<reference key="object" ref="475692067"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="306147575"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4377</int>
<reference key="object" ref="965199398"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="80936197"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4384</int>
<reference key="object" ref="80936197"/>
<reference key="parent" ref="965199398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4383</int>
<reference key="object" ref="306147575"/>
<reference key="parent" ref="475692067"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4382</int>
<reference key="object" ref="984895421"/>
<reference key="parent" ref="207035020"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4381</int>
<reference key="object" ref="1059212168"/>
<reference key="parent" ref="803225886"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4432</int>
<reference key="object" ref="1041205852"/>
......@@ -9145,11 +9243,6 @@ LCAuLi4</string>
<reference key="object" ref="247978791"/>
<reference key="parent" ref="935681074"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4665</int>
<reference key="object" ref="515305233"/>
<reference key="parent" ref="429932428"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4671</int>
<reference key="object" ref="955174811"/>
......@@ -9169,6 +9262,208 @@ LCAuLi4</string>
<reference key="object" ref="664576649"/>
<reference key="parent" ref="429932428"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4680</int>
<reference key="object" ref="302568132"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="824340487"/>
<reference ref="440594360"/>
</object>
<reference key="parent" ref="429932428"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4681</int>
<reference key="object" ref="824340487"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="506374457"/>
</object>
<reference key="parent" ref="302568132"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4682</int>
<reference key="object" ref="440594360"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="915491793"/>
<reference ref="447614808"/>
<reference ref="596740638"/>
</object>
<reference key="parent" ref="302568132"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4372</int>
<reference key="object" ref="915491793"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="823165105"/>
<reference ref="297523533"/>
<reference ref="573737110"/>
<reference ref="23448837"/>
</object>
<reference key="parent" ref="440594360"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4373</int>
<reference key="object" ref="823165105"/>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4374</int>
<reference key="object" ref="297523533"/>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4375</int>
<reference key="object" ref="573737110"/>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4376</int>
<reference key="object" ref="23448837"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="965199398"/>
<reference ref="475692067"/>
<reference ref="207035020"/>
<reference ref="803225886"/>
</object>
<reference key="parent" ref="915491793"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4377</int>
<reference key="object" ref="965199398"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="80936197"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4378</int>
<reference key="object" ref="475692067"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="306147575"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4379</int>
<reference key="object" ref="207035020"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="984895421"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4380</int>
<reference key="object" ref="803225886"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1059212168"/>
</object>
<reference key="parent" ref="23448837"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4381</int>
<reference key="object" ref="1059212168"/>
<reference key="parent" ref="803225886"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4382</int>
<reference key="object" ref="984895421"/>
<reference key="parent" ref="207035020"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4383</int>
<reference key="object" ref="306147575"/>
<reference key="parent" ref="475692067"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4384</int>
<reference key="object" ref="80936197"/>
<reference key="parent" ref="965199398"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4665</int>
<reference key="object" ref="515305233"/>
<reference key="parent" ref="429932428"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2485</int>
<reference key="object" ref="596740638"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="600721723"/>
</object>
<reference key="parent" ref="440594360"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4315</int>
<reference key="object" ref="600721723"/>
<reference key="parent" ref="596740638"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4683</int>
<reference key="object" ref="506374457"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="83182032"/>
<reference ref="1024767070"/>
<reference ref="677088452"/>
</object>
<reference key="parent" ref="824340487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4684</int>
<reference key="object" ref="83182032"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="950807616"/>
</object>
<reference key="parent" ref="506374457"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4685</int>
<reference key="object" ref="1024767070"/>
<reference key="parent" ref="506374457"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4686</int>
<reference key="object" ref="677088452"/>
<reference key="parent" ref="506374457"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4687</int>
<reference key="object" ref="950807616"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="806672982"/>
</object>
<reference key="parent" ref="83182032"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4688</int>
<reference key="object" ref="806672982"/>
<reference key="parent" ref="950807616"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4692</int>
<reference key="object" ref="447614808"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="660513772"/>
</object>
<reference key="parent" ref="440594360"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4693</int>
<reference key="object" ref="660513772"/>
<reference key="parent" ref="447614808"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
......@@ -9824,10 +10119,33 @@ LCAuLi4</string>
<string>4622.IBViewBoundsToFrameTransform</string>
<string>4623.IBPluginDependency</string>
<string>4665.IBPluginDependency</string>
<string>4665.IBViewBoundsToFrameTransform</string>
<string>4671.IBPluginDependency</string>
<string>4671.IBViewBoundsToFrameTransform</string>
<string>4671.ImportedFromIB2</string>
<string>4672.IBPluginDependency</string>
<string>4680.IBPluginDependency</string>
<string>4680.IBViewBoundsToFrameTransform</string>
<string>4681.IBPluginDependency</string>
<string>4682.IBPluginDependency</string>
<string>4682.IBViewBoundsToFrameTransform</string>
<string>4683.IBPluginDependency</string>
<string>4683.IBViewBoundsToFrameTransform</string>
<string>4683.ImportedFromIB2</string>
<string>4684.CustomClassName</string>
<string>4684.IBPluginDependency</string>
<string>4684.ImportedFromIB2</string>
<string>4685.IBPluginDependency</string>
<string>4685.IBShouldRemoveOnLegacySave</string>
<string>4686.IBPluginDependency</string>
<string>4686.IBShouldRemoveOnLegacySave</string>
<string>4687.IBPluginDependency</string>
<string>4687.ImportedFromIB2</string>
<string>4688.IBPluginDependency</string>
<string>4688.IBShouldRemoveOnLegacySave</string>
<string>4692.IBPluginDependency</string>
<string>4692.IBViewBoundsToFrameTransform</string>
<string>4693.IBPluginDependency</string>
<string>5.IBPluginDependency</string>
<string>5.ImportedFromIB2</string>
<string>56.IBPluginDependency</string>
......@@ -10065,9 +10383,9 @@ LCAuLi4</string>
<string>{{473, 633}, {137, 103}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>{{330, 298}, {604, 310}}</string>
<string>{{330, 299}, {604, 310}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{330, 298}, {604, 310}}</string>
<string>{{330, 299}, {604, 310}}</string>
<boolean value="YES"/>
<boolean value="YES"/>
<boolean value="YES"/>
......@@ -10171,7 +10489,7 @@ LCAuLi4</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABD9wAAw5oAAA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABDuYAAw4eAAA</bytes>
</object>
<boolean value="YES"/>
<boolean value="YES"/>
......@@ -10459,7 +10777,7 @@ LCAuLi4</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAAC/gAAAw42AAA</bytes>
<bytes key="NSTransformStruct">P4AAAL+AAABCQAAAw2cAAA</bytes>
</object>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
......@@ -10576,6 +10894,9 @@ LCAuLi4</string>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUHwAABDHgAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAABDIAAAwbgAAA</bytes>
......@@ -10583,6 +10904,36 @@ LCAuLi4</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw5oAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUKuAAAAAAAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">P4AAAL+AAADCLAAAw4MLAA</bytes>
</object>
<integer value="1"/>
<string>PXSourceList</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<object class="NSAffineTransform">
<bytes key="NSTransformStruct">AUMCAABDZQAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES"/>
......@@ -10648,7 +10999,7 @@ LCAuLi4</string>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">4679</int>
<int key="maxID">4693</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
......@@ -12593,6 +12944,8 @@ LCAuLi4</string>
<string>o_repeat_btn</string>
<string>o_search_fld</string>
<string>o_shuffle_btn</string>
<string>o_sidebar_view</string>
<string>o_split_view</string>
<string>o_stop_btn</string>
<string>o_time_fld</string>
<string>o_time_sld</string>
......@@ -12630,6 +12983,8 @@ LCAuLi4</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
......@@ -12648,6 +13003,8 @@ LCAuLi4</string>
<string>o_repeat_btn</string>
<string>o_search_fld</string>
<string>o_shuffle_btn</string>
<string>o_sidebar_view</string>
<string>o_split_view</string>
<string>o_stop_btn</string>
<string>o_time_fld</string>
<string>o_time_sld</string>
......@@ -12710,6 +13067,14 @@ LCAuLi4</string>
<string key="name">o_shuffle_btn</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">o_sidebar_view</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">o_split_view</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">o_stop_btn</string>
<string key="candidateClassName">id</string>
......@@ -13231,6 +13596,7 @@ LCAuLi4</string>
<string>shuffle-pressed</string>
<string>stop</string>
<string>stop-pressed</string>
<string>topbar_background</string>
<string>volume-high</string>
<string>volume-low</string>
<string>volumetrack</string>
......@@ -13271,6 +13637,7 @@ LCAuLi4</string>
<string>{29, 23}</string>
<string>{29, 23}</string>
<string>{29, 23}</string>
<string>{128, 128}</string>
<string>{10, 9}</string>
<string>{8, 9}</string>
<string>{75, 4}</string>
......
......@@ -191,6 +191,7 @@
CC426FD71020D47100A32659 /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CC426FD01020D44F00A32659 /* Sparkle.framework */; };
CC5560281365CE4800D54038 /* AudioEffects.nib in Resources */ = {isa = PBXBuildFile; fileRef = CC5560261365CE4800D54038 /* AudioEffects.nib */; };
CC707EC8137474A50003010A /* SyncTracks.nib in Resources */ = {isa = PBXBuildFile; fileRef = CC707EC6137474A50003010A /* SyncTracks.nib */; };
CC78DA4413DE056700E9603C /* topbar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = CC78DA4313DE056700E9603C /* topbar_background.png */; };
CC8062641021F8790021EB9A /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CC8062631021F8790021EB9A /* dsa_pub.pem */; };
CC84FB2D130083BB00816D38 /* BGHUDAppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC84FB2C130083BB00816D38 /* BGHUDAppKit.framework */; };
CC84FB481300843200816D38 /* BGHUDAppKit.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CC84FB2C130083BB00816D38 /* BGHUDAppKit.framework */; };
......@@ -401,6 +402,10 @@
CC0433CC13B28C8C00D7D52E /* spref_cone_Interface_64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spref_cone_Interface_64.png; path = Resources/prefs/spref_cone_Interface_64.png; sourceTree = "<group>"; };
CC0433CD13B28C8C00D7D52E /* spref_cone_Subtitles_64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spref_cone_Subtitles_64.png; path = Resources/prefs/spref_cone_Subtitles_64.png; sourceTree = "<group>"; };
CC0433CE13B28C8C00D7D52E /* spref_cone_Video_64.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = spref_cone_Video_64.png; path = Resources/prefs/spref_cone_Video_64.png; sourceTree = "<group>"; };
CC0CD0DF13DE0EAE00B0D90D /* PXSourceList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PXSourceList.h; path = ../../../modules/gui/macosx/PXSourceList.h; sourceTree = "<group>"; };
CC0CD0E013DE0EAE00B0D90D /* PXSourceList.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PXSourceList.m; path = ../../../modules/gui/macosx/PXSourceList.m; sourceTree = "<group>"; };
CC0CD0E113DE0EAE00B0D90D /* PXSourceListDataSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PXSourceListDataSource.h; path = ../../../modules/gui/macosx/PXSourceListDataSource.h; sourceTree = "<group>"; };
CC0CD0E213DE0EAE00B0D90D /* PXSourceListDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PXSourceListDelegate.h; path = ../../../modules/gui/macosx/PXSourceListDelegate.h; sourceTree = "<group>"; };
CC0FB34B0F8BED1100F057F7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = Resources/English.lproj/CoreDialogs.nib; sourceTree = "<group>"; };
CC1941240B9C1F8400635F6B /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; };
CC1C41D00D9BAD7F002728FA /* noart.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = noart.png; path = Resources/noart.png; sourceTree = "<group>"; };
......@@ -432,10 +437,6 @@
CC5560231365CDC700D54038 /* AudioEffects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioEffects.h; path = ../../../modules/gui/macosx/AudioEffects.h; sourceTree = "<group>"; };
CC5560241365CDC800D54038 /* AudioEffects.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = AudioEffects.m; path = ../../../modules/gui/macosx/AudioEffects.m; sourceTree = "<group>"; };
CC5560271365CE4800D54038 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = Resources/English.lproj/AudioEffects.nib; sourceTree = "<group>"; };
CC62B9080FC5DB9D0077BB8C /* sidebarview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sidebarview.h; path = ../../../modules/gui/macosx/sidebarview.h; sourceTree = SOURCE_ROOT; };
CC62B9090FC5DB9D0077BB8C /* sidebarview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = sidebarview.m; path = ../../../modules/gui/macosx/sidebarview.m; sourceTree = SOURCE_ROOT; };
CC62B90A0FC5DB9D0077BB8C /* sidestatusview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sidestatusview.h; path = ../../../modules/gui/macosx/sidestatusview.h; sourceTree = SOURCE_ROOT; };
CC62B90B0FC5DB9D0077BB8C /* sidestatusview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = sidestatusview.m; path = ../../../modules/gui/macosx/sidestatusview.m; sourceTree = SOURCE_ROOT; };
CC6C01A90DDF3E9200C7D754 /* intf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = intf.h; path = ../../../modules/gui/minimal_macosx/intf.h; sourceTree = SOURCE_ROOT; };
CC6C01AA0DDF3E9200C7D754 /* intf.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = intf.m; path = ../../../modules/gui/minimal_macosx/intf.m; sourceTree = SOURCE_ROOT; };
CC6C01AB0DDF3E9200C7D754 /* macosx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = macosx.c; path = ../../../modules/gui/minimal_macosx/macosx.c; sourceTree = SOURCE_ROOT; };
......@@ -458,6 +459,7 @@
CC707EC7137474A50003010A /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = Resources/English.lproj/SyncTracks.nib; sourceTree = "<group>"; };
CC772DAC10E621C100675C9B /* VLCProgressPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCProgressPanel.h; path = ../../../modules/gui/macosx_dialog_provider/VLCProgressPanel.h; sourceTree = SOURCE_ROOT; };
CC772DAD10E621C100675C9B /* VLCProgressPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCProgressPanel.m; path = ../../../modules/gui/macosx_dialog_provider/VLCProgressPanel.m; sourceTree = SOURCE_ROOT; };
CC78DA4313DE056700E9603C /* topbar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = topbar_background.png; path = Resources/mainwindow/topbar_background.png; sourceTree = "<group>"; };
CC8062631021F8790021EB9A /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = Resources/dsa_pub.pem; sourceTree = "<group>"; };
CC84FB2C130083BB00816D38 /* BGHUDAppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BGHUDAppKit.framework; path = ../../contrib/BGHUDAppKit/BGHUDAppKit.framework; sourceTree = SOURCE_ROOT; };
CC962E2C0CC7992800A56695 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
......@@ -601,8 +603,6 @@
DC769AB7085DF0DB001A838D /* wizard.m */,
DCE7BD0708A5724D007B10AE /* bookmarks.h */,
DCE7BD0608A5724D007B10AE /* bookmarks.m */,
CC6D8D9C0A878DED006F2BBE /* AppleRemote.h */,
CC6D8D9D0A878DED006F2BBE /* AppleRemote.m */,
CCC593780AB4A9FB0004FF52 /* embeddedwindow.h */,
CCC593790AB4A9FB0004FF52 /* embeddedwindow.m */,
2AEF857609A5FEC900130822 /* fspanel.h */,
......@@ -611,20 +611,13 @@
CC6EDD500B9CA2140096068A /* eyetv.m */,
CCB24D5E0D54BBAE004D780C /* simple_prefs.h */,
CCB24D5D0D54BBAE004D780C /* simple_prefs.m */,
CC62B9080FC5DB9D0077BB8C /* sidebarview.h */,
CC62B9090FC5DB9D0077BB8C /* sidebarview.m */,
CC62B90A0FC5DB9D0077BB8C /* sidestatusview.h */,
CC62B90B0FC5DB9D0077BB8C /* sidestatusview.m */,
CCF0777913659A8000AF19FD /* SPInvocationGrabbing.h */,
CCF0777A13659A8000AF19FD /* SPInvocationGrabbing.m */,
CCF0777B13659A8000AF19FD /* SPMediaKeyTap.h */,
CCF0777C13659A8000AF19FD /* SPMediaKeyTap.m */,
CC5560231365CDC700D54038 /* AudioEffects.h */,
CC5560241365CDC800D54038 /* AudioEffects.m */,
CC707EC3137464CD0003010A /* TrackSynchronization.h */,
CC707EC4137464CD0003010A /* TrackSynchronization.m */,
CCCE366D13817E4500694F2A /* VideoEffects.h */,
CCCE366E13817E4500694F2A /* VideoEffects.m */,
CC0CD0E513DE0FC600B0D90D /* Imported Code */,
);
name = Classes;
sourceTree = "<group>";
......@@ -692,6 +685,7 @@
CC0430EE13B2461A00D7D52E /* 10th anniversary ui */ = {
isa = PBXGroup;
children = (
CC78DA4313DE056700E9603C /* topbar_background.png */,
CC0432C213B2479E00D7D52E /* bright variant */,
CC04326513B246E600D7D52E /* dark variant */,
);
......@@ -819,6 +813,28 @@
name = "simple prefs (taken from qt4)";
sourceTree = "<group>";
};
CC0CD0E413DE0EB500B0D90D /* PXSourceList */ = {
isa = PBXGroup;
children = (
CC0CD0DF13DE0EAE00B0D90D /* PXSourceList.h */,
CC0CD0E013DE0EAE00B0D90D /* PXSourceList.m */,
CC0CD0E113DE0EAE00B0D90D /* PXSourceListDataSource.h */,
CC0CD0E213DE0EAE00B0D90D /* PXSourceListDelegate.h */,
);
name = PXSourceList;
sourceTree = "<group>";
};
CC0CD0E513DE0FC600B0D90D /* Imported Code */ = {
isa = PBXGroup;
children = (
CC6D8D9C0A878DED006F2BBE /* AppleRemote.h */,
CC6D8D9D0A878DED006F2BBE /* AppleRemote.m */,
CC0CD0E413DE0EB500B0D90D /* PXSourceList */,
CC78DA4A13DE0E0100E9603C /* SPMediaKeyTap */,
);
name = "Imported Code";
sourceTree = "<group>";
};
CC33C26C0D257958008C4683 /* embedded (to be removed) */ = {
isa = PBXGroup;
children = (
......@@ -859,6 +875,17 @@
name = "Minimal Mac OS X Classes";
sourceTree = "<group>";
};
CC78DA4A13DE0E0100E9603C /* SPMediaKeyTap */ = {
isa = PBXGroup;
children = (
CCF0777913659A8000AF19FD /* SPInvocationGrabbing.h */,
CCF0777A13659A8000AF19FD /* SPInvocationGrabbing.m */,
CCF0777B13659A8000AF19FD /* SPMediaKeyTap.h */,
CCF0777C13659A8000AF19FD /* SPMediaKeyTap.m */,
);
name = SPMediaKeyTap;
sourceTree = "<group>";
};
CCC8957F0D9A8A61005AE59C /* OSX-specific source files */ = {
isa = PBXGroup;
children = (
......@@ -1174,6 +1201,7 @@
CC0433D413B28C8C00D7D52E /* spref_cone_Video_64.png in Resources */,
CC9B43AF13B29C79000205AE /* bottom-background.png in Resources */,
CC9B43B113B29FCF000205AE /* bottom-background_dark.png in Resources */,
CC78DA4413DE056700E9603C /* topbar_background.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......
......@@ -52,6 +52,8 @@
// TODO Playlist table, additional ui stuff at the top of the window
IBOutlet id o_playlist_table;
IBOutlet id o_video_view;
IBOutlet id o_split_view;
IBOutlet id o_sidebar_view;
BOOL b_dark_interface;
BOOL b_video_playback_enabled;
......
......@@ -69,7 +69,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
if( [[NSWindow class] instancesRespondToSelector:@selector(setContentBorderThickness:forEdge:)] )
{
b_useTextured = NO;
styleMask ^= NSTexturedBackgroundWindowMask;
// styleMask ^= NSTexturedBackgroundWindowMask;
}
self = [super initWithContentRect:contentRect styleMask:styleMask //& ~NSTitledWindowMask
......@@ -208,7 +208,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
[o_play_btn setImage: o_play_img];
[o_play_btn setAlternateImage: o_play_pressed_img];
[o_video_view setFrame: [o_playlist_table frame]];
[o_video_view setFrame: [o_split_view frame]];
[self setDelegate: self];
[self setExcludedFromWindowsMenu: YES];
// Set that here as IB seems to be buggy
......@@ -219,6 +219,21 @@ static VLCMainWindow *_o_sharedInstance = nil;
[self updateVolumeSlider];
}
- (void)becomeMainWindow
{
[o_sidebar_view setBackgroundColor: [NSColor colorWithCalibratedRed:0.820
green:0.843
blue:0.886
alpha:1.0]];
[super becomeMainWindow];
}
- (void)resignMainWindow
{
[o_sidebar_view setBackgroundColor: [NSColor colorWithCalibratedWhite:0.91 alpha:1.0]];
[super resignMainWindow];
}
#pragma mark -
#pragma mark Button Actions
......
......@@ -55,10 +55,10 @@ SOURCES_macosx = \
bookmarks.m \
embeddedwindow.h \
embeddedwindow.m \
sidebarview.h \
sidebarview.m \
sidestatusview.h \
sidestatusview.m \
PXSourceList.h \
PXSourceList.m \
PXSourceListDataSource.h \
PXSourceListDelegate.h \
fspanel.m \
fspanel.h \
eyetv.h \
......
//
// PXSourceList.h
// PXSourceList
//
// Created by Alex Rozanski on 05/09/2009.
// Copyright 2009-10 Alex Rozanski http://perspx.com
//
#import <Cocoa/Cocoa.h>
#import "PXSourceListDelegate.h"
#import "PXSourceListDataSource.h"
#ifndef MAC_OS_X_VERSION_10_6
@protocol NSOutlineViewDelegate <NSObject> @end
@protocol NSOutlineViewDataSource <NSObject> @end
#endif
@interface PXSourceList: NSOutlineView <NSOutlineViewDelegate, NSOutlineViewDataSource>
{
id <PXSourceListDelegate> _secondaryDelegate; //Used to store the publicly visible delegate
id <PXSourceListDataSource> _secondaryDataSource; //Used to store the publicly visible data source
NSSize _iconSize; //The size of icons in the Source List. Defaults to 16x16
}
@property NSSize iconSize;
@property (assign) id<PXSourceListDataSource> dataSource;
@property (assign) id<PXSourceListDelegate> delegate;
- (NSUInteger)numberOfGroups; //Returns the number of groups in the Source List
- (BOOL)isGroupItem:(id)item; //Returns whether `item` is a group
- (BOOL)isGroupAlwaysExpanded:(id)group; //Returns whether `group` is displayed as always expanded
- (BOOL)itemHasBadge:(id)item; //Returns whether `item` has a badge
- (NSInteger)badgeValueForItem:(id)item; //Returns the badge value for `item`
@end
//
// PXSourceList.m
// PXSourceList
//
// Created by Alex Rozanski on 05/09/2009.
// Copyright 2009-10 Alex Rozanski http://perspx.com
//
// GC-enabled code revised by Stefan Vogt http://byteproject.net
//
#import "PXSourceList.h"
//Layout constants
#define MIN_BADGE_WIDTH 22.0 //The minimum badge width for each item (default 22.0)
#define BADGE_HEIGHT 14.0 //The badge height for each item (default 14.0)
#define BADGE_MARGIN 5.0 //The spacing between the badge and the cell for that row
#define ROW_RIGHT_MARGIN 5.0 //The spacing between the right edge of the badge and the edge of the table column
#define ICON_SPACING 2.0 //The spacing between the icon and it's adjacent cell
#define DISCLOSURE_TRIANGLE_SPACE 18.0 //The indentation reserved for disclosure triangles for non-group items
//Drawing constants
#define BADGE_BACKGROUND_COLOR [NSColor colorWithCalibratedRed:(152/255.0) green:(168/255.0) blue:(202/255.0) alpha:1]
#define BADGE_HIDDEN_BACKGROUND_COLOR [NSColor colorWithDeviceWhite:(180/255.0) alpha:1]
#define BADGE_SELECTED_TEXT_COLOR [NSColor keyboardFocusIndicatorColor]
#define BADGE_SELECTED_UNFOCUSED_TEXT_COLOR [NSColor colorWithCalibratedRed:(153/255.0) green:(169/255.0) blue:(203/255.0) alpha:1]
#define BADGE_SELECTED_HIDDEN_TEXT_COLOR [NSColor colorWithCalibratedWhite:(170/255.0) alpha:1]
#define BADGE_FONT [NSFont boldSystemFontOfSize:11]
//Delegate notification constants
NSString * const PXSLSelectionIsChangingNotification = @"PXSourceListSelectionIsChanging";
NSString * const PXSLSelectionDidChangeNotification = @"PXSourceListSelectionDidChange";
NSString * const PXSLItemWillExpandNotification = @"PXSourceListItemWillExpand";
NSString * const PXSLItemDidExpandNotification = @"PXSourceListItemDidExpand";
NSString * const PXSLItemWillCollapseNotification = @"PXSourceListItemWillCollapse";
NSString * const PXSLItemDidCollapseNotification = @"PXSourceListItemDidCollapse";
NSString * const PXSLDeleteKeyPressedOnRowsNotification = @"PXSourceListDeleteKeyPressedOnRows";
#pragma mark -
@interface PXSourceList ()
- (NSSize)sizeOfBadgeAtRow:(NSInteger)rowIndex;
- (void)drawBadgeForRow:(NSInteger)rowIndex inRect:(NSRect)badgeFrame;
- (void)registerDelegateToReceiveNotification:(NSString*)notification withSelector:(SEL)selector;
@end
#pragma mark -
@implementation PXSourceList
@synthesize iconSize = _iconSize;
@dynamic dataSource;
@dynamic delegate;
#pragma mark Init/Dealloc/Finalize
- (id)initWithCoder:(NSCoder*)decoder
{
if(self=[super initWithCoder:decoder])
{
[self setDelegate:(id<PXSourceListDelegate>)[super delegate]];
[super setDelegate:self];
[self setDataSource:(id<PXSourceListDataSource>)[super dataSource]];
[super setDataSource:self];
_iconSize = NSMakeSize(16,16);
}
return self;
}
- (void)dealloc
{
//Remove ourselves as the delegate and data source to be safe
[super setDataSource:nil];
[super setDelegate:nil];
//Unregister the delegate from receiving notifications
[[NSNotificationCenter defaultCenter] removeObserver:_secondaryDelegate name:nil object:self];
[super dealloc];
}
- (void)finalize
{
//Remove ourselves as the delegate and data source to be safe
[super setDataSource:nil];
[super setDelegate:nil];
//Unregister the delegate from receiving notifications
[[NSNotificationCenter defaultCenter] removeObserver:_secondaryDelegate name:nil object:self];
[super finalize];
}
#pragma mark -
#pragma mark Custom Accessors
- (void)setDelegate:(id<PXSourceListDelegate>)aDelegate
{
//Unregister the old delegate from receiving notifications
[[NSNotificationCenter defaultCenter] removeObserver:_secondaryDelegate name:nil object:self];
_secondaryDelegate = aDelegate;
//Register the new delegate to receive notifications
[self registerDelegateToReceiveNotification:PXSLSelectionIsChangingNotification
withSelector:@selector(sourceListSelectionIsChanging:)];
[self registerDelegateToReceiveNotification:PXSLSelectionDidChangeNotification
withSelector:@selector(sourceListSelectionDidChange:)];
[self registerDelegateToReceiveNotification:PXSLItemWillExpandNotification
withSelector:@selector(sourceListItemWillExpand:)];
[self registerDelegateToReceiveNotification:PXSLItemDidExpandNotification
withSelector:@selector(sourceListItemDidExpand:)];
[self registerDelegateToReceiveNotification:PXSLItemWillCollapseNotification
withSelector:@selector(sourceListItemWillCollapse:)];
[self registerDelegateToReceiveNotification:PXSLItemDidCollapseNotification
withSelector:@selector(sourceListItemDidCollapse:)];
[self registerDelegateToReceiveNotification:PXSLDeleteKeyPressedOnRowsNotification
withSelector:@selector(sourceListDeleteKeyPressedOnRows:)];
}
- (void)setDataSource:(id<PXSourceListDataSource>)aDataSource
{
_secondaryDataSource = aDataSource;
[self reloadData];
}
- (void)setIconSize:(NSSize)newIconSize
{
_iconSize = newIconSize;
CGFloat rowHeight = [self rowHeight];
//Make sure icon height does not exceed row height; if so constrain, keeping width and height in proportion
if(_iconSize.height>rowHeight)
{
_iconSize.width = _iconSize.width * (rowHeight/_iconSize.height);
_iconSize.height = rowHeight;
}
}
#pragma mark -
#pragma mark Data Management
- (void)reloadData
{
[super reloadData];
//Expand items that are displayed as always expanded
if([_secondaryDataSource conformsToProtocol:@protocol(PXSourceListDataSource)] &&
[_secondaryDelegate respondsToSelector:@selector(sourceList:isGroupAlwaysExpanded:)])
{
for(NSUInteger i=0;i<[self numberOfGroups];i++)
{
id item = [_secondaryDataSource sourceList:self child:i ofItem:nil];
if([self isGroupAlwaysExpanded:item]) {
[self expandItem:item expandChildren:NO];
}
}
}
//If there are selected rows and the item hierarchy has changed, make sure a Group row isn't
//selected
if([self numberOfSelectedRows]>0) {
NSIndexSet *selectedIndexes = [self selectedRowIndexes];
NSUInteger firstSelectedRow = [selectedIndexes firstIndex];
//Is a group item selected?
if([self isGroupItem:[self itemAtRow:firstSelectedRow]]) {
//Work backwards to find the first non-group row
BOOL foundRow = NO;
for(NSUInteger i=firstSelectedRow;i>0;i--)
{
if(![self isGroupItem:[self itemAtRow:i]]) {
[self selectRowIndexes:[NSIndexSet indexSetWithIndex:i] byExtendingSelection:NO];
foundRow = YES;
break;
}
}
//If there is no non-group row preceding the currently selected group item, remove the selection
//from the Source List
if(!foundRow) {
[self deselectAll:self];
}
}
}
else if(![self allowsEmptySelection]&&[self numberOfSelectedRows]==0)
{
//Select the first non-group row if no rows are selected, and empty selection is disallowed
for(NSUInteger i=0;i<[self numberOfRows];i++)
{
if(![self isGroupItem:[self itemAtRow:i]]) {
[self selectRowIndexes:[NSIndexSet indexSetWithIndex:i] byExtendingSelection:NO];
break;
}
}
}
}
- (NSUInteger)numberOfGroups
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:numberOfChildrenOfItem:)]) {
return [_secondaryDataSource sourceList:self numberOfChildrenOfItem:nil];
}
return 0;
}
- (BOOL)isGroupItem:(id)item
{
//Groups are defined as root items (at level 0)
return 0==[self levelForItem:item];
}
- (BOOL)isGroupAlwaysExpanded:(id)group
{
//Make sure that the item IS a group to prevent unwanted queries sent to the data source
if([self isGroupItem:group]) {
//Query the data source
if([_secondaryDelegate respondsToSelector:@selector(sourceList:isGroupAlwaysExpanded:)]) {
return [_secondaryDelegate sourceList:self isGroupAlwaysExpanded:group];
}
}
return NO;
}
- (BOOL)itemHasBadge:(id)item
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:itemHasBadge:)]) {
return [_secondaryDataSource sourceList:self itemHasBadge:item];
}
return NO;
}
- (NSInteger)badgeValueForItem:(id)item
{
//Make sure that the item has a badge
if(![self itemHasBadge:item]) {
return NSNotFound;
}
if([_secondaryDataSource respondsToSelector:@selector(sourceList:badgeValueForItem:)]) {
return [_secondaryDataSource sourceList:self badgeValueForItem:item];
}
return NSNotFound;
}
#pragma mark -
#pragma mark Selection Handling
- (void)selectRowIndexes:(NSIndexSet*)indexes byExtendingSelection:(BOOL)extend
{
NSUInteger numberOfIndexes = [indexes count];
//Prevent empty selection if we don't want it
if(![self allowsEmptySelection]&&0==numberOfIndexes) {
return;
}
//Would use blocks but we're also targeting 10.5...
//Get the selected indexes
NSUInteger *selectedIndexes = malloc(sizeof(NSUInteger)*numberOfIndexes);
[indexes getIndexes:selectedIndexes maxCount:numberOfIndexes inIndexRange:nil];
//Loop through the indexes and only add non-group row indexes
//Allows selection across groups without selecting the group rows
NSMutableIndexSet *newSelectionIndexes = [NSMutableIndexSet indexSet];
for(NSInteger i=0;i<numberOfIndexes;i++)
{
if(![self isGroupItem:[self itemAtRow:selectedIndexes[i]]]) {
[newSelectionIndexes addIndex:selectedIndexes[i]];
}
}
//If there are any non-group rows selected
if([newSelectionIndexes count]>0) {
[super selectRowIndexes:newSelectionIndexes byExtendingSelection:extend];
}
//C memory management... *sigh*
free(selectedIndexes);
}
#pragma mark -
#pragma mark Layout
- (NSRect)frameOfOutlineCellAtRow:(NSInteger)row
{
//Return a zero-rect if the item is always expanded (a disclosure triangle will not be drawn)
if([self isGroupAlwaysExpanded:[self itemAtRow:row]]) {
return NSZeroRect;
}
return [super frameOfOutlineCellAtRow:row];
}
- (NSRect)frameOfCellAtColumn:(NSInteger)column row:(NSInteger)row
{
id item = [self itemAtRow:row];
NSCell *cell = [self preparedCellAtColumn:column row:row];
NSSize cellSize = [cell cellSize];
if (!([cell type] == NSImageCellType) && !([cell type] == NSTextCellType))
cellSize = [cell cellSizeForBounds:[super frameOfCellAtColumn:column row:row]];
NSRect cellFrame = [super frameOfCellAtColumn:column row:row];
NSRect rowRect = [self rectOfRow:row];
if([self isGroupItem:item])
{
CGFloat minX = NSMinX(cellFrame);
//Set the origin x-coord; if there are no children of the group at current, there will still be a
//margin to the left of the cell (in cellFrame), which we don't want
if([self isGroupAlwaysExpanded:[self itemAtRow:row]]) {
minX = 7;
}
return NSMakeRect(minX,
NSMidY(cellFrame)-(cellSize.height/2.0),
NSWidth(rowRect)-minX,
cellSize.height);
}
else
{
CGFloat leftIndent = [self levelForRow:row]*[self indentationPerLevel]+DISCLOSURE_TRIANGLE_SPACE;
//Calculate space left for a badge if need be
CGFloat rightIndent = [self sizeOfBadgeAtRow:row].width+ROW_RIGHT_MARGIN;
//Allow space for an icon if need be
if(![self isGroupItem:item]&&[_secondaryDataSource respondsToSelector:@selector(sourceList:itemHasIcon:)])
{
if([_secondaryDataSource sourceList:self itemHasIcon:item]) {
leftIndent += [self iconSize].width+(ICON_SPACING*2);
}
}
return NSMakeRect(leftIndent,
NSMidY(rowRect)-(cellSize.height/2.0),
NSWidth(rowRect)-rightIndent-leftIndent,
cellSize.height);
}
}
//This method calculates and returns the size of the badge for the row index passed to the method. If the
//row for the row index passed to the method does not have a badge, then NSZeroSize is returned.
- (NSSize)sizeOfBadgeAtRow:(NSInteger)rowIndex
{
id rowItem = [self itemAtRow:rowIndex];
//Make sure that the item has a badge
if(![self itemHasBadge:rowItem]) {
return NSZeroSize;
}
NSAttributedString *badgeAttrString = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d", [self badgeValueForItem:rowItem]]
attributes:[NSDictionary dictionaryWithObjectsAndKeys:BADGE_FONT, NSFontAttributeName, nil]];
NSSize stringSize = [badgeAttrString size];
//Calculate the width needed to display the text or the minimum width if it's smaller
CGFloat width = stringSize.width+(2*BADGE_MARGIN);
if(width<MIN_BADGE_WIDTH) {
width = MIN_BADGE_WIDTH;
}
[badgeAttrString release];
return NSMakeSize(width, BADGE_HEIGHT);
}
#pragma mark -
#pragma mark Drawing
- (void)drawRow:(NSInteger)rowIndex clipRect:(NSRect)clipRect
{
[super drawRow:rowIndex clipRect:clipRect];
id item = [self itemAtRow:rowIndex];
//Draw an icon if the item has one
if(![self isGroupItem:item]&&[_secondaryDataSource respondsToSelector:@selector(sourceList:itemHasIcon:)])
{
if([_secondaryDataSource sourceList:self itemHasIcon:item])
{
NSRect cellFrame = [self frameOfCellAtColumn:0 row:rowIndex];
NSSize iconSize = [self iconSize];
NSRect iconRect = NSMakeRect(NSMinX(cellFrame)-iconSize.width-ICON_SPACING,
NSMidY(cellFrame)-(iconSize.width/2.0f),
iconSize.width,
iconSize.height);
if([_secondaryDataSource respondsToSelector:@selector(sourceList:iconForItem:)])
{
NSImage *icon = [_secondaryDataSource sourceList:self iconForItem:item];
if(icon!=nil)
{
NSSize actualIconSize = [icon size];
//If the icon is *smaller* than the size retrieved from the -iconSize property, make sure we
//reduce the size of the rectangle to draw the icon in, so that it is not stretched.
if((actualIconSize.width<iconSize.width)||(actualIconSize.height<iconSize.height))
{
iconRect = NSMakeRect(NSMidX(iconRect)-(actualIconSize.width/2.0f),
NSMidY(iconRect)-(actualIconSize.height/2.0f),
actualIconSize.width,
actualIconSize.height);
}
//Use 10.6 NSImage drawing if we can
if([icon respondsToSelector:@selector(drawInRect:fromRect:operation:fraction:respectFlipped:hints:)]) {
[icon drawInRect:iconRect
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1
respectFlipped:YES hints:nil];
}
else {
[icon setFlipped:[self isFlipped]];
[icon drawInRect:iconRect
fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1];
}
}
}
}
}
//Draw the badge if the item has one
if([self itemHasBadge:item])
{
NSRect rowRect = [self rectOfRow:rowIndex];
NSSize badgeSize = [self sizeOfBadgeAtRow:rowIndex];
NSRect badgeFrame = NSMakeRect(NSMaxX(rowRect)-badgeSize.width-ROW_RIGHT_MARGIN,
NSMidY(rowRect)-(badgeSize.height/2.0),
badgeSize.width,
badgeSize.height);
[self drawBadgeForRow:rowIndex inRect:badgeFrame];
}
}
- (void)drawBadgeForRow:(NSInteger)rowIndex inRect:(NSRect)badgeFrame
{
id rowItem = [self itemAtRow:rowIndex];
NSBezierPath *badgePath = [NSBezierPath bezierPathWithRoundedRect:badgeFrame
xRadius:(BADGE_HEIGHT/2.0)
yRadius:(BADGE_HEIGHT/2.0)];
//Get window and control state to determine colours used
BOOL isVisible = [[NSApp mainWindow] isVisible];
BOOL isFocused = [[[self window] firstResponder] isEqual:self];
NSInteger rowBeingEdited = [self editedRow];
//Set the attributes based on the row state
NSDictionary *attributes;
NSColor *backgroundColor;
if([[self selectedRowIndexes] containsIndex:rowIndex])
{
backgroundColor = [NSColor whiteColor];
//Set the text color based on window and control state
NSColor *textColor;
if(isVisible && (isFocused || rowBeingEdited==rowIndex)) {
textColor = BADGE_SELECTED_TEXT_COLOR;
}
else if(isVisible && !isFocused) {
textColor = BADGE_SELECTED_UNFOCUSED_TEXT_COLOR;
}
else {
textColor = BADGE_SELECTED_HIDDEN_TEXT_COLOR;
}
attributes = [[NSDictionary alloc] initWithObjectsAndKeys:BADGE_FONT, NSFontAttributeName,
textColor, NSForegroundColorAttributeName, nil];
}
else
{
//Set the text colour based on window and control state
NSColor *badgeColor = [NSColor whiteColor];
if(isVisible) {
//If the data source returns a custom colour..
if([_secondaryDataSource respondsToSelector:@selector(sourceList:badgeBackgroundColorForItem:)]) {
backgroundColor = [_secondaryDataSource sourceList:self badgeBackgroundColorForItem:rowItem];
if(backgroundColor==nil)
backgroundColor = BADGE_BACKGROUND_COLOR;
}
else { //Otherwise use the default (purple-blue colour)
backgroundColor = BADGE_BACKGROUND_COLOR;
}
//If the delegate wants a custom badge text colour..
if([_secondaryDataSource respondsToSelector:@selector(sourceList:badgeTextColorForItem:)]) {
badgeColor = [_secondaryDataSource sourceList:self badgeTextColorForItem:rowItem];
if(badgeColor==nil)
badgeColor = [NSColor whiteColor];
}
}
else { //Gray colour
backgroundColor = BADGE_HIDDEN_BACKGROUND_COLOR;
}
attributes = [[NSDictionary alloc] initWithObjectsAndKeys:BADGE_FONT, NSFontAttributeName,
badgeColor, NSForegroundColorAttributeName, nil];
}
[backgroundColor set];
[badgePath fill];
//Draw the badge text
NSAttributedString *badgeAttrString = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d", [self badgeValueForItem:rowItem]]
attributes:attributes];
NSSize stringSize = [badgeAttrString size];
NSPoint badgeTextPoint = NSMakePoint(NSMidX(badgeFrame)-(stringSize.width/2.0), //Center in the badge frame
NSMidY(badgeFrame)-(stringSize.height/2.0)); //Center in the badge frame
[badgeAttrString drawAtPoint:badgeTextPoint];
[attributes release];
[badgeAttrString release];
}
#pragma mark -
#pragma mark Keyboard Handling
- (void)keyDown:(NSEvent *)theEvent
{
NSIndexSet *selectedIndexes = [self selectedRowIndexes];
NSString *keyCharacters = [theEvent characters];
//Make sure we have a selection
if([selectedIndexes count]>0)
{
if([keyCharacters length]>0)
{
unichar firstKey = [keyCharacters characterAtIndex:0];
if(firstKey==NSUpArrowFunctionKey||firstKey==NSDownArrowFunctionKey)
{
//Handle keyboard navigation across groups
if([selectedIndexes count]==1&&!([theEvent modifierFlags] & NSShiftKeyMask))
{
int delta = firstKey==NSDownArrowFunctionKey?1:-1; //Search "backwards" if up arrow, "forwards" if down
NSInteger newRow = [selectedIndexes firstIndex];
//Keep incrementing/decrementing the row until a non-header row is reached
do {
newRow+=delta;
//If out of bounds of the number of rows..
if(newRow<0||newRow==[self numberOfRows])
break;
} while([self isGroupItem:[self itemAtRow:newRow]]);
[self selectRowIndexes:[NSIndexSet indexSetWithIndex:newRow] byExtendingSelection:NO];
return;
}
}
else if(firstKey==NSDeleteCharacter||firstKey==NSBackspaceCharacter)
{
//Post the notification
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLDeleteKeyPressedOnRowsNotification
object:self
userInfo:[NSDictionary dictionaryWithObject:selectedIndexes forKey:@"rows"]];
return;
}
}
}
//We don't care about it
[super keyDown:theEvent];
}
#pragma mark -
#pragma mark Menu Handling
- (NSMenu *)menuForEvent:(NSEvent *)theEvent
{
NSMenu * m = nil;
if([_secondaryDelegate respondsToSelector:@selector(sourceList:menuForEvent:item:)]) {
NSPoint clickPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
NSInteger row = [self rowAtPoint:clickPoint];
id clickedItem = [self itemAtRow:row];
m = [_secondaryDelegate sourceList:self menuForEvent:theEvent item:clickedItem];
}
if (m == nil) {
m = [super menuForEvent:theEvent];
}
return m;
}
#pragma mark -
#pragma mark NSOutlineView Data Source methods
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
{
if([_secondaryDataSource conformsToProtocol:@protocol(PXSourceListDataSource)]) {
return [_secondaryDataSource sourceList:self numberOfChildrenOfItem:item];
}
return 0;
}
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
{
if([_secondaryDataSource conformsToProtocol:@protocol(PXSourceListDataSource)]) {
return [_secondaryDataSource sourceList:self child:index ofItem:item];
}
return nil;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
{
if([_secondaryDataSource conformsToProtocol:@protocol(PXSourceListDataSource)]) {
return [_secondaryDataSource sourceList:self isItemExpandable:item];
}
return NO;
}
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
if([_secondaryDataSource conformsToProtocol:@protocol(PXSourceListDataSource)]) {
return [_secondaryDataSource sourceList:self objectValueForItem:item];
}
return nil;
}
- (void)outlineView:(NSOutlineView *)outlineView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
{
if([_secondaryDataSource conformsToProtocol:@protocol(PXSourceListDataSource)]) {
[_secondaryDataSource sourceList:self setObjectValue:object forItem:item];
}
}
- (id)outlineView:(NSOutlineView *)outlineView itemForPersistentObject:(id)object
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:itemForPersistentObject:)]) {
return [_secondaryDataSource sourceList:self itemForPersistentObject:object];
}
return nil;
}
- (id)outlineView:(NSOutlineView *)outlineView persistentObjectForItem:(id)item
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:persistentObjectForItem:)]) {
return [_secondaryDataSource sourceList:self persistentObjectForItem:item];
}
return nil;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pasteboard
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:writeItems:toPasteboard:)]) {
return [_secondaryDataSource sourceList:self writeItems:items toPasteboard:pasteboard];
}
return NO;
}
- (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(NSInteger)index
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:validateDrop:proposedItem:proposedChildIndex:)]) {
return [_secondaryDataSource sourceList:self validateDrop:info proposedItem:item proposedChildIndex:index];
}
return NSDragOperationNone;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)item childIndex:(NSInteger)index
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:acceptDrop:item:childIndex:)]) {
return [_secondaryDataSource sourceList:self acceptDrop:info item:item childIndex:index];
}
return NO;
}
- (NSArray *)outlineView:(NSOutlineView *)outlineView namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination forDraggedItems:(NSArray *)items
{
if([_secondaryDataSource respondsToSelector:@selector(sourceList:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:)]) {
return [_secondaryDataSource sourceList:self namesOfPromisedFilesDroppedAtDestination:dropDestination forDraggedItems:items];
}
return nil;
}
#pragma mark -
#pragma mark NSOutlineView Delegate methods
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldExpandItem:(id)item
{
if([_secondaryDelegate respondsToSelector:@selector(sourceList:shouldExpandItem:)]) {
return [_secondaryDelegate sourceList:self shouldExpandItem:item];
}
return YES;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldCollapseItem:(id)item
{
//Make sure the item isn't displayed as always expanded
if([self isGroupItem:item])
{
if([self isGroupAlwaysExpanded:item]) {
return NO;
}
}
if([_secondaryDelegate respondsToSelector:@selector(sourceList:shouldCollapseItem:)]) {
return [_secondaryDelegate sourceList:self shouldCollapseItem:item];
}
return YES;
}
- (NSCell *)outlineView:(NSOutlineView *)outlineView dataCellForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
if([_secondaryDelegate respondsToSelector:@selector(sourceList:dataCellForItem:)]) {
return [_secondaryDelegate sourceList:self dataCellForItem:item];
}
NSInteger row = [self rowForItem:item];
//Return the default table column
return [[[self tableColumns] objectAtIndex:0] dataCellForRow:row];
}
- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
if([_secondaryDelegate respondsToSelector:@selector(sourceList:willDisplayCell:forItem:)]) {
[_secondaryDelegate sourceList:self willDisplayCell:cell forItem:item];
}
}
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item
{
//Make sure that the item isn't a group as they can't be selected
if(![self isGroupItem:item]) {
if([_secondaryDelegate respondsToSelector:@selector(sourceList:shouldSelectItem:)]) {
return [_secondaryDelegate sourceList:self shouldSelectItem:item];
}
}
else {
return NO;
}
return YES;
}
- (NSIndexSet *)outlineView:(NSOutlineView *)outlineView selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes
{
//The outline view will try to select the first row if -[allowsEmptySelection:] is set to NO – if this is a group row
//stop it from doing so and leave it to our implementation of-[reloadData] which will select the first non-group row
//for us.
if([self numberOfSelectedRows]==0) {
if([self isGroupItem:[self itemAtRow:[proposedSelectionIndexes firstIndex]]]) {
return [NSIndexSet indexSet];
}
}
if([_secondaryDelegate respondsToSelector:@selector(sourceList:selectionIndexesForProposedSelection:)]) {
return [_secondaryDelegate sourceList:self selectionIndexesForProposedSelection:proposedSelectionIndexes];
}
//Since we implement this method, something must be returned to the outline view
return proposedSelectionIndexes;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
//Group titles can't be edited
if([self isGroupItem:item])
return NO;
if([_secondaryDelegate respondsToSelector:@selector(sourceList:shouldEditItem:)]) {
return [_secondaryDelegate sourceList:self shouldEditItem:item];
}
return YES;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldTrackCell:(NSCell *)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
if([_secondaryDelegate respondsToSelector:@selector(sourceList:shouldTrackCell:forItem:)]) {
return [_secondaryDelegate sourceList:self shouldTrackCell:cell forItem:item];
}
return NO;
}
- (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item
{
if([_secondaryDelegate respondsToSelector:@selector(sourceList:heightOfRowByItem:)]) {
return [_secondaryDelegate sourceList:self heightOfRowByItem:item];
}
return [self rowHeight];
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isGroupItem:(id)item
{
return [self isGroupItem:item];
}
#pragma mark -
#pragma mark Notification handling
/* Notification wrappers */
- (void)outlineViewSelectionIsChanging:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLSelectionIsChangingNotification object:self];
}
- (void)outlineViewSelectionDidChange:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLSelectionDidChangeNotification object:self];
}
- (void)outlineViewItemWillExpand:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLItemWillExpandNotification
object:self
userInfo:[notification userInfo]];
}
- (void)outlineViewItemDidExpand:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLItemDidExpandNotification
object:self
userInfo:[notification userInfo]];
}
- (void)outlineViewItemWillCollapse:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLItemWillCollapseNotification
object:self
userInfo:[notification userInfo]];
}
- (void)outlineViewItemDidCollapse:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] postNotificationName:PXSLItemDidCollapseNotification
object:self
userInfo:[notification userInfo]];
}
- (void)registerDelegateToReceiveNotification:(NSString*)notification withSelector:(SEL)selector
{
NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
//Set the delegate as a receiver of the notification if it implements the notification method
if([_secondaryDelegate respondsToSelector:selector]) {
[defaultCenter addObserver:_secondaryDelegate
selector:selector
name:notification
object:self];
}
}
@end
//
// PXSourceListDataSource.h
// PXViewKit
//
// Created by Alex Rozanski on 17/10/2009.
// Copyright 2009-10 Alex Rozanski http://perspx.com
//
#import <Cocoa/Cocoa.h>
@class PXSourceList;
@protocol PXSourceListDataSource <NSObject>
@required
- (NSUInteger)sourceList:(PXSourceList*)sourceList numberOfChildrenOfItem:(id)item;
- (id)sourceList:(PXSourceList*)aSourceList child:(NSUInteger)index ofItem:(id)item;
- (id)sourceList:(PXSourceList*)aSourceList objectValueForItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList isItemExpandable:(id)item;
@optional
- (void)sourceList:(PXSourceList*)aSourceList setObjectValue:(id)object forItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList itemHasBadge:(id)item;
- (NSInteger)sourceList:(PXSourceList*)aSourceList badgeValueForItem:(id)item;
- (NSColor*)sourceList:(PXSourceList*)aSourceList badgeTextColorForItem:(id)item;
- (NSColor*)sourceList:(PXSourceList*)aSourceList badgeBackgroundColorForItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList itemHasIcon:(id)item;
- (NSImage*)sourceList:(PXSourceList*)aSourceList iconForItem:(id)item;
//The rest of these methods are basically "wrappers" for the NSOutlineViewDataSource methods
- (id)sourceList:(PXSourceList*)aSourceList itemForPersistentObject:(id)object;
- (id)sourceList:(PXSourceList*)aSourceList persistentObjectForItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pboard;
- (NSDragOperation)sourceList:(PXSourceList*)sourceList validateDrop:(id < NSDraggingInfo >)info proposedItem:(id)item proposedChildIndex:(NSInteger)index;
- (BOOL)sourceList:(PXSourceList*)aSourceList acceptDrop:(id < NSDraggingInfo >)info item:(id)item childIndex:(NSInteger)index;
- (NSArray *)sourceList:(PXSourceList*)aSourceList namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination forDraggedItems:(NSArray *)items;
@end
//
// PXSourceListDelegate.h
// PXViewKit
//
// Created by Alex Rozanski on 17/10/2009.
// Copyright 2009-10 Alex Rozanski http://perspx.com
//
#import <Cocoa/Cocoa.h>
@class PXSourceList;
@protocol PXSourceListDelegate <NSObject>
@optional
//Extra methods
- (BOOL)sourceList:(PXSourceList*)aSourceList isGroupAlwaysExpanded:(id)group;
- (NSMenu*)sourceList:(PXSourceList*)aSourceList menuForEvent:(NSEvent*)theEvent item:(id)item;
//Basically NSOutlineViewDelegate wrapper methods
- (BOOL)sourceList:(PXSourceList*)aSourceList shouldSelectItem:(id)item;
- (NSIndexSet*)sourceList:(PXSourceList*)aSourceList selectionIndexesForProposedSelection:(NSIndexSet *)proposedSelectionIndexes;
- (BOOL)sourceList:(PXSourceList*)aSourceList shouldEditItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList shouldTrackCell:(NSCell *)cell forItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList shouldExpandItem:(id)item;
- (BOOL)sourceList:(PXSourceList*)aSourceList shouldCollapseItem:(id)item;
- (CGFloat)sourceList:(PXSourceList*)aSourceList heightOfRowByItem:(id)item;
- (NSCell*)sourceList:(PXSourceList*)aSourceList willDisplayCell:(id)cell forItem:(id)item;
- (NSCell*)sourceList:(PXSourceList*)aSourceList dataCellForItem:(id)item;
@end
@interface NSObject (PXSourceListNotifications)
//Selection
- (void)sourceListSelectionIsChanging:(NSNotification *)notification;
- (void)sourceListSelectionDidChange:(NSNotification *)notification;
//Item expanding/collapsing
- (void)sourceListItemWillExpand:(NSNotification *)notification;
- (void)sourceListItemDidExpand:(NSNotification *)notification;
- (void)sourceListItemWillCollapse:(NSNotification *)notification;
- (void)sourceListItemDidCollapse:(NSNotification *)notification;
- (void)sourceListDeleteKeyPressedOnRows:(NSNotification *)notification;
@end
//PXSourceList delegate notifications
extern NSString * const PXSLSelectionIsChangingNotification;
extern NSString * const PXSLSelectionDidChangeNotification;
extern NSString * const PXSLItemWillExpandNotification;
extern NSString * const PXSLItemDidExpandNotification;
extern NSString * const PXSLItemWillCollapseNotification;
extern NSString * const PXSLItemDidCollapseNotification;
extern NSString * const PXSLDeleteKeyPressedOnRowsNotification;
......@@ -50,7 +50,6 @@
IBOutlet id o_horizontal_split;
IBOutlet id o_vertical_split;
IBOutlet id o_videosubview;
IBOutlet id o_sidebar_list;
IBOutlet id o_view;
IBOutlet id o_background_view;
IBOutlet id o_searchfield;
......
......@@ -80,15 +80,6 @@
o_img_play = [NSImage imageNamed: @"play_embedded"];
o_img_pause = [NSImage imageNamed: @"pause_embedded"];
/* Set color of sidebar to Leopard's "Sidebar Blue" */
[o_sidebar_list setBackgroundColor: [NSColor colorWithCalibratedRed:0.820
green:0.843
blue:0.886
alpha:1.0]];
[self setMinSize:NSMakeSize([o_sidebar_list convertRect:[o_sidebar_list bounds]
toView: nil].size.width + 551., 114.)];
/* Useful to save o_view frame in fullscreen mode */
o_temp_view = [[NSView alloc] init];
[o_temp_view setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable];
......@@ -299,17 +290,12 @@
- (void)becomeMainWindow
{
[o_sidebar_list setBackgroundColor: [NSColor colorWithCalibratedRed:0.820
green:0.843
blue:0.886
alpha:1.0]];
[o_status becomeMainWindow];
[super becomeMainWindow];
}
- (void)resignMainWindow
{
[o_sidebar_list setBackgroundColor: [NSColor colorWithCalibratedWhite:0.91 alpha:1.0]];
[o_status resignMainWindow];
[super resignMainWindow];
}
......
......@@ -76,7 +76,6 @@
IBOutlet id o_btn_playlist;
IBOutlet id o_playlist_view;
IBOutlet id o_sidebar;
IBOutlet id o_search_field;
IBOutlet id o_search_field_other;
IBOutlet id o_mi_save_playlist;
......@@ -142,7 +141,6 @@
- (IBAction)sortNodeByAuthor:(id)sender;
- (IBAction)recursiveExpandNode:(id)sender;
- (void)playSidebarItem:(id)item;
- (id)playingItem;
- (void)appendArray:(NSArray*)o_array atPos:(int)i_position enqueue:(BOOL)b_enqueue;
......
......@@ -47,7 +47,6 @@
#import "playlist.h"
#import "controls.h"
#import "misc.h"
#import "sidebarview.h"
#include <vlc_keys.h>
#import <vlc_services_discovery.h>
......@@ -514,7 +513,6 @@
// TODO Find a way to keep the dict size to a minimum
//[o_outline_dict removeAllObjects];
[o_outline_view reloadData];
[o_sidebar updateSidebar:[self playingItem]];
[[[[VLCMain sharedInstance] wizard] playlistWizard] reloadOutlineView];
[[[[VLCMain sharedInstance] bookmarks] dataTable] reloadData];
......@@ -802,39 +800,6 @@
PL_UNLOCK;
}
- (void)playSidebarItem:(id)item
{
intf_thread_t * p_intf = VLCIntf;
playlist_t * p_playlist = pl_Get( p_intf );
playlist_item_t *p_item;
playlist_item_t *p_node = NULL;
p_item = [item pointerValue];
if( p_item )
{
if( p_item->i_children == -1 )
{
p_node = p_item->p_parent;
}
else
{
p_node = p_item;
if( p_node->i_children > 0 && p_node->pp_children[0]->i_children == -1 )
{
p_item = p_node->pp_children[0];
}
else
{
p_item = NULL;
}
}
playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, pl_Unlocked, p_node, p_item );
}
}
- (IBAction)revealItemInFinder:(id)sender
{
playlist_item_t * p_item = [[o_outline_view itemAtRow:[o_outline_view selectedRow]] pointerValue];
......
/*****************************************************************************
* sidebarview.h: MacOS X interface module
*****************************************************************************
* Copyright (C) 2005-2008 the VideoLAN team
* $Id$
*
* Authors: Eric Dudiak <dudiak at gmail dot com>
* Colloquy <http://colloquy.info/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import <Cocoa/Cocoa.h>
@interface sidebarview : NSSplitView
{
long _mainSubviewIndex;
}
@end
/*****************************************************************************
* VLCSidebar interface
*****************************************************************************/
@interface VLCSidebar : NSObject
{
IBOutlet id o_outline_view;
IBOutlet id o_playlist;
}
- (NSOutlineView *)outlineView;
- (void)updateSidebar:(id)item;
@end
\ No newline at end of file
/*****************************************************************************
* sidebarview.m: MacOS X interface module
*****************************************************************************
* Copyright (C) 2005-2008 the VideoLAN team
* $Id$
*
* Authors: Eric Dudiak <dudiak at gmail dot com>
* Colloquy <http://colloquy.info/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import "sidebarview.h"
#import "intf.h"
#import "playlist.h"
@implementation sidebarview
- (void) resetCursorRects
{
if( ! [self isPaneSplitter] )
[super resetCursorRects];
}
- (id) initWithCoder:(NSCoder *) decoder {
if( ( self = [super initWithCoder:decoder] ) )
_mainSubviewIndex = 1;
return self;
}
- (CGFloat) dividerThickness
{
return 1.0;
}
- (BOOL) isVertical
{
return YES;
}
- (void) drawDividerInRect:(NSRect) rect
{
[[NSColor colorWithCalibratedWhite:0.65 alpha:1.] set];
NSRectFill( rect );
}
- (void) adjustSubviews
{
if( _mainSubviewIndex == -1 || [[self subviews] count] != 2 ) {
[super adjustSubviews];
return;
}
float dividerThickness = [self dividerThickness];
NSRect newFrame = [self frame];
NSView *mainView = [[self subviews] objectAtIndex:_mainSubviewIndex];
NSView *otherView = ( _mainSubviewIndex ? [[self subviews] objectAtIndex:0] : [[self subviews] objectAtIndex:1] );
NSRect mainFrame = [mainView frame];
NSRect otherFrame = [otherView frame];
mainFrame.size.width = NSWidth( newFrame ) - dividerThickness - NSWidth( otherFrame );
mainFrame.size.height = NSHeight( newFrame );
mainFrame.origin.x = ( _mainSubviewIndex ? NSWidth( otherFrame ) + dividerThickness : 0. );
mainFrame.origin.y = 0.;
otherFrame.size.width = NSWidth( otherFrame );
otherFrame.size.height = NSHeight( newFrame );
otherFrame.origin.x = ( _mainSubviewIndex ? 0. : NSWidth( mainFrame ) + dividerThickness );
otherFrame.origin.y = 0.;
[mainView setFrame:mainFrame];
[otherView setFrame:otherFrame];
[self setNeedsDisplay:YES];
}
@end
/*****************************************************************************
* VLCPlaylist implementation
*****************************************************************************/
@implementation VLCSidebar
- (void)awakeFromNib
{
[o_outline_view setTarget: self];
[o_outline_view setDelegate: self];
[o_outline_view setDataSource: self];
[o_outline_view setAllowsEmptySelection: NO];
}
- (NSOutlineView *)outlineView
{
return o_outline_view;
}
- (void)outlineView:(NSOutlineView *)outlineView
willDisplayCell:(id)cell
forTableColumn:(NSTableColumn *)tableColumn
item:(id)item
{
if ( ![outlineView isExpandable:item] )
{
[cell setFont: [NSFont systemFontOfSize: 12]];
[cell setTextColor:[NSColor blackColor]];
}
else
{
[cell setFont: [NSFont boldSystemFontOfSize: 10]];
[cell setTextColor:[NSColor colorWithCalibratedWhite:0.365 alpha:1.0]];
}
}
- (void)updateSidebar:(id)item
{
int i_row = -1;
[o_outline_view reloadData];
i_row = [o_outline_view rowForItem:item];
if( i_row > -1 )
{
[o_outline_view selectRowIndexes:[NSIndexSet indexSetWithIndex:i_row] byExtendingSelection:NO];
[o_outline_view scrollRowToVisible: i_row];
}
}
- (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item
{
if( [outlineView isExpandable:item] )
return 12.;
else
return 20.;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item
{
if( [outlineView isExpandable:item] )
return NO;
else
{
if( ![[o_playlist playingItem] isEqual: item] )
[o_playlist playSidebarItem:item];
return YES;
}
}
- (void)outlineViewItemDidExpand:(NSNotification *)notification
{
int i_row = -1;
i_row = [o_outline_view rowForItem:[o_playlist playingItem]];
if( i_row > -1 )
{
[o_outline_view selectRowIndexes:[NSIndexSet indexSetWithIndex:i_row] byExtendingSelection:NO];
[o_outline_view scrollRowToVisible: i_row];
}
}
@end
@implementation VLCSidebar (NSOutlineViewDataSource)
/* return the number of children for Obj-C pointer item */ /* DONE */
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
{
return [o_playlist outlineView:outlineView numberOfChildrenOfItem:item];
}
/* return the child at index for the Obj-C pointer item */ /* DONE */
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item
{
return [o_playlist outlineView:outlineView child:index ofItem:item];
}
/* is the item expandable */
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item
{
return [o_playlist outlineView:outlineView isItemExpandable:item];
}
/* retrieve the string values for the cells */
- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)o_tc byItem:(id)item
{
if( [outlineView isExpandable:item] )
return [[o_playlist outlineView:outlineView objectValueForTableColumn:o_tc byItem:item] uppercaseString];
else
return [o_playlist outlineView:outlineView objectValueForTableColumn:o_tc byItem:item];
}
@end
/*****************************************************************************
* sidestatusview.h: MacOS X interface module
*****************************************************************************
* Copyright (C) 2005-2008 the VideoLAN team
* $Id$
*
* Authors: Eric Dudiak <dudiak at gmail dot com>
* Colloquy <http://colloquy.info/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import <Cocoa/Cocoa.h>
@interface sidestatusview : NSView {
IBOutlet NSSplitView *splitView;
float _clickOffset;
BOOL _insideResizeArea;
}
@end
/*****************************************************************************
* sidestatusview.m: MacOS X interface module
*****************************************************************************
* Copyright (C) 2005-2008 the VideoLAN team
* $Id$
*
* Authors: Eric Dudiak <dudiak at gmail dot com>
* Colloquy <http://colloquy.info/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#import "sidestatusview.h"
@implementation sidestatusview
-(void)resetCursorRects
{
[super resetCursorRects];
if( ! splitView ) return;
NSImage *resizeImage = [NSImage imageNamed:@"sidebarResizeWidget"];
NSRect location;
location.size = [resizeImage size];
location.origin = NSMakePoint( NSWidth( [self bounds] ) - [resizeImage size].width, 0. );
[self addCursorRect:location cursor:[NSCursor resizeLeftRightCursor]];
}
- (void)drawRect:(NSRect)rect
{
NSImage *backgroundImage = [NSImage imageNamed:@"sidebarStatusAreaBackground"];
[backgroundImage setSize:NSMakeSize(NSWidth( [self bounds] ), [backgroundImage size].height)];
[backgroundImage setScalesWhenResized:YES];
[backgroundImage compositeToPoint:NSMakePoint( 0., 0. ) operation:NSCompositeCopy];
if( splitView ) {
NSImage *resizeImage = [NSImage imageNamed:@"sidebarResizeWidget"];
[resizeImage compositeToPoint:NSMakePoint( NSWidth( [self bounds] ) - [resizeImage size].width, 0. ) operation:NSCompositeCopy];
}
}
- (void)mouseDown:(NSEvent *)event
{
if( ! splitView ) return;
NSPoint clickLocation = [self convertPoint:[event locationInWindow] fromView:nil];
NSImage *resizeImage = [NSImage imageNamed:@"sidebarResizeWidget"];
NSRect location;
location.size = [resizeImage size];
location.origin = NSMakePoint( NSWidth( [self bounds] ) - [resizeImage size].width, 0. );
_insideResizeArea = ( NSPointInRect( clickLocation, location ) );
if( ! _insideResizeArea ) return;
clickLocation = [self convertPoint:[event locationInWindow] fromView:[self superview]];
_clickOffset = NSWidth( [[self superview] frame] ) - clickLocation.x;
}
- (void)mouseDragged:(NSEvent *)event
{
if( ! splitView || ! _insideResizeArea ) return;
[[NSNotificationCenter defaultCenter] postNotificationName:NSSplitViewWillResizeSubviewsNotification object:splitView];
NSPoint clickLocation = [self convertPoint:[event locationInWindow] fromView:[self superview]];
NSRect newFrame = [[self superview] frame];
newFrame.size.width = clickLocation.x + _clickOffset;
id delegate = [splitView delegate];
if( delegate && [delegate respondsToSelector:@selector( splitView:constrainSplitPosition:ofSubviewAt: )] ) {
float new = [delegate splitView:splitView constrainSplitPosition:newFrame.size.width ofSubviewAt:0];
newFrame.size.width = new;
}
if( delegate && [delegate respondsToSelector:@selector( splitView:constrainMinCoordinate:ofSubviewAt: )] ) {
float min = [delegate splitView:splitView constrainMinCoordinate:0. ofSubviewAt:0];
newFrame.size.width = MAX( min, newFrame.size.width );
}
if( delegate && [delegate respondsToSelector:@selector( splitView:constrainMaxCoordinate:ofSubviewAt: )] ) {
float max = [delegate splitView:splitView constrainMaxCoordinate:0. ofSubviewAt:0];
newFrame.size.width = MIN( max, newFrame.size.width );
}
if( delegate ) {
[delegate setMinSize:NSMakeSize(newFrame.size.width + 551., 114.)];
}
[[self superview] setFrame:newFrame];
[splitView adjustSubviews];
[[NSNotificationCenter defaultCenter] postNotificationName:NSSplitViewDidResizeSubviewsNotification object:splitView];
}
@end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment