Example #1
0
        public IBTabItem CloneOrCopy()
        {
            string    data = XamlWriter.Save(this);
            IBTabItem i    = XamlReader.Parse(data) as IBTabItem;

            return(i);
        }
        private void Border_DragOver(object sender, DragEventArgs e)
        {
            IBTabItem ti = e.Data.GetData(typeof(IBTabItem)) as IBTabItem;

            if (ti == null)
            {
                return;
            }

            IsDropping = true;
        }
Example #3
0
        private void Border_DragOver(object sender, DragEventArgs e)
        {
            IBTabItem ti = e.Data.GetData(typeof(IBTabItem)) as IBTabItem;

            if (ti == null)
            {
                return;
            }

            //Background = FindResource("IBFocusBrush2_T") as SolidColorBrush;
            IsDropping = true;
        }
Example #4
0
        protected virtual void MaskRect_PreviewDragEnter(object sender, DragEventArgs e)
        {
            EndDrag();

            IBPageTabItem pti = e.Data.GetData(typeof(IBPageTabItem)) as IBPageTabItem;

            if (pti != null)
            {
                IsSelected = true;
            }

            IBTabItem ti = e.Data.GetData(typeof(IBTabItem)) as IBTabItem;

            if (ti == null)
            {
                return;
            }

            if (ti == this)
            {
                return;
            }

            IBTabControl parentTC = Parent as IBTabControl;

            if (parentTC == null)
            {
                throw new IBLayoutException("IBTabItem の親が IBTabControl でありません");
            }

            IBTabControl parentTC2 = ti.Parent as IBTabControl;

            if (parentTC2 == null)
            {
                throw new IBLayoutException("IBTabItem の親が IBTabControl でありません");
            }

            if (parentTC != parentTC2)
            {
                return;
            }

            parentTC.ReplaceItems(this, ti);
            ti.IsSelected = true;
            parentTC.EndDrag();
            parentTC.currentDropPos = Position.none;
        }
