Ejemplo n.º 1
0
 public GnosisController.TilePosition GetPosition(int currentChildOrder, GnosisSplitController.DirectionType splitDirection)
 {
     if (splitDirection == GnosisSplitController.DirectionType.VERTICAL)
     {
         if (currentChildOrder == 1)
         {
             return(GnosisController.TilePosition.LEFT);
         }
         else
         {
             return(GnosisController.TilePosition.RIGHT);
         }
     }
     else
     {
         if (currentChildOrder == 1)
         {
             return(GnosisController.TilePosition.TOP);
         }
         else
         {
             return(GnosisController.TilePosition.BOTTOM);
         }
     }
 }
Ejemplo n.º 2
0
 private void SetIconAndCaption()
 {
     if (SourceController is GnosisParentWindowController)
     {
         iconName = "th_icon-nav-window";
         caption  = "Parent Window";
     }
     else if (SourceController is GnosisNavTileController)
     {
         iconName = "th_icon-navigator";
         caption  = "Navigator";
     }
     else if (SourceController is GnosisTileController)
     {
         caption = "Tile " + ((GnosisTileController)SourceController).VisibleTileOrder.ToString();
         GnosisController.TilePosition position = GlobalData.Singleton.LayoutController.GetPosition(SourceController.ControlImplementation.Order, ((GnosisSplitController)SourceController.Parent).SplitDirection);
         if (position == GnosisController.TilePosition.LEFT)
         {
             iconName = "th_icon-split-left";
         }
         else if (position == GnosisController.TilePosition.RIGHT)
         {
             iconName = "th_icon-split-right";
         }
         else if (position == GnosisController.TilePosition.TOP)
         {
             iconName = "th_icon-split-top";
         }
         else
         {
             iconName = "th_icon-split-bottom";
         }
     }
     else if (SourceController is GnosisPrimarySplitController)
     {
         caption  = "Primary Split";
         iconName = "th_icon-nav-window";
     }
     else if (SourceController is GnosisSplitController)
     {
         caption = "Split";
         GnosisSplitController.DirectionType splitDirection = ((GnosisSplitController)SourceController).SplitDirection;
         if (splitDirection == GnosisSplitController.DirectionType.VERTICAL)
         {
             iconName = "th_icon-parent-vertical";
         }
         else
         {
             iconName = "th_icon-parent-horizontal";
         }
     }
     TreeViewItemImplementation.Caption    = caption;
     TreeViewItemImplementation.GnosisIcon = iconName;
 }
Ejemplo n.º 3
0
 private void cboSplitDirection_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     //check if change was caused by user rather than instantiation
     if (cboSplitDirection.IsDropDownOpen)
     {
         ComboBoxItem item         = (ComboBoxItem)cboSplitDirection.SelectedItem;
         string       newDirection = item.Content.ToString();
         GnosisSplitController.DirectionType direction = (GnosisSplitController.DirectionType)Enum.Parse(typeof(GnosisSplitController.DirectionType), newDirection);
         ((GnosisSplitController)currentController).ChangeSplitDirection(direction);
         currentController.Highlight();
     }
 }
