Ignore:
Timestamp:
Sep 2, 2010, 10:06:52 AM (11 years ago)
Author:
matkovic
Message:

-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:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r1838 r1892  
    2929        Data,
    3030        Log,
    31         Setting
     31        Setting,
    3232    };
    3333
     
    5252        #region Properties
    5353
     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
    5467        public static readonly DependencyProperty ViewStateProperty = DependencyProperty.Register("ViewState", typeof(PluginViewState), typeof(PluginContainerView), new FrameworkPropertyMetadata(PluginViewState.Min));
    5568
     
    6376            set
    6477            {
     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
    65115                if((PluginViewState)value != PluginViewState.Min)
    66116                {
     
    76126                }
    77127                base.SetValue(ViewStateProperty, value);
     128                this.Model.ViewState = value;
    78129            }
    79130        }
     
    92143                icon.Width = 40;
    93144                icon.Height = 40;
     145                IconPanel.Child = icon;
    94146            }
    95147        }
     
    121173        public PluginContainerView(PluginModel model)
    122174        {
     175            InitializeComponent();
    123176            setBaseControl(model);
    124             InitializeComponent();
    125177            DataContext = this;
    126178
    127             switch (ViewState)
    128             {
    129                 case PluginViewState.Min:
    130                     IconPanel.Child = Icon;
    131                     break;
    132 
    133                 case PluginViewState.Data:
    134 
    135                     break;
    136 
    137                 case PluginViewState.Presentation:
    138 
    139                     break;
    140 
    141                 case PluginViewState.Setting:
    142 
    143                     break;
    144 
    145                 case PluginViewState.Log:
    146 
    147                     break;
    148             }
     179            this.ViewState = Model.ViewState;
    149180
    150181            West.PreviewDrop += new DragEventHandler(Connector_Drop);
     
    175206        {
    176207            StackPanel panel = sender as StackPanel;
    177             if (e.Data.GetDataPresent("connector"))
    178             {
    179                 ConnectorView connector = e.Data.GetData("connector") as ConnectorView;
    180                 if (panel.Children.Contains(connector))
    181                     return;
    182 
    183                 switch (connector.Orientation)
    184                 {
    185                     case ConnectorOrientation.West:
    186                         this.West.Children.Remove(connector);
    187                         break;
    188                     case ConnectorOrientation.East:
    189                         this.East.Children.Remove(connector);
    190                         break;
    191                     case ConnectorOrientation.North:
    192                         this.North.Children.Remove(connector);
    193                         break;
    194                     case ConnectorOrientation.South:
    195                         this.South.Children.Remove(connector);
    196                         break;
    197                 }
    198 
    199                 switch (panel.Name)
    200                 {
    201                     case "West":
    202                         connector.Orientation = ConnectorOrientation.West;
    203                         this.West.Children.Add(connector);
    204                         break;
    205                     case "East":
    206                         connector.Orientation = ConnectorOrientation.East;
    207                         this.East.Children.Add(connector);
    208                         break;
    209                     case "North":
    210                         connector.Orientation = ConnectorOrientation.North;
    211                         this.North.Children.Add(connector);
    212                         break;
    213                     case "South":
    214                         connector.Orientation = ConnectorOrientation.South;
    215                         this.South.Children.Add(connector);
    216                         break;
    217                 }
    218 
    219                 SetAllConnectorPositionX();
    220                 e.Handled = true;
     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());
    221259            }
    222260        }
     
    280318            this.MouseEnter += new MouseEventHandler(PluginContainerView_MouseEnter);
    281319            this.MouseLeave += new MouseEventHandler(PluginContainerView_MouseLeave);
     320            this.MouseDoubleClick += new MouseButtonEventHandler(PluginContainerView_MouseDoubleClick);
    282321            this.Model = model;
    283322            this.Model.UpdateableView = this;
     
    289328        }
    290329
     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
    291344        void Model_LogUpdated(object sender, LogUpdated e)
    292345        {
     
    383436                optionList.Add(Resources["DataButton"] as UIElement);
    384437                optionList.Add(Resources["LogButton"] as UIElement);
    385                 //optionList.Add(Resources["MinimizeButton"] as UIElement);
    386                 optionList.Add(Resources["MaxButton"] as UIElement);
    387438                optionList.Add(Resources["SettingButton"] as UIElement);
    388439            }
    389440            else
    390441            {
    391                 //optionList.Add(Resources["PresentationButton"] as UIElement);
    392442                optionList.Add(Resources["DataButton"] as UIElement);
    393443                optionList.Add(Resources["LogButton"] as UIElement);
    394                 //optionList.Add(Resources["MinimizeButton"] as UIElement);
    395                 //optionList.Add(Resources["MaxButton"] as UIElement);
    396444                optionList.Add(Resources["SettingButton"] as UIElement);
    397445            }
    398446
    399 
     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               
    400458            reAssambleOptions();
    401459
     
    414472            DebugCount.Text = logView.DebugCount.ToString();
    415473            InfoCount.Text = logView.InfoCount.ToString();
     474            LogReport.Text = e.log.Message;
    416475            BubblePopup.IsOpen = true;
    417476        }
     
    450509                SlotTwo.Child = optionList.ElementAt(optionModulo(optionPointer - 1));
    451510                SlotThree.Child = optionList.ElementAt(optionPointer);
    452                 SlotFour.Child = optionList.ElementAt(optionModulo(optionPointer + 1));
    453                 SlotFive.Child = optionList.ElementAt(optionModulo(optionPointer + 2));
     511                SlotFour.Child = optionList.ElementAt(optionModulo(optionPointer + 1)); 
    454512            }
    455513            else
     
    488546        {
    489547            if (this.FullScreen != null)
     548            {
     549                IsFullscreen = true;
    490550                this.FullScreen.Invoke(this, new PluginContainerViewFullScreenViewEventArgs { container = this });
     551            }
    491552        }
    492553
     
    494555        {
    495556           
     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            }
    496575        }
    497576
     
    502581            {
    503582                if (model.RepeatStart)
     583                {
    504584                    model.RepeatStart = false;
     585                    playimg.Source = new BitmapImage(new Uri("../Image/play.png", UriKind.RelativeOrAbsolute));
     586                }
    505587                else
     588                {
    506589                    model.RepeatStart = true;
     590                    playimg.Source = new BitmapImage(new Uri("../Image/pause.png", UriKind.RelativeOrAbsolute));
     591                }
    507592                return;
    508593            }
     
    516601        void PluginContainerView_MouseLeave(object sender, MouseEventArgs e)
    517602        {
    518             if(ViewState != PluginViewState.Min)
    519                 OptionPanel.Visibility = Visibility.Visible;
    520             else
    521                 OptionPanel.Visibility = Visibility.Collapsed;
     603            //if(ViewState != PluginViewState.Min)
     604            //    OptionPanel.Visibility = Visibility.Visible;
     605            //else
     606            //    OptionPanel.Visibility = Visibility.Collapsed;
    522607            (Resources["FadeIn"] as Storyboard).Stop(ControlPanel);
    523608            ControlPanel.BeginStoryboard(Resources["FadeOut"] as Storyboard);
     
    526611        void PluginContainerView_MouseEnter(object sender, MouseEventArgs e)
    527612        {
    528             OptionPanel.Visibility = Visibility.Visible;
     613            //OptionPanel.Visibility = Visibility.Visible;
    529614            (Resources["FadeOut"] as Storyboard).Stop(ControlPanel);
    530615            ControlPanel.BeginStoryboard(Resources["FadeIn"] as Storyboard);
     
    554639                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
    555640            }
     641
     642            Model.Height = PluginBase.ActualHeight;
     643            Model.Width = PluginBase.ActualWidth;
    556644        }
    557645
     
    629717                    if (PresentationPanel.Child == null)
    630718                    {
    631                         PluginBase.Width = PluginBase.MinWidth;
    632                         PluginBase.Height = PluginBase.MinHeight;
    633719                        ViewPanel.Visibility = Visibility.Collapsed;
    634720                        ViewState = PluginViewState.Min;
    635721                        break;
    636722                    }
    637                     PluginBase.Width = 400;
    638                     PluginBase.Height = 300;
    639723                    ViewPanel.Visibility = Visibility.Visible;
    640724                    ViewState = PluginViewState.Presentation;
     
    642726
    643727                case "DataButton":
    644                     PluginBase.Width = 400;
    645                     PluginBase.Height = 300;
    646                     ViewPanel.Visibility = Visibility.Visible;
    647728                    ViewState = PluginViewState.Data;
    648729                    break;
    649730                case "LogButton":
    650                     PluginBase.Width = 400;
    651                     PluginBase.Height = 300;
    652                     ViewPanel.Visibility = Visibility.Visible;
    653731                    ViewState = PluginViewState.Log;
    654732
    655733                    break;
    656734                case "MinimizeButton":
    657                     PluginBase.Width = PluginBase.MinWidth;
    658                     PluginBase.Height = PluginBase.MinHeight;
    659                     ViewPanel.Visibility = Visibility.Collapsed;
    660                     ViewState = PluginViewState.Min;
     735                    if(ViewState == PluginViewState.Min)
     736                        ViewState = PluginViewState.Log;
     737                    else
     738                        ViewState = PluginViewState.Min;
    661739                    break;
    662740
Note: See TracChangeset for help on using the changeset viewer.