/// <summary> /// Set current application modes /// </summary> /// <param name="modesArray">array of modes to set</param> /// <remarks>Unlisted modes will be unset</remarks> public void SetModes(params byte[] modesArray) { if (modesArray == null || modesArray.Length == 0) { throw new ArgumentNullException(nameof(modesArray)); } // check that ribbon is initialized if (!Initialized) { return; } // calculate compact modes value int compactModes = 0; for (int i = 0; i < modesArray.Length; ++i) { if (modesArray[i] >= 32) { throw new ArgumentException("Modes should range between 0 to 31."); } compactModes |= (1 << modesArray[i]); } // set modes Framework.SetModes(compactModes); }
private void InitializeRibbon() { IUIFramework framework = (IUIFramework)Activator.CreateInstance<Framework>(); Trace.Assert(framework != null, "Failed to create IUIFramework."); ribbonControl = new RibbonControl(_htmlEditor.IHtmlEditorComponentContext, _htmlEditor); int initializeResult = framework.Initialize(_mainFrameWindow.Handle, this); Trace.Assert(initializeResult == HRESULT.S_OK, "Ribbon framework failed to initialize: " + initializeResult); _framework = framework; string nativeResourceDLL = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\OpenLiveWriter.Ribbon.dll"; IntPtr hMod = Kernel32.LoadLibrary(nativeResourceDLL); using (new QuickTimer("IUIRibbonFramework::LoadUI")) { int loadResult = _framework.LoadUI(hMod, "RIBBON_RIBBON"); Trace.Assert(loadResult == HRESULT.S_OK, "Ribbon failed to load: " + loadResult); } _framework.SetModes(mode); CommandManager.Invalidate(CommandId.MRUList); CommandManager.Invalidate(CommandId.OpenDraftSplit); CommandManager.Invalidate(CommandId.OpenPostSplit); ApplicationDiagnostics.TestModeChanged += OnTestModeChanged; TestMode = ApplicationDiagnostics.TestMode; }