[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17789] branches/blender2.5/blender/source /blender: 2.5
Ton Roosendaal
ton at blender.org
Thu Dec 11 16:38:16 CET 2008
Revision: 17789
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17789
Author: ton
Date: 2008-12-11 16:38:16 +0100 (Thu, 11 Dec 2008)
Log Message:
-----------
2.5
TimeLine window pulldowns work sorta (for the options that were coded :)
Still trying to bring back code without recoding uiDefButs. In future these
will get directly operator stuff linked. For time being made a simple
operator call function, like:
WM_operator_call(C, "ED_MARKER_OT_add");
and for forcing operator to run in the main region-window:
WM_operator_call_rwin(C, "ED_MARKER_OT_add");
These calls also work for modal operators, like marker grab in this case.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/include/ED_util.h
branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h
branches/blender2.5/blender/source/blender/editors/interface/view2d.c
branches/blender2.5/blender/source/blender/editors/space_time/time_header.c
branches/blender2.5/blender/source/blender/editors/util/ed_util.c
branches/blender2.5/blender/source/blender/windowmanager/WM_api.h
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
Modified: branches/blender2.5/blender/source/blender/editors/include/ED_util.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_util.h 2008-12-11 14:59:57 UTC (rev 17788)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_util.h 2008-12-11 15:38:16 UTC (rev 17789)
@@ -34,8 +34,8 @@
#define YIC 20
void apply_keyb_grid(float *val, float fac1, float fac2, float fac3, int invert);
-
int GetButStringLength(char *str);
+char *windowtype_pup(void);
#endif /* ED_UTIL_H */
Modified: branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h 2008-12-11 14:59:57 UTC (rev 17788)
+++ branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h 2008-12-11 15:38:16 UTC (rev 17789)
@@ -115,6 +115,7 @@
/* utilities */
struct View2D *UI_view2d_fromcontext(const struct bContext *C);
+struct View2D *UI_view2d_fromcontext_rwin(const struct bContext *C);
void UI_view2d_getscale(struct View2D *v2d, float *x, float *y);
Modified: branches/blender2.5/blender/source/blender/editors/interface/view2d.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/view2d.c 2008-12-11 14:59:57 UTC (rev 17788)
+++ branches/blender2.5/blender/source/blender/editors/interface/view2d.c 2008-12-11 15:38:16 UTC (rev 17789)
@@ -1226,6 +1226,22 @@
return &(C->region->v2d);
}
+/* same as above, but it returns regionwindow. Utility for pulldowns or buttons */
+View2D *UI_view2d_fromcontext_rwin(const bContext *C)
+{
+ if (C->area == NULL) return NULL;
+ if (C->region == NULL) return NULL;
+ if (C->region->regiontype!=RGN_TYPE_WINDOW) {
+ ARegion *ar= C->area->regionbase.first;
+ for(; ar; ar= ar->next)
+ if(ar->regiontype==RGN_TYPE_WINDOW)
+ return &(ar->v2d);
+ return NULL;
+ }
+ return &(C->region->v2d);
+}
+
+
/* Calculate the scale per-axis of the drawing-area
* - Is used to inverse correct drawing of icons, etc. that need to follow view
* but not be affected by scale
Modified: branches/blender2.5/blender/source/blender/editors/space_time/time_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_time/time_header.c 2008-12-11 14:59:57 UTC (rev 17788)
+++ branches/blender2.5/blender/source/blender/editors/space_time/time_header.c 2008-12-11 15:38:16 UTC (rev 17789)
@@ -62,93 +62,7 @@
/* ************************ header time area region *********************** */
-static void start_animated_screen(SpaceTime *stime)
-{
-// XXX add_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM, stime->redraws);
-
-// if(stime->redraws & TIME_WITH_SEQ_AUDIO)
-// audiostream_start( CFRA );
-
-// BKE_ptcache_set_continue_physics((stime->redraws & TIME_CONTINUE_PHYSICS));
-}
-static void end_animated_screen(SpaceTime *stime)
-{
-// rem_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM);
-
-// audiostream_stop();
-// BKE_ptcache_set_continue_physics(0);
-}
-
-#define B_TL_REW 751
-#define B_TL_PLAY 752
-#define B_TL_FF 753
-#define B_TL_PREVKEY 754
-#define B_TL_NEXTKEY 755
-#define B_TL_STOP 756
-#define B_TL_PREVIEWON 757
-#define B_TL_INSERTKEY 758
-#define B_TL_DELETEKEY 759
-
-void do_time_buttons(bContext *C, void *arg, int event)
-{
- SpaceTime *stime= C->area->spacedata.first;
-
- switch(event) {
-
- case B_TL_REW:
- CFRA= PSFRA;
- //update_for_newframe();
- break;
- case B_TL_PLAY:
- start_animated_screen(stime);
- break;
- case B_TL_STOP:
- end_animated_screen(stime);
- //allqueue(REDRAWALL, 0);
- break;
- case B_TL_FF:
- /* end frame */
- CFRA= PEFRA;
- //update_for_newframe();
- break;
- case B_TL_PREVKEY:
- /* previous keyframe */
- //nextprev_timeline_key(-1);
- break;
- case B_TL_NEXTKEY:
- /* next keyframe */
- //nextprev_timeline_key(1);
- break;
-
- case B_TL_PREVIEWON:
- if (G.scene->r.psfra) {
- /* turn on preview range */
- G.scene->r.psfra= G.scene->r.sfra;
- G.scene->r.pefra= G.scene->r.efra;
- }
- else {
- /* turn off preview range */
- G.scene->r.psfra= 0;
- G.scene->r.pefra= 0;
- }
- //BIF_undo_push("Set anim-preview range");
- //allqueue(REDRAWALL, 0);
- break;
-
- case B_TL_INSERTKEY:
- /* insert keyframe */
- //common_insertkey();
- //allqueue(REDRAWTIME, 1);
- break;
- case B_TL_DELETEKEY:
- /* delete keyframe */
- //common_deletekey();
- //allqueue(REDRAWTIME, 1);
- break;
- }
-}
-
static void do_time_redrawmenu(bContext *C, void *arg, int event)
{
SpaceTime *stime= C->area->spacedata.first;
@@ -162,7 +76,7 @@
}
else {
if(event==1001) {
-// button(&G.scene->r.frs_sec,1,120,"FPS:");
+// button(&C->scene->r.frs_sec,1,120,"FPS:");
}
}
}
@@ -206,7 +120,7 @@
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
- sprintf(str, "Set Frames/Sec (%d/%f)", G.scene->r.frs_sec, G.scene->r.frs_sec_base);
+ sprintf(str, "Set Frames/Sec (%d/%f)", C->scene->r.frs_sec, C->scene->r.frs_sec_base);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, str, 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1001, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
@@ -234,6 +148,7 @@
{
ScrArea *curarea= C->area;
SpaceTime *stime= curarea->spacedata.first;
+ View2D *v2d= UI_view2d_fromcontext_rwin(C);
int first;
switch(event) {
@@ -242,19 +157,21 @@
// start_animated_screen(stime);
break;
case 3: /* View All */
- first= G.scene->r.sfra;
- if(first >= G.scene->r.efra) first= G.scene->r.efra;
- G.v2d->cur.xmin=G.v2d->tot.xmin= (float)first-2;
- G.v2d->cur.xmax=G.v2d->tot.xmax= (float)G.scene->r.efra+2;
+ if(v2d) {
+ first= C->scene->r.sfra;
+ if(first >= C->scene->r.efra) first= C->scene->r.efra;
+ v2d->cur.xmin=v2d->tot.xmin= (float)first-2;
+ v2d->cur.xmax=v2d->tot.xmax= (float)C->scene->r.efra+2;
- //test_view2d(G.v2d, curarea->winx, curarea->winy);
- //scrarea_queue_winredraw(curarea);
+ WM_event_add_notifier(C, WM_NOTE_AREA_REDRAW, 0, NULL);
+ }
break;
case 4: /* Maximize Window */
/* using event B_FULL */
break;
case 5: /* show time or frames */
stime->flag ^= TIME_DRAWFRAMES;
+ WM_event_add_notifier(C, WM_NOTE_AREA_REDRAW, 0, NULL);
break;
case 6:
//nextprev_marker(1);
@@ -272,21 +189,24 @@
//timeline_frame_to_center();
break;
case 11:
- //G.v2d->flag ^= V2D_VIEWSYNC_X;
- //if(G.v2d->flag & V2D_VIEWSYNC_X)
+ if(v2d) {
+ //v2d->flag ^= V2D_VIEWSYNC_X;
+ //if(v2d->flag & V2D_VIEWSYNC_X)
// view2d_do_locks(curarea, 0);
+ }
break;
case 12: /* only show keyframes from selected data */
stime->flag ^= TIME_ONLYACTSEL;
+ WM_event_add_notifier(C, WM_NOTE_AREA_REDRAW, 0, NULL);
break;
}
- //allqueue(REDRAWVIEW3D, 0);
}
static uiBlock *time_viewmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
{
ScrArea *curarea= C->area;
SpaceTime *stime= curarea->spacedata.first;
+ View2D *v2d= UI_view2d_fromcontext_rwin(C);
uiBlock *block;
short yco= 0, menuwidth=120;
@@ -317,7 +237,7 @@
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Center View|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "View All|Home", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
- uiDefIconTextBut(block, BUTM, 1, (handle->region->v2d.flag & V2D_VIEWSYNC_X)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
+ uiDefIconTextBut(block, BUTM, 1, (v2d->flag & V2D_VIEWSYNC_X)?ICON_CHECKBOX_HLT:ICON_CHECKBOX_DEHLT,
"Lock Time to Other Windows|", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
// if (!curarea->full)
@@ -343,46 +263,41 @@
{
switch(event) {
case 1: /*Set as Start */
- if (G.scene->r.psfra) {
- if (G.scene->r.pefra < CFRA)
- G.scene->r.pefra= CFRA;
- G.scene->r.psfra= CFRA;
+ if (C->scene->r.psfra) {
+ if (C->scene->r.pefra < CFRA)
+ C->scene->r.pefra= CFRA;
+ C->scene->r.psfra= CFRA;
}
else
- G.scene->r.sfra = CFRA;
- //allqueue(REDRAWALL, 1);
+ C->scene->r.sfra = CFRA;
+ WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL);
break;
case 2: /* Set as End */
- if (G.scene->r.psfra) {
- if (CFRA < G.scene->r.psfra)
- G.scene->r.psfra= CFRA;
- G.scene->r.pefra= CFRA;
+ if (C->scene->r.psfra) {
+ if (CFRA < C->scene->r.psfra)
+ C->scene->r.psfra= CFRA;
+ C->scene->r.pefra= CFRA;
}
else
- G.scene->r.efra = CFRA;
- //allqueue(REDRAWALL, 1);
+ C->scene->r.efra = CFRA;
+ WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL);
break;
case 3: /* Add Marker */
- //add_marker(CFRA);
+ WM_operator_call_rwin(C, "ED_MARKER_OT_add");
break;
case 4: /* Remove Marker */
- //remove_marker();
+ WM_operator_call_rwin(C, "ED_MARKER_OT_delete");
break;
case 5: /* Rename Marker */
//rename_marker();
break;
case 6: /* Grab Marker */
- //transform_markers('g', 0);
+ WM_operator_call_rwin(C, "ED_MARKER_OT_move");
break;
case 7: /* duplicate marker */
- //duplicate_marker();
+ WM_operator_call_rwin(C, "ED_MARKER_OT_duplicate");
break;
}
- //allqueue(REDRAWTIME, 0);
- //allqueue(REDRAWIPO, 0);
- //allqueue(REDRAWACTION, 0);
- //allqueue(REDRAWNLA, 0);
- //allqueue(REDRAWSOUND, 0);
}
static uiBlock *time_framemenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused)
@@ -429,12 +344,104 @@
return block;
}
+static void start_animated_screen(SpaceTime *stime)
+{
+ // XXX add_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM, stime->redraws);
+
+ // if(stime->redraws & TIME_WITH_SEQ_AUDIO)
+ // audiostream_start( CFRA );
+
+ // BKE_ptcache_set_continue_physics((stime->redraws & TIME_CONTINUE_PHYSICS));
+}
+
+static void end_animated_screen(SpaceTime *stime)
+{
+ // rem_screenhandler(G.curscreen, SCREEN_HANDLER_ANIM);
+
+ // audiostream_stop();
+ // BKE_ptcache_set_continue_physics(0);
+}
+
+#define B_REDRAWALL 750
+#define B_TL_REW 751
+#define B_TL_PLAY 752
+#define B_TL_FF 753
+#define B_TL_PREVKEY 754
+#define B_TL_NEXTKEY 755
+#define B_TL_STOP 756
+#define B_TL_PREVIEWON 757
+#define B_TL_INSERTKEY 758
+#define B_TL_DELETEKEY 759
+
#define B_NEWSPACE 0
#define B_FLIPINFOMENU 0
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list