source: trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/TextInputWrapper.xaml.cs @ 2388

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

-fixed pathfinding
-fixed line drawing
-added Colorpicker
-fixed lock/unlock at TextInputWrapper
-feature: Background and TextForeground in TextInputWrapper added
-fixed a issue With loading and such
-WorkspaceModel doesn't throw exception anymore (Samples functional again)
-fixed some Styles
-Startable implemented and loaded right
-Startable Logo moved

File size: 6.9 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 static readonly DependencyProperty IsFixedProperty = DependencyProperty.Register("IsFixed", typeof(bool), typeof(TextInputWrapper));
40        public bool IsFixed
41        {
42            get
43            {
44                return (bool)base.GetValue(IsFixedProperty);
45            }
46            set
47            {
48                if (value)
49                {
50                    this.ParentPanel.IsEnabled = false;
51                    this.Model.IsEnabled = false;
52                    this.ContentParent.SelectedItem = null;
53                }
54                else
55                {
56                    this.ParentPanel.IsEnabled = true;
57                    this.Model.IsEnabled = true;
58                    this.ContentParent.SelectedItem = this;
59                }
60                base.SetValue(IsFixedProperty, value);
61            }
62        }
63
64        public TextModel Model { get; set; }
65        public Point Position { get; set; }
66
67        private ColorPickPopUp pop1 = new ColorPickPopUp();
68        private ColorPickPopUp pop2 = new ColorPickPopUp();
69        private UserContentWrapper ContentParent;
70
71        public TextInputWrapper()
72        {
73            InitializeComponent();
74        }
75
76        public TextInputWrapper(Model.TextModel model, Point point, UserContentWrapper userContentWrapper)
77        {
78            InitializeComponent();
79            this.ParentPanel.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(TextInputWrapper_PreviewMouseLeftButtonDown);
80            //this.MouseRightButtonDown += new MouseButtonEventHandler(TextInputWrapper_MouseRightButtonDown);
81            this.Loaded += new RoutedEventHandler(TextInputWrapper_Loaded);
82            this.DataContext = this;
83            this.Model = model;
84            this.Model.loadRTB(this.mainRTB);
85            this.mainRTB.TextChanged += MainRTBTextChanged;
86            this.Position = point;
87            this.ContentParent = userContentWrapper;
88            this.RenderTransform = new TranslateTransform(point.X, point.Y);
89            this.IsFixed = false;
90        }
91
92        /// <summary>
93        /// Serializes the content of the RTB to the TextModel and
94        /// sets the editor to HasChanges=true
95        ///
96        /// called if the RTB is changed
97        /// </summary>
98        /// <param name="sender"></param>
99        /// <param name="args"></param>
100        private void MainRTBTextChanged(object sender, TextChangedEventArgs args)
101        {
102            this.Model.saveRTB(this.mainRTB);           
103        }
104
105        void TextInputWrapper_Loaded(object sender, RoutedEventArgs e)
106        {
107            this.Width = Model.Width;
108            this.Height = Model.Height;
109            this.ParentPanel.IsEnabled = Model.IsEnabled;           
110        }
111
112        private void OverLayingControl_DragDelta_Move(object sender, DragDeltaEventArgs e)
113        {
114            (this.RenderTransform as TranslateTransform).X += e.HorizontalChange;
115            (this.RenderTransform as TranslateTransform).Y += e.VerticalChange;
116            Model.Position.X = (this.RenderTransform as TranslateTransform).X;
117            Model.Position.Y = (this.RenderTransform as TranslateTransform).Y;
118        }
119
120        private void delete()
121        {
122            if (this.Delete != null)
123                this.Delete.Invoke(this, new TextInputDeleteEventArgs { txt = this });
124        }
125
126        private void MenuItem_Click(object sender, RoutedEventArgs e)
127        {
128            this.delete();
129        }
130
131        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
132        {
133            if (IsFixed)
134            {
135                IsFixed = false;
136            }
137            else
138            {
139                IsFixed = true;
140            }
141        }
142
143        void TextInputWrapper_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
144        {
145            this.ContentParent.SelectedItem = this;
146            this.IsSelected = true;
147        }
148
149        //void ImageWrapper_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
150        //{
151        //    this.ContextMenu.PlacementTarget = this;
152        //    this.ContextMenu.IsOpen = true;
153        //}
154
155        private void IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
156        {
157            Panel panel = sender as Panel;
158            if (panel.IsEnabled == true)
159            {
160                FixUnfixMenuItem.Header = "Fix";
161                return;
162            }
163
164            if (panel.IsEnabled == false)
165            {
166                FixUnfixMenuItem.Header = "Unfix";
167                return;
168            }
169        }
170
171        private void Thumb_DragDelta(object sender, DragDeltaEventArgs e)
172        {
173            Thumb t = sender as Thumb;
174
175            if (t.Name == "BottomRightDelta")
176            {
177                if ((this.ActualHeight + e.VerticalChange) > 0)
178                    this.Height = this.ActualHeight + e.VerticalChange;
179
180                if ((this.ActualWidth + e.HorizontalChange) > 0)
181                    this.Width = this.ActualWidth + e.HorizontalChange;
182
183                Model.Height = this.ActualHeight;
184                Model.Width = this.ActualWidth;
185            }
186        }
187
188        private void BGColor_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
189        {
190            pop1.IsOpen = false;
191            pop1 = new ColorPickPopUp(sender as Rectangle) { IsOpen = true };
192        }
193
194        private void FontColor_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
195        {
196            pop1.IsOpen = false;
197            pop1 = new ColorPickPopUp(sender as Rectangle) { IsOpen = true };
198        }       
199    }
200
201    public class TextInputDeleteEventArgs : EventArgs
202    {
203        public TextInputWrapper txt;
204    }
205}
Note: See TracBrowser for help on using the repository browser.