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