snes9x/gtk/src/gtk_builder_window.h
2018-12-28 17:07:32 -06:00

58 lines
2.2 KiB
C++

/*****************************************************************************\
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
This file is licensed under the Snes9x License.
For further information, consult the LICENSE file in the root directory.
\*****************************************************************************/
#ifndef __GTK_BUILDER_WINDOW_H
#define __GTK_BUILDER_WINDOW_H
#include "gtk_2_3_compat.h"
typedef struct
{
const char *signal;
GCallback function;
} GtkBuilderWindowCallbacks;
class GtkBuilderWindow
{
public:
GtkBuilderWindow (const char *root);
~GtkBuilderWindow ();
GtkWidget *get_widget (const char *name);
void resize (int width, int height);
GtkWindow *get_window ();
void refresh ();
int get_width ();
int get_height ();
void signal_connect (GtkBuilderWindowCallbacks *callbacks);
void enable_widget (const char *name, bool state);
void set_button_label (const char *name, const char *label);
unsigned char get_check (const char *name);
int get_entry_value (const char *name);
const char *get_entry_text (const char *name);
unsigned char get_combo (const char *name);
void combo_box_append (const char *name, const char *value);
void combo_box_append (GtkComboBox *combo, const char *value);
double get_spin (const char *name);
float get_slider (const char *name);
void set_check (const char *name, bool value);
void set_entry_value (const char *name, unsigned int value);
void set_entry_text (const char *name, const char *text);
void set_combo (const char *name, unsigned char value);
void set_spin (const char *name, double value);
void set_slider (const char *name, float value);
bool has_focus (const char *widget);
protected:
static void signal_connection_func (GtkBuilder *, GObject *, const gchar *, const char *, GObject *, GConnectFlags, gpointer);
GtkWidget *window;
GtkBuilder *builder;
GtkBuilderWindowCallbacks *callbacks;
};
#endif /* __GTK_BUILDER_WINDOW_H */