Difference between revisions of "Features/New Toolbar Design"

From Sugar Labs
Jump to navigation Jump to search
Line 21: Line 21:
  
 
== Detailed Description ==
 
== Detailed Description ==
''Expand on the summary, if appropriateA couple sentences suffices to explain the goal, but the more details you can provide the better.''
+
 
 +
sugar.graphics.toolbar module consists of 2 widgets:
 +
* ''Toolbar'' main widget which represents toolbar itself
 +
* ''ToolbarButton'' tool button to insert to ''Toolbar'', which could be expanded to sub-widget
 +
 
 +
NOTE: Toolbar was designed to have only one level of sub-widgets.
 +
 
 +
==== Toolbar ====
 +
 
 +
sugar.graphics.toolbar.Toolbar extends gtk.VBox:
 +
* ''top'' property to access to gtk.Toolbar interface
 +
* ''modify_bg'' to modify background color of toolbar itself and all sub-widgets
 +
 
 +
==== ToolbarButton ====
 +
 
 +
sugar.graphics.toolbar.ToolbarButton extends sugar.graphics.toolbutton.ToolButton:
 +
* ''toolbar'' RO property, if parent of button is sugar.graphics.toolbar.Toolbar
 +
* ''page'' RW GObject property, sub-widget to expand
 +
* ''expanded'' RW property, if ''page'' expanded
 +
 
 +
If sugar.graphics.toolbar.Toolbar.palette property wasn't set manually it will contain palette with ''page''.
 +
 
 +
==== Example ====
 +
 
 +
from sugar.graphics.toolbar import Toolbar, ToolbarButton
 +
 +
toolbar = Toolbar()
 +
 +
  tollbarbutton_1 = ToolbarButton(
 +
        page=gtk.Button('sub-widget #1'),
 +
        icon_name='computer-xo')
 +
toolbar.top.insert(tollbarbutton_1, -1)
 +
 +
tollbarbutton_2 = ToolbarButton(
 +
        page=gtk.Button('sub-widget #2'),
 +
        icon_name='button_cancel',
 +
        tooltip='with custom palette instead of sub-widget')
 +
toolbar.top.insert(tollbarbutton_2, -1)
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==

Revision as of 22:21, 11 July 2009


Summary

Implement widgets for Design Team/Designs/Toolbars proposal.

Owner

Current status

  • Targeted release: 0.86
  • Last updated: Fri Jul 10 04:08:43 UTC 2009
  • Percentage of completion: 50%

Detailed Description

sugar.graphics.toolbar module consists of 2 widgets:

  • Toolbar main widget which represents toolbar itself
  • ToolbarButton tool button to insert to Toolbar, which could be expanded to sub-widget

NOTE: Toolbar was designed to have only one level of sub-widgets.

Toolbar

sugar.graphics.toolbar.Toolbar extends gtk.VBox:

  • top property to access to gtk.Toolbar interface
  • modify_bg to modify background color of toolbar itself and all sub-widgets

ToolbarButton

sugar.graphics.toolbar.ToolbarButton extends sugar.graphics.toolbutton.ToolButton:

  • toolbar RO property, if parent of button is sugar.graphics.toolbar.Toolbar
  • page RW GObject property, sub-widget to expand
  • expanded RW property, if page expanded

If sugar.graphics.toolbar.Toolbar.palette property wasn't set manually it will contain palette with page.

Example

from sugar.graphics.toolbar import Toolbar, ToolbarButton

toolbar = Toolbar()

tollbarbutton_1 = ToolbarButton(
       page=gtk.Button('sub-widget #1'),
       icon_name='computer-xo')
toolbar.top.insert(tollbarbutton_1, -1)

tollbarbutton_2 = ToolbarButton(
       page=gtk.Button('sub-widget #2'),
       icon_name='button_cancel',
       tooltip='with custom palette instead of sub-widget')
toolbar.top.insert(tollbarbutton_2, -1)

Benefit to Sugar

Make process of switching between toolbars more clear, use tool buttons that are showing all time(in main toolbar) i.e. having Close/Help buttons visible all time could be very useful.

Scope

  • implementation in sugar-toolkit
  • use new toolbars in Journal

How To Test

In progress..

User Experience

If this feature is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice.

Dependencies

  • only sugar-toolkit

Contingency Plan

None necessary, revert to previous release behaviour.

Documentation

Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved.

Release Notes

The Sugar Release Notes inform end-users about what is new in the release. An Example is 0.84/Notes. The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the release team and shipped with the release.

Comments and Discussion

Features Subpages


You can add categories to tie features back to real deployments/schools requesting them, for example [[Category:Features requested by School Xyz]]