Separated also tab GUI components in modules so it will be easier to mantain the codebase in the future

This commit is contained in:
Manuel Cortez 2021-04-23 12:26:35 -05:00
parent 0a0e2a4dd9
commit 5978a7749d
26 changed files with 315 additions and 26 deletions

View File

@ -11,7 +11,7 @@ from pubsub import pub
from vk_api import upload from vk_api import upload
from mutagen.id3 import ID3 from mutagen.id3 import ID3
from presenters import player from presenters import player
from wxUI.tabs import home from wxUI.tabs import audio
from sessionmanager import utils from sessionmanager import utils
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from wxUI import commonMessages, menus from wxUI import commonMessages, menus
@ -22,7 +22,7 @@ log = logging.getLogger("controller.buffers.audio")
class audioBuffer(wallBuffer): class audioBuffer(wallBuffer):
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.audioTab(parent) self.tab = audio.audioTab(parent)
self.tab.name = self.name self.tab.name = self.name
self.connect_events() self.connect_events()
if self.name == "me_audio": if self.name == "me_audio":

View File

@ -3,7 +3,7 @@ import logging
import wx import wx
import widgetUtils import widgetUtils
import output import output
from wxUI.tabs import home from wxUI.tabs import audioAlbum
from .audio import audioBuffer from .audio import audioBuffer
log = logging.getLogger("controller.buffers.audioPlaylist") log = logging.getLogger("controller.buffers.audioPlaylist")
@ -13,7 +13,7 @@ class audioAlbumBuffer(audioBuffer):
but is deprecated as VK removed its audio support for third party apps.""" but is deprecated as VK removed its audio support for third party apps."""
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.audioAlbumTab(parent) self.tab = audioAlbum.audioAlbumTab(parent)
self.tab.play.Enable(False) self.tab.play.Enable(False)
self.tab.play_all.Enable(False) self.tab.play_all.Enable(False)
self.connect_events() self.connect_events()

View File

@ -11,7 +11,7 @@ import widgetUtils
import output import output
from pubsub import pub from pubsub import pub
from vk_api.exceptions import VkApiError from vk_api.exceptions import VkApiError
from wxUI.tabs import home from wxUI.tabs import chat
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from wxUI import commonMessages, menus from wxUI import commonMessages, menus
from sessionmanager import renderers from sessionmanager import renderers
@ -76,7 +76,7 @@ class chatBuffer(homeBuffer):
event.Skip() event.Skip()
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.chatTab(parent) self.tab = chat.chatTab(parent)
self.attachments = list() self.attachments = list()
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
@ -187,7 +187,7 @@ class chatBuffer(homeBuffer):
if i["type"] == "photos_list": if i["type"] == "photos_list":
continue continue
try: try:
rendered_object = add_attachment(i) rendered_object = renderers.add_attachment(i)
except: except:
log.exception("Error parsing the following attachment on chat: %r" % (i,)) log.exception("Error parsing the following attachment on chat: %r" % (i,))
attachments.append(rendered_object) attachments.append(rendered_object)

View File

@ -8,7 +8,7 @@ import views
import interactors import interactors
import widgetUtils import widgetUtils
from pubsub import pub from pubsub import pub
from wxUI.tabs import home from wxUI.tabs import communityBoard
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from .wall import wallBuffer from .wall import wallBuffer
@ -17,7 +17,7 @@ log = logging.getLogger("controller.buffers.communityBoard")
class communityBoardBuffer(wallBuffer): class communityBoardBuffer(wallBuffer):
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.topicTab(parent) self.tab = communityBoard.communityBoardTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
if "can_create_topic" not in self.session.db["group_info"][self.kwargs["group_id"]*-1] or ("can_create_topic" in self.session.db["group_info"][self.kwargs["group_id"]*-1] and self.session.db["group_info"][self.kwargs["group_id"]*-1]["can_create_topic"] != True): if "can_create_topic" not in self.session.db["group_info"][self.kwargs["group_id"]*-1] or ("can_create_topic" in self.session.db["group_info"][self.kwargs["group_id"]*-1] and self.session.db["group_info"][self.kwargs["group_id"]*-1]["can_create_topic"] != True):

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import logging import logging
from wxUI.tabs import home from wxUI.tabs import communityDocuments
from .documents import documentsBuffer from .documents import documentsBuffer
log = logging.getLogger("controller.buffers.communityDocuments") log = logging.getLogger("controller.buffers.communityDocuments")
@ -9,7 +9,7 @@ class communityDocumentsBuffer(documentsBuffer):
can_get_items = True can_get_items = True
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.documentCommunityTab(parent) self.tab = communityDocuments.communityDocumentsTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"): if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"):

