X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fwx%2FApplication.py;h=bebaa276366b5008964364cf753a8131a8b5a742;hb=dd0f2aeb4085d1784f151615844bf00726e44f44;hp=35575c3880928b7d729b383fe1c3cc51c6fe1ec0;hpb=f3b5f514fff84ab8bcf3b2927ce926206294ec4f;p=m_librarian.git diff --git a/m_librarian/wx/Application.py b/m_librarian/wx/Application.py index 35575c3..bebaa27 100644 --- a/m_librarian/wx/Application.py +++ b/m_librarian/wx/Application.py @@ -1,10 +1,24 @@ # coding: utf-8 -import wx +import wx, wx.adv +from ..__version__ import __version__ +from .session_config import get_session_config class MainWindow(wx.Frame): + def __init__(self): + session_config = get_session_config() + width = session_config.getint('main_window', 'width', 600) + height = session_config.getint('main_window', 'height', 400) + super(wx.Frame, self).__init__( + parent=None, id=-1, title=u"m_Librarian", + size=wx.Size(width=width, height=height), + ) + self.InitMenu() + self.Show(True) + self.Bind(wx.EVT_SIZE, self.OnSize) + def InitMenu(self): MenuBar = wx.MenuBar() self.SetMenuBar(MenuBar) @@ -14,15 +28,39 @@ class MainWindow(wx.Frame): self.Bind(wx.EVT_MENU, self.OnQuit, exit) MenuBar.Append(file_menu, u"&Файл") + about_menu = wx.Menu() + about = about_menu.Append(wx.ID_ABOUT, + u"&О m_Librarian", u"О m_Librarian") + self.Bind(wx.EVT_MENU, self.OnAbout, about) + MenuBar.Append(about_menu, u"&О программе") + def OnQuit(self, event): self.Close(True) + def OnAbout(self, event): + aboutInfo = wx.adv.AboutDialogInfo() + aboutInfo.SetName(u'm_Librarian') + aboutInfo.SetVersion(__version__) + aboutInfo.SetDescription( + u'Библиотекарь для библиотек LibRusEc/Flibusta') + aboutInfo.AddDeveloper(u'Олег Бройтман') + aboutInfo.SetWebSite(u'https://phdru.name/Software/Python/m_librarian/') + aboutInfo.SetCopyright(u'(C) 2023 Олег Бройтман') + aboutInfo.SetLicense(u'GPL') + wx.adv.AboutBox(aboutInfo) + + def OnSize(self, event): + """Save window size in the session config""" + size = event.GetSize() + session_config = get_session_config() + session_config.set('main_window', 'width', str(size.width)) + session_config.set('main_window', 'height', str(size.height)) + session_config.save() + event.Skip() # Call other handlers class Application(wx.App): def OnInit(self): - frame = MainWindow(None, -1, u"m_Librarian") - frame.InitMenu() - frame.Show(True) + frame = MainWindow() self.SetTopWindow(frame) return True