SketchUp API:如何向菜单项添加复选框
SketchUp API: How to add a check box to a menu item
我在 Ruby API 文档中没有看到它,但以防万一我遗漏了什么...
我正在为 SketchUp 编写一个插件,我正在尝试向菜单栏添加一些选项。我的一个选项最适合用作复选框,但现在我必须有两个单独的按钮。有没有办法用 Ruby API 创建复选框菜单项?
这是我必须做的:
foo = true
UI.menu("Plugins").add_item("Turn foo_option on") { @foo = true }
UI.menu("Plugins").add_item("Turn foo_option off") { @foo = false }
...然后我只使用 foo 来更改选项。有更简洁的方法吗?
我以前从未见过从扩展创建的复选框菜单项,但我是初学者,所以这可能就是原因。
另一种方法是这样做:
unless file_loaded?(__FILE__)
plugin_menu = UI.menu("Plugin")
option_menu = plugin_menu.add_submenu("NameOfOption")
option_menu.add_item("OptionA"){ }
option_menu.add_item("OptionB"){ }
file_loaded(__FILE__)
end
file_loaded?(_ FILE _) 确保菜单仅创建一次,而不是每次加载脚本时创建。我希望这是有帮助的。也许有些专家现在有办法创建复选框菜单。
SketchUp 可以在菜单项中添加复选标记。菜单项和命令都可以有一个验证过程。 set_validation_proc
的文档给出了这个例子:
plugins_menu = UI.menu("Plugins")
item = plugins_menu.add_item("Test") { UI.messagebox "My Test Item"}
status = plugins_menu.set_validation_proc(item) {
if Sketchup.is_pro?
MF_ENABLED
else
MF_GRAYED
end
}
尽管对于复选标记,您可以使用常量 MF_CHECKED
和 MF_UNCHECKED
http://www.sketchup.com/intl/en/developer/docs/ourdoc/menu#set_validation_proc
http://www.sketchup.com/intl/en/developer/docs/ourdoc/command#set_validation_proc
我在 Ruby API 文档中没有看到它,但以防万一我遗漏了什么...
我正在为 SketchUp 编写一个插件,我正在尝试向菜单栏添加一些选项。我的一个选项最适合用作复选框,但现在我必须有两个单独的按钮。有没有办法用 Ruby API 创建复选框菜单项?
这是我必须做的:
foo = true
UI.menu("Plugins").add_item("Turn foo_option on") { @foo = true }
UI.menu("Plugins").add_item("Turn foo_option off") { @foo = false }
...然后我只使用 foo 来更改选项。有更简洁的方法吗?
我以前从未见过从扩展创建的复选框菜单项,但我是初学者,所以这可能就是原因。
另一种方法是这样做:
unless file_loaded?(__FILE__)
plugin_menu = UI.menu("Plugin")
option_menu = plugin_menu.add_submenu("NameOfOption")
option_menu.add_item("OptionA"){ }
option_menu.add_item("OptionB"){ }
file_loaded(__FILE__)
end
file_loaded?(_ FILE _) 确保菜单仅创建一次,而不是每次加载脚本时创建。我希望这是有帮助的。也许有些专家现在有办法创建复选框菜单。
SketchUp 可以在菜单项中添加复选标记。菜单项和命令都可以有一个验证过程。 set_validation_proc
的文档给出了这个例子:
plugins_menu = UI.menu("Plugins")
item = plugins_menu.add_item("Test") { UI.messagebox "My Test Item"}
status = plugins_menu.set_validation_proc(item) {
if Sketchup.is_pro?
MF_ENABLED
else
MF_GRAYED
end
}
尽管对于复选标记,您可以使用常量 MF_CHECKED
和 MF_UNCHECKED
http://www.sketchup.com/intl/en/developer/docs/ourdoc/menu#set_validation_proc
http://www.sketchup.com/intl/en/developer/docs/ourdoc/command#set_validation_proc