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:
authorCampbell Barton <ideasman42@gmail.com>2012-08-11 05:05:09 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-08-11 05:05:09 +0400
commitfdc5e4f5a6207a7cefb0fd9c58438dd79553ebfb (patch)
tree0aef817db19f642529a62cc034be8681b45dee1c /source/blender/windowmanager/WM_types.h
parentb8b7e5d1374fa17ed3776bd6554d173304858dbf (diff)
docs for window structs
Diffstat (limited to 'source/blender/windowmanager/WM_types.h')
-rw-r--r--source/blender/windowmanager/WM_types.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index a15d020c230..43435ce67e9 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -28,6 +28,73 @@
* \ingroup wm
*/
+/*
+ * Overview of WM structs
+ * ======================
+ *
+ * > wmWindowManager (window manager stores a list of windows)
+ * > > wmWindow (window has an active screen)
+ * > > > bScreen (link to ScrAreas via 'areabase')
+ * > > > > ScrArea (stores multiple spaces via space links via 'spacedata')
+ * > > > > > SpaceLink (base struct for space data for all different space types)
+ * > > > > ScrArea (stores multiple regions via 'regionbase')
+ * > > > > > ARegion
+ *
+ *
+ * Window Layout
+ * =============
+ *
+ * wmWindow -> bScreen
+ * +----------------------------------------------------------+
+ * |+-----------------------------------------+-------------+ |
+ * ||ScrArea (links to 3D view) |ScrArea | |
+ * ||+-------++----------+-------------------+|(links to | |
+ * |||ARegion|| |ARegion (quad view)|| properties) | |
+ * |||(tools)|| | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| |+----------+-------------------+| | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||+-------++----------+-------------------+| | |
+ * |+-----------------------------------------+-------------+ |
+ * +----------------------------------------------------------+
+ *
+ *
+ * Space Data
+ * ==========
+ *
+ * ScrArea's store a list of space data (SpaceLinks), each of unique type.
+ * The first one is the displayed in the UI, others are added as needed.
+ *
+ * +----------------------------+ <-- sa->spacedata.first;
+ * | |
+ * | |---+ <-- other inactive SpaceLink's stored.
+ * | | |
+ * | | |---+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * +----------------------------+ | |
+ * | | |
+ * +-----------------------------+ |
+ * | |
+ * +------------------------------+
+ *
+ * A common way to get the space from the ScrArea:
+ *
+ * if (sa->spacetype == SPACE_VIEW3D) {
+ * View3D *v3d = sa->spacedata.first;
+ * ...
+ * }
+ *
+ */
+
#ifndef __WM_TYPES_H__
#define __WM_TYPES_H__