Hi everyone @antoine @mrhe @taraskydon @clement ,
Made a little progress on this today (I think).
This code is based on previous code from @Mahdiyar in this post:
I modified it to hide the menu bar/title bar and we now have a basic “transparent form” to work with.
Can a Mac OS user test?
import Rhino.UI
import Eto.Drawing as drawing
import Eto.Forms as forms
class EtoTransparentDialog(forms.Dialog[bool]):
def __init__(self):
self.Title = 'Transparency'
self.ClientSize = drawing.Size(400, 200)
self.Padding = drawing.Padding(10)
self.Resizable = False
self.WindowStyle = forms.WindowStyle.Default
self.Opacity = .5
self.m_checkbox = forms.CheckBox(Text='Toggle Title Bar', Checked=True)
self.m_checkbox.CheckedChanged += self.OnCheckBoxChanged
self.m_slider = forms.Slider(MinValue=10, MaxValue=100, Value=50)
self.m_slider.ValueChanged += self.OnSliderChanged
self.DefaultButton = forms.Button(Text='EXIT')
self.DefaultButton.Click += self.OnOKButtonClick
layout = forms.DynamicLayout()
layout.Spacing = drawing.Size(5, 5)
layout.AddRow(self.m_checkbox)
layout.AddRow(self.m_slider)
layout.AddRow(self.DefaultButton)
self.Content = layout
def OnSliderChanged(self, sender, e):
self.Opacity = self.m_slider.Value * 0.01
def OnOKButtonClick(self, sender, e):
self.Close(False)
def OnCheckBoxChanged(self, sender, e):
if self.m_checkbox.Checked:
self.WindowStyle = forms.WindowStyle.Default
else:
self.WindowStyle = forms.WindowStyle.None
dialog = EtoTransparentDialog()
dialog.WindowStyle = forms.WindowStyle.None # Set the WindowStyle to None to hide the title bar
rc = dialog.ShowModal(Rhino.UI.RhinoEtoApp.MainWindow)