119 lines
5.1 KiB
C#
119 lines
5.1 KiB
C#
using System;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
|
|
namespace DTS.Common.RibbonControl
|
|
{
|
|
public class MenuButtonData : ControlData
|
|
{
|
|
public MenuButtonData()
|
|
: this(false)
|
|
{
|
|
}
|
|
|
|
public MenuButtonData(bool isApplicationMenu)
|
|
{
|
|
_isApplicationMenu = isApplicationMenu;
|
|
}
|
|
|
|
public bool IsVerticallyResizable
|
|
{
|
|
get => _isVerticallyResizable;
|
|
|
|
set
|
|
{
|
|
if (_isVerticallyResizable == value) return;
|
|
_isVerticallyResizable = value;
|
|
OnPropertyChanged(new PropertyChangedEventArgs("IsVerticallyResizable"));
|
|
}
|
|
}
|
|
|
|
public bool IsHorizontallyResizable
|
|
{
|
|
get => _isHorizontallyResizable;
|
|
|
|
set
|
|
{
|
|
if (_isHorizontallyResizable == value) return;
|
|
_isHorizontallyResizable = value;
|
|
OnPropertyChanged(new PropertyChangedEventArgs("IsHorizontallyResizable"));
|
|
}
|
|
}
|
|
|
|
private bool _isVerticallyResizable, _isHorizontallyResizable;
|
|
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
|
public ObservableCollection<ControlData> ControlDataCollection
|
|
{
|
|
get
|
|
{
|
|
if (_controlDataCollection == null)
|
|
{
|
|
_controlDataCollection = new ObservableCollection<ControlData>();
|
|
|
|
if (_nestingDepth <= ViewModelData.MenuItemNestingCount)
|
|
{
|
|
_nestingDepth++;
|
|
|
|
var smallImage = new Uri("/Common;component/RibbonControl/Images/Paste_16x16.png", UriKind.Relative);
|
|
var largeImage = new Uri("/Common;component/RibbonControl/Images/Paste_32x32.png", UriKind.Relative);
|
|
|
|
for (var i = 0; i < ViewModelData.GalleryCount; i++)
|
|
{
|
|
var galleryData = new GalleryData()
|
|
{
|
|
Label = "Gallery " + i,
|
|
SmallImage = smallImage,
|
|
LargeImage = largeImage,
|
|
ToolTipTitle = "ToolTip Title",
|
|
ToolTipDescription = "ToolTip Description",
|
|
ToolTipImage = smallImage,
|
|
Command = ViewModelData.DefaultCommand
|
|
};
|
|
galleryData.SelectedItem = galleryData.CategoryDataCollection[0].GalleryItemDataCollection[ViewModelData.GalleryItemCount - 1];
|
|
|
|
_controlDataCollection.Add(galleryData);
|
|
}
|
|
for (var i = 0; i < ViewModelData.MenuItemCount; i++)
|
|
{
|
|
var menuItemData = _isApplicationMenu ? new ApplicationMenuItemData(true) : new MenuItemData(false);
|
|
menuItemData.Label = "MenuItem " + i;
|
|
menuItemData.SmallImage = smallImage;
|
|
menuItemData.LargeImage = largeImage;
|
|
menuItemData.ToolTipTitle = "ToolTip Title";
|
|
menuItemData.ToolTipDescription = "ToolTip Description";
|
|
menuItemData.ToolTipImage = smallImage;
|
|
menuItemData.Command = ViewModelData.DefaultCommand;
|
|
menuItemData._nestingDepth = _nestingDepth;
|
|
|
|
_controlDataCollection.Add(menuItemData);
|
|
}
|
|
|
|
_controlDataCollection.Add(new SeparatorData());
|
|
|
|
for (var i = 0; i < ViewModelData.SplitMenuItemCount; i++)
|
|
{
|
|
var splitMenuItemData = _isApplicationMenu ? new ApplicationSplitMenuItemData(true) : new SplitMenuItemData(false);
|
|
splitMenuItemData.Label = "SplitMenuItem " + i;
|
|
splitMenuItemData.SmallImage = smallImage;
|
|
splitMenuItemData.LargeImage = largeImage;
|
|
splitMenuItemData.ToolTipTitle = "ToolTip Title";
|
|
splitMenuItemData.ToolTipDescription = "ToolTip Description";
|
|
splitMenuItemData.ToolTipImage = smallImage;
|
|
splitMenuItemData.Command = ViewModelData.DefaultCommand;
|
|
splitMenuItemData._nestingDepth = _nestingDepth;
|
|
splitMenuItemData.IsCheckable = true;
|
|
|
|
_controlDataCollection.Add(splitMenuItemData);
|
|
}
|
|
}
|
|
}
|
|
return _controlDataCollection;
|
|
}
|
|
}
|
|
private ObservableCollection<ControlData> _controlDataCollection;
|
|
private int _nestingDepth;
|
|
private bool _isApplicationMenu;
|
|
}
|
|
}
|