Allows to override the application's cursor. More...
#include <mitkApplicationCursor.h>
Public Member Functions | |
void | PushCursor (const char *XPM[], int hotspotX=-1, int hotspotY=-1) |
Change the current application cursor. | |
void | PopCursor () |
Restore the previous cursor. | |
const Point2I | GetCursorPosition () |
void | SetCursorPosition (const Point2I &) |
Set absolute mouse position on screen. | |
Static Public Member Functions | |
static ApplicationCursor * | GetInstance () |
This class is a singleton. | |
static void | RegisterImplementation (ApplicationCursorImplementation *implementation) |
To be called by a toolkit specific ApplicationCursorImplementation. | |
Protected Member Functions | |
ApplicationCursor () | |
Purposely hidden - singleton. |
Allows to override the application's cursor.
Base class for classes that allow to override the applications cursor with context dependent cursors. Accepts cursors in the XPM format.
The behaviour is stack-like. You can push your cursor on top of the stack and later pop it to reset the cursor to its former state. This is mimicking Qt's Application::setOverrideCuror() behaviour, but should be ok for most cases where you want to switch a cursor.
Definition at line 66 of file mitkApplicationCursor.h.
mitk::ApplicationCursor::ApplicationCursor | ( | ) | [protected] |
Purposely hidden - singleton.
Definition at line 26 of file mitkApplicationCursor.cpp.
Referenced by GetInstance().
{ }
const Point2I mitk::ApplicationCursor::GetCursorPosition | ( | ) |
Get absolute mouse position on screen
Definition at line 72 of file mitkApplicationCursor.cpp.
References mitk::ApplicationCursorImplementation::GetCursorPosition(), and MITK_ERROR.
Referenced by mitk::RegionGrowingTool::OnMouseMoved(), and mitk::RegionGrowingTool::OnMousePressedOutside().
{ if (m_Implementation) { return m_Implementation->GetCursorPosition(); } else { MITK_ERROR << "in mitk::ApplicationCursor::GetCursorPosition(): no implementation registered." << std::endl; throw std::logic_error("No implementation registered for mitk::ApplicationCursor."); } }
ApplicationCursor * mitk::ApplicationCursor::GetInstance | ( | ) | [static] |
This class is a singleton.
Definition at line 30 of file mitkApplicationCursor.cpp.
References ApplicationCursor().
Referenced by mitk::RegionGrowingTool::OnMouseMoved(), mitk::RegionGrowingTool::OnMousePressedOutside(), mitk::SlicesCoordinator::ResetMouseCursor(), and mitk::SlicesCoordinator::SetMouseCursor().
{ static ApplicationCursor* m_Instance = NULL; if (!m_Instance) { m_Instance = new ApplicationCursor(); } return m_Instance; }
void mitk::ApplicationCursor::PopCursor | ( | ) |
Restore the previous cursor.
Definition at line 59 of file mitkApplicationCursor.cpp.
References MITK_ERROR, and mitk::ApplicationCursorImplementation::PopCursor().
Referenced by mitk::SlicesCoordinator::ResetMouseCursor(), and mitk::SlicesCoordinator::SetMouseCursor().
{ if (m_Implementation) { m_Implementation->PopCursor(); } else { MITK_ERROR << "in mitk::ApplicationCursor::PopCursor(): no implementation registered." << std::endl; throw std::logic_error("No implementation registered for mitk::ApplicationCursor."); } }
void mitk::ApplicationCursor::PushCursor | ( | const char * | XPM[], |
int | hotspotX = -1 , |
||
int | hotspotY = -1 |
||
) |
Change the current application cursor.
Definition at line 46 of file mitkApplicationCursor.cpp.
References MITK_ERROR, and mitk::ApplicationCursorImplementation::PushCursor().
Referenced by mitk::SlicesCoordinator::SetMouseCursor().
{ if (m_Implementation) { m_Implementation->PushCursor(XPM, hotspotX, hotspotY); } else { MITK_ERROR << "in mitk::ApplicationCursor::PushCursor(): no implementation registered." << std::endl; throw std::logic_error("No implementation registered for mitk::ApplicationCursor."); } }
void mitk::ApplicationCursor::RegisterImplementation | ( | ApplicationCursorImplementation * | implementation ) | [static] |
To be called by a toolkit specific ApplicationCursorImplementation.
Definition at line 41 of file mitkApplicationCursor.cpp.
Referenced by QmitkApplicationCursor::QmitkApplicationCursor().
{ m_Implementation = implementation; }
void mitk::ApplicationCursor::SetCursorPosition | ( | const Point2I & | p ) |
Set absolute mouse position on screen.
Definition at line 85 of file mitkApplicationCursor.cpp.
References MITK_ERROR, and mitk::ApplicationCursorImplementation::SetCursorPosition().
Referenced by mitk::RegionGrowingTool::OnMouseMoved().
{ if (m_Implementation) { m_Implementation->SetCursorPosition(p); } else { MITK_ERROR << "in mitk::ApplicationCursor::SetCursorPosition(): no implementation registered." << std::endl; throw std::logic_error("No implementation registered for mitk::ApplicationCursor."); } }