// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using System.Windows;
using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Gui
{
[SDService]
public interface IStatusBarService
{
//bool Visible { get; set; }
///
/// Sets the caret position shown in the status bar.
///
/// column number
/// line number
/// character number
void SetCaretPosition(int x, int y, int charOffset);
//void SetInsertMode(bool insertMode);
///
/// Sets the message shown in the left-most pane in the status bar.
///
/// The message text.
/// Whether to highlight the text
/// Icon to show next to the text
void SetMessage(string message, bool highlighted = false, IImage icon = null);
///
/// Creates a new that can be used to report
/// progress to the status bar.
///
/// Cancellation token to use for
///
/// The new IProgressMonitor instance. This return value must be disposed
/// once the background task has completed.
IProgressMonitor CreateProgressMonitor(CancellationToken cancellationToken = default(CancellationToken));
///
/// Shows progress for the specified ProgressCollector in the status bar.
///
void AddProgress(ProgressCollector progress);
}
}