X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fwx%2FApplication.py;h=a12eb0e64a3deb93abe6eef767dec04a4c2eaf76;hb=4a0e7fd62e8af79906b606cede07fee1e51d5df1;hp=d1e95cf4459e36d494fad3e8506dc0f4cd1d8537;hpb=996e6bc78ced078e7329b39c4ad7a47fee895ea8;p=m_librarian.git diff --git a/m_librarian/wx/Application.py b/m_librarian/wx/Application.py index d1e95cf..a12eb0e 100644 --- a/m_librarian/wx/Application.py +++ b/m_librarian/wx/Application.py @@ -1,4 +1,63 @@ -import wx +# coding: utf-8 + +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() + super(wx.Frame, self).__init__( + parent=None, id=-1, title=u"m_Librarian", + ) + self.InitMenu() + self.Show(True) + self.Bind(wx.EVT_SIZE, self.OnSize) + + def InitMenu(self): + MenuBar = wx.MenuBar() + self.SetMenuBar(MenuBar) + + file_menu = wx.Menu() + exit = file_menu.Append(wx.ID_EXIT, u"&Выход", u"Выйти из программы") + 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): - pass + + def OnInit(self): + frame = MainWindow() + self.SetTopWindow(frame) + return True