2016-02-13 17:06:36 -06:00
|
|
|
# -*- coding: utf-8 -*-
|
2019-01-02 04:42:53 +03:00
|
|
|
from __future__ import unicode_literals
|
2016-02-13 17:06:36 -06:00
|
|
|
import wx
|
|
|
|
import widgetUtils
|
|
|
|
|
2019-01-08 17:56:51 -06:00
|
|
|
class displayBasicPost(widgetUtils.BaseDialog):
|
2016-02-13 17:06:36 -06:00
|
|
|
def __init__(self, *args, **kwargs):
|
2019-01-08 17:56:51 -06:00
|
|
|
super(displayBasicPost, self).__init__(parent=None, *args, **kwargs)
|
2016-02-13 17:06:36 -06:00
|
|
|
self.panel = wx.Panel(self, -1)
|
|
|
|
self.sizer = wx.BoxSizer(wx.VERTICAL)
|
|
|
|
|
|
|
|
def done(self):
|
|
|
|
self.panel.SetSizer(self.sizer)
|
|
|
|
self.SetClientSize(self.sizer.CalcMin())
|
|
|
|
|
2019-01-02 04:42:53 +03:00
|
|
|
def create_post_view(self, label=_("Message")):
|
2016-02-13 17:06:36 -06:00
|
|
|
lbl = wx.StaticText(self.panel, -1, label)
|
|
|
|
self.post_view = wx.TextCtrl(self.panel, -1, size=(730, -1), style=wx.TE_READONLY|wx.TE_MULTILINE)
|
2019-01-24 16:07:02 -06:00
|
|
|
selectId = wx.NewId()
|
|
|
|
self.Bind(wx.EVT_MENU, self.onSelect, id=selectId)
|
|
|
|
self.accel_tbl = wx.AcceleratorTable([
|
|
|
|
(wx.ACCEL_CTRL, ord('A'), selectId),])
|
|
|
|
self.SetAcceleratorTable(self.accel_tbl)
|
2016-02-13 17:06:36 -06:00
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(lbl, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.post_view, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
2019-01-24 16:07:02 -06:00
|
|
|
def onSelect(self, event):
|
|
|
|
self.post_view.SelectAll()
|
|
|
|
|
2019-01-09 17:42:11 -06:00
|
|
|
def create_views_control(self):
|
|
|
|
lbl = wx.StaticText(self.panel, -1, _("Views"))
|
|
|
|
self.views = wx.TextCtrl(self.panel, -1, style=wx.TE_READONLY|wx.TE_MULTILINE)
|
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(lbl, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.views, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
|
|
|
|
2016-02-13 17:06:36 -06:00
|
|
|
def create_comments_list(self):
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl = wx.StaticText(self.panel, -1, _("Comments"))
|
2019-01-09 16:47:58 -06:00
|
|
|
self.comments = widgetUtils.list(self.panel, _("User"), _("Comment"), _("Date"), _("Likes"), _("replies"), style=wx.LC_REPORT)
|
|
|
|
self.reply = wx.Button(self.panel, -1, _("Reply to comment"))
|
|
|
|
self.reply.Enable(False)
|
2016-02-13 17:06:36 -06:00
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
2016-03-26 22:03:43 -06:00
|
|
|
box.Add(lbl, 0, wx.ALL, 5)
|
2016-02-13 17:06:36 -06:00
|
|
|
box.Add(self.comments.list, 0, wx.ALL, 5)
|
2019-01-09 16:47:58 -06:00
|
|
|
box.Add(self.reply, 0, wx.ALL, 5)
|
2016-02-13 17:06:36 -06:00
|
|
|
return box
|
|
|
|
|
2016-04-03 06:49:15 -05:00
|
|
|
def create_attachments(self):
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl = wx.StaticText(self.panel, -1, _("Attachments"))
|
|
|
|
self.attachments = widgetUtils.list(self.panel, _("Type"), _("Title"), style=wx.LC_REPORT)
|
2016-04-03 06:49:15 -05:00
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(lbl, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.attachments.list, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
2016-08-10 12:58:11 -05:00
|
|
|
def create_photo_viewer(self):
|
2018-09-03 08:33:05 -05:00
|
|
|
self.image = wx.StaticBitmap(self.panel, bitmap=wx.Bitmap(1280, 860), size=(604, 604))
|
2016-08-10 12:58:11 -05:00
|
|
|
self.sizer.Add(self.image, 1, wx.ALL, 10)
|
2019-01-02 04:42:53 +03:00
|
|
|
self.previous_photo = wx.Button(self.panel, wx.NewId(), _("Previous photo"))
|
|
|
|
self.view_photo = wx.Button(self.panel, wx.NewId(), _("View in full screen"))
|
|
|
|
self.next_photo = wx.Button(self.panel, wx.NewId(), _("Next photo"))
|
2016-08-10 12:58:11 -05:00
|
|
|
actionsS = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
actionsS.Add(self.previous_photo, 0, wx.ALL, 5)
|
|
|
|
actionsS.Add(self.view_photo, 0, wx.ALL, 5)
|
|
|
|
actionsS.Add(self.next_photo, wx.ALL, 5)
|
|
|
|
self.previous_photo.Enable(False)
|
|
|
|
self.view_photo.Enable(False)
|
|
|
|
self.next_photo.Enable(False)
|
|
|
|
self.sizer.Add(actionsS, 0, wx.ALL, 5)
|
|
|
|
|
|
|
|
def enable_photo_controls(self, navigation=True):
|
|
|
|
self.view_photo.Enable(True)
|
|
|
|
if navigation:
|
|
|
|
self.previous_photo.Enable(True)
|
|
|
|
self.next_photo.Enable(True)
|
|
|
|
|
2016-02-13 17:06:36 -06:00
|
|
|
def create_likes_box(self):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.likes = wx.Button(self.panel, -1, _("Loading data..."))
|
2016-02-13 17:06:36 -06:00
|
|
|
return self.likes
|
|
|
|
|
|
|
|
def create_shares_box(self):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.shares = wx.Button(self.panel, -1, _("Loading data..."))
|
2016-02-13 17:06:36 -06:00
|
|
|
return self.shares
|
|
|
|
|
|
|
|
def create_action_buttons(self, comment=True):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.like = wx.Button(self.panel, -1, _("&Like"))
|
|
|
|
self.repost = wx.Button(self.panel, -1, _("Repost"))
|
|
|
|
if comment: self.comment = wx.Button(self.panel, -1, _("Add comment"))
|
2016-02-13 17:06:36 -06:00
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(self.like, 0, wx.ALL, 5)
|
2019-01-09 16:47:58 -06:00
|
|
|
box.Add(self.repost, 0, wx.ALL, 5)
|
2016-02-13 17:06:36 -06:00
|
|
|
if comment: box.Add(self.comment, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
|
|
|
def create_tools_button(self):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.tools = wx.Button(self.panel, -1, _("Actions"))
|
2016-02-13 17:06:36 -06:00
|
|
|
|
|
|
|
def create_dialog_buttons(self):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.close = wx.Button(self.panel, wx.ID_CANCEL, _("Close"))
|
2016-02-13 17:06:36 -06:00
|
|
|
return self.close
|
|
|
|
|
|
|
|
def set_post(self, text):
|
|
|
|
if hasattr(self, "post_view"):
|
|
|
|
self.post_view.ChangeValue(text)
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
|
|
|
|
def insert_comments(self, comments):
|
|
|
|
for i in comments:
|
|
|
|
self.comments.insert_item(False, *i)
|
|
|
|
|
2016-04-03 06:49:15 -05:00
|
|
|
def insert_attachments(self, attachments):
|
|
|
|
for i in attachments:
|
|
|
|
self.attachments.insert_item(False, *i)
|
|
|
|
|
2016-02-13 17:06:36 -06:00
|
|
|
def set_likes(self, likes):
|
|
|
|
if hasattr(self, "likes"):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.likes.SetLabel(_("{0} people like this").format(likes,))
|
2016-02-13 17:06:36 -06:00
|
|
|
else:
|
|
|
|
return False
|
|
|
|
|
|
|
|
def set_shares(self, shares):
|
|
|
|
if hasattr(self, "shares"):
|
2019-01-02 04:42:53 +03:00
|
|
|
self.shares.SetLabel(_("Shared {0} times").format(shares,))
|
2016-02-13 17:06:36 -06:00
|
|
|
else:
|
|
|
|
return False
|
|
|
|
|
2019-01-08 17:56:51 -06:00
|
|
|
class displayPost(displayBasicPost):
|
2016-02-13 17:06:36 -06:00
|
|
|
def __init__(self, *args, **kwargs):
|
2019-01-08 17:56:51 -06:00
|
|
|
super(displayPost, self).__init__(*args, **kwargs)
|
2016-02-13 17:06:36 -06:00
|
|
|
post_view_box = self.create_post_view()
|
|
|
|
self.sizer.Add(post_view_box, 0, wx.ALL, 5)
|
2019-01-09 17:42:11 -06:00
|
|
|
views_box = self.create_views_control()
|
|
|
|
self.sizer.Add(views_box, 0, wx.ALL, 5)
|
2016-04-03 06:49:15 -05:00
|
|
|
attachments_box = self.create_attachments()
|
|
|
|
self.sizer.Add(attachments_box, 0, wx.ALL, 5)
|
|
|
|
self.attachments.list.Enable(False)
|
2016-08-10 12:58:11 -05:00
|
|
|
self.create_photo_viewer()
|
|
|
|
self.image.Enable(False)
|
2016-02-13 17:06:36 -06:00
|
|
|
self.create_tools_button()
|
|
|
|
self.sizer.Add(self.tools, 0, wx.ALL, 5)
|
|
|
|
likes_box = self.create_likes_box()
|
|
|
|
self.sizer.Add(likes_box, 0, wx.ALL, 5)
|
|
|
|
shares_box = self.create_shares_box()
|
|
|
|
self.sizer.Add(shares_box, 0, wx.ALL, 5)
|
|
|
|
actions_box = self.create_action_buttons()
|
|
|
|
self.sizer.Add(actions_box, 0, wx.ALL, 5)
|
|
|
|
comments_box = self.create_comments_list()
|
|
|
|
self.sizer.Add(comments_box, 0, wx.ALL, 5)
|
|
|
|
self.sizer.Add(self.create_dialog_buttons())
|
|
|
|
self.done()
|
|
|
|
|
2019-01-08 17:56:51 -06:00
|
|
|
class displayComment(displayBasicPost):
|
2016-02-13 17:06:36 -06:00
|
|
|
def __init__(self, *args, **kwargs):
|
2019-01-08 17:56:51 -06:00
|
|
|
super(displayComment, self).__init__(*args, **kwargs)
|
2016-02-13 17:06:36 -06:00
|
|
|
post_view_box = self.create_post_view()
|
|
|
|
self.sizer.Add(post_view_box, 0, wx.ALL, 5)
|
2019-01-09 16:47:58 -06:00
|
|
|
attachments_box = self.create_attachments()
|
|
|
|
self.sizer.Add(attachments_box, 0, wx.ALL, 5)
|
|
|
|
self.attachments.list.Enable(False)
|
|
|
|
self.create_photo_viewer()
|
|
|
|
self.image.Enable(False)
|
2016-02-13 17:06:36 -06:00
|
|
|
self.create_tools_button()
|
|
|
|
self.sizer.Add(self.tools, 0, wx.ALL, 5)
|
|
|
|
likes_box = self.create_likes_box()
|
|
|
|
self.sizer.Add(likes_box, 0, wx.ALL, 5)
|
2019-01-09 16:47:58 -06:00
|
|
|
actions_box = self.create_action_buttons()
|
2016-02-13 17:06:36 -06:00
|
|
|
self.sizer.Add(actions_box, 0, wx.ALL, 5)
|
2019-01-09 16:47:58 -06:00
|
|
|
comments_box = self.create_comments_list()
|
|
|
|
self.sizer.Add(comments_box, 0, wx.ALL, 5)
|
2016-02-13 17:06:36 -06:00
|
|
|
self.sizer.Add(self.create_dialog_buttons())
|
|
|
|
self.done()
|
2016-02-15 15:09:33 -06:00
|
|
|
|
2019-01-09 16:47:58 -06:00
|
|
|
def create_comments_list(self):
|
|
|
|
lbl = wx.StaticText(self.panel, -1, _("Replies"))
|
|
|
|
self.comments = widgetUtils.list(self.panel, _("User"), _("Comment"), _("Date"), _("Likes"), _("Replies"), style=wx.LC_REPORT)
|
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(lbl, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.comments.list, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
|
|
|
def create_action_buttons(self, comment=True):
|
|
|
|
self.like = wx.Button(self.panel, -1, _("&Like"))
|
|
|
|
self.reply = wx.Button(self.panel, -1, _("Reply to thread"))
|
|
|
|
if comment: self.comment = wx.Button(self.panel, -1, _("Add comment"))
|
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(self.like, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.reply, 0, wx.ALL, 5)
|
|
|
|
if comment: box.Add(self.comment, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
2019-01-31 16:48:21 -06:00
|
|
|
class displayTopic(displayBasicPost):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(displayTopic, self).__init__(*args, **kwargs)
|
|
|
|
comments_box = self.create_comments_list()
|
|
|
|
self.sizer.Add(comments_box, 0, wx.ALL, 5)
|
|
|
|
attachments_box = self.create_attachments()
|
|
|
|
self.sizer.Add(attachments_box, 0, wx.ALL, 5)
|
|
|
|
self.attachments.list.Enable(False)
|
|
|
|
self.create_photo_viewer()
|
|
|
|
self.image.Enable(False)
|
|
|
|
self.create_tools_button()
|
|
|
|
self.sizer.Add(self.tools, 0, wx.ALL, 5)
|
|
|
|
actions_box = self.create_action_buttons()
|
|
|
|
self.sizer.Add(actions_box, 0, wx.ALL, 5)
|
|
|
|
self.sizer.Add(self.create_dialog_buttons())
|
|
|
|
self.done()
|
|
|
|
|
|
|
|
def create_action_buttons(self, comment=True):
|
|
|
|
self.like = wx.Button(self.panel, -1, _("&Like"))
|
|
|
|
if comment: self.comment = wx.Button(self.panel, -1, _("Add comment"))
|
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(self.like, 0, wx.ALL, 5)
|
|
|
|
if comment: box.Add(self.comment, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
|
|
|
def create_comments_list(self):
|
|
|
|
lbl = wx.StaticText(self.panel, -1, _("Posts"))
|
|
|
|
self.comments = widgetUtils.list(self.panel, _("User"), _("Comment"), _("Date"), _("Likes"), style=wx.LC_REPORT)
|
|
|
|
self.reply = wx.Button(self.panel, -1, _("Reply"))
|
|
|
|
box = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
box.Add(lbl, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.comments.list, 0, wx.ALL, 5)
|
|
|
|
box.Add(self.reply, 0, wx.ALL, 5)
|
|
|
|
return box
|
|
|
|
|
2019-01-08 17:56:51 -06:00
|
|
|
class displayAudio(widgetUtils.BaseDialog):
|
2016-02-15 15:09:33 -06:00
|
|
|
def __init__(self, *args, **kwargs):
|
2019-01-08 17:56:51 -06:00
|
|
|
super(displayAudio, self).__init__(parent=None, *args, **kwargs)
|
2016-02-15 15:09:33 -06:00
|
|
|
panel = wx.Panel(self)
|
|
|
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl_list = wx.StaticText(panel, wx.NewId(), _("Audio &files"))
|
2016-02-24 10:30:07 -06:00
|
|
|
self.list = wx.ListBox(panel, wx.NewId())
|
|
|
|
listS = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
listS.Add(lbl_list, 0, wx.ALL, 5)
|
|
|
|
listS.Add(self.list, 0, wx.ALL, 5)
|
|
|
|
sizer.Add(listS, 0, wx.ALL, 5)
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl_title = wx.StaticText(panel, wx.NewId(), _("&Title"))
|
2016-02-15 15:09:33 -06:00
|
|
|
self.title = wx.TextCtrl(panel, wx.NewId(), size=(413, -1), style=wx.TE_READONLY|wx.TE_MULTILINE)
|
|
|
|
titleBox = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
titleBox.Add(lbl_title, 0, wx.ALL, 5)
|
|
|
|
titleBox.Add(self.title, 0, wx.ALL, 5)
|
|
|
|
sizer.Add(titleBox, 0, wx.ALL, 5)
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl_artist = wx.StaticText(panel, wx.NewId(), _("&Artist"))
|
2016-02-15 15:09:33 -06:00
|
|
|
self.artist = wx.TextCtrl(panel, wx.NewId(), size=(413, -1), style=wx.TE_READONLY|wx.TE_MULTILINE)
|
|
|
|
artistBox = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
artistBox.Add(lbl_artist, 0, wx.ALL, 5)
|
|
|
|
artistBox.Add(self.artist, 0, wx.ALL, 5)
|
|
|
|
sizer.Add(artistBox, 0, wx.ALL, 5)
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl_duration = wx.StaticText(panel, wx.NewId(), _("&Duration"))
|
2016-02-15 15:09:33 -06:00
|
|
|
self.duration = wx.TextCtrl(panel, wx.NewId(), size=(413, -1), style=wx.TE_READONLY|wx.TE_MULTILINE)
|
|
|
|
durationBox = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
durationBox.Add(lbl_duration, 0, wx.ALL, 5)
|
|
|
|
durationBox.Add(self.duration, 0, wx.ALL, 5)
|
|
|
|
sizer.Add(durationBox, 0, wx.ALL, 5)
|
2019-01-02 04:42:53 +03:00
|
|
|
lbl_lyrics = wx.StaticText(panel, wx.NewId(), _("&Lyric"))
|
2016-02-15 15:09:33 -06:00
|
|
|
self.lyric = wx.TextCtrl(panel, wx.NewId(), size=(500, 500), style=wx.TE_READONLY|wx.TE_MULTILINE)
|
|
|
|
lbox = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
lbox.Add(lbl_lyrics, 0, wx.ALL, 5)
|
|
|
|
lbox.Add(self.lyric, 0, wx.ALL, 5)
|
|
|
|
sizer.Add(lbox, 0, wx.ALL, 5)
|
2019-01-02 04:42:53 +03:00
|
|
|
self.play = wx.Button(panel, wx.NewId(), _("&Play"))
|
|
|
|
self.download = wx.Button(panel, wx.NewId(), _("&Download"))
|
|
|
|
self.add = wx.Button(panel, wx.NewId(), _("&Add to your library"))
|
|
|
|
self.remove = wx.Button(panel, wx.NewId(), _("&Remove from your library"))
|
2016-02-19 04:17:49 -06:00
|
|
|
self.add.Enable(False)
|
|
|
|
self.remove.Enable(False)
|
2016-02-15 15:09:33 -06:00
|
|
|
close = wx.Button(panel, wx.ID_CANCEL)
|
|
|
|
bbox = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
bbox.Add(self.play, 0, wx.ALL, 5)
|
|
|
|
bbox.Add(self.download, 0, wx.ALL, 5)
|
2016-02-19 04:17:49 -06:00
|
|
|
bbox.Add(self.add, 0, wx.ALL, 5)
|
|
|
|
bbox.Add(self.remove, 0, wx.ALL, 5)
|
2016-02-15 15:09:33 -06:00
|
|
|
bbox.Add(close, 0, wx.ALL, 5)
|
|
|
|
|
2016-02-19 04:17:49 -06:00
|
|
|
def change_state(self, button_name, state):
|
|
|
|
getattr(self, button_name).Enable(state)
|
|
|
|
|
2016-02-15 16:49:09 -06:00
|
|
|
def get_destination_path(self, filename):
|
2019-01-02 04:42:53 +03:00
|
|
|
saveFileDialog = wx.FileDialog(self, _("Save this file"), "", filename, _("Audio Files(*.mp3)|*.mp3"), wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
|
2016-02-15 16:49:09 -06:00
|
|
|
if saveFileDialog.ShowModal() == wx.ID_OK:
|
|
|
|
return saveFileDialog.GetPath()
|
2016-02-17 17:37:57 -06:00
|
|
|
saveFileDialog.Destroy()
|
|
|
|
|
2016-02-24 10:30:07 -06:00
|
|
|
def insert_audio(self, audio_):
|
|
|
|
self.list.Append(audio_)
|
|
|
|
|
|
|
|
def get_audio(self):
|
|
|
|
return self.list.GetSelection()
|
|
|
|
|
2019-01-08 17:56:51 -06:00
|
|
|
class displayFriendship(widgetUtils.BaseDialog):
|
2016-02-17 17:37:57 -06:00
|
|
|
def __init__(self):
|
2019-01-08 17:56:51 -06:00
|
|
|
super(displayFriendship, self).__init__(parent=None)
|
2016-02-17 17:37:57 -06:00
|
|
|
panel = wx.Panel(self)
|
|
|
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
2019-01-02 04:42:53 +03:00
|
|
|
self.friends = widgetUtils.list(panel, [_("Friend")], style=wx.LC_REPORT)
|
2016-02-17 17:37:57 -06:00
|
|
|
sizer.Add(self.friends.list, 0, wx.ALL, 5)
|
|
|
|
close = wx.Button(panel, wx.ID_CANCEL)
|
|
|
|
btnbox = wx.BoxSizer(wx.HORIZONTAL)
|
|
|
|
btnbox.Add(close, 0, wx.ALL, 5)
|
|
|
|
sizer.Add(btnbox, 0, wx.ALL, 5)
|
|
|
|
panel.SetSizer(sizer)
|
2018-09-06 10:47:10 -05:00
|
|
|
self.SetClientSize(sizer.CalcMin())
|