kde-workspace/kstyles/oxygen
2015-02-22 21:39:50 +00:00
..
config generic: remove support for animations from oxygen library, oxygen kstyle and kwin oxygen client 2015-02-12 16:00:30 +00:00
debug initial import 2014-11-13 19:30:51 +02:00
demo generic: replace KDE4WORKSPACE_VERSION with KDE_VERSION_STRING and friends where appropariate 2015-01-23 20:11:31 +00:00
CMakeLists.txt generic: remove support for animations from oxygen library, oxygen kstyle and kwin oxygen client 2015-02-12 16:00:30 +00:00
oxygen.kcfg kstyles: remove redudant kcfg entry from oxygen 2015-02-22 21:39:50 +00:00
oxygen.themerc initial import 2014-11-13 19:30:51 +02:00
oxygenaddeventfilter.h initial import 2014-11-13 19:30:51 +02:00
oxygenblurhelper.cpp initial import 2014-11-13 19:30:51 +02:00
oxygenblurhelper.h initial import 2014-11-13 19:30:51 +02:00
oxygenframeshadow.cpp kstyles: restore some code that should not have been removed during the oxygen cleanup 2015-02-17 02:17:30 +00:00
oxygenframeshadow.h generic: cleanup oxygen 2015-02-12 18:28:52 +00:00
oxygenmdiwindowshadow.cpp initial import 2014-11-13 19:30:51 +02:00
oxygenmdiwindowshadow.h initial import 2014-11-13 19:30:51 +02:00
oxygenmetrics.h initial import 2014-11-13 19:30:51 +02:00
oxygenmnemonics.cpp initial import 2014-11-13 19:30:51 +02:00
oxygenmnemonics.h initial import 2014-11-13 19:30:51 +02:00
oxygenpropertynames.cpp initial import 2014-11-13 19:30:51 +02:00
oxygenpropertynames.h initial import 2014-11-13 19:30:51 +02:00
oxygenshadowhelper.cpp initial import 2014-11-13 19:30:51 +02:00
oxygenshadowhelper.h initial import 2014-11-13 19:30:51 +02:00
oxygensplitterproxy.cpp initial import 2014-11-13 19:30:51 +02:00
oxygensplitterproxy.h initial import 2014-11-13 19:30:51 +02:00
oxygenstyle.cpp kstyles: fix a oxygen graient regression 2015-02-13 23:30:57 +00:00
oxygenstyle.h kstyles: remove opacity support from oxygen 2015-02-13 16:45:02 +00:00
oxygenstyleconfigdata.kcfgc initial import 2014-11-13 19:30:51 +02:00
oxygenstylehelper.cpp generic: cleanup oxygen 2015-02-12 18:28:52 +00:00
oxygenstylehelper.h generic: cleanup oxygen 2015-02-12 18:28:52 +00:00
oxygenwindowmanager.cpp initial import 2014-11-13 19:30:51 +02:00
oxygenwindowmanager.h initial import 2014-11-13 19:30:51 +02:00
README initial import 2014-11-13 19:30:51 +02:00

oxygen-style-animated is a branch of trunk/KDE/kdebase/runtime/kstyles/oxygen that introduces smooth animations for the Oxygen widget style.

The code is organized as follow:
--------------------------------

1/ oxygenstyle.h and .cpp derive from QCommonStyle and take care of all the painting.
All 'primitives' are implemented as separate functions with identical prototypes and mapped to the corresponding QStyle primitive element at initialization style.

Some of the painting routines have been moved in oxygenstylehelper, for re-usability.
Additionaly some code that is common to the widget style and the window decoration resides at kdebase/workspace/libs/oxygen.

2/ since kde4.5 oxygen allows to drag and move windows by clicking in their empty areas. This is handled in the standalone 'oxygenwindowmanager' class.

3/ Since kde4.4, oxygen styles animates most widgets state changes. The animation code is contained in the ./animations and ./transitions subdirectories.

Each animation is structured in the following way:
For each element (e.g. QScrollBar) to be animated there are two classes:

- oxygenscrollbardata: contains the needed information, objects to animate a give QScrollBar instance. This usually consist of one or two QTimeLine, an event filter, and some needed flags + geometrical information.

- oxygenscrollbarengine: contains the list of all Data objects registered for each new instance of the widget that is animated.
This is used by the style to get the relevant data matching a given widget when painting the later.

Additionaly, two "factory" classes, oxygenanimations and oxygentransitions, keep track of all the engines and engine setup. They serve as an interface between the animations and the KStyle painting primitives.

For the animations located in the ./animations subdirectory, how the informations contained by the Data is used to animate a given widget is def in the oxygen KSTyle class.

For the animations located in the ./transitions subdirectory, handling the animation is performed using a temporary "cover" widget, namely Oxygen::TransitionWidget, and does not necessit any modification to the oxygen.cpp style itself.

Oxygen-style comes with two standalone applications:
----------------------------------------------------

- oxygen-settings, which offers an exhaustive list of configuration options for both the style and the decoration, in addition to the limited set of options available in systemsettings.

- oxygen-demo, which offers a showcase of how widgets are rendered with oxygen, and is used notably for debugging, and regression checks.

These applications are not available via kde 'start menu'. They must be typed either in a terminal (e.g. konsole) or via krunner.