From Ribbon Commander Documentation
Static factory method for rxCustomUI objects.
|contextId||string||null||The context's unique string identifier|
|description||string||'Ribbon Commander'||The context's description|
|dispatchScope||rxDispatchScope||DispatchScope_local||(VBA-specific) The context's dispatch mode|
|customUIMode||rxCustomUIMode||CustomUIMode_dynamic||The context's mode|
- A new context is created if it doesn't already exist. If it does exist, the newly created rxCustomUI object joins the existing context.
- Parameter description only takes effect when a new context is created.
- Parameter customUIMode should be set to CustomUIMode_dynamic (the default value) for smoother UI rendering.
- (VBA-specific) Whenever an rxCustomUI with global dispatch is created it is added the 'Global Contexts' collection and doesn't get destroyed until explicitly removed from that collection (i.e. it doesn't get destroyed when Stop is pressed in the VBA editor or when unhandled exceptions are encountered).
- (VBA-specific) Whenever an rxCustomUI with local dispatch is created, the lifetime of the context is tied to the lifetime of the rxCustomUI (or rxCustomUI's) in the context. i.e. When the last rxCustomUI of the context is destroyed, the context is also destroyed.
' Create an rxCustomUI with global dispatch
' A new context is created at this point
Dim myCustomUI As rxCustomUI
Set myCustomUI = rxCustomUI.create("my_sample_context", "My Global Context", DispatchScope_global)
' Create a second rxCustomUI in the same context but with local dispatch
' The specified context already exists, so the created rxCustomUI joins the existing context
Dim myCustomUI2 as rxCustomUI
Set myCustomUI2 = rxCustomUI.create("my_sample_context", "My Global Context", DispatchScope_local)
' NOTE: Both objects now have access to the same state
' NOTE2: Notice that the dispatch scope is a property of rxCustomUI; not its context. i.e. rxCustomUIs
' with different dispatch scopes belong to the same context above.
// Create a new rxCustomUI in context 'cs_ribbon_context'
// The context doesn't exist at this point so it will get created
rxCustomUI myCustomUI = rxCustomUI.create("cs_ribbon_context", "C# Ribbon");
// Create another rxCustomUI in context 'cs_ribbon_context'
// The context already exitsts at this point, so the new rxCustomUI will
// just join that context
rxCustomUI myCustomUI2 = rxCustomUI.create("cs_ribbon_context", "C# Ribbon");
' Create a new rxCustomUI in context 'vb_ribbon_context'
' The context doesn't exist at this point so it will get created
Dim myCustomUI As rxCustomUI = rxCustomUI.create("vb_ribbon_context", "VB.NET context")
' Create another context in context 'vb_ribbon_context'
' The context already exists at this point, so the new rxCustomUI will
' just join that context
Dim myCustomUI2 As rxCustomUI = rxCustomUI.create("vb_ribbon_context", "VB.NET context")