diff options
author | Santiago Collazo <scollazo@activitycentral.com> | 2013-02-26 05:40:04 (GMT) |
---|---|---|
committer | Santiago Collazo <scollazo@activitycentral.com> | 2013-02-26 05:40:04 (GMT) |
commit | fb78deebfd5b8a9a4143d8c7ddde557118d8e103 (patch) | |
tree | d0876fc3447ce5135ac2163e98f138d31b6629b8 | |
parent | 29d32189c7d6d862f77ab367a58de617e10a0162 (diff) | |
parent | af580ced171c3b8badf178091286fdf22bbd549a (diff) |
Merge remote-tracking branch 'ajay/0.97.7-as-base' into devel
-rw-r--r-- | src/jarabe/controlpanel/gui.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py index 6b0f240..0a53a60 100644 --- a/src/jarabe/controlpanel/gui.py +++ b/src/jarabe/controlpanel/gui.py @@ -16,6 +16,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import os +from math import ceil import logging from gettext import gettext as _ @@ -43,14 +44,8 @@ class ControlPanel(Gtk.Window): def __init__(self): Gtk.Window.__init__(self) - self._max_columns = int(0.285 * (float(Gdk.Screen.width()) / - style.GRID_CELL_SIZE - 3)) - + self._calculate_max_columns() self.set_border_width(style.LINE_WIDTH) - offset = style.GRID_CELL_SIZE - width = Gdk.Screen.width() - offset * 2 - height = Gdk.Screen.height() - offset * 2 - self.set_size_request(width, height) self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) self.set_decorated(False) self.set_resizable(False) @@ -89,15 +84,30 @@ class ControlPanel(Gtk.Window): self._setup_main() self._setup_section() self._show_main_view() + Gdk.Screen.get_default().connect('size-changed', self.__size_changed_cb) def __realize_cb(self, widget): self.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.get_window().set_accept_focus(True) + def __size_changed_cb(self, event): + self._calculate_max_columns() + def grab_focus(self): # overwrite grab focus in order to grab focus on the view self._main_view.get_child().grab_focus() + def _calculate_max_columns(self): + self._max_columns = int(0.285 * (float(Gdk.Screen.width()) / + style.GRID_CELL_SIZE - 3)) + offset = style.GRID_CELL_SIZE + width = Gdk.Screen.width() - offset * 2 + height = Gdk.Screen.height() - offset * 2 + self.set_size_request(width, height) + if hasattr(self, '_table'): + rows = int(ceil(len(self._options.keys()) / self._max_columns)) + self._table.resize(rows, self._max_columns) + def _set_canvas(self, canvas): if self._canvas: self._main_view.remove(self._canvas) |