diff --git a/MPfm/MPfm.Mac/Classes/Controls/MPfmTabButton.cs b/MPfm/MPfm.Mac/Classes/Controls/MPfmTabButton.cs
new file mode 100644
index 00000000..32180923
--- /dev/null
+++ b/MPfm/MPfm.Mac/Classes/Controls/MPfmTabButton.cs
@@ -0,0 +1,168 @@
+// Copyright © 2011-2013 Yanick Castonguay
+//
+// This file is part of MPfm.
+//
+// MPfm 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 3 of the License, or
+// (at your option) any later version.
+//
+// MPfm 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 MPfm. If not, see .
+
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.IO;
+using System.Reflection;
+using MonoMac.AppKit;
+using MonoMac.CoreGraphics;
+using MonoMac.Foundation;
+using MPfm.Mac.Classes.Helpers;
+using MPfm.Mac.Classes.Objects;
+
+namespace MPfm.Mac.Classes.Controls
+{
+ [Register("MPfmTabButton")]
+ public class MPfmTabButton : NSButton
+ {
+ bool _isMouseDown = false;
+ bool _isMouseOver = false;
+
+ public CGColor TextColor { get; set; }
+ public CGColor BackgroundColor { get; set; }
+ public CGColor BackgroundMouseDownColor { get; set; }
+ public CGColor BackgroundMouseOverColor { get; set; }
+ public CGColor BorderColor { get; set; }
+
+ private bool _isSelected = false;
+ public bool IsSelected
+ {
+ get
+ {
+ return _isSelected;
+ }
+ set
+ {
+ _isSelected = value;
+ SetNeedsDisplay();
+ }
+ }
+
+ public delegate void TabButtonSelected(MPfmTabButton button);
+ public event TabButtonSelected OnTabButtonSelected;
+
+ [Export("init")]
+ public MPfmTabButton() : base(NSObjectFlag.Empty)
+ {
+ Initialize();
+ }
+
+ // Called when created from unmanaged code
+ public MPfmTabButton(IntPtr handle) : base (handle)
+ {
+ Initialize();
+ }
+
+ private void Initialize()
+ {
+ TextColor = GlobalTheme.ButtonTextColor;
+ //BackgroundColor = GlobalTheme.ButtonToolbarBackgroundColor;
+ BackgroundColor = GlobalTheme.PanelHeaderColor1;
+ BackgroundMouseDownColor = GlobalTheme.ButtonToolbarBackgroundMouseOverColor;
+ BackgroundMouseOverColor = GlobalTheme.ButtonToolbarBackgroundMouseDownColor;
+ BorderColor = GlobalTheme.ButtonToolbarBorderColor;
+
+ // This allows MouseEntered and MouseExit to work
+ AddTrackingRect(Bounds, this, IntPtr.Zero, false);
+ }
+
+ [Export("mouseDown:")]
+ public override void MouseDown(NSEvent theEvent)
+ {
+ _isMouseDown = true;
+ base.MouseDown(theEvent);
+ this.MouseUp(theEvent);
+ }
+
+ [Export("mouseUp:")]
+ public override void MouseUp(NSEvent theEvent)
+ {
+ base.MouseUp(theEvent);
+ _isMouseDown = false;
+ IsSelected = true;
+
+ if(OnTabButtonSelected != null)
+ OnTabButtonSelected(this);
+ SetNeedsDisplay();
+ }
+
+ [Export("mouseEntered:")]
+ public override void MouseEntered(NSEvent theEvent)
+ {
+ base.MouseEntered(theEvent);
+ _isMouseOver = true;
+ SetNeedsDisplay();
+ }
+
+ [Export("mouseExited:")]
+ public override void MouseExited(NSEvent theEvent)
+ {
+ base.MouseExited(theEvent);
+ _isMouseOver = false;
+ SetNeedsDisplay();
+ }
+
+ public override void DrawRect(RectangleF dirtyRect)
+ {
+ float padding = 4;
+ CGContext context = NSGraphicsContext.CurrentContext.GraphicsPort;
+ context.SaveState();
+ context.TranslateCTM(0, Bounds.Height);
+ context.ScaleCTM(1, -1);
+
+ if (_isMouseDown)
+ CocoaHelper.FillRect(context, Bounds, BackgroundMouseDownColor);
+ else if (_isMouseOver)
+ CocoaHelper.FillRect(context, Bounds, BackgroundMouseOverColor);
+ else
+ CocoaHelper.FillRect(context, Bounds, BackgroundColor);
+
+ if(IsSelected)
+ CocoaHelper.DrawLine(context, new PointF[2] { new PointF(0, 1), new PointF(Bounds.Width, 1) }, 0.5f, new CGColor(0.4f, 1, 1, 1));
+
+ //CocoaHelper.DrawRect(context, Bounds, BorderColor);
+ //RectangleF rectTextSize = CocoaHelper.MeasureString(Bounds.Size, Title, "Junction", 11);
+ RectangleF rectTextSize = CocoaHelper.MeasureString(Bounds.Size, Title, "TitilliumText25L-800wt", 12);
+ RectangleF rectText;
+ if (Image != null)
+ {
+ float xImage = ((Bounds.Width - rectTextSize.Width - (padding * 2) - Image.Size.Width) / 2);
+ RectangleF rectImage = new RectangleF(xImage, (Bounds.Height - Image.Size.Height) / 2, Image.Size.Width, Image.Size.Height);
+ Image.DrawInRect(rectImage, new RectangleF(0, 0, Image.Size.Width, Image.Size.Height), NSCompositingOperation.SourceOver, 1.0f);
+
+ float xText = xImage + padding + Image.Size.Width + padding;
+ rectText = new RectangleF(xText, (Bounds.Height - rectTextSize.Height) / 2, rectTextSize.Width, rectTextSize.Height);
+ }
+ else
+ {
+ rectText = new RectangleF((Bounds.Width - rectTextSize.Width) / 2, (Bounds.Height - rectTextSize.Height) / 2, rectTextSize.Width, rectTextSize.Height);
+ }
+
+ context.RestoreState();
+ //CocoaHelper.DrawText(rectText, 0, 0, Title, "Junction", 11, NSColor.White);
+ CocoaHelper.DrawText(rectText, 0, 0, Title, "TitilliumText25L-800wt", 12, NSColor.White);
+ }
+
+ RectangleF Get1pxRect(RectangleF rect)
+ {
+ RectangleF newRect = new RectangleF(rect.X + 0.5f, rect.Y + 0.5f, rect.Width - 1, rect.Height - 1);
+ return newRect;
+ }
+ }
+}
diff --git a/MPfm/MPfm.Mac/Classes/Controls/MPfmView.cs b/MPfm/MPfm.Mac/Classes/Controls/MPfmView.cs
index fe5e80ba..cbd96cf4 100644
--- a/MPfm/MPfm.Mac/Classes/Controls/MPfmView.cs
+++ b/MPfm/MPfm.Mac/Classes/Controls/MPfmView.cs
@@ -103,6 +103,7 @@ public override void DrawRect(RectangleF dirtyRect)
{
RectangleF rectHeader = new RectangleF(0, Bounds.Height - 24, Bounds.Width, 24);
CocoaHelper.FillRect(context, rectHeader, HeaderColor1);
+ //CocoaHelper.DrawLine(context, new PointF[2] { new PointF(0, Bounds.Height - 24), new PointF(Bounds.Width, Bounds.Height - 24) }, 0.5f, new CGColor(0.4f, 1, 1, 1));
}
// context.SaveState();
diff --git a/MPfm/MPfm.Mac/MPfm.Mac.csproj b/MPfm/MPfm.Mac/MPfm.Mac.csproj
index ed87869b..0d9ad197 100644
--- a/MPfm/MPfm.Mac/MPfm.Mac.csproj
+++ b/MPfm/MPfm.Mac/MPfm.Mac.csproj
@@ -214,6 +214,7 @@
SyncDownloadWindow.cs
+
diff --git a/MPfm/MPfm.Mac/Windows/Controllers/MainWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/MainWindowController.cs
index d13398a6..f517ebcc 100644
--- a/MPfm/MPfm.Mac/Windows/Controllers/MainWindowController.cs
+++ b/MPfm/MPfm.Mac/Windows/Controllers/MainWindowController.cs
@@ -39,6 +39,7 @@
using MPfm.Mac.Classes.Delegates;
using MPfm.Player.Objects;
using MPfm.MVP.Presenters;
+using MPfm.Mac.Classes.Controls;
namespace MPfm.Mac
{
@@ -120,11 +121,46 @@ public override void WindowDidLoad()
scrollViewAlbumCovers.SetSynchronizedScrollView(scrollViewSongBrowser);
scrollViewSongBrowser.SetSynchronizedScrollView(scrollViewAlbumCovers);
+ btnTabTimeShifting.IsSelected = true;
+ btnTabTimeShifting.OnTabButtonSelected += HandleOnTabButtonSelected;
+ btnTabPitchShifting.OnTabButtonSelected += HandleOnTabButtonSelected;
+ btnTabInfo.OnTabButtonSelected += HandleOnTabButtonSelected;
+ btnTabActions.OnTabButtonSelected += HandleOnTabButtonSelected;
+
NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSOutlineViewItemDidExpandNotification"), ItemDidExpand, outlineLibraryBrowser);
OnViewReady.Invoke(this);
}
+ private void HandleOnTabButtonSelected(MPfmTabButton button)
+ {
+ Console.WriteLine("Test: {0}", button.Title);
+
+ btnTabTimeShifting.IsSelected = button == btnTabTimeShifting;
+ btnTabPitchShifting.IsSelected = button == btnTabPitchShifting;
+ btnTabInfo.IsSelected = button == btnTabInfo;
+ btnTabActions.IsSelected = button == btnTabActions;
+
+ viewTimeShifting.Hidden = button != btnTabTimeShifting;
+ viewPitchShifting.Hidden = button != btnTabPitchShifting;
+ viewInformation.Hidden = button != btnTabInfo;
+ viewActions.Hidden = button != btnTabActions;
+
+// if (button == btnTabTimeShifting)
+// {
+//
+// }
+// else if (button == btnTabPitchShifting)
+// {
+// }
+// else if (button == btnTabInfo)
+// {
+// }
+// else if (button == btnTabActions)
+// {
+// }
+ }
+
private void SetTheme()
{
viewLeftHeader.BackgroundColor1 = GlobalTheme.PanelHeaderColor1;
@@ -179,11 +215,11 @@ private void SetTheme()
lblSongTitle.TextColor = NSColor.FromDeviceRgba(171f/255f, 186f/255f, 196f/255f, 1);
lblSongPath.TextColor = NSColor.FromDeviceRgba(97f/255f, 122f/255f, 140f/255f, 1);
- viewInformation.IsHeaderVisible = true;
+ //viewInformation.IsHeaderVisible = true;
viewSongPosition.IsHeaderVisible = true;
viewVolume.IsHeaderVisible = true;
- viewTimeShifting.IsHeaderVisible = true;
- viewPitchShifting.IsHeaderVisible = true;
+ //viewTimeShifting.IsHeaderVisible = true;
+ //viewPitchShifting.IsHeaderVisible = true;
lblArtistName.Font = NSFont.FromFontName("TitilliumText25L-800wt", 24);
lblAlbumTitle.Font = NSFont.FromFontName("TitilliumText25L-600wt", 20);
@@ -203,10 +239,10 @@ private void SetTheme()
lblTitleSongBrowser.Font = NSFont.FromFontName("TitilliumText25L-800wt", 14);
lblSubtitleSongPosition.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
- lblSubtitleTimeShifting.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
+ //lblSubtitleTimeShifting.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
lblSubtitleVolume.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
- lblSubtitleInformation.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
- lblSubtitlePitchShifting.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
+ //lblSubtitleInformation.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
+ //lblSubtitlePitchShifting.Font = NSFont.FromFontName("TitilliumText25L-800wt", 12);
lblPosition.Font = NSFont.FromFontName("DroidSansMono", 15f);
lblLength.Font = NSFont.FromFontName("DroidSansMono", 15f);
diff --git a/MPfm/MPfm.Mac/Windows/MainWindow.designer.cs b/MPfm/MPfm.Mac/Windows/MainWindow.designer.cs
index 9d2618c7..bf41bea1 100644
--- a/MPfm/MPfm.Mac/Windows/MainWindow.designer.cs
+++ b/MPfm/MPfm.Mac/Windows/MainWindow.designer.cs
@@ -188,9 +188,6 @@ partial class MainWindowController
[Outlet]
MonoMac.AppKit.NSTextField lblSubtitleVolume { get; set; }
- [Outlet]
- MonoMac.AppKit.NSTextField lblSubtitleTimeShifting { get; set; }
-
[Outlet]
MonoMac.AppKit.NSTextField lblFilterBySoundFormat { get; set; }
@@ -230,6 +227,21 @@ partial class MainWindowController
[Outlet]
MonoMac.AppKit.NSTextField lblSemitones { get; set; }
+ [Outlet]
+ MPfm.Mac.Classes.Controls.MPfmTabButton btnTabTimeShifting { get; set; }
+
+ [Outlet]
+ MPfm.Mac.Classes.Controls.MPfmTabButton btnTabPitchShifting { get; set; }
+
+ [Outlet]
+ MPfm.Mac.Classes.Controls.MPfmTabButton btnTabInfo { get; set; }
+
+ [Outlet]
+ MPfm.Mac.Classes.Controls.MPfmTabButton btnTabActions { get; set; }
+
+ [Outlet]
+ MPfm.Mac.Classes.Controls.MPfmView viewActions { get; set; }
+
[Action ("actionAddFilesToLibrary:")]
partial void actionAddFilesToLibrary (MonoMac.Foundation.NSObject sender);
@@ -322,6 +334,18 @@ partial class MainWindowController
[Action ("actionContextualMenuPlay:")]
partial void actionContextualMenuPlay (MonoMac.Foundation.NSObject sender);
+
+ [Action ("actionTabTimeShifting:")]
+ partial void actionTabTimeShifting (MonoMac.Foundation.NSObject sender);
+
+ [Action ("actionTabPitchShifting:")]
+ partial void actionTabPitchShifting (MonoMac.Foundation.NSObject sender);
+
+ [Action ("actionTabInfo:")]
+ partial void actionTabInfo (MonoMac.Foundation.NSObject sender);
+
+ [Action ("actionTabActions:")]
+ partial void actionTabActions (MonoMac.Foundation.NSObject sender);
void ReleaseDesignerOutlets ()
{
@@ -620,11 +644,6 @@ void ReleaseDesignerOutlets ()
lblSubtitleVolume = null;
}
- if (lblSubtitleTimeShifting != null) {
- lblSubtitleTimeShifting.Dispose ();
- lblSubtitleTimeShifting = null;
- }
-
if (lblFilterBySoundFormat != null) {
lblFilterBySoundFormat.Dispose ();
lblFilterBySoundFormat = null;
@@ -689,6 +708,31 @@ void ReleaseDesignerOutlets ()
lblSemitones.Dispose ();
lblSemitones = null;
}
+
+ if (btnTabTimeShifting != null) {
+ btnTabTimeShifting.Dispose ();
+ btnTabTimeShifting = null;
+ }
+
+ if (btnTabPitchShifting != null) {
+ btnTabPitchShifting.Dispose ();
+ btnTabPitchShifting = null;
+ }
+
+ if (btnTabInfo != null) {
+ btnTabInfo.Dispose ();
+ btnTabInfo = null;
+ }
+
+ if (btnTabActions != null) {
+ btnTabActions.Dispose ();
+ btnTabActions = null;
+ }
+
+ if (viewActions != null) {
+ viewActions.Dispose ();
+ viewActions = null;
+ }
}
}
diff --git a/MPfm/MPfm.Mac/Windows/XIB/MainWindow.xib b/MPfm/MPfm.Mac/Windows/XIB/MainWindow.xib
index 58e99f9a..5ec1ff39 100644
--- a/MPfm/MPfm.Mac/Windows/XIB/MainWindow.xib
+++ b/MPfm/MPfm.Mac/Windows/XIB/MainWindow.xib
@@ -567,7 +567,7 @@
MC41AA
- 20
+ 17
306184192
@@ -619,7 +619,7 @@
1
_doScroller:
- 0.99541284403669728
+ 0.219
{219, 543}
@@ -631,7 +631,7 @@
- QSAAAEEgAABBoAAAQaAAAA
+ QSAAAEEgAABBiAAAQYgAAA
0.25
4
1
@@ -850,94 +850,105 @@
266
- {{0, 17}, {523, 143}}
+ {{0, 17}, {523, 156}}
@@ -3101,6 +3235,7 @@
{{1, 161}, {422, 15}}
+
_NS:60
NO
1
@@ -3126,10 +3261,10 @@
- {523, 160}
+ {523, 173}
-
+
_NS:9
133680
@@ -3143,7 +3278,7 @@
1
- {{257, 0}, {523, 160}}
+ {{257, 0}, {523, 173}}
@@ -3151,7 +3286,7 @@
NSView
- {780, 160}
+ {780, 173}
@@ -3332,7 +3467,7 @@
NO
- {{0, 159}, {780, 27}}
+ {{0, 172}, {780, 27}}
@@ -3340,7 +3475,7 @@
MPfmView
- {{0, 191}, {780, 186}}
+ {{0, 208}, {780, 199}}
@@ -3348,7 +3483,7 @@
NSView
- {780, 377}
+ {780, 407}
@@ -3968,14 +4103,6 @@
551
-
-
- lblSubtitleInformation
-
-
-
- 552
-
lblSubtitleVolume
@@ -3984,14 +4111,6 @@
553
-
-
- lblSubtitleTimeShifting
-
-
-
- 554
-
lblFilterBySoundFormat
@@ -4088,14 +4207,6 @@
746
-
-
- lblSubtitlePitchShifting
-
-
-
- 748
-
txtPitchShiftingValue
@@ -4272,6 +4383,78 @@
862
+
+
+ btnTabTimeShifting
+
+
+
+ 875
+
+
+
+ actionTabTimeShifting:
+
+
+
+ 876
+
+
+
+ btnTabPitchShifting
+
+
+
+ 877
+
+
+
+ actionTabPitchShifting:
+
+
+
+ 878
+
+
+
+ btnTabInfo
+
+
+
+ 879
+
+
+
+ actionTabInfo:
+
+
+
+ 880
+
+
+
+ btnTabActions
+
+
+
+ 881
+
+
+
+ actionTabActions:
+
+
+
+ 882
+
+
+
+ viewActions
+
+
+
+ 892
+
Toolbar
@@ -4781,7 +4964,7 @@
266
{134, 17}
-
+
{250, 750}
YES
@@ -4906,56 +5089,6 @@
-
- 30
-
-
- YES
-
-
-
-
-
-
-
- 120
-
-
- YES
-
-
-
-
-
-
- 122
-
-
- YES
-
-
-
-
-
-
- 121
-
-
- YES
-
-
-
-
-
- 127
-
-
- YES
-
-
-
-
-
31
@@ -5038,29 +5171,6 @@
-
- 486
-
-
- YES
-
-
-
-
-
- 154
-
-
- YES
-
-
-
-
-
- 155
-
-
-
487
@@ -5153,70 +5263,29 @@
- 507
-
+ 19
+
YES
-
-
-
-
-
+
+
+
-
+
- 508
-
+ 20
+
YES
-
+
-
+
- 509
-
-
-
-
- 189
-
-
- YES
-
-
-
-
-
- 190
-
-
-
-
- 19
-
-
- YES
-
-
-
-
-
-
-
- 20
-
-
- YES
-
-
-
-
-
- 21
-
-
+ 21
+
+
23
@@ -5239,672 +5308,615 @@
- 481
-
+ 571
+
YES
-
-
-
-
-
-
-
-
-
-
+
+
-
+
- 499
-
+ 572
+
YES
-
-
-
-
+
-
+
- 502
-
+ 573
+
YES
-
+
-
+
- 503
-
-
+ 574
+
+
- 70
-
-
- YES
-
-
-
+ 575
+
+
- 71
-
-
+ 778
+
+
- 83
-
+ 824
+
+
+
+
+ 827
+
YES
-
+
+
+
+
-
+
- 84
-
-
+ 858
+
+
- 114
-
-
- YES
-
-
-
+ 857
+
+
- 115
-
-
+ 846
+
+
- 65
-
+ 845
+
+
+
+
+ 30
+
YES
-
+
+
+
-
-
-
- 66
-
-
+
- 63
-
+ 486
+
YES
-
+
-
-
-
- 64
-
-
+
- 61
-
+ 154
+
YES
-
+
-
+
- 62
-
-
+ 155
+
+
- 54
-
+ 120
+
YES
-
+
+
-
-
-
- 55
-
-
+
- 112
-
+ 122
+
YES
-
+
+
-
-
-
- 113
-
-
+
- 185
-
+ 580
+
YES
-
+
+
-
-
-
- 186
-
-
+
- 183
-
+ 582
+
YES
-
+
-
-
-
- 184
-
-
+
- 142
-
+ 132
+
YES
-
+
+
+
+
-
-
-
- 143
-
-
+
- 510
-
+ 133
+
YES
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
- 511
-
+ 137
+
YES
-
+
+
+
+ 4364
+ {22, 43}
+
+ _NS:9
+ MPfmIsPlayingTableCellView
+
+
+
+ 268
+ {{0, 43}, {22, 96}}
+
+ _NS:9
+ MPfmTableRowView
+
-
+
+
+
+ 864
+
+
- 518
-
-
+ 636
+
+
- 520
-
+ 197
+
+
+
+
+ 138
+
YES
-
-
-
-
-
+
+
-
+
- 523
-
+ 701
+
YES
-
+
-
-
-
- 524
-
-
+
- 177
-
+ 702
+
YES
-
+
-
+
- 178
-
-
+ 703
+
+
- 179
-
+ 139
+
+
+
+
+ 195
+
YES
-
+
+
-
+
- 180
-
-
+ 705
+
+
+ YES
+
+
+
- 181
-
+ 706
+
YES
-
+
-
+
- 182
-
-
+ 707
+
+
- 262
-
+ 196
+
+
+
+
+ 255
+
YES
-
+
+
-
-
-
- 263
-
-
+
- 528
-
+ 689
+
YES
-
-
-
+
-
+
- 531
-
+ 690
+
YES
-
+
-
+
- 532
-
-
+ 691
+
+
- 85
-
+ 256
+
+
+
+
+ 257
+
YES
-
+
+
-
+
- 86
-
-
+ 693
+
+
+ YES
+
+
+
- 118
-
+ 694
+
YES
-
+
-
+
- 119
-
-
+ 695
+
+
- 128
-
-
- YES
-
-
-
-
+ 258
+
+
- 539
-
+ 264
+
YES
-
-
-
-
-
+
+
-
+
- 540
-
+ 697
+
YES
-
+
-
-
-
- 541
-
-
+
- 289
-
+ 698
+
YES
-
-
-
-
+
-
-
-
- 293
-
-
+
- 292
-
-
+ 699
+
+
- 291
-
-
+ 265
+
+
- 290
-
-
- YES
-
-
-
-
-
-
-
+ 134
+
+
- 337
-
-
- YES
-
-
-
-
+ 135
+
+
- 339
-
-
- YES
-
-
-
+ 136
+
+
- 340
-
+ 581
+
YES
-
+
-
-
-
- 341
-
-
-
-
- 338
-
-
+
- 335
-
+ 583
+
YES
-
-
+
+
+
+
-
+
- 336
-
-
+ 587
+
+
- 329
-
-
- YES
-
-
-
-
+ 586
+
+
- 331
-
+ 585
+
+
+
+
+ 584
+
YES
-
+
-
+
- 332
-
+ 588
+
YES
-
+
+
+
+ 4364
+ {256, 43}
+
+ _NS:9
+ MPfmAlbumCoverView
+
+
+
+ 268
+ {{0, 43}, {256, 96}}
+
+ _NS:9
+ MPfmTableRowView
+
-
-
-
- 333
-
-
+
- 330
-
-
+ 637
+
+
- 323
-
-
- YES
-
-
-
-
+ 606
+
+
- 325
-
-
+ 591
+
+
- 324
-
+ 507
+
YES
-
+
+
+
+
+
-
+
- 326
-
+ 508
+
YES
-
+
-
+
- 327
-
-
+ 509
+
+
- 294
-
+ 142
+
YES
-
-
+
-
+
- 298
-
-
- YES
-
-
-
+ 143
+
+
- 299
-
+ 183
+
YES
-
+
-
-
-
- 300
-
-
+
- 297
-
-
+ 184
+
+
- 308
-
+ 185
+
YES
-
+
-
+
- 309
-
-
+ 186
+
+
- 314
-
+ 189
+
YES
-
+
-
+
- 315
-
-
+ 190
+
+
- 317
-
+ 121
+
YES
-
+
-
-
-
- 318
-
-
+
- 320
-
+ 127
+
YES
-
+
+
-
-
-
- 321
-
-
+
129
@@ -5927,7 +5939,63 @@
-
+
+
+
+ 420
+
+
+ YES
+
+
+
+
+
+ 421
+
+
+
+
+ 443
+
+
+ YES
+
+
+
+
+
+ 444
+
+
+
+
+ 446
+
+
+ YES
+
+
+
+
+
+ 447
+
+
+
+
+ 449
+
+
+ YES
+
+
+
+
+
+ 450
+
+
543
@@ -6096,620 +6164,822 @@
- 420
-
+ 128
+
YES
-
+
+
-
+
- 421
-
-
+ 539
+
+
+ YES
+
+
+
+
+
+
+
- 443
-
+ 540
+
YES
-
+
-
+
- 444
-
-
+ 541
+
+
- 446
-
+ 308
+
YES
-
+
-
+
- 447
-
-
+ 309
+
+
- 449
-
+ 314
+
YES
-
+
-
+
- 450
-
-
+ 315
+
+
- 571
-
+ 317
+
YES
-
-
+
-
+
- 572
-
+ 318
+
+
+
+
+ 320
+
YES
-
+
-
+
- 573
-
+ 321
+
+
+
+
+ 289
+
YES
-
+
+
+
+
-
+
- 574
-
-
+ 293
+
+
- 575
-
-
+ 292
+
+
- 580
-
+ 291
+
+
+
+
+ 290
+
YES
-
-
+
+
+
+
+
-
+
+
+
+ 337
+
+
+ YES
+
+
+
+
+
+
+ 339
+
+
+ YES
+
+
+
+
+
+ 340
+
+
+ YES
+
+
+
+
+
+ 341
+
+
+
+
+ 338
+
+
+
+
+ 335
+
+
+ YES
+
+
+
+
+
+
+ 709
+
+
+ YES
+
+
+
+
+
+ 710
+
+
+ YES
+
+
+
+
+
+ 711
+
+
+
+
+ 336
+
+
+
+
+ 329
+
+
+ YES
+
+
+
+
+
+
+ 331
+
+
+ YES
+
+
+
+
+
+ 332
+
+
+ YES
+
+
+
+
+
+ 333
+
+
+
+
+ 330
+
+
- 581
-
+ 323
+
YES
-
+
+
-
+
- 582
-
+ 325
+
+
+
+
+ 324
+
YES
-
+
-
+
- 132
-
+ 326
+
YES
-
-
-
-
+
-
-
-
- 136
-
-
-
-
- 135
-
-
+
- 134
-
-
+ 327
+
+
- 133
-
+ 294
+
YES
-
-
-
-
-
-
+
+
-
+
- 264
-
+ 298
+
YES
-
-
+
-
+
- 257
-
+ 299
+
YES
-
-
+
-
+
- 255
-
+ 300
+
+
+
+
+ 297
+
+
+
+
+ 481
+
YES
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
- 195
-
+ 883
+
YES
-
-
+
+
+
+
-
+
- 138
-
+ 887
+
YES
-
-
+
-
+
- 137
-
+ 888
+
+
+
+
+ 886
+
YES
-
-
-
- 4364
- {22, 43}
-
- _NS:9
- MPfmIsPlayingTableCellView
-
-
-
- 268
- {{0, 43}, {22, 96}}
- _NS:9
- MPfmTableRowView
-
+
-
-
-
- 197
-
-
+
- 139
-
-
+ 889
+
+
- 196
-
-
+ 885
+
+
+ YES
+
+
+
- 256
-
-
+ 890
+
+
- 258
-
-
+ 884
+
+
+ YES
+
+
+
- 265
-
-
+ 891
+
+
- 583
-
+ 499
+
YES
-
-
-
-
+
+
+
+
-
+
- 584
-
+ 114
+
YES
-
+
-
+
- 585
-
-
+ 115
+
+
- 586
-
-
+ 83
+
+
+ YES
+
+
+
- 587
-
-
+ 84
+
+
- 588
-
+ 502
+
YES
-
-
-
- 4364
- {256, 43}
-
- _NS:9
- MPfmAlbumCoverView
-
-
-
- 268
- {{0, 43}, {256, 96}}
-
- _NS:9
- MPfmTableRowView
-
+
-
+
- 591
-
-
+ 503
+
+
- 606
-
-
+ 70
+
+
+ YES
+
+
+
+
+
+ 71
+
+
- 636
-
-
+ 868
+
+
+ YES
+
+
+
- 637
-
-
+ 869
+
+
- 689
-
+ 873
+
YES
-
+
-
+
- 690
-
+ 874
+
+
+
+
+ 112
+
YES
-
+
-
+
- 691
-
-
+ 113
+
+
- 693
-
+ 713
+
YES
-
+
+
+
+
-
+
- 694
-
+ 819
+
YES
-
+
-
+
- 695
-
-
+ 820
+
+
- 697
-
+ 811
+
YES
-
+
-
+
- 698
-
+ 812
+
+
+
+
+ 735
+
YES
-
+
-
+
- 699
-
-
+ 736
+
+
- 701
-
+ 724
+
YES
-
+
-
+
- 702
-
+ 725
+
+
+
+
+ 871
+
YES
-
+
-
+
- 703
-
-
+ 872
+
+
- 705
-
+ 865
+
YES
-
+
-
+
- 706
-
+ 866
+
+
+
+
+ 54
+
YES
-
+
-
+
- 707
-
-
+ 55
+
+
- 709
-
+ 65
+
YES
-
+
-
+
- 710
-
+ 66
+
+
+
+
+ 63
+
YES
-
+
-
+
- 711
-
-
+ 64
+
+
- 713
-
+ 61
+
YES
-
-
-
-
-
+
- 718
-
+ 62
+
+
+
+
+ 528
+
YES
-
+
+
+
-
+
+
+
+ 85
+
+
+ YES
+
+
+
- 719
-
-
+ 86
+
+
- 724
-
+ 118
+
YES
-
+
-
+
- 725
-
-
+ 119
+
+
- 735
-
+ 531
+
YES
-
+
-
+
- 736
-
-
+ 532
+
+
- 778
-
-
+ 510
+
+
+ YES
+
+
+
+
+
+
+
+
+
+
+
+
+
- 784
-
+ 814
+
YES
-
+
- 785
-
-
+ 815
+
+
- 787
-
+ 797
+
YES
-
+
- 788
-
-
+ 798
+
+
- 790
-
+ 794
+
YES
-
+
- 791
-
+ 795
+
+
+
+
+ 158
+
YES
-
+
- 792
-
-
-
-
- 793
-
-
+ 161
+
+
- 800
-
+ 763
+
YES
-
+
- 801
-
-
+ 764
+
+
802
@@ -6726,144 +6996,142 @@
- 811
-
+ 800
+
YES
-
+
-
+
- 812
-
-
+ 801
+
+
- 763
-
+ 787
+
YES
-
+
- 764
-
-
+ 788
+
+
- 158
-
+ 791
+
YES
-
+
- 161
-
-
+ 792
+
+
- 797
-
+ 790
+
YES
-
+
- 798
-
-
+ 793
+
+
- 794
-
+ 784
+
YES
-
+
- 795
-
-
+ 785
+
+
- 819
-
+ 520
+
YES
-
+
+
+
+
-
-
-
- 820
-
-
+
- 814
-
+ 262
+
YES
-
+
-
-
-
- 815
-
-
+
- 824
-
-
+ 263
+
+
- 827
-
+ 181
+
YES
-
-
-
-
+
-
+
- 858
-
-
+ 182
+
+
- 857
-
-
+ 179
+
+
+ YES
+
+
+
- 846
-
-
+ 180
+
+
- 845
-
-
+ 177
+
+
+ YES
+
+
+
- 864
-
-
+ 178
+
+
@@ -7090,12 +7358,8 @@
509.IBPluginDependency
51.IBPluginDependency
510.IBPluginDependency
- 511.IBPluginDependency
- 518.IBPluginDependency
52.IBPluginDependency
520.IBPluginDependency
- 523.IBPluginDependency
- 524.IBPluginDependency
528.IBPluginDependency
53.IBPluginDependency
531.IBPluginDependency
@@ -7173,8 +7437,6 @@
710.IBPluginDependency
711.IBPluginDependency
713.IBPluginDependency
- 718.IBPluginDependency
- 719.IBPluginDependency
724.IBPluginDependency
725.IBPluginDependency
73.IBPluginDependency
@@ -7241,6 +7503,27 @@
86.IBPluginDependency
864.IBPluginDependency
864.userInterfaceItemIdentifier
+ 865.CustomClassName
+ 865.IBPluginDependency
+ 866.IBPluginDependency
+ 868.CustomClassName
+ 868.IBPluginDependency
+ 869.IBPluginDependency
+ 871.CustomClassName
+ 871.IBPluginDependency
+ 872.IBPluginDependency
+ 873.CustomClassName
+ 873.IBPluginDependency
+ 874.IBPluginDependency
+ 883.IBPluginDependency
+ 884.IBPluginDependency
+ 885.IBPluginDependency
+ 886.IBPluginDependency
+ 887.IBPluginDependency
+ 888.IBPluginDependency
+ 889.IBPluginDependency
+ 890.IBPluginDependency
+ 891.IBPluginDependency
YES
@@ -7517,10 +7800,6 @@
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
lblArtistName
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -7599,8 +7878,6 @@
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
toolbarPlay
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
@@ -7664,6 +7941,27 @@
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
NSTableViewRowViewKey
+ MPfmTabButton
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ MPfmTabButton
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ MPfmTabButton
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ MPfmTabButton
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
@@ -7678,7 +7976,7 @@
- 864
+ 901
@@ -7739,6 +8037,14 @@
./Classes/MPfmSongPositionSlider.h
+
+ MPfmTabButton
+ NSButton
+
+ IBProjectSource
+ ./Classes/MPfmTabButton.h
+
+
MPfmTableHeaderView
NSTableHeaderView
@@ -7808,6 +8114,10 @@
actionShuffle:
actionSoundFormatChanged:
actionStopLoop:
+ actionTabActions:
+ actionTabInfo:
+ actionTabPitchShifting:
+ actionTabTimeShifting:
actionUpdateLibrary:
@@ -7843,6 +8153,10 @@
id
id
id
+ id
+ id
+ id
+ id
@@ -7879,6 +8193,10 @@
actionShuffle:
actionSoundFormatChanged:
actionStopLoop:
+ actionTabActions:
+ actionTabInfo:
+ actionTabPitchShifting:
+ actionTabTimeShifting:
actionUpdateLibrary:
@@ -8003,6 +8321,22 @@
actionStopLoop:
id
+
+ actionTabActions:
+ id
+
+
+ actionTabInfo:
+ id
+
+
+ actionTabPitchShifting:
+ id
+
+
+ actionTabTimeShifting:
+ id
+
actionUpdateLibrary:
id
@@ -8025,6 +8359,10 @@
btnPlaySelectedSong
btnRemoveLoop
btnRemoveMarker
+ btnTabActions
+ btnTabInfo
+ btnTabPitchShifting
+ btnTabTimeShifting
cboSoundFormat
imageAlbumCover
lblAlbumTitle
@@ -8047,7 +8385,6 @@
lblSubtitleInformation
lblSubtitlePitchShifting
lblSubtitleSongPosition
- lblSubtitleTimeShifting
lblSubtitleVolume
lblTitleCurrentSong
lblTitleLibraryBrowser
@@ -8072,6 +8409,7 @@
toolbarMain
txtCurrentTempoValue
txtPitchShiftingValue
+ viewActions
viewInformation
viewLeft
viewLeftHeader
@@ -8101,6 +8439,10 @@
NSButton
MPfmButton
MPfmButton
+ MPfmTabButton
+ MPfmTabButton
+ MPfmTabButton
+ MPfmTabButton
NSPopUpButton
NSImageView
NSTextField
@@ -8130,7 +8472,6 @@
NSTextField
NSTextField
NSTextField
- NSTextField
NSOutlineView
MPfmScrollView
MPfmScrollView
@@ -8162,6 +8503,7 @@
MPfmView
MPfmView
MPfmView
+ MPfmView
@@ -8180,6 +8522,10 @@
btnPlaySelectedSong
btnRemoveLoop
btnRemoveMarker
+ btnTabActions
+ btnTabInfo
+ btnTabPitchShifting
+ btnTabTimeShifting
cboSoundFormat
imageAlbumCover
lblAlbumTitle
@@ -8202,7 +8548,6 @@
lblSubtitleInformation
lblSubtitlePitchShifting
lblSubtitleSongPosition
- lblSubtitleTimeShifting
lblSubtitleVolume
lblTitleCurrentSong
lblTitleLibraryBrowser
@@ -8227,6 +8572,7 @@
toolbarMain
txtCurrentTempoValue
txtPitchShiftingValue
+ viewActions
viewInformation
viewLeft
viewLeftHeader
@@ -8292,6 +8638,22 @@
btnRemoveMarker
MPfmButton
+
+ btnTabActions
+ MPfmTabButton
+
+
+ btnTabInfo
+ MPfmTabButton
+
+
+ btnTabPitchShifting
+ MPfmTabButton
+
+
+ btnTabTimeShifting
+ MPfmTabButton
+
cboSoundFormat
NSPopUpButton
@@ -8380,10 +8742,6 @@
lblSubtitleSongPosition
NSTextField
-
- lblSubtitleTimeShifting
- NSTextField
-
lblSubtitleVolume
NSTextField
@@ -8480,6 +8838,10 @@
txtPitchShiftingValue
NSTextField
+
+ viewActions
+ MPfmView
+
viewInformation
MPfmView
@@ -8543,6 +8905,14 @@
./Classes/MainWindowController.h
+
+ NSTableRowView
+ NSView
+
+ IBProjectSource
+ ./Classes/NSTableRowView.h
+
+
0