SugarShellRefactoring

From OLPC
Jump to navigation Jump to search
  This page is monitored by the OLPC team.

Introduction

For Update.2, we intend to reorganize parts of the UI of the home view and the frame.

See Designs/Activity_Management and Designs/Frame for explanation of these changes.

Below is a very loose brainstorm of the action items to perform for Update.2. We need to devote more thinking and discussion so the list "solidifies" a bit.

Action items

Infrastructure

  • Split the library into separate modules. sugar-base, sugar-graphics, sugar-activity.
  • Create personal git repositories.
  • Add sugar.modules to jhbuild upstream and build from there. Document how to setup jhbuild.
  • Switch to matchbox-2 (if it works well enough).
  • Move to goocanvas (?)
  • Make the shell model a singleton accessible from anywhere inside the shell. (?)
  • HTray and VTray inherit from gtk.Box, but store its children in a different structure so many methods in the base class doesn't work. Not sure what we can do here.

Frame

  • Move to gtk only.
  • Add devices to the bottom frame.
  • Add running activities to the top frame.
  • Add clipboard to the left frame.
  • Add zoom levels to the top frame.
  • Add buddies to the right frame.
  • Implement notifications.
  • Implement buddies palette.
  • Implement devices palette.
  • Implement clipboard palette.
  • Implement activity palette.
  • Implement journal palette.
  • Show the frame during activity switching.

Home view

  • Investigate using goocanvas.
  • Implement dynamic activity ring.
  • Implement activity palettes.
  • Implement xo palette.
  • Add toolbar.

Activity list

  • Use goocanvas?
  • Generic list "widget"?

Journal

  • Move the journal into the shell process.

Misc

  • Make the activity registry private to the shell.
  • Get rid of the custom X properties to facilitate porting (startup-notification? icon set by the activity?)