.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Enable/Disable PopMenuItem

5 REPLIES 5
Reply
Message 1 of 6
dynamicscope
928 Views, 5 Replies

Enable/Disable PopMenuItem

ObjectARX Version: 2010

Language: C#

 

Hi, I am using PopMenuItem (MenuBar item) by loading custom CUIX.

But I can only load it to the menubar.

I would like to enable or disable the menu item according to the system status.

For example, if no drawing document is open, "Save" menuitem in the "File" menu becomes disable (non-clickable).

And as I open or create a document, "Save" menuitem becomes enable (clickable).

I want to use this for my custom menubar menu.

How could I do this?

 

If you could give me a sample code snippet, it would be appreciated.

 

Thank you in advance,

 

Jake

5 REPLIES 5
Message 2 of 6

PopupMenuItem has property Enable, which can help you.

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 3 of 6

It looks like, in ARX 2010, PopMenuItem does not have "Enable" property.

 

capture.PNG

Message 4 of 6

I did not write about the class Autodesk.AutoCAD.Customization.PopMenuItem, but the class Autodesk.AutoCAD.Interop.PopMenuItem wich can be accessible with Autodesk.AutoCAD.Interop.dll:

26-12-2012 8-17-29.png

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 5 of 6

I see.. I see..

 

Did not know there was  Autodesk.AutoCAD.Interop.PopMenuItem as well.

I will check that out.

 

Thank you.

Message 6 of 6

Disable/enable menu item Save:

using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Interop;
using AcRx = Autodesk.AutoCAD.Runtime;
using AcAp = Autodesk.AutoCAD.ApplicationServices;
using AcDb = Autodesk.AutoCAD.DatabaseServices;
using AcGe = Autodesk.AutoCAD.Geometry;
using AcEd = Autodesk.AutoCAD.EditorInput;
using AcX = Autodesk.AutoCAD.Interop;

[assembly: CommandClass(typeof(Rivilis.MenuTest))]

namespace Rivilis
{

  public class MenuTest
  {
    [CommandMethod("ToggleSave")]
    public void ToggleSave()
    {
      AcX.AcadApplication app = AcAp.Application.AcadApplication as AcX.AcadApplication;
      if (app != null) {
        AcX.AcadMenuGroups groups = app.MenuGroups;
        foreach (AcX.AcadMenuGroup group in groups) {
          // We want work only with menugroup ACAD
          if (group.Name.ToUpper().CompareTo("ACAD") == 0)  { 
            AcX.AcadPopupMenus menus = group.Menus;
            if (menus.Count > 0) {
              foreach (AcX.AcadPopupMenu menu in menus) {
                foreach (AcX.AcadPopupMenuItem menuitem in menu) {
                  string label = menuitem.Label;
                  string caption = menuitem.Caption;
                  string tagstring = menuitem.TagString;
                  if (tagstring.ToUpper().CompareTo("ID_SAVE") == 0) {
                    // Toggle status of PopupMenuItem
                    menuitem.Enable = !menuitem.Enable; 
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

 

 

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost