diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-12-29 16:43:19 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-12-29 16:55:05 +0400 |
commit | 42aa19088e02e296b4cc19b7171de2840e111539 (patch) | |
tree | a93965803fdacffc75e798cd3a1f3e094d00aa30 /source/blender/editors | |
parent | 1c8d1569dac3e9bc5afd8aa5f5d12a93354c8cad (diff) |
Text3d: add select all operator
also add Edit menu for 3d text and move cut/copy/paste there.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/curve/curve_intern.h | 2 | ||||
-rw-r--r-- | source/blender/editors/curve/curve_ops.c | 4 | ||||
-rw-r--r-- | source/blender/editors/curve/editfont.c | 41 |
3 files changed, 47 insertions, 0 deletions
diff --git a/source/blender/editors/curve/curve_intern.h b/source/blender/editors/curve/curve_intern.h index ecadb579fe2..878e0246ad5 100644 --- a/source/blender/editors/curve/curve_intern.h +++ b/source/blender/editors/curve/curve_intern.h @@ -56,6 +56,8 @@ void FONT_OT_case_set(struct wmOperatorType *ot); void FONT_OT_style_toggle(struct wmOperatorType *ot); void FONT_OT_style_set(struct wmOperatorType *ot); +void FONT_OT_select_all(struct wmOperatorType *ot); + void FONT_OT_text_copy(struct wmOperatorType *ot); void FONT_OT_text_cut(struct wmOperatorType *ot); void FONT_OT_text_paste(struct wmOperatorType *ot); diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index c2fe87945bf..618644032c0 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -65,6 +65,8 @@ void ED_operatortypes_curve(void) WM_operatortype_append(FONT_OT_style_toggle); WM_operatortype_append(FONT_OT_style_set); + WM_operatortype_append(FONT_OT_select_all); + WM_operatortype_append(FONT_OT_text_copy); WM_operatortype_append(FONT_OT_text_cut); WM_operatortype_append(FONT_OT_text_paste); @@ -208,6 +210,8 @@ void ED_keymap_curve(wmKeyConfig *keyconf) RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_character", UPARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1); RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_character", DOWNARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1); + WM_keymap_add_item(keymap, "FONT_OT_select_all", AKEY, KM_PRESS, KM_CTRL, 0); + WM_keymap_add_item(keymap, "FONT_OT_text_copy", CKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "FONT_OT_text_cut", XKEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "FONT_OT_text_paste", VKEY, KM_PRESS, KM_CTRL, 0); diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 1ca97da5f74..59075d44c67 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -675,6 +675,47 @@ void FONT_OT_style_toggle(wmOperatorType *ot) RNA_def_enum(ot->srna, "style", style_items, CU_CHINFO_BOLD, "Style", "Style to set selection to"); } + +/* -------------------------------------------------------------------- */ +/* Select All */ + +static int font_select_all_exec(bContext *C, wmOperator *UNUSED(op)) +{ + Scene *scene = CTX_data_scene(C); + Object *obedit = CTX_data_edit_object(C); + Curve *cu = obedit->data; + + if (cu->len) { + cu->selstart = 1; + cu->selend = cu->len; + cu->pos = cu->len; + + text_update_edited(C, scene, obedit, true, FO_SELCHANGE); + + return OPERATOR_FINISHED; + } + else { + return OPERATOR_CANCELLED; + } + +} + +void FONT_OT_select_all(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Select All"; + ot->description = "Select all text"; + ot->idname = "FONT_OT_select_all"; + + /* api callbacks */ + ot->exec = font_select_all_exec; + ot->poll = ED_operator_editfont; + + /* flags */ + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; +} + + /******************* copy text operator ********************/ static void copy_selection(Object *obedit) |