0

IN this manifest/enabled we can disable a Control type Button.

for example:

      <Control xsi:type="Button" id="BtnOpenTaskpane">
        <Label resid="BtnOpenTaskpane.Label" />
         <Supertip>
         <!-- ToolTip title. resid must point to a ShortString resource. -->
          <Title resid="BtnOpenTaskpane.Label" />
           <!-- ToolTip description. resid must point to a LongString resource. -->
           <Description resid="BtnOpenTaskpane.Tooltip" />
         </Supertip>
         <Icon>
            <bt:Image size="16" resid="Icon.16x16"/>
            <bt:Image size="32" resid="Icon.32x32"/>
            <bt:Image size="80" resid="Icon.80x80"/>
         </Icon>
        <!-- This is what happens when the command is triggered Supported actions are ExecuteFunction-->
        <Action xsi:type="ExecuteFunction">
           <FunctionName>btnopentaskpane</FunctionName>
         </Action>
        <Enabled>false</Enabled> <!--Disable this Control-->
    </Control>

Now I have Control type Menu

for example:

         <Control xsi:type="Menu" id="Contoso.TaskpaneButton2">
                <Label resid="Contoso.TaskpaneButton2.Label" />
            <Supertip>
                <!-- ToolTip title. resid must point to a ShortString resource. -->
               <Title resid="Contoso.TaskpaneButton2.Label" />
                <!--ToolTip description. resid must point to a LongString resource.-->
                    <Description resid="Contoso.TaskpaneButton2.Tooltip" />
                </Supertip>
                <Icon>
                    <bt:Image size="16" resid="heading1-16" />
                    <bt:Image size="32" resid="heading1-32" />
                    <bt:Image size="80" resid="heading1-80" />
                </Icon>
                <Items>
                   <Item id="itemPartTitle">
                     <Label resid="Group2.Item1.Label"/>
                    <Supertip>
                        <Title resid="Group2.Item1.Label" />
                        <Description resid="Group2.Item1.Tooltip" />
                    </Supertip>
                    <Icon>
                      <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                      <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                      <bt:Image size="80" resid="Contoso.tpicon_80x80" />
                    </Icon>
                        <Action xsi:type="ExecuteFunction">
                            <FunctionName>PartTitle</FunctionName>
                        </Action>
                    </Item>
                </Items>
      
               <!--Here We can't Add <Enabled>false</Enabled>-->
            </Control>

I think we can't disable a Control type Menu because it have not Action.

In this case I think we can Disable a Menu Item.

            <Items>
               <Item id="itemPartTitle">
                 <Label resid="Group2.Item1.Label"/>
                <Supertip>
                    <Title resid="Group2.Item1.Label" />
                    <Description resid="Group2.Item1.Tooltip" />
                </Supertip>
                <Icon>
                  <bt:Image size="16" resid="Contoso.tpicon_16x16" />
                  <bt:Image size="32" resid="Contoso.tpicon_32x32" />
                  <bt:Image size="80" resid="Contoso.tpicon_80x80" />
                </Icon>
                    <Action xsi:type="ExecuteFunction">
                        <FunctionName>PartTitle</FunctionName>
                    </Action>
                   <Enabled>false</Enabled>
                </Item>

Here Again a question can we Enable Item

 function enableButton() {
   Office.ribbon.requestUpdate({
     tabs: [
            {
             id: "OfficeAppTab1", 
             groups: [
                 {
                   id: "CustomGroup111",
                   controls: [
                     {
                         id: "MyButton", 
                         enabled: true
                     }
                   ]
                 }
             ]
         }
      ]
  });
}  

In this we have controls to Enable is that work fro Item

2
  • What is your host application? Commented Feb 12, 2024 at 19:57
  • I have Word Add-in Commented Feb 13, 2024 at 7:12

1 Answer 1

1

Enabling and disabling custom add-in commands (buttons and menu items) dynamically are currently supported, see Enable and Disable Add-in Commands for more information.

To test for support, your code should call Office.context.requirements.isSetSupported('RibbonApi', '1.1'). If, and only if, that call returns true, your code can call the enable/disable APIs. If the call of isSetSupported returns false, then all custom add-in commands are enabled all of the time. You must design your production add-in, and any in-app instructions, to take account of how it will work when the RibbonApi 1.1 requirement set isn't supported. For more information and examples of using isSetSupported, see Specify Office applications and API requirements, especially Runtime checks for method and requirement set support.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.