06 Menüs


01 Menüpunkt in Dienstprogramme
using System.Windows.Forms;
using Eplan.EplApi.Scripting;

public class _06_Menues_01_Menuepunkt_in_Dienstprogramme
{
  [DeclareAction("MenuAction")]
  public void ActionFunction()
  {
    MessageBox.Show("Action wurde ausgeführt!");

    return;
  }

  [DeclareMenu]
  public void MenuFunction()
  {
    Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

    menu.AddMenuItem(
        "Menüpunkt am Ende von Dienstprogramme", // Name: Menüpunkt
        "MenuAction" // Name: Action
        );

    return;
  }
}


02 Bestehendes Menü erweitern
using System.Windows.Forms;
using Eplan.EplApi.Scripting;

public class _06_Menues_02_Bestehendes_Menue_erweitern
{
  [DeclareAction("MenuAction")]
  public void ActionFunction()
  {
    MessageBox.Show("Action wurde ausgeführt!");

    return;
  }

  [DeclareMenu]
  public void MenuFunction()
  {
    Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

    menu.AddMenuItem(
        "Bestehendes Menü erweitern", // Name: Menüpunkt
        "MenuAction", // Name: Action
        "Statustext", // Statustext
        37024, // Menü-ID: Einfügen/Fenstermakro...
        1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
        false, // Separator davor anzeigen
        false // Separator dahinter anzeigen
        );

    return;
  }
}


03 Hauptmenü mit Untermenüpunkt
using System.Windows.Forms;
using Eplan.EplApi.Scripting;

public class _06_Menues_03_Hauptmenue_mit_Untermenuepunkt
{
  [DeclareAction("MenuAction")]
  public void ActionFunction()
  {
    MessageBox.Show("Action wurde ausgeführt!");

    return;
  }

  [DeclareMenu]
  public void MenuFunction()
  {
    Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

    menu.AddMainMenu(
        "Menü 1", // Name: Menü
        Eplan.EplApi.Gui.Menu.MainMenuName.eMainMenuHelp, // neben Menüpunkt
        "Hauptmenü mit einem Menüpunkt", // Name: Menüpunkt
        "MenuAction", // Name: Action
        "Statustext", // Statustext
        1 // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
        );

    return;
  }
}


04 Bestehendes Menü mit Popup-Menü erweitern
using System.Windows.Forms;
using Eplan.EplApi.Scripting;

public class _06_Menues_04_Bestehendes_Menue_mit_Popup_Menue_erweitern
{
  [DeclareAction("MenuAction")]
  public void ActionFunction()
  {
    MessageBox.Show("Action wurde ausgeführt!");

    return;
  }

  [DeclareMenu]
  public void MenuFunction()
  {
    Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

    menu.AddPopupMenuItem(
        "Bestehendes Menü erweitern...", // Name: Menü
        "mit Popup-Menü", // Name: Menüpunkt
        "MenuAction", // Name: Action
        "Statustext", // Statustext
        37024, // Menü-ID: Einfügen/Fenstermakro...
        0, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
        false, // Separator davor anzeigen
        false // Separator dahinter anzeigen
        );

    return;
  }
}


05 Hauptmenü mit Popup-Menü
using System.Windows.Forms;
using Eplan.EplApi.Scripting;

public class _06_Menues_05_Hauptmenue_mit_Popup_Menue
{
  [DeclareAction("MenuAction")]
  public void ActionFunction()
  {
    MessageBox.Show("Action wurde ausgeführt!");

    return;
  }

  [DeclareMenu]
  public void MenuFunction()
  {
    Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

    uint menuId = new uint(); // Menü-ID vom neu erzeugten Menü
    menuId = menu.AddMainMenu( // Festlegen der Menü-ID des Objekts
        "Menü 2", // Name: Menü
        Eplan.EplApi.Gui.Menu.MainMenuName.eMainMenuHelp, // neben Menüpunkt
        "Hauptmenü mit einem Menüpunkt", // Name: Menüpunkt
        "MenuAction", // Name: Action
        "Statustext", // Statustext
        1 // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
        );

    menu.AddPopupMenuItem(
        "Popup-Menü mit...", // Name: Menü
        "Unterpunkt", // Name: Menüpunkt
        "MenuAction", // Name: Action
        "Statustext", // Statustext
        menuId, // Menü-ID
        1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
        true, // Separator davor anzeigen
        false // Separator dahinter anzeigen
        );

    return;
  }
}


06 Menüpunkt in Kontextmenü
using System.Windows.Forms;
using Eplan.EplApi.Scripting;

public class _06_Menues_06_Menuepunkt_in_Kontextmenue
{
  [DeclareAction("MenuAction")]
  public void ActionFunction()
  {
    MessageBox.Show("Action wurde ausgeführt!");

    return;
  }

  [DeclareMenu]
  public void MenuFunction()
  {
    Eplan.EplApi.Gui.ContextMenu menu = new Eplan.EplApi.Gui.ContextMenu();

    Eplan.EplApi.Gui.ContextMenuLocation contextMenuLocation =
        new Eplan.EplApi.Gui.ContextMenuLocation(
            "GedEditGuiText",
            "1002"
            );

    menu.AddMenuItem(
        contextMenuLocation,
        "Menüpunkt in Kontextmenü",
        "MenuAction",
        true,
        false
        );

    return;
  }
}


07 Kontextmenü ID
using System.Windows.Forms;
using Eplan.EplApi.Scripting;
using Eplan.EplApi.Base;

public class _06_Menues_07_Kontextmenue_ID
{
  [DeclareRegister]
  public void Register()
  {
    Settings settings = new Settings();

    settings.SetBoolSetting(
        "USER.EnfMVC.ContextMenuSetting.ShowIdentifier",
        true,
        0
        );

    MessageBox.Show("Kontextmenü-ID: sichtbar");

    return;
  }

  [DeclareUnregister]
  public void UnRegister()
  {
    Settings settings = new Settings();

    settings.SetBoolSetting(
        "USER.EnfMVC.ContextMenuSetting.ShowIdentifier",
        false,
        0
        );

    MessageBox.Show("Kontextmenü-ID: unsichtbar");

    return;
  }
}