mirror of https://github.com/chriskiehl/Gooey.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
import rewx.components as c # type: ignore
|
|
import wx # type: ignore
|
|
import wx.html2 # type: ignore
|
|
from rewx import wsx, render # type: ignore
|
|
|
|
|
|
def _html_window(html):
|
|
return wsx(
|
|
[c.Block, {'orient': wx.VERTICAL, 'flag': wx.EXPAND},
|
|
[c.HtmlWindow, {'style': wx.TE_READONLY, 'flag': wx.EXPAND | wx.ALL,
|
|
'proportion': 1, 'value': html}]]
|
|
)
|
|
|
|
|
|
class HtmlDialog(wx.Dialog):
|
|
"""
|
|
A MessageDialog where the central contents are an HTML window
|
|
customizable by the user.
|
|
"""
|
|
def __init__(self, *args, **kwargs):
|
|
caption = kwargs.pop('caption', '')
|
|
html = kwargs.pop('html', '')
|
|
super(HtmlDialog, self).__init__(None, *args, **kwargs)
|
|
|
|
wx.InitAllImageHandlers()
|
|
|
|
self.SetTitle(caption)
|
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
|
sizer.Add(render(_html_window(html), self), 1, wx.EXPAND)
|
|
|
|
# in addition to creating the sizer, this actually attached
|
|
# a few common handlers which makes it feel more dialog-y. Thus
|
|
# it being done here rather than in rewx
|
|
btnSizer = self.CreateStdDialogButtonSizer(wx.OK)
|
|
sizer.Add(btnSizer, 0, wx.ALL | wx.EXPAND, 9)
|
|
self.SetSizer(sizer)
|
|
self.Layout()
|
|
|
|
|
|
|