Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna/DNA_screen_types.h')
-rw-r--r--source/blender/makesdna/DNA_screen_types.h191
1 files changed, 133 insertions, 58 deletions
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index 9f0a70d9bca..e51da0c0818 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -1,6 +1,4 @@
/**
- * blenlib/DNA_screen_types.h (mar-2001 nzc)
- *
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -22,9 +20,7 @@
* 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.
+ * Contributor(s): Blender Foundation
*
* ***** END GPL LICENSE BLOCK *****
*/
@@ -32,23 +28,50 @@
#define DNA_SCREEN_TYPES_H
#include "DNA_listBase.h"
+#include "DNA_view2d_types.h"
#include "DNA_vec_types.h"
#include "DNA_ID.h"
-#include "DNA_scriptlink_types.h"
+struct SpaceType;
+struct SpaceLink;
+struct ARegion;
+struct ARegionType;
+struct PanelType;
+struct HeaderType;
struct Scene;
+struct uiLayout;
+struct wmTimer;
typedef struct bScreen {
ID id;
- ListBase vertbase, edgebase, areabase;
+
+ ListBase vertbase; /* screens have vertices/edges to define areas */
+ ListBase edgebase;
+ ListBase areabase;
+ ListBase regionbase; /* screen level regions (menus), runtime only */
+
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 */
+ struct Scene *newscene; /* temporary when switching */
+
+ short full; /* fade out? */
+ short winid; /* winid from WM, starts with 1 */
+ short do_draw; /* notifier for drawing edges */
+ short do_refresh; /* notifier for scale screen, changed screen, etc */
+ short do_draw_gesture; /* notifier for gesture draw. */
+ short do_draw_paintcursor; /* notifier for paint cursor draw. */
+ short swap; /* indicator to survive swap-exchange systems */
+ short pad;
+
+ short mainwin; /* screensize subwindow, for screenedges and global menus */
+ short subwinactive; /* active subwindow */
+
+ int pad2;
+
+ struct wmTimer *animtimer; /* if set, screen has timer handler added in window */
+ void *context; /* context callback */
+
+ short handler[8]; /* similar to space handler */
} bScreen;
typedef struct ScrVert {
@@ -65,63 +88,93 @@ typedef struct ScrEdge {
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;
+
+ struct PanelType *type; /* runtime */
+ struct uiLayout *layout; /* runtime for drawing */
+
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 labelofs, pad;
+ short flag, runtime_flag;
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 */
+ int sortorder; /* panels are aligned according to increasing sortorder */
struct Panel *paneltab; /* this panel is tabbed in *paneltab */
+ void *activedata; /* runtime for panel manipulation */
+
+ int list_scroll, list_size;
+ char list_search[64];
} 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;
+ rcti totrct; /* rect bound by v1 v2 v3 v4 */
+
+ char spacetype, butspacetype; /* SPACE_..., butspacetype is button arg */
+ short winx, winy; /* size */
- short headbutlen, headbutofs;
+ short headertype; /* OLD! 0=no header, 1= down, 2= up */
+ short pad;
+ short do_refresh; /* private, for spacetype refresh callback */
short cursor, flag;
-
- ScriptLink scriptlink;
-
- ListBase spacedata;
- ListBase uiblocks;
- ListBase panels;
+
+ struct SpaceType *type; /* callbacks for this space type */
+
+ ListBase spacedata; /* SpaceLink */
+ ListBase regionbase; /* ARegion */
+ ListBase handlers; /* wmEventHandler */
+
+ ListBase actionzones; /* AZone */
} ScrArea;
-#define MAXWIN 128
+typedef struct ARegion {
+ struct ARegion *next, *prev;
+
+ View2D v2d; /* 2D-View scrolling/zoom info (most regions are 2d anyways) */
+ rcti winrct; /* coordinates of region */
+ rcti drawrct; /* runtime for partial redraw, same or smaller than winrct */
+ short winx, winy; /* size */
+
+ short swinid;
+ short regiontype; /* window, header, etc. identifier for drawing */
+ short alignment; /* how it should split */
+ short flag; /* hide, ... */
+
+ float fsize; /* current split size in float */
+
+ short do_draw; /* private, cached notifier events */
+ short swap; /* private, indicator to survive swap-exchange */
+ int pad1;
+
+ struct ARegionType *type; /* callbacks for this region type */
+
+ ListBase uiblocks; /* uiBlock */
+ ListBase panels; /* Panel */
+ ListBase handlers; /* wmEventHandler */
+
+ char *headerstr; /* use this string to draw info */
+ void *regiondata; /* XXX 2.50, need spacedata equivalent? */
+} ARegion;
+
+/* swap */
+#define WIN_BACK_OK 1
+#define WIN_FRONT_OK 2
+#define WIN_EQUAL 3
/* area->flag */
#define HEADER_NO_PULLDOWN 1
+#define AREA_FLAG_DRAWJOINTO 2
+#define AREA_FLAG_DRAWJOINFROM 4
/* 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
@@ -133,20 +186,8 @@ typedef struct ScrArea {
#define SCREENNORMAL 0
#define SCREENFULL 1
#define SCREENAUTOPLAY 2
+#define SCREENTEMP 3
-/* 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
@@ -157,6 +198,10 @@ typedef struct ScrArea {
#define PNL_SNAP_DIST 9.0
+/* paneltype flag */
+#define PNL_DEFAULT_CLOSED 1
+#define PNL_NO_HEADER 2
+
/* screen handlers */
#define SCREEN_MAXHANDLER 8
@@ -164,5 +209,35 @@ typedef struct ScrArea {
#define SCREEN_HANDLER_PYTHON 2
#define SCREEN_HANDLER_VERSE 3
+/* regiontype, first two are the default set */
+#define RGN_TYPE_WINDOW 0
+#define RGN_TYPE_HEADER 1
+#define RGN_TYPE_CHANNELS 2
+#define RGN_TYPE_TEMPORARY 3
+#define RGN_TYPE_UI 4
+#define RGN_TYPE_TOOLS 5
+#define RGN_TYPE_TOOL_PROPS 6
+
+/* region alignment */
+#define RGN_ALIGN_NONE 0
+#define RGN_ALIGN_TOP 1
+#define RGN_ALIGN_BOTTOM 2
+#define RGN_ALIGN_LEFT 3
+#define RGN_ALIGN_RIGHT 4
+#define RGN_ALIGN_HSPLIT 5
+#define RGN_ALIGN_VSPLIT 6
+#define RGN_ALIGN_FLOAT 7
+#define RGN_ALIGN_QSPLIT 8
+#define RGN_OVERLAP_TOP 9
+#define RGN_OVERLAP_BOTTOM 10
+#define RGN_OVERLAP_LEFT 11
+#define RGN_OVERLAP_RIGHT 12
+
+#define RGN_SPLIT_PREV 32
+
+/* region flag */
+#define RGN_FLAG_HIDDEN 1
+#define RGN_FLAG_TOO_SMALL 2
+
#endif