source: trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/ImageWrapper.xaml.cs @ 1892

Last change on this file since 1892 was 1892, checked in by matkovic, 11 years ago

-Fullscreen enhanced
-TextInput added
-Picture scaling added
-Textinput scaling added
-Textinput format command added
-Several style changes
-Progressbar redesigned
-Last log message now appearing
-IControlContainer commenced
-Several icons added
-Plugin state now stored and loaded
-Plugin height and width now storing and loading
-Several misc changes

File size: 5.7 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows;
6using System.Windows.Controls;
7using System.Windows.Data;
8using System.Windows.Documents;
9using System.Windows.Input;
10using System.Windows.Media;
11using System.Windows.Media.Imaging;
12using System.Windows.Navigation;
13using System.Windows.Shapes;
14using WorkspaceManager.Model;
15using System.Windows.Controls.Primitives;
16using WorkspaceManager.View.Interface;
17using WorkspaceManager.View.Container;
18
19namespace WorkspaceManager.View.VisualComponents
20{
21
22    /// <summary>
23    /// Interaction logic for ImageWrapper.xaml
24    /// </summary>
25    public partial class ImageWrapper : UserControl
26    {
27        public event EventHandler<ImageDeleteEventArgs> Delete;
28
29        public Image Image { get; set; }
30        public Point Position { get; set; }
31        public ImageModel Model { get; set; }
32
33        private UserContentWrapper contentParent;
34
35        public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register("IsSelected", typeof(bool), typeof(ImageWrapper));
36
37        //private static void OnTestBoolPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
38        //{
39        //    var vm = (ImageWrapper)d;
40        //    vm.CoerceValue(TestDoubleProperty);
41        //}
42
43
44        public bool IsSelected
45        {
46            get
47            {
48                return (bool)base.GetValue(IsSelectedProperty);
49            }
50            set
51            {
52                base.SetValue(IsSelectedProperty, value);
53            }
54        }
55
56        public ImageWrapper(ImageModel model, Point point, UserContentWrapper parent)
57        {
58            InitializeComponent();
59            this.ParentPanel.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(ImageWrapper_PreviewMouseLeftButtonDown);
60            this.Loaded += new RoutedEventHandler(ImageWrapper_Loaded);
61            this.DataContext = this;
62            this.Model = model;
63            this.Image = model.getImage();
64            this.contentParent = parent;
65            this.Position = point;
66            this.Model.Position = point;
67            this.RenderTransform = new TranslateTransform(Position.X, Position.Y);
68            this.root.Background = new ImageBrush() {ImageSource = this.Image.Source, Stretch = Stretch.Fill};
69        }
70
71        void ImageWrapper_Loaded(object sender, RoutedEventArgs e)
72        {
73            if (Model.Width == 0 || Model.Height == 0)
74            {
75                this.Width = Image.Source.Width;
76                this.Height = Image.Source.Height;
77            }
78            else
79            {
80                this.Width = Model.Width;
81                this.Height = Model.Height;
82            }
83
84            this.ParentPanel.IsEnabled = Model.IsEnabled;
85        }
86
87        void ImageWrapper_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
88        {
89            this.contentParent.SelectedItem = this;
90            this.IsSelected = true;
91        }
92
93        public ImageWrapper()
94        {
95            InitializeComponent();
96        }
97
98        private void Thumb_DragDelta(object sender, DragDeltaEventArgs e)
99        {
100            Thumb t = sender as Thumb;
101
102            if (t.Name == "BottomRightDelta")
103            {
104                if ((this.ActualHeight + e.VerticalChange) > 0)
105                    this.Height = this.ActualHeight + e.VerticalChange;
106
107                if ((this.ActualWidth + e.HorizontalChange) > 0)
108                    this.Width = this.ActualWidth + e.HorizontalChange;
109
110                Model.Height = this.ActualHeight;
111                Model.Width = this.ActualWidth;
112            }
113        }
114
115        private void OverLayingControl_DragDelta_Move(object sender, DragDeltaEventArgs e)
116        {
117            (this.RenderTransform as TranslateTransform).X += e.HorizontalChange;
118            (this.RenderTransform as TranslateTransform).Y += e.VerticalChange;
119            Model.Position.X = (this.RenderTransform as TranslateTransform).X;
120            Model.Position.Y = (this.RenderTransform as TranslateTransform).Y;
121        }
122
123        private void delete()
124        {
125            if (this.Delete != null)
126                this.Delete.Invoke(this, new ImageDeleteEventArgs { img = this });
127        }
128
129        private void MenuItem_Click(object sender, RoutedEventArgs e)
130        {
131            this.delete();
132        }
133
134        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
135        {
136            MenuItem item = sender as MenuItem;
137            if (this.ParentPanel.IsEnabled == true)
138            {
139                this.ParentPanel.IsEnabled = false;
140                this.Model.IsEnabled = false;
141                this.contentParent.SelectedItem = null;
142                return;
143            }
144
145            if (this.ParentPanel.IsEnabled == false)
146            {
147                this.ParentPanel.IsEnabled = true;
148                this.Model.IsEnabled = true;
149                this.contentParent.SelectedItem = this;
150                return;
151            }
152        }
153
154        private void IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
155        {
156            Panel panel = sender as Panel;
157            if (panel.IsEnabled == true)
158            {
159                FixUnfixMenuItem.Header = "Fix";
160                return;
161            }
162
163            if (panel.IsEnabled == false)
164            {
165                FixUnfixMenuItem.Header = "Unfix";
166                return;
167            }
168        }
169
170    }
171
172    public class ImageDeleteEventArgs : EventArgs
173    {
174        public ImageWrapper img;
175    }
176}
Note: See TracBrowser for help on using the repository browser.