169 lines
4.3 KiB
C
169 lines
4.3 KiB
C
/**
|
|
* blenlib/DNA_screen_types.h (mar-2001 nzc)
|
|
*
|
|
* $Id$
|
|
*
|
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
* All rights reserved.
|
|
*
|
|
* The Original Code is: all of this file.
|
|
*
|
|
* Contributor(s): none yet.
|
|
*
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
*/
|
|
#ifndef DNA_SCREEN_TYPES_H
|
|
#define DNA_SCREEN_TYPES_H
|
|
|
|
#include "DNA_listBase.h"
|
|
#include "DNA_vec_types.h"
|
|
|
|
#include "DNA_ID.h"
|
|
#include "DNA_scriptlink_types.h"
|
|
|
|
struct Scene;
|
|
|
|
typedef struct bScreen {
|
|
ID id;
|
|
ListBase vertbase, edgebase, areabase;
|
|
struct Scene *scene;
|
|
short startx, endx, starty, endy; /* framebuffer coords */
|
|
short sizex, sizey;
|
|
short scenenr, screennr; /* only for pupmenu */
|
|
short full, pad;
|
|
short mainwin, winakt;
|
|
short handler[8]; /* similar to space handler now */
|
|
} bScreen;
|
|
|
|
typedef struct ScrVert {
|
|
struct ScrVert *next, *prev, *newv;
|
|
vec2s vec;
|
|
int flag;
|
|
} ScrVert;
|
|
|
|
typedef struct ScrEdge {
|
|
struct ScrEdge *next, *prev;
|
|
ScrVert *v1, *v2;
|
|
short border; /* 1 when at edge of screen */
|
|
short flag;
|
|
int pad;
|
|
} ScrEdge;
|
|
|
|
#ifndef DNA_USHORT_FIX
|
|
#define DNA_USHORT_FIX
|
|
/**
|
|
* @deprecated This typedef serves to avoid badly typed functions when
|
|
* @deprecated compiling while delivering a proper dna.c. Do not use
|
|
* @deprecated it in any case.
|
|
*/
|
|
typedef unsigned short dna_ushort_fix;
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct Panel { /* the part from uiBlock that needs saved in file */
|
|
struct Panel *next, *prev;
|
|
char panelname[64], tabname[64]; /* defined as UI_MAX_NAME_STR */
|
|
char drawname[64]; /* panelname is identifier for restoring location */
|
|
short ofsx, ofsy, sizex, sizey;
|
|
short flag, active; /* active= used currently by a uiBlock */
|
|
short control;
|
|
short snap;
|
|
short old_ofsx, old_ofsy; /* for stow */
|
|
int sortcounter; /* when sorting panels, it uses this to put new ones in right place */
|
|
struct Panel *paneltab; /* this panel is tabbed in *paneltab */
|
|
} Panel;
|
|
|
|
typedef struct ScrArea {
|
|
struct ScrArea *next, *prev;
|
|
ScrVert *v1, *v2, *v3, *v4;
|
|
bScreen *full; /* if area==full, this is the parent */
|
|
float winmat[4][4];
|
|
rcti totrct, headrct, winrct;
|
|
|
|
short headwin, win;
|
|
short headertype; /* 0=no header, 1= down, 2= up */
|
|
char spacetype, butspacetype; /* SPACE_... */
|
|
short winx, winy; /* size */
|
|
char head_swap, head_equal;
|
|
char win_swap, win_equal;
|
|
|
|
short headbutlen, headbutofs;
|
|
short cursor, flag;
|
|
|
|
ScriptLink scriptlink;
|
|
|
|
ListBase spacedata;
|
|
ListBase uiblocks;
|
|
ListBase panels;
|
|
} ScrArea;
|
|
|
|
#define MAXWIN 128
|
|
|
|
/* area->flag */
|
|
#define HEADER_NO_PULLDOWN 1
|
|
|
|
/* If you change EDGEWIDTH, also do the global arrat edcol[] */
|
|
#define EDGEWIDTH 1
|
|
#define EDGEWIDTH2 0
|
|
#define AREAGRID 4
|
|
#define AREAMINX 32
|
|
#define HEADERY 26
|
|
#define AREAMINY (HEADERY+EDGEWIDTH)
|
|
|
|
#define HEADERDOWN 1
|
|
#define HEADERTOP 2
|
|
|
|
#define SCREENNORMAL 0
|
|
#define SCREENFULL 1
|
|
#define SCREENAUTOPLAY 2
|
|
|
|
/* sa->win_swap */
|
|
#define WIN_FRONT_OK 1
|
|
#define WIN_BACK_OK 2
|
|
#define WIN_EQUAL 3
|
|
|
|
#define L_SCROLL 1 /* left scrollbar */
|
|
#define R_SCROLL 2
|
|
#define VERT_SCROLL 3
|
|
#define T_SCROLL 4
|
|
#define B_SCROLL 8
|
|
#define HOR_SCROLL 12
|
|
#define B_SCROLLO 16 /* special hack for outliner hscroll - prevent hanging */
|
|
#define HOR_SCROLLO 20 /* in older versions of blender */
|
|
|
|
/* Panel->snap - for snapping to screen edges */
|
|
#define PNL_SNAP_NONE 0
|
|
#define PNL_SNAP_TOP 1
|
|
#define PNL_SNAP_RIGHT 2
|
|
#define PNL_SNAP_BOTTOM 4
|
|
#define PNL_SNAP_LEFT 8
|
|
|
|
#define PNL_SNAP_DIST 9.0
|
|
|
|
/* screen handlers */
|
|
#define SCREEN_MAXHANDLER 8
|
|
|
|
#define SCREEN_HANDLER_ANIM 1
|
|
#define SCREEN_HANDLER_PYTHON 2
|
|
#define SCREEN_HANDLER_VERSE 3
|
|
|
|
#endif
|
|
|