禁用Sketchup Ruby API中Dialog右上角的关闭按钮

时间:2014-01-06 17:15:20

标签: ruby sketchup

我使用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主窗口将处于活动状态。我的对话框有一个按钮,我希望用户必须单击此按钮才能关闭对话框;所以我想在模态对话框中禁用“关闭”按钮。

那我该怎么做呢?

1 个答案:

答案 0 :(得分: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 Berger的Win32::API模块版本,因此我可以将它放在我自己的命名空间中,避免与其他插件发生任何潜在的冲突,因为SketchUp附带的Ruby 1.8只包含Core而不是标准图书馆。

如果你也需要OSX,那我就不知道了。我没有找到一种方法来挂钩OSX窗口框架。 (很想找到办法。)

后备可能是不隐藏它并使用WebDialog.set_on_close来捕捉窗口关闭的任何时间。