protected virtual void UpdatePageViewItems(IRadPageViewProvider pageViewProvider) { this.suspendTabChanging = true; if (!(pageViewProvider is RadPageViewExplorerBarProvider)) { GridTableElement childTableElement = this.CreateChildTableElement(); if (this.GridViewElement.UseScrollbarsInHierarchy && !(pageViewProvider is RadPageViewStripProvider)) { childTableElement.StretchVertically = true; } this.pageViewElement.ContentArea.Children.Add((RadElement)childTableElement); } this.Children.Add((RadElement)this.pageViewElement); while (this.PageViewElement.Items.Count > 0) { this.PageViewElement.Items[0].RadPropertyChanging -= new RadPropertyChangingEventHandler(this.item_RadPropertyChanging); this.PageViewElement.Items[0].RadPropertyChanged -= new RadPropertyChangedEventHandler(this.item_RadPropertyChanged); this.PageViewElement.RemoveItem(this.PageViewElement.Items[0]); } RadPageViewItem selectedItem = (RadPageViewItem)null; if (this.pageViewElement is RadPageViewStripElement || this.pageViewElement is RadPageViewOutlookElement) { for (int index = 0; index < this.HierarchyRow.Views.Count; ++index) { if (this.HierarchyRow.Views[index].ViewTemplate != this.ViewTemplate) { RadPageViewItem pageViewItem = this.CreatePageViewItem(pageViewProvider, this.HierarchyRow.Views[index]); this.pageViewElement.AddItem(pageViewItem); if (pageViewItem.Tag == this.HierarchyRow.ActiveView) { selectedItem = pageViewItem; } } } } else { for (int index = this.HierarchyRow.Views.Count - 1; index >= 0; --index) { if (this.HierarchyRow.Views[index].ViewTemplate != this.ViewTemplate) { RadPageViewItem pageViewItem = this.CreatePageViewItem(pageViewProvider, this.HierarchyRow.Views[index]); this.pageViewElement.AddItem(pageViewItem); if (pageViewItem.Tag == this.HierarchyRow.ActiveView) { selectedItem = pageViewItem; } } } } this.UpdateSelectedPageViewItem(selectedItem); RadPageViewOutlookElement pageViewElement = this.pageViewElement as RadPageViewOutlookElement; pageViewElement?.HideItems(pageViewElement.Items.Count); this.suspendTabChanging = false; }
protected override void DisposeManagedResources() { this.itemListMenu.DropDownClosed -= OnItemListMenu_DropDownClosed; this.itemListMenu.Dispose(); this.items.Clear(); this.selectedItem = null; this.owner = null; base.DisposeManagedResources(); }
protected override void PerformStart() { this.dragItem = this.Context as RadPageViewItem; this.insertHintImage = this.owner.ItemDragHint; if (this.owner.ItemDragMode == PageViewItemDragMode.Preview) { this.PrepareInsertHint(); } base.PerformStart(); }
private void ContextGroupsArrange(SizeF endSize) { float num = 0.0f; ContextualTabGroup rightMostGroup = this.GetRightMostGroup(this.IsDesignMode); for (int index = 0; index < this.RibbonBarElement.ContextualTabGroups.Count; ++index) { ContextualTabGroup contextualTabGroup = this.RibbonBarElement.ContextualTabGroups[index] as ContextualTabGroup; float y = 0.0f; if (contextualTabGroup != null) { if (contextualTabGroup.TabItems.Count == 0) { if (this.IsDesignMode) { if (this.RibbonBarElement.TabStripElement.Items.Count > 0) { RadPageViewItem radPageViewItem = this.RibbonBarElement.TabStripElement.Items[this.RibbonBarElement.TabStripElement.Items.Count - 1]; Point point = this.TransformXToClient(radPageViewItem.ControlBoundingRectangle.Location); if (!this.RightToLeft) { float x = num + (float)point.X + (float)this.GetFullBoundingRect((RadElement)radPageViewItem).Width; contextualTabGroup.Arrange(new RectangleF(x, y, Math.Max(contextualTabGroup.DesiredSize.Width, (float)contextualTabGroup.MinSize.Width), contextualTabGroup.DesiredSize.Height)); num += Math.Max(contextualTabGroup.DesiredSize.Width, (float)contextualTabGroup.MinSize.Width); } else { float x1 = (float)point.X; num += Math.Max(contextualTabGroup.DesiredSize.Width, (float)contextualTabGroup.MinSize.Width); float x2 = x1 - num; contextualTabGroup.Arrange(new RectangleF(x2, y, Math.Max(contextualTabGroup.DesiredSize.Width, (float)contextualTabGroup.MinSize.Width), endSize.Height)); } } } } else { RadPageViewItem tabItem1 = contextualTabGroup.TabItems[0] as RadPageViewItem; RadPageViewItem tabItem2 = contextualTabGroup.TabItems[contextualTabGroup.TabItems.Count - 1] as RadPageViewItem; if (tabItem1 != null && tabItem2 != null) { if (contextualTabGroup == rightMostGroup && this.RightToLeft) { contextualTabGroup.Arrange(this.PerformArrangeWithShrink(endSize, contextualTabGroup)); } else { Point point = this.RightToLeft ? this.TransformXToClient(tabItem2.ControlBoundingRectangle.Location) : this.TransformXToClient(tabItem1.ControlBoundingRectangle.Location); contextualTabGroup.Arrange(new RectangleF((float)point.X, y, Math.Max(contextualTabGroup.DesiredSize.Width, (float)contextualTabGroup.MinSize.Width), endSize.Height)); } } } } } }
protected virtual int GetItemMarginLength(RadPageViewItem item) { if (this.verticalAlign) { return(item.AutoFlipMargin ? item.Margin.Horizontal : item.Margin.Vertical); } else { return(item.Margin.Horizontal); } }
public override PageViewItemSizeInfo CreateItemSizeInfo(RadPageViewItem item) { RadPageViewItem selectedItem = (this.itemLayout as RadPageViewElement).SelectedItem; PageViewItemSizeInfo itemSizeInfo = base.CreateItemSizeInfo(item); if (object.ReferenceEquals((object)selectedItem, (object)item)) { this.selectedItem = itemSizeInfo; } return(itemSizeInfo); }
protected override void Dispose(bool disposing) { if (disposing) { this.Detach(); } RadPageViewItem radPageViewItem = this.item; base.Dispose(disposing); radPageViewItem?.Dispose(); }
protected internal override void OnItemMouseUp(RadPageViewItem sender, System.Windows.Forms.MouseEventArgs e) { base.OnItemMouseUp(sender, e); if (e.Button != MouseButtons.Left) { return; } RadPageViewExplorerBarItem explorerBarItem = sender as RadPageViewExplorerBarItem; explorerBarItem.IsExpanded = !explorerBarItem.IsExpanded; }
protected internal virtual void OnSelectedPageChanged(RadPageViewEventArgs e) { RadPageViewItem item = null; if (e.Page != null) { item = e.Page.Item; } this.SetSelectedItem(item); }
private bool ContextualGroupsNotContainsThisTab(RadRibbonBar parentRibbon, RadPageViewItem tabItem) { foreach (ContextualTabGroup group in parentRibbon.ContextualTabGroups) { if (group.TabItems.Contains(tabItem)) { return(false); } } return(true); }
protected internal virtual void CloseItem(RadPageViewItem item) { if (this.owner != null) { Debug.Assert(item.Page != null && item.Page.Owner == this.owner, "Invalid CloseItem request."); this.owner.Pages.Remove(item.Page); } else { this.RemoveItem(item); } }
protected internal virtual void OnItemDrag(RadPageViewItem sender, MouseEventArgs e) { if (this.IsDesignMode) { return; } if (this.ItemDragMode != PageViewItemDragMode.None) { this.StartItemDrag(sender); } }
private void ArrangePreviewItem(RectangleF client, RectangleF clientNoOffset) { foreach (RadElement child in this.Children) { RadPageViewItem radPageViewItem = child as RadPageViewItem; if (radPageViewItem != null && radPageViewItem.Visibility != ElementVisibility.Collapsed && radPageViewItem.IsPreview) { SizeF size = radPageViewItem.ForcedLayoutSize; if ((this.layoutInfo.fitMode & StripViewItemFitMode.FillHeight) != StripViewItemFitMode.None) { switch (this.layoutInfo.align) { case StripViewAlignment.Top: case StripViewAlignment.Bottom: size = new SizeF(size.Width, client.Height); break; case StripViewAlignment.Right: case StripViewAlignment.Left: size = new SizeF(client.Width, size.Height); break; } } Padding margin = radPageViewItem.Margin; PointF location = PointF.Empty; switch (this.layoutInfo.align) { case StripViewAlignment.Top: location = new PointF(clientNoOffset.Right - size.Width - (float)margin.Left, client.Bottom - size.Height - (float)margin.Vertical); break; case StripViewAlignment.Right: location = new PointF(client.X + (float)margin.Left, clientNoOffset.Bottom - size.Height - (float)margin.Bottom); break; case StripViewAlignment.Bottom: location = new PointF(clientNoOffset.Right - size.Width - (float)margin.Left, client.Y + (float)margin.Top); break; case StripViewAlignment.Left: location = new PointF(client.Right - size.Width - (float)margin.Horizontal, clientNoOffset.Bottom - size.Height - (float)margin.Bottom); break; } RectangleF rectangleF = new RectangleF(location, size); if (this.RightToLeft && (this.layoutInfo.align == StripViewAlignment.Top || this.layoutInfo.align == StripViewAlignment.Bottom)) { rectangleF = LayoutUtils.RTLTranslateNonRelative(rectangleF, clientNoOffset); } radPageViewItem.Arrange(rectangleF); this.layoutInfo.previewItemSize = size; } } }
protected internal override void SetSelectedItem(RadPageViewItem item) { base.SetSelectedItem(item); switch (this.GetEffectiveDisplayMode((float)this.Size.Width)) { case NavigationViewDisplayModes.Minimal: case NavigationViewDisplayModes.Compact: this.Collapse(); break; } this.HeaderElement.Text = item != null ? item.Text : string.Empty; }
protected virtual void SetItemIndex(int currentIndex, int newIndex) { int indexOffset = this.ItemsParent.Children.IndexOf(this.items[0]); RadPageViewItem item = this.items[currentIndex]; this.items.RemoveAt(currentIndex); this.items.Insert(newIndex, item); this.ItemsParent.Children.Move(currentIndex + indexOffset, newIndex + indexOffset); this.ItemsParent.InvalidateMeasure(); }
protected virtual RadPageViewItem CreatePageViewItem( IRadPageViewProvider pageViewProvider, GridViewInfo viewInfo) { RadPageViewItem pageViewItem = pageViewProvider.CreatePageViewItem((object)this); string str = "table"; if (!string.IsNullOrEmpty(viewInfo.ViewTemplate.DataMember)) { str = viewInfo.ViewTemplate.DataMember; } if (!string.IsNullOrEmpty(viewInfo.ViewTemplate.Caption)) { str = viewInfo.ViewTemplate.Caption; } pageViewItem.Tag = (object)viewInfo; pageViewItem.Text = str; pageViewItem.RadPropertyChanging += new RadPropertyChangingEventHandler(this.item_RadPropertyChanging); pageViewItem.RadPropertyChanged += new RadPropertyChangedEventHandler(this.item_RadPropertyChanged); RadPageViewExplorerBarItem viewExplorerBarItem = pageViewItem as RadPageViewExplorerBarItem; if (viewExplorerBarItem != null) { GridTableElement viewUiElement = (GridTableElement)viewInfo.ViewTemplate.ViewDefinition.CreateViewUIElement(viewInfo); viewUiElement.ViewElement.StretchVertically = false; viewUiElement.StretchVertically = false; viewExplorerBarItem.IsExpanded = true; viewExplorerBarItem.AssociatedContentAreaElement = new RadPageViewContentAreaElement(); RadPageViewExplorerBarElement pageViewElement = (RadPageViewExplorerBarElement)this.pageViewElement; if (pageViewElement != null && pageViewElement.StackPosition == StackViewPosition.Left) { viewUiElement.StretchHorizontally = false; viewExplorerBarItem.AssociatedContentAreaElement.StretchHorizontally = false; } else { viewUiElement.StretchHorizontally = true; viewExplorerBarItem.AssociatedContentAreaElement.StretchHorizontally = true; } this.pageViewElement.Children.Add((RadElement)viewExplorerBarItem.AssociatedContentAreaElement); viewExplorerBarItem.AssociatedContentAreaElement.Children.Add((RadElement)viewUiElement); if (this.rowView == null) { this.rowView = viewUiElement; } viewUiElement.Initialize(this.GridViewElement, viewInfo); IGridRowLayout rowLayout = ((TableViewDefinition)viewInfo.ViewTemplate.ViewDefinition).CreateRowLayout(); rowLayout.Initialize(viewUiElement); viewUiElement.ViewElement.RowLayout = rowLayout; } return(pageViewItem); }
protected override void PerformStop() { base.PerformStop(); this.owner.EndItemDrag(this.dragItem); this.dragItem = (RadPageViewItem)null; this.insertHintImage = (RadImageShape)null; if (this.insertHint == null) { return; } this.insertHint.Dispose(); this.insertHint = (RadLayeredWindow)null; }
protected internal virtual void OnPageAdded(RadPageViewEventArgs e) { RadPageViewItem item = this.OnItemCreating(new RadPageViewItemCreatingEventArgs(e.Page)); if (item == null) { item = this.CreateItem(); } item.Attach(e.Page); this.AddItemCore(item); }
protected internal virtual void SetSelectedItem(RadPageViewItem item) { //no need to change selection if (this.selectedItem == item) { return; } if (UpdateSelectedItemContent) { this.SetSelectedContent(item); } RadPageViewItemSelectingEventArgs selectingEventArgs = new RadPageViewItemSelectingEventArgs(this.selectedItem, item); this.OnItemSelecting(this, selectingEventArgs); if (selectingEventArgs.Cancel) { return; } if (this.selectedItem != null) { this.selectedItem.IsSelected = false; } RadPageViewItem previousItem = this.selectedItem; this.selectedItem = item; if (this.selectedItem != null) { this.selectedItem.IsSelected = true; this.header.Text = this.selectedItem.Title; this.footer.Text = this.selectedItem.Description; if (this.EnsureSelectedItemVisible) { this.EnsureItemVisibleCore(item); } } else { this.header.ResetValue(RadItem.TextProperty); this.footer.ResetValue(RadItem.TextProperty); } RadPageViewItemSelectedEventArgs selectedEventArgs = new RadPageViewItemSelectedEventArgs(previousItem, this.selectedItem); this.OnItemSelected(this, selectedEventArgs); }
protected override void OnPropertyChanging(RadPropertyChangingEventArgs e) { base.OnPropertyChanging(e); if (e.Property == RadElement.VisibilityProperty && (ElementVisibility)e.NewValue == ElementVisibility.Collapsed) { int num = this.Owner.Items.IndexOf((RadPageViewItem)this); bool flag = false; for (int index = num + 1; index < this.Owner.Items.Count; ++index) { RadPageViewItem radPageViewItem = this.Owner.Items[index]; if (radPageViewItem.Visibility == ElementVisibility.Visible) { this.Owner.SelectedItem = radPageViewItem; flag = true; break; } } if (!flag) { for (int index = num - 1; index > -1; --index) { RadPageViewItem radPageViewItem = this.Owner.Items[index]; if (radPageViewItem.Visibility == ElementVisibility.Visible) { this.Owner.SelectedItem = radPageViewItem; flag = true; break; } } } e.Cancel = !flag; if (!e.Cancel) { this.ChangeTabVisibleCore(); } if (this.owner == null) { return; } this.owner.InvalidateMeasure(); this.owner.UpdateLayout(); } else { if (e.Property != RadElement.VisibilityProperty || (ElementVisibility)e.NewValue != ElementVisibility.Visible) { return; } this.ChangeTabVisibleCore(); } }
public override PageViewItemSizeInfo CreateItemSizeInfo(RadPageViewItem item) { RadPageViewExplorerBarItem viewExplorerBarItem = item as RadPageViewExplorerBarItem; bool isVertical = this.GetIsVertical(); bool isExpanded = viewExplorerBarItem.IsExpanded; ExplorerBarItemSizeInfo explorerBarItemSizeInfo = new ExplorerBarItemSizeInfo(viewExplorerBarItem, isVertical, isExpanded); if (isExpanded) { this.ExpandedItems.Add(explorerBarItemSizeInfo); ++this.expandedItemsCount; } return((PageViewItemSizeInfo)explorerBarItemSizeInfo); }
public bool EnsureItemVisible(RadPageViewItem item) { if (item == null) { throw new ArgumentNullException("Item"); } if (item.Owner != this) { throw new InvalidOperationException("Could not EnsureVisible item that is not hosted on this instance."); } return(this.EnsureItemVisibleCore(item)); }
/// <summary> /// This method reorders the TabStrip items so that they are positioned under the /// ContextualTabGroup they are associated with. All tab items that are /// associated with a tab groups should be positioned on the right side of the tab strip. /// This algorithm begins iterating from the first to the last contextual tab group as they /// appear in the collection of the ribbon bar. The associated tab items are always inserted /// at the end of the tab strip. In this way the effect of positioning the last associated /// tab item at the end of the corresponding contextual group is achieved. /// </summary> private void ResetAssociatedTabItems() { RibbonTab selectedTab = this.tabStripElement.SelectedItem as RibbonTab; List <RadItem> scheduledItemsForDeletion = new List <RadItem>(); for (int i = 0; i < this.contextualTabGroups.Count; i++) { ContextualTabGroup currentGroup = this.contextualTabGroups[i] as ContextualTabGroup; for (int k = 0; k < currentGroup.TabItems.Count; k++) { RadPageViewItem currentItem = currentGroup.TabItems[k] as RadPageViewItem; for (int j = 0; j < this.tabStripElement.Items.Count; ++j) { if (((RibbonTab)this.tabStripElement.Items[j]).obsoleteTab == currentItem) { currentItem = (RibbonTab)this.tabStripElement.Items[j]; currentGroup.TabItems[k] = currentItem; } } if (this.tabStripElement.Items.Contains(currentItem) && !(bool)currentItem.GetValue(RadItem.IsAddNewItemProperty) && currentItem.Parent != null) { this.tabStripElement.RemoveItem(currentItem); if (this.IsDesignMode) { if (this.tabStripElement.Items.Count == 0) { this.tabStripElement.InsertItem(this.tabStripElement.Items.Count, currentItem); } else { this.tabStripElement.InsertItem(this.tabStripElement.Items.Count - 1, currentItem); } } else { this.tabStripElement.InsertItem(this.tabStripElement.Items.Count, currentItem); } } } } this.tabStripElement.SelectedItem = selectedTab; }
public void SwapItems(RadPageViewItem item1, RadPageViewItem item2) { this.VerifyUnboundMode(); int index1 = this.items.IndexOf(item1); int index2 = this.items.IndexOf(item2); if (index1 == -1 || index2 == -1) { throw new IndexOutOfRangeException(); } this.SwapItemsCore(index1, index2); }
internal bool EnsureVisible(RadPageViewItem item) { if (item.Visibility == ElementVisibility.Collapsed || item.IsPinned || item.IsPreview) { return(false); } if (this.layoutInfo == null || !this.IsMeasureValid || !this.IsArrangeValid) { this.itemToEnsureVisible = item; return(false); } this.ScrollToItem(item); return(true); }
protected override void RemoveItemCore(RadPageViewItem item) { RadPageViewOutlookItem outlookItem = item as RadPageViewOutlookItem; if (outlookItem.AssociatedOverflowButton != null) { outlookItem.AssociatedOverflowButton.Dispose(); } this.hiddenItems.Remove(outlookItem); this.uncheckedItems.Remove(outlookItem); base.RemoveItemCore(item); }
protected internal override void OnItemMouseDown(RadPageViewItem sender, MouseEventArgs e) { if ((e.Button == base.ActionMouseButton || e.Button == MouseButtons.Left || e.Button == MouseButtons.Right) && e.Clicks == 1) { if (!sender.IsSelected) { base.SelectItem(sender); } else if (base.EnsureSelectedItemVisible) { base.EnsureItemVisible(sender); } } }
private void DoImmediateDrag(Point mousePos) { PageViewLayoutInfo layoutInfo = this.owner.ItemLayoutInfo; if (layoutInfo == null) { return; } Point client = this.owner.ElementTree.Control.PointToClient(mousePos); RadPageViewItem hitItem = this.owner.ItemFromPoint(client); if (hitItem == null || hitItem == this.dragItem) { return; } RectangleF dragBounds = this.dragItem.ControlBoundingRectangle; RectangleF hitBounds = hitItem.ControlBoundingRectangle; bool swapItems; if (layoutInfo.vertical) { if (hitBounds.Y > dragBounds.Y) { swapItems = client.Y > hitBounds.Bottom - dragBounds.Height; } else { swapItems = client.Y < hitBounds.Y + dragBounds.Height; } } else { if (hitBounds.X > dragBounds.X) { swapItems = client.X > hitBounds.Right - dragBounds.Width; } else { swapItems = client.X < hitBounds.X + dragBounds.Width; } } if (swapItems) { this.owner.PerformItemDrop(dragItem, hitItem); this.owner.UpdateLayout(); } }
protected internal virtual void OnItemMouseDown(RadPageViewItem sender, MouseEventArgs e) { if (e.Button == this.actionMouseButton && e.Clicks == 1) { if (!sender.IsSelected) { this.SelectItem(sender); } else if (this.EnsureSelectedItemVisible) { this.EnsureItemVisible(sender); } } }
protected override void PerformStop() { base.PerformStop(); this.owner.EndItemDrag(this.dragItem); this.dragItem = null; this.insertHintImage = null; if (this.insertHint != null) { this.insertHint.Dispose(); this.insertHint = null; } }