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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
import goocanvas
from frame.Panel import Panel
from frame.PanelWindow import PanelWindow
from sugar.canvas.IconItem import IconItem
from sugar.canvas.IconColor import IconColor
from sugar.presence import PresenceService
@ -152,22 +152,3 @@ class ActionsBar(goocanvas.Group):
def __chat_clicked_cb(self, item):
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):
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):
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
sugar_PYTHON = \
__init__.py \
GridLayout.py \
GridModel.py \
GridWindow.py \
IconItem.py \
IconColor.py
IconColor.py \
ScreenContainer.py