예제 #1
0
        public KinskyDesktop()
        {
            iInstance = this;
            HttpWebRequest.DefaultWebProxy             = WebRequest.GetSystemWebProxy();
            HttpWebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
            iWindowLoaded = new AutoResetEvent(false);
            iImageCache   = new WpfImageCache(kCacheSize, kDownscaleImageSize, kThreadCount);
            iIconResolver = new IconResolver();
            ResourceDictionary dictionary   = App.Current.Resources;
            string             assemblyName = System.Reflection.Assembly.GetExecutingAssembly().FullName;

            string[] resourceDictionaries =
            {
                "Shared",
                "ControlStyles",
                "ScrollBar",
                "ComboBox",
                "ListBox",
                "TileViewStyle",
                "WindowChromeStyle",
                "MenuItem",
                "Slider"
            };

            foreach (string resourceDictionary in resourceDictionaries)
            {
                dictionary.MergedDictionaries.Add(Application.LoadComponent(new Uri(string.Format("/{0};component/{1}.xaml", assemblyName, resourceDictionary), UriKind.Relative)) as ResourceDictionary);
            }
            InitializeComponent();
            iUpdateOnExit = false;
            iHelper       = new HelperKinsky(Environment.GetCommandLineArgs(), new Invoker(this.Dispatcher));
            ICrashLogDumper d = new CrashLogDumperForm(this,
                                                       iHelper.Title,
                                                       iHelper.Product,
                                                       iHelper.Version);

            iHelper.AddCrashLogDumper(d);
            System.Windows.Forms.Application.SetUnhandledExceptionMode(System.Windows.Forms.UnhandledExceptionMode.ThrowException);
            iUIOptions = new UiOptions(iHelper);
            InitialiseStack();
            WindowChrome.SetIsMiniModeActive(mainWindowChrome, iUIOptions.MiniMode);
            SetWindowDimensions();
            iProcessedOptions  = true;
            AllowsTransparency = iTransparentOption.Native;
            this.Loaded       += new RoutedEventHandler(KinskyDesktop_Loaded);
        }
