1 /***********************************************************************
2     created:    24/9/2004
3     author:     Paul D Turner
4 *************************************************************************/
5 /***************************************************************************
6  *   Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
7  *
8  *   Permission is hereby granted, free of charge, to any person obtaining
9  *   a copy of this software and associated documentation files (the
10  *   "Software"), to deal in the Software without restriction, including
11  *   without limitation the rights to use, copy, modify, merge, publish,
12  *   distribute, sublicense, and/or sell copies of the Software, and to
13  *   permit persons to whom the Software is furnished to do so, subject to
14  *   the following conditions:
15  *
16  *   The above copyright notice and this permission notice shall be
17  *   included in all copies or substantial portions of the Software.
18  *
19  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22  *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23  *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24  *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  *   OTHER DEALINGS IN THE SOFTWARE.
26  ***************************************************************************/
27 #ifndef _GTK2CEGuiRendererSelector_h_
28 #define _GTK2CEGuiRendererSelector_h_
29 
30 #include "CEGuiRendererSelector.h"
31 #include <gtk/gtk.h>
32 #include <string>
33 
34 class GTK2CEGuiRendererSelector : public CEGuiRendererSelector
35 {
36 public:
37     GTK2CEGuiRendererSelector();
38     ~GTK2CEGuiRendererSelector();
39 
40     bool invokeDialog();
41 
42 private:
43     // Renderer name strings
44     static const std::string    OgreRendererName;
45     static const std::string    OpenGLRendererName;
46     static const std::string    IrrlichtRendererName;
47 
48     // Static member funcs
49     void createDialog();
50     static void on_cancelButton_clicked(GtkButton* button, gpointer user_data);
51     static void on_okButton_clicked(GtkButton* button, gpointer user_data);
52     static void on_combobox1_changed(GtkComboBox* combobox, gpointer user_data);
53 
54     // general data
55     bool d_cancelled;
56 
57     // GTK2 widgets
58     GtkWidget* d_dialog;
59     GtkWidget* d_vbox1;
60     GtkWidget* d_label1;
61     GtkWidget* d_hbox1;
62     GtkWidget* d_cancelButton;
63     GtkWidget* d_okButton;
64     GtkWidget* d_combobox1;
65 };
66 
67 #endif  // end of guard _GTK2CEGuiRendererSelector_h_
68