File indexing completed on 2024-05-05 05:34:56

0001 #ifndef oxygendemodialog_h
0002 #define oxygendemodialog_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 "oxygensignalhandler.h"
0015 #include "oxygensliderdemowidget.h"
0016 
0017 #include <gtk/gtk.h>
0018 #include <map>
0019 
0020 namespace Oxygen
0021 {
0022 
0023     // forward declaration
0024     class DemoWidget;
0025 
0026     // main demo dialog
0027     class DemoDialog: public SignalHandler
0028     {
0029 
0030         public:
0031 
0032         //! constructor
0033         DemoDialog( void );
0034 
0035         //! destructor
0036         virtual ~DemoDialog( void );
0037 
0038          //! main widget
0039         virtual GtkWidget* mainWidget( void )
0040         { return _mainWidget; }
0041 
0042         protected:
0043 
0044         //! add page
0045         void addPage( DemoWidget* );
0046 
0047         //!@name callbacks
0048         //@{
0049 
0050         static void selectionChanged( GtkIconView*, gpointer );
0051         static void toggleEnableState( GtkToggleButton*, gpointer );
0052         static void toggleWidgetDirection( GtkToggleButton*, gpointer );
0053         static gboolean keyPress( GtkWidget*, GdkEventKey*, gpointer );
0054         //@}
0055 
0056         private:
0057 
0058         //! main widget
0059         GtkWidget* _mainWidget;
0060 
0061         //! tab widget
0062         GtkWidget* _notebook;
0063 
0064         //! model
0065         GtkListStore* _model;
0066 
0067         //! map page index and page widget
0068         typedef std::map<int, DemoWidget*> PageMap;
0069         PageMap _pages;
0070         SliderDemoWidget* _sliderDemoWidget;
0071 
0072         //! enable state button
0073         GtkWidget* _stateButton;
0074 
0075     };
0076 
0077 }
0078 
0079 #endif