[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [nyx/master] Replace subwindow box() requests with draw_box()
commit 36740e39556fcbcda9e93a064aec684936f0b6cc
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date: Sun Mar 20 13:43:40 2016 -0700
Replace subwindow box() requests with draw_box()
We have a helper function for drawing boxes so using that rather than drawing
directly to our subwindow...
https://docs.python.org/2/library/curses.html#curses.window.box
We want to drop all direct subwindow usage so this gets us one step closer.
---
nyx/panel/__init__.py | 11 ++++++++++-
nyx/panel/config.py | 4 +++-
nyx/panel/log.py | 2 +-
nyx/popups.py | 12 ++++++------
4 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py
index d4c7171..70c577d 100644
--- a/nyx/panel/__init__.py
+++ b/nyx/panel/__init__.py
@@ -634,7 +634,7 @@ class Panel(object):
return recreate
- def draw_box(self, top, left, width, height, *attributes):
+ def draw_box(self, top = 0, left = 0, width = -1, height = -1, *attributes):
"""
Draws a box in the panel with the given bounds.
@@ -646,6 +646,15 @@ class Panel(object):
attr - text attributes
"""
+ if width == -1 or height == -1:
+ panel_height, panel_width = self.get_preferred_size()
+
+ if width == -1:
+ width = panel_width - left
+
+ if height == -1:
+ height = panel_height - top
+
# draws the top and bottom
self.hline(top, left + 1, width - 2, *attributes)
diff --git a/nyx/panel/config.py b/nyx/panel/config.py
index 8b759c5..2ad6f8f 100644
--- a/nyx/panel/config.py
+++ b/nyx/panel/config.py
@@ -209,7 +209,7 @@ class ConfigPanel(nyx.panel.Panel):
x = popup.addstr(height - 2, x, option, BOLD, HIGHLIGHT if i == selection else NORMAL)
x = popup.addstr(height - 2, x, '] ')
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, 'Torrc to save:', HIGHLIGHT)
popup.win.refresh()
@@ -231,6 +231,8 @@ class ConfigPanel(nyx.panel.Panel):
elif key.match('esc'):
break # esc - cancel
+ self.redraw(True)
+
def handle_key(self, key):
if key.is_scroll():
page_height = self.get_preferred_size()[0] - DETAILS_HEIGHT
diff --git a/nyx/panel/log.py b/nyx/panel/log.py
index 498651b..094ad06 100644
--- a/nyx/panel/log.py
+++ b/nyx/panel/log.py
@@ -144,7 +144,7 @@ class LogPanel(nyx.panel.Panel, threading.Thread):
if popup:
# displays the available flags
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, 'Event Types:', HIGHLIGHT)
event_lines = CONFIG['msg.misc.event_types'].split('\n')
diff --git a/nyx/popups.py b/nyx/popups.py
index de83e7c..bf40e4c 100644
--- a/nyx/popups.py
+++ b/nyx/popups.py
@@ -141,7 +141,7 @@ def show_help_popup():
# test doing afterward in case of overwriting
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, 'Page %i Commands:' % (control.get_page() + 1), HIGHLIGHT)
for i in range(len(help_options)):
@@ -192,7 +192,7 @@ def show_about_popup():
with popup_window(9, 80) as (popup, _, height):
if popup:
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, 'About:', HIGHLIGHT)
popup.addstr(1, 2, 'nyx, version %s (released %s)' % (__version__, __release_date__), BOLD)
popup.addstr(2, 4, 'Written by Damian Johnson (atagar@xxxxxxxxxxxxxx)')
@@ -244,7 +244,7 @@ def show_count_dialog(title, counts):
popup.addstr(height - 2, 2, 'Press any key...')
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, title, HIGHLIGHT)
popup.win.refresh()
@@ -281,7 +281,7 @@ def show_sort_dialog(title, options, old_selection, option_colors):
while len(new_selections) < len(old_selection):
popup.win.erase()
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, title, HIGHLIGHT)
_draw_sort_selection(popup, 1, 2, 'Current Order: ', old_selection, option_colors)
@@ -387,7 +387,7 @@ def show_menu(title, options, old_selection):
while True:
popup.win.erase()
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, title, HIGHLIGHT)
for i in range(len(options)):
@@ -548,6 +548,6 @@ def _draw(popup, title, lines, entry_color, scroll, show_line_numbers):
if y > height:
break
- popup.win.box()
+ popup.draw_box()
popup.addstr(0, 0, title, HIGHLIGHT)
popup.win.refresh()
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits