kde-workspace/kstyles/oxygen
Ivailo Monev 36bc690df1 generic: adjust to shortcut changes
notice how the use of primary shortcut only disappears

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2024-04-24 10:25:20 +03:00
..
config generic: adjust to shortcut changes 2024-04-24 10:25:20 +03:00
debug kstyles: adjust to Katie changes 2022-11-24 00:40:22 +02:00
demo generic: adjust to shortcut changes 2024-04-24 10:25:20 +03:00
CMakeLists.txt kstyles: preperations for Katie changes 2023-08-11 13:59:07 +03:00
oxygen.kcfg generic: drop unused oxygen style background pixmap feature 2023-07-31 08:54:54 +00: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 kstyles: remove oxygen styles hacks for now non-existing widget classes 2022-11-04 13:17:30 +02:00
oxygenframeshadow.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 generic: drop scripting support 2023-10-21 08:14:30 +03:00
oxygenshadowhelper.h generic: remove dead and irrelevant links references 2023-08-10 15:44:43 +03:00
oxygenstyle.cpp generic: prepare for Katie changes 2024-03-15 09:05:41 +02:00
oxygenstyle.h kstyles: remove check for non-existing QWebView class 2023-08-14 19:54:31 +03:00
oxygenstyleconfigdata.kcfgc initial import 2014-11-13 19:30:51 +02:00
oxygenstylehelper.cpp generic: drop unused oxygen style background pixmap feature 2023-07-31 08:54:54 +00:00
oxygenstylehelper.h generic: make changes required for building against katie 2015-08-12 13:11:16 +03:00
oxygenwindowmanager.cpp kstyles: prepare for Katie changes 2024-03-15 07:35:15 +02: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.