o fixed commander keyboard scrolling ( +scrollleft, +scrollright, +scrollup and +scrolldown )

git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@586 67975925-1194-0748-b3d5-c16f83f1a3a1
This commit is contained in:
puzl 2006-08-26 17:45:11 +00:00
parent c2a52e69cb
commit ac055a0b50
3 changed files with 80 additions and 8 deletions

View file

@ -720,17 +720,17 @@ void AvHHud::AddCommands()
gEngfuncs.pfnAddCommand ("-mousepopupmenu", AvHPieMenuHandler::ClosePieMenu);
// Add scrolling commands
gEngfuncs.pfnAddCommand ("+scrollup", AvHScrollHandler::ScrollUp);
gEngfuncs.pfnAddCommand ("-scrollup", AvHScrollHandler::StopScroll);
gEngfuncs.pfnAddCommand ("+scrollup", AvHScrollHandler::KeyScrollUp);
gEngfuncs.pfnAddCommand ("-scrollup", AvHScrollHandler::KeyScrollUpStop);
gEngfuncs.pfnAddCommand ("+scrolldown", AvHScrollHandler::ScrollDown);
gEngfuncs.pfnAddCommand ("-scrolldown", AvHScrollHandler::StopScroll);
gEngfuncs.pfnAddCommand ("+scrolldown", AvHScrollHandler::KeyScrollDown);
gEngfuncs.pfnAddCommand ("-scrolldown", AvHScrollHandler::KeyScrollDownStop);
gEngfuncs.pfnAddCommand ("+scrollleft", AvHScrollHandler::ScrollLeft);
gEngfuncs.pfnAddCommand ("-scrollleft", AvHScrollHandler::StopScroll);
gEngfuncs.pfnAddCommand ("+scrollleft", AvHScrollHandler::KeyScrollLeft);
gEngfuncs.pfnAddCommand ("-scrollleft", AvHScrollHandler::KeyScrollLeftStop);
gEngfuncs.pfnAddCommand ("+scrollright", AvHScrollHandler::ScrollRight);
gEngfuncs.pfnAddCommand ("-scrollright", AvHScrollHandler::StopScroll);
gEngfuncs.pfnAddCommand ("+scrollright", AvHScrollHandler::KeyScrollRight);
gEngfuncs.pfnAddCommand ("-scrollright", AvHScrollHandler::KeyScrollRightStop);
gEngfuncs.pfnAddCommand ("toggleeditps", AvHParticleEditorHandler::ToggleEdit);

View file

@ -7,6 +7,7 @@
#include "mod/AvHActionButtons.h"
#include "ui/UIUtil.h"
int AvHScrollHandler::sScrollX = 0;
int AvHScrollHandler::sScrollY = 0;
int AvHScrollHandler::sScrollZ = 0;
@ -18,9 +19,11 @@ int AvHScrollHandler::sLastMouseUpX = 0;
int AvHScrollHandler::sLastMouseUpY = 0;
bool AvHScrollHandler::sMouseOneDown = false;
bool AvHScrollHandler::sMouseTwoDown = false;
int AvHScrollHandler::sKeyDown = 0;
AvHScrollHandler::AvHScrollHandler()
{
sKeyDown = 0;
}
bool AvHScrollHandler::GetMouseOneDown() const
@ -63,6 +66,62 @@ void AvHScrollHandler::ClearScrollHeight()
sScrollZ = 0;
}
void AvHScrollHandler::KeyScrollLeft()
{
if ( sKeyDown < 0 ) sKeyDown=0;
sKeyDown++;
ScrollLeft();
}
void AvHScrollHandler::KeyScrollRight()
{
if ( sKeyDown < 0 ) sKeyDown=0;
sKeyDown++;
ScrollRight();
}
void AvHScrollHandler::KeyScrollUp()
{
if ( sKeyDown < 0 ) sKeyDown=0;
sKeyDown++;
ScrollUp();
}
void AvHScrollHandler::KeyScrollDown()
{
if ( sKeyDown < 0 ) sKeyDown=0;
sKeyDown++;
ScrollDown();
}
void AvHScrollHandler::KeyScrollDownStop()
{
sKeyDown--;
if ( sKeyDown < 0 ) sKeyDown=0;
ScrollDown();
}
void AvHScrollHandler::KeyScrollLeftStop()
{
sKeyDown--;
if ( sKeyDown < 0 ) sKeyDown=0;
sScrollX=0;
}
void AvHScrollHandler::KeyScrollRightStop()
{
sKeyDown--;
if ( sKeyDown < 0 ) sKeyDown=0;
sScrollX=0;
}
void AvHScrollHandler::KeyScrollUpStop()
{
sKeyDown--;
if ( sKeyDown < 0 ) sKeyDown=0;
sScrollY=0;
}
void AvHScrollHandler::ScrollLeft()
{
sScrollX = -1;
@ -102,6 +161,9 @@ void AvHScrollHandler::StopScroll()
void AvHScrollHandler::cursorMoved(int x, int y, Panel* inPanel)
{
if ( sKeyDown > 0 )
return;
char theMessage[256];
int theRandNumber = rand() % 10;
sprintf(theMessage, "Cursor moved, %d, %d, rand = %d", x, y, theRandNumber);

View file

@ -19,6 +19,14 @@ public:
bool GetMouseTwoDown() const;
static void ClearScrollHeight();
static void KeyScrollLeft();
static void KeyScrollRight();
static void KeyScrollUp();
static void KeyScrollDown();
static void KeyScrollLeftStop();
static void KeyScrollRightStop();
static void KeyScrollUpStop();
static void KeyScrollDownStop();
static void ScrollLeft();
static void ScrollRight();
static void ScrollUp();
@ -40,6 +48,7 @@ public:
virtual void keyFocusTicked(Panel* panel) {}
private:
static int sScrollX;
static int sScrollY;
static int sScrollZ;
@ -51,6 +60,7 @@ private:
static int sLastMouseUpY;
static bool sMouseOneDown;
static bool sMouseTwoDown;
static int sKeyDown;
};
#endif