Ejemplo n.º 4
0
        //public void BuildContentFixedNavWidth(List<GnosisContainer> containers,
        //    int splitUnits, GnosisSplitController.DirectionType splitDirection)
        //{
        //    contentGrid.Children.Clear();
        //    contentGrid.ColumnDefinitions.Clear();

        //    if (containers.Count == 1)
        //    {
        //        contentGrid.Children.Add((GnosisContainer)containers[0]);
        //    }
        //    else if (containers.Count == 2)
        //    {
        //        //build columns
        //        //first column
        //        ColumnDefinition colDef0 = new ColumnDefinition();
        //        colDef0.Width = new GridLength(splitUnits, GridUnitType.Pixel);
        //        contentGrid.ColumnDefinitions.Add(colDef0);

        //        //second column containing gridSplitter
        //        ColumnDefinition colDef1 = new ColumnDefinition();
        //        colDef1.Width = GridLength.Auto;
        //        contentGrid.ColumnDefinitions.Add(colDef1);

        //        //third column
        //        ColumnDefinition colDef2 = new ColumnDefinition();
        //        colDef2.Width = new GridLength(1, GridUnitType.Star); //fill remaining space
        //        contentGrid.ColumnDefinitions.Add(colDef2);

        //        splitter = new VerticalGridSplitter(this);
        //        Grid.SetColumn(splitter, 1);
        //        contentGrid.Children.Add(splitter);

        //        //add containers
        //        if (containers[0].Order == 1)
        //        {
        //            Grid.SetColumn((GnosisContainer)containers[0], 0);
        //            Grid.SetColumn((GnosisContainer)containers[1], 2);
        //        }
        //        else
        //        {
        //            Grid.SetColumn((GnosisContainer)containers[1], 0);
        //            Grid.SetColumn((GnosisContainer)containers[0], 2);
        //        }

        //        //add children to parent
        //        contentGrid.Children.Add((GnosisContainer)containers[0]);
        //        contentGrid.Children.Add((GnosisContainer)containers[1]);
        //    }
        //}

        public void BuildContentFixedNavWidth(List <GnosisContainer> containers,
                                              int splitUnits, GnosisSplitController.DirectionType splitDirection)
        {
            contentGrid.Children.Clear();
            contentGrid.ColumnDefinitions.Clear();

            if (containers.Count == 1)
            {
                contentGrid.Children.Add((GnosisContainer)containers[0]);
            }
            else if (containers.Count == 2)
            {
                //build columns
                //first column
                ColumnDefinition colDef0 = new ColumnDefinition();
                colDef0.Width = new GridLength(splitUnits, GridUnitType.Pixel);
                contentGrid.ColumnDefinitions.Add(colDef0);

                //second column containing gridSplitter
                ColumnDefinition colDef1 = new ColumnDefinition();
                colDef1.Width = GridLength.Auto;
                contentGrid.ColumnDefinitions.Add(colDef1);

                //third column
                ColumnDefinition colDef2 = new ColumnDefinition();
                colDef2.Width = new GridLength(1, GridUnitType.Star); //fill remaining space
                contentGrid.ColumnDefinitions.Add(colDef2);

                splitter = new VerticalGridSplitter(this);
                Grid.SetColumn(splitter, 1);
                contentGrid.Children.Add(splitter);

                //add containers
                if (containers[0].Order == 1)
                {
                    Grid.SetColumn((GnosisContainer)containers[0], 0);
                    Grid.SetColumn((GnosisContainer)containers[1], 2);
                }
                else
                {
                    Grid.SetColumn((GnosisContainer)containers[1], 0);
                    Grid.SetColumn((GnosisContainer)containers[0], 2);
                }

                //add children to parent
                contentGrid.Children.Add((GnosisContainer)containers[0]);
                contentGrid.Children.Add((GnosisContainer)containers[1]);
            }
        }
Ejemplo n.º 5
0
        public void SetSplitterPercent(double newPercent, GnosisSplitController.DirectionType splitDirection)
        {
            double bound1 = newPercent / 10;
            double bound2 = 10 - bound1;

            if (splitDirection == GnosisSplitController.DirectionType.VERTICAL)
            {
                contentGrid.ColumnDefinitions[0].Width = new GridLength(bound1, GridUnitType.Star);
                contentGrid.ColumnDefinitions[2].Width = new GridLength(bound2, GridUnitType.Star);
            }
            else
            {
                contentGrid.RowDefinitions[0].Height = new GridLength(bound1, GridUnitType.Star);
                contentGrid.RowDefinitions[2].Height = new GridLength(bound2, GridUnitType.Star);
            }
        }
Ejemplo n.º 6
0
        public override void SplitterMoved(GnosisSplitController.DirectionType splitDirection)
        {
            //Calculate new split percentage and split units and pass to the splitterMoved handler
            double percent;

            //The gridsplitter is in the second column
            double splitUnits = contentGrid.ColumnDefinitions[0].ActualWidth;
            double width2     = contentGrid.ColumnDefinitions[2].ActualWidth;

            //convert to percentage
            double total = splitUnits + width2;

            percent = splitUnits / total * 100;

            percent = Math.Round(percent, 2);

            splitterMovedHandler.Invoke(percent, (int)splitUnits);
        }
