You can create a web part that will change the menu items available on the toolbar menu of the list.
In your web part code, change the code of the CreateChildControl :
protected override void CreateChildControls()
{
if (!_error)
{
try
{
foreach (Control control in this.Page.Controls)
{
ModifyMenu(control);
}
base.CreateChildControls();
}
catch (Exception ex)
{
HandleException(ex);
}
}
}
And then Add a ModifyMenu function that will add / hide the menus you want :
private void RemoveNewMenu(Control parentControl)
{
if ((parentControl == null) || (parentControl.Controls.Count == 0))
{
return;
}
foreach (Control childControl in parentControl.Controls)
{
if (childControl.ToString().ToUpper() == typeof(Microsoft.SharePoint.WebControls.NewMenu).ToString().ToUpper())
{
NewMenu newMenu = (NewMenu)childControl;
if (newMenu.GetMenuItem("NewFolder") != null)
{
newMenu.AddMenuItem(<Edit item menu that you want to add>);
newMenu.GetMenuItem(<new item menu that you want to Hide>).Visible = false;
}
break;
}
RemoveNewMenu(childControl);
}
}