added mousewheel support
This commit is contained in:
@@ -45,6 +45,8 @@
|
|||||||
#define RIGHTMOUSE 0x003
|
#define RIGHTMOUSE 0x003
|
||||||
#define MOUSEX 0x004
|
#define MOUSEX 0x004
|
||||||
#define MOUSEY 0x005
|
#define MOUSEY 0x005
|
||||||
|
#define WHEELUPMOUSE 0x00a
|
||||||
|
#define WHEELDOWNMOUSE 0x00b
|
||||||
|
|
||||||
/* timers */
|
/* timers */
|
||||||
|
|
||||||
|
@@ -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 *))
|
void activate_fileselect(int type, char *title, char *file, void (*func)(char *))
|
||||||
{
|
{
|
||||||
SpaceFile *sfile;
|
SpaceFile *sfile;
|
||||||
@@ -1715,6 +1736,19 @@ void winqreadfilespace(unsigned short event, short val, char ascii)
|
|||||||
do_filesel_buttons(val, sfile);
|
do_filesel_buttons(val, sfile);
|
||||||
break;
|
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 LEFTMOUSE:
|
||||||
case MIDDLEMOUSE:
|
case MIDDLEMOUSE:
|
||||||
if(mval[0]>scrollrct.xmin && mval[0]<scrollrct.xmax && mval[1]>scrollrct.ymin && mval[1]<scrollrct.ymax) {
|
if(mval[0]>scrollrct.xmin && mval[0]<scrollrct.xmax && mval[1]>scrollrct.ymin && mval[1]<scrollrct.ymax) {
|
||||||
|
@@ -435,6 +435,20 @@ static int event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr private) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case GHOST_kEventWheel:
|
||||||
|
{
|
||||||
|
GHOST_TEventWheelData* wheelData = (GHOST_TEventWheelData*) data;
|
||||||
|
if (wheelData->z > 0)
|
||||||
|
{
|
||||||
|
window_handle(win, WHEELUPMOUSE, 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
window_handle(win, WHEELDOWNMOUSE, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case GHOST_kEventWindowDeactivate:
|
case GHOST_kEventWindowDeactivate:
|
||||||
case GHOST_kEventWindowActivate: {
|
case GHOST_kEventWindowActivate: {
|
||||||
win->active= (type==GHOST_kEventWindowActivate);
|
win->active= (type==GHOST_kEventWindowActivate);
|
||||||
|
Reference in New Issue
Block a user