Difference between revisions of "Development Team/Architecture"

From Sugar Labs
Jump to navigation Jump to search
 
(8 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
<noinclude>{{TOCright}}</noinclude>
 
=== Shell description ===
 
=== Shell description ===
  
Line 5: Line 6:
 
   -----------------------------------------------------------------------
 
   -----------------------------------------------------------------------
 
  |              |            |                    |                    |
 
  |              |            |                    |                    |
  |              | Non-python |  Sugar shell      |      Python        |
+
  |              | Non-Python |  Sugar shell      |      Python        |
 
  |              |  Sugar    | (Desktop window,  |        Sugar        |
 
  |              |  Sugar    | (Desktop window,  |        Sugar        |
  |              | Activities  |     panel,       |      Activities    |
+
  |              | Activities  | control panel,   |      Activities    |
  |  Regular    |  (Etoys,    |    journal)      |                    |
+
  |  Regular    |  (Etoys,    |    Journal)      |                    |
 
  |      X      |  Simcity,  |                    |                    |
 
  |      X      |  Simcity,  |                    |                    |
  |    Apps    |   Mono    |------------------------------------------|
+
  |    Apps    |--------------------------------------------------------|
  |              | activities, |        Sugar toolkit (python-only)      |
+
  |              |               Activity Libraries                      |
  |              |   etc.)   |                                          |
+
  |              |             (Python and others)                       |
 
  |              |--------------------------------------------------------|
 
  |              |--------------------------------------------------------|
 
  |              |        DataStore        |          Presence          |
 
  |              |        DataStore        |          Presence          |
 
  |              |        service          |          service            |
 
  |              |        service          |          service            |
 
   -----------------------------------------------------------------------
 
   -----------------------------------------------------------------------
  |                        Matchbox window manager                        |
+
  |                        Metacity window manager                        |
|  (considering switching to Metacity for improved compatibility)      |
 
 
   -----------------------------------------------------------------------
 
   -----------------------------------------------------------------------
 
  |                                                                      |
 
  |                                                                      |
Line 27: Line 27:
  
 
=== The Sugar shell ===
 
=== The Sugar shell ===
The sugar shell is divided into the components: frame, desktop window, journal, model, control panel and extensions.  
+
The Sugar shell is divided into the components: Frame, desktop window, Journal, model, control panel and extensions.  
 
==== Frame ====
 
==== Frame ====
The frame is layered on top of the desktop window so you can access it in all the views. It is a group of gtk-windows technically.  
+
The Frame is layered on top of the desktop window so you can access it in all the views. It is a group of gtk-windows technically.  
==== Desktop Window ====
+
==== Desktop window ====
The desktop window itself contains the views: home view, groups view, neighbourhood view.  
+
The desktop window itself contains the views: Home view, Groups view, Neighbourhood view.  
==== The journal ====
+
==== The Journal ====
The journal once was a self contained activity and has been now moved to the shell, to gain memory usage for example. It is still handled like an activity in the sense that it is shown in the frame and can be accessed by tabbing through the list of available activities. There are still ongoing discussion where it belongs to really.  
+
The Journal once was a self contained activity but has been now moved to the shell, to gain memory usage for example. It is still handled like an Activity in the sense that it is shown in the Frame and can be accessed by tabbing through the list of available activities. There are still ongoing discussions about where it really belongs.  
 
==== The control panel ====
 
==== The control panel ====
The control panel is an alert which is modal to the desktop window, so while up you can still access open activities.  
+
The control panel (My Settings) is an alert which is modal to the desktop window, so while up you can still access open activities.  
 
==== Extensions ====
 
==== Extensions ====
You can change/extend the functionality of the shell by providing different control panel modules, key bindings and device icons in the frame. Those are loaded dynamically.
+
You can change/extend the functionality of the shell by providing different control panel modules, key bindings and device icons in the Frame. Those are loaded dynamically.
 +
 
 +
 
 +
==== Examples ====
 +
Sugar architecture is mostly based in other previous ones like:
 +
 
 +
* [http://linuxdevices.com/files/misc/intel_mid_arch.gif] (from http://www.linuxdevices.com/news/NS6616313390.html)
 +
*http://www.gnome.org/mobile/

Latest revision as of 20:33, 23 February 2010

Shell description

Diagram

 -----------------------------------------------------------------------
|              |             |                    |                     |
|              | Non-Python  |   Sugar shell      |       Python        |
|              |   Sugar     | (Desktop window,   |        Sugar        |
|              | Activities  |  control panel,    |      Activities     |
|   Regular    |  (Etoys,    |     Journal)       |                     |
|      X       |  Simcity,   |                    |                     |
|     Apps     |--------------------------------------------------------|
|              |               Activity Libraries                       |
|              |              (Python and others)                       |
|              |--------------------------------------------------------|
|              |        DataStore         |          Presence           |
|              |         service          |          service            |
 -----------------------------------------------------------------------
|                        Metacity window manager                        |
 -----------------------------------------------------------------------
|                                                                       |
|                    GNOME-ish Linux desktop                            |
|    X11, HAL, D-Bus, NetworkManager, GConf, Telepathy, etc             |
|                                                                       |
 -----------------------------------------------------------------------

The Sugar shell

The Sugar shell is divided into the components: Frame, desktop window, Journal, model, control panel and extensions.

Frame

The Frame is layered on top of the desktop window so you can access it in all the views. It is a group of gtk-windows technically.

Desktop window

The desktop window itself contains the views: Home view, Groups view, Neighbourhood view.

The Journal

The Journal once was a self contained activity but has been now moved to the shell, to gain memory usage for example. It is still handled like an Activity in the sense that it is shown in the Frame and can be accessed by tabbing through the list of available activities. There are still ongoing discussions about where it really belongs.

The control panel

The control panel (My Settings) is an alert which is modal to the desktop window, so while up you can still access open activities.

Extensions

You can change/extend the functionality of the shell by providing different control panel modules, key bindings and device icons in the Frame. Those are loaded dynamically.


Examples

Sugar architecture is mostly based in other previous ones like: