From 9e72f8336da77c566fbbe6aad7caf6e79a0aab58 Mon Sep 17 00:00:00 2001
From: mathieui <mathieui@mathieui.net>
Date: Tue, 29 Apr 2014 00:29:54 +0200
Subject: Add the size manager (forgotten in the previous commits)

---
 src/size_manager.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 src/size_manager.py

(limited to 'src')

diff --git a/src/size_manager.py b/src/size_manager.py
new file mode 100644
index 00000000..7e01d5d0
--- /dev/null
+++ b/src/size_manager.py
@@ -0,0 +1,52 @@
+"""
+Size Manager:
+    used to check size boundaries of the whole window and
+    specific tabs
+"""
+from windows import g_lock
+
+THRESHOLD_WIDTH_DEGRADE = 45
+THRESHOLD_HEIGHT_DEGRADE = 10
+
+FULL_WIDTH_DEGRADE = 66
+FULL_HEIGHT_DEGRADE = 10
+
+class SizeManager(object):
+
+    def __init__(self, core, win_cls):
+        self._win_class = win_cls
+        self._core = core
+
+    @property
+    def tab_scr(self):
+        return self._win_class._tab_win
+
+    @property
+    def core_scr(self):
+        return self._core.stdscr
+
+    @property
+    def tab_degrade_x(self):
+        with g_lock:
+            _, x = self.tab_scr.getmaxyx()
+        return x < THRESHOLD_WIDTH_DEGRADE
+
+    @property
+    def tab_degrade_y(self):
+        with g_lock:
+            y, x = self.tab_scr.getmaxyx()
+        return y < THRESHOLD_HEIGHT_DEGRADE
+
+    @property
+    def core_degrade_x(self):
+        with g_lock:
+            y, x = self.core_scr.getmaxyx()
+        return x < FULL_WIDTH_DEGRADE
+
+    @property
+    def core_degrade_y(self):
+        with g_lock:
+            y, x = self.core_scr.getmaxyx()
+        return y < FULL_HEIGHT_DEGRADE
+
+
-- 
cgit v1.2.3