2014-11-12 20:41:29 -06:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import wx
|
2018-03-14 14:18:11 -06:00
|
|
|
import wx.adv
|
2015-02-26 16:09:26 -06:00
|
|
|
import application
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
class mainFrame(wx.Frame):
|
|
|
|
""" Main class of the Frame. This is the Main Window."""
|
|
|
|
|
|
|
|
### MENU
|
|
|
|
def makeMenus(self):
|
|
|
|
""" Creates, bind and returns the menu bar for the application. Also in this function, the accel table is created."""
|
|
|
|
menuBar = wx.MenuBar()
|
|
|
|
|
|
|
|
# Application menu
|
|
|
|
app = wx.Menu()
|
2015-04-04 21:25:52 -06:00
|
|
|
self.manage_accounts = app.Append(wx.NewId(), _(u"&Manage accounts"))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.updateProfile = app.Append(wx.NewId(), _(u"&Update profile"))
|
|
|
|
self.show_hide = app.Append(wx.NewId(), _(u"&Hide window"))
|
|
|
|
self.menuitem_search = app.Append(wx.NewId(), _(u"&Search"))
|
|
|
|
self.lists = app.Append(wx.NewId(), _(u"&Lists manager"))
|
|
|
|
self.keystroke_editor = app.Append(wx.NewId(), _(u"&Edit keystrokes"))
|
2015-01-25 02:38:17 -06:00
|
|
|
self.account_settings = app.Append(wx.NewId(), _(u"Account se&ttings"))
|
|
|
|
self.prefs = app.Append(wx.ID_PREFERENCES, _(u"&Global settings"))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.close = app.Append(wx.ID_EXIT, _(u"E&xit"))
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
# Tweet menu
|
|
|
|
tweet = wx.Menu()
|
2015-01-01 21:40:57 -06:00
|
|
|
self.compose = tweet.Append(wx.NewId(), _(u"&Tweet"))
|
|
|
|
self.reply = tweet.Append(wx.NewId(), _(u"Re&ply"))
|
|
|
|
self.retweet = tweet.Append(wx.NewId(), _(u"&Retweet"))
|
2015-11-03 10:07:06 -06:00
|
|
|
self.fav = tweet.Append(wx.NewId(), _(u"&Like"))
|
|
|
|
self.unfav = tweet.Append(wx.NewId(), _(u"&Unlike"))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.view = tweet.Append(wx.NewId(), _(u"&Show tweet"))
|
2015-02-03 05:10:01 -06:00
|
|
|
self.view_coordinates = tweet.Append(wx.NewId(), _(u"View &address"))
|
2015-03-19 04:50:24 -06:00
|
|
|
self.view_conversation = tweet.Append(wx.NewId(), _(u"View conversa&tion"))
|
2017-01-28 12:19:58 -05:00
|
|
|
self.ocr = tweet.Append(wx.NewId(), _(u"Read text in picture"))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.delete = tweet.Append(wx.NewId(), _(u"&Delete"))
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
# User menu
|
|
|
|
user = wx.Menu()
|
2015-05-02 18:42:21 -04:00
|
|
|
self.follow = user.Append(wx.NewId(), _(u"&Actions..."))
|
2015-05-08 09:59:52 -04:00
|
|
|
self.timeline = user.Append(wx.NewId(), _(u"&View timeline..."))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.dm = user.Append(wx.NewId(), _(u"Direct me&ssage"))
|
|
|
|
self.addToList = user.Append(wx.NewId(), _(u"&Add to list"))
|
|
|
|
self.removeFromList = user.Append(wx.NewId(), _(u"R&emove from list"))
|
|
|
|
self.viewLists = user.Append(wx.NewId(), _(u"&View lists"))
|
|
|
|
self.details = user.Append(wx.NewId(), _(u"Show user &profile"))
|
2015-11-03 10:07:06 -06:00
|
|
|
self.favs = user.Append(wx.NewId(), _(u"V&iew likes"))
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
# buffer menu
|
|
|
|
buffer = wx.Menu()
|
2015-12-26 23:34:19 -06:00
|
|
|
self.update_buffer = buffer.Append(wx.NewId(), _(u"&Update buffer"))
|
2015-05-08 10:27:24 -04:00
|
|
|
self.trends = buffer.Append(wx.NewId(), _(u"New &trending topics buffer..."))
|
2017-11-23 17:44:57 -06:00
|
|
|
self.filter = buffer.Append(wx.NewId(), _(u"Create a &filter"))
|
|
|
|
self.manage_filters = buffer.Append(wx.NewId(), _(u"&Manage filters"))
|
2015-06-24 12:59:59 -07:00
|
|
|
self.find = buffer.Append(wx.NewId(), _(u"Find a string in the currently focused buffer..."))
|
2015-02-03 09:59:18 -06:00
|
|
|
self.load_previous_items = buffer.Append(wx.NewId(), _(u"&Load previous items"))
|
2015-03-12 08:31:39 -06:00
|
|
|
buffer.AppendSeparator()
|
|
|
|
self.mute_buffer = buffer.AppendCheckItem(wx.NewId(), _(u"&Mute"))
|
2015-05-02 03:04:46 -04:00
|
|
|
self.autoread = buffer.AppendCheckItem(wx.NewId(), _(u"&Autoread"))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.clear = buffer.Append(wx.NewId(), _(u"&Clear buffer"))
|
2015-05-02 03:04:46 -04:00
|
|
|
self.deleteTl = buffer.Append(wx.NewId(), _(u"&Destroy"))
|
2014-11-12 20:41:29 -06:00
|
|
|
|
2016-08-10 21:59:19 -05:00
|
|
|
# audio menu
|
|
|
|
audio = wx.Menu()
|
|
|
|
self.seekLeft = audio.Append(wx.NewId(), _(u"&Seek back 5 seconds"))
|
|
|
|
self.seekRight = audio.Append(wx.NewId(), _(u"&Seek forward 5 seconds"))
|
|
|
|
|
2014-11-12 20:41:29 -06:00
|
|
|
# Help Menu
|
|
|
|
help = wx.Menu()
|
2015-01-01 21:40:57 -06:00
|
|
|
self.doc = help.Append(-1, _(u"&Documentation"))
|
2015-04-17 15:38:25 -04:00
|
|
|
self.sounds_tutorial = help.Append(wx.NewId(), _(u"Sounds &tutorial"))
|
2015-01-01 21:40:57 -06:00
|
|
|
self.changelog = help.Append(wx.NewId(), _(u"&What's new in this version?"))
|
|
|
|
self.check_for_updates = help.Append(wx.NewId(), _(u"&Check for updates"))
|
|
|
|
self.reportError = help.Append(wx.NewId(), _(u"&Report an error"))
|
2015-06-26 08:27:43 -05:00
|
|
|
self.visit_website = help.Append(-1, _(u"{0}'s &website").format(application.name,))
|
|
|
|
self.about = help.Append(-1, _(u"About &{0}").format(application.name,))
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
# Add all to the menu Bar
|
|
|
|
menuBar.Append(app, _(u"&Application"))
|
|
|
|
menuBar.Append(tweet, _(u"&Tweet"))
|
|
|
|
menuBar.Append(user, _(u"&User"))
|
|
|
|
menuBar.Append(buffer, _(u"&Buffer"))
|
2016-08-10 21:59:19 -05:00
|
|
|
menuBar.Append(audio, _(u"&Audio"))
|
2014-11-12 20:41:29 -06:00
|
|
|
menuBar.Append(help, _(u"&Help"))
|
|
|
|
|
|
|
|
self.accel_tbl = wx.AcceleratorTable([
|
2015-01-01 21:40:57 -06:00
|
|
|
(wx.ACCEL_CTRL, ord('N'), self.compose.GetId()),
|
|
|
|
(wx.ACCEL_CTRL, ord('R'), self.reply.GetId()),
|
|
|
|
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('R'), self.retweet.GetId()),
|
|
|
|
(wx.ACCEL_CTRL, ord('F'), self.fav.GetId()),
|
|
|
|
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('F'), self.unfav.GetId()),
|
|
|
|
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('V'), self.view.GetId()),
|
|
|
|
(wx.ACCEL_CTRL, ord('D'), self.dm.GetId()),
|
|
|
|
|
|
|
|
(wx.ACCEL_CTRL, ord('Q'), self.close.GetId()),
|
|
|
|
(wx.ACCEL_CTRL, ord('S'), self.follow.GetId()),
|
2015-05-08 09:59:52 -04:00
|
|
|
(wx.ACCEL_CTRL, ord('I'), self.timeline.GetId()),
|
2015-01-01 21:40:57 -06:00
|
|
|
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('I'), self.deleteTl.GetId()),
|
|
|
|
(wx.ACCEL_CTRL, ord('M'), self.show_hide.GetId()),
|
2016-08-10 21:59:19 -05:00
|
|
|
(wx.ACCEL_CTRL, wx.WXK_LEFT, self.seekLeft.GetId()),
|
2015-01-01 21:40:57 -06:00
|
|
|
(wx.ACCEL_CTRL, ord('P'), self.updateProfile.GetId()),
|
2016-08-10 21:59:19 -05:00
|
|
|
(wx.ACCEL_CTRL, wx.WXK_RIGHT, self.seekRight.GetId()),
|
|
|
|
(wx.ACCEL_CTRL, ord(' '), self.seekLeft.GetId()),
|
2014-11-12 20:41:29 -06:00
|
|
|
])
|
|
|
|
|
|
|
|
self.SetAcceleratorTable(self.accel_tbl)
|
|
|
|
return menuBar
|
|
|
|
|
|
|
|
### MAIN
|
2015-01-01 21:40:57 -06:00
|
|
|
def __init__(self):
|
2014-11-12 20:41:29 -06:00
|
|
|
""" Main function of this class."""
|
2015-04-17 15:49:35 -04:00
|
|
|
super(mainFrame, self).__init__(None, -1, application.name, size=(1600, 1600))
|
2014-11-12 20:41:29 -06:00
|
|
|
self.panel = wx.Panel(self)
|
|
|
|
self.sizer = wx.BoxSizer(wx.VERTICAL)
|
2015-04-17 15:49:35 -04:00
|
|
|
self.SetTitle(application.name)
|
2014-11-12 20:41:29 -06:00
|
|
|
self.SetMenuBar(self.makeMenus())
|
|
|
|
self.nb = wx.Treebook(self.panel, wx.NewId())
|
|
|
|
self.buffers = {}
|
|
|
|
|
2015-01-19 12:15:57 -06:00
|
|
|
def get_buffer_count(self):
|
|
|
|
return self.nb.GetPageCount()
|
|
|
|
|
2014-11-12 20:41:29 -06:00
|
|
|
def add_buffer(self, buffer, name):
|
|
|
|
self.nb.AddPage(buffer, name)
|
|
|
|
self.buffers[name] = buffer.GetId()
|
|
|
|
|
|
|
|
def insert_buffer(self, buffer, name, pos):
|
|
|
|
self.nb.InsertSubPage(pos, buffer, name)
|
|
|
|
self.buffers[name] = buffer.GetId()
|
2015-04-03 16:57:08 -06:00
|
|
|
|
2014-11-12 20:41:29 -06:00
|
|
|
def prepare(self):
|
|
|
|
self.sizer.Add(self.nb, 0, wx.ALL, 5)
|
|
|
|
self.panel.SetSizer(self.sizer)
|
2015-03-18 11:45:39 -06:00
|
|
|
# self.Maximize()
|
|
|
|
self.sizer.Layout()
|
2014-11-12 20:41:29 -06:00
|
|
|
self.SetClientSize(self.sizer.CalcMin())
|
2015-03-20 17:04:39 -06:00
|
|
|
# print self.GetSize()
|
|
|
|
|
2015-08-08 09:42:55 -05:00
|
|
|
def get_buffers(self):
|
|
|
|
return [self.nb.GetPage(i) for i in range(0, self.nb.GetPageCount())]
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
def search(self, name_, account):
|
|
|
|
for i in range(0, self.nb.GetPageCount()):
|
|
|
|
if self.nb.GetPage(i).name == name_ and self.nb.GetPage(i).account == account: return i
|
|
|
|
|
|
|
|
def get_current_buffer(self):
|
|
|
|
return self.nb.GetCurrentPage()
|
|
|
|
|
2015-01-19 12:15:57 -06:00
|
|
|
def get_current_buffer_pos(self):
|
|
|
|
return self.nb.GetSelection()
|
|
|
|
|
2014-11-12 20:41:29 -06:00
|
|
|
def get_buffer(self, pos):
|
|
|
|
return self.GetPage(pos)
|
|
|
|
|
2015-01-19 12:15:57 -06:00
|
|
|
def change_buffer(self, position):
|
|
|
|
self.nb.ChangeSelection(position)
|
|
|
|
|
|
|
|
def get_buffer_text(self):
|
|
|
|
return self.nb.GetPageText(self.nb.GetSelection())
|
|
|
|
|
2014-11-12 20:41:29 -06:00
|
|
|
def get_buffer_by_id(self, id):
|
|
|
|
return self.nb.FindWindowById(id)
|
2015-01-19 12:15:57 -06:00
|
|
|
def advance_selection(self, forward):
|
|
|
|
self.nb.AdvanceSelection(forward)
|
2014-11-12 20:41:29 -06:00
|
|
|
|
|
|
|
def show(self):
|
2015-01-20 15:40:33 -06:00
|
|
|
self.Show()
|
|
|
|
|
2015-02-03 05:10:01 -06:00
|
|
|
def show_address(self, address):
|
2015-02-11 16:14:25 -06:00
|
|
|
wx.MessageDialog(self, address, _(u"Address"), wx.OK).ShowModal()
|
|
|
|
|
|
|
|
def delete_buffer(self, pos):
|
2015-02-26 10:26:46 -06:00
|
|
|
self.nb.DeletePage(pos)
|
|
|
|
|
2015-02-26 16:09:26 -06:00
|
|
|
def about_dialog(self):
|
2018-03-14 14:18:11 -06:00
|
|
|
info = wx.adv.AboutDialogInfo()
|
2015-02-26 16:09:26 -06:00
|
|
|
info.SetName(application.name)
|
|
|
|
info.SetVersion(application.version)
|
|
|
|
info.SetDescription(application.description)
|
|
|
|
info.SetCopyright(application.copyright)
|
|
|
|
info.SetTranslators(application.translators)
|
|
|
|
# info.SetLicence(application.licence)
|
2017-01-02 11:47:56 -06:00
|
|
|
for i in application.authors:
|
|
|
|
info.AddDeveloper(i)
|
2018-03-14 14:18:11 -06:00
|
|
|
wx.adv.AboutBox(info)
|
|
|
|
|
2015-03-12 05:17:59 -06:00
|
|
|
def set_focus(self):
|
|
|
|
self.SetFocus()
|
2015-02-26 16:09:26 -06:00
|
|
|
|
2015-03-12 08:31:39 -06:00
|
|
|
def check_menuitem(self, menuitem, check=True):
|
|
|
|
if hasattr(self, menuitem):
|
|
|
|
getattr(self, menuitem).Check(check)
|
|
|
|
|
2017-01-02 10:47:44 -06:00
|
|
|
def set_page_title(self, page, title):
|
|
|
|
return self.nb.SetPageText(page, title)
|
|
|
|
|
|
|
|
def get_page_title(self, page):
|
|
|
|
return self.nb.GetPageText(page)
|
|
|
|
|
2015-02-26 10:26:46 -06:00
|
|
|
def no_update_available():
|
2017-01-28 12:19:58 -05:00
|
|
|
wx.MessageDialog(None, _(u"Your {0} version is up to date").format(application.name,), _(u"Update"), style=wx.OK).ShowModal()
|