89 lines
2.1 KiB
C++
89 lines
2.1 KiB
C++
/*
|
|
* Copyright 2006-2011, Stephan Aßmus <superstippi@gmx.de>
|
|
* All rights reserved. Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef LAUNCH_BUTTON_H
|
|
#define LAUNCH_BUTTON_H
|
|
|
|
|
|
#include <IconButton.h>
|
|
#include <List.h>
|
|
#include <String.h>
|
|
|
|
|
|
enum {
|
|
MSG_ADD_SLOT = 'adsl',
|
|
MSG_CLEAR_SLOT = 'clsl',
|
|
MSG_REMOVE_SLOT = 'rmsl',
|
|
MSG_LAUNCH = 'lnch',
|
|
MSG_OPEN_CONTAINING_FOLDER = 'opcf',
|
|
};
|
|
|
|
|
|
class LaunchButton : public BIconButton {
|
|
public:
|
|
LaunchButton(const char* name,
|
|
const char* label = NULL,
|
|
BMessage* message = NULL,
|
|
BHandler* target = NULL);
|
|
virtual ~LaunchButton();
|
|
|
|
// BIconButton interface
|
|
virtual void AttachedToWindow();
|
|
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);
|
|
|
|
virtual BSize MinSize();
|
|
virtual BSize PreferredSize();
|
|
virtual BSize MaxSize();
|
|
|
|
// LaunchButton
|
|
void SetTo(const entry_ref* ref);
|
|
entry_ref* Ref() const;
|
|
|
|
void SetTo(const char* appSig, bool updateIcon);
|
|
const char* AppSignature() const
|
|
{ return fAppSig; }
|
|
|
|
void SetDescription(const char* text);
|
|
const char* Description() const
|
|
{ return fDescription.String(); }
|
|
|
|
void SetIconSize(uint32 size);
|
|
uint32 IconSize() const
|
|
{ return fIconSize; }
|
|
|
|
static void SetIgnoreDoubleClick(bool refuse);
|
|
static bool IgnoreDoubleClick()
|
|
{ return sIgnoreDoubleClick; }
|
|
|
|
private:
|
|
void _UpdateToolTip();
|
|
void _UpdateIcon(const entry_ref* ref);
|
|
|
|
void _NotifySettingsChanged();
|
|
|
|
void _DrawFrame(BRect frame,
|
|
rgb_color left, rgb_color top,
|
|
rgb_color right, rgb_color bottom);
|
|
|
|
private:
|
|
entry_ref* fRef;
|
|
char* fAppSig;
|
|
BString fDescription;
|
|
|
|
bool fAnticipatingDrop;
|
|
bigtime_t fLastClickTime;
|
|
BPoint fDragStart;
|
|
|
|
uint32 fIconSize;
|
|
|
|
static bigtime_t sClickSpeed;
|
|
static bool sIgnoreDoubleClick;
|
|
};
|
|
|
|
#endif // LAUNCH_BUTTON_H
|