#ifndef BIF_DRAWIMAGE_H
#define BIF_DRAWIMAGE_H
+struct ScrArea;
struct SpaceImage;
void calc_image_view(struct SpaceImage *sima, char mode);
-void drawimagespace(void);
+void drawimagespace(struct ScrArea *sa, void *spacedata);
void draw_tfaces(void);
void image_changed(struct SpaceImage *sima, int dotile);
void image_home(void);
#ifndef BIF_DRAWSEQ_H
#define BIF_DRAWSEQ_H
+struct ScrArea;
struct Sequence;
-void drawseqspace(void);
+
+void drawseqspace(struct ScrArea *sa, void *spacedata);
void drawseq(struct Sequence *seq);
void set_special_seq_update(int val);
extern void space_set_commmandline_options(void);
extern void allqueue(unsigned short event, short val);
extern void allspace(unsigned short event, short val);
-extern void changebutspace(void);
-extern void changeview2d(void);
-extern void changeview3d(void);
extern void copy_view3d_lock(short val);
-extern void drawemptyspace(void);
-extern void drawinfospace(void);
+extern void drawemptyspace(struct ScrArea *sa, void *spacedata);
+extern void drawinfospace(struct ScrArea *sa, void *spacedata);
extern void duplicatespacelist(struct ScrArea *area, struct ListBase *lb1, struct ListBase *lb2);
extern void extern_set_butspace(int fkey);
extern void force_draw(void);
extern void initview3d(struct ScrArea *sa);
extern void newspace(struct ScrArea *sa, int type);
extern void set_rects_butspace(struct SpaceButs *buts);
-extern void winqreadview3dspace(unsigned short event, short val, char ascii);
-extern void winqreadbutspace(unsigned short event, short val, char ascii);
-extern void winqreadimagespace(unsigned short event, short val, char ascii);
-extern void winqreadinfospace(unsigned short event, short val, char ascii);
-extern void winqreadipospace(unsigned short event, short val, char ascii);
-extern void winqreadoopsspace(unsigned short event, short val, char ascii);
-extern void winqreadnlaspace(unsigned short event, short val, char ascii);
-extern void winqreadseqspace(unsigned short event, short val, char ascii);
+extern void winqreadview3dspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadbutspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadimagespace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadinfospace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadipospace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadoopsspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadnlaspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
+extern void winqreadseqspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
extern void test_butspace(void);
extern void start_game(void);
*/
struct ScrArea;
+struct BWinEvent;
typedef struct _SpaceType SpaceType;
-typedef void (*SpaceDrawFP) (void);
-typedef void (*SpaceChangeFP) (void);
-typedef void (*SpaceHandleFP) (unsigned short evt, short val, char ascii);
+typedef void (*SpaceDrawFP) (struct ScrArea *sa, void *spacedata);
+typedef void (*SpaceChangeFP) (struct ScrArea *sa, void *spacedata);
+typedef void (*SpaceHandleFP) (struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
/***/
#ifndef BSE_DRAWIMASEL_H
#define BSE_DRAWIMASEL_H
+struct ScrArea;
struct SpaceImaSel;
void viewgate(short sx, short sy, short ex, short ey);
void move_imafile_sli(struct SpaceImaSel *simasel);
void ima_select_all(struct SpaceImaSel *simasel);
void pibplay(struct SpaceImaSel *simasel);
-void drawimaselspace(void);
+void drawimaselspace(struct ScrArea *sa, void *spacedata);
/* void calc_hilite(SpaceImaSel *simasel); */
/* void ima_select_all(SpaceImaSel *simasel); */
#define SELECT_SUBTRACT 4
#define SELECT_INVERT 16
+struct ScrArea;
struct EditIpo;
struct View2D;
struct rctf;
void ipoco_to_areaco (struct View2D *v2d, float *vec, short *mval);
void ipoco_to_areaco_noclip (struct View2D *v2d, float *vec, short *mval);
+void view2d_zoom (struct View2D *v2d, float factor, int winx, int winy);
void test_view2d (struct View2D *v2d, int winx, int winy);
void calc_scrollrcts (struct View2D *v2d, int winx, int winy);
int in_ipo_buttons(void);
void drawscroll(int disptype);
-void drawipospace(void);
+void drawipospace(struct ScrArea *sa, void *spacedata);
void center_currframe(void);
void scroll_ipobuts(void);
#ifndef BSE_DRAWNLA_H
#define BSE_DRAWNLA_H
-void drawnlaspace(void);
+struct ScrArea;
+
+void drawnlaspace(struct ScrArea *sa, void *spacedata);
#endif /* BSE_DRAWNLA */
#ifndef BSE_DRAWOOPS_H
#define BSE_DRAWOOPS_H
+struct ScrArea;
struct Oops;
struct uiBlock;
unsigned int give_oops_color(short type, short sel, unsigned int *border);
void calc_oopstext(char *str, float *v1);
void draw_oops(struct Oops *oops, struct uiBlock *block);
-void drawoopsspace(void);
+void drawoopsspace(struct ScrArea *sa, void *spacedata);
#endif /* BSE_DRAWOOPS */
struct Object;
struct BGpic;
struct rcti;
+struct ScrArea;
void setalpha_bgpic(struct BGpic *bgpic);
void default_gl_light(void);
void circf(float x, float y, float rad);
void circ(float x, float y, float rad);
void backdrawview3d(int test);
-void drawview3dspace(void);
+void drawview3dspace(struct ScrArea *sa, void *spacedata);
void drawview3d_render(struct View3D *v3d);
int update_time(void);
void calc_viewborder(struct View3D *v3d, struct rcti *viewborder_r);
void count_object(struct Object *ob, int sel);
void countall(void);
void snapmenu(void);
+void mergemenu(void);
+void delete_context_selected(void);
+void duplicate_context_selected(void);
+void toggle_shading(void);
#endif /* BSE_EDIT_H */
struct bAction *add_empty_action(void);
void deselect_actionchannel_keys (struct bAction *act, int test);
void deselect_actionchannels (struct bAction *act, int test);
-void winqreadactionspace(unsigned short event, short val, char ascii);
+void winqreadactionspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
void remake_action_ipos(struct bAction *act);
void select_actionchannel_by_name (struct bAction *act, char *name, int select);
struct bAction *bake_action_with_client (struct bAction *act, struct Object *arm, float tolerance);
void get_status_editipo(void);
void update_editipo_flags(void);
void set_editflag_editipo(void);
+void ipo_toggle_showkey(void);
void swap_selectall_editipo(void);
void swap_visible_editipo(void);
void deselectall_editipo(void);
struct SpaceFile;
struct direntry;
struct ID;
+struct ScrArea;
void clear_global_filesel_vars(void);
void filesel_statistics(struct SpaceFile *sfile, int *totfile, int *selfile, float *totlen, float *sellen);
void freefilelist(struct SpaceFile *sfile);
void parent(struct SpaceFile *sfile);
void swapselect_file(struct SpaceFile *sfile);
-void drawfilespace(void);
+void drawfilespace(struct ScrArea *sa, void *spacedata);
void activate_fileselect(int type, char *title, char *file, void (*func)(char *));
void activate_imageselect(int type, char *title, char *file, void (*func)(char *));
void activate_databrowse(struct ID *id, int idcode, int fromcode, int retval, short *menup, void (*func)(unsigned short));
void filesel_prevspace(void);
void free_filesel_spec(char *dir);
-void winqreadfilespace(unsigned short event, short val, char ascii);
+void winqreadfilespace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt);
void main_to_filelist(struct SpaceFile *sfile);
#endif
/* ***************************<>******************************** */
-void drawbutspace(void)
+void drawbutspace(ScrArea *sa, void *spacedata)
{
SpaceButs *sbuts= curarea->spacedata.first;
View2D *v2d= &sbuts->v2d;
#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);
glaEnd2DDraw(di);
}
-void drawactionspace(void)
+void drawactionspace(ScrArea *sa, void *spacedata)
{
short ofsx = 0, ofsy = 0;
return rectmain;
}
-void drawimagespace(void)
+void drawimagespace(ScrArea *sa, void *spacedata)
{
ImBuf *ibuf= NULL;
unsigned int *rect;
/* ************** hoofdtekenfunktie ************** */
-void drawimaselspace() /* hoofdtekenfunktie */
+void drawimaselspace(ScrArea *sa, void *spacedata) /* hoofdtekenfunktie */
{
SpaceImaSel *simasel;
simasel= curarea->spacedata.first;
}
+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 */
setlinestyle(0);
}
-void drawipospace(void)
+void drawipospace(ScrArea *sa, void *spacedata)
{
SpaceIpo *sipo= curarea->spacedata.first;
View2D *v2d= &sipo->v2d;
}
-void drawnlaspace(void)
+void drawnlaspace(ScrArea *sa, void *spacedata)
{
short ofsx = 0, ofsy = 0;
}
}
-void drawoopsspace()
+void drawoopsspace(ScrArea *sa, void *spacedata)
{
uiBlock *block;
Oops *oops;
}
}
-void drawseqspace(void)
+void drawseqspace(ScrArea *sa, void *spacedata)
{
SpaceSeq *sseq;
Editing *ed;
#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)
}
-void drawsoundspace(void)
+void drawsoundspace(ScrArea *sa, void *spacedata)
{
short ofsx, ofsy;
#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;
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;
}
}
-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;
glDisable(GL_BLEND);
}
-void drawview3dspace(void)
+void drawview3dspace(ScrArea *sa, void *spacedata)
{
Base *base;
Object *ob;
*/
void drawview3d_render(struct View3D *v3d)
{
+ extern void mywindow_build_and_set_renderwin(void);
extern short v3d_windowmode;
Base *base;
Object *ob;
#include "BSE_drawview.h"
#include "BDR_editobject.h"
+#include "BDR_editmball.h"
+#include "BDR_editcurve.h"
/* old stuff */
#include "blendertimer.h"
}
-void mergemenu()
+void mergemenu(void)
{
extern float doublimit;
short event;
}
}
+
+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;
+ }
+}
}
-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;
#include "BIF_screen.h"
#include "BIF_interface.h"
#include "BIF_imasel.h"
+#include "BIF_mywindow.h"
#include "BSE_filesel.h"
#include "BSE_drawimasel.h"
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];
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;
/* ******************** 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];
flush_extqd_events();
if (nafterqitems && !qtest()) {
append_afterqueue();
- event= 0;
+ event= val= ascii= 0;
} else {
event= screen_qread(&val, &ascii);
}
/* is voor restore windowmatrices */
areawinset(curarea->win);
- drawseqspace();
+ drawseqspace(curarea, curarea->spacedata.first);
/* sfile zoeken */
sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
/* is voor restore windowmatrices */
areawinset(curarea->win);
- drawseqspace();
+ drawseqspace(curarea, curarea->spacedata.first);
/* sfile zoeken */
sfile= scrarea_find_space_of_type(curarea, SPACE_FILE);
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];
/* 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;
glRecti(textrct.xmax+2, textrct.ymin, textrct.xmax+10, textrct.ymax);
}
-void drawfilespace()
+void drawfilespace(ScrArea *sa, void *spacedata)
{
SpaceFile *sfile;
uiBlock *block;
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;
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:
/* ### */
}
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;
}
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;
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);
}
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);
}
/* ************* SPACE: VIEW3D ************* */
-/* extern void drawview3dspace(); BSE_drawview.h */
+/* extern void drawview3dspace(ScrArea *sa, void *spacedata); BSE_drawview.h */
void copy_view3d_lock(short val)
#endif
}
-void changeview3d()
+static void changeview3dspace(ScrArea *sa, void *spacedata)
{
-
setwinmatrixview3d(0); /* 0= geen pick rect */
-
}
/* Callable from editmode and faceselect mode from the
}
}
-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;
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.");
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) {
}
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);
/* ******************** SPACE: IPO ********************** */
-void changeview2d()
+static void changeview2dspace(ScrArea *sa, void *spacedata)
{
if(G.v2d==0) return;
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;
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:
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;
}
}
-void drawinfospace(void)
+void drawinfospace(ScrArea *sa, void *spacedata)
{
uiBlock *block;
float fac;
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;
/* ******************** 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;
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) {
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);
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);
/* ******************** 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;
}
/* ******************** 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)
{
/* ******************** 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)
{
/* ******************** 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
/* ******************** 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 */
/* ******************** 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;
/* ******************** 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 ********************** */
if (!st) {
st= spacetype_new("Action");
- spacetype_set_winfuncs(st, drawactionspace, changeview2d, winqreadactionspace);
+ spacetype_set_winfuncs(st, drawactionspace, changeview2dspace, winqreadactionspace);
}
return st;
if (!st) {
st= spacetype_new("Ipo");
- spacetype_set_winfuncs(st, drawipospace, changeview2d, winqreadipospace);
+ spacetype_set_winfuncs(st, drawipospace, changeview2dspace, winqreadipospace);
}
return st;
if (!st) {
st= spacetype_new("Nla");
- spacetype_set_winfuncs(st, drawnlaspace, changeview2d, winqreadnlaspace);
+ spacetype_set_winfuncs(st, drawnlaspace, changeview2dspace, winqreadnlaspace);
}
return st;
if (!st) {
st= spacetype_new("Oops");
- spacetype_set_winfuncs(st, drawoopsspace, changeview2d, winqreadoopsspace);
+ spacetype_set_winfuncs(st, drawoopsspace, changeview2dspace, winqreadoopsspace);
}
return st;
if (!st) {
st= spacetype_new("Sequence");
- spacetype_set_winfuncs(st, drawseqspace, changeview2d, winqreadseqspace);
+ spacetype_set_winfuncs(st, drawseqspace, changeview2dspace, winqreadseqspace);
}
return st;
if (!st) {
st= spacetype_new("View3D");
- spacetype_set_winfuncs(st, drawview3dspace, changeview3d, winqreadview3dspace);
+ spacetype_set_winfuncs(st, drawview3dspace, changeview3dspace, winqreadview3dspace);
}
return st;
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);
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);
areawinset(area->win);
if (st->winhandle) {
- st->winhandle(evt->event, evt->val, evt->ascii);
+ st->winhandle(area, area->spacedata.first, evt);
}
}
#ifdef WIN32
#include "BLI_winstuff.h"
+#include <process.h> /* getpid */
#else
#include <unistd.h> /* getpid */
#endif
int get_codec_settings(void)
{
- char name[2048];
int ret_val = 0;
AVICOMPRESSOPTIONS *aopts[1] = {&opts};
AviCodecData *acd = G.scene->r.avicodecdata;