Another huge commit!!!
[blender-staging.git] / source / blender / include / BIF_interface.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 BIF_INTERFACE_H
34 #define BIF_INTERFACE_H
35
36 struct ID;
37 struct ListBase;
38 struct ScrArea;
39
40 typedef struct uiBut uiBut;
41 typedef struct uiBlock uiBlock;
42
43 void uiEmboss(float x1, float y1, float x2, float y2, int sel);
44 void uiRoundBoxEmboss(float minx, float miny, float maxx, float maxy, float rad);
45 void uiRoundBox(float minx, float miny, float maxx, float maxy, float rad);
46 void uiSetRoundBox(int type);
47 void uiRoundRect(float minx, float miny, float maxx, float maxy, float rad);
48
49 void uiDrawMenuBox(float minx, float miny, float maxx, float maxy);
50 void uiTextBoundsBlock(uiBlock *block, int addval);
51 void uiBoundsBlock(struct uiBlock *block, int addval);
52 void uiDrawBlock(struct uiBlock *block);
53 void uiGetMouse(int win, short *adr);
54 void uiComposeLinks(uiBlock *block);
55 void uiSetButLock(int val, char *lockstr);
56 void uiClearButLock(void);
57 int uiDoBlocks(struct ListBase *lb, int event);
58 void uiSetCurFont(uiBlock *block, int index);
59 void uiDefFont(unsigned int index, void *xl, void *large, void *medium, void *small);
60 void uiFreeBlock(uiBlock *block);
61 void uiFreeBlocks(struct ListBase *lb);
62 void uiFreeBlocksWin(struct ListBase *lb, int win);
63 uiBlock *uiNewBlock(struct ListBase *lb, char *name, short dt, short font, short win);
64 uiBlock *uiGetBlock(char *name, struct ScrArea *sa);
65 uiBut *uiDefBut(uiBlock *block, 
66                                            int type, int retval, char *str, 
67                                            short x1, short y1, 
68                                            short x2, short y2, 
69                                            void *poin, 
70                                            float min, float max, 
71                                            float a1, float a2,  char *tip);
72 uiBut *uiDefButF(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2,  char *tip);
73 uiBut *uiDefButI(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2,  char *tip);
74 uiBut *uiDefButS(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2,  char *tip);
75 uiBut *uiDefButC(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2,  char *tip);
76
77 uiBut *uiDefIconBut(uiBlock *block, 
78                                            int type, int retval, int icon, 
79                                            short x1, short y1, 
80                                            short x2, short y2, 
81                                            void *poin, 
82                                            float min, float max, 
83                                            float a1, float a2,  char *tip);
84 uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2,  char *tip);
85 uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2,  char *tip);
86 uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2,  char *tip);
87 uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2,  char *tip);
88
89 uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2,  char *tip);
90
91 uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2,  char *tip);
92 uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2,  char *tip);
93 uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2,  char *tip);
94 uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2,  char *tip);
95
96 typedef void            (*uiIDPoinFuncFP)       (char *str, struct ID **idpp);
97 void uiDefIDPoinBut(struct uiBlock *block,
98                                                 uiIDPoinFuncFP func, int retval, char *str,
99                                                 short x1, short y1,
100                                                 short x2, short y2,
101                                                 void *idpp, char *tip);
102
103 typedef uiBlock* (*uiBlockFuncFP)       (void *arg1);
104 uiBut *uiDefBlockBut(uiBlock *block, uiBlockFuncFP func, void *func_arg1, char *str, short x1, short y1, short x2, short y2, char *tip);
105
106 uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockFuncFP func, void *arg, int icon, char *str, short x1, short y1, short x2, short y2, char *tip);
107
108 void uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip);
109
110 void uiAutoBlock(struct uiBlock *block, 
111                                  float minx, float miny, 
112                                  float sizex, float sizey, int flag);
113 void uiSetButLink(struct uiBut *but, 
114                                   void **poin, 
115                                   void ***ppoin, 
116                                   short *tot, 
117                                   int from, int to);
118
119 int             uiBlocksGetYMin         (ListBase *lb);
120 int             uiBlockGetCol           (uiBlock *block);
121 void*   uiBlockGetCurFont       (uiBlock *block);
122
123 void    uiBlockSetCol           (uiBlock *block, int col);
124 void    uiBlockSetEmboss        (uiBlock *block, int emboss);
125 void    uiBlockSetDirection     (uiBlock *block, int direction);
126 void    uiBlockFlipOrder        (uiBlock *block);
127 void    uiBlockSetFlag          (uiBlock *block, int flag);
128 void    uiBlockSetXOfs          (uiBlock *block, int xofs);
129
130 int             uiButGetRetVal          (uiBut *but);
131
132 void    uiButSetFlag            (uiBut *but, int flag);
133 void    uiButClearFlag          (uiBut *but, int flag);
134
135 void    uiBlockSetButmFunc      (uiBlock *block, void (*butmfunc)(void *arg, int but_a2), void *arg);
136
137 void    uiBlockSetFunc          (uiBlock *block,        void (*func)(void *arg1, void *arg2), void *arg1, void *arg2);
138 void    uiButSetFunc            (uiBut *but,            void (*func)(void *arg1, void *arg2), void *arg1, void *arg2);
139
140 short pupmenu(char *instr); 
141 short pupmenu_col(char *instr, int maxrow);
142
143 extern void uiFreePanels(struct ListBase *lb);
144 extern int uiNewPanel(struct ScrArea *sa, struct uiBlock *block, char *panelname, char *tabname, int ofsx, int ofsy, int sizex, int sizey);
145 extern void uiScalePanelBlock(struct uiBlock *block);
146 extern int uiIsPanelClosed(struct uiBlock *block);
147 extern void uiAnimatePanels(struct ScrArea *sa);        
148 extern void uiSetPanel_view2d(struct ScrArea *sa);
149 extern void uiDrawBlocksPanels(struct ScrArea *sa, int re_align);
150 extern void uiNewPanelHeight(struct uiBlock *block, int sizey);
151
152
153 #endif /*  BIF_INTERFACE_H */
154