我使用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主窗口将处于活动状态。我的对话框有一个按钮,我希望用户必须单击这个按钮才能关闭对话框;所以我想禁用模式对话框中的“关闭”按钮。
那么我该怎么做呢?
发布于 2014-01-07 16:12:27
在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附带的Ruby1.8只包括核心,而不包括标准库。
如果你也需要OSX,那么我不知道。我还没有找到一种连接到OSX窗口框架的方法。(我很乐意找到一种方法。)
备用方法可能是不隐藏它,并使用WebDialog.set_on_close
在窗口关闭时随时捕获它。
https://stackoverflow.com/questions/20955426
复制相似问题