client/src/Iri.Modernisation.Controls/View/HeaderControl/ButtonHeaderControl.xaml.cs
author Matthieu Totet
Wed, 18 Nov 2009 15:30:31 +0100
changeset 0 249d70e7b32d
child 4 cf756528609e
permissions -rw-r--r--
Create Directories & Project
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     1
using System;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     2
using System.Collections.Generic;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     3
using System.Linq;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     4
using System.Net;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     5
using System.Windows;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     6
using System.Windows.Controls;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     7
using System.Windows.Documents;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     8
using System.Windows.Input;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
     9
using System.Windows.Media;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    10
using System.Windows.Media.Animation;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    11
using System.Windows.Shapes;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    12
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    13
namespace Iri.Modernisation.Controls.View
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    14
{
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    15
   
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    16
    public partial class ButtonHeaderControl : UserControl
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    17
    {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    18
        public ButtonHeaderControl()
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    19
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    20
            InitializeComponent();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    21
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    22
        private bool _isMouseInside = false;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    23
        Point tempPoint = new Point();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    24
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    25
        private void LayoutRoot_MouseMove(object sender, MouseEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    26
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    27
            _isMouseInside = true;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    28
            Point p = e.GetPosition(this);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    29
            tempPoint.X = 1-  (p.X / ActualWidth);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    30
            //tempPoint.Y = p.Y / ActualHeight;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    31
            tempPoint.Y = 1 - (p.Y / ActualWidth); ;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    32
            brushLight.Center = tempPoint;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    33
            brushLight.GradientOrigin = tempPoint;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    34
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    35
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    36
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    37
        string _title = String.Empty;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    38
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    39
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    40
        /// Title of the toolbar item
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    41
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    42
        public string Title
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    43
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    44
            get { return _title; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    45
            set { _title = value; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    46
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    47
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    48
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    49
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    50
        /// The transition color when we hover over the button
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    51
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    52
        public Color TransitionColor
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    53
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    54
            get
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    55
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    56
                return transitionColor.Color;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    57
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    58
            set
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    59
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    60
                transitionColor.Color = value;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    61
                transitionSubColor.Color = Color.FromArgb(64, value.R, value.G, value.B);
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    62
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    63
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    64
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    65
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    66
        /// The source of the image to display for the control
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    67
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    68
        public ImageSource ImageSource
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    69
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    70
            get { return imgItem.Source; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    71
            set { imgItem.Source = value; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    72
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    73
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    74
        private void LayoutRoot_MouseEnter(object sender, MouseEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    75
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    76
            _isMouseInside = true;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    77
            animEnter.Begin();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    78
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    79
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    80
        private void LayoutRoot_MouseLeave(object sender, MouseEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    81
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    82
            _isMouseInside = false;
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    83
            animLeave.Begin();
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    84
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    85
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    86
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    87
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    88
        /// Uri to navigate to when clicked
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    89
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    90
        public string NavigateUri { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    91
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    92
        /// <summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    93
        /// true to open link in new window, false to open link in current window
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    94
        /// default is false
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    95
        /// </summary>
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    96
        public bool OpenInNewWindow { get; set; }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    97
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    98
        private void UserControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
    99
        {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   100
            if (NavigateUri != null)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   101
            {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   102
                if (OpenInNewWindow)
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   103
                {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   104
                    System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(NavigateUri, UriKind.Absolute), "_new");
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   105
                }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   106
                else
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   107
                {
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   108
                    System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(NavigateUri, UriKind.Absolute));
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   109
                }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   110
            }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   111
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   112
        }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   113
    }
249d70e7b32d Create Directories & Project
Matthieu Totet
parents:
diff changeset
   114
}