Jump to content

KWin/Class Diagram: Difference between revisions

From KDE Community Wiki
Mgraesslin (talk | contribs)
Mgraesslin (talk | contribs)
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== KWin Class Diagram ==
== KWin Class Diagram ==


The following diagrams have been created with [http://plantuml.sourceforge.net/ PlantUML].
The following diagrams have been created with [http://plantuml.sourceforge.net/ PlantUML]. The source code for the diagrams is located in [http://quickgit.kde.org/?p=scratch%2Fgraesslin%2Fkwin-class-diagram.git&a=summary scratch/graesslin/kwin-class-diagram.git] Repository.


=== KWinLibraries ===
=== KWinLibraries ===
Line 44: Line 44:


[[File:kwin_uml_tabbox.png|400px|thumb]]
[[File:kwin_uml_tabbox.png|400px|thumb]]
==== Desktop Change OSD ====
The Desktop Change OSD is a small overlay shown when switching the desktop. It is rather isolated from KWin core, therefore as an own diagram.
[[File:kwin_uml_osd.png|400px|thumb]]


==== Tiling ====
==== Tiling ====
Line 54: Line 49:


[[File:kwin_uml_tiling.png|400px|thumb]]
[[File:kwin_uml_tiling.png|400px|thumb]]
==== Wayland ====
The Wayland support of KWin as used in the kwin-wayland branch.
[[File:kwin_uml_wayland.png|400px|thumb]]


=== What's missing? ===
=== What's missing? ===

Latest revision as of 08:57, 7 April 2012

KWin Class Diagram

The following diagrams have been created with PlantUML. The source code for the diagrams is located in scratch/graesslin/kwin-class-diagram.git Repository.

KWinLibraries

Effects Library

The KWin effects library contains the interfaces for Effects and the EffectsHandler, which is the bridge between KWin core and the Effect System.

GL Utils

The GL Utils are part of the effects library and provide an abstraction on OpenGL for the use in KWin.

Decoration library

The decoration library provides the interfaces to write a window decoration plugin and the bridge between KWin core and the decoration plugin.

Aurorae

Aurorae is a themeable window decoration and serves here as an example for a window decoration plugin implementing the interfaces provided by the decoration library.

Compositor

The Compositor is actually part of the core and uses some of the classes provided by the gl utils library and implements the bridge between KWin core and the effects.

The Compositor consists of two parts. The first one is the implementation of the interfaces provided as a bridge between core and effect system:

The second one is the actual compositor which renders the window textures to the screen:

Core

KWin's Core is rather monolithic with the big Workspace and Client classes. It is the implementation of the window manager with the hear being the Workspace class.

TabBox

TabBox is the part of KWin core handling Alt+Tab functionality. It uses a Qt ModelView setup to manage the selection. The view can either be a normal window or be delegated to an effect.

Tiling

The Tiling classes handle the layout of the windows in the different tiling strategies.

Wayland

The Wayland support of KWin as used in the kwin-wayland branch.


What's missing?

  • XRender Utils
  • Scripting
  • Session Management

The Big Picture

And here the complete diagram with all the interactions: