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