Example #5
0
        public void Float(object parameter)
        {
            IBMenuItem from = parameter as IBMenuItem;

            if (from == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            ContextMenu cm = from.Parent as ContextMenu;

            if (cm == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            IBTabItem trg = cm.PlacementTarget as IBTabItem;

            if (trg == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }

            IBTabControl tc = trg.Parent as IBTabControl;

            if (tc == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            IBPanel panel = tc.Parent as IBPanel;

            if (panel == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }

            IBWindow ibw = new IBWindow();

            ibw.InputBindings.AddRange(Application.Current.MainWindow.InputBindings);
            ibw.SetIBTabItem(trg);
            ibw.Show();

            if (tc.Items.Count == 0)
            {
                panel.RemoveIBPanel();
            }
        }
        public void ReplaceItems(IBTabItem ti1, IBTabItem ti2)
        {
            int index_ti1 = Items.IndexOf(ti1);
            int index_ti2 = Items.IndexOf(ti2);

            Items.Remove(ti1);
            Items.Remove(ti2);

            if (index_ti1 > index_ti2)
            {
                Items.Insert(index_ti1 - 1, ti2);
                Items.Insert(index_ti2, ti1);
            }
            else
            {
                Items.Insert(index_ti1, ti2);
                Items.Insert(index_ti2, ti1);
            }
        }
Example #7
0
        public void DoCloseCommand(object parameter)
        {
            IBMenuItem from = parameter as IBMenuItem;

            if (from == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            ContextMenu cm = from.Parent as ContextMenu;

            if (cm == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            IBTabItem trg = cm.PlacementTarget as IBTabItem;

            if (trg == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }

            IBTabControl tc = trg.Parent as IBTabControl;

            if (tc == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            IBPanel panel = tc.Parent as IBPanel;

            if (panel == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }


            trg.RemoveFromParent();

            if (tc.Items.Count == 0)
            {
                panel.RemoveIBPanel();
            }
        }
 private void ItemsSizeSet()
 {
     if (Items.Count == 1)
     {
         IBTabItem i = Items[0] as IBTabItem;
         if (i != null && !i.LockWidth)
         {
             i.Width = ActualWidth;
         }
     }
     else
     {
         foreach (object o in Items)
         {
             IBTabItem i = o as IBTabItem;
             if (i != null)
             {
                 i.Width = double.NaN;
             }
         }
     }
 }
Example #9
0
        public void ShowTitleBar(object parameter)
        {
            IBMenuItem from = parameter as IBMenuItem;

            if (from == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            ContextMenu cm = from.Parent as ContextMenu;

            if (cm == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }
            IBTabItem trg = cm.PlacementTarget as IBTabItem;

            if (trg == null)
            {
                throw new IBDisableCommandException("コマンドターゲットが不正、または取得できません");
            }

            trg.Height = double.NaN;
        }
        private void MaskRect_Drop(object sender, DragEventArgs e)
        {
            EndDrag();

            if (e.Data.GetData(typeof(IBTabItem)) == null)
            {
                return;
            }

            IBTabItem ti = e.Data.GetData(typeof(IBTabItem)) as IBTabItem;

            if (ti == null)
            {
                throw new IBLayoutException("ドロップされたパネルを取得できませんでした");
            }

            if (!ti.AllowDropToAnother)
            {
                return;
            }

            IBPanel parentPanel = Parent as IBPanel;

            if (parentPanel == null)
            {
                throw new IBLayoutException("IBTabControl の親が IBPanel でありません");
            }

            IBTabControl parent_ti = ti.Parent as IBTabControl;

            if (parent_ti == null)
            {
                throw new IBLayoutException("IBTabItem の親が IBTabControl でありません");
            }

            IBPanel parent_parent_ti = parent_ti.Parent as IBPanel;

            if (parent_parent_ti == null)
            {
                throw new IBLayoutException("IBTabControl の親が IBPanel でありません");
            }

            if (currentDropPos == Position.newWindow)
            {
                IBWindow ibw = new IBWindow();
                ibw.SetIBTabItem(ti);
                ibw.Show();
            }
            else
            {
                if (parentPanel == parent_parent_ti && parent_ti.Items.Count == 1)
                {
                    return;
                }

                if (currentDropPos == Position.center)
                {
                    ti.RemoveFromParent();
                    Items.Add(ti);
                    ti.IsSelected = true;
                }
                else
                {
                    IBTabControl tc2 = new IBTabControl();

                    ti.RemoveFromParent();
                    tc2.Items.Add(ti);
                    parentPanel.AddIBTabControl(tc2, currentDropPos);
                }
            }

            if (parent_ti.Items.Count == 0)
            {
                parent_parent_ti.RemoveIBPanel();
            }
        }
        private void Border_Drop(object sender, DragEventArgs e)
        {
            IsDropping = false;

            if (e.Data.GetData(typeof(IBTabItem)) == null)
            {
                return;
            }

            IBTabItem ti = e.Data.GetData(typeof(IBTabItem)) as IBTabItem;

            if (ti == null)
            {
                throw new IBLayoutException("ドロップされたパネルを取得できません");
            }

            if (!ti.AllowDropToAnother)
            {
                return;
            }

            IBPanel parentPanel = Parent as IBPanel;

            if (parentPanel == null)
            {
                throw new IBLayoutException("IBPanelSplitter の親が IBPanel でありません");
            }

            IBWorkspace Workspace = parentPanel.GetVisualParent() as IBWorkspace;

            if (Workspace == null)
            {
                throw new IBLayoutException("IBWorkspace を取得できません");
            }

            IBTabControl parent_ti = ti.Parent as IBTabControl;

            if (parent_ti == null)
            {
                throw new IBLayoutException("IBTabItem の親が IBTabControl でありません");
            }

            IBPanel parent_parent_ti = parent_ti.Parent as IBPanel;

            if (parent_parent_ti == null)
            {
                throw new IBLayoutException("IBTabControl の親が IBPanel でありません");
            }

            if (parentPanel == parent_parent_ti && parent_ti.Items.Count == 1)
            {
                return;
            }


            IBTabControl tc2 = new IBTabControl();
            IBPanel      p   = new IBPanel();
            IBPanel      p1  = new IBPanel();

            p1 = Workspace.Content as IBPanel;
            p1.RemoveFromParent();
            p.Children.Add(p1);

            ti.RemoveFromParent();
            tc2.Items.Add(ti);

            if (HorizontalAlignment == HorizontalAlignment.Left)
            {
                p.P2         = p1;
                p.CurrentPos = p1.CurrentPos;
                p.AddIBTabControl(tc2, Position.left);
                Workspace.Content = p;
            }
            else if (HorizontalAlignment == HorizontalAlignment.Right)
            {
                p.P1         = p1;
                p.CurrentPos = p1.CurrentPos;
                p.AddIBTabControl(tc2, Position.right);
                Workspace.Content = p;
            }
            else if (VerticalAlignment == VerticalAlignment.Top)
            {
                p.P2         = p1;
                p.CurrentPos = p1.CurrentPos;
                p.AddIBTabControl(tc2, Position.top);
                Workspace.Content = p;
            }
            else if (VerticalAlignment == VerticalAlignment.Bottom)
            {
                p.P1         = p1;
                p.CurrentPos = p1.CurrentPos;
                p.AddIBTabControl(tc2, Position.bottom);
                Workspace.Content = p;
            }

            if (parent_ti.Items.Count == 0)
            {
                parent_parent_ti.RemoveIBPanel();
            }
        }
Example #12
0
 private void ChildPanelActivated(object sender, PanelActivatedEventArgs e)
 {
     LastActivePanel = e.OriginalSource as IBTabItem;
 }
 public void SetIBTabItem(IBTabItem item)
 {
     item.RemoveFromParent();
     MainTabControl.Items.Add(item);
     item.IsSelected = true;
 }