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:
authorDaniel Dunbar <daniel@zuster.org>2003-03-24 04:46:05 +0300
committerDaniel Dunbar <daniel@zuster.org>2003-03-24 04:46:05 +0300
commit1f3f52f5e4eb8b55a7ba1d7bc1d656b6a12f0df0 (patch)
treeb57723c590e41321824bc4a7ce31260f1031b32e /source/blender/src
parenta6a50cc27f9f961ac78ae63aea75a5931f3bd333 (diff)
Update space dispatch:
- drawXXXspace, changeXXXspace, and winqreadXXXspace now receive the area and spacedata as explicit arguments, allowing them to access private data w/o going through globals. - pass the new BWinEvent through to the winqreadXXXspace, allowing future access to extended event data. Removed direct calls to winqreadXXXspace to simulate user actions, replaced by calls to action functions in edit.c or the appropriate handler.
Diffstat (limited to 'source/blender/src')
-rw-r--r--source/blender/src/buttons.c2
-rw-r--r--source/blender/src/drawaction.c4
-rw-r--r--source/blender/src/drawimage.c2
-rw-r--r--source/blender/src/drawimasel.c2
-rw-r--r--source/blender/src/drawipo.c12
-rw-r--r--source/blender/src/drawnla.c2
-rw-r--r--source/blender/src/drawoops.c2
-rw-r--r--source/blender/src/drawseq.c2
-rw-r--r--source/blender/src/drawsound.c4
-rw-r--r--source/blender/src/drawtext.c11
-rw-r--r--source/blender/src/drawview.c3
-rw-r--r--source/blender/src/edit.c46
-rw-r--r--source/blender/src/editaction.c5
-rw-r--r--source/blender/src/editimasel.c6
-rw-r--r--source/blender/src/editipo.c10
-rw-r--r--source/blender/src/editnla.c5
-rw-r--r--source/blender/src/editscreen.c2
-rw-r--r--source/blender/src/editseq.c4
-rw-r--r--source/blender/src/editsound.c10
-rw-r--r--source/blender/src/filesel.c7
-rw-r--r--source/blender/src/headerbuttons.c25
-rw-r--r--source/blender/src/renderwin.c8
-rw-r--r--source/blender/src/space.c173
-rw-r--r--source/blender/src/spacetypes.c6
-rw-r--r--source/blender/src/usiblender.c1
-rw-r--r--source/blender/src/writeavicodec.c1
26 files changed, 199 insertions, 156 deletions
diff --git a/source/blender/src/buttons.c b/source/blender/src/buttons.c
index c4256b9cc4f..5d782eb4c59 100644
--- a/source/blender/src/buttons.c
+++ b/source/blender/src/buttons.c
@@ -6981,7 +6981,7 @@ static void do_constraintbuts(unsigned short event)
/* ***************************<>******************************** */
-void drawbutspace(void)
+void drawbutspace(ScrArea *sa, void *spacedata)
{
SpaceButs *sbuts= curarea->spacedata.first;
View2D *v2d= &sbuts->v2d;
diff --git a/source/blender/src/drawaction.c b/source/blender/src/drawaction.c
index ed57a595076..80af4d27676 100644
--- a/source/blender/src/drawaction.c
+++ b/source/blender/src/drawaction.c
@@ -84,7 +84,7 @@
#include "blendef.h"
/* local functions ----------------------------------------------------- */
-void drawactionspace(void);
+void drawactionspace(ScrArea *sa, void *spacedata);
static void draw_channel_names(void);
static void draw_channel_strips(SpaceAction *saction);
int count_action_levels(bAction *act);
@@ -345,7 +345,7 @@ static void draw_channel_strips(SpaceAction *saction)
glaEnd2DDraw(di);
}
-void drawactionspace(void)
+void drawactionspace(ScrArea *sa, void *spacedata)
{
short ofsx = 0, ofsy = 0;
diff --git a/source/blender/src/drawimage.c b/source/blender/src/drawimage.c
index efe75fc4586..281eec09cda 100644
--- a/source/blender/src/drawimage.c
+++ b/source/blender/src/drawimage.c
@@ -410,7 +410,7 @@ static unsigned int *get_part_from_ibuf(ImBuf *ibuf, short startx, short starty,
return rectmain;
}
-void drawimagespace(void)
+void drawimagespace(ScrArea *sa, void *spacedata)
{
ImBuf *ibuf= NULL;
unsigned int *rect;
diff --git a/source/blender/src/drawimasel.c b/source/blender/src/drawimasel.c
index 451eff81437..a4e439fc246 100644
--- a/source/blender/src/drawimasel.c
+++ b/source/blender/src/drawimasel.c
@@ -853,7 +853,7 @@ void pibplay(SpaceImaSel *simasel)
/* ************** hoofdtekenfunktie ************** */
-void drawimaselspace() /* hoofdtekenfunktie */
+void drawimaselspace(ScrArea *sa, void *spacedata) /* hoofdtekenfunktie */
{
SpaceImaSel *simasel;
simasel= curarea->spacedata.first;
diff --git a/source/blender/src/drawipo.c b/source/blender/src/drawipo.c
index a8fdabe5069..ce7ed5507c5 100644
--- a/source/blender/src/drawipo.c
+++ b/source/blender/src/drawipo.c
@@ -358,6 +358,16 @@ int in_ipo_buttons(void)
}
+void view2d_zoom(View2D *v2d, float factor, int winx, int winy) {
+ float dx= factor*(v2d->cur.xmax-v2d->cur.xmin);
+ float dy= factor*(v2d->cur.ymax-v2d->cur.ymin);
+ v2d->cur.xmin+= dx;
+ v2d->cur.xmax-= dx;
+ v2d->cur.ymin+= dy;
+ v2d->cur.ymax-= dy;
+ test_view2d(v2d, winx, winy);
+}
+
void test_view2d(View2D *v2d, int winx, int winy)
{
/* cur mag niet groter dan max, kleiner dan min of buiten tot vallen */
@@ -1316,7 +1326,7 @@ static void draw_key(SpaceIpo *sipo, int visible)
setlinestyle(0);
}
-void drawipospace(void)
+void drawipospace(ScrArea *sa, void *spacedata)
{
SpaceIpo *sipo= curarea->spacedata.first;
View2D *v2d= &sipo->v2d;
diff --git a/source/blender/src/drawnla.c b/source/blender/src/drawnla.c
index 62d897b0d93..b43f8c8d713 100644
--- a/source/blender/src/drawnla.c
+++ b/source/blender/src/drawnla.c
@@ -427,7 +427,7 @@ static void draw_nlastrips(SpaceNla *snla)
}
-void drawnlaspace(void)
+void drawnlaspace(ScrArea *sa, void *spacedata)
{
short ofsx = 0, ofsy = 0;
diff --git a/source/blender/src/drawoops.c b/source/blender/src/drawoops.c
index bee15ccc7e5..6c8fb4d7edb 100644
--- a/source/blender/src/drawoops.c
+++ b/source/blender/src/drawoops.c
@@ -367,7 +367,7 @@ void draw_oops(Oops *oops, uiBlock *block)
}
}
-void drawoopsspace()
+void drawoopsspace(ScrArea *sa, void *spacedata)
{
uiBlock *block;
Oops *oops;
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index 7598eaa8637..63907ec2c9e 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -538,7 +538,7 @@ static void draw_extra_seqinfo(void)
}
}
-void drawseqspace(void)
+void drawseqspace(ScrArea *sa, void *spacedata)
{
SpaceSeq *sseq;
Editing *ed;
diff --git a/source/blender/src/drawsound.c b/source/blender/src/drawsound.c
index d4ec8b705eb..12f29d1054a 100644
--- a/source/blender/src/drawsound.c
+++ b/source/blender/src/drawsound.c
@@ -60,7 +60,7 @@
#include "BSE_drawipo.h"
/* local */
-void drawsoundspace(void);
+void drawsoundspace(ScrArea *sa, void *spacedata);
/*implementation */
static void draw_wave(int startsamp, int endsamp, short sampdx, short offset, short *sp, float sampfac, float y)
@@ -163,7 +163,7 @@ static void draw_cfra_sound(void)
}
-void drawsoundspace(void)
+void drawsoundspace(ScrArea *sa, void *spacedata)
{
short ofsx, ofsy;
diff --git a/source/blender/src/drawtext.c b/source/blender/src/drawtext.c
index 42caba1c3f6..c41b9d8abaa 100644
--- a/source/blender/src/drawtext.c
+++ b/source/blender/src/drawtext.c
@@ -84,8 +84,8 @@
#define TEXTXLOC 38
/* locals */
-void drawtextspace(void);
-void winqreadtextspace(unsigned short event, short val, char ascii);
+void drawtextspace(ScrArea *sa, void *spacedata);
+void winqreadtextspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
static void *last_txt_find_string= NULL;
@@ -532,7 +532,7 @@ static void do_selection(SpaceText *st, int selecting)
txt_undo_add_toop(st->text, UNDO_STO, sell, selc, linep2, charp2);
}
-void drawtextspace(void)
+void drawtextspace(ScrArea *sa, void *spacedata)
{
SpaceText *st= curarea->spacedata.first;
Text *text;
@@ -742,8 +742,11 @@ static int jumptoline_interactive(SpaceText *st) {
}
}
-void winqreadtextspace(unsigned short event, short val, char ascii)
+void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceText *st= curarea->spacedata.first;
Text *text= st->text;
char *py_filename;
diff --git a/source/blender/src/drawview.c b/source/blender/src/drawview.c
index 0199f3865c9..79ce9164300 100644
--- a/source/blender/src/drawview.c
+++ b/source/blender/src/drawview.c
@@ -784,7 +784,7 @@ static void draw_view_icon(void)
glDisable(GL_BLEND);
}
-void drawview3dspace(void)
+void drawview3dspace(ScrArea *sa, void *spacedata)
{
Base *base;
Object *ob;
@@ -996,6 +996,7 @@ void drawview3dspace(void)
*/
void drawview3d_render(struct View3D *v3d)
{
+ extern void mywindow_build_and_set_renderwin(void);
extern short v3d_windowmode;
Base *base;
Object *ob;
diff --git a/source/blender/src/edit.c b/source/blender/src/edit.c
index 58956ed9b37..eaeba18879d 100644
--- a/source/blender/src/edit.c
+++ b/source/blender/src/edit.c
@@ -86,6 +86,8 @@
#include "BSE_drawview.h"
#include "BDR_editobject.h"
+#include "BDR_editmball.h"
+#include "BDR_editcurve.h"
/* old stuff */
#include "blendertimer.h"
@@ -1171,7 +1173,7 @@ void snapmenu()
}
-void mergemenu()
+void mergemenu(void)
{
extern float doublimit;
short event;
@@ -1193,3 +1195,45 @@ void mergemenu()
}
}
+
+void delete_context_selected(void) {
+ if(G.obedit) {
+ if(G.obedit->type==OB_MESH) delete_mesh();
+ else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) delNurb();
+ else if(G.obedit->type==OB_MBALL) delete_mball();
+ else if (G.obedit->type==OB_ARMATURE) delete_armature();
+ }
+ else delete_obj(0);
+}
+
+void duplicate_context_selected(void) {
+ if(G.obedit) {
+ if(G.obedit->type==OB_MESH) adduplicate_mesh();
+ else if(G.obedit->type==OB_ARMATURE) adduplicate_armature();
+ else if(G.obedit->type==OB_MBALL) adduplicate_mball();
+ else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) adduplicate_nurb();
+ }
+ else if(G.obpose){
+ error ("Duplicate not possible in posemode.");
+ }
+ else adduplicate(0);
+}
+
+void toggle_shading(void) {
+ if(G.qual & LR_CTRLKEY) {
+ reshadeall_displist();
+ G.vd->drawtype= OB_SHADED;
+ }
+ else if(G.qual & LR_SHIFTKEY) {
+ if(G.vd->drawtype== OB_SHADED) G.vd->drawtype= OB_WIRE;
+ else G.vd->drawtype= OB_SHADED;
+ }
+ else if(G.qual & LR_ALTKEY) {
+ if(G.vd->drawtype== OB_TEXTURE) G.vd->drawtype= OB_SOLID;
+ else G.vd->drawtype= OB_TEXTURE;
+ }
+ else {
+ if(G.vd->drawtype==OB_SOLID || G.vd->drawtype==OB_SHADED) G.vd->drawtype= OB_WIRE;
+ else G.vd->drawtype= OB_SOLID;
+ }
+}
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c
index 1eb06c398f4..63b42531f67 100644
--- a/source/blender/src/editaction.c
+++ b/source/blender/src/editaction.c
@@ -1650,8 +1650,11 @@ static void borderselect_function(void (*select_func)(bAction *act,
}
-void winqreadactionspace(unsigned short event, short val, char ascii)
+void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceAction *saction;
bAction *act;
int doredraw= 0;
diff --git a/source/blender/src/editimasel.c b/source/blender/src/editimasel.c
index 8052de6b64c..c4da07e4c7c 100644
--- a/source/blender/src/editimasel.c
+++ b/source/blender/src/editimasel.c
@@ -61,6 +61,7 @@
#include "BIF_screen.h"
#include "BIF_interface.h"
#include "BIF_imasel.h"
+#include "BIF_mywindow.h"
#include "BSE_filesel.h"
#include "BSE_drawimasel.h"
@@ -83,8 +84,11 @@ static void draw_icon_imasel(void)
scrarea_queue_winredraw(curarea);
}
-void winqreadimaselspace(unsigned short event, short val, char ascii)
+void winqreadimaselspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceImaSel *simasel;
short mval[2];
diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c
index d1b5585824a..9e14858b875 100644
--- a/source/blender/src/editipo.c
+++ b/source/blender/src/editipo.c
@@ -1478,6 +1478,16 @@ void set_editflag_editipo()
scrarea_queue_winredraw(curarea);
}
+void ipo_toggle_showkey(void) {
+ if(G.sipo->showkey) {
+ G.sipo->showkey= 0;
+ swap_selectall_editipo(); /* sel all */
+ }
+ else G.sipo->showkey= 1;
+ free_ipokey(&G.sipo->ipokey);
+ if(G.sipo->ipo) G.sipo->ipo->showkey= G.sipo->showkey;
+}
+
void swap_selectall_editipo()
{
Object *ob;
diff --git a/source/blender/src/editnla.c b/source/blender/src/editnla.c
index 34522a80959..c74fb7892f6 100644
--- a/source/blender/src/editnla.c
+++ b/source/blender/src/editnla.c
@@ -111,8 +111,11 @@ extern int nla_filter (Base* base, int flags); /* From drawnla.c */
/* ******************** SPACE: NLA ********************** */
-void winqreadnlaspace(unsigned short event, short val, char ascii)
+void winqreadnlaspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceNla *snla = curarea->spacedata.first;
int doredraw= 0;
short mval[2];
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c
index 0672a3f7977..c8b00d2f5d7 100644
--- a/source/blender/src/editscreen.c
+++ b/source/blender/src/editscreen.c
@@ -887,7 +887,7 @@ void screenmain(void)
flush_extqd_events();
if (nafterqitems && !qtest()) {
append_afterqueue();
- event= 0;
+ event= val= ascii= 0;
} else {
event= screen_qread(&val, &ascii);
}
diff --git a/source/blender/src/editseq.c b/source/blender/src/editseq.c
index 6afdffcf317..637c0efc8af 100644
--- a/source/blender/src/editseq.c
+++ b/source/blender/src/editseq.c
@@ -556,7 +556,7 @@ static void add_image_strips(char *name)
/* is voor restore windowmatrices */
areawinset(curarea->win);
- drawseqspace();
+ drawseqspace(curarea, curarea->spacedata.first);
/* sfile zoeken */
sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
@@ -616,7 +616,7 @@ static void add_movie_strip(char *name)
/* is voor restore windowmatrices */
areawinset(curarea->win);
- drawseqspace();
+ drawseqspace(curarea, curarea->spacedata.first);
/* sfile zoeken */
sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
diff --git a/source/blender/src/editsound.c b/source/blender/src/editsound.c
index a3ae24d4a40..4099e665d7a 100644
--- a/source/blender/src/editsound.c
+++ b/source/blender/src/editsound.c
@@ -91,14 +91,17 @@ static SND_AudioDeviceInterfaceHandle ghAudioDeviceInterface;
bSound *sound_find_sound(char *id_name);
void sound_read_wav_data(bSound * sound, PackedFile * pf);
void sound_stop_sound(void *object, bSound *sound);
-void winqreadsoundspace(unsigned short event, short val, char ascii);
+void winqreadsoundspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
/* void sound_stop_all_sounds(void); already in BIF_editsound.h */
/* Right. Now for some implementation: */
-void winqreadsoundspace(unsigned short event, short val, char ascii)
+void winqreadsoundspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
float dx, dy;
int doredraw= 0, cfra, first = 0;
short mval[2];
@@ -430,8 +433,9 @@ void sound_read_wav_data(bSound* sound, PackedFile* pf)
/* ugly, but it works (for now) */
int sound_get_filetype_from_header(bSound* sound, PackedFile* pf)
{
- int i, filetype = SAMPLE_INVALID;
+ int filetype = SAMPLE_INVALID;
#if GAMEBLENDER == 1
+ int i;
char buffer[25];
short shortbuf;
diff --git a/source/blender/src/filesel.c b/source/blender/src/filesel.c
index 34e0ea8d68c..62edd0e34e8 100644
--- a/source/blender/src/filesel.c
+++ b/source/blender/src/filesel.c
@@ -1049,7 +1049,7 @@ static void draw_filetext(SpaceFile *sfile)
glRecti(textrct.xmax+2, textrct.ymin, textrct.xmax+10, textrct.ymax);
}
-void drawfilespace()
+void drawfilespace(ScrArea *sa, void *spacedata)
{
SpaceFile *sfile;
uiBlock *block;
@@ -1706,8 +1706,11 @@ static void fs_fake_users(SpaceFile *sfile)
scrarea_queue_winredraw(curarea);
}
-void winqreadfilespace(unsigned short event, short val, char ascii)
+void winqreadfilespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
static int acto=0;
SpaceFile *sfile;
int act, do_draw= 0, i, test, ret = 0;
diff --git a/source/blender/src/headerbuttons.c b/source/blender/src/headerbuttons.c
index e4f02b92a19..c73c9ca9de9 100644
--- a/source/blender/src/headerbuttons.c
+++ b/source/blender/src/headerbuttons.c
@@ -2462,23 +2462,19 @@ static void do_info_editmenu(void *arg, int event)
case 2:
/* Circle Select */
/*if(select_area(SPACE_VIEW3D)) {
- winqreadview3dspace(BKEY, 1, 0); // XXX - kill me
- winqreadview3dspace(BKEY, 1, 0); // XXX - kill me
+ ;
}*/
break;
case 3:
/* Duplicate */
if(select_area(SPACE_VIEW3D)) {
- oldqual = G.qual;
- G.qual = LR_SHIFTKEY;
- winqreadview3dspace(DKEY, 1, 0); // XXX - kill me
- G.qual = oldqual;
+ duplicate_context_selected();
}
break;
case 4:
/* Delete */
if(select_area(SPACE_VIEW3D)) {
- winqreadview3dspace(XKEY, 1, 0); // XXX - kill me
+ delete_context_selected();
}
break;
case 5:
@@ -2532,19 +2528,13 @@ static void do_info_editmenu(void *arg, int event)
/* ### */
}
if(select_area(SPACE_VIEW3D)) {
- oldqual = G.qual;
- G.qual = LR_SHIFTKEY;
- winqreadview3dspace(WKEY, 1, 0); // XXX - kill me
- G.qual = oldqual;
+ transform('w');
}
break;
case 11:
/* Snap */
if(select_area(SPACE_VIEW3D)) {
- oldqual = G.qual;
- G.qual = LR_SHIFTKEY;
- winqreadview3dspace(SKEY, 1, 0); // XXX - kill me
- G.qual = oldqual;
+ snapmenu();
}
break;
}
@@ -3930,7 +3920,10 @@ void do_ipo_buttons(short event)
case B_IPOSHOWKEY:
/* waarde omkeren vanwege winqread */
G.sipo->showkey= 1-G.sipo->showkey;
- winqreadipospace(KKEY, 1, 0); // XXX - kill me
+ ipo_toggle_showkey();
+ scrarea_queue_headredraw(curarea);
+ scrarea_queue_winredraw(curarea);
+ allqueue(REDRAWVIEW3D, 0);
break;
case B_VIEW2DZOOM:
viewmovetemp= 0;
diff --git a/source/blender/src/renderwin.c b/source/blender/src/renderwin.c
index dbc6bd03719..b344c748344 100644
--- a/source/blender/src/renderwin.c
+++ b/source/blender/src/renderwin.c
@@ -180,8 +180,8 @@ static int renderwin_win_to_image_co(RenderWin *rw, int winco[2], int imgco_r[2]
renderwin_get_disprect(rw, disprect);
- imgco_r[0]= (winco[0]-disprect[0][0])/rw->zoom;
- imgco_r[1]= (winco[1]-disprect[0][1])/rw->zoom;
+ imgco_r[0]= (int) ((winco[0]-disprect[0][0])/rw->zoom);
+ imgco_r[1]= (int) ((winco[1]-disprect[0][1])/rw->zoom);
return (imgco_r[0]>=0 && imgco_r[1]>=0 && imgco_r[0]<R.rectx && imgco_r[1]<R.recty);
}
@@ -196,8 +196,8 @@ static int renderwin_win_to_ndc(RenderWin *rw, int win_co[2], float ndc_r[2])
window_get_size(rw->win, &w, &h);
- ndc_r[0]= (float) (win_co[0]*2)/(w-1) - 1.0;
- ndc_r[1]= (float) (win_co[1]*2)/(h-1) - 1.0;
+ ndc_r[0]= (float) ((win_co[0]*2)/(w-1) - 1.0);
+ ndc_r[1]= (float) ((win_co[1]*2)/(h-1) - 1.0);
return (fabs(ndc_r[0])<=1.0 && fabs(ndc_r[1])<=1.0);
}
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 03e7416e179..c35e616ace3 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -153,7 +153,7 @@ void free_soundspace(SpaceSound *ssound);
/* ************* SPACE: VIEW3D ************* */
-/* extern void drawview3dspace(); BSE_drawview.h */
+/* extern void drawview3dspace(ScrArea *sa, void *spacedata); BSE_drawview.h */
void copy_view3d_lock(short val)
@@ -384,11 +384,9 @@ void start_game(void)
#endif
}
-void changeview3d()
+static void changeview3dspace(ScrArea *sa, void *spacedata)
{
-
setwinmatrixview3d(0); /* 0= geen pick rect */
-
}
/* Callable from editmode and faceselect mode from the
@@ -419,8 +417,11 @@ static void align_view_to_selected(View3D *v3d)
}
}
-void winqreadview3dspace(unsigned short event, short val, char ascii)
+void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
View3D *v3d= curarea->spacedata.first;
Object *ob;
float *curs;
@@ -676,16 +677,7 @@ void winqreadview3dspace(unsigned short event, short val, char ascii)
break;
case DKEY:
if(G.qual & LR_SHIFTKEY) {
- if(G.obedit) {
- if(G.obedit->type==OB_MESH) adduplicate_mesh();
- else if(G.obedit->type==OB_ARMATURE) adduplicate_armature();
- else if(G.obedit->type==OB_MBALL) adduplicate_mball();
- else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) adduplicate_nurb();
- }
- else if(G.obpose){
- error ("Duplicate not possible in posemode.");
- }
- else adduplicate(0);
+ duplicate_context_selected();
}
else if(G.qual & LR_ALTKEY) {
if(G.obpose) error ("Duplicate not possible in posemode.");
@@ -958,13 +950,7 @@ void winqreadview3dspace(unsigned short event, short val, char ascii)
break;
case XKEY:
case DELKEY:
- if(G.obedit) {
- if(G.obedit->type==OB_MESH) delete_mesh();
- else if ELEM(G.obedit->type, OB_CURVE, OB_SURF) delNurb();
- else if(G.obedit->type==OB_MBALL) delete_mball();
- else if (G.obedit->type==OB_ARMATURE) delete_armature();
- }
- else delete_obj(0);
+ delete_context_selected();
break;
case YKEY:
if(G.obedit) {
@@ -972,23 +958,7 @@ void winqreadview3dspace(unsigned short event, short val, char ascii)
}
break;
case ZKEY:
- if(G.qual & LR_CTRLKEY) {
- reshadeall_displist();
- G.vd->drawtype= OB_SHADED;
- }
- else if(G.qual & LR_SHIFTKEY) {
- if(G.vd->drawtype== OB_SHADED) G.vd->drawtype= OB_WIRE;
- else G.vd->drawtype= OB_SHADED;
- }
- else if(G.qual & LR_ALTKEY) {
- if(G.vd->drawtype== OB_TEXTURE) G.vd->drawtype= OB_SOLID;
- else G.vd->drawtype= OB_TEXTURE;
- }
- else {
- if(G.vd->drawtype==OB_SOLID || G.vd->drawtype==OB_SHADED) G.vd->drawtype= OB_WIRE;
- else G.vd->drawtype= OB_SOLID;
- }
-
+ toggle_shading();
scrarea_queue_headredraw(curarea);
scrarea_queue_winredraw(curarea);
@@ -1094,7 +1064,7 @@ void initview3d(ScrArea *sa)
/* ******************** SPACE: IPO ********************** */
-void changeview2d()
+static void changeview2dspace(ScrArea *sa, void *spacedata)
{
if(G.v2d==0) return;
@@ -1102,8 +1072,11 @@ void changeview2d()
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
}
-void winqreadipospace(unsigned short event, short val, char ascii)
+void winqreadipospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceIpo *sipo= curarea->spacedata.first;
View2D *v2d= &sipo->v2d;
float dx, dy;
@@ -1163,30 +1136,11 @@ void winqreadipospace(unsigned short event, short val, char ascii)
allqueue(REDRAWNLA, 0);
break;
case PADPLUSKEY:
-
- dx= 0.1154*(v2d->cur.xmax-v2d->cur.xmin);
- dy= 0.1154*(v2d->cur.ymax-v2d->cur.ymin);
- if(val==SPACE_BUTS) {
- dx/=2.0; dy/= 2.0;
- }
- v2d->cur.xmin+= dx;
- v2d->cur.xmax-= dx;
- v2d->cur.ymin+= dy;
- v2d->cur.ymax-= dy;
- test_view2d(G.v2d, curarea->winx, curarea->winy);
+ view2d_zoom(v2d, 0.1154, curarea->winx, curarea->winy);
doredraw= 1;
break;
case PADMINUS:
- dx= 0.15*(v2d->cur.xmax-v2d->cur.xmin);
- dy= 0.15*(v2d->cur.ymax-v2d->cur.ymin);
- if(val==SPACE_BUTS) {
- dx/=2.0; dy/= 2.0;
- }
- v2d->cur.xmin-= dx;
- v2d->cur.xmax+= dx;
- v2d->cur.ymin-= dy;
- v2d->cur.ymax+= dy;
- test_view2d(G.v2d, curarea->winx, curarea->winy);
+ view2d_zoom(v2d, -0.15, curarea->winx, curarea->winy);
doredraw= 1;
break;
case PAGEUPKEY:
@@ -1230,14 +1184,7 @@ void winqreadipospace(unsigned short event, short val, char ascii)
join_ipo();
break;
case KKEY:
- if(G.sipo->showkey) {
- G.sipo->showkey= 0;
- swap_selectall_editipo(); /* sel all */
- }
- else G.sipo->showkey= 1;
- free_ipokey(&G.sipo->ipokey);
- if(G.sipo->ipo) G.sipo->ipo->showkey= G.sipo->showkey;
-
+ ipo_toggle_showkey();
scrarea_queue_headredraw(curarea);
allqueue(REDRAWVIEW3D, 0);
doredraw= 1;
@@ -1314,7 +1261,7 @@ void space_sound_button_function(int event)
}
}
-void drawinfospace(void)
+void drawinfospace(ScrArea *sa, void *spacedata)
{
uiBlock *block;
float fac;
@@ -1448,8 +1395,11 @@ void drawinfospace(void)
uiDrawBlock(block);
}
-void winqreadinfospace(unsigned short event, short val, char ascii)
+void winqreadinfospace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
if(val) {
if( uiDoBlocks(&curarea->uiblocks, event)!=UI_NOTHING ) event= 0;
@@ -1472,9 +1422,9 @@ void init_infospace(ScrArea *sa)
/* ******************** SPACE: BUTS ********************** */
-extern void drawbutspace(void); /* buttons.c */
+extern void drawbutspace(ScrArea *sa, void *spacedata); /* buttons.c */
-void changebutspace(void)
+static void changebutspace(ScrArea *sa, void *spacedata)
{
if(G.v2d==0) return;
@@ -1482,10 +1432,13 @@ void changebutspace(void)
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
}
-void winqreadbutspace(unsigned short event, short val, char ascii)
+void winqreadbutspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceButs *sbuts= curarea->spacedata.first;
- ScrArea *sa, *sa3d;
+ ScrArea *sa2, *sa3d;
int doredraw= 0;
if(val) {
@@ -1504,9 +1457,12 @@ void winqreadbutspace(unsigned short event, short val, char ascii)
break;
case PADPLUSKEY:
+ view2d_zoom(&sbuts->v2d, 0.06, curarea->winx, curarea->winy);
+ scrarea_queue_winredraw(curarea);
+ break;
case PADMINUS:
- val= SPACE_BUTS;
- winqreadipospace(event, val, 0); // XXX - kill me
+ view2d_zoom(&sbuts->v2d, -0.075, curarea->winx, curarea->winy);
+ scrarea_queue_winredraw(curarea);
break;
case RENDERPREVIEW:
BIF_previewrender(sbuts);
@@ -1522,20 +1478,20 @@ void winqreadbutspace(unsigned short event, short val, char ascii)
case PAD5: case PAD7: case PAD9:
case PADENTER: case ZKEY: case PKEY:
sa3d= 0;
- sa= G.curscreen->areabase.first;
- while(sa) {
- if(sa->spacetype==SPACE_VIEW3D) {
+ sa2= G.curscreen->areabase.first;
+ while(sa2) {
+ if(sa2->spacetype==SPACE_VIEW3D) {
if(sa3d) return;
- sa3d= sa;
+ sa3d= sa2;
}
- sa= sa->next;
+ sa2= sa2->next;
}
if(sa3d) {
sa= curarea;
areawinset(sa3d->win);
if(event==PKEY) start_game();
- else if(event==ZKEY) winqreadview3dspace(event, val, 0); // XXX - kill me
+ else if(event==ZKEY) toggle_shading();
else persptoetsen(event);
scrarea_queue_winredraw(sa3d);
@@ -1633,10 +1589,13 @@ void extern_set_butspace(int fkey)
/* ******************** SPACE: SEQUENCE ********************** */
-/* extern void drawseqspace(); BIF_drawseq.h */
+/* extern void drawseqspace(ScrArea *sa, void *spacedata); BIF_drawseq.h */
-void winqreadseqspace(unsigned short event, short val, char ascii)
+void winqreadseqspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceSeq *sseq= curarea->spacedata.first;
View2D *v2d= &sseq->v2d;
extern Sequence *last_seq;
@@ -1832,8 +1791,8 @@ void init_seqspace(ScrArea *sa)
}
/* ******************** SPACE: ACTION ********************** */
-extern void drawactionspace(void);
-extern void winqreadactionspace(unsigned short, short, char ascii);
+extern void drawactionspace(ScrArea *sa, void *spacedata);
+extern void winqreadactionspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
void init_actionspace(ScrArea *sa)
{
@@ -1954,8 +1913,8 @@ void init_imaselspace(ScrArea *sa)
/* ******************** SPACE: SOUND ********************** */
-extern void drawsoundspace(void);
-extern void winqreadsoundspace(unsigned short, short, char ascii);
+extern void drawsoundspace(ScrArea *sa, void *spacedata);
+extern void winqreadsoundspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
void init_soundspace(ScrArea *sa)
{
@@ -2003,10 +1962,13 @@ void free_soundspace(SpaceSound *ssound)
/* ******************** SPACE: IMAGE ********************** */
-/* extern void drawimagespace(); BIF_drawimage.h */
+/* extern void drawimagespace(ScrArea *sa, void *spacedata); BIF_drawimage.h */
-void winqreadimagespace(unsigned short event, short val, char ascii)
+void winqreadimagespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceImage *sima= curarea->spacedata.first;
View2D *v2d= &sima->v2d;
#ifdef NAN_TPT
@@ -2145,8 +2107,8 @@ void init_imagespace(ScrArea *sa)
/* ******************** SPACE: IMASEL ********************** */
-extern void drawimaselspace(void);
-extern void winqreadimaselspace(unsigned short, short, char ascii);
+extern void drawimaselspace(ScrArea *sa, void *spacedata);
+extern void winqreadimaselspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
/* alles naar imasel.c */
@@ -2154,10 +2116,13 @@ extern void winqreadimaselspace(unsigned short, short, char ascii);
/* ******************** SPACE: OOPS ********************** */
-extern void drawoopsspace(void);
+extern void drawoopsspace(ScrArea *sa, void *spacedata);
-void winqreadoopsspace(unsigned short event, short val, char ascii)
+void winqreadoopsspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
{
+ unsigned short event= evt->event;
+ short val= evt->val;
+ char ascii= evt->ascii;
SpaceOops *soops= curarea->spacedata.first;
View2D *v2d= &soops->v2d;
float dx, dy;
@@ -2301,8 +2266,8 @@ void init_oopsspace(ScrArea *sa)
/* ******************** SPACE: Text ********************** */
-extern void drawtextspace(void);
-extern void winqreadtextspace(unsigned short, short, char ascii);
+extern void drawtextspace(ScrArea *sa, void *spacedata);
+extern void winqreadtextspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
/* ******************** SPACE: ALGEMEEN ********************** */
@@ -2918,7 +2883,7 @@ SpaceType *spaceaction_get_type(void)
if (!st) {
st= spacetype_new("Action");
- spacetype_set_winfuncs(st, drawactionspace, changeview2d, winqreadactionspace);
+ spacetype_set_winfuncs(st, drawactionspace, changeview2dspace, winqreadactionspace);
}
return st;
@@ -2984,7 +2949,7 @@ SpaceType *spaceipo_get_type(void)
if (!st) {
st= spacetype_new("Ipo");
- spacetype_set_winfuncs(st, drawipospace, changeview2d, winqreadipospace);
+ spacetype_set_winfuncs(st, drawipospace, changeview2dspace, winqreadipospace);
}
return st;
@@ -2995,7 +2960,7 @@ SpaceType *spacenla_get_type(void)
if (!st) {
st= spacetype_new("Nla");
- spacetype_set_winfuncs(st, drawnlaspace, changeview2d, winqreadnlaspace);
+ spacetype_set_winfuncs(st, drawnlaspace, changeview2dspace, winqreadnlaspace);
}
return st;
@@ -3006,7 +2971,7 @@ SpaceType *spaceoops_get_type(void)
if (!st) {
st= spacetype_new("Oops");
- spacetype_set_winfuncs(st, drawoopsspace, changeview2d, winqreadoopsspace);
+ spacetype_set_winfuncs(st, drawoopsspace, changeview2dspace, winqreadoopsspace);
}
return st;
@@ -3017,7 +2982,7 @@ SpaceType *spaceseq_get_type(void)
if (!st) {
st= spacetype_new("Sequence");
- spacetype_set_winfuncs(st, drawseqspace, changeview2d, winqreadseqspace);
+ spacetype_set_winfuncs(st, drawseqspace, changeview2dspace, winqreadseqspace);
}
return st;
@@ -3050,7 +3015,7 @@ SpaceType *spaceview3d_get_type(void)
if (!st) {
st= spacetype_new("View3D");
- spacetype_set_winfuncs(st, drawview3dspace, changeview3d, winqreadview3dspace);
+ spacetype_set_winfuncs(st, drawview3dspace, changeview3dspace, winqreadview3dspace);
}
return st;
diff --git a/source/blender/src/spacetypes.c b/source/blender/src/spacetypes.c
index 2eb923896d2..8a0ba57f373 100644
--- a/source/blender/src/spacetypes.c
+++ b/source/blender/src/spacetypes.c
@@ -105,7 +105,7 @@ void scrarea_do_windraw(ScrArea *area)
areawinset(area->win);
if(area->win && st->windraw) {
- st->windraw();
+ st->windraw(area, area->spacedata.first);
}
else {
glClearColor(0.4375, 0.4375, 0.4375, 0.0);
@@ -121,7 +121,7 @@ void scrarea_do_winchange(ScrArea *area)
areawinset(area->win);
if (st->winchange) {
- st->winchange();
+ st->winchange(area, area->spacedata.first);
} else {
if (!BLI_rcti_is_empty(&area->winrct)) {
bwin_ortho2(area->win, -0.5, area->winrct.xmax-area->winrct.xmin-0.5, -0.5, area->winrct.ymax-area->winrct.ymin-0.5);
@@ -136,6 +136,6 @@ void scrarea_do_winhandle(ScrArea *area, BWinEvent *evt)
areawinset(area->win);
if (st->winhandle) {
- st->winhandle(evt->event, evt->val, evt->ascii);
+ st->winhandle(area, area->spacedata.first, evt);
}
}
diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c
index e5350142acd..4d8dfc46b61 100644
--- a/source/blender/src/usiblender.c
+++ b/source/blender/src/usiblender.c
@@ -45,6 +45,7 @@
#ifdef WIN32
#include "BLI_winstuff.h"
+#include <process.h> /* getpid */
#else
#include <unistd.h> /* getpid */
#endif
diff --git a/source/blender/src/writeavicodec.c b/source/blender/src/writeavicodec.c
index 002d1615803..0cca17ac676 100644
--- a/source/blender/src/writeavicodec.c
+++ b/source/blender/src/writeavicodec.c
@@ -763,7 +763,6 @@ void append_avi_codec(int frame)
int get_codec_settings(void)
{
- char name[2048];
int ret_val = 0;
AVICOMPRESSOPTIONS *aopts[1] = {&opts};
AviCodecData *acd = G.scene->r.avicodecdata;