Inventor Customization

Inventor Customization

Reply
Contributor
LiamSmith2
Posts: 12
Registered: ‎07-15-2011
Message 1 of 2 (346 Views)

How to intercept a click event on a custom ribbon tab?

346 Views, 1 Replies
01-10-2013 12:13 PM

I have a have a custom ribbon tab on the Assembly and ZeroDoc ribbons, those have pannels and buttons.

The custom buttons have OnExecute event that can have custom actions addded.

 

But how can we intercept the event when user is clicking on the custom tab to show custom pannels?

Is there a OnExecute or a similar event for the RiboonTab?

ADN Support Specialist
philippe.leefsma
Posts: 616
Registered: ‎06-02-2009
Message 2 of 2 (329 Views)

Re: How to intercept a click event on a custom ribbon tab?

01-14-2013 12:56 AM in reply to: LiamSmith2

Hi There,

 

There is no specific event directly exposed in the Inventor API when a specific tab is activated, however you can use the underlying API to get access to that notification.

 

You would need to reference the AdWindows.dll in order to use that code.

 

Here is a C# sample that will display a notification when the "Tools" tab of the ZerocDoc Ribbon gets activated:

 

public override void Activate(
    ApplicationAddInSite addInSiteObject,
    bool firstTime)
{
    base.Activate(addInSiteObject, firstTime);

    Autodesk.Windows.ComponentManager.ItemInitialized += 
        new EventHandler<RibbonItemEventArgs>(
            ComponentManager_ItemInitialized);
}

void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
{
    //now one Ribbon item is initialized, but the Ribbon control
    //may not be available yet, so check before
    if (Autodesk.Windows.ComponentManager.Ribbon != null)
    {
        foreach (Autodesk.Windows.RibbonTab Tab in Autodesk.Windows.ComponentManager.Ribbon.Tabs)
        {
            if (Tab.Id == "id_TabTools")
            {
                Tab.Activated += new EventHandler(Tab_Activated);
            }
        }

        //and remove the event handler
        Autodesk.Windows.ComponentManager.ItemInitialized -=
            new EventHandler<RibbonItemEventArgs>(ComponentManager_ItemInitialized);
    }
}

void Tab_Activated(object sender, EventArgs e)
{
    System.Windows.Forms.MessageBox.Show(
        "Tab " + ComponentManager.Ribbon.ActiveTab.Id + " Activated!");
}

 Regards,

Philippe.



Philippe Leefsma
Developer Technical Services
Autodesk Developer Network

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.