haiku/src/apps/launchbox/PadView.h

56 lines
1.4 KiB
C++

/*
* Copyright 2006-2009, Stephan Aßmus <superstippi@gmx.de>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef PAD_VIEW_H
#define PAD_VIEW_H
#include <View.h>
class BGroupLayout;
class LaunchButton;
#define DEFAULT_ICON_SIZE 32
class PadView : public BView {
public:
PadView(const char* name);
virtual ~PadView();
// BView interface
virtual void Draw(BRect updateRect);
virtual void MessageReceived(BMessage* message);
virtual void MouseDown(BPoint where);
virtual void MouseUp(BPoint where);
virtual void MouseMoved(BPoint where, uint32 transit,
const BMessage* dragMessage);
// PadView
void AddButton(LaunchButton* button,
LaunchButton* beforeButton = NULL);
bool RemoveButton(LaunchButton* button);
LaunchButton* ButtonAt(int32 index) const;
void DisplayMenu(BPoint where,
LaunchButton* button = NULL) const;
void SetOrientation(enum orientation orientation);
enum orientation Orientation() const;
void SetIconSize(uint32 size);
uint32 IconSize() const;
void SetIgnoreDoubleClick(bool refuse);
bool IgnoreDoubleClick() const;
private:
void _NotifySettingsChanged();
BPoint fDragOffset;
bool fDragging;
bigtime_t fClickTime;
BGroupLayout* fButtonLayout;
uint32 fIconSize;
};
#endif // PAD_VIEW_H