private void menuEdit_Popup(object sender, EventArgs ea)
{
MDIChild mc = this.ActiveMdiChild as MDIChild;
// These menus require an MDIChild in order to work
RdlEditPreview e = mc == null ? null : mc.RdlEditor;
bool bNotPreview = true;
foreach (object a in this.editToolStripMenuItem.DropDownItems)
{
if (a.GetType() == typeof(ToolStripMenuItem))
{
((ToolStripMenuItem)a).Enabled = false;
}
}
if (e == null || e.DesignTab != DesignTabs.Edit)
{
undoToolStripMenuItem.Text = e == null ? Strings.RdlDesigner_menuEdit_Popup_Undo : Strings.RdlDesigner_menuEdit_Popup_Undo + " " + e.UndoDescription;
if (e != null && e.DesignTab == DesignTabs.Preview)
{
bNotPreview = false;
undoToolStripMenuItem.Enabled = true;
cutToolStripMenuItem.Enabled = true;
copyToolStripMenuItem.Enabled = true;
pasteToolStripMenuItem.Enabled = true;
deleteToolStripMenuItem.Enabled = true;
findToolStripMenuItem.Enabled = true;
selectAllToolStripMenuItem.Enabled = true;
}
else
{
undoToolStripMenuItem.Enabled = true;
cutToolStripMenuItem.Enabled = true;
copyToolStripMenuItem.Enabled = true;
pasteToolStripMenuItem.Enabled = true;
deleteToolStripMenuItem.Enabled = true;
selectAllToolStripMenuItem.Enabled = true;
}
if (mc == null || e == null)
{
undoToolStripMenuItem.Enabled = redoToolStripMenuItem.Enabled =
cutToolStripMenuItem.Enabled = copyToolStripMenuItem.Enabled =
pasteToolStripMenuItem.Enabled = deleteToolStripMenuItem.Enabled =
selectAllToolStripMenuItem.Enabled =
findToolStripMenuItem.Enabled = false;
return;
}
}
else
{
undoToolStripMenuItem.Text = Strings.RdlDesigner_menuEdit_Popup_Undo;
undoToolStripMenuItem.Enabled = true;
redoToolStripMenuItem.Enabled = true;
cutToolStripMenuItem.Enabled = true;
copyToolStripMenuItem.Enabled = true;
pasteToolStripMenuItem.Enabled = true;
deleteToolStripMenuItem.Enabled = true;
selectAllToolStripMenuItem.Enabled = true;
findToolStripMenuItem.Enabled = true;
findNextToolStripMenuItem.Enabled = true;
replaceToolStripMenuItem.Enabled = true;
goToToolStripMenuItem.Enabled = true;
formatXMLToolStripMenuItem.Enabled = true;
bool bAnyText = e.Text.Length > 0; // any text to search at all?
findToolStripMenuItem.Enabled = findNextToolStripMenuItem.Enabled =
replaceToolStripMenuItem.Enabled = goToToolStripMenuItem.Enabled = bAnyText;
}
undoToolStripMenuItem.Enabled = e.CanUndo && bNotPreview;
redoToolStripMenuItem.Enabled = e.CanRedo && bNotPreview;
bool bSelection = e.SelectionLength > 0; // any text selected?
cutToolStripMenuItem.Enabled = bSelection && bNotPreview;
copyToolStripMenuItem.Enabled = bSelection;
pasteToolStripMenuItem.Enabled = Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) && bNotPreview;
deleteToolStripMenuItem.Enabled = bSelection && bNotPreview;
selectAllToolStripMenuItem.Enabled = bNotPreview;
}