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/interface/interface_handlers.c')
-rw-r--r--source/blender/editors/interface/interface_handlers.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 6873c64a188..37d5191691a 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -2781,6 +2781,34 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
return WM_UI_HANDLER_BREAK;
}
+ else if (event->type == ZEROKEY && event->val == KM_PRESS) {
+ if (but->a1==9){
+ float rgb[3], hsv[3], def_hsv[3];
+ float *def;
+ int len;
+
+ /* reset only value */
+
+ len= RNA_property_array_length(&but->rnapoin, but->rnaprop);
+ if (len >= 3) {
+ def= MEM_callocN(sizeof(float)*len, "reset_defaults - float");
+
+ RNA_property_float_get_default_array(&but->rnapoin, but->rnaprop, def);
+ rgb_to_hsv(def[0], def[1], def[2], def_hsv, def_hsv+1, def_hsv+2);
+
+ ui_get_but_vectorf(but, rgb);
+ rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+
+ hsv_to_rgb(hsv[0], hsv[1], def_hsv[2], rgb, rgb+1, rgb+2);
+ ui_set_but_vectorf(but, rgb);
+
+ RNA_property_update(C, &but->rnapoin, but->rnaprop);
+
+ MEM_freeN(def);
+ }
+ return WM_UI_HANDLER_BREAK;
+ }
+ }
}
else if(data->state == BUTTON_STATE_NUM_EDITING) {
if(event->type == ESCKEY) {
@@ -2849,6 +2877,32 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
return WM_UI_HANDLER_BREAK;
}
+ else if (event->type == ZEROKEY && event->val == KM_PRESS) {
+ float rgb[3], hsv[3], def_hsv[3];
+ float *def;
+ int len;
+
+ /* reset only saturation */
+
+ len= RNA_property_array_length(&but->rnapoin, but->rnaprop);
+ if (len >= 3) {
+ def= MEM_callocN(sizeof(float)*len, "reset_defaults - float");
+
+ RNA_property_float_get_default_array(&but->rnapoin, but->rnaprop, def);
+ rgb_to_hsv(def[0], def[1], def[2], def_hsv, def_hsv+1, def_hsv+2);
+
+ ui_get_but_vectorf(but, rgb);
+ rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+
+ hsv_to_rgb(hsv[0], def_hsv[1], hsv[2], rgb, rgb+1, rgb+2);
+ ui_set_but_vectorf(but, rgb);
+
+ RNA_property_update(C, &but->rnapoin, but->rnaprop);
+
+ MEM_freeN(def);
+ }
+ return WM_UI_HANDLER_BREAK;
+ }
}
else if(data->state == BUTTON_STATE_NUM_EDITING) {
if(event->type == ESCKEY) {
@@ -3724,6 +3778,11 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
return WM_UI_HANDLER_BREAK;
}
+ /* reset to default */
+ else if(event->type == ZEROKEY && event->val == KM_PRESS) {
+ if (!(ELEM(but->type, HSVCIRCLE, HSVCUBE)))
+ ui_set_but_default(C, but);
+ }
/* handle menu */
else if(event->type == RIGHTMOUSE && event->val == KM_PRESS) {
/* RMB has two options now */