Plasma/shellPackage: Difference between revisions
No edit summary |
|||
Line 21: | Line 21: | ||
==contents/layout.js== | ==contents/layout.js== | ||
The default layout JavaScript file supports a similar API to Plasma1 desktop scripting. | The default layout JavaScript file supports a similar API to Plasma1 desktop scripting. | ||
The manipulation of Applet geometry will change a bit | The manipulation of Applet geometry will change a bit, see [[#Applet_geometry_manipulation_from_scripts|Applet geometry manipulation from scripts]] | ||
==contents/defaults== | ==contents/defaults== |
Revision as of 19:21, 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, see Applet geometry manipulation from scripts
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); } }