annotate libvisual/lv_ui.h @ 27:d160ae2251e9 trunk

[svn] Update SIGSEGV message, contained the BMP mailing information.
author nenolod
date Tue, 25 Oct 2005 21:26:50 -0700
parents 0db4a1dc75c4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
1 /* Libvisual - The audio visualisation framework.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
2 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
3 * Copyright (C) 2004, 2005 Dennis Smit <ds@nerds-incorporated.org>
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
4 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
5 * Authors: Dennis Smit <ds@nerds-incorporated.org>
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
6 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
7 * $Id:
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
8 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
10 * it under the terms of the GNU Lesser General Public License as
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
11 * published by the Free Software Foundation; either version 2.1
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
12 * of the License, or (at your option) any later version.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
13 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
17 * GNU Lesser General Public License for more details.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
18 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
19 * You should have received a copy of the GNU Lesser General Public License
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
22 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
23
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
24 #ifndef _LV_UI_H
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
25 #define _LV_UI_H
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
26
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
27 #include <libvisual/lv_list.h>
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
28 #include <libvisual/lv_param.h>
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
29 #include <libvisual/lv_video.h>
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
30 #include <libvisual/lv_common.h>
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
31
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
32 #ifdef __cplusplus
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
33 extern "C" {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
34 #endif /* __cplusplus */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
35
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
36 #define VISUAL_UI_WIDGET(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_WIDGET, VisUIWidget))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
37 #define VISUAL_UI_CONTAINER(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_CONTAINER, VisUIContainer))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
38 #define VISUAL_UI_BOX(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_BOX, VisUIBox))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
39 #define VISUAL_UI_TABLE_ENTRY(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_TABLE, VisUITableEntry))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
40 #define VISUAL_UI_TABLE(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_TABLE, VisUITable))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
41 #define VISUAL_UI_FRAME(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_FRAME, VisUIFrame))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
42 #define VISUAL_UI_LABEL(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_LABEL, VisUILabel))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
43 #define VISUAL_UI_IMAGE(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_IMAGE, VisUIImage))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
44 #define VISUAL_UI_SEPARATOR(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_SEPARATOR, VisUISeparator))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
45 #define VISUAL_UI_MUTATOR(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_MUTATOR, VisUIMutator))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
46 #define VISUAL_UI_RANGE(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_RANGE, VisUIRange))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
47 #define VISUAL_UI_ENTRY(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_ENTRY, VisUIEntry))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
48 #define VISUAL_UI_SLIDER(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_SLIDER, VisUISlider))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
49 #define VISUAL_UI_NUMERIC(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_NUMERIC, VisUINumeric))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
50 #define VISUAL_UI_COLOR(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_COLOR, VisUIColor))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
51 #define VISUAL_UI_CHOICE_ENTRY(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_CHOICE, VisUIChoiceEntry))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
52 #define VISUAL_UI_CHOICE(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_CHOICE, VisUIChoice))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
53 #define VISUAL_UI_POPUP(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_POPUP, VisUIPopup))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
54 #define VISUAL_UI_LIST(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_LIST, VisUIList))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
55 #define VISUAL_UI_RADIO(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_RADIO, VisUIRadio))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
56 #define VISUAL_UI_CHECKBOX(obj) (VISUAL_CHECK_CAST ((obj), VISUAL_WIDGET_TYPE_CHECKBOX, VisUICheckbox))
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
57
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
58 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
59 * Enumerate to define the different types of VisUIWidgets.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
60 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
61 typedef enum {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
62 VISUAL_WIDGET_TYPE_NULL, /**< NULL widget */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
63 VISUAL_WIDGET_TYPE_WIDGET, /**< Base widget: \a VisUIWidget. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
64 VISUAL_WIDGET_TYPE_CONTAINER, /**< Container widget: \a VisUIContainer. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
65 VISUAL_WIDGET_TYPE_BOX, /**< Box widget: \a VisUIBox. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
66 VISUAL_WIDGET_TYPE_TABLE, /**< Table widget: \a VisUITable. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
67 VISUAL_WIDGET_TYPE_FRAME, /**< Frame widget: \a VisUIFrame. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
68 VISUAL_WIDGET_TYPE_LABEL, /**< Label widget: \a VisUILabel. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
69 VISUAL_WIDGET_TYPE_IMAGE, /**< Image widget: \a VisUIImage. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
70 VISUAL_WIDGET_TYPE_SEPARATOR, /**< Separator widget: \a VisUISeparator. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
71 VISUAL_WIDGET_TYPE_MUTATOR, /**< Mutator base widget: \a VisUIMutator. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
72 VISUAL_WIDGET_TYPE_RANGE, /**< Range base widget: \a VisUIRange. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
73 VISUAL_WIDGET_TYPE_ENTRY, /**< Entry box widget: \a VisUIEntry. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
74 VISUAL_WIDGET_TYPE_SLIDER, /**< Slider widget: \a VisUISlider. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
75 VISUAL_WIDGET_TYPE_NUMERIC, /**< Numeric widget: \a VisUINumeric. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
76 VISUAL_WIDGET_TYPE_COLOR, /**< Color widget: \a VisUIColor. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
77 VISUAL_WIDGET_TYPE_CHOICE, /**< Choice base widget: \a VisUIChoice. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
78 VISUAL_WIDGET_TYPE_POPUP, /**< Popup widget: \a VisUIPopup. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
79 VISUAL_WIDGET_TYPE_LIST, /**< List widget: \a VisUIList. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
80 VISUAL_WIDGET_TYPE_RADIO, /**< Radio widget: \a VisUIRadio. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
81 VISUAL_WIDGET_TYPE_CHECKBOX /**< Checkbox widget: \a VisUICheckbox. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
82 } VisUIWidgetType;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
83
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
84 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
85 * Enumerate to define the different types of widget orientation. This is used
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
86 * by a few widgets that can be aligned both vertical and horizontal.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
87 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
88 typedef enum {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
89 VISUAL_ORIENT_TYPE_NONE, /**< No orientation, use the default. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
90 VISUAL_ORIENT_TYPE_HORIZONTAL, /**< Horizontal orientation. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
91 VISUAL_ORIENT_TYPE_VERTICAL /**< Vertical orientation. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
92 } VisUIOrientType;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
93
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
94 typedef struct _VisUIWidget VisUIWidget;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
95 typedef struct _VisUIContainer VisUIContainer;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
96 typedef struct _VisUIBox VisUIBox;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
97 typedef struct _VisUITableEntry VisUITableEntry;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
98 typedef struct _VisUITable VisUITable;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
99 typedef struct _VisUIFrame VisUIFrame;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
100 typedef struct _VisUILabel VisUILabel;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
101 typedef struct _VisUIImage VisUIImage;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
102 typedef struct _VisUISeparator VisUISeparator;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
103 typedef struct _VisUIMutator VisUIMutator;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
104 typedef struct _VisUIRange VisUIRange;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
105 typedef struct _VisUIEntry VisUIEntry;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
106 typedef struct _VisUISlider VisUISlider;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
107 typedef struct _VisUINumeric VisUINumeric;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
108 typedef struct _VisUIColor VisUIColor;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
109 typedef struct _VisUIChoiceList VisUIChoiceList;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
110 typedef struct _VisUIChoiceEntry VisUIChoiceEntry;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
111 typedef struct _VisUIChoice VisUIChoice;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
112 typedef struct _VisUIPopup VisUIPopup;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
113 typedef struct _VisUIList VisUIList;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
114 typedef struct _VisUIRadio VisUIRadio;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
115 typedef struct _VisUICheckbox VisUICheckbox;
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
116
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
117 /* FIXME, fix the links, they are screwed up because of the typedefs, there is some way around it
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
118 * but hey. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
119 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
120 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
121 * The super class for al VisUIWidgets. All the typical VisUIWidgets
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
122 * derive from this. VisUIWidget is used as an intermediate user interface
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
123 * description. Mainly to set up configuration dialogs for plugins that
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
124 * are not widget set dependant.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
125 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
126 * The VisUIWidget class hierarchy looks like following:
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
127 * - \a _VisUIWidget
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
128 * - \a VisUILabel
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
129 * - \a VisUIImage
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
130 * - \a VisUIContainer
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
131 * - \a VisUIBox
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
132 * - \a VisUITable
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
133 * - \a VisUIFrame
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
134 * - \a VisUIMutator
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
135 * - \a VisUIText
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
136 * - \a VisUIColor
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
137 * - \a VisUIRange
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
138 * - \a VisUISlider
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
139 * - \a VisUINumeric
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
140 * - \a VisUIChoice
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
141 * - \a VisUIPopup
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
142 * - \a VisUIList
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
143 * - \a VisUIRadio
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
144 * - \a VisUICheckbox
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
145 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
146 struct _VisUIWidget {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
147 VisObject object; /**< The VisObject data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
148
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
149 VisUIWidget *parent; /**< Parent in which this VisUIWidget is packed.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
150 * This is possibly NULL. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
151
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
152 VisUIWidgetType type; /**< Type of VisUIWidget. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
153
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
154 const char *tooltip; /**< Optional tooltip text, this can be used to
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
155 * give the user some extra explanation about the
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
156 * user interface. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
157
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
158 int width; /**< When size requisition is used, the width value will
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
159 * be stored in this. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
160 int height; /**< When size requisition is used. the height value will
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
161 * be stored in this. When size requisition is not being
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
162 * done both width and height will contain of -1. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
163 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
164
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
165 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
166 * The VisUIContainer is a VisUIWidget that is used to pack other widgets in.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
167 * A basic container can contain just one VisUIWidget, however when VisUIBox or
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
168 * VisUITable is used, it's possible to add more elements.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
169 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
170 struct _VisUIContainer {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
171 VisUIWidget widget; /**< The VisUIWidget data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
172
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
173 VisUIWidget *child; /**< Pointer to the child VisUIWidget that is packed in this VisUIContainer. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
174 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
175
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
176 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
177 * The VisUIBox inherents from VisUIContainer, but is capable to contain more childeren.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
178 * The VisUIBox is used as a box of VisUIWidgets, packed vertical or horizontal.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
179 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
180 struct _VisUIBox {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
181 VisUIContainer container; /**< The VisUIContainer data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
182
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
183 VisUIOrientType orient; /**< Orientation, whatever the box packs the item in a vertical
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
184 * order or in a horizontal order. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
185
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
186 VisList childs; /**< A list of all child VisUIWidgets. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
187 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
188
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
189 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
190 * VisUITableEntry is an entry in a VisUITable. the VisUITableEntry is not a VisUIWidget on
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
191 * itself. Instead it rembers the cell in which a VisUIWidget is placed in VisUITable and
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
192 * also has a reference to the VisUIWidget.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
193 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
194 struct _VisUITableEntry {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
195 VisObject object; /**< The VisObject data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
196
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
197 int row; /**< Row to which the VisUITableEntry is associated. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
198 int col; /**< Column to which the VisUITableEntry is associated. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
199
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
200 VisUIWidget *widget; /**< The VisUIWidget that is connected to this entry in the VisUITable. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
201 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
202
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
203 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
204 * The VisUITable inherents from VisUIContainer, but is capable of placing VisUIWidgets in an aligned grid.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
205 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
206 struct _VisUITable {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
207 VisUIContainer container; /**< The VisUIContainer data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
208
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
209 int rows; /**< The number of rows in this VisUITable. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
210 int cols; /**< The number of columns in this VisUITable. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
211
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
212 VisList childs; /**< A list of all VisUITableEntry items that are related to
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
213 * this table. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
214 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
215
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
216 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
217 * The VisUIFrame inherents from VisUIContainer, it's used to put a frame with a label around a VisUIWidget.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
218 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
219 struct _VisUIFrame {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
220 VisUIContainer container; /**< The VisUIContainer data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
221
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
222 const char *name; /**< The frame label text. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
223 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
224
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
225 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
226 * The VisUILabel inherents from a VisUIWidget, it's used to as a label item in the user interface.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
227 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
228 struct _VisUILabel {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
229 VisUIWidget widget; /**< The VisUIWidget data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
230
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
231 const char *text; /**< The label text. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
232 int bold; /**< Whatever the label is being printed in bold or not. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
233 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
234
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
235 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
236 * The VisUIImage inherents from a VisUIWidget, it's used to display a VisVideo within the user interface. For
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
237 * example it can be used to show a picture.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
238 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
239 struct _VisUIImage {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
240 VisUIWidget widget; /**< The VisUIWidget data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
241
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
242 VisVideo *image; /**< The VisUIImage containing the image data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
243 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
244
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
245 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
246 * The VisUISeparator inherents from a VisUIWidget, it's used to display a separator between different user interface
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
247 * elements.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
248 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
249 struct _VisUISeparator {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
250 VisUIWidget widget; /**< The VisUIWidget data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
251
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
252 VisUIOrientType orient; /**< The orientation, whatever the separator is drawn in vertical
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
253 * or horizontal style. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
254 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
255
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
256 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
257 * The VisUIMutator inherents from a VisUIWidget, it's used as a super class for different type of mutator VisUIWidgets.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
258 * Mutator VisUIWidgets are used to change a value in a VisParamEntry.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
259 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
260 struct _VisUIMutator {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
261 VisUIWidget widget; /**< The VisUIWidget data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
262
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
263 VisParamEntry *param; /**< The VisParamEntry parameter that is associated with this
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
264 * VisUIMutator. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
265 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
266
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
267 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
268 * The VisUIRange inherents from a VisUIMutator, it's a type of mutator widget that focus on numeric input and
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
269 * numeric adjustment within a range.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
270 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
271 struct _VisUIRange {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
272 VisUIMutator mutator; /**< The VisUIMutator data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
273
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
274 double min; /**< The minimal value. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
275 double max; /**< The maximal value. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
276 double step; /**< Increase / decrease steps. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
277
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
278 int precision; /**< Precision, in the fashion of how many numbers behind
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
279 * the point. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
280 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
281
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
282 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
283 * The VisUIEntry inherents from a VisUIMutator, it's used as a way to input text.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
284 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
285 struct _VisUIEntry {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
286 VisUIMutator mutator; /**< The VisUIMutator data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
287
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
288 int length; /**< Maximal length for the text. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
289 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
290
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
291 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
292 * The VisUISlider inherents from a VisUIRange, it's used to display a slider which can be used
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
293 * to adjust a numeric value.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
294 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
295 struct _VisUISlider {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
296 VisUIRange range; /**< The VisUIRange data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
297
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
298 int showvalue; /**< Don't show just the slider, but also the value it
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
299 * represents at it's current position. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
300 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
301
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
302 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
303 * The VisUINumeric inherents from a VisUIRange, it's used to display a numeric spin button that
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
304 * can be used to adjust a numeric value. A numeric spin button contains out of a small text field
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
305 * displaying the actual value, followed by two buttons which are used to increase or decrease the value.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
306 *
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
307 * In most VisUI native implementations it's also possible to adjust the text field directly using
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
308 * the keyboard.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
309 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
310 struct _VisUINumeric {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
311 VisUIRange range; /**< The VisUIRange data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
312 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
313
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
314 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
315 * The VisUIColor inherents from a VisUIMutator, it's used to adjust the color that is encapsulated by
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
316 * a VisParamEntry.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
317 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
318 struct _VisUIColor {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
319 VisUIMutator mutator; /**< The VisUIMutator data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
320 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
321
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
322 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
323 * The VisUIChoiceList is not a VisUIWidget, but it's used by the different types of VisUIChoice widgets to
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
324 * store information about choices.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
325 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
326 struct _VisUIChoiceList {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
327 VisObject object; /**< The VisObject data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
328
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
329 int count; /**< The amount of choices that are present. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
330 VisList choices; /**< A list of VisUIChoiceEntry elements. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
331 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
332
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
333 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
334 * The VisUIChoiceEntry is not a VisUIWidget, but it's used by the different types of VisUIChoice widgets to
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
335 * store information regarding a choice within a VisUIChoiceList.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
336 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
337 struct _VisUIChoiceEntry {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
338 VisObject object; /**< The VisObject data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
339
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
340 const char *name; /**< Name of this VisChoiceEntry. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
341
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
342 VisParamEntry *value; /**< Link to the VisParamEntry that contains the value
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
343 * for this VisChoiceEntry. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
344 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
345
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
346 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
347 * The VisUIChoice inherents from a VisUIMutator, it's used as a super class for the different types of
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
348 * VisUIChoice VisUIWidgets.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
349 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
350 struct _VisUIChoice {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
351 VisUIMutator mutator; /**< The VisUIMutator data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
352
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
353 VisParamEntry *param; /**< Pointer to the VisParamEntry that is the target to
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
354 * contain the actual value. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
355
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
356 VisUIChoiceList choices; /**< The different choices present. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
357 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
358
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
359 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
360 * The VisUIPopup inherents from a VisUIChoice, it's used to represent choices in a popup fashion, where you
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
361 * can select an item.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
362 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
363 struct _VisUIPopup {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
364 VisUIChoice choice; /**< The VisUIChoice data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
365 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
366
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
367 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
368 * The VisUIList inherents from a VisUIChoice, it's used to represent choices in a list fashion.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
369 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
370 struct _VisUIList {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
371 VisUIChoice choice; /**< The VisUIChoice data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
372 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
373
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
374 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
375 * The VisUIRadio inherents from a VisUIChoice, it's used to represent choices in the fashion of radio buttons. These
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
376 * are a grouped type of checkboxes where only one item can be active at once.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
377 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
378 struct _VisUIRadio {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
379 VisUIChoice choice; /**< The VisUIChoice data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
380
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
381 VisUIOrientType orient; /**< Orientation of how the different radio buttons in the VisUIRadio button
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
382 * group is ordered. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
383 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
384
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
385 /**
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
386 * The VisUICheckbox inherents from a VisUIChoice, it's used to represent one single checkbox widget. For this reason it
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
387 * can only represent two choices. One for the toggled state and one for the untoggled state.
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
388 */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
389 struct _VisUICheckbox {
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
390 VisUIChoice choice; /**< The VisUIChoice data. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
391
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
392 const char *name; /**< Optional text behind the textbox. */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
393 };
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
394
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
395 /* prototypes */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
396 VisUIWidget *visual_ui_widget_new (void);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
397 int visual_ui_widget_set_size_request (VisUIWidget *widget, int width, int height);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
398 int visual_ui_widget_set_tooltip (VisUIWidget *widget, const char *tooltip);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
399 const char *visual_ui_widget_get_tooltip (VisUIWidget *widget);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
400 VisUIWidget *visual_ui_widget_get_top (VisUIWidget *widget);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
401 VisUIWidget *visual_ui_widget_get_parent (VisUIWidget *widget);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
402 VisUIWidgetType visual_ui_widget_get_type (VisUIWidget *widget);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
403
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
404 int visual_ui_container_add (VisUIContainer *container, VisUIWidget *widget);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
405 VisUIWidget *visual_ui_container_get_child (VisUIContainer *container);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
406
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
407 VisUIWidget *visual_ui_box_new (VisUIOrientType orient);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
408 int visual_ui_box_pack (VisUIBox *box, VisUIWidget *widget);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
409 VisList *visual_ui_box_get_childs (VisUIBox *box);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
410 VisUIOrientType visual_ui_box_get_orient (VisUIBox *box);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
411
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
412 VisUIWidget *visual_ui_table_new (int rows, int cols);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
413 VisUITableEntry *visual_ui_table_entry_new (VisUIWidget *widget, int row, int col);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
414 int visual_ui_table_attach (VisUITable *table, VisUIWidget *widget, int row, int col);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
415 VisList *visual_ui_table_get_childs (VisUITable *table);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
416
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
417 VisUIWidget *visual_ui_frame_new (const char *name);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
418
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
419 VisUIWidget *visual_ui_label_new (const char *text, int bold);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
420 int visual_ui_label_set_text (VisUILabel *label, const char *text);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
421 int visual_ui_label_set_bold (VisUILabel *label, int bold);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
422 const char *visual_ui_label_get_text (VisUILabel *label);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
423
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
424 VisUIWidget *visual_ui_image_new (VisVideo *video);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
425 int visual_ui_image_set_video (VisUIImage *image, VisVideo *video);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
426 VisVideo *visual_ui_image_get_video (VisUIImage *image);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
427
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
428 VisUIWidget *visual_ui_separator_new (VisUIOrientType orient);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
429 VisUIOrientType visual_ui_separator_get_orient (VisUISeparator *separator);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
430
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
431 int visual_ui_mutator_set_param (VisUIMutator *mutator, VisParamEntry *param);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
432 VisParamEntry *visual_ui_mutator_get_param (VisUIMutator *mutator);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
433
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
434 int visual_ui_range_set_properties (VisUIRange *range, double min, double max, double step, int precision);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
435 int visual_ui_range_set_max (VisUIRange *range, double max);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
436 int visual_ui_range_set_min (VisUIRange *range, double min);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
437 int visual_ui_range_set_step (VisUIRange *range, double step);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
438 int visual_ui_range_set_precision (VisUIRange *range, int precision);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
439
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
440 VisUIWidget *visual_ui_entry_new (void);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
441 int visual_ui_entry_set_length (VisUIEntry *entry, int length);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
442
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
443 VisUIWidget *visual_ui_slider_new (int showvalue);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
444
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
445 VisUIWidget *visual_ui_numeric_new (void);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
446
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
447 VisUIWidget *visual_ui_color_new (void);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
448
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
449 VisUIChoiceEntry *visual_ui_choice_entry_new (const char *name, VisParamEntry *value);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
450 int visual_ui_choice_add (VisUIChoice *choice, const char *name, VisParamEntry *value);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
451 int visual_ui_choice_add_many (VisUIChoice *choice, VisParamEntry *paramchoices);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
452 int visual_ui_choice_free_choices (VisUIChoice *choice);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
453 int visual_ui_choice_set_active (VisUIChoice *choice, int index);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
454 int visual_ui_choice_get_active (VisUIChoice *choice);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
455 VisUIChoiceEntry *visual_ui_choice_get_choice (VisUIChoice *choice, int index);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
456 VisUIChoiceList *visual_ui_choice_get_choices (VisUIChoice *choice);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
457
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
458 /* FIXME look at lists with multiple selections... */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
459
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
460 VisUIWidget *visual_ui_popup_new (void);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
461
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
462 VisUIWidget *visual_ui_list_new (void);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
463
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
464 VisUIWidget *visual_ui_radio_new (VisUIOrientType orient);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
465
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
466 VisUIWidget *visual_ui_checkbox_new (const char *name, int boolcheck);
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
467
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
468 #ifdef __cplusplus
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
469 }
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
470 #endif /* __cplusplus */
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
471
0db4a1dc75c4 [svn] libvisual.
nenolod
parents:
diff changeset
472 #endif /* _LV_UI_H */