using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Ink;
using System.Windows.Shapes;
namespace SketchAssistantWPF
{
public interface MVP_View
{
///
/// Updates the colour of a canvas.
///
/// The name of the canvas to be updated.
/// Whether or not the canvas is active.
void SetCanvasState(string canvasName, bool active);
///
/// Remove the current line.
///
void RemoveCurrLine();
///
/// Display the current line.
///
/// The current line to display
void DisplayCurrLine(Polyline line);
///
/// Removes all Lines from the left canvas.
///
void RemoveAllLeftLines();
///
/// Removes all lines in the right canvas.
///
void RemoveAllRightLines();
///
/// Adds another Line that will be displayed in the left display.
///
/// The new Polyline to be added displayed.
void AddNewLineLeft(Polyline newLine);
///
/// Adds another Line that will be displayed in the right display.
///
/// The new Polyline to be added displayed.
void AddNewLineRight(Polyline newLine);
///
/// Enables the timer of the View, which will tick the Presenter.
///
void EnableTimer();
///
/// A function that opens a file dialog and returns the filename.
///
/// The filter that should be applied to the new Dialog.
/// Returns the FileName and the SafeFileName if the user correctly selects a file,
/// else returns a tuple with empty strigns
Tuple openNewDialog(String Filter);
///
/// Sets the contents of the load status indicator label.
///
/// The new contents
void SetToolStripLoadStatus(String message);
///
/// Sets the contents of the last action taken indicator label.
///
/// The new contents
void SetLastActionTakenText(String message);
///
/// Changes the states of a tool strip button.
///
/// The name of the button.
/// The new state of the button.
void SetToolStripButtonStatus(String buttonName, MainWindow.ButtonState state);
///
/// shows the given info message in a popup and asks the user to aknowledge it
///
/// the message to show
void ShowInfoMessage(String message);
///
/// Shows a warning box with the given message (Yes/No Buttons)and returns true if the user aknowledges it.
///
/// The message of the warning.
/// True if the user confirms (Yes), negative if he doesn't (No)
bool ShowWarning(String message);
///
/// If the mouse is pressed or not.
///
/// Whether or not the mouse is pressed.
bool IsMousePressed();
///
/// Adds a point to the right canvas
///
/// The point
/// The original line object
void AddNewPointRight(Ellipse newPoint, InternalLine line);
///
/// Adds a point to the left canvas
///
/// The point
void AddNewPointLeft(Ellipse newPoint);
///
/// Returns the cursor position.
///
/// The cursor Position
Point GetCursorPosition();
///
/// Sets the contents of the last action taken indicator label.
///
/// The new contents
void SetOptiTrackText(String message);
///
/// Sets the contents of the status bar label containing
/// the similarity score of the left and right image.
///
/// The message to be set,
/// will be set to the default value if left empty.
void SetImageSimilarityText(string message);
}
}