diff options
author | Rob Haarsma <phaseIV@zonnet.nl> | 2003-01-28 02:57:43 +0300 |
---|---|---|
committer | Rob Haarsma <phaseIV@zonnet.nl> | 2003-01-28 02:57:43 +0300 |
commit | 0a37ede0e789966ce4bee11e58bb3f7ecadd6141 (patch) | |
tree | 9f7eb730fac7a3af9f0096fd0399fa4be819b964 /source/blender/src/filesel.c | |
parent | 0df2cdbc2dfe2b257ba8e0322e71d49be71ee11a (diff) |
added mousewheel support
Diffstat (limited to 'source/blender/src/filesel.c')
-rw-r--r-- | source/blender/src/filesel.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/source/blender/src/filesel.c b/source/blender/src/filesel.c index 60948b8291e..d3bc996c7db 100644 --- a/source/blender/src/filesel.c +++ b/source/blender/src/filesel.c @@ -1153,6 +1153,27 @@ static void do_filescroll(SpaceFile *sfile) } +static void do_filescrollwheel(SpaceFile *sfile, int move) +{ + // by phase + int lines, rt; + + calc_file_rcts(sfile); + + lines = (int)(textrct.ymax-textrct.ymin)/FILESEL_DY; + rt = lines * sfile->collums; + + if(sfile->totfile > rt) { + sfile->ofs+= move; + if( sfile->ofs + rt > sfile->totfile + 1) + sfile->ofs = sfile->totfile - rt + 1; + } + + if(sfile->ofs<0) { + sfile->ofs= 0; + } +} + void activate_fileselect(int type, char *title, char *file, void (*func)(char *)) { SpaceFile *sfile; @@ -1715,6 +1736,19 @@ void winqreadfilespace(unsigned short event, short val, char ascii) do_filesel_buttons(val, sfile); break; + case WHEELDOWNMOUSE: + do_filescrollwheel(sfile, 3); //U.wheellinescroll); + act= find_active_file(sfile, mval[0], mval[1]); + set_active_file(sfile, act); + do_draw= 1; + break; + case WHEELUPMOUSE: + do_filescrollwheel(sfile, -3); //U.wheellinescroll); + act= find_active_file(sfile, mval[0], mval[1]); + set_active_file(sfile, act); + do_draw= 1; + break; + case LEFTMOUSE: case MIDDLEMOUSE: if(mval[0]>scrollrct.xmin && mval[0]<scrollrct.xmax && mval[1]>scrollrct.ymin && mval[1]<scrollrct.ymax) { |