Plasma/shellPackage: Difference between revisions

From KDE Community Wiki
(Created page with "=Package filesystem= Package Type in desktop file: Plasma/Shell contents/components/ contents/views/ contents/layout.js -> file contents/defaults ->file ==contents/compo...")
 
No edit summary
Line 19: Line 19:
Where <containment type> is allowed to be '''Desktop''' or '''Panel'''
Where <containment type> is allowed to be '''Desktop''' or '''Panel'''


Default layout
==contents/layout.js==
*A BUNCH OF STUFF HERE?*
The default layout JavaScript file supports a similar API to Plasma1 desktop scripting.
The manipulation of Applet geometry will change a bit.
 
 
==contents/defaults==


Default settings
Default settings
Line 26: Line 30:
Default containment for each type
Default containment for each type
Default toolbox
Default toolbox
==contents/defaults==


Example defaults config file
Example defaults config file

Revision as of 19:19, 4 March 2013

Package filesystem

Package Type in desktop file: Plasma/Shell

contents/components/
contents/views/
contents/layout.js -> file
contents/defaults ->file

contents/components/

Shell UI components - named files AppletError.qml CompactApplet.qml Configuration.qml WidgetExplorer.qml

contents/views/

Each view (panel view or desktop view) will load a qml file that will "contain the containment", it will have the form <containment type>.qml Where <containment type> is allowed to be Desktop or Panel

contents/layout.js

The default layout JavaScript file supports a similar API to Plasma1 desktop scripting. The manipulation of Applet geometry will change a bit.


contents/defaults

Default settings ContainmentActions Default containment for each type Default toolbox

Example defaults config file

[Desktop]
ContainmentPlugin=org.kde.desktop
ToolBox=org.kde.standardtoolbox
[Desktop][ContainmentActions]
Ctrl;LeftButton=org.kde.standardmenu
MiddleButton=org.kde.paste
 
[Panel]
ContainmentPlugin=org.kde.panel
ToolBox=org.kde.standardtoolbox
[Panel][ContainmentActions]
Ctrl;LeftButton=org.kde.standardmenu

[Theme]
Theme=air-mobile

Layout package details In metadata.desktop: X-Plasma-ContainmentCategories=<containment type>

Applet geometry setting Containment geometry strategies: * None * Indexed * Grid * Free * Grouped



Applet geometry manipulation from scripts

Item { property int appletPlacementStrategy: “indexed”

Connections { target: parent onIndexedPlacementRequest: applet, index onGridPlacementRequest: applet, x, y onFreePlacementRequest: applet, point }


}

PlacementStrategy ContainmentInterface::placementStrategy() const {

 // look up the appletPlacementStrategy property and return it

}

void ContainmentInterface::requestIndexedPlacement(Applet *applet, int index) { if (placementStrategy() == IndexedStrategy) { emit indexedPlacementRequest(applet, index); } }