* Copyright 2003-2013 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Michael Phipps
* Axel DΓΆrfler, axeld@pinc-software.de
*/
#ifndef SCREEN_CORNER_SELECTOR_H
#define SCREEN_CORNER_SELECTOR_H
#include <Control.h>
#include "ScreenSaverSettings.h"
class ScreenCornerSelector : public BControl {
public:
ScreenCornerSelector(BRect frame,
const char *name, BMessage* message,
uint32 resizingMode);
virtual void Draw(BRect updateRect);
virtual void MouseDown(BPoint point);
virtual void MouseUp(BPoint point);
virtual void MouseMoved(BPoint where, uint32 transit,
const BMessage* dragMessage);
virtual void KeyDown(const char* bytes, int32 numBytes);
virtual void SetValue(int32 value);
virtual int32 Value();
void SetCorner(screen_corner corner);
screen_corner Corner() const;
private:
BRect _MonitorFrame() const;
BRect _InnerFrame(BRect monitorFrame) const;
BRect _CenterFrame(BRect innerFrame) const;
void _DrawStop(BRect innerFrame);
void _DrawArrow(BRect innerFrame);
screen_corner _ScreenCorner(BPoint point,
screen_corner previous) const;
screen_corner fCurrentCorner;
int32 fPreviousCorner;
};
#endif