Отключить кнопку закрытия в правом верхнем углу диалогового окна в Sketchup Ruby API

Я создал модальный WebDialog, используя SketchUp Ruby API, вот мой код.

  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 ответ

В Ruby API SketchUp нет способа сделать это.

Под Windows вы можете использовать Win32API изменить фрейм WebDialog. Примеры вы можете посмотреть в моей собственной библиотеке, где я удаляю кнопку минимизации и максимизации: https://bitbucket.org/thomthom/tt-library-2/src/59abd704e6e93e9d1596a136d64949aabfc69708/TT_Lib2/win32.rb?at=Version%202.9#cl-404

Обратите внимание, что я собрал свою версию Дэниела Бергера Win32::API модуль, чтобы я мог поместить его в свое собственное пространство имен и избежать возможных столкновений с другими плагинами, поскольку Ruby 1.8, поставляемый с SketchUp, включает только ядро, а не стандартную библиотеку.

Если вам нужен OSX, я не знаю. Я не нашел способ подключиться к оконной раме OSX там. (Хотел бы найти способ.)

Резервным может быть не скрывать это и использовать WebDialog.set_on_close ловить в любое время, когда окно закрывается.

Другие вопросы по тегам