예제 #2
0
        public KinskyDesktop()
        {
            iInstance = this;
            HttpWebRequest.DefaultWebProxy             = WebRequest.GetSystemWebProxy();
            HttpWebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
            iWindowLoaded = new AutoResetEvent(false);
            iImageCache   = new WpfImageCache(kCacheSize, kDownscaleImageSize, kThreadCount);
            iIconResolver = new IconResolver();
            ResourceDictionary dictionary   = App.Current.Resources;
            string             assemblyName = System.Reflection.Assembly.GetExecutingAssembly().FullName;

            string[] resourceDictionaries =
            {
                "Shared",
                "ControlStyles",
                "ScrollBar",
                "ComboBox",
                "ListBox",
                "TileViewStyle",
                "WindowChromeStyle",
                "MenuItem",
                "Slider"
            };

            foreach (string resourceDictionary in resourceDictionaries)
            {
                dictionary.MergedDictionaries.Add(Application.LoadComponent(new Uri(string.Format("/{0};component/Resources/{1}.xaml", assemblyName, resourceDictionary), UriKind.Relative)) as ResourceDictionary);
            }
            InitializeComponent();
            iUpdateOnExit = false;
            var invoker = new Invoker(this.Dispatcher);

            iHelper = new HelperKinsky(Environment.GetCommandLineArgs(), invoker);
#if DEBUG
            Xamarin.Insights.Initialize(kApiKeyDummyProject, iHelper.Version, iHelper.Product);
#else
            Xamarin.Insights.Initialize(kApiKey, iHelper.Version, iHelper.Product);
#endif

            ICrashLogDumper d = new CrashLogDumperForm(this,
                                                       iHelper.Title,
                                                       iHelper.Product,
                                                       iHelper.Version);
            iHelper.AddCrashLogDumper(d);
            System.Windows.Forms.Application.SetUnhandledExceptionMode(System.Windows.Forms.UnhandledExceptionMode.ThrowException);
            iUIOptions = new UiOptions(iHelper);
            InitialiseStack();
            Xamarin.Insights.Identify(iHelper.OptionInstallId.Value, null);
            WindowChrome.SetIsMiniModeActive(mainWindowChrome, iUIOptions.MiniMode);
            SetWindowDimensions();
            iProcessedOptions            = true;
            AllowsTransparency           = iTransparentOption.Native;
            this.Loaded                 += new RoutedEventHandler(KinskyDesktop_Loaded);
            iNotificationController      = new NotificationController(invoker, iHelper, new NotificationServerHttp(NotificationServerHttp.DefaultUri(iHelper.Product)), this, NotificationController.DefaultTimespan);
            viewKinsky.ShowOptionsDialog = () =>
            {
                ShowOptionsDialog(false);
            };
            Uri iconUri = new Uri("pack://application:,,,/icon.ico", UriKind.RelativeOrAbsolute); //make sure your path is correct, and the icon set as Resource
            this.Icon = BitmapFrame.Create(iconUri, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
        }
예제 #3
0
        internal void Initialise(KinskyDesktop aKinskyDesktop,
                                 HelperKinsky aHelperKinsky,
                                 ContentDirectoryLocator aLocator,
                                 IViewSaveSupport aSaveSupport,
                                 IPlaylistSupport aPlaylistSupport,
                                 DropConverter aBrowseDropConverter,
                                 DropConverter aViewDropConverter,
                                 ViewMaster aViewMaster,
                                 UiOptions aUIOptions,
                                 OptionBool aPlaylistGroupingOption,
                                 ModelSenders aSenders
                                 )
        {
            iHelperKinsky        = aHelperKinsky;
            iLocator             = aLocator;
            iBrowseDropConverter = aBrowseDropConverter;
            iViewMaster          = aViewMaster;
            iUIOptions           = aUIOptions;
            iSenders             = aSenders;
            iPlaylistSupport     = aPlaylistSupport;
            aPlaylistSupport.EventIsDraggingChanged += new EventHandler <EventArgs>(aPlaylistSupport_EventIsDraggingChanged);
            iViewDropConverter = aViewDropConverter;
            iBrowser           = new Browser(new Location(iLocator.Root));

            ViewWidgetButton upButtonWidgetBrowser = new ViewWidgetButton(buttonUpBrowser);

            breadcrumbBrowser.SetButtonUpDirectory(upButtonWidgetBrowser);

            iNavigationController = new NavigationController(iBrowser, iLocator, breadcrumbBrowser, iHelperKinsky);

            iBookmarks = new ViewWidgetBookmarks(iHelperKinsky,
                                                 iHelperKinsky.BookmarkManager,
                                                 lstBookmarks,
                                                 iBrowser,
                                                 popupBookmarksList,
                                                 popupAddBookmark,
                                                 buttonShowBookmarksList,
                                                 buttonShowAddBookmark,
                                                 buttonAddBookmark,
                                                 buttonCancelAddBookmark,
                                                 txtTitle,
                                                 txtBreadcrumb,
                                                 pnlAddBookmark,
                                                 iNavigationController);

            iBrowserWidget = new ViewWidgetBrowser(iPlaylistSupport,
                                                   iBrowseDropConverter,
                                                   buttonChangeSize,
                                                   buttonToggleListView,
                                                   iUIOptions,
                                                   sliderSize,
                                                   iNavigationController,
                                                   iBookmarks);
            pnlBrowser.Children.Add(iBrowserWidget);

            iRoomSelector = new ViewWidgetSelectorRoom(lstRooms, ctlSelectRoom, btnStandbyAll);
            IPlaylistWidget playlistMediaRenderer = new PlaylistWidget(aViewDropConverter, aPlaylistSupport, iUIOptions);
            IPlaylistWidget playlistRadio         = new PlaylistWidget(aViewDropConverter, aPlaylistSupport, iUIOptions);
            IPlaylistWidget playlistReceiver      = new PlaylistWidget(aViewDropConverter, aPlaylistSupport, iUIOptions);

            iViewWidgetPlaylistMediaRenderer = new ViewWidgetPlaylistMediaRenderer(pnlPlaylist, playlistMediaRenderer, aSaveSupport, aPlaylistSupport, aPlaylistGroupingOption.Native);
            iViewWidgetPlaylistRadio         = new ViewWidgetPlaylistRadio(pnlPlaylist, playlistRadio, aSaveSupport);
            iViewWidgetPlaylistAux           = new ViewWidgetPlaylistAux(pnlPlaylist);
            iViewWidgetPlaylistDiscPlayer    = new ViewWidgetPlaylistDiscPlayer(pnlPlaylist);
            iViewWidgetPlaylistReceiver      = new ViewWidgetPlaylistReceiver(pnlPlaylist, playlistReceiver, aSaveSupport, iSenders);

            iViewWidgetButtonStandby  = new ViewWidgetButtonStandby(this);
            iViewWidgetButtonSave     = new ViewWidgetButtonSave(buttonSave, aViewDropConverter, aSaveSupport);
            iViewWidgetButtonWasteBin = new ViewWidgetButtonWasteBin(buttonDelete, aViewDropConverter);

            iViewWidgetPlayMode = new ViewWidgetPlayMode(buttonRepeat, buttonShuffle);

            iViewWidgetTransportControl = new ViewWidgetTransportControl(aKinskyDesktop, threeKArray, aViewDropConverter, aPlaylistSupport);

            iViewWidgetPlayNowNextLater = new ViewWidgetPlayNowNextLater(aViewDropConverter, aPlaylistSupport, buttonPlayNow, buttonPlayNext, buttonPlayLater);

            iViewWidgetVolumeControl = new ViewWidgetVolumeControl(aKinskyDesktop, rotaryControlVolume, rockerControlVolume);
            iViewWidgetMediaTime     = new ViewWidgetMediaTime(rotaryControlMediaTime, rockerControlMediaTime);
            iViewWidgetTrack         = new ViewWidgetTrack(viewWidgetTrackDisplay, new IPlaylistWidget[] { playlistMediaRenderer, playlistRadio, playlistReceiver });
            SplitBarPositionLeft     = new GridLength(iUIOptions.BrowserSplitterLocationLeft, GridUnitType.Star);
            SplitBarPositionRight    = new GridLength(iUIOptions.BrowserSplitterLocationRight, GridUnitType.Star);
            iSourceSelector          = new ViewWidgetSelectorSource(lstSources, ctlSelectSource);

            iMediatorHouse = new MediatorHouse(iRoomSelector,
                                               iSourceSelector,
                                               pnlPlaylist,
                                               lstRooms,
                                               lstSources,
                                               buttonSelectRoom,
                                               buttonSelectSource,
                                               popupRoomSelection,
                                               popupSourceSelection,
                                               btnStandbyAll);;

            aPlaylistGroupingOption.EventValueChanged += (d, e) =>
            {
                iViewWidgetPlaylistMediaRenderer.SetGroupByAlbum(aPlaylistGroupingOption.Native);
            };

            iInitialised = true;
        }
예제 #4
0
        public SystrayForm(KinskyDesktop aParent)
        {
            InitializeComponent();
            iParent = aParent;

            ShowToolStripMenuItem        = new ToolStripMenuItem();
            ShowToolStripMenuItem.Size   = new System.Drawing.Size(177, 22);
            ShowToolStripMenuItem.Text   = "Hide Kinsky";
            ShowToolStripMenuItem.Click += (d, e) =>
            {
                if (aParent.WindowState == System.Windows.WindowState.Minimized)
                {
                    aParent.WindowState = System.Windows.WindowState.Normal;
                }
                else
                {
                    aParent.WindowState = System.Windows.WindowState.Minimized;
                }
            };

            aParent.StateChanged += (d, e) =>
            {
                if (aParent.WindowState == System.Windows.WindowState.Minimized)
                {
                    ShowToolStripMenuItem.Text = "Show Kinsky";
                }
                else
                {
                    ShowToolStripMenuItem.Text = "Hide Kinsky";
                }
            };


            iSeparator1      = new ToolStripSeparator();
            iSeparator1.Size = new System.Drawing.Size(174, 6);


            RepeatToolStripMenuItem         = new ToolStripMenuItem();
            RepeatToolStripMenuItem.Enabled = false;
            RepeatToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            RepeatToolStripMenuItem.Text    = "Repeat";


            ShuffleToolStripMenuItem         = new ToolStripMenuItem();
            ShuffleToolStripMenuItem.Enabled = false;
            ShuffleToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            ShuffleToolStripMenuItem.Text    = "Shuffle";


            iSeparator2      = new ToolStripSeparator();
            iSeparator2.Size = new System.Drawing.Size(174, 6);


            PreviousToolStripMenuItem         = new ToolStripMenuItem();
            PreviousToolStripMenuItem.Enabled = false;
            PreviousToolStripMenuItem.Image   = StaticImages.SysTrayPrevious;
            PreviousToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            PreviousToolStripMenuItem.Text    = "Previous";


            PlayToolStripMenuItem         = new ToolStripMenuItem();
            PlayToolStripMenuItem.Enabled = false;
            PlayToolStripMenuItem.Image   = StaticImages.SysTrayPlay;
            PlayToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            PlayToolStripMenuItem.Text    = "Play";


            NextToolStripMenuItem         = new ToolStripMenuItem();
            NextToolStripMenuItem.Enabled = false;
            NextToolStripMenuItem.Image   = StaticImages.SysTrayNext;
            NextToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            NextToolStripMenuItem.Text    = "Next";


            iSeparator3      = new ToolStripSeparator();
            iSeparator3.Size = new System.Drawing.Size(174, 6);


            MuteToolStripMenuItem         = new ToolStripMenuItem();
            MuteToolStripMenuItem.Enabled = false;
            MuteToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            MuteToolStripMenuItem.Text    = "Mute";


            iSeparator4      = new ToolStripSeparator();
            iSeparator4.Size = new System.Drawing.Size(174, 6);


            ExitToolStripMenuItem        = new ToolStripMenuItem();
            ExitToolStripMenuItem.Size   = new System.Drawing.Size(177, 22);
            ExitToolStripMenuItem.Text   = "Exit";
            ExitToolStripMenuItem.Click += (d, e) =>
            {
                if (EventClosed != null)
                {
                    EventClosed(this, EventArgs.Empty);
                }
            };

            NotifyIcon = new NotifyIcon();
            NotifyIcon.ContextMenuStrip = new ContextMenuStrip();
            NotifyIcon.ContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
                ShowToolStripMenuItem,
                iSeparator1,
                RepeatToolStripMenuItem,
                ShuffleToolStripMenuItem,
                iSeparator2,
                PreviousToolStripMenuItem,
                PlayToolStripMenuItem,
                NextToolStripMenuItem,
                iSeparator3,
                MuteToolStripMenuItem,
                iSeparator4,
                ExitToolStripMenuItem
            });
            NotifyIcon.MouseDoubleClick += new MouseEventHandler(NotifyIcon_MouseDoubleClick);
            try
            {
                Uri iconUri = new Uri("pack://application:,,,/icon.ico", UriKind.RelativeOrAbsolute); //make sure your path is correct, and the icon set as Resource
                using (var iconStream = System.Windows.Application.GetResourceStream(iconUri).Stream)
                {
                    NotifyIcon.Icon = new System.Drawing.Icon(iconStream);
                }
            }
            catch (System.Runtime.InteropServices.ExternalException ex)
            {
                UserLog.WriteLine("COM error caught creating icon for SystrayForm: " + ex);
            }
            NotifyIcon.Visible = true;
            NotifyIcon.Text    = aParent.Title;
            // hide the form on startup
            this.Visible     = false;
            this.WindowState = FormWindowState.Minimized;
            Show();
            Hide();
        }
