0

我使用 SketchUp Ruby API 创建了一个模态 WebDialog,这是我的代码。

  my_dialog = UI::WebDialog.new("Lisence",false,"Selection Info",200,200,200,200,true)
  my_dialog.add_action_callback("get_data") do |web_dialog,params|  
end

html_path = Sketchup.find_support_file("liscence.html" ,"Plugins")
my_dialog.set_file(html_path)
my_dialog.show_modal 

如果用户单击关闭按钮,则 Sketchup 主窗口将处于活动状态。我的对话框有一个按钮,我希望用户必须单击此按钮才能关闭对话框;所以我想禁用模式对话框中的“关闭”按钮。

那么我该怎么做呢?

4

1 回答 1

0

SketchUp Ruby API 中没有这样做的方法。

在 Windows 下,您可以使用Win32API来修改 WebDialog 框架。例如,您可以查看我自己的库,其中我删除了最小化和最大化按钮:https ://bitbucket.org/thomthom/tt-library-2/src/59abd704e6e93e9d1596a136d64949aabfc69708/TT_Lib2/win32.rb?at=Version%202.9# cl-404

请注意,我编译了我自己版本的 Daniel BergerWin32::API模块,因此我可以将它放在我自己的命名空间下,并避免与其他插件的任何潜在冲突,因为 SketchUp 附带的 Ruby 1.8 仅包含核心而不包含标准库。

如果你也需要 OSX,那我不知道。我还没有找到一种方法可以挂接到那里的 OSX 窗口框架。(很想找到一种方法。)

后备可能是不隐藏它并用于WebDialog.set_on_close在窗口关闭的任何时候捕获。

于 2014-01-07T16:12:27.083 回答