[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60803] trunk/blender/source/blender/ editors/interface: Project Pampa request: copy-paste for curve mapping widgets
Sergey Sharybin
sergey.vfx at gmail.com
Wed Oct 16 19:48:33 CEST 2013
Revision: 60803
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60803
Author: nazgul
Date: 2013-10-16 17:48:33 +0000 (Wed, 16 Oct 2013)
Log Message:
-----------
Project Pampa request: copy-paste for curve mapping widgets
Use C-c for copy, C-v for paste over the widget.
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface.c
trunk/blender/source/blender/editors/interface/interface_handlers.c
trunk/blender/source/blender/editors/interface/interface_intern.h
Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c 2013-10-16 14:44:53 UTC (rev 60802)
+++ trunk/blender/source/blender/editors/interface/interface.c 2013-10-16 17:48:33 UTC (rev 60803)
@@ -4186,5 +4186,6 @@
void UI_exit(void)
{
ui_resources_free();
+ ui_button_clipboard_free();
}
Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c 2013-10-16 14:44:53 UTC (rev 60802)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c 2013-10-16 17:48:33 UTC (rev 60803)
@@ -242,6 +242,11 @@
static void ui_handle_button_activate(bContext *C, ARegion *ar, uiBut *but, uiButtonActivateType type);
static void button_timers_tooltip_remove(bContext *C, uiBut *but);
+/* buttons clipboard */
+static ColorBand but_copypaste_coba = {0};
+static CurveMapping but_copypaste_curve = {0};
+static bool but_copypaste_curve_alive = false;
+
/* ******************** menu navigation helpers ************** */
/* assumes event type is MOUSEPAN */
@@ -1324,7 +1329,6 @@
/* c = copy, v = paste */
static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data, char mode)
{
- static ColorBand but_copypaste_coba = {0};
char buf[UI_MAX_DRAW_STR + 1] = {0};
if (mode == 'v' && but->lock == TRUE) {
@@ -1458,6 +1462,28 @@
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
}
+ else if (but->type == BUT_CURVE) {
+ if (mode == 'c') {
+ if (but->poin == NULL)
+ return;
+
+ but_copypaste_curve_alive = true;
+ curvemapping_free_data(&but_copypaste_curve);
+ curvemapping_copy_data(&but_copypaste_curve, (CurveMapping *) but->poin);
+ }
+ else {
+ if (!but_copypaste_curve_alive)
+ return;
+
+ if (!but->poin)
+ but->poin = MEM_callocN(sizeof(CurveMapping), "curvemapping");
+
+ button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
+ curvemapping_free_data((CurveMapping *) but->poin);
+ curvemapping_copy_data((CurveMapping *) but->poin, &but_copypaste_curve);
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
+ }
/* operator button (any type) */
else if (but->optype) {
if (mode == 'c') {
@@ -7851,3 +7877,7 @@
}
}
+void ui_button_clipboard_free(void)
+{
+ curvemapping_free_data(&but_copypaste_curve);
+}
Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h 2013-10-16 14:44:53 UTC (rev 60802)
+++ trunk/blender/source/blender/editors/interface/interface_intern.h 2013-10-16 17:48:33 UTC (rev 60803)
@@ -523,6 +523,7 @@
extern bool ui_button_is_active(struct ARegion *ar);
extern int ui_button_open_menu_direction(uiBut *but);
extern void ui_button_text_password_hide(char password_str[UI_MAX_DRAW_STR], uiBut *but, int restore);
+void ui_button_clipboard_free(void);
/* interface_widgets.c */
void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
More information about the Bf-blender-cvs
mailing list