Make the frame adapt to screen size again.

Several cleanups.
Fixup makefiles
This commit is contained in:
Marco Pesenti Gritti 2006-09-07 19:51:27 +02:00
parent 5988a89517
commit 7850970f27
8 changed files with 47 additions and 47 deletions

View File

@ -3,8 +3,8 @@ import gobject
import goocanvas import goocanvas
from frame.BottomPanel import BottomPanel from frame.BottomPanel import BottomPanel
from frame.RightPanel import RightPanel #from frame.RightPanel import RightPanel
from frame.TopPanel import TopPanel #from frame.TopPanel import TopPanel
from frame.PanelWindow import PanelWindow from frame.PanelWindow import PanelWindow
from sugar.canvas.ScreenContainer import ScreenContainer from sugar.canvas.ScreenContainer import ScreenContainer
@ -45,15 +45,13 @@ class Frame:
self._screen_container.set_layout(self._screen_layout) self._screen_container.set_layout(self._screen_layout)
def _create_window(self, constraints): def _create_window(self, constraints):
layout = self._screen_layout
window = PanelWindow(self._model) window = PanelWindow(self._model)
layout.set_constraints(window, constraints) self._screen_layout.set_constraints(window, constraints)
self._windows.append(window) self._windows.append(window)
bounds = layout.get_bounds(self._screen_container, constraints) bounds = self._model.get_layout().get_bounds(self._model._root, constraints)
window.get_view().set_bounds(bounds[0], bounds[1], window.scale_to_screen()
bounds[2], bounds[3]) window.set_bounds(constraints)
def __hide_timeout_cb(self): def __hide_timeout_cb(self):
self.hide() self.hide()

View File

@ -2,7 +2,7 @@ sugardir = $(pkgdatadir)/shell/frame
sugar_PYTHON = \ sugar_PYTHON = \
__init__.py \ __init__.py \
RightPanel.py \ RightPanel.py \
Panel.py \ PanelWindow.py \
Frame.py \ Frame.py \
TopPanel.py \ TopPanel.py \
BottomPanel.py BottomPanel.py

View File

@ -1,10 +1,10 @@
import gtk import gtk
from sugar.canvas.CanvasWindow import CanvasWindow from sugar.canvas.GridWindow import GridWindow
class PanelWindow(CanvasWindow): class PanelWindow(GridWindow):
def __init__(self, model): def __init__(self, model):
CanvasWindow.__init__(self, model) GridWindow.__init__(self, model)
self.set_decorated(False) self.set_decorated(False)

View File

@ -1,6 +1,6 @@
import goocanvas import goocanvas
from frame.Panel import Panel from frame.PanelWindow import PanelWindow
from sugar.canvas.IconItem import IconItem from sugar.canvas.IconItem import IconItem
from sugar.canvas.IconColor import IconColor from sugar.canvas.IconColor import IconColor
from sugar.presence import PresenceService from sugar.presence import PresenceService
@ -152,22 +152,3 @@ class ActionsBar(goocanvas.Group):
def __chat_clicked_cb(self, item): def __chat_clicked_cb(self, item):
pass pass
class RightPanel(Panel):
def __init__(self, shell, friends):
Panel.__init__(self)
self._shell = shell
self._friends = friends
def construct(self):
Panel.construct(self)
root = self.get_root()
actions_bar = ActionsBar(self._shell, self.get_width())
root.add_child(actions_bar)
friends_group = FriendsGroup(self._shell, self._friends,
self.get_width())
friends_group.translate(0, 150)
root.add_child(friends_group)

View File

@ -1,14 +0,0 @@
import gtk
import goocanvas
class CanvasWindow(gtk.Window):
def __init__(self, model):
gtk.Window.__init__(self)
self._view = goocanvas.CanvasView()
self._view.set_model(model.get())
self.add(self._view)
self._view.show()
def get_view(self):
return self._view

View File

@ -26,5 +26,11 @@ class GridModel:
def get(self): def get(self):
return self._model return self._model
def get_width(self):
return self._width
def get_bounds(self, constraints):
return self.get_layout().get_bounds(self._root, constraints)
def get_layout(self): def get_layout(self):
return self._root.get_layout() return self._root.get_layout()

View File

@ -0,0 +1,25 @@
import gtk
import goocanvas
class GridWindow(gtk.Window):
def __init__(self, model):
gtk.Window.__init__(self)
self._model = model
self._view = goocanvas.CanvasView()
self._view.set_model(model.get())
self.add(self._view)
self._view.show()
def scale_to_screen(self):
self._view.set_scale(float(gtk.gdk.screen_width()) /
float(self._model.get_width()))
def set_bounds(self, constraints):
bounds = self._model.get_bounds(constraints)
self._view.set_bounds(bounds[0], bounds[1],
bounds[2], bounds[3])
def get_view(self):
return self._view

View File

@ -1,5 +1,9 @@
sugardir = $(pythondir)/sugar/canvas sugardir = $(pythondir)/sugar/canvas
sugar_PYTHON = \ sugar_PYTHON = \
__init__.py \ __init__.py \
GridLayout.py \
GridModel.py \
GridWindow.py \
IconItem.py \ IconItem.py \
IconColor.py IconColor.py \
ScreenContainer.py