File indexing completed on 2024-05-05 05:34:57
0001 #ifndef oxygensliderdemowidget_h 0002 #define oxygensliderdemowidget_h 0003 0004 /* 0005 * this file is part of the oxygen gtk engine 0006 * SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0007 * 0008 * based on the Null Theme Engine for Gtk+. 0009 * SPDX-FileCopyrightText: 2008 Robert Staudinger <robert.staudinger@gmail.com> 0010 * 0011 * SPDX-License-Identifier: LGPL-2.0-or-later 0012 */ 0013 0014 #include "oxygendemowidget.h" 0015 #include "oxygensignal.h" 0016 #include "oxygentimer.h" 0017 0018 #include <gtk/gtk.h> 0019 0020 namespace Oxygen 0021 { 0022 0023 class SliderDemoWidget: public DemoWidget 0024 { 0025 0026 public: 0027 0028 //! constructor 0029 SliderDemoWidget( void ); 0030 0031 //! destructor 0032 virtual ~SliderDemoWidget( void ); 0033 0034 //! pulse progress bar 0035 void startPulse( void ) 0036 { if( !_timer.isRunning() ) _timer.start( 50, (GSourceFunc)pulseProgressBar, this ); } 0037 0038 //! pulse progress bar 0039 void stopPulse( void ) 0040 { if( _timer.isRunning() ) _timer.stop(); } 0041 0042 protected: 0043 0044 //! pulse progress bar 0045 static gboolean pulseProgressBar( gpointer ); 0046 0047 //! callback 0048 static void valueChanged( GtkRange*, gpointer ); 0049 0050 private: 0051 0052 //! widget container 0053 class Sliders 0054 { 0055 public: 0056 0057 //! constructor 0058 Sliders( void ): 0059 _scale( 0 ), 0060 _progressBar( 0 ), 0061 _scrollBar( 0 ), 0062 _progressEntry( 0 ) 0063 {} 0064 0065 //! change value 0066 void setValue( const double& value ) const; 0067 0068 GtkWidget* _scale; 0069 GtkWidget* _progressBar; 0070 GtkWidget* _scrollBar; 0071 GtkWidget* _progressEntry; 0072 }; 0073 0074 //! horizontal sliders 0075 Sliders _horizontalSliders; 0076 0077 //! vertical sliders 0078 Sliders _verticalSliders; 0079 0080 //! pulse progressbar timer 0081 Timer _timer; 0082 0083 //! pulse progress bar 0084 GtkWidget* _pulseProgressBar; 0085 }; 0086 0087 } 0088 0089 #endif