source: trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.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: 27.6 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.View.Interface;
15using WorkspaceManager.Model;
16using WorkspaceManager.View.VisualComponents;
17using System.Windows.Controls.Primitives;
18using System.Windows.Media.Animation;
19using WorkspaceManager;
20using System.Windows.Threading;
21using System.Threading;
22
23namespace WorkspaceManager.View.Container
24{
25    public enum PluginViewState
26    {   
27        Min,
28        Presentation,
29        Data,
30        Log,
31        Setting,
32    };
33
34    /// <summary>
35    /// Interaction logic for PluginContainerView.xaml
36    /// </summary>
37    public partial class PluginContainerView : UserControl, IDraggable, IUpdateableView
38    {
39        #region Events
40        public event EventHandler<ConnectorViewEventArgs> ConnectorMouseLeftButtonDown;
41        public event EventHandler<PluginContainerViewDeleteViewEventArgs> Delete;
42        public event EventHandler<PluginContainerViewFullScreenViewEventArgs> FullScreen;
43        #endregion
44
45        #region Private Variables
46
47        private List<UIElement> optionList = new List<UIElement>();
48        private int optionPointer = 0;
49
50        #endregion
51
52        #region Properties
53
54        public static readonly DependencyProperty IsFullscreenProperty = DependencyProperty.Register("IsFullscreen", typeof(bool), typeof(PluginContainerView));
55        public bool IsFullscreen
56        {
57            get
58            {
59                return (bool)base.GetValue(IsFullscreenProperty);
60            }
61            set
62            {
63                base.SetValue(IsFullscreenProperty, value);
64            }
65        }
66
67        public static readonly DependencyProperty ViewStateProperty = DependencyProperty.Register("ViewState", typeof(PluginViewState), typeof(PluginContainerView), new FrameworkPropertyMetadata(PluginViewState.Min));
68
69
70        public PluginViewState ViewState
71        {
72            get 
73            {
74                return (PluginViewState)base.GetValue(ViewStateProperty);
75            }
76            set
77            {
78
79                switch (value)
80                {
81                    case PluginViewState.Presentation:
82                        if (PresentationPanel.Child == null)
83                        {
84                            PluginBase.Width = PluginBase.MinWidth;
85                            PluginBase.Height = PluginBase.MinHeight;
86                            ViewPanel.Visibility = Visibility.Collapsed;
87                            break;
88                        }
89                        PluginBase.Width = Model.Width;
90                        PluginBase.Height = Model.Height;
91                        ViewPanel.Visibility = Visibility.Visible;
92                        break;
93
94                    case PluginViewState.Data:
95                        PluginBase.Width = Model.Width;
96                        PluginBase.Height = Model.Height;
97                        ViewPanel.Visibility = Visibility.Visible;
98                        break;
99                    case PluginViewState.Log:
100                        PluginBase.Width = Model.Width;
101                        PluginBase.Height = Model.Height;
102                        ViewPanel.Visibility = Visibility.Visible;
103                        break;
104                    case PluginViewState.Min:
105                        PluginBase.Width = PluginBase.MinWidth;
106                        PluginBase.Height = PluginBase.MinHeight;
107                        ViewPanel.Visibility = Visibility.Collapsed;
108                        break;
109
110                    case PluginViewState.Setting:
111
112                        break;
113                }
114
115                if((PluginViewState)value != PluginViewState.Min)
116                {
117                    BottomDelta.IsEnabled = true;
118                    RightDelta.IsEnabled = true;
119                    BottomRightDelta.IsEnabled = true;
120                }
121                else
122                {
123                    BottomDelta.IsEnabled = false;
124                    RightDelta.IsEnabled = false;
125                    BottomRightDelta.IsEnabled = false;
126                }
127                base.SetValue(ViewStateProperty, value);
128                this.Model.ViewState = value;
129            }
130        }
131
132        private Image icon;
133        public Image Icon
134        {
135            get
136            {
137                return icon;
138            }
139            set
140            {
141                icon = value;
142                icon.Stretch = Stretch.Uniform;
143                icon.Width = 40;
144                icon.Height = 40;
145                IconPanel.Child = icon;
146            }
147        }
148
149        private List<ConnectorView> connectorViewList;
150        public List<ConnectorView> ConnectorViewList
151        {
152            get { return connectorViewList; }
153            private set { connectorViewList = value; }
154        }
155
156        private PluginModel model;
157        public PluginModel Model
158        {
159            get { return model; }
160            private set { model = value; }
161        }
162
163        public bool CanDrag { get; set; }
164
165        #endregion
166
167        #region Contructors
168        public PluginContainerView()
169        {
170            InitializeComponent();
171        }
172
173        public PluginContainerView(PluginModel model)
174        {
175            InitializeComponent();
176            setBaseControl(model);
177            DataContext = this;
178
179            this.ViewState = Model.ViewState;
180
181            West.PreviewDrop += new DragEventHandler(Connector_Drop);
182            East.PreviewDrop += new DragEventHandler(Connector_Drop);
183            North.PreviewDrop += new DragEventHandler(Connector_Drop);
184            South.PreviewDrop += new DragEventHandler(Connector_Drop);
185
186            LogPanel.Child = new LogPresentation();
187            PresentationPanel.Child = Model.PluginPresentation;
188            SettingsPanel.Child = null;
189
190            foreach (ConnectorModel ConnectorModel in model.InputConnectors)
191            {
192                ConnectorView connector = new ConnectorView(ConnectorModel);
193                AddConnectorView(connector);
194                DataPanel.Children.Add(new DataPresentation(connector));
195            }
196
197            foreach (ConnectorModel ConnectorModel in model.OutputConnectors)
198            {
199                ConnectorView connector = new ConnectorView(ConnectorModel);
200                AddConnectorView(connector);
201                DataPanel.Children.Add(new DataPresentation(connector));
202            }
203        }
204
205        void Connector_Drop(object sender, DragEventArgs e)
206        {
207            StackPanel panel = sender as StackPanel;
208            try
209            {
210                if (e.Data.GetDataPresent("connector"))
211                {
212                    ConnectorView connector = e.Data.GetData("connector") as ConnectorView;
213                    if (panel.Children.Contains(connector))
214                        return;
215
216                    switch (connector.Orientation)
217                    {
218                        case ConnectorOrientation.West:
219                            this.West.Children.Remove(connector);
220                            break;
221                        case ConnectorOrientation.East:
222                            this.East.Children.Remove(connector);
223                            break;
224                        case ConnectorOrientation.North:
225                            this.North.Children.Remove(connector);
226                            break;
227                        case ConnectorOrientation.South:
228                            this.South.Children.Remove(connector);
229                            break;
230                    }
231
232                    switch (panel.Name)
233                    {
234                        case "West":
235                            connector.Orientation = ConnectorOrientation.West;
236                            this.West.Children.Add(connector);
237                            break;
238                        case "East":
239                            connector.Orientation = ConnectorOrientation.East;
240                            this.East.Children.Add(connector);
241                            break;
242                        case "North":
243                            connector.Orientation = ConnectorOrientation.North;
244                            this.North.Children.Add(connector);
245                            break;
246                        case "South":
247                            connector.Orientation = ConnectorOrientation.South;
248                            this.South.Children.Add(connector);
249                            break;
250                    }
251
252                    SetAllConnectorPositionX();
253                    e.Handled = true;
254                }
255            }
256            catch (Exception ex)
257            {
258                Console.Out.WriteLine(ex.ToString());
259            }
260        }
261
262        #endregion
263
264        #region Public Methods
265        public void AddConnectorView(ConnectorView connector)
266        {
267            switch (connector.Orientation)
268            {
269                case ConnectorOrientation.West:
270                    this.West.Children.Add(connector);
271                    break;
272                case ConnectorOrientation.East:
273                    this.East.Children.Add(connector);
274                    break;
275                case ConnectorOrientation.North:
276                    this.North.Children.Add(connector);
277                    break;
278                case ConnectorOrientation.South:
279                    this.South.Children.Add(connector);
280                    break;
281            }
282
283            connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
284            connectorViewList.Add(connector);
285        }
286
287
288
289        public void ResetPopUp()
290        {
291            Random random = new Random();
292            BubblePopup.PlacementRectangle = new Rect(new Point(random.NextDouble() / 1000, 0), new Size(0, 0));
293            //ProgressPopup.PlacementRectangle = new Rect(new Point(random.NextDouble() / 1000, 0), new Size(0, 0));
294        }
295
296        public void SetPosition(Point value)
297        {
298            TranslateTransform pos = (this.RenderTransform as TranslateTransform);
299            pos.X = value.X;
300            pos.Y = value.Y;
301            ResetPopUp();
302            Model.Position = new Point(pos.X, pos.Y);
303            SetAllConnectorPositionX();
304        }
305
306        public Point GetPosition()
307        {
308            return new Point((this.RenderTransform as TranslateTransform).X, (this.RenderTransform as TranslateTransform).Y);
309        }
310
311        #endregion
312
313        #region Private Methods
314
315        private void setBaseControl(PluginModel model)
316        {
317            this.Loaded += new RoutedEventHandler(PluginContainerView_Loaded);
318            this.MouseEnter += new MouseEventHandler(PluginContainerView_MouseEnter);
319            this.MouseLeave += new MouseEventHandler(PluginContainerView_MouseLeave);
320            this.MouseDoubleClick += new MouseButtonEventHandler(PluginContainerView_MouseDoubleClick);
321            this.Model = model;
322            this.Model.UpdateableView = this;
323            this.Model.LogUpdated += new EventHandler<LogUpdated>(Model_LogUpdated);
324            this.DataContext = Model;
325            this.ConnectorViewList = new List<ConnectorView>();
326            this.RenderTransform = new TranslateTransform();
327            this.Icon = this.Model.getImage();
328        }
329
330        void PluginContainerView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
331        {
332            if (Model.PluginPresentation != null && !IsFullscreen)
333            {
334                ViewState = PluginViewState.Presentation;
335                showFullScreen();
336            }
337            else if(Model.PluginPresentation == null && !IsFullscreen)
338            {
339                ViewState = PluginViewState.Data;
340                showFullScreen();
341            }
342        }
343
344        void Model_LogUpdated(object sender, LogUpdated e)
345        {
346            LogPresentation log = LogPanel.Child as LogPresentation;
347            log.AddLogList(Model.GuiLogEvents);
348        }
349
350        private void SetAllConnectorPositionX()
351        {
352            try
353            {
354                GeneralTransform gTransform, gTransformSec;
355                Point point, relativePoint;
356                double x, y;
357
358                foreach (ConnectorView conn in West.Children)
359                {
360                    gTransform = this.West.TransformToVisual(this);
361                    gTransformSec = conn.TransformToVisual(this.West);
362
363                    point = gTransform.Transform(new Point(0, 0));
364                    relativePoint = gTransformSec.Transform(new Point(0, 0));
365
366                    x = (RenderTransform as TranslateTransform).X + point.X + relativePoint.X;
367                    y = (RenderTransform as TranslateTransform).Y + point.Y + relativePoint.Y;
368
369                    conn.PositionOnWorkSpaceX = x;
370                    conn.PositionOnWorkSpaceY = y;
371                }
372
373                foreach (ConnectorView conn in East.Children)
374                {
375                    gTransform = this.East.TransformToVisual(this);
376                    gTransformSec = conn.TransformToVisual(this.East);
377
378                    point = gTransform.Transform(new Point(0, 0));
379                    relativePoint = gTransformSec.Transform(new Point(0, 0));
380
381                    x = (RenderTransform as TranslateTransform).X + point.X + relativePoint.X;
382                    y = (RenderTransform as TranslateTransform).Y + point.Y + relativePoint.Y;
383
384                    conn.PositionOnWorkSpaceX = x;
385                    conn.PositionOnWorkSpaceY = y;
386                }
387
388                foreach (ConnectorView conn in North.Children)
389                {
390                    gTransform = this.North.TransformToVisual(this);
391                    gTransformSec = conn.TransformToVisual(this.North);
392
393                    point = gTransform.Transform(new Point(0, 0));
394                    relativePoint = gTransformSec.Transform(new Point(0, 0));
395
396                    x = (RenderTransform as TranslateTransform).X + point.X + relativePoint.X;
397                    y = (RenderTransform as TranslateTransform).Y + point.Y + relativePoint.Y;
398
399                    conn.PositionOnWorkSpaceX = x;
400                    conn.PositionOnWorkSpaceY = y;
401                }
402
403                foreach (ConnectorView conn in South.Children)
404                {
405                    gTransform = this.South.TransformToVisual(this);
406                    gTransformSec = conn.TransformToVisual(this.South);
407
408                    point = gTransform.Transform(new Point(0, 0));
409                    relativePoint = gTransformSec.Transform(new Point(0, 0));
410
411                    x = (RenderTransform as TranslateTransform).X + point.X + relativePoint.X;
412                    y = (RenderTransform as TranslateTransform).Y + point.Y + relativePoint.Y;
413
414                    conn.PositionOnWorkSpaceX = x;
415                    conn.PositionOnWorkSpaceY = y;
416                }
417            }
418            catch (Exception e)
419            {
420                Console.Out.WriteLine(e.ToString());
421            }
422        }
423        #endregion
424
425        #region Controls
426
427        void PluginContainerView_Loaded(object sender, RoutedEventArgs e)
428        {
429           
430            BorderGradientStop.Color = ColorHelper.GetColor(this.Model.PluginType);
431            BorderGradientStopSecond.Color = Color.FromArgb(100, this.BorderGradientStop.Color.R, this.BorderGradientStop.Color.G, this.BorderGradientStop.Color.B);
432
433            if (Model.PluginPresentation != null)
434            {
435                optionList.Add(Resources["PresentationButton"] as UIElement);
436                optionList.Add(Resources["DataButton"] as UIElement);
437                optionList.Add(Resources["LogButton"] as UIElement);
438                optionList.Add(Resources["SettingButton"] as UIElement);
439            }
440            else 
441            {
442                optionList.Add(Resources["DataButton"] as UIElement);
443                optionList.Add(Resources["LogButton"] as UIElement);
444                optionList.Add(Resources["SettingButton"] as UIElement);
445            }
446
447            if (model.RepeatStart)
448            {
449                Model.RepeatStart = false;
450                playimg.Source = new BitmapImage(new Uri("../Image/play.png", UriKind.RelativeOrAbsolute));
451            }
452            else
453            {
454                Model.RepeatStart = true;
455                playimg.Source = new BitmapImage(new Uri("../Image/pause.png", UriKind.RelativeOrAbsolute));
456            }
457               
458            reAssambleOptions();
459
460            LogPresentation LogView = LogPanel.Child as LogPresentation;
461            LogView.LogUpdated += new EventHandler<LogUpdated>(LogView_LogUpdated);
462
463            SetAllConnectorPositionX();
464           
465        }
466
467        void LogView_LogUpdated(object sender, LogUpdated e)
468        {
469            LogPresentation logView = sender as LogPresentation;
470            ErrorCount.Text = logView.ErrorCount.ToString();
471            WarningCount.Text = logView.WarningCount.ToString();
472            DebugCount.Text = logView.DebugCount.ToString();
473            InfoCount.Text = logView.InfoCount.ToString();
474            LogReport.Text = e.log.Message;
475            BubblePopup.IsOpen = true;
476        }
477
478        private int optionModulo(int value)
479        {
480            int x = value % optionList.Count;
481
482            if (x < 0)
483            {
484                x += optionList.Count;
485            }
486
487            return x;
488        }
489
490        private void reAssambleOptions()
491        {
492            SlotOne.Child = null;
493            SlotTwo.Child = null;
494            SlotThree.Child = null;
495            SlotFour.Child = null;
496            SlotFive.Child = null;
497            if (Model.PluginPresentation != null)
498            {
499                SlotOne.Visibility = Visibility.Visible;
500                SlotFive.Visibility = Visibility.Visible;
501
502                SlotOne.Child = null;
503                SlotTwo.Child = null;
504                SlotThree.Child = null;
505                SlotFour.Child = null;
506                SlotFive.Child = null;
507
508                SlotOne.Child = optionList.ElementAt(optionModulo(optionPointer - 2));
509                SlotTwo.Child = optionList.ElementAt(optionModulo(optionPointer - 1));
510                SlotThree.Child = optionList.ElementAt(optionPointer);
511                SlotFour.Child = optionList.ElementAt(optionModulo(optionPointer + 1)); 
512            }
513            else 
514            {
515                SlotOne.Visibility = Visibility.Collapsed;
516                SlotFive.Visibility = Visibility.Collapsed;
517
518                SlotOne.Child = null;
519                SlotTwo.Child = null;
520                SlotThree.Child = null;
521                SlotFour.Child = null;
522                SlotFive.Child = null;
523
524                SlotTwo.Child = optionList.ElementAt(optionModulo(optionPointer - 1));
525                SlotThree.Child = optionList.ElementAt(optionPointer);
526                SlotFour.Child = optionList.ElementAt(optionModulo(optionPointer + 1));
527            }
528        }
529
530        void connector_OnConnectorMouseLeftButtonDown(object sender, ConnectorViewEventArgs e)
531        {
532            DataObject dragData = new DataObject("connector", e.connector);
533            DragDrop.DoDragDrop(e.connector.Parent, dragData, DragDropEffects.Move);
534
535            if (this.ConnectorMouseLeftButtonDown != null)
536                this.ConnectorMouseLeftButtonDown.Invoke(this, e);
537        }
538
539        private void delete()
540        {
541            if (this.Delete != null)
542                this.Delete.Invoke(this, new PluginContainerViewDeleteViewEventArgs { container = this });
543        }
544
545        private void showFullScreen()
546        {
547            if (this.FullScreen != null)
548            {
549                IsFullscreen = true;
550                this.FullScreen.Invoke(this, new PluginContainerViewFullScreenViewEventArgs { container = this });
551            }
552        }
553
554        private void Button_Click_1(object sender, RoutedEventArgs e)
555        {
556           
557        }
558
559        public void PrepareFullscreen()
560        {
561            this.ViewPanelParent.Children.Clear();
562            this.OptPanelParent.Children.Clear();
563            this.ProgressbarRoot.Children.Clear();
564        }
565
566        public void Reset()
567        {
568            if (this.IsFullscreen)
569            {
570                this.ViewPanelParent.Children.Add(ViewPanel);
571                this.OptPanelParent.Children.Add(OptionPanel);
572                this.ProgressbarRoot.Children.Add(ProgressbarParent);
573                this.IsFullscreen = false;
574            }
575        }
576
577        private void Button_Click(object sender, RoutedEventArgs e)
578        {
579            Button bttn = sender as Button;
580            if (bttn.Name == "play")
581            {
582                if (model.RepeatStart)
583                {
584                    model.RepeatStart = false;
585                    playimg.Source = new BitmapImage(new Uri("../Image/play.png", UriKind.RelativeOrAbsolute));
586                }
587                else
588                {
589                    model.RepeatStart = true;
590                    playimg.Source = new BitmapImage(new Uri("../Image/pause.png", UriKind.RelativeOrAbsolute));
591                }
592                return;
593            }
594            if (bttn.Name == "del")
595            {
596                this.delete();
597                return;
598            }
599        }
600
601        void PluginContainerView_MouseLeave(object sender, MouseEventArgs e)
602        {
603            //if(ViewState != PluginViewState.Min)
604            //    OptionPanel.Visibility = Visibility.Visible;
605            //else
606            //    OptionPanel.Visibility = Visibility.Collapsed;
607            (Resources["FadeIn"] as Storyboard).Stop(ControlPanel);
608            ControlPanel.BeginStoryboard(Resources["FadeOut"] as Storyboard);
609        }
610
611        void PluginContainerView_MouseEnter(object sender, MouseEventArgs e)
612        {
613            //OptionPanel.Visibility = Visibility.Visible;
614            (Resources["FadeOut"] as Storyboard).Stop(ControlPanel);
615            ControlPanel.BeginStoryboard(Resources["FadeIn"] as Storyboard);
616        }
617
618        private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
619        {
620            Thumb t = sender as Thumb;
621            if (t.Cursor == Cursors.SizeWE)
622            {
623                if ((PluginBase.ActualWidth + e.HorizontalChange) > 0)
624                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
625            }
626
627            if (t.Cursor == Cursors.SizeNS)
628            {
629                if ((PluginBase.ActualHeight + e.VerticalChange) > 0)
630                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
631            }
632
633            if (t.Cursor == Cursors.SizeNWSE)
634            {
635                if ((PluginBase.ActualHeight + e.VerticalChange) > 0)
636                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
637
638                if ((PluginBase.ActualWidth + e.HorizontalChange) > 0)
639                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
640            }
641
642            Model.Height = PluginBase.ActualHeight;
643            Model.Width = PluginBase.ActualWidth;
644        }
645
646        private void MinMaxBorder_MouseLeftButtonDown(object sender, RoutedEventArgs e)
647        {
648            this.SetAllConnectorPositionX();
649        }
650
651        #endregion
652
653        #region IUpdateableView Members
654
655        public void update()
656        {
657            ProgressBar.Value = Model.PercentageFinished;
658
659            if (ViewState == PluginViewState.Data)
660            {
661                foreach (UIElement element in DataPanel.Children)
662                {
663                    DataPresentation data = element as DataPresentation;
664                    data.update();
665                }
666            }
667
668            if (Model.GuiLogEvents.Count != 0)
669            {
670                LogPresentation log = LogPanel.Child as LogPresentation;
671                log.AddLogList(Model.GuiLogEvents);
672            }
673
674            if (model.State == PluginModelState.Warning)
675            {
676                this.Window.Background = new SolidColorBrush(Colors.Yellow);
677            }
678            else if (model.State == PluginModelState.Error)
679            {
680                this.Window.Background = new SolidColorBrush(Colors.Red);
681            }
682            else
683            {
684                //todo: assign old color and appereance
685            }
686           
687        }
688
689        #endregion
690
691        private void OptionClickHandler(object sender, RoutedEventArgs e)
692        {
693            Button button = sender as Button;
694            switch (button.Name)
695            {
696                case "Left":
697                    optionPointer = optionModulo(optionPointer + 1);
698                    OptionCaption.Text = (optionList.ElementAt(optionPointer) as Button).ToolTip as String;
699                    reAssambleOptions();
700                    break;
701
702                case "Right":
703                    optionPointer = optionModulo(optionPointer - 1);;
704                    OptionCaption.Text = (optionList.ElementAt(optionPointer) as Button).ToolTip as String;
705                    reAssambleOptions();
706                    break;
707            }
708            e.Handled = true;
709        }
710
711        private void OptionChooseHandler(object sender, RoutedEventArgs e)
712        {
713            Button button = sender as Button;
714            switch (button.Name)
715            {
716                case "PresentationButton":
717                    if (PresentationPanel.Child == null)
718                    {
719                        ViewPanel.Visibility = Visibility.Collapsed;
720                        ViewState = PluginViewState.Min;
721                        break;
722                    }
723                    ViewPanel.Visibility = Visibility.Visible;
724                    ViewState = PluginViewState.Presentation;
725                    break;
726
727                case "DataButton":
728                    ViewState = PluginViewState.Data;
729                    break;
730                case "LogButton":
731                    ViewState = PluginViewState.Log;
732
733                    break;
734                case "MinimizeButton":
735                    if(ViewState == PluginViewState.Min)
736                        ViewState = PluginViewState.Log;
737                    else
738                        ViewState = PluginViewState.Min;
739                    break;
740
741                case "SettingButton":
742                   
743                    break;
744                case "MaxButton":
745                    showFullScreen();
746                    break;
747            }
748            e.Handled = true;
749        }
750
751        private void SettingButton_MouseEnter(object sender, MouseEventArgs e)
752        {
753            Button btn = sender as Button;
754            OptionCaption.Text = btn.ToolTip as String;
755        }
756    }
757
758    public class PluginContainerViewDeleteViewEventArgs : EventArgs
759    {
760        public PluginContainerView container;
761    }
762
763    public class PluginContainerViewFullScreenViewEventArgs : EventArgs
764    {
765        public PluginContainerView container;
766    }
767}
Note: See TracBrowser for help on using the repository browser.