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/space_time
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/space_time')
-rw-r--r--source/blender/editors/space_time/ed_markers.c847
-rw-r--r--source/blender/editors/space_time/time_ops.c17
2 files changed, 0 insertions, 864 deletions
diff --git a/source/blender/editors/space_time/ed_markers.c b/source/blender/editors/space_time/ed_markers.c
deleted file mode 100644
index 0dc68fb4b27..00000000000
--- a/source/blender/editors/space_time/ed_markers.c
+++ /dev/null
@@ -1,847 +0,0 @@
-/**
- * $Id:
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2008 Blender Foundation.
- * All rights reserved.
- *
- *
- * Contributor(s): Blender Foundation
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include <stdlib.h>
-#include <math.h>
-
-#include "MEM_guardedalloc.h"
-
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-#include "DNA_view2d_types.h"
-#include "DNA_userdef_types.h"
-#include "DNA_windowmanager_types.h"
-
-#include "RNA_access.h"
-#include "RNA_define.h"
-
-#include "BLI_blenlib.h"
-
-#include "BKE_global.h"
-#include "BKE_utildefines.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-#include "BIF_gl.h"
-#include "BIF_glutil.h"
-
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
-#include "UI_view2d.h"
-#include "UI_resources.h"
-#include "UI_text.h"
-
-#include "ED_markers.h"
-#include "ED_screen.h"
-#include "ED_types.h"
-#include "ED_util.h"
-
-/* ************* Marker API **************** */
-
-static ListBase *context_get_markers(const bContext *C)
-{
-
-#if 0
- /* XXX get them from pose */
- if ((slink->spacetype == SPACE_ACTION) && (saction->flag & SACTION_POSEMARKERS_MOVE)) {
- if (saction->action)
- markers= &saction->action->markers;
- else
- markers= NULL;
- }
- else
-#endif
-
- return &C->scene->markers;
-}
-
-/* ************* Marker Drawing ************ */
-
-/* XXX */
-extern void ui_rasterpos_safe(float x, float y, float aspect);
-
-/* function to draw markers */
-static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag)
-{
- float xpos, ypixels, xscale, yscale;
- int icon_id= 0;
-
- xpos = marker->frame;
- /* no time correction for framelen! space is drawn with old values */
-
- ypixels= v2d->mask.ymax-v2d->mask.ymin;
- UI_view2d_getscale(v2d, &xscale, &yscale);
-
- glScalef(1.0/xscale, 1.0, 1.0);
-
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-
- /* verticle line */
- if (flag & DRAW_MARKERS_LINES) {
- setlinestyle(3);
- if(marker->flag & SELECT)
- glColor4ub(255,255,255, 96);
- else
- glColor4ub(0,0,0, 96);
-
- glBegin(GL_LINES);
- glVertex2f((xpos*xscale)+0.5, 12);
- glVertex2f((xpos*xscale)+0.5, 34*yscale); /* a bit lazy but we know it cant be greater then 34 strips high*/
- glEnd();
- setlinestyle(0);
- }
-
- /* 5 px to offset icon to align properly, space / pixels corrects for zoom */
- if (flag & DRAW_MARKERS_LOCAL) {
- icon_id= (marker->flag & ACTIVE) ? ICON_PMARKER_ACT :
- (marker->flag & SELECT) ? ICON_PMARKER_SEL :
- ICON_PMARKER;
- }
- else {
- icon_id= (marker->flag & SELECT) ? ICON_MARKER_HLT :
- ICON_MARKER;
- }
-
- UI_icon_draw(xpos*xscale-5.0, 16.0, icon_id);
-
- glBlendFunc(GL_ONE, GL_ZERO);
- glDisable(GL_BLEND);
-
- /* and the marker name too, shifted slightly to the top-right */
- if(marker->name && marker->name[0]) {
- if(marker->flag & SELECT) {
- UI_ThemeColor(TH_TEXT_HI);
- ui_rasterpos_safe(xpos*xscale+4.0, (ypixels<=39.0)?(ypixels-10.0):29.0, 1.0);
- }
- else {
- UI_ThemeColor(TH_TEXT);
- if((marker->frame <= cfra) && (marker->frame+5 > cfra))
- ui_rasterpos_safe(xpos*xscale+4.0, (ypixels<=39.0)?(ypixels-10.0):29.0, 1.0);
- else
- ui_rasterpos_safe(xpos*xscale+4.0, 17.0, 1.0);
- }
- UI_DrawString(G.font, marker->name, 0);
- }
- glScalef(xscale, 1.0, 1.0);
-}
-
-/* Draw Scene-Markers in time window */
-void draw_markers_time(const bContext *C, int flag)
-{
- ListBase *markers= context_get_markers(C);
- View2D *v2d= UI_view2d_fromcontext(C);
- TimeMarker *marker;
-
- /* unselected markers are drawn at the first time */
- for (marker= markers->first; marker; marker= marker->next) {
- if (!(marker->flag & SELECT)) draw_marker(v2d, marker, C->scene->r.cfra, flag);
- }
-
- /* selected markers are drawn later */
- for (marker= markers->first; marker; marker= marker->next) {
- if (marker->flag & SELECT) draw_marker(v2d, marker, C->scene->r.cfra, flag);
- }
-}
-
-
-
-/* ************************** add markers *************************** */
-
-/* add TimeMarker at curent frame */
-static int ed_marker_add(bContext *C, wmOperator *op)
-{
- ListBase *markers= context_get_markers(C);
- TimeMarker *marker;
- int frame= C->scene->r.cfra;
-
- /* two markers can't be at the same place */
- for(marker= markers->first; marker; marker= marker->next)
- if(marker->frame == frame)
- return OPERATOR_CANCELLED;
-
- /* deselect all */
- for(marker= markers->first; marker; marker= marker->next)
- marker->flag &= ~SELECT;
-
- marker = MEM_callocN(sizeof(TimeMarker), "TimeMarker");
- marker->flag= SELECT;
- marker->frame= frame;
- sprintf(marker->name, "Frame %d", frame); // XXX - temp code only
- BLI_addtail(markers, marker);
-
- //BIF_undo_push("Add Marker");
-
- return OPERATOR_FINISHED;
-}
-
-static void ED_MARKER_OT_add(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Add Time Marker";
- ot->idname= "ED_MARKER_OT_add";
-
- /* api callbacks */
- ot->exec= ed_marker_add;
- ot->poll= ED_operator_areaactive;
-
-}
-
-/* ************************** transform markers *************************** */
-
-
-/* operator state vars used:
- frs: delta movement
-
-functions:
-
- init() check selection, add customdata with old values and some lookups
-
- apply() do the actual movement
-
- exit() cleanup, send notifier
-
- cancel() to escpae from modal
-
-callbacks:
-
- exec() calls init, apply, exit
-
- invoke() calls init, adds modal handler
-
- modal() accept modal events while doing it, ends with apply and exit, or cancel
-
-*/
-
-typedef struct MarkerMove {
- SpaceLink *slink;
- ListBase *markers;
- int event_type; /* store invoke-event, to verify */
- int *oldframe, evtx, firstx;
-} MarkerMove;
-
-/* copy selection to temp buffer */
-/* return 0 if not OK */
-static int ed_marker_move_init(bContext *C, wmOperator *op)
-{
- ListBase *markers= context_get_markers(C);
- MarkerMove *mm;
- TimeMarker *marker;
- int totmark=0;
- int a;
-
- for (marker= markers->first; marker; marker= marker->next)
- if (marker->flag & SELECT) totmark++;
-
- if (totmark==0) return 0;
-
- op->customdata= mm= MEM_callocN(sizeof(MarkerMove), "Markermove");
- mm->slink= C->area->spacedata.first;
- mm->markers= markers;
- mm->oldframe= MEM_callocN(totmark*sizeof(int), "MarkerMove oldframe");
-
- for (a=0, marker= markers->first; marker; marker= marker->next) {
- if (marker->flag & SELECT) {
- mm->oldframe[a]= marker->frame;
- a++;
- }
- }
-
- return 1;
-}
-
-/* free stuff */
-static void ed_marker_move_exit(bContext *C, wmOperator *op)
-{
- MarkerMove *mm= op->customdata;
-
- MEM_freeN(mm->oldframe);
- MEM_freeN(op->customdata);
- op->customdata= NULL;
-}
-
-static int ed_marker_move_invoke(bContext *C, wmOperator *op, wmEvent *evt)
-{
- if(ed_marker_move_init(C, op)) {
- MarkerMove *mm= op->customdata;
-
- mm->evtx= evt->x;
- mm->firstx= evt->x;
- mm->event_type= evt->type;
-
- /* add temp handler */
- WM_event_add_modal_handler(C, &C->window->handlers, op);
-
- /* reset frs delta */
- RNA_int_set(op->ptr, "frs", 0);
-
- return OPERATOR_RUNNING_MODAL;
- }
-
- return OPERATOR_CANCELLED;
-}
-
-/* note, init has to be called succesfully */
-static void ed_marker_move_apply(bContext *C, wmOperator *op)
-{
- MarkerMove *mm= op->customdata;
- TimeMarker *marker;
- int a, offs;
-
- offs= RNA_int_get(op->ptr, "frs");
- for (a=0, marker= mm->markers->first; marker; marker= marker->next) {
- if (marker->flag & SELECT) {
- marker->frame= mm->oldframe[a] + offs;
- a++;
- }
- }
-}
-
-/* only for modal */
-static void ed_marker_move_cancel(bContext *C, wmOperator *op)
-{
-
- RNA_int_set(op->ptr, "frs", 0);
- ed_marker_move_apply(C, op);
- ed_marker_move_exit(C, op);
-
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
-}
-
-
-/* for tweak handlers, check configuration for how to interpret events */
-int WM_modal_tweak_check(wmEvent *evt, int tweak_event)
-{
- /* user preset?? dunno... */
- int tweak_modal= 1;
-
- switch(tweak_event) {
- case EVT_TWEAK_L:
- case EVT_TWEAK_M:
- case EVT_TWEAK_R:
- if(evt->val==tweak_modal)
- return 1;
- default:
- /* this case is when modal callcback didnt get started with a tweak */
- if(evt->val)
- return 1;
- }
- return 0;
-}
-
-static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
-{
- MarkerMove *mm= op->customdata;
- View2D *v2d= UI_view2d_fromcontext(C);
- TimeMarker *marker, *selmarker=NULL;
- float dx, fac;
- char str[256];
-
- switch(evt->type) {
- case ESCKEY:
- ed_marker_move_cancel(C, op);
- return OPERATOR_CANCELLED;
-
- case LEFTMOUSE:
- case MIDDLEMOUSE:
- case RIGHTMOUSE:
- if(WM_modal_tweak_check(evt, mm->event_type)) {
- ed_marker_move_exit(C, op);
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
- return OPERATOR_FINISHED;
- }
-
- break;
- case MOUSEMOVE:
-
- dx= v2d->mask.xmax-v2d->mask.xmin;
- dx= (v2d->cur.xmax-v2d->cur.xmin)/dx;
-
- if (evt->x != mm->evtx) { /* XXX maybe init for firsttime */
- int a, offs, totmark=0;
-
- mm->evtx= evt->x;
-
- fac= ((float)(evt->x - mm->firstx)*dx);
-
- if (ELEM(mm->slink->spacetype, SPACE_TIME, SPACE_SOUND))
- apply_keyb_grid(&fac, 0.0, FPS, 0.1*FPS, 0);
- else
- apply_keyb_grid(&fac, 0.0, 1.0, 0.1, U.flag & USER_AUTOGRABGRID);
-
- offs= (int)fac;
- RNA_int_set(op->ptr, "frs", offs);
- ed_marker_move_apply(C, op);
-
- /* cruft below is for header print */
- for (a=0, marker= mm->markers->first; marker; marker= marker->next) {
- if (marker->flag & SELECT) {
- selmarker= marker;
- a++; totmark++;
- }
- }
-
- if (totmark==1) {
- /* we print current marker value */
- if (ELEM(mm->slink->spacetype, SPACE_TIME, SPACE_SOUND)) {
- SpaceTime *stime= (SpaceTime *)mm->slink;
- if (stime->flag & TIME_DRAWFRAMES)
- sprintf(str, "Marker %d offset %d", selmarker->frame, offs);
- else
- sprintf(str, "Marker %.2f offset %.2f", FRA2TIME(selmarker->frame), FRA2TIME(offs));
- }
- else if (mm->slink->spacetype == SPACE_ACTION) {
-#if 0
-XXX if (saction->flag & SACTION_DRAWTIME)
- sprintf(str, "Marker %.2f offset %.2f", FRA2TIME(selmarker->frame), FRA2TIME(offs));
- else
- sprintf(str, "Marker %.2f offset %.2f", (double)(selmarker->frame), (double)(offs));
-#endif
- }
- else {
- sprintf(str, "Marker %.2f offset %.2f", (double)(selmarker->frame), (double)(offs));
- }
- }
- else {
- /* we only print the offset */
- if (ELEM(mm->slink->spacetype, SPACE_TIME, SPACE_SOUND)) {
- SpaceTime *stime= (SpaceTime *)mm->slink;
- if (stime->flag & TIME_DRAWFRAMES)
- sprintf(str, "Marker offset %d ", offs);
- else
- sprintf(str, "Marker offset %.2f ", FRA2TIME(offs));
- }
-#if 0
-XXX else if (mm->slink->spacetype == SPACE_ACTION) {
- if (saction->flag & SACTION_DRAWTIME)
- sprintf(str, "Marker offset %.2f ", FRA2TIME(offs));
- else
- sprintf(str, "Marker offset %.2f ", (double)(offs));
- }
-#endif
- else {
- sprintf(str, "Marker offset %.2f ", (double)(offs));
- }
- }
-
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
- // headerprint(str); XXX
- }
- }
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int ed_marker_move_exec(bContext *C, wmOperator *op)
-{
- if(ed_marker_move_init(C, op)) {
- ed_marker_move_apply(C, op);
- ed_marker_move_exit(C, op);
- return OPERATOR_FINISHED;
- }
- return OPERATOR_CANCELLED;
-}
-
-static void ED_MARKER_OT_move(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Move Time Marker";
- ot->idname= "ED_MARKER_OT_move";
-
- /* api callbacks */
- ot->exec= ed_marker_move_exec;
- ot->invoke= ed_marker_move_invoke;
- ot->modal= ed_marker_move_modal;
- ot->poll= ED_operator_areaactive;
-
- /* rna storage */
- RNA_def_property(ot->srna, "frs", PROP_INT, PROP_NONE);
-}
-
-/* ************************** duplicate markers *************************** */
-
-/* operator state vars used:
- frs: delta movement
-
-functions:
-
- apply() do the actual duplicate
-
-callbacks:
-
- exec() calls apply, move_exec
-
- invoke() calls apply, move_invoke
-
- modal() uses move_modal
-
-*/
-
-
-/* duplicate selected TimeMarkers */
-static void ed_marker_duplicate_apply(bContext *C, wmOperator *op)
-{
- ListBase *markers= context_get_markers(C);
- TimeMarker *marker, *newmarker;
-
- /* go through the list of markers, duplicate selected markers and add duplicated copies
- * to the begining of the list (unselect original markers) */
- for(marker= markers->first; marker; marker= marker->next) {
- if(marker->flag & SELECT){
- /* unselect selected marker */
- marker->flag &= ~SELECT;
- /* create and set up new marker */
- newmarker = MEM_callocN(sizeof(TimeMarker), "TimeMarker");
- newmarker->flag= SELECT;
- newmarker->frame= marker->frame;
- BLI_strncpy(newmarker->name, marker->name, sizeof(marker->name));
- /* new marker is added to the begining of list */
- BLI_addhead(markers, newmarker);
- }
- }
-}
-
-static int ed_marker_duplicate_exec(bContext *C, wmOperator *op)
-{
- ed_marker_duplicate_apply(C, op);
- ed_marker_move_exec(C, op); /* assumes frs delta set */
-
- return OPERATOR_FINISHED;
-
-}
-
-static int ed_marker_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *evt)
-{
- ed_marker_duplicate_apply(C, op);
- return ed_marker_move_invoke(C, op, evt);
-}
-
-static void ED_MARKER_OT_duplicate(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Duplicate Time Marker";
- ot->idname= "ED_MARKER_OT_duplicate";
-
- /* api callbacks */
- ot->exec= ed_marker_duplicate_exec;
- ot->invoke= ed_marker_duplicate_invoke;
- ot->modal= ed_marker_move_modal;
- ot->poll= ED_operator_areaactive;
-
- /* rna storage */
- RNA_def_property(ot->srna, "frs", PROP_INT, PROP_NONE);
-}
-
-/* ************************** selection ************************************/
-
-/* select/deselect TimeMarker at current frame */
-static void select_timeline_marker_frame(int frame, unsigned char shift)
-{
- TimeMarker *marker;
- int select=0;
-
- for(marker= G.scene->markers.first; marker; marker= marker->next) {
- /* if Shift is not set, then deselect Markers */
- if(!shift) marker->flag &= ~SELECT;
- /* this way a not-shift select will allways give 1 selected marker */
- if((marker->frame == frame) && (!select)) {
- if(marker->flag & SELECT)
- marker->flag &= ~SELECT;
- else
- marker->flag |= SELECT;
- select = 1;
- }
- }
-}
-
-static int find_nearest_marker_time(ListBase *markers, float dx)
-{
- TimeMarker *marker, *nearest= NULL;
- float dist, min_dist= 1000000;
-
- for(marker= markers->first; marker; marker= marker->next) {
- dist = ABS((float)marker->frame - dx);
- if(dist < min_dist){
- min_dist= dist;
- nearest= marker;
- }
- }
-
- if(nearest) return nearest->frame;
- else return (int)floor(dx); /* hrmf? */
-}
-
-
-static int ed_marker_select(bContext *C, wmEvent *evt, int extend)
-{
- ListBase *markers= context_get_markers(C);
- View2D *v2d= UI_view2d_fromcontext(C);
- float viewx;
- int x, y, cfra;
-
- x= evt->x - C->region->winrct.xmin;
- y= evt->y - C->region->winrct.ymin;
-
- UI_view2d_region_to_view(v2d, x, y, &viewx, NULL);
-
- cfra= find_nearest_marker_time(markers, viewx);
-
- if (extend)
- select_timeline_marker_frame(cfra, 1);
- else
- select_timeline_marker_frame(cfra, 0);
-
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
-
- return OPERATOR_PASS_THROUGH;
-}
-
-static int ed_marker_select_extend_invoke(bContext *C, wmOperator *op, wmEvent *evt)
-{
- return ed_marker_select(C, evt, 1);
-}
-
-static int ed_marker_select_invoke(bContext *C, wmOperator *op, wmEvent *evt)
-{
- return ed_marker_select(C, evt, 0);
-}
-
-static void ED_MARKER_OT_mouseselect(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Select Time Marker";
- ot->idname= "ED_MARKER_OT_mouseselect";
-
- /* api callbacks */
- ot->invoke= ed_marker_select_invoke;
- ot->poll= ED_operator_areaactive;
-}
-
-static void ED_MARKER_OT_mouseselect_extend(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Extend Select Time Marker";
- ot->idname= "ED_MARKER_OT_mouseselect_extend";
-
- /* api callbacks */
- ot->invoke= ed_marker_select_extend_invoke;
- ot->poll= ED_operator_areaactive;
-}
-
-/* *************************** border select markers **************** */
-
-/* operator state vars used: (added by default WM callbacks)
- xmin, ymin
- xmax, ymax
-
-customdata: the wmGesture pointer, with subwindow
-
-callbacks:
-
- exec() has to be filled in by user
-
- invoke() default WM function
- adds modal handler
-
- modal() default WM function
- accept modal events while doing it, calls exec(), handles ESC and border drawing
-
- poll() has to be filled in by user for context
-*/
-
-static int ed_marker_border_select_exec(bContext *C, wmOperator *op)
-{
- View2D *v2d= UI_view2d_fromcontext(C);
- ListBase *markers= context_get_markers(C);
- TimeMarker *marker;
- float xminf, xmaxf, yminf, ymaxf;
- int event_type= RNA_int_get(op->ptr, "event_type");
- int xmin= RNA_int_get(op->ptr, "xmin");
- int xmax= RNA_int_get(op->ptr, "xmax");
- int ymin= RNA_int_get(op->ptr, "ymin");
- int ymax= RNA_int_get(op->ptr, "ymax");
-
- UI_view2d_region_to_view(v2d, xmin, ymin, &xminf, &yminf);
- UI_view2d_region_to_view(v2d, xmax, ymax, &xmaxf, &ymaxf);
-
- /* XXX disputable */
- if(yminf > 30.0f || ymaxf < 0.0f)
- return 0;
-
- /* XXX marker context */
- for(marker= markers->first; marker; marker= marker->next) {
- if ((marker->frame > xminf) && (marker->frame <= xmaxf)) {
- switch (event_type) {
- case LEFTMOUSE:
- if ((marker->flag & SELECT) == 0)
- marker->flag |= SELECT;
- break;
- case RIGHTMOUSE:
- if (marker->flag & SELECT)
- marker->flag &= ~SELECT;
- break;
- }
- }
- }
-
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
-
- return 1;
-}
-
-static void ED_MARKER_OT_border_select(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Marker Border select";
- ot->idname= "ED_MARKER_OT_border_select";
-
- /* api callbacks */
- ot->exec= ed_marker_border_select_exec;
- ot->invoke= WM_border_select_invoke;
- ot->modal= WM_border_select_modal;
-
- ot->poll= ED_operator_areaactive;
-
- /* rna */
- RNA_def_property(ot->srna, "event_type", PROP_INT, PROP_NONE);
- RNA_def_property(ot->srna, "xmin", PROP_INT, PROP_NONE);
- RNA_def_property(ot->srna, "xmax", PROP_INT, PROP_NONE);
- RNA_def_property(ot->srna, "ymin", PROP_INT, PROP_NONE);
- RNA_def_property(ot->srna, "ymax", PROP_INT, PROP_NONE);
-
-}
-
-/* *********************** (de)select all ***************** */
-
-static int ed_marker_select_all_exec(bContext *C, wmOperator *op)
-{
- ListBase *markers= context_get_markers(C);
- TimeMarker *marker;
- int select= RNA_int_get(op->ptr, "select_type");
-
- if(RNA_int_get(op->ptr, "select_swap")) {
- for(marker= markers->first; marker; marker= marker->next) {
- if(marker->flag & SELECT)
- break;
- }
- if(marker)
- select= 0;
- else
- select= 1;
- }
-
- for(marker= markers->first; marker; marker= marker->next) {
- if(select)
- marker->flag |= SELECT;
- else
- marker->flag &= ~SELECT;
- }
-
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
-
- return OPERATOR_FINISHED;
-}
-
-static int ed_marker_select_all_invoke(bContext *C, wmOperator *op, wmEvent *evt)
-{
- RNA_int_set(op->ptr, "select_swap", 1);
-
- return ed_marker_select_all_exec(C, op);
-}
-
-static void ED_MARKER_OT_select_all(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "(De)select all markers";
- ot->idname= "ED_MARKER_OT_select_all";
-
- /* api callbacks */
- ot->exec= ed_marker_select_all_exec;
- ot->invoke= ed_marker_select_all_invoke;
- ot->poll= ED_operator_areaactive;
-
- /* rna */
- RNA_def_property(ot->srna, "select_swap", PROP_INT, PROP_NONE);
- RNA_def_property(ot->srna, "select_type", PROP_INT, PROP_NONE);
-
-}
-
-/* ******************************* remove marker ***************** */
-
-/* remove selected TimeMarkers */
-static int ed_marker_delete_exec(bContext *C, wmOperator *op)
-{
- ListBase *markers= context_get_markers(C);
- TimeMarker *marker, *nmarker;
- short changed= 0;
-
- for(marker= markers->first; marker; marker= nmarker) {
- nmarker= marker->next;
- if(marker->flag & SELECT) {
- BLI_freelinkN(markers, marker);
- changed= 1;
- }
- }
-
- if(changed) {
- WM_event_add_notifier(C, WM_NOTE_MARKERS_CHANGED, 0, NULL);
- }
- return OPERATOR_FINISHED;
-}
-
-
-static void ED_MARKER_OT_delete(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Delete Markers";
- ot->idname= "ED_MARKER_OT_delete";
-
- /* api callbacks */
- ot->exec= ed_marker_delete_exec;
- ot->poll= ED_operator_areaactive;
-
-}
-
-/* ************************** registration **********************************/
-
-/* called in ED_operatortypes_screen() */
-void ED_marker_operatortypes(void)
-{
- WM_operatortype_append(ED_MARKER_OT_add);
- WM_operatortype_append(ED_MARKER_OT_move);
- WM_operatortype_append(ED_MARKER_OT_duplicate);
- WM_operatortype_append(ED_MARKER_OT_mouseselect);
- WM_operatortype_append(ED_MARKER_OT_mouseselect_extend);
- WM_operatortype_append(ED_MARKER_OT_border_select);
- WM_operatortype_append(ED_MARKER_OT_select_all);
- WM_operatortype_append(ED_MARKER_OT_delete);
-}
-
-
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);
-
}