diff options
Diffstat (limited to 'source/blender/editors/space_clip/clip_toolbar.c')
-rw-r--r-- | source/blender/editors/space_clip/clip_toolbar.c | 97 |
1 files changed, 6 insertions, 91 deletions
diff --git a/source/blender/editors/space_clip/clip_toolbar.c b/source/blender/editors/space_clip/clip_toolbar.c index d2a7244eded..3e4d0cd5bb4 100644 --- a/source/blender/editors/space_clip/clip_toolbar.c +++ b/source/blender/editors/space_clip/clip_toolbar.c @@ -32,6 +32,7 @@ #include <string.h> #include "DNA_windowmanager_types.h" +#include "DNA_workspace_types.h" #include "MEM_guardedalloc.h" @@ -105,7 +106,7 @@ static int properties_exec(bContext *C, wmOperator *UNUSED(op)) void CLIP_OT_properties(wmOperatorType *ot) { /* identifiers */ - ot->name = "Properties"; + ot->name = "Toggle Sidebar"; ot->description = "Toggle the properties region visibility"; ot->idname = "CLIP_OT_properties"; @@ -118,19 +119,17 @@ void CLIP_OT_properties(wmOperatorType *ot) static ARegion *clip_has_tools_region(ScrArea *sa) { - ARegion *ar, *artool = NULL, *arprops = NULL, *arhead; + ARegion *ar, *artool = NULL, *arhead; for (ar = sa->regionbase.first; ar; ar = ar->next) { if (ar->regiontype == RGN_TYPE_TOOLS) artool = ar; - - if (ar->regiontype == RGN_TYPE_TOOL_PROPS) - arprops = ar; } /* tool region hide/unhide also hides props */ - if (arprops && artool) + if (artool) { return artool; + } if (artool == NULL) { /* add subdiv level; after header */ @@ -149,15 +148,6 @@ static ARegion *clip_has_tools_region(ScrArea *sa) artool->flag = RGN_FLAG_HIDDEN; } - if (arprops == NULL) { - /* add extra subdivided region for tool properties */ - arprops = MEM_callocN(sizeof(ARegion), "tool props for clip"); - - BLI_insertlinkafter(&sa->regionbase, artool, arprops); - arprops->regiontype = RGN_TYPE_TOOL_PROPS; - arprops->alignment = RGN_ALIGN_BOTTOM | RGN_SPLIT_PREV; - } - return artool; } @@ -180,7 +170,7 @@ static int tools_exec(bContext *C, wmOperator *UNUSED(op)) void CLIP_OT_tools(wmOperatorType *ot) { /* identifiers */ - ot->name = "Tools"; + ot->name = "Toggle Toolbar"; ot->description = "Toggle clip tools panel"; ot->idname = "CLIP_OT_tools"; @@ -188,78 +178,3 @@ void CLIP_OT_tools(wmOperatorType *ot) ot->exec = tools_exec; ot->poll = tools_poll; } - -/************************** redo panel ******************************/ - -static void clip_panel_operator_redo_buts(const bContext *C, Panel *pa, wmOperator *op) -{ - uiTemplateOperatorPropertyButs(C, pa->layout, op, NULL, 'V', 0); -} - -static void clip_panel_operator_redo_header(const bContext *C, Panel *pa) -{ - wmOperator *op = WM_operator_last_redo(C); - - if (op) - BLI_strncpy(pa->drawname, RNA_struct_ui_name(op->type->srna), sizeof(pa->drawname)); - else - BLI_strncpy(pa->drawname, IFACE_("Operator"), sizeof(pa->drawname)); -} - -static void clip_panel_operator_redo_operator(const bContext *C, Panel *pa, wmOperator *op) -{ - if (op->type->flag & OPTYPE_MACRO) { - for (op = op->macro.first; op; op = op->next) { - uiItemL(pa->layout, RNA_struct_ui_name(op->type->srna), ICON_NONE); - clip_panel_operator_redo_operator(C, pa, op); - } - } - else { - clip_panel_operator_redo_buts(C, pa, op); - } -} - -/* TODO de-duplicate redo panel functions - campbell */ -static void clip_panel_operator_redo(const bContext *C, Panel *pa) -{ - wmOperator *op = WM_operator_last_redo(C); - ARegion *ar; - ARegion *ar1; - - if (op == NULL) - return; - - /* keep in sync with logic in ED_undo_operator_repeat() */ - ar = CTX_wm_region(C); - ar1 = BKE_area_find_region_type(CTX_wm_area(C), RGN_TYPE_WINDOW); - if (ar1) - CTX_wm_region_set((bContext *)C, ar1); - - if (WM_operator_poll((bContext *)C, op->type)) { - uiBlock *block = uiLayoutGetBlock(pa->layout); - - if (!WM_operator_check_ui_enabled(C, op->type->name)) - uiLayoutSetEnabled(pa->layout, false); - - /* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */ - UI_block_func_handle_set(block, ED_undo_operator_repeat_cb_evt, op); - - clip_panel_operator_redo_operator(C, pa, op); - } - - /* set region back */ - CTX_wm_region_set((bContext *)C, ar); -} - -void ED_clip_tool_props_register(ARegionType *art) -{ - PanelType *pt; - - pt = MEM_callocN(sizeof(PanelType), "spacetype clip panel last operator"); - strcpy(pt->idname, "CLIP_PT_last_operator"); - strcpy(pt->label, N_("Operator")); - strcpy(pt->translation_context, BLT_I18NCONTEXT_DEFAULT_BPYRNA); - pt->draw_header = clip_panel_operator_redo_header; - pt->draw = clip_panel_operator_redo; - BLI_addtail(&art->paneltypes, pt); -} |