commit of transform pinning patch by Fabian Fricke (frigi). wip hotkey is enter...
[blender-staging.git] / source / blender / editors / include / UI_resources.h
1 /**
2  * $Id$
3  *
4  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version. The Blender
10  * Foundation also sells licenses for use in proprietary software under
11  * the Blender License.  See http://www.blender.org/BL/ for information
12  * about this.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22  *
23  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24  * All rights reserved.
25  *
26  * The Original Code is: all of this file.
27  *
28  * Contributor(s): none yet.
29  * 
30  * ***** END GPL/BL DUAL LICENSE BLOCK *****
31  */
32
33 #ifndef UI_RESOURCES_H
34 #define UI_RESOURCES_H
35
36 /* elubie: TODO: move the typedef for icons to UI_interface_icons.h */
37 /* and add/replace include of UI_resources.h by UI_interface_icons.h */
38 #define DEF_ICON(name) name,
39
40 typedef enum {
41 #define BIFICONID_FIRST         (ICON_BLENDER)
42         /* ui */
43 #include "UI_icons.h"
44         BIFICONID_LAST
45 #define BIFNICONIDS                     (BIFICONID_LAST-BIFICONID_FIRST + 1)
46 } BIFIconID;
47 #undef DEF_ICON
48
49
50 typedef enum {
51 #define BIFCOLORSHADE_FIRST     (COLORSHADE_DARK)
52         COLORSHADE_DARK,
53         COLORSHADE_GREY,
54         COLORSHADE_MEDIUM,
55         COLORSHADE_HILITE,
56         COLORSHADE_LIGHT,
57         COLORSHADE_WHITE
58 #define BIFCOLORSHADE_LAST      (COLORSHADE_WHITE)
59 #define BIFNCOLORSHADES         (BIFCOLORSHADE_LAST-BIFCOLORSHADE_FIRST + 1)
60 } BIFColorShade;
61
62 typedef enum {
63 #define BIFCOLORID_FIRST        (BUTGREY)
64         BUTGREY = 0,
65         BUTGREEN,
66         BUTBLUE,
67         BUTSALMON,
68         MIDGREY,
69         BUTPURPLE,
70         BUTYELLOW,
71         REDALERT,
72         BUTRUST,
73         BUTWHITE,
74         BUTDBLUE,
75         BUTPINK,
76         BUTDPINK,
77         BUTMACTIVE,
78
79         BUTIPO,
80         BUTAUDIO,
81         BUTCAMERA,
82         BUTRANDOM,
83         BUTEDITOBJECT,
84         BUTPROPERTY,
85         BUTSCENE,
86         BUTMOTION,
87         BUTMESSAGE,
88         BUTACTION,
89         BUTCD,
90         BUTGAME,
91         BUTVISIBILITY,
92         BUTYUCK,
93         BUTSEASICK,
94         BUTCHOKE,
95         BUTIMPERIAL,
96
97         BUTTEXTCOLOR,
98         BUTTEXTPRESSED,
99         BUTSBACKGROUND,
100         
101         VIEWPORTBACKCOLOR,
102         VIEWPORTGRIDCOLOR,
103         VIEWPORTACTIVECOLOR,
104         VIEWPORTSELECTEDCOLOR,
105         VIEWPORTUNSELCOLOR,
106         
107         EDITVERTSEL, 
108         EDITVERTUNSEL, 
109         EDITEDGESEL, 
110         EDITEDGEUNSEL
111         
112 #define BIFCOLORID_LAST         (EDITEDGEUNSEL)
113 #define BIFNCOLORIDS            (BIFCOLORID_LAST-BIFCOLORID_FIRST + 1)
114
115 } BIFColorID;
116
117 enum {
118         TH_REDALERT,
119
120         TH_THEMEUI,
121 // common colors among spaces
122         
123         TH_BACK,
124         TH_TEXT,
125         TH_TEXT_HI,
126         TH_TITLE,
127         
128         TH_HEADER,
129         TH_HEADERDESEL,
130         TH_HEADER_TEXT,
131         TH_HEADER_TEXT_HI,
132         
133         /* float panels */
134         TH_PANEL,
135         TH_PANEL_TEXT,
136         TH_PANEL_TEXT_HI,
137         
138         TH_BUTBACK,
139         TH_BUTBACK_TEXT,
140         TH_BUTBACK_TEXT_HI,
141         
142         TH_SHADE1,
143         TH_SHADE2,
144         TH_HILITE,
145
146         TH_GRID,
147         TH_WIRE,
148         TH_SELECT,
149         TH_ACTIVE,
150         TH_GROUP,
151         TH_GROUP_ACTIVE,
152         TH_TRANSFORM,
153         TH_VERTEX,
154         TH_VERTEX_SELECT,
155         TH_VERTEX_SIZE,
156         TH_EDGE,
157         TH_EDGE_SELECT,
158         TH_EDGE_SEAM,
159         TH_EDGE_FACESEL,
160         TH_FACE,
161         TH_FACE_SELECT,
162         TH_NORMAL,
163         TH_FACE_DOT,
164         TH_FACEDOT_SIZE,
165         TH_CFRAME,
166
167         TH_SYNTAX_B,
168         TH_SYNTAX_V,
169         TH_SYNTAX_C,
170         TH_SYNTAX_L,
171         TH_SYNTAX_N,
172         
173         TH_BONE_SOLID,
174         TH_BONE_POSE,
175         
176         TH_STRIP,
177         TH_STRIP_SELECT,
178         
179         TH_LAMP,
180         
181         TH_NODE,
182         TH_NODE_IN_OUT,
183         TH_NODE_OPERATOR,
184         TH_NODE_CONVERTOR,
185         TH_NODE_GROUP,
186         
187         TH_SEQ_MOVIE,
188         TH_SEQ_IMAGE,
189         TH_SEQ_SCENE,
190         TH_SEQ_AUDIO,
191         TH_SEQ_EFFECT,
192         TH_SEQ_PLUGIN,
193         TH_SEQ_TRANSITION,
194         TH_SEQ_META,
195         
196         TH_EDGE_SHARP,
197         TH_EDITMESH_ACTIVE,
198         
199         TH_HANDLE_VERTEX,
200         TH_HANDLE_VERTEX_SELECT,
201         TH_HANDLE_VERTEX_SIZE,
202         
203         TH_DOPESHEET_CHANNELOB,
204         TH_DOPESHEET_CHANNELSUBOB,
205
206         TH_PIN,
207         TH_PIN_OPAC,
208 };
209 /* XXX WARNING: previous is saved in file, so do not change order! */
210
211 /* specific defines per space should have higher define values */
212
213 struct bTheme;
214 struct PointerRNA;
215
216 // THE CODERS API FOR THEMES:
217
218 // sets the color
219 void    UI_ThemeColor(int colorid);
220
221 // sets the color plus alpha
222 void    UI_ThemeColor4(int colorid);
223
224 // sets color plus offset for shade
225 void    UI_ThemeColorShade(int colorid, int offset);
226
227 // sets color plus offset for alpha
228 void    UI_ThemeColorShadeAlpha(int colorid, int coloffset, int alphaoffset);
229
230 // sets color, which is blend between two theme colors
231 void    UI_ThemeColorBlend(int colorid1, int colorid2, float fac);
232 // same, with shade offset
233 void    UI_ThemeColorBlendShade(int colorid1, int colorid2, float fac, int offset);
234 void    UI_ThemeColorBlendShadeAlpha(int colorid1, int colorid2, float fac, int offset, int alphaoffset);
235
236 // returns one value, not scaled
237 float   UI_GetThemeValuef(int colorid);
238 int     UI_GetThemeValue(int colorid);
239
240 // get three color values, scaled to 0.0-1.0 range
241 void    UI_GetThemeColor3fv(int colorid, float *col);
242
243 // get the 3 or 4 byte values
244 void    UI_GetThemeColor3ubv(int colorid, char *col);
245 void    UI_GetThemeColor4ubv(int colorid, char *col);
246
247 // get a theme color from specified space type
248 void    UI_GetThemeColorType4ubv(int colorid, int spacetype, char *col);
249
250 // blends and shades between two color pointers
251 void    UI_ColorPtrBlendShade3ubv(char *cp1, char *cp2, float fac, int offset);
252
253 // get a 3 byte color, blended and shaded between two other char color pointers
254 void    UI_GetColorPtrBlendShade3ubv(char *cp1, char *cp2, char *col, float fac, int offset);
255
256 // internal (blender) usage only, for init and set active
257 void    UI_SetTheme(int spacetype, int regionid);
258
259 /* only for buttons in theme editor! */
260 char    *UI_ThemeGetColorPtr(struct bTheme *btheme, int spacetype, int colorid);
261 char    *UI_ThemeColorsPup(int spacetype);
262
263 void UI_make_axis_color(char *src_col, char *dst_col, char axis);
264
265 #endif /*  UI_ICONS_H */