5#ifndef INCLUDE_FIFECHAN_WIDGETS_SCROLLAREA_HPP_
6#define INCLUDE_FIFECHAN_WIDGETS_SCROLLAREA_HPP_
10#include "fifechan/mouselistener.hpp"
11#include "fifechan/platform.hpp"
12#include "fifechan/widget.hpp"
25 class FIFEGUI_API ScrollArea :
public MouseListener,
public Widget
76 void setContent(
Widget* widget);
83 Widget* getContent()
const;
91 void setHorizontalScrollPolicy(ScrollPolicy hPolicy);
99 ScrollPolicy getHorizontalScrollPolicy()
const;
107 void setVerticalScrollPolicy(ScrollPolicy vPolicy);
115 ScrollPolicy getVerticalScrollPolicy()
const;
124 void setScrollPolicy(ScrollPolicy hPolicy, ScrollPolicy vPolicy);
132 void setVerticalScrollAmount(
int vScroll);
140 int getVerticalScrollAmount()
const;
148 void setHorizontalScrollAmount(
int hScroll);
156 int getHorizontalScrollAmount()
const;
165 void setScrollAmount(
int hScroll,
int vScroll);
172 int getHorizontalMaxScroll();
179 int getVerticalMaxScroll();
187 void setScrollbarWidth(
int width);
195 int getScrollbarWidth()
const;
204 void setLeftButtonScrollAmount(
int amount);
213 void setRightButtonScrollAmount(
int amount);
222 void setUpButtonScrollAmount(
int amount);
231 void setDownButtonScrollAmount(
int amount);
240 int getLeftButtonScrollAmount()
const;
249 int getRightButtonScrollAmount()
const;
258 int getUpButtonScrollAmount()
const;
267 int getDownButtonScrollAmount()
const;
275 void setOpaque(
bool opaque);
283 bool isOpaque()
const;
297 virtual Widget* getWidgetAt(
int x,
int y);
301 void draw(
Graphics* graphics)
override;
303 void logic()
override;
306 void setWidth(
int width);
309 void setHeight(
int height);
312 void setDimension(
Rectangle const & dimension);
317 void resizeToContent(
bool recursion)
override;
319 void adjustSize()
override;
321 void expandContent(
bool recursion)
override;
325 void mousePressed(
MouseEvent& mouseEvent)
override;
327 void mouseReleased(
MouseEvent& mouseEvent)
override;
329 void mouseDragged(
MouseEvent& mouseEvent)
override;
331 void mouseWheelMovedUp(
MouseEvent& mouseEvent)
override;
333 void mouseWheelMovedDown(
MouseEvent& mouseEvent)
override;
335 void mouseWheelMovedRight(
MouseEvent& mouseEvent)
override;
337 void mouseWheelMovedLeft(
MouseEvent& mouseEvent)
override;
346 virtual void drawBackground(
Graphics* graphics);
353 virtual void drawUpButton(
Graphics* graphics);
360 virtual void drawDownButton(
Graphics* graphics);
367 virtual void drawLeftButton(
Graphics* graphics);
374 virtual void drawRightButton(
Graphics* graphics);
381 virtual void drawVBar(
Graphics* graphics);
388 virtual void drawHBar(
Graphics* graphics);
395 virtual void drawVMarker(
Graphics* graphics);
402 virtual void drawHMarker(
Graphics* graphics);
407 virtual void checkPolicies();
463 Rectangle getHorizontalMarkerDimension();
Abstract interface providing primitive drawing functions (lines, rectangles, etc.).
Represents a mouse event.
Represents a rectangular area (X, Y, Width, Height).