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:
authorTon Roosendaal <ton@blender.org>2008-12-17 18:38:40 +0300
committerTon Roosendaal <ton@blender.org>2008-12-17 18:38:40 +0300
commit07d63eb67943e6f9e93443fbbb903436c9b9503d (patch)
tree17b20fffb625948666ae05b89f6cc26c2eb28ae2 /source/blender/editors
parent616edcca1222c25b53c13d4da4c3af4f7a0f349a (diff)
2.5
- Made a nice generic 'OK confirm' implementation for operators. Just use in operator type definition this line: ot->invoke= WM_operator_confirm; It will autmatically use operator name for asking OK. It will also use properties (if set before). Note for Brecht: the test okee_operator() you coded could better not be used in operators themselves. In future we can also add menus that get automatically generated based on operator properties. Like 'add constraint' showing the constraint types. - Added this confirm call for most of the keys you'd expect it for. (user settings, delete marker, rip area, split region, etc). - Cleanup: moved ed_markers.c to the util/ directory, it doesnt belong in space_time. Also made separate function for the marker keymap definition. - removed ancient redraw notifier from ghost event level (every key press gave full screen draw)
Diffstat (limited to 'source/blender/editors')
-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
4 files changed, 33 insertions, 22 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);
+
+}