]> git.mxchange.org Git - flightgear.git/blobdiff - src/GUI/WindowsMouseCursor.cxx
Launcher: Maintain aircraft selection better
[flightgear.git] / src / GUI / WindowsMouseCursor.cxx
index a2417f17e820b6fd95fa5a6cdd6d7a943d14e60c..9e2e29c8a2ac11f22c5a489e435548bd96306f08 100644 (file)
@@ -1,4 +1,4 @@
-// WindowsMouseCursor.cxx - mouse cursor using Cocoa APIs
+// WindowsMouseCursor.cxx - mouse cursor using Windows APIs
 
 // Copyright (C) 2013 James Turner <zakalawe@mac.com>
 //
@@ -33,28 +33,21 @@ class WindowsMouseCursor::WindowsMouseCursorPrivate
 {
 public:
     Cursor activeCursorKey;
-    
+    bool hideUntilMove;
+
     typedef std::map<Cursor, HCURSOR> 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);
     }
 }