Axel Dörfler 8318af01b9 * Added a basic tool tip API, and implementation.
* The BView API can probably be regarded as good enough; the implementation
  might need to be improved over time (also, some things as archivability
  aren't fully implemented yet). The ToolTip.h header should get public once
  finalized.
* Added new B_MOUSE_IDLE message that is sent to a BView after a certain
  time has passed (BToolTipManager::ShowDelay()).
* Added small test app (ToolTipTest) that shows what is already working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 14:47:41 +00:00

74 lines
1.5 KiB
C++

/*
* Copyright 2009, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _TOOL_TIP_H
#define _TOOL_TIP_H
#include <Alignment.h>
#include <Archivable.h>
#include <Point.h>
#include <Referenceable.h>
class BView;
class BTextView;
class BToolTip : public BArchivable, public BReferenceable {
public:
BToolTip();
BToolTip(BMessage* archive);
virtual ~BToolTip();
virtual status_t Archive(BMessage* archive,
bool deep = true) const;
virtual BView* View() const = 0;
virtual void SetSticky(bool enable);
bool IsSticky() const;
virtual void SetMouseRelativeLocation(BPoint location);
BPoint MouseRelativeLocation() const;
virtual void SetAlignment(BAlignment alignment);
BAlignment Alignment() const;
private:
BToolTip(const BToolTip& other);
BToolTip& operator=(const BToolTip &other);
void _InitData();
private:
bool fIsSticky;
BPoint fRelativeLocation;
BAlignment fAlignment;
};
class BTextToolTip : public BToolTip {
public:
BTextToolTip(const char* text);
BTextToolTip(BMessage* archive);
virtual ~BTextToolTip();
static BTextToolTip* Instantiate(BMessage* archive);
virtual status_t Archive(BMessage* archive,
bool deep = true) const;
virtual BView* View() const;
const char* Text() const;
void SetText(const char* text);
private:
void _InitData(const char* text);
private:
BTextView* fTextView;
};
#endif // _TOOL_TIP_H