kde-workspace/kstyles/oxygen
Ivailo Monev 936c69c827 generic: prepare for Katie changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-14 16:19:24 +03:00
..
config generic: prepare for Katie changes 2022-10-14 16:19:24 +03:00
debug generic: make changes required for building against katie 2015-08-12 13:11:16 +03:00
demo generic: prepare for Katie changes 2022-10-14 16:19:24 +03:00
CMakeLists.txt generic: adjust to the module directory change 2022-10-10 15:06:27 +03:00
oxygen.kcfg kstyles: drop Oxygen extended resize feature 2021-01-23 15:15:20 +02:00
oxygen.themerc initial import 2014-11-13 19:30:51 +02:00
oxygenaddeventfilter.h generic: normalize include guards 2015-07-11 18:25:01 +03:00
oxygenframeshadow.cpp kstyle: indentation corrections 2021-06-15 16:59:08 +03:00
oxygenframeshadow.h generic: make changes required for building against katie 2015-08-12 13:11:16 +03:00
oxygenmdiwindowshadow.cpp kstyle: indentation corrections 2021-06-15 16:59:08 +03:00
oxygenmdiwindowshadow.h generic: make changes required for building against katie 2015-08-12 13:11:16 +03:00
oxygenmetrics.h generic: normalize include guards 2015-07-11 18:25:01 +03:00
oxygenmnemonics.cpp kstyle: indentation corrections 2021-06-15 16:59:08 +03:00
oxygenmnemonics.h generic: normalize include guards 2015-07-11 18:25:01 +03:00
oxygenpropertynames.cpp kstyles: support busy progress again 2019-06-14 13:24:50 +00:00
oxygenpropertynames.h kstyles: support busy progress again 2019-06-14 13:24:50 +00:00
oxygenshadowhelper.cpp kstyles: do not attempt to free invalid X11 pixmap handles 2022-02-05 09:02:47 +02:00
oxygenshadowhelper.h generic: normalize include guards 2015-07-11 18:25:01 +03:00
oxygenstyle.cpp kstyles: remove oxygen style hack 2022-04-06 23:10:30 +03:00
oxygenstyle.h generic: remove blur behind support leftovers 2021-07-19 14:34:49 +03:00
oxygenstyleconfigdata.kcfgc initial import 2014-11-13 19:30:51 +02:00
oxygenstylehelper.cpp kstyles: ensure gradient color position is positive 2022-06-04 00:20:47 +03:00
oxygenstylehelper.h generic: make changes required for building against katie 2015-08-12 13:11:16 +03:00
oxygenwindowmanager.cpp kstyle: indentation corrections 2021-06-15 16:59:08 +03:00
oxygenwindowmanager.h generic: make changes required for building against katie 2015-08-12 13:11:16 +03: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.