Ce module montre comment ajouter une entrée dans la barre de menus de Mercator.
Cet exemple montre :
- l'ajout de plusieurs entrées dans un menu personnalisé
- l'ajout d'une séparation (BeginGroup = true)
- la détermination d'un raccourci-clavier (ici Alt+Maj+C)
- l'association d'une image à un élément de menu (prévoir une image 16x16 pixels)
Cette programmation est construite autour d'un customizer Main qui implémente l'interface MercatorUi.ICustomizers.IExec.
💡 Ce code est pris en compte au démarrage de Mercator. Il faut donc redémarrer Mercator pour voir ce nouveau menu. Il en est de même après chaque modification du code.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec
{
public void Main(MercatorUi.ICustomizers.ExecAction action)
{
if (action == MercatorUi.ICustomizers.ExecAction.MenuCreated)
{
MercatorUi._BaseClasses.MenuElement meTest = new MercatorUi._BaseClasses.MenuElement("&Test");
Globals.StarterMainForm.Mainmenu.Items.Add(meTest);
System.Drawing.Image image = System.Drawing.Image.FromFile(@"M:\Mercator\ac0001-16.png"); // image 16x16 px
MercatorUi._BaseClasses.MenuElement meTest1 = new MercatorUi._BaseClasses.MenuElement("Test 1", image, null, meTest1_Click);
meTest1.Enabled = Convert.ToInt32(MercatorUi.Globals.CurrentUser["niveau"]) > 50;
meTest1.Shortcuts.Add(DevComponents.DotNetBar.eShortcut.ShiftAltC);
MercatorUi.Globals.Main.PlaceTouchesMajuro(DevComponents.DotNetBar.eShortcut.ShiftAltC, meTest1);
meTest.SubItems.Add(meTest1);
MercatorUi._BaseClasses.MenuElement meTest2 = new MercatorUi._BaseClasses.MenuElement("Test 2", "", null, meTest2_Click);
meTest2.BeginGroup = true;
meTest.SubItems.Add(meTest2);
}
}
void meTest1_Click(object sender, EventArgs e)
{
MercatorUi.Dialogs.Stop("Test 1 !");
}
void meTest2_Click(object sender, EventArgs e)
{
MercatorUi.Dialogs.Stop("Test 2 !");
}
}
}