dialogs/MessageBoxOnce.py
branchwxPython4
changeset 3573 1ee56fb544fc
child 3750 f62625418bff
equal deleted inserted replaced
3572:b46af5b80c7d 3573:1ee56fb544fc
       
     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)