[Bf-blender-cvs] [7a4cec4] pie-menus: use macro for numpad direction & deduplicate
Campbell Barton
noreply at git.blender.org
Wed Jul 30 13:32:35 CEST 2014
Commit: 7a4cec4c224814d41aa49a7923fe057f129cf587
Author: Campbell Barton
Date: Wed Jul 30 21:29:35 2014 +1000
Branches: pie-menus
https://developer.blender.org/rB7a4cec4c224814d41aa49a7923fe057f129cf587
use macro for numpad direction & deduplicate
===================================================================
M source/blender/editors/interface/interface_handlers.c
===================================================================
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index f20821f..8bce619 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -8710,6 +8710,9 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
}
}
else {
+ /* direction from numpad */
+ RadialDirection num_dir = UI_RADIAL_NONE;
+
switch (event->type) {
case MOUSEMOVE:
/* mouse move should always refresh the area for pie menus */
@@ -8770,39 +8773,24 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
break;
}
- case ONEKEY: case PAD1:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_N);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case TWOKEY: case PAD2:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_NE);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case THREEKEY: case PAD3:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_E);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case FOURKEY: case PAD4:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_SE);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case FIVEKEY: case PAD5:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_S);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case SIXKEY: case PAD6:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_SW);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case SEVENKEY: case PAD7:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_W);
- retval = ui_pie_button_activate(C, but, menu, is_click_style);
- break;
- case EIGHTKEY: case PAD8:
- but = ui_pie_dir_activate(block, event, UI_RADIAL_NW);
+#define CASE_NUM_TO_DIR(n, d) \
+ case (ZEROKEY + n): case (PAD0 + n): \
+ { if (num_dir == UI_RADIAL_NONE) num_dir = d; } (void)0
+
+ CASE_NUM_TO_DIR(1, UI_RADIAL_SW);
+ CASE_NUM_TO_DIR(2, UI_RADIAL_S);
+ CASE_NUM_TO_DIR(3, UI_RADIAL_SE);
+ CASE_NUM_TO_DIR(4, UI_RADIAL_W);
+ CASE_NUM_TO_DIR(6, UI_RADIAL_E);
+ CASE_NUM_TO_DIR(7, UI_RADIAL_NW);
+ CASE_NUM_TO_DIR(8, UI_RADIAL_N);
+ CASE_NUM_TO_DIR(9, UI_RADIAL_NE);
+ {
+ but = ui_pie_dir_activate(block, event, num_dir);
retval = ui_pie_button_activate(C, but, menu, is_click_style);
break;
-
+ }
+#undef CASE_NUM_TO_DIR
default:
retval = ui_handle_menu_button(C, event, menu);
break;
More information about the Bf-blender-cvs
mailing list