X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FGUI%2FWindowsMouseCursor.cxx;h=9e2e29c8a2ac11f22c5a489e435548bd96306f08;hb=4befe0e6ea6b5f21119364f1175a0b6c8e97395c;hp=a2417f17e820b6fd95fa5a6cdd6d7a943d14e60c;hpb=034140914c7681230191dc15309869b4574ec5dd;p=flightgear.git diff --git a/src/GUI/WindowsMouseCursor.cxx b/src/GUI/WindowsMouseCursor.cxx index a2417f17e..9e2e29c8a 100644 --- a/src/GUI/WindowsMouseCursor.cxx +++ b/src/GUI/WindowsMouseCursor.cxx @@ -1,4 +1,4 @@ -// WindowsMouseCursor.cxx - mouse cursor using Cocoa APIs +// WindowsMouseCursor.cxx - mouse cursor using Windows APIs // Copyright (C) 2013 James Turner // @@ -33,28 +33,21 @@ class WindowsMouseCursor::WindowsMouseCursorPrivate { public: Cursor activeCursorKey; - + bool hideUntilMove; + typedef std::map CursorMap; CursorMap cursors; }; HCURSOR windowsCursorForKey(FGMouseCursor::Cursor aKey) { - #if 0 - NSImage* img = nil; - - NSString* path = [NSString stringWithCString:globals->get_fg_root().c_str() - encoding:NSUTF8StringEncoding]; - path = [path stringByAppendingPathComponent:@"gui"]; - switch (aKey) { - case FGMouseCursor::CURSOR_HAND: return [NSCursor pointingHandCursor]; - case FGMouseCursor::CURSOR_CROSSHAIR: return [NSCursor crosshairCursor]; - case FGMouseCursor::CURSOR_IBEAM: return [NSCursor IBeamCursor]; + case FGMouseCursor::CURSOR_HAND: return LoadCursor(NULL, IDC_HAND); + case FGMouseCursor::CURSOR_CROSSHAIR: return LoadCursor(NULL, IDC_CROSS); + case FGMouseCursor::CURSOR_IBEAM: return LoadCursor(NULL, IDC_IBEAM); + case FGMouseCursor::CURSOR_LEFT_RIGHT: return LoadCursor( NULL, IDC_SIZEWE ); - // FIXME - use a proper left-right cursor here. - case FGMouseCursor::CURSOR_LEFT_RIGHT: return [NSCursor resizeLeftRightCursor]; - +#if 0 case FGMouseCursor::CURSOR_SPIN_CW: path = [path stringByAppendingPathComponent:@"cursor-spin-cw.png"]; img = [[NSImage alloc] initWithContentsOfFile:path]; @@ -64,17 +57,17 @@ HCURSOR windowsCursorForKey(FGMouseCursor::Cursor aKey) path = [path stringByAppendingPathComponent:@"cursor-spin-cw.png"]; img = [[NSImage alloc] initWithContentsOfFile:path]; return [[NSCursor alloc] initWithImage:img hotSpot:NSMakePoint(16,16)]; - - default: return [NSCursor arrowCursor]; +#endif + default: return LoadCursor(NULL, IDC_ARROW); } -#endif } WindowsMouseCursor::WindowsMouseCursor() : d(new WindowsMouseCursorPrivate) { - + d->hideUntilMove = false; + d->activeCursorKey = CURSOR_ARROW; } WindowsMouseCursor::~WindowsMouseCursor() @@ -92,23 +85,16 @@ void WindowsMouseCursor::setCursor(Cursor aCursor) d->activeCursorKey = aCursor; if (d->cursors.find(aCursor) == d->cursors.end()) { - d->cursors[key] = windowsCursorForKey(aCursor); + d->cursors[aCursor] = windowsCursorForKey(aCursor); } - - SetCursor(windowsCursorForKey(d->cursors[key])); + SetCursor(d->cursors[aCursor]); } void WindowsMouseCursor::setCursorVisible(bool aVis) { d->hideUntilMove = false; // cancel this - - if (aVis) { - ShowCursor(); - } else { - - HideCursor(); - } + ShowCursor(aVis); } void WindowsMouseCursor::hideCursorUntilMouseMove() @@ -118,13 +104,13 @@ void WindowsMouseCursor::hideCursorUntilMouseMove() } d->hideUntilMove = true; - HideCursor(); + ShowCursor(false); } void WindowsMouseCursor::mouseMoved() { if (d->hideUntilMove) { d->hideUntilMove = false; - ShowCursor(); + ShowCursor(true); } }