/// <summary> /// Получить SplitButton (основная команда + все вложенные команды) для дескриптора функции /// </summary> /// <param name="descriptor">Дескриптор функции - класс, реализующий интерфейс <see cref="IIntellectualEntityDescriptor"/></param> /// <param name="orientation">Ориентация кнопки</param> private static RibbonSplitButton GetSmallSplitButton( IIntellectualEntityDescriptor descriptor, Orientation orientation = Orientation.Vertical) { // Создаем SplitButton var risSplitBtn = new RibbonSplitButton { Text = "RibbonSplitButton", Orientation = orientation, Size = RibbonItemSize.Standard, ShowImage = true, ShowText = false, ListButtonStyle = Autodesk.Private.Windows.RibbonListButtonStyle.SplitButton, ResizeStyle = RibbonItemResizeStyles.NoResize, ListStyle = RibbonSplitButtonListStyle.List }; var ribBtn = GetButton(descriptor, orientation); if (ribBtn != null) { risSplitBtn.Items.Add(ribBtn); risSplitBtn.Current = ribBtn; } // Вложенные команды GetButtonsForSubFunctions(descriptor, orientation).ForEach(b => risSplitBtn.Items.Add(b)); return(risSplitBtn); }
/// <summary> /// Получить SplitButton (основная команда + все вложенные команды) для дескриптора функции /// </summary> /// <param name="descriptor">Дескриптор функции - класс, реализующий интерфейс <see cref="IIntellectualEntityDescriptor"/></param> /// <param name="orientation">Ориентация кнопки</param> /// <param name="size">Размер кнопки</param> private static RibbonSplitButton GetSplitButton( IIntellectualEntityDescriptor descriptor, Orientation orientation = Orientation.Vertical, RibbonItemSize size = RibbonItemSize.Large) { // Создаем SplitButton var risSplitBtn = new RibbonSplitButton { Text = "RibbonSplitButton", Orientation = orientation, Size = size, ShowImage = true, ShowText = true, ListButtonStyle = Autodesk.Private.Windows.RibbonListButtonStyle.SplitButton, ResizeStyle = RibbonItemResizeStyles.NoResize, ListStyle = RibbonSplitButtonListStyle.List }; // Добавляем в него первую функцию, которую делаем основной var ribBtn = GetBigButton(descriptor, orientation); if (ribBtn != null) { risSplitBtn.Items.Add(ribBtn); risSplitBtn.Current = ribBtn; } // Вложенные команды GetBigButtonsForSubFunctions(descriptor, orientation).ForEach(b => risSplitBtn.Items.Add(b)); return(risSplitBtn); }
// creates a RibbonSplitButton and initializes it using a unique ID string and // a list of items that may contain strings or RibbonElement objects. internal static RibbonSplitButton CreateSplitButton(string id, params object[] items) { RibbonSplitButton split = new RibbonSplitButton(); SetItemProperties(split, id); AddSubItems(split.Items, items); return(split); }
public static RibbonSplitButton AddSplitButton(this RibbonItemCollection panelSrc, string text, ICommand command, Bitmap image) { RibbonSplitButton splitBtn = new RibbonSplitButton(); panelSrc.AddItem(splitBtn, text, command, image, image); splitBtn.IsSplit = false; return(splitBtn); }
private static void OnDropDownToolTipPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RibbonSplitButton splitButton = (RibbonSplitButton)d; if (splitButton.PartToggleButton != null) { splitButton.PartToggleButton.CoerceValue(FrameworkElement.ToolTipProperty); } }
public static void SplitButtonSetSize(RibbonSplitButton rbnSplitButton, bool boolLargeButton) { if (boolLargeButton) { rbnSplitButton.ControlSize = RibbonControlSize.RibbonControlSizeLarge; } else { rbnSplitButton.ControlSize = RibbonControlSize.RibbonControlSizeRegular; } }
public void CreateUI() { var cmdBlockFromPointAtGradient = UIHelper.GetCommandGlobalName(typeof(LevelBlockCommands), nameof(LevelBlockCommands.CalculateLevelFromPointAtGradient)); var cmdBlockFromBlockAtGradient = UIHelper.GetCommandGlobalName(typeof(LevelBlockCommands), nameof(LevelBlockCommands.CalculateLevelFromLevelBlockAtGradient)); var cmdBlockFromBlockWithInvert = UIHelper.GetCommandGlobalName(typeof(LevelBlockCommands), nameof(LevelBlockCommands.CalculateLevelFromLevelBlockWithInvert)); var cmdBlockBetweenBlocks = UIHelper.GetCommandGlobalName(typeof(LevelBlockCommands), nameof(LevelBlockCommands.CalculateLevelBetweenLevels)); var cmdGradientBetweenBlocks = UIHelper.GetCommandGlobalName(typeof(GradientBlockCommands), nameof(GradientBlockCommands.CalculateGradientBetweenLevels)); var cmdPolylineFromLevelBlocks = UIHelper.GetCommandGlobalName(typeof(PolylineCommands), nameof(PolylineCommands.GeneratePolyline3dFromLevels)); var btnBlockFromPointAtGradient = UIHelper.CreateButton(Resources.ExtensionApplication_UI_BtnLevelBlockFromPointAtGradient, Resources.level_block_small, RibbonItemSize.Standard, cmdBlockFromPointAtGradient); var btnBlockFromBlockAtGradient = UIHelper.CreateButton(Resources.ExtensionApplication_UI_BtnLevelBlockFromBlockAtGradient, Resources.level_block_small, RibbonItemSize.Standard, cmdBlockFromBlockAtGradient); var btnBlockBetweenBlocks = UIHelper.CreateButton(Resources.ExtensionApplication_UI_BtnBlockBetweenBlocks, Resources.level_block_small, RibbonItemSize.Standard, cmdBlockBetweenBlocks); var btnBlockFromBlockWithInvert = UIHelper.CreateButton(Resources.ExtensionApplication_UI_BtnLevelBlockFromBlockWithInvert, Resources.level_block_small, RibbonItemSize.Standard, cmdBlockFromBlockWithInvert); var btnGradientBetweenBlocks = UIHelper.CreateButton(Resources.ExtensionApplication_UI_BtnGradientBetweenBlocks, Resources.gradient_large, RibbonItemSize.Standard, cmdGradientBetweenBlocks); var btnPolylineFromLevelBlocks = UIHelper.CreateButton(Resources.ExtensionApplication_UI_BtnPolylineFromLevelBlocks, Resources.line_from_levels_small, RibbonItemSize.Standard, cmdPolylineFromLevelBlocks); var btnSplitLevel = new RibbonSplitButton { ShowText = true, IsSynchronizedWithCurrentItem = false, Text = Resources.ExtensionApplication_UI_BtnLevelBlocks, Image = UIHelper.LoadImage(new Bitmap(Resources.level_block_large, new Size(16, 16))), IsSplit = false }; btnSplitLevel.Items.Add(btnBlockFromPointAtGradient); btnSplitLevel.Items.Add(btnBlockFromBlockAtGradient); btnSplitLevel.Items.Add(btnBlockFromBlockWithInvert); btnSplitLevel.Items.Add(btnBlockBetweenBlocks); var source = new RibbonPanelSource { Title = Resources.ExtensionApplication_UI_PanelTitle }; var column = new RibbonRowPanel { IsTopJustified = true }; column.Items.Add(btnSplitLevel); column.Items.Add(new RibbonRowBreak()); column.Items.Add(btnGradientBetweenBlocks); column.Items.Add(new RibbonRowBreak()); column.Items.Add(btnPolylineFromLevelBlocks); source.Items.Add(column); var panel = new RibbonPanel { Source = source }; var ribbon = ComponentManager.Ribbon; var tab = ribbon.FindTab(Constants.IRONSTONE_CONCEPT_TAB_ID); tab.Panels.Add(panel); }
/// <summary> /// 给面板添加下拉组合按钮 /// </summary> /// <param name="panelSource"></param> /// <param name="text"></param> /// <param name="size"></param> /// <param name="orient"></param> /// <returns></returns> public static RibbonSplitButton AddSplitButton(this RibbonPanelSource panelSource, string text, RibbonItemSize size, Orientation orient) { RibbonSplitButton splitBtn = new RibbonSplitButton(); splitBtn.Text = text; splitBtn.ShowText = true; splitBtn.Size = size; splitBtn.ShowImage = true; splitBtn.Orientation = orient; panelSource.Items.Add(splitBtn); return(splitBtn); }
private static void OnIsCheckedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { RibbonSplitButton splitButton = (RibbonSplitButton)d; if (splitButton.IsCheckable) { RibbonSplitButtonAutomationPeer peer = UIElementAutomationPeer.FromElement(splitButton) as RibbonSplitButtonAutomationPeer; if (peer != null) { peer.RaiseToggleStatePropertyChangedEvent((bool)e.OldValue, (bool)e.NewValue); } } }
/// <summary> 创建可下拉的按钮列表 </summary> /// <param name="panel"></param> /// <param name="buttonText"></param> /// <returns></returns> private static RibbonSplitButton CreateSplitButton(RibbonPanel panel, string buttonText) { var sb = new RibbonSplitButton() { Text = buttonText, ShowText = true, Size = RibbonItemSize.Large, ListStyle = RibbonSplitButtonListStyle.List, }; panel.Source.Items.Add(sb); return(sb); }
public static RibbonSplitButton AddSplitButtonToRibbonPanel(RibbonPanelSource panelSource) { var ribbonRow = new RibbonRow(); panelSource.Items.Add(ribbonRow); var splitButton = new RibbonSplitButton(ribbonRow); splitButton.ButtonStyle = RibbonButtonStyle.LargeWithText; ribbonRow.Items.Add(splitButton); return(splitButton); }
private static RibbonSplitButton CreateSplitButton([NotNull] SplitElement splitElem) { var splitB = new RibbonSplitButton(); foreach (var elem in splitElem.Items) { var button = CreateButton(elem); splitB.Items.Add(button); splitB.Items.Add(new RibbonToggleButton()); } return(splitB); }
public void Bind(ActionId actionId, object control) { RibbonSplitButton nativeControl = (RibbonSplitButton)control; nativeControl.Click += (sender, e) => { ActionManager.Execute(actionId); }; ActionManager.Updating += (s, e) => { nativeControl.Enabled = ActionManager.CanExecute(actionId); }; }
private static void AddButton(RibbonSplitButton splitButton, MethodInfo method, RibbonItemSize size) { string commandName; string buttonText; string description; BitmapImage largeImage; BitmapImage smallImage; GetMethodElements(method, out commandName, out buttonText, out description, out largeImage, out smallImage); // var ribButton = CreateButton(commandName, buttonText, description, size, largeImage); splitButton.Items.Add(ribButton); }
private static void AddPanels(RibbonTab ribTab) { // Линии // create the panel source var ribSourcePanel = new RibbonPanelSource { Title = "Линии" }; // now the panel var ribPanel = new RibbonPanel { Source = ribSourcePanel }; ribTab.Panels.Add(ribPanel); var ribRowPanel = new RibbonRowPanel(); // mpBreakLine if (LoadFunctionsHelper.LoadedFunctions.Any(x => x.Name.Equals("mpBreakLine"))) { var lf = LoadFunctionsHelper.LoadedFunctions.First(x => x.Name.Equals("mpBreakLine")); // Создаем SplitButton var risSplitBtn = new RibbonSplitButton { Text = "RibbonSplitButton", Orientation = Orientation.Vertical, Size = RibbonItemSize.Large, ShowImage = true, ShowText = true, ListButtonStyle = Autodesk.Private.Windows.RibbonListButtonStyle.SplitButton, ResizeStyle = RibbonItemResizeStyles.NoResize, ListStyle = RibbonSplitButtonListStyle.List }; // Добавляем в него первую функцию, которую делаем основной var ribBtn = RibbonHelpers.AddBigButton(lf.Name, lf.LName, lf.BigIconUrl, lf.Description, Orientation.Vertical, lf.FullDescription, lf.ToolTipHelpImage); risSplitBtn.Items.Add(ribBtn); risSplitBtn.Current = ribBtn; // Затем добавляем подфункции for (int i = 0; i < lf.SubFunctionsNames.Count; i++) { risSplitBtn.Items.Add(RibbonHelpers.AddBigButton( lf.SubFunctionsNames[i], lf.SubFunctionsLNames[i], lf.SubBigIconsUrl[i], lf.SubDescriptions[i], Orientation.Vertical, lf.SubFullDescriptions[i], lf.SubHelpImages[i] )); } ribRowPanel.Items.Add(risSplitBtn); } if (ribRowPanel.Items.Any()) { ribSourcePanel.Items.Add(ribRowPanel); } }
public void CreateUI() { RibbonControl rc = Autodesk.Windows.ComponentManager.Ribbon; RibbonTab primaryTab = rc.FindTab(Jpp.Ironstone.Core.Constants.IRONSTONE_TAB_ID); RibbonPanel Panel = new RibbonPanel(); RibbonPanelSource source = new RibbonPanelSource(); source.Title = Properties.Resources.ExtensionApplication_UI_PanelTitle; RibbonRowPanel column1 = new RibbonRowPanel(); column1.IsTopJustified = true; RibbonButton addRevision = UIHelper.CreateButton(Properties.Resources.ExtensionApplication_UI_RevisionButton, Properties.Resources.Revise_Small, RibbonItemSize.Standard, String.Empty); RibbonButton finaliseRevisions = UIHelper.CreateButton(Properties.Resources.ExtensionApplication_UI_FinaliseRevisionButton, Properties.Resources.Revise_Small, RibbonItemSize.Standard, String.Empty); RibbonSplitButton revisionSplitButton = new RibbonSplitButton(); /*revisionSplitButton.Text = "RibbonSplit";*/ revisionSplitButton.ShowText = true; revisionSplitButton.Items.Add(addRevision); revisionSplitButton.Items.Add(finaliseRevisions); //TODO: Enable once the backing code is in place revisionSplitButton.IsEnabled = false; column1.Items.Add(revisionSplitButton); column1.Items.Add(new RibbonRowBreak()); column1.Items.Add(UIHelper.CreateButton(Properties.Resources.ExtensionApplication_UI_ImportDrawing, Properties.Resources.DocumentType, RibbonItemSize.Standard, "DM_ImportDrawing")); //Build the UI hierarchy source.Items.Add(column1); Panel.Source = source; primaryTab.Panels.Add(Panel); }
private static void AddPanel2(RibbonTab ribTab) { //create the panel source Autodesk.Windows.RibbonPanelSource ribSourcePanel = new RibbonPanelSource(); ribSourcePanel.Title = "裤长"; //now the panel RibbonPanel ribPanel = new RibbonPanel(); ribPanel.Source = ribSourcePanel; ribTab.Panels.Add(ribPanel); //create a Ribbon text Autodesk.Windows.RibbonTextBox ribTxt = new RibbonTextBox(); ribTxt.Width = 100; ribTxt.IsEmptyTextValid = false; ribTxt.InvokesCommand = true; ribTxt.CommandHandler = new AdskCommandHandler(); //create a Ribbon List Button Autodesk.Windows.RibbonSplitButton ribListBtn = new RibbonSplitButton(); Autodesk.Windows.RibbonButton ribButton1 = new RibbonButton(); ribButton1.Text = "长裤"; ribButton1.ShowText = true; ribButton1.CommandParameter = "LINE "; ribButton1.CommandHandler = new AdskCommandHandler(); Autodesk.Windows.RibbonButton ribButton2 = new RibbonButton(); ribButton2.Text = "九分裤"; ribButton2.ShowText = true; ribButton2.CommandParameter = "CIRCLE "; ribButton2.CommandHandler = new AdskCommandHandler(); ribListBtn.Text = "Some options"; ribListBtn.ShowText = true; ribListBtn.Items.Add(ribButton1); ribListBtn.Items.Add(ribButton2); ribSourcePanel.Items.Add(ribTxt); ribSourcePanel.Items.Add(new RibbonRowBreak()); ribSourcePanel.Items.Add(ribListBtn); }
public void Create() { RibbonTab tab = FindOrMakeTab("Add-ins"); // add to Add-Ins tab if (tab == null) { return; } RibbonPanelSource panel = CreateButtonPanel("Speckle 2", tab); if (panel == null) { return; } RibbonToolTip speckleTip = CreateToolTip("Speckle", "Speckle Connector for " + Utils.AppName); RibbonButton button = CreateButton("Connector " + Utils.AppName, "Speckle", panel, null, speckleTip, "logo"); // DUI2 RibbonButton button2 = CreateButton("Connector " + Utils.AppName + "New UI (alpha)!", "SpeckleNewUi", panel, null, speckleTip, "logo"); // help and resources buttons RibbonSplitButton helpButton = new RibbonSplitButton(); helpButton.Text = "Help & Resources"; helpButton.Image = LoadPngImgSource("help16.png"); helpButton.LargeImage = LoadPngImgSource("help32.png"); helpButton.ShowImage = true; helpButton.ShowText = true; helpButton.Size = RibbonItemSize.Large; helpButton.Orientation = Orientation.Vertical; panel.Items.Add(helpButton); RibbonToolTip communityTip = CreateToolTip("Community", "Check out our community forum! Opens a page in your web browser."); RibbonToolTip tutorialsTip = CreateToolTip("Tutorials", "Check out our tutorials! Opens a page in your web browser"); RibbonToolTip docsTip = CreateToolTip("Docs", "Check out our documentation! Opens a page in your web browser"); RibbonButton community = CreateButton("Community", "SpeckleCommunity", null, helpButton, communityTip, "forum"); RibbonButton tutorials = CreateButton("Tutorials", "SpeckleTutorials", null, helpButton, tutorialsTip, "tutorials"); RibbonButton docs = CreateButton("Docs", "SpeckleDocs", null, helpButton, docsTip, "docs"); }
public void Initialize() { Editor editor = Application.DocumentManager.MdiActiveDocument.Editor; try { RibbonPanelSource panelSource = AutocadAPI.AddRibbonPanel("ID_ADDINSTAB", PluginName, PluginText); if (panelSource == null) { editor.WriteMessage(ProgramMessage[KEY_ADDED]); } else { RibbonSplitButton splitButton = AutocadAPI.AddSplitButtonToRibbonPanel(panelSource); CustomizationSection custSection = panelSource.CustomizationSection; MacroGroup macroGroup = custSection.MenuGroup.MacroGroups[0]; PluginCommandButton[] buttons = GetShowMessageButtons(); foreach (PluginCommandButton button in buttons) { AutocadAPI.AddCommandButtonToRibbonSplitButton(macroGroup, splitButton, button.Text, button.Command, button.SmallBitmapPath, button.LargeBitmapPath, button.Tooltip); } custSection.Save(); Application.ReloadAllMenus(); editor.WriteMessage(ProgramMessage[KEY_INST]); } } catch (System.Exception ex) { editor.WriteMessage(ProgramMessage[KEY_ERROR] + ex.Message); } }
static private void addCusEnt(RibbonTab ribTab) { //create the panel source Autodesk.Windows.RibbonPanelSource ribSourcePanel = new RibbonPanelSource(); ribSourcePanel.Title = "WT-Tools Entities"; //now the panel RibbonPanel ribPanel = new RibbonPanel(); ribPanel.Source = ribSourcePanel; ribTab.Panels.Add(ribPanel); //create button Autodesk.Windows.RibbonButton ribButtonGrating = new RibbonButton(); ribButtonGrating.Orientation = System.Windows.Controls.Orientation.Vertical; BitmapImage bmpI = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.grating); ribButtonGrating.LargeImage = bmpI; ribButtonGrating.Image = bmpI; ribButtonGrating.Size = RibbonItemSize.Large; ribButtonGrating.Text = "Grating"; ribButtonGrating.ShowText = true; ribButtonGrating.CommandParameter = "grating "; ribButtonGrating.CommandHandler = new AdskCommandHandler(); //create button Autodesk.Windows.RibbonButton ribButtonRamp = new RibbonButton(); ribButtonRamp.Orientation = System.Windows.Controls.Orientation.Vertical; BitmapImage bmpIRamp = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Ramp); ribButtonRamp.LargeImage = bmpIRamp; ribButtonRamp.Image = bmpIRamp; ribButtonRamp.Size = RibbonItemSize.Large; ribButtonRamp.Text = "Ramp"; ribButtonRamp.ShowText = true; ribButtonRamp.CommandParameter = "ramp "; ribButtonRamp.CommandHandler = new AdskCommandHandler(); //create button //create a Ribbon List Button Autodesk.Windows.RibbonSplitButton ribListBtn = new RibbonSplitButton(); Autodesk.Windows.RibbonButton ribButtonQuota = new RibbonButton(); ribButtonQuota.Orientation = System.Windows.Controls.Orientation.Vertical; BitmapImage bmpIQuota = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Quota); ribButtonQuota.LargeImage = bmpIQuota; ribButtonQuota.Image = bmpIQuota; ribButtonQuota.Size = RibbonItemSize.Large; ribButtonQuota.Text = "Arrow"; ribButtonQuota.ShowText = true; ribButtonQuota.CommandParameter = "quota arrow "; ribButtonQuota.CommandHandler = new AdskCommandHandler(); Autodesk.Windows.RibbonButton ribButtonQuota_Leader = new RibbonButton(); ribButtonQuota_Leader.Orientation = System.Windows.Controls.Orientation.Vertical; BitmapImage bmpIQuota_Leader = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Quota_Leader); ribButtonQuota_Leader.LargeImage = bmpIQuota_Leader; ribButtonQuota_Leader.Image = bmpIQuota; ribButtonQuota_Leader.Size = RibbonItemSize.Large; ribButtonQuota_Leader.Text = "Leader"; ribButtonQuota_Leader.ShowText = true; ribButtonQuota_Leader.CommandParameter = "quota leader "; ribButtonQuota_Leader.CommandHandler = new AdskCommandHandler(); Autodesk.Windows.RibbonButton ribButtonQuota_Plane = new RibbonButton(); ribButtonQuota_Leader.Orientation = System.Windows.Controls.Orientation.Vertical; BitmapImage bmpIQuota_Plane = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Quota_Plane); ribButtonQuota_Plane.LargeImage = bmpIQuota_Plane; ribButtonQuota_Plane.Image = bmpIQuota; ribButtonQuota_Plane.Size = RibbonItemSize.Large; ribButtonQuota_Plane.Text = "Plane"; ribButtonQuota_Plane.ShowText = true; ribButtonQuota_Plane.CommandParameter = "quota plane "; ribButtonQuota_Plane.CommandHandler = new AdskCommandHandler(); ribListBtn.Text = "Quota"; ribListBtn.Size = RibbonItemSize.Large; ribListBtn.ShowText = true; ribListBtn.Items.Add(ribButtonQuota); ribListBtn.Items.Add(ribButtonQuota_Leader); ribListBtn.Items.Add(ribButtonQuota_Plane); ribSourcePanel.Items.Add(ribButtonGrating); ribSourcePanel.Items.Add(ribButtonRamp); ribSourcePanel.Items.Add(ribListBtn); }
/// <summary> /// Project Management panel creation /// </summary> /// <returns>Project Management Panel</returns> // TODO: Refactor first buttons to copy / clean up. public RibbonPanel AddProMgmtPanel() { // Tab -> RibbonPanels[] -> RibbonPanel -> RibbonPanelSource -> RibbonButton(s) // Establish the source control for the panel. RibbonPanelSource rps = new RibbonPanelSource { Title = "Project Management", Name = "Project Management" }; // Establish output RibbonPanel RibbonPanel rp = new RibbonPanel { Source = rps }; // Open folders on server for project. // Establish the split button control to add options to. var OpenProjectSplit = new RibbonSplitButton { Text = "SplitButton", CommandHandler = new RibbonButtonHandler(), ShowImage = true, ShowText = true, Image = IntFunctions.BitmapToImageSource(Properties.Resources.placeholder_large), LargeImage = IntFunctions.BitmapToImageSource(Properties.Resources.placeholder_large), IsSplit = true, Size = RibbonItemSize.Large, Orientation = System.Windows.Controls.Orientation.Vertical }; // Establish our individual buttons RibbonButton OpenProjectFolder = ButtonLarge.Clone() as RibbonButton; OpenProjectFolder.Text = $"Open{Environment.NewLine}Project"; OpenProjectFolder.CommandParameter = "._OpenProjectFolder "; OpenProjectFolder.LargeImage = IntFunctions.BitmapToImageSource(Properties.Resources.Goto_Folder); RibbonButton OpenCompFolder = ButtonLarge.Clone() as RibbonButton; OpenCompFolder.Text = $"Open Comp{Environment.NewLine}Folder"; OpenCompFolder.CommandParameter = "._OpenCompFolder "; OpenCompFolder.LargeImage = IntFunctions.BitmapToImageSource(Properties.Resources.Goto_Folder, Properties.Resources.overlay_edit); RibbonButton OpenSubmittalFolder = ButtonLarge.Clone() as RibbonButton; OpenSubmittalFolder.Text = $"Open Submittal{Environment.NewLine}Folder"; OpenSubmittalFolder.CommandParameter = "._OpenSubmittalFolder "; OpenSubmittalFolder.LargeImage = IntFunctions.BitmapToImageSource(Properties.Resources.Goto_Folder, Properties.Resources.overlay_export); RibbonButton OpenFieldDataFolder = ButtonLarge.Clone() as RibbonButton; OpenFieldDataFolder.Text = $"Open Field{Environment.NewLine}Data Folder"; OpenFieldDataFolder.CommandParameter = "._OpenFieldDataFolder "; OpenFieldDataFolder.LargeImage = IntFunctions.BitmapToImageSource(Properties.Resources.Goto_Folder, Properties.Resources.overlay_field); // Add our individual buttons to the split button container OpenProjectSplit.Items.Add(OpenProjectFolder); OpenProjectSplit.Items.Add(OpenCompFolder); OpenProjectSplit.Items.Add(OpenFieldDataFolder); OpenProjectSplit.Items.Add(OpenSubmittalFolder); // Add our split button to the RibbonPanelSource rps.Items.Add(OpenProjectSplit); // Return the RibbonPanel return(rp); }
public static void AddCommandButtonToRibbonSplitButton(MacroGroup macroGroup, RibbonSplitButton splitButton, string buttonText, string command, string smallBitmapPath, string largeBitmapPath, string toolTip) { MenuMacro menuMacro = macroGroup.CreateMenuMacro(command + "_Macro", "^C^C" + command, command + "_Tag", command + "_Help", MacroType.Any, smallBitmapPath, largeBitmapPath, command + "_Label_Id"); var button = new RibbonCommandButton(splitButton); button.MacroID = menuMacro.ElementID; button.Text = buttonText; button.ButtonStyle = RibbonButtonStyle.SmallWithoutText; button.KeyTip = buttonText + " Key Tip"; button.TooltipTitle = toolTip; splitButton.Items.Add(button); }
/// <summary> /// Initialize Automation Peer for RibbonSplitButton /// </summary> public RibbonSplitButtonAutomationPeer(RibbonSplitButton owner) : base(owner) { }
//------------------------------------------------------------ #region ** command dispatcher // forward ribbon events to the appropriate C1XHtmlRibbonTab. protected override void OnRibbonEvent(RibbonEventArgs e) { RibbonItem item = e.Item as RibbonItem; if (item != null) { // handle clicks on non-tab items if (e.EventType == RibbonEventType.Click) { // handle application menu and Qat items if (item.Tab == null) { switch (item.ID) { case "New": NewDocument(); return; case "Open": case "OpenQat": OpenDocument(); return; case "Save": case "SaveQat": SaveDocument(); return; case "SaveAs": SaveDocumentAs(); break; case "Print": PrintDocument(true, false); break; case "PrintPreview": PrintDocument(false, true); break; case "QuickPrint": PrintDocument(false, false); break; case "ExportPdf": ExportDocument(); break; case "Exit": Exit(); break; case "Undo": Undo(); break; case "Redo": Redo(); break; default: break; } } } else if (e.EventType == RibbonEventType.DropDown) { switch (item.ID) { case "Undo": case "Redo": bool isUndo = string.Compare(item.ID, "Undo", true) == 0; string[] actionList = isUndo ? _editor.Editor.History.UndoList : _editor.Editor.History.RedoList; RibbonSplitButton sb = item as RibbonSplitButton; sb.Items.Clear(); int actionIndex = 0; foreach (string action in actionList) { RibbonButton rb = new RibbonButton(action); rb.Tag = actionIndex; rb.Click += (isUndo ? new EventHandler(UndoClick) : new EventHandler(RedoClick)); sb.Items.Add(rb); actionIndex += 1; } break; default: break; } } // delegate to tab elements if (!_updatingUI) { C1TextEditorRibbonTab tab = item.Tab as C1TextEditorRibbonTab; if (tab != null) { tab.HandleItemEvent(e); } } // exit when double-clicking the app menu if (item.Equals(this.ApplicationMenu) && e.EventType == RibbonEventType.DoubleClick) { Exit(); } } // fire event as usual base.OnRibbonEvent(e); }
protected override void Initialize(IWebMatrixHost host, ExtensionInitData initData) { this.webMatrixHost = host; this.webMatrixHost.WebSiteChanged += new EventHandler<EventArgs>(host_WebSiteChanged); this.webMatrixHost.TreeItemCreated += new EventHandler<TreeItemEventArgs>(webMatrixHost_TreeItemCreated); this.webMatrixHost.TreeItemRemoved += new EventHandler<TreeItemEventArgs>(webMatrixHost_TreeItemRemoved); this.webMatrixHost.ContextMenuOpening += new EventHandler<ContextMenuOpeningEventArgs>(webMatrixHost_ContextMenuOpening); var list = new List<RibbonButton>{ new RibbonButton("Initialize", this.gitInitCommand, null, Resources.git_init, Resources.git_32), //new RibbonButton("Clone", this.gitInitCommand, null, Resources.git_init, Resources.git_32), new RibbonButton("Commit Changes", this.gitCommitCommand, null, Resources.git_16, Resources.git_32), new RibbonButton("View Log/History", this.gitLogCommand, null, Resources.git_16, Resources.git_32), new RibbonButton("Refresh", this.gitRefreshCommand, null, Resources.git_16, Resources.git_32), new RibbonButton("Run Git Bash", this.gitBashCommand, null, Resources.git_16, Resources.git_32), }; var button = new RibbonSplitButton("Git", this.gitBashCommand, null, list, Resources.git_16, Resources.git_32); initData.RibbonItems.Add(button); }
public void RibbonSplitButton() { RibbonControl ribbonControl = ComponentManager.Ribbon; ///////////////////////////////////// // create Ribbon tab RibbonTab Tab = new RibbonTab() { Title = "Drawing manager", Id = "DRAWINGMANAGER_TAB_ID" }; ribbonControl.Tabs.Add(Tab); #region Panels ///////////////////////////////////// // create Ribbon panel RibbonPanelSource xRefPanel = new RibbonPanelSource() { Title = "Xrefs" }; RibbonPanel xRefPane = new RibbonPanel() { Source = xRefPanel }; Tab.Panels.Add(xRefPane); RibbonPanelSource LayerUpdatePanel = new RibbonPanelSource() { Title = "Layer Update" }; RibbonPanel LayerUpdatePane = new RibbonPanel() { Source = LayerUpdatePanel }; Tab.Panels.Add(LayerUpdatePane); RibbonPanelSource DrawingMaintenancePanel = new RibbonPanelSource() { Title = "Drawing maintenance" }; RibbonPanel DrawingMaintenancePane = new RibbonPanel() { Source = DrawingMaintenancePanel }; Tab.Panels.Add(DrawingMaintenancePane); RibbonPanelSource ViewPanel = new RibbonPanelSource() { Title = "View" }; RibbonPanel ViewPane = new RibbonPanel() { Source = ViewPanel }; Tab.Panels.Add(ViewPane); RibbonPanelSource FunctionsPanel = new RibbonPanelSource() { Title = "Functions" }; RibbonPanel FunctionsPane = new RibbonPanel() { Source = FunctionsPanel }; Tab.Panels.Add(FunctionsPane); ////////////////////////////////////////////////// // create the buttons listed in the split button #endregion #region xRef Buttons RibbonButton xrefButton1 = new RibbonButton() { Text = "Add", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton xrefButton2 = new RibbonButton() { Text = "Unload", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton xrefButton3 = new RibbonButton() { Text = "Detach", ShowText = true, CommandHandler = new MyCmdHandler() }; #endregion #region Update Layers Buttons RibbonButton UpdateLayersThisDrawingButton = new RibbonButton() { Text = "This drawing", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton UpdateLayersMultipleDrawingsButton = new RibbonButton() { Text = "Multiple drawings", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton addLayerFromThisDrawingButton = new RibbonButton() { Text = "Select layer this drawing", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton addLayerFromXrefButton = new RibbonButton() { Text = "Select layer xref", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton editLayerConfigButton = new RibbonButton() { Text = "Edit layer config", ShowText = true, CommandHandler = new MyCmdHandler() }; #endregion #region Drawing management buttons RibbonButton PurgeButton = new RibbonButton() { Text = "Purge multiple drawings", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton ChangeAttributeValueButton = new RibbonButton() { Text = "Change attribute value", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton GenerateAttributeListButton = new RibbonButton() { Text = "Generate Attribute List", ShowText = true, CommandHandler = new MyCmdHandler() }; #endregion #region View Buttons RibbonButton TopDownButton = new RibbonButton() { Text = "Top Down", ShowText = true, CommandHandler = new MyCmdHandler() }; RibbonButton AdjustCableTraysButton = new RibbonButton() { Text = "Adjust Cable Trays", ShowText = true, CommandHandler = new MyCmdHandler() }; #endregion //////////////////////// // create split buttons RibbonSplitButton XrefSplitButton = new RibbonSplitButton() { // Required to avoid upsetting AutoCAD when using cmd locator Text = "Xref functions", ShowText = true }; RibbonSplitButton LayerUpdateSplitButton = new RibbonSplitButton() { Text = "Layer Update", ShowText = true }; RibbonLabel LayerUpdateLabel = new RibbonLabel() { Text = "Update layers in:" }; RibbonRowPanel DrawingMaintenanceRowPanel = new RibbonRowPanel(); RibbonRowPanel LayerUpdateRowPanel = new RibbonRowPanel(); DrawingMaintenanceRowPanel.Items.Add(PurgeButton); DrawingMaintenanceRowPanel.Items.Add(new RibbonRowBreak()); DrawingMaintenanceRowPanel.Items.Add(ChangeAttributeValueButton); DrawingMaintenanceRowPanel.Items.Add(new RibbonRowBreak()); DrawingMaintenanceRowPanel.Items.Add(GenerateAttributeListButton); XrefSplitButton.Items.Add(xrefButton1); XrefSplitButton.Items.Add(xrefButton2); XrefSplitButton.Items.Add(xrefButton3); LayerUpdateSplitButton.Items.Add(UpdateLayersThisDrawingButton); LayerUpdateSplitButton.Items.Add(UpdateLayersMultipleDrawingsButton); LayerUpdateRowPanel.Items.Add(LayerUpdateLabel); LayerUpdateRowPanel.Items.Add(LayerUpdateSplitButton); LayerUpdateRowPanel.Items.Add(new RibbonRowBreak()); LayerUpdateRowPanel.Items.Add(addLayerFromThisDrawingButton); LayerUpdateRowPanel.Items.Add(new RibbonRowBreak()); LayerUpdateRowPanel.Items.Add(addLayerFromXrefButton); LayerUpdateRowPanel.Items.Add(new RibbonRowBreak()); LayerUpdateRowPanel.Items.Add(editLayerConfigButton); ViewPanel.Items.Add(TopDownButton); FunctionsPanel.Items.Add(AdjustCableTraysButton); xRefPanel.Items.Add(XrefSplitButton); LayerUpdatePanel.Items.Add(LayerUpdateRowPanel); DrawingMaintenancePanel.Items.Add(DrawingMaintenanceRowPanel); Tab.IsActive = true; }
private RibbonButton CreateButton(string name, string CommandParameter, RibbonPanelSource sourcePanel = null, RibbonSplitButton sourceButton = null, RibbonToolTip tooltip = null, string imageName = "") { var button = new RibbonButton(); // ribbon panel source info assignment button.Text = name; button.Id = name; button.ShowImage = true; button.ShowText = true; button.ToolTip = tooltip; button.HelpSource = new System.Uri("https://speckle.guide/user/autocadcivil.html"); button.Size = RibbonItemSize.Large; button.Image = LoadPngImgSource(imageName + "16.png"); button.LargeImage = LoadPngImgSource(imageName + "32.png"); // add ribbon button pannel to the ribbon panel source if (sourcePanel != null) { button.Orientation = Orientation.Vertical; button.CommandParameter = CommandParameter; button.CommandHandler = new ButtonCommandHandler(CommandParameter); sourcePanel.Items.Add(button); } else if (sourceButton != null) { button.Orientation = Orientation.Horizontal; button.CommandParameter = CommandParameter; button.CommandHandler = new ButtonCommandHandler(CommandParameter); sourceButton.Items.Add(button); } return(button); }
/// <summary> /// Dựng menu ribbon của hệ thống theo user đăng nhập /// </summary> /// <param name="rbMenu">Control Menu ribbon được tham chiếu, xử lý rồi trả về</param> public void KhoiTaoMenu(ref Ribbon rbMenu) { try { string toolTip; ChucNangDto[] ChucNanglst = ClientInformation.ListChucNang.Select(e => e).ToArray(); IQueryable <ChucNangDto> sItem; string pathFolderImages = ApplicationConstant.defaultImageSource; // Lấy danh sách menu theo tên đăng nhập và mã đơn vị var sTab = ChucNanglst.Where(e => e.IDChucNangCha == 0).OrderBy(e => e.STT).ToList(); foreach (var Tab in sTab) { if (Tab.ThuocTinh.SplitByDelimiter("#")[2] == "RibbonApplicationMenu") { // Application menu RibbonApplicationMenu ram = new RibbonApplicationMenu(); ram.Label = Utilities.Common.LLanguage.SearchResourceByKey(Tab.TieuDe); if (!Tab.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Tab.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Tab.TieuDe; } ram.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); ram.KeyTip = Tab.ThuocTinh.SplitByDelimiter("#")[3]; ram.Uid = Tab.IDChucNang.ToString(); if (!Tab.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Tab.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Tab.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonMenuItem icon always small ram.SmallImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Tab.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); ram.SmallImageSource = bmp; } } catch { } } var sMenu = ChucNanglst.Where(e => e.IDChucNangCha == Tab.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Menu in sMenu) { switch (Menu.ThuocTinh.SplitByDelimiter("#")[2]) { case "RibbonApplicationSplitMenuItem": if (Menu.Quyen == 0) { goto case "RibbonApplicationMenuItem"; } var rasmi = new RibbonApplicationSplitMenuItem(); rasmi.Name = "ID" + Menu.IDChucNang.ToString(); rasmi.Header = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe); if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Menu.TieuDe; } rasmi.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); rasmi.KeyTip = Menu.ThuocTinh.SplitByDelimiter("#")[3]; rasmi.Uid = Menu.IDChucNang.ToString(); if (!Menu.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonApplicationSplitMenuItem icon always large rasmi.ImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // QuickAccessToolBar icon always small rasmi.QuickAccessToolBarImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); rasmi.ImageSource = bmp; rasmi.QuickAccessToolBarImageSource = bmp; } } catch { } } rasmi.Tag = Menu; //rasmi.IsEnabled = Menu.Quyen > 0; // Items sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Item in sItem) { var item = new RibbonApplicationMenuItem(); item.Name = "ID" + Item.IDChucNang.ToString(); item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe); if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Item.TieuDe; } item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); item.KeyTip = Item.ThuocTinh.SplitByDelimiter("#")[3]; item.Uid = Item.IDChucNang.ToString(); if (!Item.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonApplicationMenuItem icon always large item.ImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // QuickAccessToolBar icon always small item.QuickAccessToolBarImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); item.ImageSource = bmp; item.QuickAccessToolBarImageSource = bmp; } } catch { } } item.Tag = Item; item.IsEnabled = Item.Quyen > 0; rasmi.Items.Add(item); } ram.Items.Add(rasmi); break; case "RibbonApplicationMenuItem": var rami = new RibbonApplicationMenuItem(); rami.Name = "ID" + Menu.IDChucNang.ToString(); rami.Header = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe); if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Menu.TieuDe; } rami.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); rami.KeyTip = Menu.ThuocTinh.SplitByDelimiter("#")[3]; rami.Uid = Menu.IDChucNang.ToString(); if (!Menu.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonApplicationMenuItem icon always large rami.ImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // QuickAccessToolBar icon always small rami.QuickAccessToolBarImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); rami.ImageSource = bmp; rami.QuickAccessToolBarImageSource = bmp; } } catch { } } if (!Menu.ChucNang.IsNullOrEmptyOrSpace()) { rami.Tag = Menu; } //rami.IsEnabled = Menu.Quyen > 0; // Items sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Item in sItem) { var item = new RibbonApplicationMenuItem(); item.Name = "ID" + Item.IDChucNang.ToString(); item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe); if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Item.TieuDe; } item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); item.KeyTip = Item.ThuocTinh.SplitByDelimiter("#")[3]; item.Uid = Item.IDChucNang.ToString(); if (!Item.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonApplicationMenuItem icon always large item.ImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // QuickAccessToolBar icon always small item.QuickAccessToolBarImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); item.ImageSource = bmp; item.QuickAccessToolBarImageSource = bmp; } } catch { } } item.Tag = Item; item.IsEnabled = Item.Quyen > 0; rami.Items.Add(item); } ram.Items.Add(rami); break; default: Grid grid; if (ram.FooterPaneContent.IsNullOrEmpty()) { grid = new Grid(); grid.ColumnDefinitions.Add(new ColumnDefinition()); ColumnDefinition cd = new ColumnDefinition(); cd.Width = GridLength.Auto; grid.ColumnDefinitions.Add(cd); ram.FooterPaneContent = grid; } else { grid = (Grid)(ram.FooterPaneContent); } var rb = new RibbonButton(); rb.Name = "ID" + Menu.IDChucNang.ToString(); rb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe); if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Menu.TieuDe; } rb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); rb.KeyTip = Menu.ThuocTinh.SplitByDelimiter("#")[3]; rb.Uid = Menu.IDChucNang.ToString(); if (!Menu.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); rb.LargeImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); rb.SmallImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large") { rb.LargeImageSource = bmp; } else { rb.SmallImageSource = bmp; } } } catch { } } rb.Tag = Menu; rb.IsEnabled = Menu.Quyen > 0; grid.Children.Add(rb); Grid.SetColumn(rb, 1); break; } } rbMenu.ApplicationMenu = ram; } else { // Tabs RibbonTab tab = new RibbonTab(); Type rthType = new RibbonTabHeader().GetType(); tab.Header = Utilities.Common.LLanguage.SearchResourceByKey(Tab.TieuDe); if (!Tab.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Tab.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Tab.TieuDe; } tab.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); tab.HeaderStyle = new Style(rthType); tab.HeaderStyle.Setters.Add(new Setter(RibbonWindow.ToolTipProperty, tab.ToolTip)); tab.IsEnabled = Tab.Quyen > 0; tab.Uid = Tab.IDChucNang.ToString(); // Groups var sGroup = ChucNanglst.Where(e => e.IDChucNangCha == Tab.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Group in sGroup) { RibbonGroup group = new RibbonGroup(); group.Header = Utilities.Common.LLanguage.SearchResourceByKey(Group.TieuDe); group.IsEnabled = Group.Quyen > 0; // Buttons var sMenu = ChucNanglst.Where(e => e.IDChucNangCha == Group.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Menu in sMenu) { switch (Menu.ThuocTinh.SplitByDelimiter("#")[2]) { case "RibbonSplitButton": if (Menu.Quyen == 0) { goto case "RibbonMenuButton"; } var rsb = new RibbonSplitButton(); rsb.Name = "ID" + Menu.IDChucNang.ToString(); rsb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe); if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Menu.TieuDe; } rsb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); rsb.KeyTip = Menu.ThuocTinh.SplitByDelimiter("#")[3]; rsb.Uid = Menu.IDChucNang.ToString(); if (!Menu.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); rsb.LargeImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); rsb.SmallImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large") { rsb.LargeImageSource = bmp; } else { rsb.SmallImageSource = bmp; } } } catch { } } rsb.Tag = Menu; //rsb.IsEnabled = Menu.Quyen > 0; // Items sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Item in sItem) { var item = new RibbonMenuItem(); item.Name = "ID" + Item.IDChucNang.ToString(); item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe); if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Item.TieuDe; } item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); item.KeyTip = Item.ThuocTinh.SplitByDelimiter("#")[3]; item.Uid = Item.IDChucNang.ToString(); if (!Item.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonMenuItem icon always small item.ImageSource = bmp; // QuickAccessToolBar icon always small item.QuickAccessToolBarImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); item.ImageSource = bmp; item.QuickAccessToolBarImageSource = bmp; } } catch { } } item.Tag = Item; item.IsEnabled = Item.Quyen > 0; rsb.Items.Add(item); } group.Items.Add(rsb); break; case "RibbonMenuButton": var rmb = new RibbonMenuButton(); rmb.Name = "ID" + Menu.IDChucNang.ToString(); rmb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe); if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Menu.TieuDe; } rmb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); rmb.KeyTip = Menu.ThuocTinh.SplitByDelimiter("#")[3]; rmb.Uid = Menu.IDChucNang.ToString(); if (!Menu.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); rmb.LargeImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); rmb.SmallImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large") { rmb.LargeImageSource = bmp; } else { rmb.SmallImageSource = bmp; } } } catch { } } //rmb.IsEnabled = Menu.Quyen > 0; // Items sItem = ChucNanglst.Where(e => e.IDChucNangCha == Menu.IDChucNang).OrderBy(e => e.STT).AsQueryable(); foreach (var Item in sItem) { var item = new RibbonMenuItem(); item.Name = "ID" + Item.IDChucNang.ToString(); item.Header = Utilities.Common.LLanguage.SearchResourceByKey(Item.TieuDe); if (!Item.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Item.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Item.TieuDe; } item.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); item.KeyTip = Item.ThuocTinh.SplitByDelimiter("#")[3]; item.Uid = Item.IDChucNang.ToString(); if (!Item.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Item.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); // RibbonMenuItem icon always small item.ImageSource = bmp; // QuickAccessToolBar icon always small item.QuickAccessToolBarImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Item.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); item.ImageSource = bmp; item.QuickAccessToolBarImageSource = bmp; } } catch { } } item.Tag = Item; item.IsEnabled = Item.Quyen > 0; rmb.Items.Add(item); } group.Items.Add(rmb); break; default: var rb = new RibbonButton(); rb.Name = "ID" + Menu.IDChucNang.ToString(); rb.Label = Utilities.Common.LLanguage.SearchResourceByKey(Menu.TieuDe); if (!Menu.ThuocTinh.SplitByDelimiter("#")[0].IsNullOrEmptyOrSpace()) { toolTip = Menu.ThuocTinh.SplitByDelimiter("#")[0]; } else { toolTip = Menu.TieuDe; } rb.ToolTip = Utilities.Common.LLanguage.SearchResourceByKey(toolTip); rb.KeyTip = Menu.ThuocTinh.SplitByDelimiter("#")[3]; rb.Uid = Menu.IDChucNang.ToString(); if (!Menu.BieuTuong.IsNullOrEmptyOrSpace()) { try { BitmapImage bmp = new BitmapImage(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Both") { bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[0], UriKind.RelativeOrAbsolute); bmp.EndInit(); rb.LargeImageSource = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong.SplitByDelimiter("#")[1], UriKind.RelativeOrAbsolute); bmp.EndInit(); rb.SmallImageSource = bmp; } else { // Lagre or Small bmp.BeginInit(); bmp.UriSource = new Uri(pathFolderImages + Menu.BieuTuong, UriKind.RelativeOrAbsolute); bmp.EndInit(); if (Menu.ThuocTinh.SplitByDelimiter("#")[1] == "Large") { rb.LargeImageSource = bmp; } else { rb.SmallImageSource = bmp; } } } catch (Exception ex) { LLogging.WriteLog(ex.TargetSite.Name, LLogging.LogType.ERR, ex); } } rb.Tag = Menu; rb.IsEnabled = Menu.Quyen > 0; group.Items.Add(rb); break; } } tab.Items.Add(group); } rbMenu.Items.Add(tab); } } } catch (Exception ex) { // Ghi log Exception LLogging.WriteLog(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), LLogging.LogType.ERR, ex); } }
private static void AddBlocksPanel() { var blocksPnl = Geo7ToolsTab.AddPanel(AcConsts.Blocks); // Insert Point var blockAddButton = new RibbonSplitButton(); blockAddButton.ShowText = false; blockAddButton.Size = RibbonItemSize.Large; blockAddButton.Text = "Insert Point"; //Required not to crash AutoCAD when using cmd locators var insertPointCommands = DwgLib.GetInsertPointCommands(Ac.Geo7Dwg); foreach (var cmd in insertPointCommands) { blockAddButton.Items.AddButton(cmd); } blocksPnl.Items.Add(blockAddButton); // Import / Export var blocksInOutRow = new RibbonRowPanel(); blocksInOutRow.Items.AddButton(new ImportBlocksCommand()); blocksInOutRow.Items.AddRowBreak(); blocksInOutRow.Items.AddButton(new ExportBlocksCommand()); blocksInOutRow.Items.AddRowBreak(); blocksInOutRow.Items.AddButton(new ExportTextsCommand()); blocksPnl.Items.Add(blocksInOutRow); // Block Settings var blocksSettingsRow = new RibbonRowPanel(); blocksSettingsRow.Items.AddButton(new BlockSettingsCommand()); blocksSettingsRow.Items.AddRowBreak(); blocksSettingsRow.Items.AddButton(new FindBlockCommand()); blocksSettingsRow.Items.AddRowBreak(); blocksPnl.Items.Add(blocksSettingsRow); //var blocksFindRow = new RibbonRowPanel(); //blocksFindRow.Items.Add(new RibbonTextBox()); //blocksFindRow.Items.Add(new RibbonButton()); //blocksFindRow.Items.Add(new RibbonButton()); //blocksFindRow.Items.AddRowBreak(); //var findResults = new RibbonGallery(); //findResults.DisplayMode = GalleryDisplayMode.Window; //findResults.Size = RibbonItemSize.Standard; //findResults.ShowImage = false; //var b1 = new RibbonButton(); //b1.Size = RibbonItemSize.Standard; //b1.ShowImage = false; //b1.Text = "aaaa"; //b1.Orientation = Orientation.Horizontal; //var b2 = new RibbonButton(); //b2.Size = RibbonItemSize.Standard; //b2.Text = "2222"; //b1.ShowImage = false; //b2.Orientation = Orientation.Horizontal; //findResults.MenuItems.Add(b1); //findResults.MenuItems.Add(b2); //findResults.MenuItems.Add(b1); //findResults.MenuItems.Add(b2); //findResults.Items.Add(b1); //blocksFindRow.Items.AddButton("Block Settings", null, null); }
public void Fill() { if (_data.Rows.Count == 0) { return; } //Obtenemos un DataView filtrando todos o que tengan el tipo Tab //entonces el campo MenuTipoID debe ser igual a 1 DataView dvHijos = new DataView(_data); dvHijos.RowFilter = "MenuTipoID=1"; foreach (DataRowView drvHijos in dvHijos) { RibbonTab rbTab; RibbonGroup rbGroup = new RibbonGroup(); // Creamos el Tab rbTab = _objRibbon.Tabs.Add(drvHijos["NomMenu"].ToString().Trim()); DataView dvGroups = new DataView(_data); dvGroups.RowFilter = "MenuPadreID=" + drvHijos["MenuID"].ToString().Trim(); dvGroups.Sort = "MenuCodigo ASC"; foreach (DataRowView drvGroupItem in dvGroups) { // Creamos el Grupo rbGroup = rbTab.Groups.Add(drvGroupItem["NomMenu"].ToString().Trim()); // Busquemos sus botones para agregar DataView dvItems = new DataView(_data); dvItems.RowFilter = "MenuPadreID=" + drvGroupItem["MenuID"].ToString().Trim(); dvItems.Sort = "MenuCodigo ASC"; foreach (DataRowView drvItem in dvItems) { if (Convert.ToInt32(drvItem["MenuTipoID"]) == 2) { // Creamos el Boton RibbonButton rbutton; rbutton = new RibbonButton(); rbutton.Text = drvItem["NomMenu"].ToString().Trim(); rbutton.ToolTip = drvItem["NomMenu"].ToString().Trim(); rbutton.ID = drvItem["MenuCodigo"].ToString().Trim() + ";" + drvItem["Ensamblado"].ToString().Trim() + ";" + drvItem["Clase"].ToString().Trim(); // Debe se asegurarse que el nombre de la imagen sin extension sea exactamente el mismo al // ResourceImage de la base de datos if (drvItem["Imagen"].ToString().Trim() != "") { rbutton.LargeImage = (Image)Halley.Presentacion.Properties.Resources.ResourceManager.GetObject(drvItem["Imagen"].ToString().Trim()); if (Convert.ToBoolean(drvItem["LargeImage"]) == true) { rbutton.TextImageRelation = TextImageRelation.ImageAboveText; } else { rbutton.TextImageRelation = TextImageRelation.ImageBeforeText; } } rbutton.Tag = drvItem["ModoCargaVentana"].ToString().Trim(); rbGroup.Items.Add(rbutton); // Asignamos el evento para saber cuando pulsamos el boton rbutton.Click += new EventHandler(rbutton_Click); } else if (Convert.ToInt32(drvItem["MenuTipoID"]) == 3) { // Creamos los Separadores RibbonSeparator rbSep = new RibbonSeparator(); rbSep.ID = drvItem["MenuCodigo"].ToString().Trim(); rbGroup.Items.Add(rbSep); } //agregado para ver el split else if (Convert.ToInt32(drvItem["MenuTipoID"]) == 5) { // Creamos el SplitBoton RibbonSplitButton Splitrbutton; Splitrbutton = new RibbonSplitButton(); Splitrbutton.Text = drvItem["NomMenu"].ToString().Trim(); Splitrbutton.ToolTip = drvItem["NomMenu"].ToString().Trim(); // Debe se asegurarse que el nombre de la imagen sin extension sea exactamente el mismo al // ResourceImage de la base de datos if (drvItem["Imagen"].ToString().Trim() != "") { Splitrbutton.LargeImage = (Image)Halley.Presentacion.Properties.Resources.ResourceManager.GetObject(drvItem["Imagen"].ToString().Trim()); if (Convert.ToBoolean(drvItem["LargeImage"]) == true) { Splitrbutton.TextImageRelation = TextImageRelation.ImageAboveText; } else { Splitrbutton.TextImageRelation = TextImageRelation.ImageBeforeText; } } //agregado para que el split tenga botenes hijos DataView dvSplitHijos = new DataView(_data); dvSplitHijos.RowFilter = "MenuPadreID=" + drvItem["MenuID"].ToString().Trim(); foreach (DataRowView drvSplit in dvSplitHijos) { if (Convert.ToInt32(drvSplit["MenuTipoID"]) == 2 && drvSplit["MenuCodigo"].ToString().Length == 10) { // Creamos el Boton RibbonButton rbutton; rbutton = new RibbonButton(); rbutton.Text = drvSplit["NomMenu"].ToString().Trim(); rbutton.ToolTip = drvSplit["NomMenu"].ToString().Trim(); rbutton.ID = drvSplit["MenuCodigo"].ToString().Trim() + ";" + drvSplit["Ensamblado"].ToString().Trim() + ";" + drvSplit["Clase"].ToString().Trim(); // Debe se asegurarse que el nombre de la imagen sin extension sea exactamente el mismo al // ResourceImage de la base de datos if (drvSplit["Imagen"].ToString().Trim() != "") { rbutton.LargeImage = (Image)Halley.Presentacion.Properties.Resources.ResourceManager.GetObject(drvSplit["Imagen"].ToString().Trim()); if (Convert.ToBoolean(drvSplit["LargeImage"]) == true) { rbutton.TextImageRelation = TextImageRelation.ImageAboveText; } else { rbutton.TextImageRelation = TextImageRelation.ImageBeforeText; } } rbutton.Tag = drvSplit["ModoCargaVentana"].ToString().Trim(); Splitrbutton.Items.Add(rbutton); // Asignamos el evento para saber cuando pulsamos el boton rbutton.Click += new EventHandler(rbutton_Click); } } rbGroup.Items.Add(Splitrbutton); } } } } // poniendo el foco en el primer tab creado _objRibbon.Tabs[0].Selected = true; }
public static void SplitButtonUpdateLabel(RibbonSplitButton rbnSplitButton, string strText) { rbnSplitButton.Label = strText; }