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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-03-29 23:44:39 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-03-29 23:44:39 +0400
commit6705b6f96ea4255f6bd69a039562ed603a83a83e (patch)
treed8859110c9810e66666ba8add287ca201a0d6238 /source/blender/blenkernel/BKE_screen.h
parent9b7f44ceb56c741af10459924be7775ea91bfa68 (diff)
UI:
* Added a PanelType and HeaderType for registering panels and headers in regions. When the region draws, it will then automatically draw the ones that were registerd with poll and draw callbacks. Used for text header, properties and object buttons now.
Diffstat (limited to 'source/blender/blenkernel/BKE_screen.h')
-rw-r--r--source/blender/blenkernel/BKE_screen.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index dc1233e7db3..a25a7cff51d 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -36,11 +36,14 @@ struct bContext;
struct bContextDataResult;
struct bScreen;
struct ListBase;
+struct Panel;
struct ScrArea;
struct SpaceType;
struct wmNotifier;
struct wmWindow;
struct wmWindowManager;
+struct uiLayout;
+struct uiMenuItem;
/* spacetype has everything stored to get an editor working, it gets initialized via
ED_spacetypes_init() in editors/area/spacetypes.c */
@@ -122,12 +125,50 @@ typedef struct ARegionType {
/* custom drawing callbacks */
ListBase drawcalls;
+ /* panels type definitions */
+ ListBase paneltypes;
+
+ /* header type definitions */
+ ListBase headertypes;
+
/* hardcoded constraints, smaller than these values region is not visible */
int minsizex, minsizey;
/* default keymaps to add */
int keymapflag;
} ARegionType;
+/* panel types */
+
+typedef struct PanelType {
+ struct PanelType *next, *prev;
+
+ char *idname; /* unique name */
+ char *name; /* for panel header */
+ char *context; /* for buttons window */
+
+ /* verify if the panel should draw or not */
+ int (*poll)(const struct bContext *);
+ /* draw entirely, view changes should be handled here */
+ void (*draw)(const struct bContext *, struct Panel *);
+
+ /* python integration */
+ void *py_data;
+} PanelType;
+
+/* header types */
+
+typedef struct HeaderType {
+ struct HeaderType *next, *prev;
+
+ char *idname; /* unique name */
+ char *name; /* for UI */
+
+ /* draw entirely, view changes should be handled here */
+ void (*draw)(const struct bContext *, struct uiLayout *);
+
+ /* python integration */
+ void *py_data;
+} HeaderType;
/* spacetypes */
struct SpaceType *BKE_spacetype_from_id(int spaceid);