File indexing completed on 2024-05-12 17:05:50
0001 #ifndef oxygentabwidgetengine_h 0002 #define oxygentabwidgetengine_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 * 0007 * SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 0011 #include "oxygengenericengine.h" 0012 #include "oxygendatamap.h" 0013 #include "oxygentabwidgetdata.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 tabwidgetes 0023 /*! 0024 ensures that the text entry and the button of editable tabwidgetes 0025 gets hovered and focus flags at the same time 0026 */ 0027 class TabWidgetEngine: public GenericEngine<TabWidgetData> 0028 { 0029 0030 public: 0031 0032 //! constructor 0033 TabWidgetEngine( Animations* widget ): 0034 GenericEngine<TabWidgetData>( widget ) 0035 {} 0036 0037 //! destructor 0038 virtual ~TabWidgetEngine( void ) 0039 {} 0040 0041 //!@name modifiers 0042 //@{ 0043 0044 //! returns hovered tab, if any 0045 void updateTabRect( GtkWidget* widget, int index, int x, int y, int w, int h ) 0046 { 0047 GdkRectangle local = { x, y, w, h }; 0048 return data().value( widget ).updateTabRect( widget, index, local ); 0049 } 0050 0051 //! returns hovered tab, if any 0052 void updateTabRect( GtkWidget* widget, int index, const GdkRectangle& r ) 0053 { return data().value( widget ).updateTabRect( widget, index, r ); } 0054 0055 //! returns hovered tab, if any 0056 void updateHoveredTab( GtkWidget* widget ) 0057 { return data().value( widget ).updateHoveredTab( widget ); } 0058 0059 //! true when drag is in progress 0060 void setDragInProgress( GtkWidget* widget, bool value ) 0061 { data().value( widget ).setDragInProgress( value ); } 0062 0063 //! toggle dirty state 0064 void toggleDirty( GtkWidget* widget ) 0065 { data().value( widget ).toggleDirty(); } 0066 0067 //! true when tabbar is dirty 0068 void setDirty( GtkWidget* widget, bool value ) 0069 { data().value( widget ).setDirty( value ); } 0070 0071 //@} 0072 0073 //!@name accessors 0074 //@{ 0075 0076 //! returns hovered tab, if any 0077 int hoveredTab( GtkWidget* widget ) 0078 { return data().value( widget ).hoveredTab(); } 0079 0080 //! returns true if provided point is in one tab of the widget 0081 bool isInTab( GtkWidget* widget, int x, int y ) 0082 { return data().value( widget ).isInTab( x, y ); } 0083 0084 //! true when drag is in progress 0085 bool dragInProgress( GtkWidget* widget ) 0086 { return data().value( widget ).dragInProgress(); } 0087 0088 //! true when tabbar is dirty 0089 bool isDirty( GtkWidget* widget ) 0090 { return data().value( widget ).isDirty(); } 0091 0092 //@} 0093 0094 }; 0095 0096 } 0097 0098 #endif