SugarShellRefactoring

From OLPC
Revision as of 19:28, 28 February 2008 by Tomeu (talk | contribs)
Jump to navigation Jump to search

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?)