View File

@ -8,7 +8,7 @@ import interactors
import widgetUtils import widgetUtils
import output import output
from pubsub import pub from pubsub import pub
from wxUI.tabs import home from wxUI.tabs import communityWall
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from .wall import wallBuffer from .wall import wallBuffer
@ -21,7 +21,7 @@ class communityWallBuffer(wallBuffer):
self.group_id = self.kwargs["owner_id"] self.group_id = self.kwargs["owner_id"]
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.communityTab(parent) self.tab = communityWall.communityWallTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
self.tab.post.Enable(False) self.tab.post.Enable(False)

View File

@ -8,7 +8,7 @@ import languageHandler
import widgetUtils import widgetUtils
import output import output
from pubsub import pub from pubsub import pub
from wxUI.tabs import home from wxUI.tabs import documents
from sessionmanager import utils from sessionmanager import utils
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from wxUI import menus from wxUI import menus
@ -20,7 +20,7 @@ class documentsBuffer(wallBuffer):
can_get_items = False can_get_items = False
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.documentTab(parent) self.tab = documents.documentsTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"): if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"):

View File

@ -2,14 +2,14 @@
""" A buffer is a (virtual) list of items. All items belong to a category (wall posts, messages, persons...)""" """ A buffer is a (virtual) list of items. All items belong to a category (wall posts, messages, persons...)"""
import logging import logging
import output import output
from wxUI.tabs import home from wxUI.tabs import empty
log = logging.getLogger("controller.buffers.empty") log = logging.getLogger("controller.buffers.empty")
class emptyBuffer(object): class emptyBuffer(object):
def __init__(self, name=None, parent=None, *args, **kwargs): def __init__(self, name=None, parent=None, *args, **kwargs):
self.tab = home.empty(parent=parent, name=name) self.tab = empty.emptyTab(parent=parent, name=name)
self.name = name self.name = name
def get_items(self, *args, **kwargs): def get_items(self, *args, **kwargs):

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import logging import logging
from wxUI.tabs import home from wxUI.tabs import notification
from .wall import wallBuffer from .wall import wallBuffer
log = logging.getLogger("controller.buffers") log = logging.getLogger("controller.buffers")
@ -8,7 +8,7 @@ log = logging.getLogger("controller.buffers")
class notificationBuffer(wallBuffer): class notificationBuffer(wallBuffer):
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.notificationTab(parent) self.tab = notification.notificationTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name

View File

@ -11,7 +11,7 @@ import interactors
import languageHandler import languageHandler
import widgetUtils import widgetUtils
from pubsub import pub from pubsub import pub
from wxUI.tabs import home from wxUI.tabs import people
from wxUI.dialogs import timeline from wxUI.dialogs import timeline
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from wxUI import commonMessages, menus from wxUI import commonMessages, menus
@ -37,7 +37,7 @@ class peopleBuffer(wallBuffer):
call_threaded(pub.sendMessage, "post", parent_endpoint="wall", child_endpoint="post", from_buffer=self.name, attachments_list=attachments, post_arguments=post_arguments) call_threaded(pub.sendMessage, "post", parent_endpoint="wall", child_endpoint="post", from_buffer=self.name, attachments_list=attachments, post_arguments=post_arguments)
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.peopleTab(parent) self.tab = people.peopleTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"): if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"):

View File

