source: trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/TextInputWrapper.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.3 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;
16
17namespace WorkspaceManager.View.VisualComponents
18{
19    /// <summary>
20    /// Interaction logic for TextInputWrapper.xaml
21    /// </summary>
22    public partial class TextInputWrapper : UserControl
23    {
24        public event EventHandler<TextInputDeleteEventArgs> Delete;
25
26        public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register("IsSelected", typeof(bool), typeof(TextInputWrapper));
27        public bool IsSelected
28        {
29            get
30            {
31                return (bool)base.GetValue(IsSelectedProperty);
32            }
33            set
34            {
35                base.SetValue(IsSelectedProperty, value);
36            }
37        }
38
39        public TextModel Model { get; set; }
40        public Point Position { get; set; }
41
42        private UserContentWrapper ContentParent;
43
44        public TextInputWrapper()
45        {
46            InitializeComponent();
47        }
48
49        public TextInputWrapper(Model.TextModel model, Point point, UserContentWrapper userContentWrapper)
50        {
51            InitializeComponent();
52            this.ParentPanel.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(TextInputWrapper_PreviewMouseLeftButtonDown);
53            //this.MouseRightButtonDown += new MouseButtonEventHandler(TextInputWrapper_MouseRightButtonDown);
54            this.Loaded += new RoutedEventHandler(TextInputWrapper_Loaded);
55            this.DataContext = this;
56            this.Model = model;
57            this.Position = point;
58            this.ContentParent = userContentWrapper;
59            this.RenderTransform = new TranslateTransform(point.X, point.Y);
60        }
61
62        void TextInputWrapper_Loaded(object sender, RoutedEventArgs e)
63        {
64            this.Width = Model.Width;
65            this.Height = Model.Height;
66
67            this.ParentPanel.IsEnabled = Model.IsEnabled;
68        }
69
70        private void OverLayingControl_DragDelta_Move(object sender, DragDeltaEventArgs e)
71        {
72            (this.RenderTransform as TranslateTransform).X += e.HorizontalChange;
73            (this.RenderTransform as TranslateTransform).Y += e.VerticalChange;
74            Model.Position.X = (this.RenderTransform as TranslateTransform).X;
75            Model.Position.Y = (this.RenderTransform as TranslateTransform).Y;
76        }
77
78        private void delete()
79        {
80            if (this.Delete != null)
81                this.Delete.Invoke(this, new TextInputDeleteEventArgs { txt = this });
82        }
83
84        private void MenuItem_Click(object sender, RoutedEventArgs e)
85        {
86            this.delete();
87        }
88
89        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
90        {
91            MenuItem item = sender as MenuItem;
92            if (this.ParentPanel.IsEnabled == true)
93            {
94                this.ParentPanel.IsEnabled = false;
95                this.Model.IsEnabled = false;
96                this.ContentParent.SelectedItem = null;
97                return;
98            }
99
100            if (this.ParentPanel.IsEnabled == false)
101            {
102                this.ParentPanel.IsEnabled = true;
103                this.Model.IsEnabled = true;
104                this.ContentParent.SelectedItem = this;
105                return;
106            }
107        }
108
109        void TextInputWrapper_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
110        {
111            this.ContentParent.SelectedItem = this;
112            this.IsSelected = true;
113        }
114
115        //void ImageWrapper_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
116        //{
117        //    this.ContextMenu.PlacementTarget = this;
118        //    this.ContextMenu.IsOpen = true;
119        //}
120
121        private void IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
122        {
123            Panel panel = sender as Panel;
124            if (panel.IsEnabled == true)
125            {
126                FixUnfixMenuItem.Header = "Fix";
127                return;
128            }
129
130            if (panel.IsEnabled == false)
131            {
132                FixUnfixMenuItem.Header = "Unfix";
133                return;
134            }
135        }
136
137        private void Thumb_DragDelta(object sender, DragDeltaEventArgs e)
138        {
139            Thumb t = sender as Thumb;
140
141            if (t.Name == "BottomRightDelta")
142            {
143                if ((this.ActualHeight + e.VerticalChange) > 0)
144                    this.Height = this.ActualHeight + e.VerticalChange;
145
146                if ((this.ActualWidth + e.HorizontalChange) > 0)
147                    this.Width = this.ActualWidth + e.HorizontalChange;
148
149                Model.Height = this.ActualHeight;
150                Model.Width = this.ActualWidth;
151            }
152        }
153    }
154
155    public class TextInputDeleteEventArgs : EventArgs
156    {
157        public TextInputWrapper txt;
158    }
159}
Note: See TracBrowser for help on using the repository browser.