/usr/include/audacious/preferences.h is in audacious-dev 3.4.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /*
* preferences.h
* Copyright 2007-2011 Tomasz Moń, William Pitcock, and John Lindgren
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions, and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions, and the following disclaimer in the documentation
* provided with the distribution.
*
* This software is provided "as is" and without any warranty, express or
* implied. In no event shall the authors be liable for any damages arising from
* the use of this software.
*/
#ifndef AUDACIOUS_PREFERENCES_H
#define AUDACIOUS_PREFERENCES_H
#include <audacious/types.h>
typedef enum {
WIDGET_NONE,
WIDGET_CHK_BTN,
WIDGET_LABEL,
WIDGET_RADIO_BTN,
WIDGET_SPIN_BTN,
WIDGET_CUSTOM, /* 'custom' widget, you hand back the widget you want to add --nenolod */
WIDGET_FONT_BTN,
WIDGET_TABLE,
WIDGET_ENTRY,
WIDGET_COMBO_BOX,
WIDGET_BOX,
WIDGET_NOTEBOOK,
WIDGET_SEPARATOR,
} WidgetType;
typedef enum {
VALUE_INT,
VALUE_FLOAT,
VALUE_BOOLEAN,
VALUE_STRING,
VALUE_NULL,
} ValueType;
typedef struct {
void * value;
const char * label;
} ComboBoxElements;
struct _NotebookTab;
struct _PreferencesWidget {
WidgetType type; /* widget type */
const char * label; /* widget title (for SPIN_BTN it's text left to widget) */
void * cfg; /* connected config value */
void (* callback) (void); /* this func will be called after value change, can be NULL */
const char * tooltip; /* widget tooltip, can be NULL */
bool_t child;
ValueType cfg_type; /* connected value type */
const char * csect; /* config file section */
const char * cname; /* config file key name */
union {
struct {
int value;
} radio_btn;
struct {
double min, max, step;
const char * right_label; /* text right to widget */
} spin_btn;
struct {
struct _PreferencesWidget *elem;
int rows;
} table;
struct {
const char * stock_id;
bool_t single_line; /* FALSE to enable line wrap */
} label;
struct {
const char * title;
} font_btn;
struct {
bool_t password;
} entry;
struct {
const ComboBoxElements * elements;
int n_elements;
} combo;
struct {
const struct _PreferencesWidget * elem;
int n_elem;
bool_t horizontal; /* FALSE gives vertical, TRUE gives horizontal aligment of child widgets */
bool_t frame; /* whether to draw frame around box */
} box;
struct {
const struct _NotebookTab * tabs;
int n_tabs;
} notebook;
struct {
bool_t horizontal; /* FALSE gives vertical, TRUE gives horizontal separator */
} separator;
/* for WIDGET_CUSTOM --nenolod */
/* GtkWidget * (* populate) (void); */
void * (* populate) (void);
} data;
};
typedef struct _NotebookTab {
const char * name;
const PreferencesWidget * widgets;
int n_widgets;
} NotebookTab;
struct _PluginPreferences {
const PreferencesWidget * widgets;
int n_widgets;
void (*init)(void);
void (*apply)(void);
void (*cleanup)(void);
};
#endif /* AUDACIOUS_PREFERENCES_H */
|