Files
Yab2Cpp/src/YabToolTip.cpp
2015-04-13 13:40:27 -07:00

139 lines
2.1 KiB
C++

/*
* Copyright 2009, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
// #include <MessageRunner.h>
#include <StringView.h>
#include <Window.h>
#include "ToolTip.h"
class MouseToolTip : public BToolTip {
public:
MouseToolTip()
{
fView = new MouseView();
SetSticky(true);
}
virtual ~MouseToolTip()
{
delete fView;
}
virtual BView* View() const
{
return fView;
}
private:
BStringView* fView;
};
class ImmediateView : public BStringView {
public:
ImmediateView(const char* name, const char* label)
:
BStringView(name, label)
{
SetToolTip("Easy but immediate!");
ToolTip()->SetSticky(true);
}
virtual void MouseMoved(BPoint where, uint32 transit,
const BMessage* dragMessage)
{
if (transit == B_ENTERED_VIEW)
ShowToolTip(ToolTip());
}
};
class Window : public BWindow {
public:
Window();
virtual bool QuitRequested();
};
class Application : public BApplication {
public:
Application();
virtual void ReadyToRun();
};
// #pragma mark -
Window::Window()
:
BWindow(BRect(100, 100, 520, 430), "ToolTip-Test",
B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS)
{
BView* simple = new BStringView("1", "Simple Tool Tip");
simple->SetToolTip("This is a really\nsimple tool tip!");
BView* custom = new BStringView("2", "Custom Tool Tip");
custom->SetToolTip(new CustomToolTip());
BView* changing = new BStringView("3", "Changing Tool Tip");
changing->SetToolTip(new ChangingToolTip());
BView* mouse = new BStringView("3", "Mouse Tool Tip (sticky)");
mouse->SetToolTip(new MouseToolTip());
BView* immediate = new ImmediateView("3", "Immediate Tool Tip (sticky)");
BLayoutBuilder::Group<>(this, B_VERTICAL)
.Add(simple)
.Add(custom)
.Add(changing)
.Add(mouse)
.Add(immediate);
}
bool
Window::QuitRequested()
{
be_app->PostMessage(B_QUIT_REQUESTED);
return true;
}
// #pragma mark -
Application::Application()
: BApplication("application/x-vnd.haiku-tooltiptest")
{
}
void
Application::ReadyToRun()
{
BWindow *window = new Window();
window->Show();
}
// #pragma mark -
int
main(int argc, char **argv)
{
Application app;
app.Run();
return 0;
}