using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MBS.Framework.UserInterface;
using MBS.Framework.UserInterface.Controls.Docking;
using UniversalEditor.ObjectModels.Project;
using UniversalEditor.ObjectModels.Solution;
namespace UniversalEditor.UserInterface
{
public interface IHostApplicationWindow
{
Document NewFile();
void NewProject(bool combineObjects = false);
void OpenFile();
void OpenFile(params string[] fileNames);
void OpenFile(params Document[] documents);
void OpenProject(bool combineObjects = false);
void OpenProject(string FileName, bool combineObjects = false);
bool SaveFile();
bool SaveFileAs();
bool SaveFileAs(Accessor accessor, DataFormat df);
void SaveProject();
void SaveProjectAs();
void SaveProjectAs(string FileName, DataFormat df);
void SaveAll();
///
/// Switches the current window's perspective.
///
/// The index of the perspective to switch to.
void SwitchPerspective(int index);
void CloseFile(DockingWindow dw = null);
void CloseProject();
void CloseWindow();
void PrintDocument();
void ShowDocumentPropertiesDialog();
///
/// Gets the s (center-docked s) contained within all s in this
/// .
///
/// The s contained within all s in this .
Page[] GetPages();
Editor GetCurrentEditor();
Control ActiveControl { get; }
bool FullScreen { get; set; }
///
/// Displays the "Options" dialog (on Windows, under the "Tools" menu; on Linux, under the "Edit"
/// menu, labeled as "Preferences").
///
/// True if the user accepted the dialog; false otherwise.
bool ShowOptionsDialog();
void UpdateStatus(string statusText);
void UpdateProgress(bool visible);
void UpdateProgress(int minimum, int maximium, int value);
void Present(DateTime timestamp = default(DateTime));
void ShowStartPage();
///
/// Shows or hides the window list based on the given options.
///
/// True if the window list should be shown; false if the window list should be hidden.
/// True if the window list should be presented as a modal dialog; false if it should be presented as a popup (for example, during a window switch action).
void SetWindowListVisible(bool visible, bool modal);
StatusBar StatusBar { get; }
ProjectObjectModel CurrentProject { get; set; }
SolutionObjectModel CurrentSolution { get; set; }
Document.ReadOnlyDocumentCollection Documents { get; }
Editor.ReadOnlyEditorCollection Editors { get; }
}
public class IHostApplicationWindowCollection
: System.Collections.ObjectModel.Collection
{
}
}