File indexing completed on 2024-05-12 05:34:33

0001 #ifndef oxygenhoverengine_h
0002 #define oxygenhoverengine_h
0003 /*
0004 * this file is part of the oxygen gtk engine
0005 * SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0006 * SPDX-FileCopyrightText: 2010 Ruslan Kabatsayev <b7.10110111@gmail.com>
0007 *
0008 * SPDX-License-Identifier: LGPL-2.0-or-later
0009 */
0010 
0011 #include "oxygengenericengine.h"
0012 #include "oxygendatamap.h"
0013 #include "oxygenhoverdata.h"
0014 
0015 #include <gtk/gtk.h>
0016 
0017 namespace Oxygen
0018 {
0019     //! forward declaration
0020     class Animations;
0021 
0022     //! stores data associated to editable comboboxes
0023     /*!
0024     ensures that the text entry and the button of editable comboboxes
0025     gets hovered and focus flags at the same time
0026     */
0027     class HoverEngine: public GenericEngine<HoverData>
0028     {
0029 
0030         public:
0031 
0032         //! constructor
0033         HoverEngine( Animations* parent ):
0034             GenericEngine<HoverData>( parent )
0035             {}
0036 
0037         //! destructor
0038         virtual ~HoverEngine( void )
0039         {}
0040 
0041         //! register widget
0042         virtual bool registerWidget( GtkWidget* widget )
0043         { return registerWidget( widget, false ); }
0044 
0045         //! register widget
0046         virtual bool registerWidget( GtkWidget* widget, bool updateOnHover )
0047         {
0048             if( GenericEngine<HoverData>::registerWidget( widget ) )
0049             {
0050                 data().value(widget).setUpdateOnHover( updateOnHover );
0051                 return true;
0052             } else return false;
0053 
0054         }
0055 
0056         //! true if widget is hovered
0057         bool hovered( GtkWidget* widget )
0058         { return data().value( widget ).hovered(); }
0059 
0060         //! set hover state
0061         bool setHovered( GtkWidget* widget, bool value )
0062         { return data().value( widget ).setHovered( widget, value ); }
0063 
0064     };
0065 
0066 }
0067 
0068 #endif