when scrolling up through comments, it starts at the bottom of the page instead of the top

This commit is contained in:
jacob1 2013-07-21 15:59:51 -04:00
parent a9352008cf
commit a63f5b875b
4 changed files with 19 additions and 16 deletions

View File

@ -28,6 +28,11 @@ int ScrollPanel::GetScrollLimit()
return 0;
}
void ScrollPanel::SetScrollPosition(int position)
{
offsetY = position;
}
void ScrollPanel::XOnMouseWheelInside(int localx, int localy, int d)
{
if(!d)

View File

@ -21,6 +21,7 @@ namespace ui
ScrollPanel(Point position, Point size);
int GetScrollLimit();
void SetScrollPosition(int position);
virtual void Draw(const Point& screenPos);
virtual void XTick(float dt);

View File

@ -69,7 +69,8 @@ PreviewView::PreviewView():
addCommentBox(NULL),
submitCommentButton(NULL),
commentBoxHeight(20),
showAvatars(true)
showAvatars(true),
prevPage(false)
{
class FavAction: public ui::ButtonAction
{
@ -374,7 +375,10 @@ void PreviewView::OnMouseWheel(int x, int y, int d)
if(commentsPanel->GetScrollLimit() == 1 && d < 0)
c->NextCommentPage();
if(commentsPanel->GetScrollLimit() == -1 && d > 0)
{
prevPage = true;
c->PrevCommentPage();
}
}
@ -585,24 +589,16 @@ void PreviewView::NotifyCommentsChanged(PreviewModel * sender)
}
commentsPanel->InnerSize = ui::Point(commentsPanel->Size.X, currentY+4);
if (prevPage)
{
prevPage = false;
commentsPanel->SetScrollPosition(currentY);
//update positions of the comments so that it doesn't start at the top for a frame
commentsPanel->Tick(0);
}
}
}
/*void PreviewView::NotifyPreviewChanged(PreviewModel * sender)
{
savePreview = sender->GetGameSave();
if(savePreview && savePreview->Data && !(savePreview->Width == XRES/2 && savePreview->Height == YRES/2))
{
int newSizeX, newSizeY;
float factorX = ((float)XRES/2)/((float)savePreview->Width);
float factorY = ((float)YRES/2)/((float)savePreview->Height);
float scaleFactor = factorY < factorX ? factorY : factorX;
savePreview->Data = Graphics::resample_img(savePreview->Data, savePreview->Width, savePreview->Height, savePreview->Width*scaleFactor, savePreview->Height*scaleFactor);
savePreview->Width *= scaleFactor;
savePreview->Height *= scaleFactor;
}
}*/
PreviewView::~PreviewView()
{
if(addCommentBox)

View File

@ -49,6 +49,7 @@ class PreviewView: public ui::Window {
int votesDown;
bool doOpen;
bool showAvatars;
bool prevPage;
int commentBoxHeight;
float commentBoxPositionX;