All pastes #352393 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-02-12 20:07 UTC
rendered paste body
import wx

class ErrorDialog(wx.Dialog):
    def __init__(self, message, size=wx.DefaultSize,
     pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER):
        pre = wx.PreDialog()
        pre.Create(None, -1, 'Error', pos, size, style)

        self.this = pre.this

        sizer = wx.BoxSizer(wx.VERTICAL)

        text = wx.TextCtrl(self, -1, message, wx.DefaultPosition, 
                           [300,150], style=wx.TE_MULTILINE|wx.TE_READONLY)
        sizer.Add(text, 1, wx.GROW|wx.ALIGN_CENTRE|wx.ALL, 5)

        box = wx.BoxSizer(wx.HORIZONTAL)

        btn = wx.Button(self, wx.ID_OK, u' OK ')
        box.Add(btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)

        sizer.Add(box, 0, wx.ALIGN_RIGHT|wx.ALL, 5)

        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        sizer.Fit(self)
        self.Center()

        self.progress = 0
        self.timeout = 1000
        self.timer = wx.Timer(self, 0)
        self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)

        self.timer.Start(250)

    def OnTimer(self, evt):
        self.progress += 250

        if self.progress >= self.timeout:
            return self.OnClose(1)

    def OnClose(self, evt):
        self.EndModal(True)
        self.Destroy()

        if self.progress >= self.timeout:
            self.timer.Stop()
            d = ClosingDialog("Timed Dialog")
            d.ShowModal()


class ClosingDialog(wx.Dialog):
    def __init__(self, message, size=wx.DefaultSize,
     pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER):
        pre = wx.PreDialog()
        pre.Create(None, -1, 'Closing', pos, size, style)

        self.this = pre.this

        sizer = wx.BoxSizer(wx.VERTICAL)

        text = wx.TextCtrl(self, -1, message, wx.DefaultPosition, 
                           [600,300], style=wx.TE_MULTILINE|wx.TE_READONLY)
        sizer.Add(text, 1, wx.GROW|wx.ALIGN_CENTRE|wx.ALL, 5)

        box = wx.BoxSizer(wx.HORIZONTAL)

        btn = wx.Button(self, wx.ID_OK, u' OK ')
        box.Add(btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)

        sizer.Add(box, 0, wx.ALIGN_RIGHT|wx.ALL, 5)

        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        sizer.Fit(self)
        self.Center()



app = wx.PySimpleApp()

d = ErrorDialog("Hello World!")
d.ShowModal()