Le code décrit ici permet d'ajouter un (ou plusieurs) bouton dans le haut de l'éditeur HTML (en version Core ou, pour la version classique, si l'option "Editeur HTML v2" est à OUI (id = USE_HTML2).
Ce développement utilise le méthode AddToolStripItems du MercatorUi.MovableControls.MovableHtmlBox2. Le paramètre attendu est un énuméré de ToolStripItems. Cela permet, par exemple, d'utiliser :
- ToolStripButton : un simple bouton
- ToolStripDropDownButton : un bouton avec une liste déroulante d'autres boutons (à placer dans DropDownItems)
- ToolStripSplitButton : un bouton avec en plus une possibilité de déroulant
- ToolStripSeparator : un séparateur (vertical)
- ToolStripMenuItem : un élément de menu
Le code ci-dessous ajoute un bouton sans texte mais avec l'image correspondant à la ressource magic16. Il ajoute simplement "hello" dans le bas du contenu HTML.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
using MercatorDatabase;
// <CompileWithRoslyn />
namespace Action
{
public class Customizer : MercatorUi.ICustomizers.IActionEngineCreated, MercatorUi.ICustomizers.IActionEngineClosed
{
public void ActionEngineCreated(MercatorUi.Engine.Crm.ActionEngine actionEngine)
{
actionEngine.ActionFormLoaded += actionEngine_ActionFormLoaded;
}
public void ActionEngineClosed(MercatorUi.Engine.Crm.ActionEngine actionEngine)
{
actionEngine.ActionFormLoaded -= actionEngine_ActionFormLoaded;
}
void actionEngine_ActionFormLoaded(object sender, EventArgs arg)
{
MercatorUi.Engine.Crm.ActionEngine actionEngine = (MercatorUi.Engine.Crm.ActionEngine)sender;
foreach (MercatorUi.MovableControls.MovableHtmlBox2 htmlBox in actionEngine.ActionForm.MovableControls.Values.OfType<MercatorUi.MovableControls.MovableHtmlBox2>())
{
ToolStripButton toolStripButtonCustom = new ToolStripButton("", GraphicKit.CurrentGraphicKit.Images.magic16, (s, e) =>
{
// ici le code du bouton
htmlBox.HtmlEditor.HtmlText += "<p>hello</p>";
}) { AutoSize = true, Padding = new Padding(3) };
ToolStripItem[] items = new ToolStripItem[2]
{
new ToolStripSeparator(),
toolStripButtonCustom
};
htmlBox.AddToolStripItems(items);
}
}
}
}