rename again buffers→windows and Alt+←→ to switch tabs

parent a1c4b35b
...@@ -133,10 +133,12 @@ class Core(object): ...@@ -133,10 +133,12 @@ class Core(object):
"KEY_NPAGE": self.scroll_page_down, "KEY_NPAGE": self.scroll_page_down,
"KEY_F(5)": self.rotate_rooms_left, "KEY_F(5)": self.rotate_rooms_left,
"^P": self.rotate_rooms_left, "^P": self.rotate_rooms_left,
'kLFT3': self.rotate_rooms_left,
"KEY_F(6)": self.rotate_rooms_right, "KEY_F(6)": self.rotate_rooms_right,
"^N": self.rotate_rooms_right,
'kRIT3': self.rotate_rooms_right,
"KEY_F(7)": self.shrink_information_win, "KEY_F(7)": self.shrink_information_win,
"KEY_F(8)": self.grow_information_win, "KEY_F(8)": self.grow_information_win,
"^N": self.rotate_rooms_right,
"KEY_RESIZE": self.call_for_resize, "KEY_RESIZE": self.call_for_resize,
'M-e': self.go_to_important_room, 'M-e': self.go_to_important_room,
'M-r': self.go_to_roster, 'M-r': self.go_to_roster,
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
# along with Poezio. If not, see <http://www.gnu.org/licenses/>. # along with Poezio. If not, see <http://www.gnu.org/licenses/>.
""" """
a Tab object is a way to organize various Buffers (see buffers.py) a Tab object is a way to organize various Windows (see windows.py)
around the screen at once. around the screen at once.
A tab is then composed of multiple Buffer. A tab is then composed of multiple Buffer.
Each Tab object has different refresh() and resize() methods, defining how its Each Tab object has different refresh() and resize() methods, defining how its
...@@ -28,7 +28,7 @@ MIN_HEIGHT = 16 ...@@ -28,7 +28,7 @@ MIN_HEIGHT = 16
import logging import logging
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
import buffers import windows
import theme import theme
import curses import curses
import difflib import difflib
...@@ -145,9 +145,9 @@ class InfoTab(Tab): ...@@ -145,9 +145,9 @@ class InfoTab(Tab):
""" """
def __init__(self, core, name): def __init__(self, core, name):
Tab.__init__(self, core) Tab.__init__(self, core)
self.tab_win = buffers.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible) self.tab_win = windows.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible)
self.text_win = buffers.TextWin(self.height-2, self.width, 0, 0, self.core.stdscr, self.visible) self.text_win = windows.TextWin(self.height-2, self.width, 0, 0, self.core.stdscr, self.visible)
self.input = buffers.Input(1, self.width, self.height-1, 0, self.core.stdscr, self.visible) self.input = windows.Input(1, self.width, self.height-1, 0, self.core.stdscr, self.visible)
self.name = name self.name = name
self.color_state = theme.COLOR_TAB_NORMAL self.color_state = theme.COLOR_TAB_NORMAL
...@@ -196,6 +196,10 @@ class InfoTab(Tab): ...@@ -196,6 +196,10 @@ class InfoTab(Tab):
def on_close(self): def on_close(self):
return return
class ChatTab(Tab):
"""
"""
class MucTab(Tab): class MucTab(Tab):
""" """
The tab containing a multi-user-chat room. The tab containing a multi-user-chat room.
...@@ -204,14 +208,14 @@ class MucTab(Tab): ...@@ -204,14 +208,14 @@ class MucTab(Tab):
def __init__(self, core, room): def __init__(self, core, room):
Tab.__init__(self, core) Tab.__init__(self, core)
self._room = room self._room = room
self.topic_win = buffers.Topic(1, self.width, 0, 0, self.core.stdscr, self.visible) self.topic_win = windows.Topic(1, self.width, 0, 0, self.core.stdscr, self.visible)
self.text_win = buffers.TextWin(self.height-4-self.core.information_win_size, (self.width//10)*9, 1, 0, self.core.stdscr, self.visible) self.text_win = windows.TextWin(self.height-4-self.core.information_win_size, (self.width//10)*9, 1, 0, self.core.stdscr, self.visible)
self.v_separator = buffers.VerticalSeparator(self.height-3, 1, 1, 9*(self.width//10), self.core.stdscr, self.visible) self.v_separator = windows.VerticalSeparator(self.height-3, 1, 1, 9*(self.width//10), self.core.stdscr, self.visible)
self.user_win = buffers.UserList(self.height-3, (self.width//10), 1, 9*(self.width//10)+1, self.core.stdscr, self.visible) self.user_win = windows.UserList(self.height-3, (self.width//10), 1, 9*(self.width//10)+1, self.core.stdscr, self.visible)
self.info_header = buffers.MucInfoWin(1, (self.width//10)*9, self.height-3-self.core.information_win_size, 0, self.core.stdscr, self.visible) self.info_header = windows.MucInfoWin(1, (self.width//10)*9, self.height-3-self.core.information_win_size, 0, self.core.stdscr, self.visible)
self.info_win = buffers.TextWin(self.core.information_win_size, (self.width//10)*9, self.height-2-self.core.information_win_size, 0, self.core.stdscr, self.visible) self.info_win = windows.TextWin(self.core.information_win_size, (self.width//10)*9, self.height-2-self.core.information_win_size, 0, self.core.stdscr, self.visible)
self.tab_win = buffers.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible) self.tab_win = windows.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible)
self.input = buffers.MessageInput(1, self.width, self.height-1, 0, self.core.stdscr, self.visible) self.input = windows.MessageInput(1, self.width, self.height-1, 0, self.core.stdscr, self.visible)
def resize(self): def resize(self):
""" """
...@@ -330,11 +334,11 @@ class PrivateTab(Tab): ...@@ -330,11 +334,11 @@ class PrivateTab(Tab):
def __init__(self, core, room): def __init__(self, core, room):
Tab.__init__(self, core) Tab.__init__(self, core)
self._room = room self._room = room
self.text_win = buffers.TextWin(self.height-3-self.core.information_win_size, self.width, 0, 0, self.core.stdscr, self.visible) self.text_win = windows.TextWin(self.height-3-self.core.information_win_size, self.width, 0, 0, self.core.stdscr, self.visible)
self.info_header = buffers.PrivateInfoWin(1, self.width, self.height-3-self.core.information_win_size, 0, self.core.stdscr, self.visible) self.info_header = windows.PrivateInfoWin(1, self.width, self.height-3-self.core.information_win_size, 0, self.core.stdscr, self.visible)
self.info_win = buffers.TextWin(self.core.information_win_size, self.width, self.height-2-self.core.information_win_size, 0, self.core.stdscr, self.visible) self.info_win = windows.TextWin(self.core.information_win_size, self.width, self.height-2-self.core.information_win_size, 0, self.core.stdscr, self.visible)
self.tab_win = buffers.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible) self.tab_win = windows.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible)
self.input = buffers.MessageInput(1, self.width, self.height-1, 0, self.core.stdscr, self.visible) self.input = windows.MessageInput(1, self.width, self.height-1, 0, self.core.stdscr, self.visible)
def resize(self): def resize(self):
Tab.resize(self) Tab.resize(self)
...@@ -418,12 +422,12 @@ class RosterInfoTab(Tab): ...@@ -418,12 +422,12 @@ class RosterInfoTab(Tab):
self.name = "Roster" self.name = "Roster"
roster_width = self.width//2 roster_width = self.width//2
info_width = self.width-roster_width-1 info_width = self.width-roster_width-1
self.v_separator = buffers.VerticalSeparator(self.height-2, 1, 0, roster_width, self.core.stdscr, self.visible) self.v_separator = windows.VerticalSeparator(self.height-2, 1, 0, roster_width, self.core.stdscr, self.visible)
self.tab_win = buffers.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible) self.tab_win = windows.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible)
self.info_win = buffers.TextWin(self.height-2, info_width, 0, roster_width+1, self.core.stdscr, self.visible) self.info_win = windows.TextWin(self.height-2, info_width, 0, roster_width+1, self.core.stdscr, self.visible)
self.roster_win = buffers.RosterWin(self.height-2-3, roster_width, 0, 0, self.core.stdscr, self.visible) self.roster_win = windows.RosterWin(self.height-2-3, roster_width, 0, 0, self.core.stdscr, self.visible)
self.contact_info_win = buffers.ContactInfoWin(3, roster_width, self.height-2-3, 0, self.core.stdscr, self.visible) self.contact_info_win = windows.ContactInfoWin(3, roster_width, self.height-2-3, 0, self.core.stdscr, self.visible)
self.default_help_message = buffers.HelpText(1, self.width, self.height-1, 0, self.core.stdscr, self.visible, "Enter commands with “/”. “o”: toggle offline show") self.default_help_message = windows.HelpText(1, self.width, self.height-1, 0, self.core.stdscr, self.visible, "Enter commands with “/”. “o”: toggle offline show")
self.input = self.default_help_message self.input = self.default_help_message
self.set_color_state(theme.COLOR_TAB_NORMAL) self.set_color_state(theme.COLOR_TAB_NORMAL)
...@@ -489,7 +493,7 @@ class RosterInfoTab(Tab): ...@@ -489,7 +493,7 @@ class RosterInfoTab(Tab):
'/' is pressed, we enter "input mode" '/' is pressed, we enter "input mode"
""" """
curses.curs_set(1) curses.curs_set(1)
self.input = buffers.CommandInput(1, self.width, self.height-1, 0, self.default_help_message, self.visible, "", self.reset_help_message, self.execute_slash_command) self.input = windows.CommandInput(1, self.width, self.height-1, 0, self.default_help_message, self.visible, "", self.reset_help_message, self.execute_slash_command)
self.input.do_command("/") # we add the slash self.input.do_command("/") # we add the slash
def reset_help_message(self, _=None): def reset_help_message(self, _=None):
...@@ -549,7 +553,7 @@ class RosterInfoTab(Tab): ...@@ -549,7 +553,7 @@ class RosterInfoTab(Tab):
in it. in it.
""" """
curses.curs_set(1) curses.curs_set(1)
self.input = buffers.CommandInput(1, self.width, self.height-1, 0, self.default_help_message, self.visible, "[Search]", self.on_search_terminate, self.on_search_terminate, self.set_roster_filter) self.input = windows.CommandInput(1, self.width, self.height-1, 0, self.default_help_message, self.visible, "[Search]", self.on_search_terminate, self.on_search_terminate, self.set_roster_filter)
return True return True
def set_roster_filter(self, txt): def set_roster_filter(self, txt):
...@@ -576,12 +580,12 @@ class ConversationTab(Tab): ...@@ -576,12 +580,12 @@ class ConversationTab(Tab):
self._text_buffer = text_buffer self._text_buffer = text_buffer
self.color_state = theme.COLOR_TAB_NORMAL self.color_state = theme.COLOR_TAB_NORMAL
self._name = jid # a conversation tab is linked to one specific full jid OR bare jid self._name = jid # a conversation tab is linked to one specific full jid OR bare jid
self.text_win = buffers.TextWin(self.height-4-self.core.information_win_size, self.width, 1, 0, self.core.stdscr, self.visible) self.text_win = windows.TextWin(self.height-4-self.core.information_win_size, self.width, 1, 0, self.core.stdscr, self.visible)
self.upper_bar = buffers.ConversationStatusMessageWin(1, self.width, 0, 0, self.core.stdscr, self.visible) self.upper_bar = windows.ConversationStatusMessageWin(1, self.width, 0, 0, self.core.stdscr, self.visible)
self.info_header = buffers.ConversationInfoWin(1, self.width, self.height-3-self.core.information_win_size, 0, self.core.stdscr, self.visible) self.info_header = windows.ConversationInfoWin(1, self.width, self.height-3-self.core.information_win_size, 0, self.core.stdscr, self.visible)
self.info_win = buffers.TextWin(self.core.information_win_size, self.width, self.height-2-self.core.information_win_size, 0, self.core.stdscr, self.visible) self.info_win = windows.TextWin(self.core.information_win_size, self.width, self.height-2-self.core.information_win_size, 0, self.core.stdscr, self.visible)
self.tab_win = buffers.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible) self.tab_win = windows.GlobalInfoBar(1, self.width, self.height-2, 0, self.core.stdscr, self.visible)
self.input = buffers.MessageInput(1, self.width, self.height-1, 0, self.core.stdscr, self.visible) self.input = windows.MessageInput(1, self.width, self.height-1, 0, self.core.stdscr, self.visible)
def resize(self): def resize(self):
Tab.resize(self) Tab.resize(self)
......
...@@ -15,11 +15,10 @@ ...@@ -15,11 +15,10 @@
# along with Poezio. If not, see <http://www.gnu.org/licenses/>. # along with Poezio. If not, see <http://www.gnu.org/licenses/>.
""" """
Define all the buffers. Define all the windows.
A buffer is a little part of the screen, for example the input buffer, A window is a little part of the screen, for example the input window,
the text bufferr, the roster buffer, etc. the text window, the roster window, etc.
A Tab (see tab.py) is composed of multiple Buffers A Tab (see tab.py) is composed of multiple Windows
A buffer can also be called Window, even if it's not prefered.
""" """
from gettext import (bindtextdomain, textdomain, bind_textdomain_codeset, from gettext import (bindtextdomain, textdomain, bind_textdomain_codeset,
...@@ -608,7 +607,7 @@ class TextWin(Win): ...@@ -608,7 +607,7 @@ class TextWin(Win):
class HelpText(Win): class HelpText(Win):
""" """
A buffer just displaying a read-only message. A Window just displaying a read-only message.
Usually used to replace an Input when the tab is in Usually used to replace an Input when the tab is in
command mode. command mode.
""" """
...@@ -990,6 +989,7 @@ class MessageInput(Input): ...@@ -990,6 +989,7 @@ class MessageInput(Input):
def __init__(self, height, width, y, x, stdscr, visible): def __init__(self, height, width, y, x, stdscr, visible):
Input.__init__(self, height, width, y, x, stdscr, visible) Input.__init__(self, height, width, y, x, stdscr, visible)
self.last_completion = None
self.histo_pos = 0 self.histo_pos = 0
self.key_func["KEY_UP"] = self.key_up self.key_func["KEY_UP"] = self.key_up
self.key_func["M-A"] = self.key_up self.key_func["M-A"] = self.key_up
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment