diff src/video/SDL_cursor.c @ 1668:4da1ee79c9af SDL-1.3

more tweaking indent options
author Sam Lantinga <slouken@libsdl.org>
date Mon, 29 May 2006 04:04:35 +0000
parents 782fd950bd46
children eef792d31de8
line wrap: on
line diff
--- a/src/video/SDL_cursor.c	Mon May 29 03:53:21 2006 +0000
+++ b/src/video/SDL_cursor.c	Mon May 29 04:04:35 2006 +0000
@@ -42,29 +42,29 @@
 
 /* Public functions */
 void
-SDL_CursorQuit (void)
+SDL_CursorQuit(void)
 {
     if (SDL_cursor != NULL) {
         SDL_Cursor *cursor;
 
         SDL_cursorstate &= ~CURSOR_VISIBLE;
         if (SDL_cursor != SDL_defcursor) {
-            SDL_FreeCursor (SDL_cursor);
+            SDL_FreeCursor(SDL_cursor);
         }
         SDL_cursor = NULL;
         if (SDL_defcursor != NULL) {
             cursor = SDL_defcursor;
             SDL_defcursor = NULL;
-            SDL_FreeCursor (cursor);
+            SDL_FreeCursor(cursor);
         }
     }
     if (SDL_cursorlock != NULL) {
-        SDL_DestroyMutex (SDL_cursorlock);
+        SDL_DestroyMutex(SDL_cursorlock);
         SDL_cursorlock = NULL;
     }
 }
 int
