Projects/Plasma/Architecture: Difference between revisions

    From KDE TechBase
    (→‎Panel: containments currently can't contain containments)
    (Added section about ScriptEngine's)
    Line 50: Line 50:


    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 to go beyond the desktop as one full screen area.
    ===ScriptEngine===
    The ScriptEngine does provide an interface to integrate scripting plugins.
    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 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].

    Revision as of 22:28, 3 March 2008

    Plasmoids

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

    Applet

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

    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.

    DataEngine

    DataEngines are compared to Applets the invisible part of Plasmoids. They are the data source and are information providers.

    As example there exist 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 to group elements.

    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.

    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.

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

    Desktop

    The desktop itself is also a containment. The default desktop, that will show up if you start KDE4, just 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.

    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.

    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.

    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.

    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.

    An example here is the Zooming User Interface that allows to go beyond the desktop as one full screen area.

    ScriptEngine

    The ScriptEngine does provide an interface to integrate scripting plugins.

    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 samples for scripting solutions already supported using this framework are Apple's Dashboard Widgets and SuperKaramba Themes.