90
94
static int properties_exec(bContext *C, wmOperator *UNUSED(op))
92
96
ScrArea *sa = CTX_wm_area(C);
93
ARegion *ar = clip_has_properties_region(sa);
97
ARegion *ar = ED_clip_has_properties_region(sa);
99
if (ar && ar->alignment != RGN_ALIGN_NONE)
96
100
ED_region_toggle_hidden(C, ar);
98
102
return OPERATOR_FINISHED;
152
156
BLI_insertlinkafter(&sa->regionbase, artool, arprops);
153
157
arprops->regiontype = RGN_TYPE_TOOL_PROPS;
154
arprops->alignment = RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV;
158
arprops->alignment = RGN_ALIGN_BOTTOM | RGN_SPLIT_PREV;
167
171
ScrArea *sa = CTX_wm_area(C);
168
172
ARegion *ar = clip_has_tools_region(sa);
174
if (ar && ar->alignment != RGN_ALIGN_NONE)
171
175
ED_region_toggle_hidden(C, ar);
173
177
return OPERATOR_FINISHED;
197
201
wmOperator *op = WM_operator_last_redo(C);
200
BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname));
204
BLI_strncpy(pa->drawname, RNA_struct_ui_name(op->type->srna), sizeof(pa->drawname));
202
BLI_strncpy(pa->drawname, "Operator", sizeof(pa->drawname));
206
BLI_strncpy(pa->drawname, IFACE_("Operator"), sizeof(pa->drawname));
205
209
static void clip_panel_operator_redo_operator(const bContext *C, Panel *pa, wmOperator *op)
207
211
if (op->type->flag & OPTYPE_MACRO) {
208
212
for (op = op->macro.first; op; op = op->next) {
209
uiItemL(pa->layout, op->type->name, ICON_NONE);
213
uiItemL(pa->layout, RNA_struct_ui_name(op->type->srna), ICON_NONE);
210
214
clip_panel_operator_redo_operator(C, pa, op);
219
223
static void clip_panel_operator_redo(const bContext *C, Panel *pa)
221
225
wmOperator *op = WM_operator_last_redo(C);
227
if (WM_operator_poll((bContext*)C, op->type) == 0)
230
block = uiLayoutGetBlock(pa->layout);
232
if (!WM_operator_check_ui_enabled(C, op->type->name))
233
uiLayoutSetEnabled(pa->layout, 0);
235
/* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */
236
uiBlockSetHandleFunc(block, ED_undo_operator_repeat_cb_evt, op);
238
clip_panel_operator_redo_operator(C, pa, op);
232
/* keep in sync with logic in ED_undo_operator_repeat() */
233
ar = CTX_wm_region(C);
234
ar1 = BKE_area_find_region_type(CTX_wm_area(C), RGN_TYPE_WINDOW);
236
CTX_wm_region_set((bContext *)C, ar1);
238
if (WM_operator_poll((bContext *)C, op->type)) {
239
uiBlock *block = uiLayoutGetBlock(pa->layout);
241
if (!WM_operator_check_ui_enabled(C, op->type->name))
242
uiLayoutSetEnabled(pa->layout, FALSE);
244
/* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */
245
uiBlockSetHandleFunc(block, ED_undo_operator_repeat_cb_evt, op);
247
clip_panel_operator_redo_operator(C, pa, op);
250
/* set region back */
251
CTX_wm_region_set((bContext *)C, ar);
241
254
void ED_clip_tool_props_register(ARegionType *art)