22 #ifndef GRAPHICS_MACGUI_MACWINDOW_H 23 #define GRAPHICS_MACGUI_MACWINDOW_H 25 #include "common/stream.h" 27 #include "graphics/managed_surface.h" 28 #include "graphics/nine_patch.h" 29 #include "graphics/font.h" 31 #include "graphics/macgui/macwidget.h" 32 #include "graphics/macgui/macwindowborder.h" 36 class MacWindowManager;
37 class MacWindowBorder;
40 namespace MacWindowConstants {
64 kWindowModeDynamicScrollbar = 1 << 0
67 using namespace MacWindowConstants;
107 virtual void setVisible(
bool visible,
bool silent =
false);
140 virtual bool draw(
bool forceRedraw =
false) = 0;
149 virtual bool draw(
ManagedSurface *g,
bool forceRedraw =
false) = 0;
163 virtual bool isDirty() = 0;
219 void move(
int x,
int y);
226 virtual void resize(
int w,
int h);
233 virtual void resizeInner(
int w,
int h);
255 void setBackgroundPattern(
int pattern);
264 bool draw(
bool forceRedraw =
false)
override;
274 void center(
bool toCenter =
true);
281 void setActive(
bool active)
override;
286 bool isActive()
const;
298 virtual void setTitleVisible(
bool visible);
303 bool isTitleVisible();
316 void setHighlight(WindowClick highlightedPart);
322 void setScroll(
float scrollPos,
float scrollSize);
327 bool hasAllFocus()
override {
return _beingDragged || _beingResized; }
343 void disableBorder();
344 void loadInternalBorder(uint32 flags);
355 void setCloseable(
bool closeable);
361 void setBorderType(
int borderType);
373 uint32 getBorderFlags()
const;
377 void mergeDirtyRects();
379 bool isDirty()
override {
return _borderIsDirty || _contentIsDirty; }
381 void setBorderDirty(
bool dirty) { _borderIsDirty =
true; }
382 void resizeBorderSurface();
384 void setMode(uint32 mode) { _mode = mode; }
385 void setBorderOffsets(
BorderOffsets &offsets) { _macBorder.setOffsets(offsets); }
387 void updateInnerDims();
390 void rebuildSurface();
394 void fillRect(
ManagedSurface *g,
int x,
int y,
int w,
int h,
int color);
395 const Font *getTitleFont();
396 void updateOuterDims();
398 bool isInCloseButton(
int x,
int y)
const;
399 bool isInResizeButton(
int x,
int y)
const;
400 WindowClick isInScroll(
int x,
int y)
const;
404 WindowClick isInBorder(
int x,
int y)
const;
405 const BorderOffsets &getBorderOffsets()
const {
return _macBorder.getOffset(); }
427 bool _isTitleVisible;
431 bool _beingDragged, _beingResized;
432 int _draggedX, _draggedY;
434 WindowClick _highlightedPart;
Definition: managed_surface.h:51
const Common::String & getTitle() const
Definition: macwindow.h:309
Definition: macwindow.h:192
int getBorderType() const
Definition: macwindow.h:366
ManagedSurface * getWindowSurface()
Definition: macwindow.h:118
void setCallback(bool(*callback)(WindowClick, Common::Event &, void *), void *data)
Definition: macwindow.h:172
Definition: macwindowmanager.h:147
Definition: macwindowborder.h:57
ManagedSurface * getBorderSurface() override
Definition: macwindow.h:268
const Common::Rect & getInnerDimensions() override
Definition: macwindow.h:267
Definition: formatinfo.h:28
Out move(In first, In last, Out dst)
Definition: algorithm.h:109
bool isEditable()
Definition: macwindow.h:101
int getId()
Definition: macwindow.h:88
WindowType getType()
Definition: macwindow.h:95
bool isDirty() override
Definition: macwindow.h:379
void enableScrollbar(bool active)
Definition: macwindow.h:349
Definition: macwindow.h:73
Definition: macwindowborder.h:80