Public Member Functions | Static Public Member Functions | Protected Member Functions

mitk::ApplicationCursor Class Reference

Allows to override the application's cursor. More...

#include <mitkApplicationCursor.h>

Collaboration diagram for mitk::ApplicationCursor:
Collaboration graph
[legend]

List of all members.

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 ApplicationCursorGetInstance ()
 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.

Detailed Description

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.


Constructor & Destructor Documentation

mitk::ApplicationCursor::ApplicationCursor (  ) [protected]

Purposely hidden - singleton.

Definition at line 26 of file mitkApplicationCursor.cpp.

Referenced by GetInstance().

{
}

Member Function Documentation

const Point2I mitk::ApplicationCursor::GetCursorPosition (  )

Get absolute mouse position on screen

Returns:
(-1, -1) if querying mouse position is not possible

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.");
  }
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines