public void SetOutputSelection(string name) { ExportAction action = Exec.OutputActionNamed(name); guiControls.menuOutput.SetSelection(action.name); // just calls back ItemSelected(menu,menuItem) after recovering the menuItem from the menu by name Exec.currentOutputAction = action; }
private void SelectExport(KFlyoutMenu menu, KButton menuItem, ExportAction menuSelection) { guiControls.menuExport.Enabled(false); guiControls.menuExport.Selected(true); try { menuSelection.action(); } finally { guiControls.menuExport.Selected(false); guiControls.menuExport.Enabled(true); } }
// Output menu private void OutputMenu() { guiControls.menuOutput.SetImage("Computation_48x48"); guiControls.menuOutput.OnClick((object s, EventArgs e) => { MenuClicked(guiControls.menuOutput); }); guiControls.menuOutput.autoClose = true; guiControls.menuOutput.ClearMenuItems(); KButton headOutputItem = guiControls.menuOutput.NewMenuSection(-1); headOutputItem.SetText("Computed Output"); guiControls.menuOutput.AddMenuItem(headOutputItem); guiControls.menuOutput.AddSeparator(); foreach (ExportAction output in Exec.outputActionsList()) { ExportAction menuSelection = output; KButton menuItem = guiControls.menuOutput.NewMenuItemButton(); menuItem.SetText(output.name); menuItem.OnClick((object s, EventArgs e) => { ItemClicked(guiControls.menuOutput, menuItem, true); // handle the selection graphical feedback ExecOutputAction(menuSelection); // handle storing the menuSelection value }); guiControls.menuOutput.AddMenuItem(menuItem, name: output.name); } guiControls.menuOutput.Visible(true); guiControls.menuOutput.Enabled(true); }
// Export menu private void ExportMenu() { guiControls.menuExport.SetImage("icons8_share_384_W_48x48"); guiControls.menuExport.OnClick((object s, EventArgs e) => { MenuClicked(guiControls.menuExport); }); guiControls.menuExport.autoClose = true; guiControls.menuExport.ClearMenuItems(); KButton headExportItem = guiControls.menuExport.NewMenuSection(-1); headExportItem.SetText("Share"); guiControls.menuExport.AddMenuItem(headExportItem); guiControls.menuExport.AddSeparator(); foreach (ExportAction export in Exec.exportActionsList()) { ExportAction menuSelection = export; KButton menuItem = guiControls.menuExport.NewMenuItemButton(); menuItem.SetText(export.name); menuItem.OnClick((object s, EventArgs e) => { ItemClicked(guiControls.menuExport, menuItem, false); // handle the selection graphical feedback SelectExport(guiControls.menuExport, menuItem, menuSelection); // handle storing the menuSelection value }); guiControls.menuExport.AddMenuItem(menuItem); } guiControls.menuExport.Visible(false); guiControls.menuExport.Enabled(true); }
private void ExecOutputAction(ExportAction menuSelection) { Exec.currentOutputAction = menuSelection; Exec.currentOutputAction.action(); guiControls.SavePreferences(); }