----------------------------------------------------------------------
Schema definition for Ribbon Extensibility
----------------------------------------------------------------------
----------------------------------------------------------------------
Attribute types
----------------------------------------------------------------------
Specifies the "Qualified ID" for a built-in or custom control.
Custom controls can be given an idQ defined with a prefix, e.g. "myaddin:Save"
where "myaddin" must be an XML namespace defined in context of the element.
A qualified id allows multiple add-ins to refer to the same controls.
A custom control must have one of id, idQ, or idMso.
Specifies the custom ID of a control.
Specifies a unique ID.
Specifies a delegate type which is used by a control to call back to a macro.
Callbacks are used to provide status, update properties or perform actions.
Specifies a numeric argument which determines maximum string length, such as in editBox
String length is limited to 1024 characters.
Specifies a numeric argument which determines maximum number of rows or columns in galleries
Specifies a numeric argument which determines maximum width or height of a gallery item
Specifies a string argument.
String length is limited to 1024 characters.
Specifies a string argument.
String length is limited to 4096 characters.
Specifies a string argument which is a path to a file or a resource.
String length is limited to 1024 characters.
Specifies the size of the button; "large" or "normal."
Specifies the size of items in a menu; "normal" or "large"
Style of a box control. "horizontal" or "vertical"
Specifies a keytip. 1-3 characters, no whitespace
----------------------------------------------------------------------
Attributes
----------------------------------------------------------------------
Specifies attributes that specify custom control ID.
Specifies ID of a custom UI element. IDs must be unique across customUI XML file.
A qualified control ID.
To use a qualified name, you must first create your own namespace. The following code creates a namespace called myNameSpace, aliased by "x."
<customUI xmlns="http://schemas.microsoft.com/office/2005/08/customui" xmlns:x="myNameSpace">
With this declaration, idQ is usable on controls:
<group idQ="x:myButton" ... />
By creating a namespace x, two different add-ins can add to the same group, by referring to that custom group with its qualified name.
Specifies ID of a built-in control.
Specifies ID of a built-in control.
Specifies custom data.
Specifies custom data as string.
Specifies the title of a menu.
Title to show as a header when the menu is opened.
Callback for dynamically getting the title
Specifies attributes that specify control ID.
One of id, idMso, or idQ must be specified to identify a control.
Specifies the control's image or icon.
Image attributes are mutually exclusive - only one of
"image", "imageMso", or "getImage" can be specified
Specifies a custom image or icon.
Specifies an image or icon if a built-in control.
Specifies a callback which returns a custom image.
Specifies attributes that can be applied to all commands and controls.
Specifies attributes that can determine position of an object within its container
(such as position of a control within a group or position of a tab relative to other tabs).
ID of built-in control to be inserted after.
Mutually exclusive with InsertBeforeMso, InsertAfterQ, InsertBeforeQ
ID of built-in control to be inserted before.
Mutually exclusive with InsertAfterMso, InsertAfterQ, InsertBeforeQ.
ID of control to be inserted after.
Mutually exclusive with InsertAfterMso, InsertBeforeMso, InsertBeforeQ
ID of control to be inserted before.
Mutually exclusive with InsertAfterMso, InsertBeforeMso, InsertAfterQ
Specifies attributes that can be applied to determine
if a control is enabled.
Specifies if a control is enabled.
Specifies a callback which returns true if control is enabled.
Specifies attributes that can be applied to determine visibility.
Specifies if a control is visible.
Specifies a callback which returns true if control is visible.
Specifies attributes that can be applied to determine the label.
Specifies the label.
Specifies a callback which returns custom label.
Specifies attributes that can be applied to determine the Keytip.
Specifies the keytip.
Specifies a callback which returns custom keytip.
Specifies attributes that can be applied to determine the screentip
to show when mouse is over the control.
Screentip to show when mouse is over the control
Specifies a callback which returns the screentip
Large screentip to show when mouse is over the control
Specifies a callback which returns the Supertip
Specifies attributes that can be applied to determine the
extended description of the control, appears in menus with itemSize set to large.
Extended description of the control, appears in menus with itemSize set to large.
Specifies a callback which returns control description
Specifies attributes that can be applied to all user interface items such as tabs and controls.
Specifies common attributes that can be applied to controls and groups.
Specifies attributes applied to controls.
Specifies whether or not to show the label on a control
Specifies a callback which returns whether to show the label
Specifies whether or not to show the image on a control
Specifies a callback which returns whether to show the image
Specifies an action callback
Specifies a callback which responds on user action
Specifies a size attribute.
Specifies size of a button control.
Specifies a callback which returns a control's size
Specifies common attributes for controls with dropdowns (such as ComboBox or Gallery).
Specifies if the image is shown or hidden on dropdown items
Specifies a callback which returns the number of items in dropdown
Specifies a callback which returns the label for an item
Specifies a callback which returns screentip for an item
Specifies a callback which returns Supertip for an item
Specifies a callback which returns the image for an item
Specifies a callback which returns an ID for a dynamically generated item
Specifies a representative string which should fit in the control.
E.g. if the control is meant for a credit card number a string of 16 digits
ensures appropriate control size.
Specifies attributes that can be applied to dynamic controls that support GetContent
Specifies a callback which returns the dynamic content for this control
Specifies attributes that can be applied to controls that support dynamic content.
Specifies whether to call callbacks to get dynamic content every time the control is dropped
----------------------------------------------------------------------
Global settings
----------------------------------------------------------------------
Specifies attribute overrides for all controls with specified ID.
Setting a property with Command element is equivalent to setting
same properties on all controls with same id in the ribbon, popup menus, status bar etc.
For example
<command idMso="Print" enabled="false">
disables all instances of Print button in the application UI.
----------------------------------------------------------------------
Controls
----------------------------------------------------------------------
Base control type.
Doesn't define ID attributes.
Abstract type, not to be used directly.
Specifies a type of control that can be used to
enable, disable, or clone an existing control.
Specifies a clone of built-in control.
Control type is determined by source control.
Only the most common attributes can be applied here; to set
control-specific properties the actual control type must be specified.
Custom controls can't be cloned by id.
Specifies a clone of built-in control that can be sized
Custom controls can't be cloned by id.
The onAction property does not apply to 'control'.
Shows text and/or icon but can't have any associated actions.
"image" property is not applicable to labelControl
"imageMso" property is not applicable to labelControl
"getImage" callback is not applicable to labelControl
"keytip" property is not applicable to labelControl
"getKeytip" callback is not applicable to labelControl
"showImage" property is not applicable to labelControl
"getShowImage" callback is not applicable to labelControl
Specifies a fixed-size button.
Size of a button of this type is determined by its container such as a menu.
Specifies a push-type button.
Specifies a button which is always visible.
"visible" property is not applicable to these types of buttons
because they are always visible
"getVisible" property is not applicable to these types of buttons
because they are always visible
Specifies a fixed-size button type with an on/off state such as a Bold button.
Specifies a callback which returns true if the button is pressed
Specifies a button type with an on/off state that can be sized.
Specifies a toggleButton which is always visible.
"visible" property is not applicable to these types of buttons
because they are always visible
"getVisible" property is not applicable to these types of buttons
because they are always visible
Specifies a check box.
"image" property is not applicable to checkBox
"imageMso" property is not applicable to checkBox
"getImage" callback is not applicable to checkBox
"showImage" property is not applicable to checkBox
"getShowImage" callback is not applicable to checkBox
"showLabel" property is not applicable to checkBox
"getShowLabel" callback is not applicable to checkBox
Specifies an edit box control type.
OnChange callback reports new text.
Specifies maximum number of characters the user may input.
Specifies a callback which returns text to be inserted in the edit box before begins editing
Specifies a callback which responds on change of selection
Specifies a representative string which should fit in the control.
E.g. if the control is meant for a credit card number a string of 16 digits
ensures appropriate control size.
Represents a selection in a comboBox or dropDown control type.
Specifies the ID of a gallery item. Gallery items cannot use idMso or idQ.
Specifies text label
Specifies the image
Specifies a built-in image
Specifies the screentip
Specifies the SuperTip
Specifies a comboBox control type.
Contains options (multiple-choice item)
OnChange behavior is same as in EditBox (the text).
Callback can't tell if the value is typed in or selected.
One of the items to choose from.
When selected, the label property of the item becomes text content of
the edit box.
Specifies a drop-down control type with a fixed-size.
Contains options followed by buttons. Order is important - buttons last.
OnAction reports the selected option.
One of the items to choose from.
Button which invokes a different command.
Pushing a button doesn't have any effect on selection.
Specifies a callback which returns the ID of currently selected item
Specifies a callback which returns the index of currently selected item
Specifies if the label is shown or hidden on dropdown items
Specifies a drop-down grid control that can be sized.
Specifies number of columns in dropdown gallery
Specifies number of rows in dropdown gallery
Specifies item width in pixels
Specifies item height in pixels
Specifies a callback which returns the item width
Specifies a callback which returns the item height
Specifies if the label is shown or hidden on gallery items
Gallery - choose one option from a grid of options.
Defines a group of controls allowed in all menus
Control element can enable, disable or clone existing controls.
Creating a new (custom) control with Control element is not possible
because the control type is not specified.
Button control.
CheckBox control.
DropDownGrid-type gallery control.
toggleButton control.
Control group separator.
Defines menu or splitButton controls
SplitButton control.
Menu.
Dynamic menu.
Defines menu or split button controls with title, for use in Office menu
SplitButton control.
Menu.
DynamicMenu.
Specifies the Office Menu.
Specifies a menu with a fixed-size button.
Contains one or more controls or other Menus.
Specifies size of menu items
Specifies a dynamic menu with a fixed-size button.
Specifies a menu with a fixed-size button.
Contains one or more controls or other Menus.
Implements "Title" property.
Specifies size of menu items
Specifies a menu with a button that can be sized.
Contains one or more controls or other Menus.
Specifies size of menu items. Large menu items show their description property.
Specifies a dynamic menu with a button that can be sized.
Contains one or more controls or other Menus.
Specifies a split button (button type or menu) with a fixed-size.
Split button contains one button (or toggle button) and one menu.
Abstract type.
Specifies the properties which are restricted from splitButtons
because they are inherited from the button inside of the splitButton.
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
This property is inherited from the button inside of the splitButton
Specifies a split button (button type or menu) with a fixed-size.
Split button contains one button (or toggle button) and one menu
Button control.
Button with on/off state, such as Bold.
Menu.
Specifies a split button (button type or menu) with a fixed-size.
Split button contains one button (or toggle button) and one menu
Button control.
Button with on/off state, such as Bold.
Menu.
Specifies a split button (button type or menu) that can be sized.
Defines a group of control types.
Control element can enable, disable or clone existing controls.
Creating a new (custom) control with Control element is not possible
because the control type is not specified.
LabelControl control.
Shows text and/or icon but can't have any associated actions.
Button control.
Button with on/off state, such as Bold.
CheckBox control.
EditBox control.
ComboBox control.
DropDown control.
Gallery control.
Menu.
Dynamic menu.
SplitButton control.
Box control.
ButtonGroup control.
----------------------------------------------------------------------
Containers
----------------------------------------------------------------------
Specifies a dialog launcher with options for the associated group.
Dialog launcher - a widget that brings up a dialog with advanced options for this group.
Specifies a Box control - a horizontal grouping container
Specifies how controls are displayed within the box.
Specifies a control group separator - a vertical bar
Specifies a menu separator - a horizontal bar that separates menu items
Specifies a ButtonGroup control - a horizontal container with an integrated look.
Control element can enable, disable or clone existing controls.
Creating a new (custom) control with Control element is not possible
because the control type is not specified.
Button control.
Button with on/off state, such as Bold.
Gallery control.
Menu.
Dynamic menu.
SplitButton control.
Specifies a group that contains other control types.
Control group separator.
Dialog launcher - a widget that brings up a dialog with advanced options for this group.
Specifies a tab that contains groups with other controls.
Group. Contains controls.
Specifies Quick Access Toolbar items (shared or document-specific).
Control element can enable, disable or clone existing controls.
Creating a new (custom) control with Control element is not possible
because the control type is not specified.
Button control.
Control group separator.
Specifies Quick Access Toolbar.
Contains two control collections:
Shared (applied to all windows and documents) and
Document (attached to a document)
Custom set of controls shared between all windows or instances of the application.
Custom set of controls attached to the current document.
Specifies a collection of tabs.
Tab.
Specifies a collection of contextual tab sets.
A contextual Tab
Specifies ID of a built-in control.
Specifies a collection of contextual tab sets
Tab Set
----------------------------------------------------------------------
Root elements
----------------------------------------------------------------------
Specifies a collection of Command elements.
Specifies attribute overrides for all controls with specified idMso.
Specifies the Ribbon which contains the tabs, menu, Quick Access Toolbar control types.
Office menu.
Quick Access Toolbar.
Contains two control collections:
Shared (applied to all windows and documents) and
Document (attached to a document)
A collection of tabs
A collection of contextual tab sets
Specicies the mode where most of the standard UI is turned off and
replaced with custom UI specified here.
Specifies the root element of the customization XML returned by dynamicMenus
Specifies size of menu items
Specifies the root element of the customization XML used in dynamicMenu's GetContent callback
Specifies the root element of the customization file which is used to create or modify the Ribbon.
Command overrides.
Ribbon.
Specifies a callback which is invoked when custom UI is loaded.
IRibbonUI object is passed as a parameter.
Specifies a callback which is invoked to load custom images.
Specifies the root element of the customization file which is used to create or modify the Ribbon.