【问题标题】:disable close button in top-right of Dialog in Sketchup Ruby API在 Sketchup Ruby API 中禁用对话框右上角的关闭按钮
【发布时间】:2014-01-06 17:15:20
【问题描述】:

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

那我该怎么做呢?

【问题讨论】:

    标签: ruby sketchup


    【解决方案1】:

    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 仅包含核心而不是标准图书馆。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 2020-01-28
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多