seb-win-refactoring/SafeExamBrowser.UserInterface.Contracts/Browser/IBrowserWindow.cs

149 lines
4.4 KiB
C#

/*
* Copyright (c) 2023 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
using System;
using SafeExamBrowser.Browser.Contracts.Events;
using SafeExamBrowser.Core.Contracts.Resources.Icons;
using SafeExamBrowser.UserInterface.Contracts.Browser.Data;
using SafeExamBrowser.UserInterface.Contracts.Browser.Events;
using SafeExamBrowser.UserInterface.Contracts.Windows;
namespace SafeExamBrowser.UserInterface.Contracts.Browser
{
/// <summary>
/// Defines the functionality of a browser window, i.e. a window with an embedded browser instance (see <see cref="IBrowserControl"/>).
/// </summary>
public interface IBrowserWindow : IWindow
{
/// <summary>
/// Enables the backward navigation button.
/// </summary>
bool CanNavigateBackwards { set; }
/// <summary>
/// Enables the forward navigation button.
/// </summary>
bool CanNavigateForwards { set; }
/// <summary>
/// The native handle of the window.
/// </summary>
IntPtr Handle { get; }
/// <summary>
/// Event fired when the user changed the URL.
/// </summary>
event AddressChangedEventHandler AddressChanged;
/// <summary>
/// Event fired when the user would like to navigate backwards.
/// </summary>
event ActionRequestedEventHandler BackwardNavigationRequested;
/// <summary>
/// Event fired when the user would like to open the developer console.
/// </summary>
event ActionRequestedEventHandler DeveloperConsoleRequested;
/// <summary>
/// Event fired when the user would like to search the current page.
/// </summary>
event FindRequestedEventHandler FindRequested;
/// <summary>
/// Event fired when the user would like to navigate forwards.
/// </summary>
event ActionRequestedEventHandler ForwardNavigationRequested;
/// <summary>
/// Event fired when the user would like to navigate home.
/// </summary>
event ActionRequestedEventHandler HomeNavigationRequested;
/// <summary>
/// Event fired when the browser window wants to lose focus to the taskbar.
/// </summary>
event LoseFocusRequestedEventHandler LoseFocusRequested;
/// <summary>
/// Event fired when the user would like to reload the current page.
/// </summary>
event ActionRequestedEventHandler ReloadRequested;
/// <summary>
/// Event fired when the user would like to zoom in.
/// </summary>
event ActionRequestedEventHandler ZoomInRequested;
/// <summary>
/// Event fired when the user would like to zoom out.
/// </summary>
event ActionRequestedEventHandler ZoomOutRequested;
/// <summary>
/// Event fired when the user would like to reset the zoom factor.
/// </summary>
event ActionRequestedEventHandler ZoomResetRequested;
/// <summary>
/// Sets the focus on the address bar of the window.
/// </summary>
void FocusAddressBar();
/// <summary>
/// Sets the focus on the browser content of the window.
/// </summary>
void FocusBrowser();
/// <summary>
/// Sets the focus on the toolbar of the window. If the parameter is set to true, the first focusable control on the toolbar gets focused.
/// If it is set to false, the last one.
/// </summary>
void FocusToolbar(bool forward);
/// <summary>
/// Displays the find toolbar to search the content of a page.
/// </summary>
void ShowFindbar();
/// <summary>
/// Updates the address bar of the browser window to the given value.
/// </summary>
void UpdateAddress(string adress);
/// <summary>
/// Updates the icon of the browser window.
/// </summary>
void UpdateIcon(IconResource icon);
/// <summary>
/// Updates the download state for the given item.
/// </summary>
void UpdateDownloadState(DownloadItemState state);
/// <summary>
/// Updates the loading state according to the given value.
/// </summary>
void UpdateLoadingState(bool isLoading);
/// <summary>
/// Updates the page load progress according to the given value.
/// </summary>
void UpdateProgress(double value);
/// <summary>
/// Sets the title of the browser window to the given value.
/// </summary>
void UpdateTitle(string title);
/// <summary>
/// Updates the display value of the current page zoom. Value is expected to be in percentage.
/// </summary>
void UpdateZoomLevel(double value);
}
}