4598
|
1 /* Audacious - Cross-platform multimedia player
|
|
2 * Copyright (C) 2008 Audacious development team.
|
|
3 *
|
|
4 * This program is free software; you can redistribute it and/or modify
|
|
5 * it under the terms of the GNU General Public License as published by
|
|
6 * the Free Software Foundation; under version 3 of the License.
|
|
7 *
|
|
8 * This program is distributed in the hope that it will be useful,
|
|
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11 * GNU General Public License for more details.
|
|
12 *
|
|
13 * You should have received a copy of the GNU General Public License
|
|
14 * along with this program. If not, see <http://www.gnu.org/licenses>.
|
|
15 *
|
|
16 * The Audacious team does not consider modular code linking to
|
|
17 * Audacious or using our public API to be a derived work.
|
|
18 */
|
|
19
|
|
20 #ifndef AUDACIOUS_PREFERENCES_H
|
|
21 #define AUDACIOUS_PREFERENCES_H
|
|
22
|
|
23 typedef enum {
|
|
24 WIDGET_NONE,
|
|
25 WIDGET_CHK_BTN,
|
|
26 WIDGET_LABEL,
|
|
27 WIDGET_RADIO_BTN,
|
|
28 WIDGET_SPIN_BTN,
|
|
29 WIDGET_CUSTOM, /* 'custom' widget, you hand back the widget you want to add --nenolod */
|
|
30 WIDGET_FONT_BTN,
|
|
31 } WidgetType;
|
|
32
|
|
33 typedef struct {
|
|
34 WidgetType type; /* widget type */
|
|
35 char *label; /* widget title (for SPIN_BTN it's text left to widget)*/
|
|
36 gpointer cfg; /* connected config value */
|
|
37 void (*callback) (void); /* this func will be called after value change, can be NULL */
|
|
38 char *tooltip; /* widget tooltip (for SPIN_BTN it's text right to widget), can be NULL */
|
|
39 gboolean child;
|
|
40 GtkWidget *(*populate) (void); /* for WIDGET_CUSTOM --nenolod */
|
|
41 } PreferencesWidget;
|
|
42
|
|
43 void create_widgets(GtkBox *box, PreferencesWidget *widgets, gint amt);
|
|
44
|
|
45 #endif /* AUDACIOUS_PREFERENCES_H */
|