diff options
author | Mike Erwin <significant.bit@gmail.com> | 2011-06-25 22:50:03 +0400 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2011-06-25 22:50:03 +0400 |
commit | 651df035f790b6e82dec074972aad52d616b2d47 (patch) | |
tree | 7b2876904ff72574a11462e03696516d46f6ab23 /source/blender/windowmanager | |
parent | ec48695de1600bdf1592c1351f6239150cd26852 (diff) |
baby steps toward an NDOF popup menu
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 1b7333024e7..e36849e103c 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1374,6 +1374,48 @@ static void WM_OT_search_menu(wmOperatorType *ot) ot->poll= wm_search_menu_poll; } +// BEGIN ndof menu -- experimental! + +static int wm_ndof_menu_poll(bContext *C) +{ + if(CTX_wm_window(C)==NULL) + return 0; + + // if menu is already pulled up, another button press should dismiss it + // not sure if that behavior should go here or elsewhere... + + puts("ndof: menu poll"); + return 1; +} + +static int wm_ndof_menu_exec(bContext *UNUSED(C), wmOperator *UNUSED(op)) +{ + puts("ndof: menu exec"); + return OPERATOR_FINISHED; +} + +static int wm_ndof_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) +{ + puts("ndof: menu invoke"); + + uiPupMenuNotice(C, "Hello!"); + + return OPERATOR_CANCELLED; +} + +static void WM_OT_ndof_menu(wmOperatorType *ot) +{ + puts("ndof: registering menu operator"); + ot->name= "NDOF Menu"; + ot->idname= "WM_OT_ndof_menu"; + + ot->invoke= wm_ndof_menu_invoke; + ot->exec= wm_ndof_menu_exec; + ot->poll= wm_ndof_menu_poll; +} + +// END ndof menu + static int wm_call_menu_exec(bContext *C, wmOperator *op) { char idname[BKE_ST_MAXNAME]; @@ -3403,6 +3445,7 @@ void wm_operatortype_init(void) WM_operatortype_append(WM_OT_debug_menu); WM_operatortype_append(WM_OT_splash); WM_operatortype_append(WM_OT_search_menu); + WM_operatortype_append(WM_OT_ndof_menu); WM_operatortype_append(WM_OT_call_menu); WM_operatortype_append(WM_OT_radial_control); #if defined(WIN32) @@ -3623,7 +3666,9 @@ void wm_window_keymap(wmKeyConfig *keyconf) WM_keymap_verify_item(keymap, "WM_OT_redraw_timer", TKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "WM_OT_debug_menu", DKEY, KM_PRESS, KM_ALT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "WM_OT_search_menu", SPACEKEY, KM_PRESS, 0, 0); - + + WM_keymap_add_item(keymap, "WM_OT_ndof_menu", NDOF_BUTTON_MENU, KM_PRESS, 0, 0); + /* Space switching */ |