using FastReport.Design;
using FastReport.Utils;
using System;
using System.ComponentModel;
namespace FastReport
{
///
/// The base class for the context menu of the report component.
///
///
/// This class represents a context menu of the report component that is displayed when the object
/// is right-clicked in the designer. This class implements the following actions: Edit, Cut, Copy,
/// Paste, Delete, Bring to Front, Send to Back.
///
[ToolboxItem(false)]
public class ComponentBaseMenu : ContextMenuBase
{
#region Fields
///
/// The "Name" menu item.
///
public ContextMenuItem miName;
///
/// The "Edit" menu item.
///
public ContextMenuItem miEdit;
///
/// The "Cut" menu item.
///
public ContextMenuItem miCut;
///
/// The "Copy" menu item.
///
public ContextMenuItem miCopy;
///
/// The "Paste" menu item.
///
public ContextMenuItem miPaste;
///
/// The "Delete" menu item.
///
public ContextMenuItem miDelete;
///
/// The "BringToFront" menu item.
///
public ContextMenuItem miBringToFront;
///
/// The "SendToBack" menu item.
///
public ContextMenuItem miSendToBack;
#endregion
///
/// Initializes a new instance of the ComponentBaseMenu class with default settings.
///
/// The reference to a report designer.
public ComponentBaseMenu(Designer designer)
: base(designer)
{
miName = CreateMenuItem("");
miEdit = CreateMenuItem(68, Res.Get("ComponentMenu,Component,Edit"), Designer.cmdEdit.Invoke);
miEdit.BeginGroup = true;
miCut = CreateMenuItem(5, Res.Get("Designer,Menu,Edit,Cut"), Designer.cmdCut.Invoke);
miCut.BeginGroup = true;
miCopy = CreateMenuItem(6, Res.Get("Designer,Menu,Edit,Copy"), Designer.cmdCopy.Invoke);
miPaste = CreateMenuItem(7, Res.Get("Designer,Menu,Edit,Paste"), Designer.cmdPaste.Invoke);
miDelete = CreateMenuItem(51, Res.Get("Designer,Menu,Edit,Delete"), Designer.cmdDelete.Invoke);
miBringToFront = CreateMenuItem(14, Res.Get("Designer,Toolbar,Layout,BringToFront"), Designer.cmdBringToFront.Invoke);
miBringToFront.BeginGroup = true;
miSendToBack = CreateMenuItem(15, Res.Get("Designer,Toolbar,Layout,SendToBack"), Designer.cmdSendToBack.Invoke);
// QAT items
miEdit.QatItem = miCut.QatItem = miCopy.QatItem = miPaste.QatItem = miDelete.QatItem = miBringToFront.QatItem = miSendToBack.QatItem = true;
miEdit.Visible = Designer.cmdEdit.Enabled;
miCut.Enabled = Designer.cmdCut.Enabled;
miCopy.Enabled = Designer.cmdCopy.Enabled;
miPaste.Enabled = Designer.cmdPaste.Enabled;
miDelete.Enabled = Designer.cmdDelete.Enabled;
miBringToFront.Enabled = Designer.cmdBringToFront.Enabled;
miSendToBack.Enabled = Designer.cmdSendToBack.Enabled;
SelectedObjectCollection selection = Designer.SelectedObjects;
miName.Text = (selection.Count == 1 ?
selection[0].Name :
String.Format(Res.Get("Designer,ToolWindow,Properties,NObjectsSelected"), selection.Count)) + ":";
miName.SetFontBold();
Items.AddRange(new ContextMenuItem[] {
miName, miEdit,
miCut, miCopy, miPaste, miDelete,
miBringToFront, miSendToBack });
}
}
}