-SDL_CursorInit (Uint32 multithreaded)
+SDL_CursorInit(Uint32 multithreaded)
 {
     /* We don't have mouse focus, and the cursor isn't drawn yet */
 #ifndef IPOD
@@ -73,15 +73,15 @@
 
     /* Create the default cursor */
     if (SDL_defcursor == NULL) {
-        SDL_defcursor = SDL_CreateCursor (default_cdata, default_cmask,
-                                          DEFAULT_CWIDTH, DEFAULT_CHEIGHT,
-                                          DEFAULT_CHOTX, DEFAULT_CHOTY);
-        SDL_SetCursor (SDL_defcursor);
+        SDL_defcursor = SDL_CreateCursor(default_cdata, default_cmask,
+                                         DEFAULT_CWIDTH, DEFAULT_CHEIGHT,
+                                         DEFAULT_CHOTX, DEFAULT_CHOTY);
+        SDL_SetCursor(SDL_defcursor);
     }
 
     /* Create a lock if necessary */
     if (multithreaded) {
-        SDL_cursorlock = SDL_CreateMutex ();
+        SDL_cursorlock = SDL_CreateMutex();
     }
 
     /* That's it! */
@@ -91,29 +91,29 @@
 /* Multi-thread support for cursors */
 #ifndef SDL_LockCursor
 void
-SDL_LockCursor (void)
+SDL_LockCursor(void)
 {
     if (SDL_cursorlock) {
-        SDL_mutexP (SDL_cursorlock);
+        SDL_mutexP(SDL_cursorlock);
     }
 }
 #endif
 #ifndef SDL_UnlockCursor
 void
-SDL_UnlockCursor (void)
+SDL_UnlockCursor(void)
 {
     if (SDL_cursorlock) {
-        SDL_mutexV (SDL_cursorlock);
+        SDL_mutexV(SDL_cursorlock);
     }
 }
 #endif
 
 /* Software cursor drawing support */
 SDL_Cursor *
-SDL_CreateCursor (Uint8 * data, Uint8 * mask,
-                  int w, int h, int hot_x, int hot_y)
+SDL_CreateCursor(Uint8 * data, Uint8 * mask,
+                 int w, int h, int hot_x, int hot_y)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
     int savelen;
     int i;
     SDL_Cursor *cursor;
@@ -123,14 +123,14 @@
 
     /* Sanity check the hot spot */
     if ((hot_x < 0) || (hot_y < 0) || (hot_x >= w) || (hot_y >= h)) {
-        SDL_SetError ("Cursor hot spot doesn't lie within cursor");
+        SDL_SetError("Cursor hot spot doesn't lie within cursor");
         return (NULL);
     }
 
     /* Allocate memory for the cursor */
-    cursor = (SDL_Cursor *) SDL_malloc (sizeof *cursor);
+    cursor = (SDL_Cursor *) SDL_malloc(sizeof *cursor);
     if (cursor == NULL) {
-        SDL_OutOfMemory ();
+        SDL_OutOfMemory();
         return (NULL);
     }
     savelen = (w * 4) * h;
@@ -140,26 +140,26 @@
     cursor->area.h = h;
     cursor->hot_x = hot_x;
     cursor->hot_y = hot_y;
-    cursor->data = (Uint8 *) SDL_malloc ((w / 8) * h * 2);
+    cursor->data = (Uint8 *) SDL_malloc((w / 8) * h * 2);
     cursor->mask = cursor->data + ((w / 8) * h);
-    cursor->save[0] = (Uint8 *) SDL_malloc (savelen * 2);
+    cursor->save[0] = (Uint8 *) SDL_malloc(savelen * 2);
     cursor->save[1] = cursor->save[0] + savelen;
     cursor->wm_cursor = NULL;
     if (!cursor->data || !cursor->save[0]) {
-        SDL_FreeCursor (cursor);
-        SDL_OutOfMemory ();
+        SDL_FreeCursor(cursor);
+        SDL_OutOfMemory();
         return (NULL);
     }
     for (i = ((w / 8) * h) - 1; i >= 0; --i) {
         cursor->data[i] = data[i];
         cursor->mask[i] = mask[i] | data[i];
     }
-    SDL_memset (cursor->save[0], 0, savelen * 2);
+    SDL_memset(cursor->save[0], 0, savelen * 2);
 
     /* If the window manager gives us a good cursor, we're done! */
     if (_this->CreateWMCursor) {
-        cursor->wm_cursor = _this->CreateWMCursor (_this, data, mask,
-                                                   w, h, hot_x, hot_y);
+        cursor->wm_cursor = _this->CreateWMCursor(_this, data, mask,
+                                                  w, h, hot_x, hot_y);
     } else {
         cursor->wm_cursor = NULL;
     }
@@ -171,9 +171,9 @@
    the video mode and when the SDL window gains the mouse focus.
  */
 void
-SDL_SetCursor (SDL_Cursor * cursor)
+SDL_SetCursor(SDL_Cursor * cursor)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
 
     /* Make sure that the video subsystem has been initialized */
     if (!_this) {
@@ -181,20 +181,20 @@
     }
 
     /* Prevent the event thread from moving the mouse */
-    SDL_LockCursor ();
+    SDL_LockCursor();
 
     /* Set the new cursor */
     if (cursor && (cursor != SDL_cursor)) {
         /* Erase the current mouse position */
-        if (SHOULD_DRAWCURSOR (SDL_cursorstate)) {
-            SDL_EraseCursor (SDL_VideoSurface);
+        if (SHOULD_DRAWCURSOR(SDL_cursorstate)) {
+            SDL_EraseCursor(SDL_VideoSurface);
         } else if (_this->MoveWMCursor) {
             /* If the video driver is moving the cursor directly,
                it needs to hide the old cursor before (possibly)
                showing the new one.  (But don't erase NULL cursor)
              */
             if (SDL_cursor) {
-                _this->ShowWMCursor (_this, NULL);
+                _this->ShowWMCursor(_this, NULL);
             }
         }
         SDL_cursor = cursor;
@@ -204,84 +204,84 @@
     if (SDL_cursor && (SDL_cursorstate & CURSOR_VISIBLE)) {
         /* Use window manager cursor if possible */
         if (SDL_cursor->wm_cursor &&
-            _this->ShowWMCursor (_this, SDL_cursor->wm_cursor)) {
+            _this->ShowWMCursor(_this, SDL_cursor->wm_cursor)) {
             SDL_cursorstate &= ~CURSOR_USINGSW;
         } else {
             SDL_cursorstate |= CURSOR_USINGSW;
             if (_this->ShowWMCursor) {
-                _this->ShowWMCursor (_this, NULL);
+                _this->ShowWMCursor(_this, NULL);
             }
             {
                 int x, y;
-                SDL_GetMouseState (&x, &y);
+                SDL_GetMouseState(&x, &y);
                 SDL_cursor->area.x = (x - SDL_cursor->hot_x);
                 SDL_cursor->area.y = (y - SDL_cursor->hot_y);
             }
-            SDL_DrawCursor (SDL_VideoSurface);
+            SDL_DrawCursor(SDL_VideoSurface);
         }
     } else {
         /* Erase window manager mouse (cursor not visible) */
         if (SDL_cursor && (SDL_cursorstate & CURSOR_USINGSW)) {
-            SDL_EraseCursor (SDL_VideoSurface);
+            SDL_EraseCursor(SDL_VideoSurface);
         } else {
             if (_this) {
-                _this->ShowWMCursor (_this, NULL);
+                _this->ShowWMCursor(_this, NULL);
             }
         }
     }
-    SDL_UnlockCursor ();
+    SDL_UnlockCursor();
 }
 
 SDL_Cursor *
-SDL_GetCursor (void)
+SDL_GetCursor(void)
 {
     return (SDL_cursor);
 }
 
 void
-SDL_FreeCursor (SDL_Cursor * cursor)
+SDL_FreeCursor(SDL_Cursor * cursor)
 {
     if (cursor) {
         if (cursor == SDL_cursor) {
-            SDL_SetCursor (SDL_defcursor);
+            SDL_SetCursor(SDL_defcursor);
         }
         if (cursor != SDL_defcursor) {
-            SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+            SDL_VideoDevice *_this = SDL_GetVideoDevice();
 
             if (cursor->data) {
-                SDL_free (cursor->data);
+                SDL_free(cursor->data);
             }
             if (cursor->save[0]) {
-                SDL_free (cursor->save[0]);
+                SDL_free(cursor->save[0]);
             }
             if (_this && cursor->wm_cursor) {
-                _this->FreeWMCursor (_this, cursor->wm_cursor);
+                _this->FreeWMCursor(_this, cursor->wm_cursor);
             }
-            SDL_free (cursor);
+            SDL_free(cursor);
         }
     }
 }
 
 int
-SDL_ShowCursor (int toggle)
+SDL_ShowCursor(int toggle)
 {
     int showing;
 
     showing = (SDL_cursorstate & CURSOR_VISIBLE);
     if (toggle >= 0) {
-        SDL_LockCursor ();
+        SDL_LockCursor();
         if (toggle) {
             SDL_cursorstate |= CURSOR_VISIBLE;
         } else {
             SDL_cursorstate &= ~CURSOR_VISIBLE;
         }
-        SDL_UnlockCursor ();
+        SDL_UnlockCursor();
         if ((SDL_cursorstate & CURSOR_VISIBLE) != showing) {
-            SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+            SDL_VideoDevice *_this = SDL_GetVideoDevice();
 
-            SDL_SetCursor (NULL);
+            SDL_SetCursor(NULL);
             if (_this && _this->CheckMouseMode) {
-                _this->CheckMouseMode (_this);
+                _this->CheckMouseMode(_this);
             }
         }
     } else {
@@ -291,12 +291,12 @@
 }
 
 void
-SDL_WarpMouse (Uint16 x, Uint16 y)
+SDL_WarpMouse(Uint16 x, Uint16 y)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
 
     if (!_this || !SDL_PublicSurface) {
-        SDL_SetError ("A video mode must be set before warping mouse");
+        SDL_SetError("A video mode must be set before warping mouse");
         return;
     }
 
@@ -313,28 +313,28 @@
 
     /* This generates a mouse motion event */
     if (_this->WarpWMCursor) {
-        _this->WarpWMCursor (_this, x, y);
+        _this->WarpWMCursor(_this, x, y);
     } else {
-        SDL_PrivateMouseMotion (0, 0, x, y);
+        SDL_PrivateMouseMotion(0, 0, x, y);
     }
 }
 
 void
-SDL_MoveCursor (int x, int y)
+SDL_MoveCursor(int x, int y)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
 
     /* Erase and update the current mouse position */
-    if (SHOULD_DRAWCURSOR (SDL_cursorstate)) {
+    if (SHOULD_DRAWCURSOR(SDL_cursorstate)) {
         /* Erase and redraw mouse cursor in new position */
-        SDL_LockCursor ();
-        SDL_EraseCursor (SDL_VideoSurface);
+        SDL_LockCursor();
+        SDL_EraseCursor(SDL_VideoSurface);
         SDL_cursor->area.x = (x - SDL_cursor->hot_x);
         SDL_cursor->area.y = (y - SDL_cursor->hot_y);
-        SDL_DrawCursor (SDL_VideoSurface);
-        SDL_UnlockCursor ();
+        SDL_DrawCursor(SDL_VideoSurface);
+        SDL_UnlockCursor();
     } else if (_this->MoveWMCursor) {
-        _this->MoveWMCursor (_this, x, y);
+        _this->MoveWMCursor(_this, x, y);
     }
 }
 
@@ -343,15 +343,15 @@
 static Uint8 pixels8[2];
 
 void
-SDL_CursorPaletteChanged (void)
+SDL_CursorPaletteChanged(void)
 {
     palette_changed = 1;
 }
 
 void
-SDL_MouseRect (SDL_Rect * area)
+SDL_MouseRect(SDL_Rect * area)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
     int clip_diff;
 
     *area = SDL_cursor->area;
@@ -374,7 +374,7 @@
 }
 
 static void
-SDL_DrawCursorFast (SDL_Surface * screen, SDL_Rect * area)
+SDL_DrawCursorFast(SDL_Surface * screen, SDL_Rect * area)
 {
     const Uint32 pixels[2] = { 0xFFFFFFFF, 0x00000000 };
     int i, w, h;
@@ -392,8 +392,8 @@
 
             if (palette_changed) {
                 pixels8[0] =
-                    (Uint8) SDL_MapRGB (screen->format, 255, 255, 255);
-                pixels8[1] = (Uint8) SDL_MapRGB (screen->format, 0, 0, 0);
+                    (Uint8) SDL_MapRGB(screen->format, 255, 255, 255);
+                pixels8[1] = (Uint8) SDL_MapRGB(screen->format, 0, 0, 0);
                 palette_changed = 0;
             }
             dst = (Uint8 *) screen->pixels +
@@ -463,7 +463,7 @@
                     datab = *data++;
                     for (i = 0; i < 8; ++i) {
                         if (maskb & 0x80) {
-                            SDL_memset (dst, pixels[datab >> 7], 3);
+                            SDL_memset(dst, pixels[datab >> 7], 3);
                         }
                         maskb <<= 1;
                         datab <<= 1;
@@ -506,7 +506,7 @@
 }
 
 static void
-SDL_DrawCursorSlow (SDL_Surface * screen, SDL_Rect * area)
+SDL_DrawCursorSlow(SDL_Surface * screen, SDL_Rect * area)
 {
     const Uint32 pixels[2] = { 0xFFFFFF, 0x000000 };
     int h;
@@ -528,8 +528,8 @@
     maxx = area->x + area->w;
     if (screen->format->BytesPerPixel == 1) {
         if (palette_changed) {
-            pixels8[0] = (Uint8) SDL_MapRGB (screen->format, 255, 255, 255);
-            pixels8[1] = (Uint8) SDL_MapRGB (screen->format, 0, 0, 0);
+            pixels8[0] = (Uint8) SDL_MapRGB(screen->format, 255, 255, 255);
+            pixels8[1] = (Uint8) SDL_MapRGB(screen->format, 0, 0, 0);
             palette_changed = 0;
         }
         for (h = area->h; h; h--) {
@@ -540,7 +540,7 @@
                 }
                 if ((x >= minx) && (x < maxx)) {
                     if (maskb & 0x80) {
-                        SDL_memset (dst, pixels8[datab >> 7], dstbpp);
+                        SDL_memset(dst, pixels8[datab >> 7], dstbpp);
                     }
                 }
                 maskb <<= 1;
@@ -558,7 +558,7 @@
                 }
                 if ((x >= minx) && (x < maxx)) {
                     if (maskb & 0x80) {
-                        SDL_memset (dst, pixels[datab >> 7], dstbpp);
+                        SDL_memset(dst, pixels[datab >> 7], dstbpp);
                     }
                 }
                 maskb <<= 1;
@@ -576,9 +576,9 @@
    pixel format than the video surface, and using a software rendered cursor.
 */
 static void
-SDL_ConvertCursorSave (SDL_Surface * screen, int w, int h)
+SDL_ConvertCursorSave(SDL_Surface * screen, int w, int h)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
     SDL_BlitInfo info;
     SDL_loblit RunBlit;
 
@@ -603,17 +603,17 @@
     RunBlit = screen->map->sw_data->blit;
 
     /* Run the actual software blit */
-    RunBlit (&info);
+    RunBlit(&info);
 }
 
 void
-SDL_DrawCursorNoLock (SDL_Surface * screen)
+SDL_DrawCursorNoLock(SDL_Surface * screen)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
     SDL_Rect area;
 
     /* Get the mouse rectangle, clipped to the screen */
-    SDL_MouseRect (&area);
+    SDL_MouseRect(&area);
     if ((area.w == 0) || (area.h == 0)) {
         return;
     }
@@ -626,7 +626,7 @@
         /* Set up the copy pointers */
         screenbpp = screen->format->BytesPerPixel;
         if ((screen == SDL_VideoSurface) ||
-            FORMAT_EQUAL (screen->format, SDL_VideoSurface->format)) {
+            FORMAT_EQUAL(screen->format, SDL_VideoSurface->format)) {
             dst = SDL_cursor->save[0];
         } else {
             dst = SDL_cursor->save[1];
@@ -638,7 +638,7 @@
         w = area.w * screenbpp;
         h = area.h;
         while (h--) {
-            SDL_memcpy (dst, src, w);
+            SDL_memcpy(dst, src, w);
             dst += w;
             src += screen->pitch;
         }
@@ -648,65 +648,65 @@
     area.x -= SDL_cursor->area.x;
     area.y -= SDL_cursor->area.y;
     if ((area.x == 0) && (area.w == SDL_cursor->area.w)) {
-        SDL_DrawCursorFast (screen, &area);
+        SDL_DrawCursorFast(screen, &area);
     } else {
-        SDL_DrawCursorSlow (screen, &area);
+        SDL_DrawCursorSlow(screen, &area);
     }
 }
 
 void
-SDL_DrawCursor (SDL_Surface * screen)
+SDL_DrawCursor(SDL_Surface * screen)
 {
     /* Lock the screen if necessary */
     if (screen == NULL) {
         return;
     }
-    if (SDL_MUSTLOCK (screen)) {
-        if (SDL_LockSurface (screen) < 0) {
+    if (SDL_MUSTLOCK(screen)) {
+        if (SDL_LockSurface(screen) < 0) {
             return;
         }
     }
 
-    SDL_DrawCursorNoLock (screen);
+    SDL_DrawCursorNoLock(screen);
 
     /* Unlock the screen and update if necessary */
-    if (SDL_MUSTLOCK (screen)) {
-        SDL_UnlockSurface (screen);
+    if (SDL_MUSTLOCK(screen)) {
+        SDL_UnlockSurface(screen);
     }
     if ((screen->flags & SDL_SCREEN_SURFACE) &&
         !(screen->flags & SDL_HWSURFACE)) {
-        SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+        SDL_VideoDevice *_this = SDL_GetVideoDevice();
         SDL_Window *window;
         SDL_Rect area;
 
-        window = SDL_GetWindowFromSurface (screen);
+        window = SDL_GetWindowFromSurface(screen);
         if (!window) {
             return;
         }
 
-        SDL_MouseRect (&area);
+        SDL_MouseRect(&area);
 
         if (_this->UpdateWindowSurface) {
-            _this->UpdateWindowSurface (_this, window, 1, &area);
+            _this->UpdateWindowSurface(_this, window, 1, &area);
         }
     }
 }
 
 void
-SDL_EraseCursorNoLock (SDL_Surface * screen)
+SDL_EraseCursorNoLock(SDL_Surface * screen)
 {
-    SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+    SDL_VideoDevice *_this = SDL_GetVideoDevice();
     SDL_Window *window;
     SDL_Rect area;
 
     /* Get the window associated with the surface */
-    window = SDL_GetWindowFromSurface (screen);
+    window = SDL_GetWindowFromSurface(screen);
     if (!window || !window->surface) {
         return;
     }
 
     /* Get the mouse rectangle, clipped to the screen */
-    SDL_MouseRect (&area);
+    SDL_MouseRect(&area);
     if ((area.w == 0) || (area.h == 0)) {
         return;
     }
@@ -719,7 +719,7 @@
         /* Set up the copy pointers */
         screenbpp = screen->format->BytesPerPixel;
         if ((screen->flags & SDL_SCREEN_SURFACE) ||
-            FORMAT_EQUAL (screen->format, window->surface->format)) {
+            FORMAT_EQUAL(screen->format, window->surface->format)) {
             src = SDL_cursor->save[0];
         } else {
             src = SDL_cursor->save[1];
@@ -731,52 +731,52 @@
         w = area.w * screenbpp;
         h = area.h;
         while (h--) {
-            SDL_memcpy (dst, src, w);
+            SDL_memcpy(dst, src, w);
             src += w;
             dst += screen->pitch;
         }
 
         /* Perform pixel conversion on cursor background */
         if (src > SDL_cursor->save[1]) {
-            SDL_ConvertCursorSave (screen, area.w, area.h);
+            SDL_ConvertCursorSave(screen, area.w, area.h);
         }
     }
 }
 
 void
-SDL_EraseCursor (SDL_Surface * screen)
+SDL_EraseCursor(SDL_Surface * screen)
 {
     /* Lock the screen if necessary */
     if (screen == NULL) {
         return;
     }
-    if (SDL_MUSTLOCK (screen)) {
-        if (SDL_LockSurface (screen) < 0) {
+    if (SDL_MUSTLOCK(screen)) {
+        if (SDL_LockSurface(screen) < 0) {
             return;
         }
     }
 
-    SDL_EraseCursorNoLock (screen);
+    SDL_EraseCursorNoLock(screen);
 
     /* Unlock the screen and update if necessary */
-    if (SDL_MUSTLOCK (screen)) {
-        SDL_UnlockSurface (screen);
+    if (SDL_MUSTLOCK(screen)) {
+        SDL_UnlockSurface(screen);
     }
     if ((screen->flags & SDL_SCREEN_SURFACE) &&
         !(screen->flags & SDL_HWSURFACE)) {
-        SDL_VideoDevice *_this = SDL_GetVideoDevice ();
+        SDL_VideoDevice *_this = SDL_GetVideoDevice();
         SDL_Window *window;
         SDL_Rect area;
 
-        window = SDL_GetWindowFromSurface (screen);
+        window = SDL_GetWindowFromSurface(screen);
         if (!window) {
             return;
         }
 
-        SDL_MouseRect (&area);
+        SDL_MouseRect(&area);
 
         if (_this->UpdateWindowSurface) {
-            _this->UpdateWindowSurface (_this, window, 1, &area);
+            _this->UpdateWindowSurface(_this, window, 1, &area);
         }
     }
 }
@@ -785,7 +785,7 @@
    FIXME:  Keep track of all cursors, and reset them all.
  */
 void
-SDL_ResetCursor (void)
+SDL_ResetCursor(void)
 {
     int savelen;
 
@@ -793,7 +793,7 @@
         savelen = SDL_cursor->area.w * 4 * SDL_cursor->area.h;
         SDL_cursor->area.x = 0;
         SDL_cursor->area.y = 0;
-        SDL_memset (SDL_cursor->save[0], 0, savelen);
+        SDL_memset(SDL_cursor->save[0], 0, savelen);
     }
 }