#|
Fluent UI
Note: This is an example file showing concepts of the Integration Kit.
The code itself is not supported and will never be supported.
|#
(in-package :examples)
(use-package :oli)
;; ----- Example Tab ----------------------------------------------------------
;; create a new ribbon tab
(oli::sd-fluentui-add-ribbon-tab "EXAMPLETAB"
:application "All"
:title "Example Tab"
)
;; ----- Example Group 1 ------------------------------------------------------
;; create a ribbon group in the ribbon tab
(oli::sd-fluentui-add-ribbon-group "EXAMPLEGROUP1"
:parent "EXAMPLETAB"
:title "Example Group1"
)
;; add ribbon buttons to the ribbon group
;; large button
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:largeImage t
:availCmd '("SolidDesigner" "Part and Assy" "New Part")
)
;; small button
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:availCmd '("SolidDesigner" "Part and Assy" "Copy Part/Assy")
)
;; overwrite label defined in available command
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:label "Share"
:availCmd '("SolidDesigner" "Part and Assy" "Share Part/Assy")
)
;; separator
(oli::sd-fluentui-add-ribbon-separator
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
)
;; ribbon button menu
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:image "All/Miscellaneous/more_cmds"
:label "Menu Button"
:contents
`(
(:label "Assembly"
:availCmd ("SolidDesigner" "Part and Assy" "New Assembly"))
(:label "Container"
:availCmd ("SolidDesigner" "Part and Assy" "New Container"))
))
;; same button like before, defined as split button
;; -> shown icon is taken from last called command
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:splitButton t
:largeImage t
:label "Split Button Large"
:contents
`(
(:label "Assembly"
:availCmd ("SolidDesigner" "Part and Assy" "New Assembly"))
(:label "Container"
:availCmd ("SolidDesigner" "Part and Assy" "New Container"))
))
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:splitButton t
:label "Split Button Small"
:contents
`(
(:availCmd ("SolidDesigner" "Part and Assy" "Sel Unshare"))
(:availCmd ("SolidDesigner" "Part and Assy" "Sel Reshare"))
))
;; contents of menu
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP1")
:image "All/Miscellaneous/more_cmds"
:label "Menu Contents"
:contents
`(
(:label "Title")
(:label "Owner"
:availCmd ("SolidDesigner" "Part and Assy" "Modify Part/Assy Owner"))
(:label "Rename"
:availCmd ("SolidDesigner" "Part and Assy" "Rename Part/Assy"))
(:separator t)
(:availCmd ("SolidDesigner" "Modify 3D" "Scale"))
(:label "Cascading Menu")
(:label "WP"
:image "SolidDesigner/Workplane/wp_new"
:contents
(
(:availCmd ("SolidDesigner" "Workplane" "Copy WP"))
(:label "Sub Title")
(:label "Share"
:availCmd ("SolidDesigner" "Workplane" "Share WP"))
)
)
)
)
;; ----- Example Group 2 ------------------------------------------------------
(oli::sd-fluentui-add-ribbon-group "EXAMPLEGROUP2"
:parent "EXAMPLETAB"
:title "Example Group2"
)
;; create ribbon button with menu
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP2")
:name "EXAMPLEBUTTON"
:label "Modify Menu"
:contents
`(
(:label "Initial Title")
(:label "Initial Command"
:availCmd ("SolidDesigner" "Part and Assy" "Modify Part/Assy Owner"))
)
)
;; add separator in the existing ribbon button menu
(oli::sd-fluentui-add-ribbon-separator
:parent '("EXAMPLETAB" "EXAMPLEGROUP2" "EXAMPLEBUTTON")
:label "Added Separator"
)
;; add a ribbon button in the existing ribbon button menu
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP2" "EXAMPLEBUTTON")
:label "Added Button Rename"
:availCmd '("SolidDesigner" "Part and Assy" "Rename Part/Assy")
)
(oli::sd-fluentui-add-ribbon-separator
:parent '("EXAMPLETAB" "EXAMPLEGROUP2" "EXAMPLEBUTTON")
)
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP2" "EXAMPLEBUTTON")
:label "Added Button Position"
:availCmd '("SolidDesigner" "Part and Assy" "Position Dynamic")
)
;; ----- Example Group 3 ------------------------------------------------------
;; create a ribbon group in the ribbon tab which has a dialog box launcher to
;; show settings ui
(oli::sd-fluentui-add-ribbon-group "EXAMPLEGROUP3"
:parent "EXAMPLETAB"
:title "Example Group3"
:launchButtonAvailCmd '("SolidDesigner" "Settings" "3D Object Settings")
)
;; large icon, no text
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP3")
:largeImage t
:label ""
:availCmd '("SolidDesigner" "Part and Assy" "New Part")
)
;; small icon, no text
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP3")
:label ""
:availCmd '("SolidDesigner" "Part and Assy" "New Assembly")
)
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP3")
:label ""
:availCmd '("SolidDesigner" "Part and Assy" "New Container")
)
(oli::sd-fluentui-add-ribbon-button
:parent '("EXAMPLETAB" "EXAMPLEGROUP3")
:label ""
:availCmd '("SolidDesigner" "Workplane" "New WP")
)
;;