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:
-rw-r--r--source/blender/editors/include/ED_markers.h7
-rw-r--r--source/blender/editors/screen/screen_ops.c8
-rw-r--r--source/blender/editors/space_time/time_ops.c17
-rw-r--r--source/blender/editors/util/ed_markers.c (renamed from source/blender/editors/space_time/ed_markers.c)23
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c47
-rw-r--r--source/blender/windowmanager/intern/wm_window.c2
6 files changed, 54 insertions, 50 deletions
diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h
index cad985ce37c..49f805e4ddb 100644
--- a/source/blender/editors/include/ED_markers.h
+++ b/source/blender/editors/include/ED_markers.h
@@ -34,13 +34,14 @@ enum {
DRAW_MARKERS_LOCAL = (1<<1)
};
-
+struct wmWindowManager;
void draw_markers_time(const bContext *C, int flag);
-/* register operators, called in ED_operatortypes_screen() */
+/* called in screen_ops.c:ED_operatortypes_screen() */
void ED_marker_operatortypes(void);
-
+/* called in screen_ops.c:ED_keymap_screen() */
+void ED_marker_keymap(struct wmWindowManager *wm);
#endif /* ED_MARKERS_H */
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index d16ad075bf3..2ad839997db 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -271,7 +271,7 @@ void ED_SCR_OT_area_rip(wmOperatorType *ot)
ot->name= "Rip Area into New Window";
ot->idname= "ED_SCR_OT_area_rip";
- ot->invoke= NULL; //WM_operator_confirm;
+ ot->invoke= WM_operator_confirm;
ot->exec= screen_area_rip_op;
ot->poll= ED_operator_areaactive;
}
@@ -1124,6 +1124,7 @@ void ED_SCR_OT_repeat_last(wmOperatorType *ot)
ot->idname= "ED_SCR_OT_repeat_last";
/* api callbacks */
+ ot->invoke= WM_operator_confirm;
ot->exec= repeat_last_exec;
ot->poll= ED_operator_screenactive;
@@ -1161,6 +1162,7 @@ void ED_SCR_OT_region_split(wmOperatorType *ot)
ot->idname= "ED_SCR_OT_region_split";
/* api callbacks */
+ ot->invoke= WM_operator_confirm;
ot->exec= region_split_exec;
ot->poll= ED_operator_areaactive;
@@ -1196,6 +1198,7 @@ void ED_SCR_OT_region_flip(wmOperatorType *ot)
ot->idname= "ED_SCR_OT_region_flip";
/* api callbacks */
+ ot->invoke= WM_operator_confirm;
ot->exec= region_flip_exec;
ot->poll= ED_operator_areaactive;
@@ -1299,5 +1302,8 @@ void ED_keymap_screen(wmWindowManager *wm)
RNA_enum_set(WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "dir", 'v');
WM_keymap_add_item(keymap, "ED_SCR_OT_region_flip", F5KEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "ED_SCR_OT_repeat_last", F4KEY, KM_PRESS, 0, 0);
+
+ /* screen level global keymaps */
+ ED_marker_keymap(wm);
}
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c
index c95e7fd7e9d..599594a3ec0 100644
--- a/source/blender/editors/space_time/time_ops.c
+++ b/source/blender/editors/space_time/time_ops.c
@@ -217,22 +217,5 @@ void time_keymap(wmWindowManager *wm)
WM_keymap_verify_item(keymap, "ED_TIME_OT_change_frame", LEFTMOUSE, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "ED_TIME_OT_toggle_time", TKEY, KM_PRESS, 0, 0);
-
- /* markers (XXX move to function?) */
- keymap= WM_keymap_listbase(wm, "Markers", 0, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_move", EVT_TWEAK_R, KM_ANY, 0, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_mouseselect", RIGHTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_mouseselect_extend", RIGHTMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_border_select", BKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_select_all", AKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ED_MARKER_OT_delete", XKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "ED_MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
-
- /* generates event, in end to make select work */
- WM_keymap_verify_item(keymap, "WM_OT_tweak_gesture", RIGHTMOUSE, KM_PRESS, 0, 0);
-
}
diff --git a/source/blender/editors/space_time/ed_markers.c b/source/blender/editors/util/ed_markers.c
index 0dc68fb4b27..843a81e7086 100644
--- a/source/blender/editors/space_time/ed_markers.c
+++ b/source/blender/editors/util/ed_markers.c
@@ -197,6 +197,7 @@ static int ed_marker_add(bContext *C, wmOperator *op)
sprintf(marker->name, "Frame %d", frame); // XXX - temp code only
BLI_addtail(markers, marker);
+ WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
//BIF_undo_push("Add Marker");
return OPERATOR_FINISHED;
@@ -824,6 +825,7 @@ static void ED_MARKER_OT_delete(wmOperatorType *ot)
ot->idname= "ED_MARKER_OT_delete";
/* api callbacks */
+ ot->invoke= WM_operator_confirm;
ot->exec= ed_marker_delete_exec;
ot->poll= ED_operator_areaactive;
@@ -831,7 +833,7 @@ static void ED_MARKER_OT_delete(wmOperatorType *ot)
/* ************************** registration **********************************/
-/* called in ED_operatortypes_screen() */
+/* called in screen_ops.c:ED_operatortypes_screen() */
void ED_marker_operatortypes(void)
{
WM_operatortype_append(ED_MARKER_OT_add);
@@ -844,4 +846,23 @@ void ED_marker_operatortypes(void)
WM_operatortype_append(ED_MARKER_OT_delete);
}
+/* called in screen_ops.c:ED_keymap_screen() */
+void ED_marker_keymap(wmWindowManager *wm)
+{
+ ListBase *keymap= WM_keymap_listbase(wm, "Markers", 0, 0);
+
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_move", EVT_TWEAK_R, KM_ANY, 0, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_mouseselect", RIGHTMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_mouseselect_extend", RIGHTMOUSE, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_border_select", BKEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_select_all", AKEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "ED_MARKER_OT_delete", XKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ED_MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
+
+ /* generates event, in end to make select work */
+ WM_keymap_verify_item(keymap, "WM_OT_tweak_gesture", RIGHTMOUSE, KM_PRESS, 0, 0);
+
+}
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index e87451c2a8e..897b7b23a0e 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -47,6 +47,7 @@
#include "RNA_define.h"
#include "UI_interface.h"
+#include "UI_resources.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -88,13 +89,24 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType*))
/* ************ default op callbacks, exported *********** */
+static void operator_callback(bContext *C, void *arg, int retval)
+{
+ wmOperator *op= arg;
+
+ if(retval > 0)
+ op->type->exec(C, op);
+}
+
int WM_operator_confirm(bContext *C, wmOperator *op, wmEvent *event)
{
-// if(okee(op->type->name)) {
-// return op->type->exec(C, op);
-// }
- return 0;
+ char buf[512];
+
+ sprintf(buf, "OK? %%i%d%%t|%s", ICON_HELP, op->type->name);
+ pupmenu(C, buf, event->x, event->y, operator_callback, op);
+
+ return 1;
}
+
int WM_operator_winactive(bContext *C)
{
if(C->window==NULL) return 0;
@@ -108,7 +120,7 @@ static void WM_OT_window_duplicate(wmOperatorType *ot)
ot->name= "Duplicate Window";
ot->idname= "WM_OT_window_duplicate";
- ot->invoke= NULL; //WM_operator_confirm;
+ ot->invoke= WM_operator_confirm;
ot->exec= wm_window_duplicate_op;
ot->poll= WM_operator_winactive;
}
@@ -118,7 +130,7 @@ static void WM_OT_save_homefile(wmOperatorType *ot)
ot->name= "Save User Settings";
ot->idname= "WM_OT_save_homefile";
- ot->invoke= NULL; //WM_operator_confirm;
+ ot->invoke= WM_operator_confirm;
ot->exec= WM_write_homefile;
ot->poll= WM_operator_winactive;
@@ -130,7 +142,7 @@ static void WM_OT_window_fullscreen_toggle(wmOperatorType *ot)
ot->name= "Toggle Fullscreen";
ot->idname= "WM_OT_window_fullscreen_toggle";
- ot->invoke= NULL;
+ ot->invoke= WM_operator_confirm;
ot->exec= wm_window_fullscreen_toggle_op;
ot->poll= WM_operator_winactive;
}
@@ -140,27 +152,11 @@ static void WM_OT_exit_blender(wmOperatorType *ot)
ot->name= "Exit Blender";
ot->idname= "WM_OT_exit_blender";
- ot->invoke= NULL; /* do confirm stuff */
+ ot->invoke= WM_operator_confirm;
ot->exec= wm_exit_blender_op;
ot->poll= WM_operator_winactive;
}
-static int exit_okee_blender_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- okee_operator(C, "WM_OT_exit_blender", "Quit Blender");
-
- return OPERATOR_FINISHED;
-}
-
-static void WM_OT_exit_okee_blender(wmOperatorType *ot)
-{
- ot->name= "Exit Blender";
- ot->idname= "WM_OT_exit_okee_blender";
-
- ot->invoke= exit_okee_blender_invoke;
- ot->poll= WM_operator_winactive;
-}
-
/* ************ window gesture operator-callback definitions ************** */
/*
* These are default callbacks for use in operators requiring gesture input
@@ -366,7 +362,6 @@ void wm_operatortype_init(void)
WM_operatortype_append(WM_OT_save_homefile);
WM_operatortype_append(WM_OT_window_fullscreen_toggle);
WM_operatortype_append(WM_OT_exit_blender);
- WM_operatortype_append(WM_OT_exit_okee_blender);
WM_operatortype_append(WM_OT_tweak_gesture);
}
@@ -379,6 +374,6 @@ void wm_window_keymap(wmWindowManager *wm)
WM_keymap_verify_item(keymap, "WM_OT_window_duplicate", AKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
WM_keymap_verify_item(keymap, "WM_OT_save_homefile", UKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_verify_item(keymap, "WM_OT_window_fullscreen_toggle", FKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "WM_OT_exit_okee_blender", QKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_verify_item(keymap, "WM_OT_exit_blender", QKEY, KM_PRESS, KM_CTRL, 0);
}
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 6f723d02f30..84c003c8a00 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -474,8 +474,6 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private)
break;
}
default:
- if(type==GHOST_kEventKeyDown) // XXX debug
- WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL);
wm_event_add_ghostevent(win, type, data);
break;
}