File indexing completed on 2024-05-19 05:35:20

0001 #ifndef oxygenmenu_data_h
0002 #define oxygenmenu_data_h
0003 
0004 //////////////////////////////////////////////////////////////////////////////
0005 // oxygenmenudata.h
0006 // data container for QMenu animations
0007 // -------------------
0008 //
0009 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0010 //
0011 // SPDX-License-Identifier: MIT
0012 //////////////////////////////////////////////////////////////////////////////
0013 
0014 #include "oxygenmenubardata.h"
0015 #include <QMenu>
0016 
0017 namespace Oxygen
0018 {
0019 //* menubar data
0020 /*!
0021 most members are identical to menubar data. The one that are not are
0022 using templatized versions, because QMenuBar and QMenu API are very similar
0023 */
0024 class MenuDataV1 : public MenuBarDataV1
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     //* constructor
0030     MenuDataV1(QObject *parent, QWidget *target, int duration)
0031         : MenuBarDataV1(parent, target, duration)
0032     {
0033     }
0034 
0035 protected:
0036     //* menubar enterEvent
0037     void enterEvent(const QObject *object) override
0038     {
0039         MenuBarDataV1::enterEvent<QMenu>(object);
0040     }
0041 
0042     //* menubar enterEvent
0043     void leaveEvent(const QObject *object) override
0044     {
0045         MenuBarDataV1::leaveEvent<QMenu>(object);
0046     }
0047 
0048     //* menubar mouseMoveEvent
0049     void mouseMoveEvent(const QObject *object) override
0050     {
0051         MenuBarDataV1::mouseMoveEvent<QMenu>(object);
0052     }
0053 
0054     //* menubar mousePressEvent
0055     void mousePressEvent(const QObject *object) override
0056     {
0057         MenuBarDataV1::mousePressEvent<QMenu>(object);
0058     }
0059 };
0060 
0061 //* menubar data
0062 /*!
0063 most members are identical to menubar data. The one that are not are
0064 using templatized versions, because QMenuBar and QMenu API are very similar
0065 */
0066 class MenuDataV2 : public MenuBarDataV2
0067 {
0068     Q_OBJECT
0069 
0070 public:
0071     //* constructor
0072     MenuDataV2(QObject *parent, QWidget *target, int duration)
0073         : MenuBarDataV2(parent, target, duration)
0074     {
0075         setEntered(false);
0076     }
0077 
0078 protected:
0079     //* menubar enterEvent
0080     void enterEvent(const QObject *object) override
0081     {
0082         MenuBarDataV2::enterEvent<QMenu>(object);
0083     }
0084 
0085     //* menubar enterEvent
0086     void leaveEvent(const QObject *object) override
0087     {
0088         MenuBarDataV2::leaveEvent<QMenu>(object);
0089     }
0090 
0091     //* menubar mouseMoveEvent
0092     void mouseMoveEvent(const QObject *object) override
0093     {
0094         MenuBarDataV2::mouseMoveEvent<QMenu>(object);
0095     }
0096 };
0097 }
0098 
0099 #endif