User:Alsroot/trash/Frame Panels: Difference between revisions
Line 20: | Line 20: | ||
== Detailed Description == | == Detailed Description == | ||
==== UI modes ==== | ==== UI modes ==== | ||
Line 35: | Line 33: | ||
So, we could have plugins for different purposes i.e. Journal plugin could be very common/simple but something like plugin for Books/Video/etc can have some special UI features(that look redundant in Journal plugin). | So, we could have plugins for different purposes i.e. Journal plugin could be very common/simple but something like plugin for Books/Video/etc can have some special UI features(that look redundant in Journal plugin). | ||
For sugar-0. | For sugar-0.88+, Journal will load all installed plugins and provide possibility to switch between them, for <0.88 plugins will be formed in separated activities. | ||
For sugar-0. | For sugar-0.88+, Journal plugin will be packaged with sugar, other plugins could be packaged into activities and have separate code base. In 0.88+ environment, these activities will use plugins engine from current sugar, for <0.88 environments(and for 0.88+ glucose releases when plugin uses newer engine), plugins engine will be packaged into activity bundles. | ||
'''NOTE''' Separate activities is not a task for this feature proposal. | '''NOTE''' Separate activities is not a task for this feature proposal. | ||
Line 44: | Line 42: | ||
Browser provides backwards compatible and versioned plugins engine API: | Browser provides backwards compatible and versioned plugins engine API: | ||
* ''v0'' engine for glucose-0.82/0.84 | * ''v0'' engine for glucose-0.82/0.84/0.86 | ||
* ''v1'' engine for glucose-0. | * ''v1'' engine for glucose-0.88(+) | ||
Engine provides all necessary functionality for plugins: | Engine provides all necessary functionality for plugins: | ||
* TreeViewModel as a source of objects; so, all pulugins should use TreeViewModel for list widgets | * TreeViewModel as a source of objects; so, all pulugins should use TreeViewModel for list widgets | ||
** for local objects(rich client for <0. | ** for local objects(rich client for <0.88 and thin client for >=0.88) | ||
** for remote p2p objects | ** for remote p2p objects | ||
** for remote server objects | ** for remote server objects |