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/editors/space_buttons/buttons_object.c')
-rw-r--r--source/blender/editors/space_buttons/buttons_object.c77
1 files changed, 57 insertions, 20 deletions
diff --git a/source/blender/editors/space_buttons/buttons_object.c b/source/blender/editors/space_buttons/buttons_object.c
index bb7bf346808..965376b731a 100644
--- a/source/blender/editors/space_buttons/buttons_object.c
+++ b/source/blender/editors/space_buttons/buttons_object.c
@@ -30,14 +30,19 @@
#include <stdio.h>
#include <stdlib.h>
+#include "MEM_guardedalloc.h"
+
#include "DNA_group_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
+#include "BLI_listbase.h"
+
#include "BKE_context.h"
#include "BKE_group.h"
#include "BKE_main.h"
+#include "BKE_screen.h"
#include "UI_interface.h"
#include "UI_resources.h"
@@ -46,8 +51,9 @@
#include "WM_types.h"
-static void object_panel_transform(const bContext *C, uiLayout *layout)
+static void object_panel_transform(const bContext *C, Panel *pnl)
{
+ uiLayout *layout= pnl->layout;
Object *ob= CTX_data_active_object(C);
PointerRNA obptr;
@@ -59,8 +65,9 @@ static void object_panel_transform(const bContext *C, uiLayout *layout)
uiItemR(layout, UI_TSLOT_COLUMN_3, NULL, 0, &obptr, "scale");
}
-static void object_panel_groups(const bContext *C, uiLayout *layout)
+static void object_panel_groups(const bContext *C, Panel *pnl)
{
+ uiLayout *layout= pnl->layout;
Main *bmain= CTX_data_main(C);
Object *ob= CTX_data_active_object(C);
Group *group;
@@ -93,8 +100,9 @@ static void object_panel_groups(const bContext *C, uiLayout *layout)
}
}
-static void object_panel_display(const bContext *C, uiLayout *layout)
+static void object_panel_display(const bContext *C, Panel *pnl)
{
+ uiLayout *layout= pnl->layout;
Object *ob= CTX_data_active_object(C);
PointerRNA obptr;
@@ -115,8 +123,9 @@ static void object_panel_display(const bContext *C, uiLayout *layout)
uiItemR(layout, UI_TSLOT_COLUMN_2, "Transparency", 0, &obptr, "draw_transparent");
}
-static void object_panel_duplication(const bContext *C, uiLayout *layout)
+static void object_panel_duplication(const bContext *C, Panel *pnl)
{
+ uiLayout *layout= pnl->layout;
Object *ob= CTX_data_active_object(C);
PointerRNA obptr;
@@ -138,8 +147,9 @@ static void object_panel_duplication(const bContext *C, uiLayout *layout)
}
}
-static void object_panel_animation(const bContext *C, uiLayout *layout)
+static void object_panel_animation(const bContext *C, Panel *pnl)
{
+ uiLayout *layout= pnl->layout;
Object *ob= CTX_data_active_object(C);
PointerRNA obptr;
@@ -159,21 +169,48 @@ static void object_panel_animation(const bContext *C, uiLayout *layout)
uiItemR(layout, UI_TSLOT_COLUMN_2, "Rotation", 0, &obptr, "track_rotation");
}
-void buttons_object(const bContext *C, ARegion *ar)
+void buttons_object_register(ARegionType *art)
{
- SpaceButs *sbuts= (SpaceButs*)CTX_wm_space_data(C);
- Object *ob= CTX_data_active_object(C);
- int tab= sbuts->tab[CONTEXT_OBJECT];
-
- if(tab == TAB_OBJECT_OBJECT) {
- if(!ob)
- return;
-
- uiPanelLayout(C, ar, "OBJECT_PT_transform", "Transform", "Object", object_panel_transform, 0);
- uiPanelLayout(C, ar, "OBJECT_PT_groups", "Groups", "Object", object_panel_groups, 1);
- uiPanelLayout(C, ar, "OBJECT_PT_display", "Display", "Object", object_panel_display, 2);
- uiPanelLayout(C, ar, "OBJECT_PT_duplication", "Duplication", "Object", object_panel_duplication, 3);
- uiPanelLayout(C, ar, "OBJECT_PT_animation", "Animation", "Object", object_panel_animation, 4);
- }
+ PanelType *pt;
+
+ /* panels: transform */
+ pt= MEM_callocN(sizeof(PanelType), "spacetype buttons panel");
+ pt->idname= "OBJECT_PT_transform";
+ pt->name= "Transform";
+ pt->context= "object";
+ pt->draw= object_panel_transform;
+ BLI_addtail(&art->paneltypes, pt);
+
+ /* panels: groups */
+ pt= MEM_callocN(sizeof(PanelType), "spacetype buttons panel");
+ pt->idname= "OBJECT_PT_groups";
+ pt->name= "Groups";
+ pt->context= "object";
+ pt->draw= object_panel_groups;
+ BLI_addtail(&art->paneltypes, pt);
+
+ /* panels: display */
+ pt= MEM_callocN(sizeof(PanelType), "spacetype buttons panel");
+ pt->idname= "OBJECT_PT_display";
+ pt->name= "Display";
+ pt->context= "object";
+ pt->draw= object_panel_display;
+ BLI_addtail(&art->paneltypes, pt);
+
+ /* panels: duplication */
+ pt= MEM_callocN(sizeof(PanelType), "spacetype buttons panel");
+ pt->idname= "OBJECT_PT_duplication";
+ pt->name= "Duplication";
+ pt->context= "object";
+ pt->draw= object_panel_duplication;
+ BLI_addtail(&art->paneltypes, pt);
+
+ /* panels: animation */
+ pt= MEM_callocN(sizeof(PanelType), "spacetype buttons panel");
+ pt->idname= "OBJECT_PT_animation";
+ pt->name= "Animation";
+ pt->context= "object";
+ pt->draw= object_panel_animation;
+ BLI_addtail(&art->paneltypes, pt);
}