예제 #1
0
		public override void ShowGlobalProgressBarIndeterminate ()
		{
			if (!TaskbarManager.IsPlatformSupported)
				return;
				
			IntPtr handle = GdkWin32.HgdiobjGet (IdeApp.Workbench.RootWindow.GdkWindow);
			TaskbarManager.Instance.SetProgressState (TaskbarProgressBarState.Indeterminate, handle);
		}
예제 #2
0
 internal override void SetMainWindowDecorations(Gtk.Window window)
 {
     // Only initialize elements for Win7+.
     if (TaskbarManager.IsPlatformSupported)
     {
         TaskbarManager.Instance.SetApplicationIdForSpecificWindow(GdkWin32.HgdiobjGet(window.GdkWindow), BrandingService.ApplicationName);
     }
 }
예제 #3
0
        public override bool GetIsFullscreen(Components.Window window)
        {
            WINDOWPLACEMENT lpwndpl = new WINDOWPLACEMENT();

            lpwndpl.length = Marshal.SizeOf(lpwndpl);

            Gtk.Window controlWindow = window;
            IntPtr     handle        = GdkWin32.HgdiobjGet(controlWindow.GdkWindow);

            Win32.GetWindowPlacement(handle, ref lpwndpl);
            return(lpwndpl.showCmd == Win32.SW_SHOWMAXIMIZED);
        }
        public override void ShowGlobalProgressBarError()
        {
            if (!TaskbarManager.IsPlatformSupported)
            {
                return;
            }

            IntPtr handle = GdkWin32.HgdiobjGet(IdeApp.Workbench.RootWindow.GdkWindow);

            TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error, handle);
            TaskbarManager.Instance.SetProgressValue(1, 1, handle);
        }
예제 #5
0
		public override void SetGlobalProgressBar (double progress)
		{
			if (!TaskbarManager.IsPlatformSupported)
				return;

			IntPtr handle = GdkWin32.HgdiobjGet (IdeApp.Workbench.RootWindow.GdkWindow);
			if (progress >= 1.0) {
				TaskbarManager.Instance.SetProgressState (TaskbarProgressBarState.NoProgress, handle);
			} else {
				TaskbarManager.Instance.SetProgressState (TaskbarProgressBarState.Normal, handle);
				TaskbarManager.Instance.SetProgressValue ((int)(progress * 100f), 100, handle);
			}
		}
예제 #6
0
        internal override void SetMainWindowDecorations(Gtk.Window window)
        {
            Uri uri = new Uri("pack://application:,,,/WindowsPlatform;component/Styles.xaml");

            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
            {
                Source = uri
            });

            // Only initialize elements for Win7+.
            if (TaskbarManager.IsPlatformSupported)
            {
                TaskbarManager.Instance.SetApplicationIdForSpecificWindow(GdkWin32.HgdiobjGet(window.GdkWindow), BrandingService.ApplicationName);
            }
        }
예제 #7
0
		public override void ShowGlobalProgressBarError ()
		{
			if (!TaskbarManager.IsPlatformSupported)
				return;

			IntPtr handle = GdkWin32.HgdiobjGet (IdeApp.Workbench.RootWindow.GdkWindow);
			TaskbarManager.Instance.SetProgressState (TaskbarProgressBarState.Error, handle);
			TaskbarManager.Instance.SetProgressValue (1, 1, handle);

			// Added a timeout to removing the red progress bar. This is to fix the dependency on a status bar update
			// that won't happen until the status bar receives another update.
			GLib.Timeout.Add (500, delegate {
				TaskbarManager.Instance.SetProgressState (TaskbarProgressBarState.NoProgress, handle);
				return false;
			});
		}
        private void UpdateJumpList()
        {
            Taskbar.JumpList jumplist = Taskbar.JumpList.CreateJumpListForIndividualWindow(
                MonoDevelop.Core.BrandingService.ApplicationName,
                GdkWin32.HgdiobjGet(MessageService.RootWindow.GdkWindow)
                );
            jumplist.KnownCategoryToDisplay = Taskbar.JumpListKnownCategoryType.Neither;

            Taskbar.JumpListCustomCategory recentProjectsCategory = new Taskbar.JumpListCustomCategory("Recent Solutions");
            Taskbar.JumpListCustomCategory recentFilesCategory    = new Taskbar.JumpListCustomCategory("Recent Files");

            jumplist.AddCustomCategories(recentProjectsCategory, recentFilesCategory);
            jumplist.KnownCategoryOrdinalPosition = 0;

            foreach (RecentFile recentProject in recentFiles.GetProjects())
            {
                // Windows is picky about files that are added to the jumplist. Only files that MonoDevelop
                // has been registered as supported in the registry can be added.
                bool isSupportedFileExtension = this.supportedExtensions.Contains(Path.GetExtension(recentProject.FileName));
                if (isSupportedFileExtension)
                {
                    recentProjectsCategory.AddJumpListItems(new Taskbar.JumpListLink(exePath, recentProject.DisplayName)
                    {
                        Arguments     = MonoDevelop.Core.Execution.ProcessArgumentBuilder.Quote(recentProject.FileName),
                        IconReference = new Microsoft.WindowsAPICodePack.Shell.IconReference(exePath, 0),
                    });
                }
            }

            foreach (RecentFile recentFile in recentFiles.GetFiles())
            {
                if (this.supportedExtensions.Contains(Path.GetExtension(recentFile.FileName)))
                {
                    recentFilesCategory.AddJumpListItems(new Taskbar.JumpListLink(exePath, recentFile.DisplayName)
                    {
                        Arguments     = MonoDevelop.Core.Execution.ProcessArgumentBuilder.Quote(recentFile.FileName),
                        IconReference = new Microsoft.WindowsAPICodePack.Shell.IconReference(exePath, 0),
                    });
                }
            }

            jumplist.Refresh();
        }
예제 #9
0
 public GtkWin32Proxy(Gtk.Window gtkWindow)
 {
     Handle = GdkWin32.HgdiobjGet(gtkWindow.RootWindow);
 }