Projects/Plasma/Architecture: Difference between revisions

From KDE TechBase
(→‎Containment: add link to Aaron's blog post about containments)
(Grammar beautification.)
 
Line 1: Line 1:
===Plasmoids===
===Plasmoids===


Plasmoids are applets that can be added to any containment like a panel or the desktop.
Plasmoids are applets that can be added to any containment, such as a panel or a desktop.


====Applet====
====Applet====


Applets are compared to DataEngines the visible part of Plasmoids. They provide something the user sees and is able to interact with.
Applets are the visible part of Plasmoids and are related to DataEngines. They provide a visual and interactive interface to the user.


For one DataEngine there may multiple applets that present the data in different ways. As example there may a analog and a digital clock that both, while looking different, are showing one thing: Time.
For each DataEngine, there may be multiple applets that present the data in different ways; for example, an analog clock and a digital clock, while looking different, both display the same data: Time.


====DataEngine====
====DataEngine====


DataEngines are compared to Applets the invisible part of Plasmoids. They are the data source and are information providers.
DataEngines are an invisible part of Plasmoids. They serve as a data source and provide information that Applets may use.


As example there exist only one DataEngine for the current time which can then be used by multiple clock applets to show the time.
Multiple applets may use a single DataEngine as their data source; for example, there exists only one DataEngine for the current time, which can then be used by multiple clock applets to show the time.


So to have a Clock Plasmoid:
So to have a Clock Plasmoid:
Line 21: Line 21:
===Containment===
===Containment===


[http://aseigo.blogspot.com/2008/03/power-of-containments.html Containments] are containers that allow to group elements.
[http://aseigo.blogspot.com/2008/03/power-of-containments.html Containments] are containers that allow grouping of elements.


====Panel====
====Panel====


The panel displayed per default at the bottom of the desktop is a container for various Plasmoids like the application launcher startmenu, a list of tasks, a desktop-switcher or a clock applet.
The Panel, normally displayed at the bottom of the Desktop as a taskbar, is a container for various Plasmoids like the Application Launcher Menu that provides an interface to launch installed applications; the Task Manager that lists the running applications; the Pager that allows switching of the active Desktop; clock applets, etc.


What elements are in the panel is configurable. That means, that a user can add more Plasmoids to the panel or remove existing ones. the panel itself is also configurable, although the ui for this isn't done.
The list of items contained in the in the panel is configurable and a user can add or remove Plasmoids to the panel. The panel itself is also configurable.


Compared to an Plasmoid the panel, while being itself an applet, can contain also other applets.
Compared to a Plasmoid, the Panel, while also being an applet, can contain other applets.


====Desktop====
====Desktop====


The desktop itself is also a containment. The default desktop, that will show up if you start KDE4, just contains icon applets.
The Desktop is a containment that can be used to contain Plasmoids, Panels etc. The default Desktop, that is displayed on startup of KDE4, normally contains icon applets.


The user may have multiple desktop containments with different applets in each. So, there is no longer "the desktop" but it's just a containment.
Multiple desktop containments can coexist, each containing different applets. Since a Desktop is just a Container, there is no longer a special "Desktop" as there was in KDE3.


One example is the default desktop someone sees if KDE4 got started. Other examples are different desktops for different monitors, another one for tv-out, one for small devices aka small form factors, one for presentation, etc.
Examples of desktops include the aforementioned default Desktop that appears on startup of KDE4; different desktop containers displaying the output of multiple monitors; a TV-out desktop; a desktop configured to display the output of small devices or small form factors; a presentation desktop, etc.


===Runner===
===Runner===


Runners are task-orientated plugins that allow to help the user to solve one special task. They try to guess what you or a program that uses them, tries to achieve with some input provided. Think of them as your friendly agent that tries to help you to find the solution for something.
Runners are task-orientated plugins that allow the user to complete one special task. They try to guess what you or a program that uses them, tries to achieve with some input provided. Think of them as your friendly agent that tries to help you to find the solution for something.


An example here is the dialog you are able to see if you press ALT+F2. Those dialog is not only a fast way to start your favorite application, but also allows to do calculations, to search for bookmarks or to execute shell commands.
An example is the KRunner dialog (ALT+F2). This dialog not only serves as a quick way to launch your favorite application, but it also allows the user to perform simple mathematical calculations, search for bookmarks or execute shell commands.


===User Interface===
===User Interface===


Compared to the desktop, the user interface is what the user sees all the time. This may as example a desktop, multiple of them or just parts like a special area selected before.
Compared to the Desktop, the user interface is what the user sees all the time. This may be a desktop or multiple of them, or just parts of the desktop--like a special area that has been selected.


An example here is the [[Projects/Plasma/ZUI|Zooming User Interface]] that allows to go beyond the desktop as one full screen area.
An example here is the [[Projects/Plasma/ZUI|Zooming User Interface]] that allows the user to view a larger area beyond the current desktop, as one full screen area.  This may be useful if you need to view multiple desktops simultaneously for easy selection.


===ScriptEngine===
===ScriptEngine===


The ScriptEngine does provide an interface to integrate scripting plugins.
The ScriptEngine provides an interface to integrate scripting plugins.  Such scripting plugins can be attached to any applet to extend the functionality via a scripting language. Applets, DataEngines and Runner can be written using your favorite scripting language.


Such scripting plugins can be attached to any applet to extend the functionality with something written in a scripting language. Applets, DataEngines and Runner can be written using your favorite scripting language.
Two popular examples of scripting solutions currently supported using this framework are [http://aseigo.blogspot.com/2008/03/plasma-packages.html Apple's Dashboard Widgets] and [http://www.kdedevelopers.org/node/3305 SuperKaramba Themes].
 
Two popular samples for scripting solutions already supported using this framework are [http://aseigo.blogspot.com/2008/03/plasma-packages.html Apple's Dashboard Widgets] and [http://www.kdedevelopers.org/node/3305 SuperKaramba Themes].

Latest revision as of 23:27, 16 May 2009

Plasmoids

Plasmoids are applets that can be added to any containment, such as a panel or a desktop.

Applet

Applets are the visible part of Plasmoids and are related to DataEngines. They provide a visual and interactive interface to the user.

For each DataEngine, there may be multiple applets that present the data in different ways; for example, an analog clock and a digital clock, while looking different, both display the same data: Time.

DataEngine

DataEngines are an invisible part of Plasmoids. They serve as a data source and provide information that Applets may use.

Multiple applets may use a single DataEngine as their data source; for example, there exists only one DataEngine for the current time, which can then be used by multiple clock applets to show the time.

So to have a Clock Plasmoid:

Plasma --> Time Data Engine --> Analog Clock Plasmoid and Digital Clock Plasmoid

Containment

Containments are containers that allow grouping of elements.

Panel

The Panel, normally displayed at the bottom of the Desktop as a taskbar, is a container for various Plasmoids like the Application Launcher Menu that provides an interface to launch installed applications; the Task Manager that lists the running applications; the Pager that allows switching of the active Desktop; clock applets, etc.

The list of items contained in the in the panel is configurable and a user can add or remove Plasmoids to the panel. The panel itself is also configurable.

Compared to a Plasmoid, the Panel, while also being an applet, can contain other applets.

Desktop

The Desktop is a containment that can be used to contain Plasmoids, Panels etc. The default Desktop, that is displayed on startup of KDE4, normally contains icon applets.

Multiple desktop containments can coexist, each containing different applets. Since a Desktop is just a Container, there is no longer a special "Desktop" as there was in KDE3.

Examples of desktops include the aforementioned default Desktop that appears on startup of KDE4; different desktop containers displaying the output of multiple monitors; a TV-out desktop; a desktop configured to display the output of small devices or small form factors; a presentation desktop, etc.

Runner

Runners are task-orientated plugins that allow the user to complete one special task. They try to guess what you or a program that uses them, tries to achieve with some input provided. Think of them as your friendly agent that tries to help you to find the solution for something.

An example is the KRunner dialog (ALT+F2). This dialog not only serves as a quick way to launch your favorite application, but it also allows the user to perform simple mathematical calculations, search for bookmarks or execute shell commands.

User Interface

Compared to the Desktop, the user interface is what the user sees all the time. This may be a desktop or multiple of them, or just parts of the desktop--like a special area that has been selected.

An example here is the Zooming User Interface that allows the user to view a larger area beyond the current desktop, as one full screen area. This may be useful if you need to view multiple desktops simultaneously for easy selection.

ScriptEngine

The ScriptEngine provides an interface to integrate scripting plugins. Such scripting plugins can be attached to any applet to extend the functionality via a scripting language. Applets, DataEngines and Runner can be written using your favorite scripting language.

Two popular examples of scripting solutions currently supported using this framework are Apple's Dashboard Widgets and SuperKaramba Themes.