Ejemplo n.º 7
0
        public virtual void SplitterMoved(GnosisSplitController.DirectionType splitDirection)
        {
            //Calculate new split percentage and pass to the splitterMoved handler
            double percent;

            //The gridsplitter is in the second column
            if (splitDirection == GnosisSplitController.DirectionType.VERTICAL)
            {
                //vertical split
                GridLength gl1    = contentGrid.ColumnDefinitions[0].Width;
                double     width1 = gl1.Value;

                GridLength gl2    = contentGrid.ColumnDefinitions[2].Width;
                double     width2 = gl2.Value;

                //convert to percentage
                double total = width1 + width2;
                percent = width1 / total * 100;
            }
            else
            {
                //horizontal split
                GridLength gl1     = contentGrid.RowDefinitions[0].Height;
                double     height1 = gl1.Value;

                GridLength gl2     = contentGrid.RowDefinitions[2].Height;
                double     height2 = gl2.Value;

                //convert to percent
                double total = height1 + height2;
                percent = height1 / total * 100;
            }

            percent = Math.Round(percent, 2);

            splitterMovedHandler.Invoke(percent);
        }
Ejemplo n.º 8
0
        public void BuildContent(List <GnosisContainer> containers, double splitPercentage,
                                 GnosisSplitController.DirectionType splitDirection)
        {
            contentGrid.Children.Clear();
            contentGrid.ColumnDefinitions.Clear();
            contentGrid.RowDefinitions.Clear();

            if (containers.Count == 1)
            {
                contentGrid.Children.Add((GnosisContainer)containers[0]);
            }
            else if (containers.Count == 2)
            {
                //Convert percentage width to * values
                double length1 = splitPercentage / 10;
                double length2 = 10 - length1;

                if (splitDirection == GnosisSplitController.DirectionType.VERTICAL)
                {
                    //build columns
                    //first column
                    ColumnDefinition colDef0 = new ColumnDefinition();
                    colDef0.Width = new GridLength(length1, GridUnitType.Star);
                    contentGrid.ColumnDefinitions.Add(colDef0);

                    //second column containing gridSplitter
                    ColumnDefinition colDef1 = new ColumnDefinition();
                    colDef1.Width = GridLength.Auto;
                    contentGrid.ColumnDefinitions.Add(colDef1);

                    //third column
                    ColumnDefinition colDef2 = new ColumnDefinition();
                    colDef2.Width = new GridLength(length2, GridUnitType.Star);
                    contentGrid.ColumnDefinitions.Add(colDef2);

                    //add containers
                    splitter = new VerticalGridSplitter(this);
                    Grid.SetColumn(splitter, 1);
                    contentGrid.Children.Add(splitter);


                    if (containers[0].Order == 1)
                    {
                        Grid.SetColumn((GnosisContainer)containers[0], 0);
                        Grid.SetColumn((GnosisContainer)containers[1], 2);
                    }
                    else
                    {
                        Grid.SetColumn((GnosisContainer)containers[1], 0);
                        Grid.SetColumn((GnosisContainer)containers[0], 2);
                    }
                }
                else
                {
                    //build rows
                    //first row
                    RowDefinition rowDef0 = new RowDefinition();
                    rowDef0.Height = new GridLength(length1, GridUnitType.Star);
                    contentGrid.RowDefinitions.Add(rowDef0);

                    //second row containing gridSplitter
                    RowDefinition rowDef1 = new RowDefinition();
                    rowDef1.Height = GridLength.Auto;
                    contentGrid.RowDefinitions.Add(rowDef1);

                    //third row
                    RowDefinition rowDef2 = new RowDefinition();
                    rowDef2.Height = new GridLength(length2, GridUnitType.Star);
                    contentGrid.RowDefinitions.Add(rowDef2);

                    splitter = new HorizontalGridSplitter(this);
                    Grid.SetRow(splitter, 1);
                    contentGrid.Children.Add(splitter);

                    //add containers
                    if (containers[0].Order == 1)
                    {
                        Grid.SetRow((GnosisContainer)containers[0], 0);
                        Grid.SetRow((GnosisContainer)containers[1], 2);
                    }
                    else
                    {
                        Grid.SetRow((GnosisContainer)containers[1], 0);
                        Grid.SetRow((GnosisContainer)containers[0], 2);
                    }
                }

                //add children to parent
                contentGrid.Children.Add((GnosisContainer)containers[0]);
                contentGrid.Children.Add((GnosisContainer)containers[1]);
            }
        }
Ejemplo n.º 9
0
 public void ChangeSplitDirection(GnosisSplitController.DirectionType newDirection)
 {
     SplitDetail._SplitDirection = newDirection;
     BuildContent();
 }