|
1 #!/usr/bin/env python |
|
2 # -*- coding: utf-8 -*- |
|
3 |
|
4 # This file is part of Beremiz |
|
5 # Copyright (C) 2022: Edouard TISSERANT |
|
6 # |
|
7 # See COPYING file for copyrights details. |
|
8 |
|
9 |
|
10 from __future__ import absolute_import |
|
11 import wx |
|
12 |
|
13 |
|
14 # class RichMessageDialog is still not available in wxPython 3.0.2 |
|
15 class MessageBoxOnce(wx.Dialog): |
|
16 """ |
|
17 wx.MessageBox that user can ask not to show again |
|
18 """ |
|
19 def __init__(self, title, message, config_key): |
|
20 self.Config = wx.ConfigBase.Get() |
|
21 self.config_key = config_key |
|
22 dont_show = self.Config.Read(self.config_key) == "True" |
|
23 |
|
24 if dont_show: |
|
25 return |
|
26 |
|
27 wx.Dialog.__init__(self, None, title=title) |
|
28 |
|
29 main_sizer = wx.BoxSizer(wx.VERTICAL) |
|
30 |
|
31 message = wx.StaticText(self, label=message) |
|
32 main_sizer.Add(message, border=20, |
|
33 flag=wx.ALIGN_CENTER_HORIZONTAL | wx.TOP | wx.LEFT | wx.RIGHT) |
|
34 |
|
35 self.check = wx.CheckBox(self, label=_("don't show this message again")) |
|
36 main_sizer.Add(self.check, border=20, |
|
37 flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL) |
|
38 |
|
39 buttons_sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
40 |
|
41 Button = wx.Button(self, label="OK") |
|
42 |
|
43 self.Bind(wx.EVT_BUTTON, self.OnOKButton, Button) |
|
44 buttons_sizer.Add(Button) |
|
45 |
|
46 main_sizer.Add(buttons_sizer, border=20, |
|
47 flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_RIGHT) |
|
48 |
|
49 self.SetSizer(main_sizer) |
|
50 self.Fit() |
|
51 |
|
52 self.ShowModal() |
|
53 |
|
54 def OnOKButton(self, event): |
|
55 if self.check.GetValue(): |
|
56 self.Config.Write(self.config_key, "True") |
|
57 self.EndModal(wx.ID_OK) |