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:
authorMike Erwin <significant.bit@gmail.com>2011-06-25 22:50:03 +0400
committerMike Erwin <significant.bit@gmail.com>2011-06-25 22:50:03 +0400
commit651df035f790b6e82dec074972aad52d616b2d47 (patch)
tree7b2876904ff72574a11462e03696516d46f6ab23 /source/blender/windowmanager
parentec48695de1600bdf1592c1351f6239150cd26852 (diff)
baby steps toward an NDOF popup menu
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c47
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 */