@ -4,7 +4,7 @@ import webbrowser
import wx import wx
import widgetUtils import widgetUtils
import output import output
from wxUI.tabs import home from wxUI.tabs import video
from wxUI import commonMessages, menus from wxUI import commonMessages, menus
from controller import selector from controller import selector
from .wall import wallBuffer from .wall import wallBuffer
@ -15,7 +15,7 @@ class videoBuffer(wallBuffer):
""" This buffer represents video elements, and it can be used for showing videos for the logged user or someone else.""" """ This buffer represents video elements, and it can be used for showing videos for the logged user or someone else."""
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.videoTab(parent) self.tab = video.videoTab(parent)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name
if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"): if hasattr(self, "can_post") and self.can_post == False and hasattr(self.tab, "post"):

View File

@ -3,7 +3,7 @@ import logging
import wx import wx
import widgetUtils import widgetUtils
import output import output
from wxUI.tabs import home from wxUI.tabs import videoAlbum
from .video import videoBuffer from .video import videoBuffer
log = logging.getLogger("controller.buffers") log = logging.getLogger("controller.buffers")
@ -11,7 +11,7 @@ log = logging.getLogger("controller.buffers")
class videoAlbumBuffer(videoBuffer): class videoAlbumBuffer(videoBuffer):
def create_tab(self, parent): def create_tab(self, parent):
self.tab = home.videoAlbumTab(parent) self.tab = video.videoAlbumTab(parent)
self.tab.play.Enable(False) self.tab.play.Enable(False)
self.connect_events() self.connect_events()
self.tab.name = self.name self.tab.name = self.name

View File

@ -10,7 +10,6 @@ import widgetUtils
import output import output
from pubsub import pub from pubsub import pub
from vk_api.exceptions import VkApiError from vk_api.exceptions import VkApiError
from wxUI.tabs import home
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
from wxUI import commonMessages from wxUI import commonMessages
from .home import homeBuffer from .home import homeBuffer

