/* * Copyright 2019, Haiku, Inc. * Distributed under the terms of the MIT License. * * Author: * Preetpal Kaur */ #ifndef MOUSE_VIEW_H #define MOUSE_VIEW_H #include #include #include #include class MouseSettings; class MouseView : public BView { public: MouseView(const MouseSettings& settings); virtual ~MouseView(); void SetMouseType(int32 type); void MouseMapUpdated(); void UpdateFromSettings(); virtual void GetPreferredSize(float* _width, float* _height); virtual void AttachedToWindow(); virtual void MouseUp(BPoint where); virtual void MouseDown(BPoint where); virtual void Draw(BRect frame); bool IsMouseConnected() { return fConnected; } private: BRect _ButtonsRect() const; BRect _ButtonRect(const int32* offsets, int index) const; int32 _ConvertFromVisualOrder(int32 button); void _CreateButtonsPicture(); private: typedef BView inherited; const MouseSettings& fSettings; BPicture fButtonsPicture; int32 fDigitBaseline; int32 fDigitHeight; float fScaling; int32 fType; uint32 fButtons; uint32 fOldButtons; bool fConnected; }; #endif /* MOUSE_VIEW_H */