예제 #5
0
        public SystrayForm(KinskyDesktop aParent)
        {
            InitializeComponent();
            iParent = aParent;

            ShowToolStripMenuItem        = new ToolStripMenuItem();
            ShowToolStripMenuItem.Size   = new System.Drawing.Size(177, 22);
            ShowToolStripMenuItem.Text   = "Hide Kinsky";
            ShowToolStripMenuItem.Click += (d, e) =>
            {
                if (aParent.WindowState == System.Windows.WindowState.Minimized)
                {
                    aParent.WindowState = System.Windows.WindowState.Normal;
                }
                else
                {
                    aParent.WindowState = System.Windows.WindowState.Minimized;
                }
            };

            aParent.StateChanged += (d, e) =>
            {
                if (aParent.WindowState == System.Windows.WindowState.Minimized)
                {
                    ShowToolStripMenuItem.Text = "Show Kinsky";
                }
                else
                {
                    ShowToolStripMenuItem.Text = "Hide Kinsky";
                }
            };


            iSeparator1      = new ToolStripSeparator();
            iSeparator1.Size = new System.Drawing.Size(174, 6);


            RepeatToolStripMenuItem         = new ToolStripMenuItem();
            RepeatToolStripMenuItem.Enabled = false;
            RepeatToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            RepeatToolStripMenuItem.Text    = "Repeat";


            ShuffleToolStripMenuItem         = new ToolStripMenuItem();
            ShuffleToolStripMenuItem.Enabled = false;
            ShuffleToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            ShuffleToolStripMenuItem.Text    = "Shuffle";


            iSeparator2      = new ToolStripSeparator();
            iSeparator2.Size = new System.Drawing.Size(174, 6);


            PreviousToolStripMenuItem         = new ToolStripMenuItem();
            PreviousToolStripMenuItem.Enabled = false;
            PreviousToolStripMenuItem.Image   = StaticImages.SysTrayPrevious;
            PreviousToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            PreviousToolStripMenuItem.Text    = "Previous";


            PlayToolStripMenuItem         = new ToolStripMenuItem();
            PlayToolStripMenuItem.Enabled = false;
            PlayToolStripMenuItem.Image   = StaticImages.SysTrayPlay;
            PlayToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            PlayToolStripMenuItem.Text    = "Play";


            NextToolStripMenuItem         = new ToolStripMenuItem();
            NextToolStripMenuItem.Enabled = false;
            NextToolStripMenuItem.Image   = StaticImages.SysTrayNext;
            NextToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            NextToolStripMenuItem.Text    = "Next";


            iSeparator3      = new ToolStripSeparator();
            iSeparator3.Size = new System.Drawing.Size(174, 6);


            MuteToolStripMenuItem         = new ToolStripMenuItem();
            MuteToolStripMenuItem.Enabled = false;
            MuteToolStripMenuItem.Size    = new System.Drawing.Size(177, 22);
            MuteToolStripMenuItem.Text    = "Mute";


            iSeparator4      = new ToolStripSeparator();
            iSeparator4.Size = new System.Drawing.Size(174, 6);


            ExitToolStripMenuItem        = new ToolStripMenuItem();
            ExitToolStripMenuItem.Size   = new System.Drawing.Size(177, 22);
            ExitToolStripMenuItem.Text   = "Exit";
            ExitToolStripMenuItem.Click += (d, e) =>
            {
                if (EventClosed != null)
                {
                    EventClosed(this, EventArgs.Empty);
                }
            };

            NotifyIcon = new NotifyIcon();
            NotifyIcon.ContextMenuStrip = new ContextMenuStrip();
            NotifyIcon.ContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
                ShowToolStripMenuItem,
                iSeparator1,
                RepeatToolStripMenuItem,
                ShuffleToolStripMenuItem,
                iSeparator2,
                PreviousToolStripMenuItem,
                PlayToolStripMenuItem,
                NextToolStripMenuItem,
                iSeparator3,
                MuteToolStripMenuItem,
                iSeparator4,
                ExitToolStripMenuItem
            });
            NotifyIcon.MouseDoubleClick += new MouseEventHandler(NotifyIcon_MouseDoubleClick);
            Bitmap bmp = KinskyDesktopWpf.StaticImages.KinskyIcon;

            try
            {
                NotifyIcon.Icon = System.Drawing.Icon.FromHandle((bmp).GetHicon());
            }
            catch (System.Runtime.InteropServices.ExternalException ex)
            {
                UserLog.WriteLine("COM error caught creating icon for SystrayForm: " + ex);
            }
            NotifyIcon.Visible = true;
            NotifyIcon.Text    = aParent.Title;
            // hide the form on startup
            this.Visible     = false;
            this.WindowState = FormWindowState.Minimized;
            Show();
            Hide();
        }