39
src/wxUI/tabs/audio.py Normal file
View File

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from .home import homeTab
class audioTab(homeTab):
def create_list(self):
self.lbl = wx.StaticText(self, wx.NewId(), _("Mu&sic"))
self.list = widgetUtils.multiselectionList(self, *[_("Title"), _("Artist"), _("Duration")], style=wx.LC_REPORT, name=_("Music"))
self.list.set_windows_size(0, 160)
self.list.set_windows_size(1, 380)
self.list.set_windows_size(2, 80)
self.list.set_size()
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)
def create_post_buttons(self):
self.postBox = wx.StaticBoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Upload audio"))
self.post.Enable(False)
self.play = wx.Button(self.postBox.GetStaticBox(), -1, _("P&lay"))
self.play_all = wx.Button(self.postBox.GetStaticBox(), -1, _("Play &All"))
self.postBox.Add(self.post, 0, wx.ALL, 5)
self.postBox.Add(self.play, 0, wx.ALL, 5)
self.postBox.Add(self.play_all, 0, wx.ALL, 5)
def get_file_to_upload(self):
openFileDialog = wx.FileDialog(self, _("Select the audio file to be uploaded"), "", "", _("Audio files (*.mp3)|*.mp3"), wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
if openFileDialog.ShowModal() == wx.ID_CANCEL:
return None
return openFileDialog.GetPath()
def get_download_path(self, filename="", multiple=False):
if multiple == False:
d = wx.FileDialog(self, _("Save this file"), "", filename, _("Audio Files(*.mp3)|*.mp3"), wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
else:
d = wx.DirDialog(None, _("Select a folder to save all files"))
if d.ShowModal() == wx.ID_OK:
return d.GetPath()
d.Destroy()

View File

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
import wx
from .audio import audioTab
class audioAlbumTab(audioTab):
def create_post_buttons(self):
self.postBox = wx.StaticBoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.load = wx.Button(self.postBox.GetStaticBox(), wx.NewId(), _("Load buffer"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Post"))
self.play = wx.Button(self.postBox.GetStaticBox(), -1, _("P&lay"))
self.play_all = wx.Button(self.postBox.GetStaticBox(), -1, _("Play &All"))
self.postBox.Add(self.load, 0, wx.ALL, 5)
self.postBox.Add(self.post, 0, wx.ALL, 5)
self.postBox.Add(self.play, 0, wx.ALL, 5)
self.postBox.Add(self.play_all, 0, wx.ALL, 5)

72
src/wxUI/tabs/chat.py Normal file
View File

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from pubsub import pub
class chatTab(wx.Panel):
def insert_attachments(self, attachments):
for i in attachments:
self.attachments.insert_item(False, *i)
def __init__(self, parent):
super(chatTab, self).__init__(parent=parent)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.create_controls())
sizer.Add(self.create_attachments(), 0, wx.ALL, 5)
sizer.Add(self.create_chat(), 0, wx.ALL, 5)
self.attachment = wx.Button(self, wx.NewId(), _("Add"))
sizer.Add(self.attachment, 0, wx.ALL, 5)
self.send = wx.Button(self, -1, _("Send"))
sizer.Add(self.send, 0, wx.ALL, 5)
self.SetSizer(sizer)
def create_controls(self):
lbl1 = wx.StaticText(self, wx.NewId(), _("History"))
self.history = wx.TextCtrl(self, wx.NewId(), style=wx.TE_READONLY|wx.TE_MULTILINE, size=(500, 300))
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)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(lbl1, 0, wx.ALL, 5)
box.Add(self.history, 0, wx.ALL, 5)
return box
def onSelect(self, event, *args, **kwargs):
if self.history.HasFocus():
self.history.SelectAll()
else:
self.text.SelectAll()
event.Skip()
def create_attachments(self):
lbl = wx.StaticText(self, -1, _("Attachments"))
self.attachments = widgetUtils.list(self, _("Type"), _("Title"), style=wx.LC_REPORT)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(lbl, 0, wx.ALL, 5)
box.Add(self.attachments.list, 0, wx.ALL, 5)
self.attachments.list.Enable(False)
return box
def create_chat(self):
lbl2 = wx.StaticText(self, -1, _("Write a message"))
self.text = wx.TextCtrl(self, -1, size=(400, -1), style=wx.TE_MULTILINE)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(lbl2, 0, wx.ALL, 20)
box.Add(self.text, 0, wx.ALL, 5)
return box
def set_focus_function(self, focus_function):
self.history.Bind(wx.EVT_KEY_UP , focus_function)
def add_message(self, message, reverse=False):
old_line = self.history.GetNumberOfLines()#.count("\n")
point = self.history.GetInsertionPoint()
if reverse:
wx.CallAfter(self.history.SetValue, message+"\n"+self.history.GetValue())
else:
wx.CallAfter(self.history.AppendText, message+"\n")
wx.CallAfter(self.history.SetInsertionPoint, point)
new_line = self.history.GetNumberOfLines()#.count("\n")
return (old_line, new_line)

View File

@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from .home import homeTab
class communityBoardTab(homeTab):
def create_list(self):
self.lbl = wx.StaticText(self, wx.NewId(), _("Topics"))
self.list = widgetUtils.list(self, *[_("User"), _("Title"), _("Posts"), _("Last")], style=wx.LC_REPORT)
self.list.set_windows_size(0, 200)
self.list.set_windows_size(1, 64)
self.list.set_windows_size(2, 15)
self.list.set_windows_size(2, 250)
self.list.set_size()
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from .home import homeTab
class communityDocumentsTab(homeTab):
def create_list(self):
self.lbl = wx.StaticText(self, wx.NewId(), _("Documents"))
self.list = widgetUtils.list(self, *[_("User"), _("Title"), _("Type"), _("Size"), _("Date")], style=wx.LC_REPORT)
self.list.set_windows_size(0, 200)
self.list.set_windows_size(1, 128)
self.list.set_windows_size(2, 35)
self.list.set_windows_size(3, 15)
self.list.set_windows_size(4, 25)
self.list.set_size()
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)
def get_download_path(self, filename):
saveFileDialog = wx.FileDialog(self, _("Save document as"), "", filename, _("All files (*.*)|*.*"), wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
if saveFileDialog.ShowModal() == widgetUtils.OK:
return saveFileDialog.GetPath()

View File

@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
import wx
from .home import homeTab
class communityWallTab(homeTab):
def create_post_buttons(self):
self.postBox = wx.StaticBoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.load = wx.Button(self.postBox.GetStaticBox(), wx.NewId(), _("Load buffer"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Post in group"))
self.postBox.Add(self.load, 0, wx.ALL, 5)
self.postBox.Add(self.post, 0, wx.ALL, 5)

View File

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
import wx
from .communityDocuments import communityDocumentsTab
class documentsTab(communityDocumentsTab):
def create_post_buttons(self):
self.postBox = wx.StaticBoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.load = wx.Button(self.postBox.GetStaticBox(), wx.NewId(), _("Load buffer"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Post"))
self.postBox.Add(self.load, 0, wx.ALL, 5)
self.postBox.Add(self.post, 0, wx.ALL, 5)

9
src/wxUI/tabs/empty.py Normal file
View File

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
import wx
class emptyTab(wx.Panel):
def __init__(self, parent, name):
super(emptyTab, self).__init__(parent=parent, name=name)
self.name = name
sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(sizer)

View File

@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from pubsub import pub
from .home import homeTab
class notificationTab(homeTab):
def OnKeyDown(self, ev=None):
pub.sendMessage("show-notification", buffer=self.name)
ev.Skip()
def create_list(self):
self.lbl = wx.StaticText(self, wx.NewId(), _("Po&sts"))
self.list = widgetUtils.list(self, *[_("Notification"), _("Date")], style=wx.LC_REPORT)
self.list.set_windows_size(0, 190)
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)

22
src/wxUI/tabs/people.py Normal file
View File

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from pubsub import pub
from .home import homeTab
class peopleTab(homeTab):
def create_list(self):
self.lbl = wx.StaticText(self, wx.NewId(), _("Friends"))
self.list = widgetUtils.list(self, *[_("Name"), _("Last seen")], style=wx.LC_REPORT)
self.list.set_windows_size(0, 190)
self.list.set_windows_size(1, 100)
self.list.set_size()
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)
def create_post_buttons(self):
self.postBox = wx.StaticBoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Post on user's wall"))
self.new_chat = wx.Button(self.postBox.GetStaticBox(), wx.NewId(), _("Send message"))
self.postBox.Add(self.post, 0, wx.ALL, 5)
self.postBox.Add(self.new_chat, 0, wx.ALL, 5)

View File

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from pubsub import pub
from .home import homeTab
class albumTab(homeTab):
def __init__(self, parent):
super(albumTab, self).__init__(parent=parent)
self.name = "albums"
def OnKeyDown(self, ev=None):
pub.sendMessage("show-album", buffer=self.name)
ev.Skip()
def create_list(self):
self.list = widgetUtils.list(self, *[_("User"), _("Name"), _("Description"), _("Photos"), _("Created at")], style=wx.LC_REPORT)
self.list.set_windows_size(0, 190)
self.list.set_windows_size(1, 320)
self.list.set_windows_size(2, 513)
self.list.set_windows_size(3, 390)
self.list.set_windows_size(4, 180)
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)

21
src/wxUI/tabs/video.py Normal file
View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
import wx
import widgetUtils
from .home import homeTab
class videoTab(homeTab):
def create_list(self):
self.lbl = wx.StaticText(self, wx.NewId(), _("Video&s"))
self.list = widgetUtils.list(self, *[_("Title"), _("Description"), _("Duration")], style=wx.LC_REPORT)
self.list.set_windows_size(0, 160)
self.list.set_windows_size(1, 380)
self.list.set_windows_size(2, 80)
self.list.set_size()
self.list.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnKeyDown)
def create_post_buttons(self):
self.postBox = wx.StaticBoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Post"))
self.play = wx.Button(self.postBox.GetStaticBox(), -1, _("P&lay"))
self.postBox.Add(self.post, 0, wx.ALL, 5)
self.postBox.Add(self.play, 0, wx.ALL, 5)

View File

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
import wx
from .video import videoTab
class videoAlbumTab(videoTab):
def create_post_buttons(self):
self.postBox = wx.BoxSizer(parent=self, orient=wx.HORIZONTAL, label=_("Actions"))
self.load = wx.Button(self.postBox.GetStaticBox(), wx.NewId(), _("Load buffer"))
self.post = wx.Button(self.postBox.GetStaticBox(), -1, _("&Post"))
self.play = wx.Button(self.postBox.GetStaticBox(), -1, _("P&lay"))
self.postBox.Add(self.post, 0, wx.ALL, 5)
self.postBox.Add(self.play, 0, wx.ALL, 5)