|
using System.Windows;
using System.Windows.Controls;
using ReflectionStudio.Core.Events;
using System;
namespace ReflectionStudio.Components.UserControls
{
/// <summary>
/// Interaction logic for StatusBar.xaml
/// </summary>
public partial class StatusBar : UserControl
{
public StatusBar()
{
InitializeComponent();
}
#region --------------------PROPERTIES--------------------
public bool CanZoom
{
get { return ZoomPart.IsEnabled; }
set { ZoomPart.IsEnabled = value; }
}
#endregion
#region --------------------EVENT HANDLING--------------------
internal void OnStatusChange(object sender, StatusEventArgs e)
{
switch (e.StatusType)
{
case StatusEventType.StartProgress:
this.tbMessage.Text = e.Info.Details;
this.progressBar.Visibility = Visibility.Visible;
this.progressBar.IsIndeterminate = true;
break;
case StatusEventType.StopProgress:
this.tbMessage.Text = e.Info.Details;
this.progressBar.Visibility = Visibility.Hidden;
this.progressBar.IsIndeterminate = false;
break;
}
}
internal void OnMessage(object sender, MessageEventArgs e)
{
if (e.Info.Details != string.Empty && e.Info.Type == MessageEventType.Info)
this.tbMessage.Text = e.Info.Details;
}
#endregion
#region --------------------ZOOM HANDLING--------------------
/// <summary>
/// Event delegate
/// </summary>
public event EventHandler<ZoomRoutedEventArgs> ZoomChanged;
/// <summary>
/// Internal function to raise zzom event
/// </summary>
/// <param name="type"></param>
private void RaiseZoomEvent(double zoom)
{
if (ZoomChanged != null)
ZoomChanged(this, new ZoomRoutedEventArgs(zoom));
}
/// <summary>
/// Increase the slider
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnMoreZoom_Click(object sender, RoutedEventArgs e)
{
sliderZoom.Value += 1;
}
/// <summary>
/// decrease the slider
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLessZoom_Click(object sender, RoutedEventArgs e)
{
sliderZoom.Value -= 1;
}
/// <summary>
/// When slider value changes, raise an event
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void sliderZoom_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
RaiseZoomEvent(e.NewValue);
}
/// <summary>
/// If zoom change in document, receive the event here (must be plugged in doc activation)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void OnZoomChanged(object sender, ZoomRoutedEventArgs e)
{
this.progressBar.Value = e.Scale;
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
WPF and MVVM fan, I practice C # in all its forms from the beginning of the NET Framework without mentioning C ++ / MFC and other software packages such as databases, ASP, WCF, Web & Windows services, Application, and now Core and UWP.
In my wasted hours, I am guilty of having fathered C.B.R. and its cousins C.B.R. for WinRT and UWP on the Windows store.
But apart from that, I am a great handyman ... the house, a rocket stove to heat the jacuzzi and the last one: a wood oven for pizza, bread, and everything that goes inside
https://guillaumewaser.wordpress.com/
https://fouretcompagnie.wordpress.com/