Browse Source

Updated comments...

raysan5 9 years ago
parent
commit
dcbfb83031
1 changed files with 55 additions and 36 deletions
  1. 55 36
      src/raygui.h

+ 55 - 36
src/raygui.h

@@ -1,8 +1,9 @@
 /*******************************************************************************************
 /*******************************************************************************************
 *
 *
-*   raygui v1.2 - IMGUI (Immedite Mode GUI) library for raylib (https://github.com/raysan5/raylib)
+*   raygui 1.0 - IMGUI (Immedite Mode GUI) library for raylib (https://github.com/raysan5/raylib)
 *
 *
-*   raygui is a library for creating simple IMGUI interfaces. It provides a set of basic components:
+*   raygui is a library for creating simple IMGUI interfaces using raylib. 
+*   It provides a set of basic components:
 *
 *
 *       - Label
 *       - Label
 *       - Button
 *       - Button
@@ -16,31 +17,51 @@
 *       - Spinner
 *       - Spinner
 *       - TextBox
 *       - TextBox
 *
 *
-*   It also provides a set of functions for styling the components based on a set of properties.
-*
-*   USAGE:
-*   
-*   Include this file in any C/C++ file that requires it; in ONLY one of them, write:
-*       #define RAYGUI_IMPLEMENTATION
-*   before the #include of this file. This expands out the actual implementation into that file.
-*   
+*   It also provides a set of functions for styling the components based on its properties (size, color).
+* 
 *   CONFIGURATION:
 *   CONFIGURATION:
 *   
 *   
-*   You can #define RAYGUI_STANDALONE to avoid raylib.h inclusion (not dependant on raylib functions and types).
-*       NOTE: Some external funtions are required for drawing and input management, check implementation code.
+*   #define RAYGUI_IMPLEMENTATION
+*       Generates the implementation of the library into the included file.
+*       If not defined, the library is in header only mode and can be included in other headers 
+*       or source files without problems. But only ONE file should hold the implementation.
+*
+*   #define RAYGUI_STATIC (defined by default)
+*       The generated implementation will stay private inside implementation file and all 
+*       internal symbols and functions will only be visible inside that file.
+*
+*   #define RAYGUI_STANDALONE
+*       Avoid raylib.h header inclusion in this file. Data types defined on raylib are defined
+*       internally in the library and input management and drawing functions must be provided by
+*       the user (check library implementation for further details).
 *
 *
-*   You can #define RAY_MALLOC() to replace malloc() and free() function by your own.
+*   #define RAYGUI_MALLOC()
+*   #define RAYGUI_FREE()
+*       You can define your own malloc/free implementation replacing stdlib.h malloc()/free() functions.
+*       Otherwise it will include stdlib.h and use the C standard library malloc()/free() function.
+*       
+*   LIMITATIONS: 
 *
 *
-*   You can #define RAYGUI_STATIC to make the implementation private to the file that generates the implementation,
+*       // TODO.
 *
 *
-*   VERSIONS AND CREDITS:
+*   VERSIONS:
 *
 *
-*   1.2 (07-Jun-2016) Converted to header-only by Ramon Santamaria
-*   1.1 (07-Mar-2016) Reviewed and expanded by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria.
-*   1.0 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria.
+*   1.0 (07-Jun-2016) Converted to header-only by Ramon Santamaria.
+*   0.9 (07-Mar-2016) Reviewed and tested by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria.
+*   0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria.
+*
+*   CONTRIBUTORS:
+*       Ramon Santamaria: Functions design and naming conventions.
+*       Kevin Gato: Initial implementation of basic components.
+*       Daniel Nicolas: Initial implementation of basic components.
+*       Albert Martos: Review and testing of library.
+*       Ian Eito: Review and testing of the library.
+*       Sergio Martinez: Review and testing of the library.
 *
 *
 *   LICENSE: zlib/libpng
 *   LICENSE: zlib/libpng
 *
 *
+*   Copyright (c) 2015-2016 emegeme (@emegemegames)
+*
 *   This software is provided "as-is", without any express or implied warranty. In no event
 *   This software is provided "as-is", without any express or implied warranty. In no event
 *   will the authors be held liable for any damages arising from the use of this software.
 *   will the authors be held liable for any damages arising from the use of this software.
 *
 *
@@ -355,29 +376,27 @@ RAYGUIDEF int GetStyleProperty(int guiProperty);                          // Get
 #endif // RAYGUI_H
 #endif // RAYGUI_H
 
 
 
 
-/*********************************************************************************************************
+/***********************************************************************************
 *
 *
-*       RAYGUI IMPLEMENTATION
+*   RAYGUI IMPLEMENTATION
 *
 *
-**********************************************************************************************************/
+************************************************************************************/
 
 
 #if defined(RAYGUI_IMPLEMENTATION)
 #if defined(RAYGUI_IMPLEMENTATION)
 
 
-#include <stdio.h>      // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf()
-                        // NOTE: Those functions are only used in SaveGuiStyle() and LoadGuiStyle()
+#include <stdio.h>          // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf()
+                            // NOTE: Those functions are only used in SaveGuiStyle() and LoadGuiStyle()
                         
                         
-#include <stdlib.h>     // Required for: malloc(), free() [Used only on LoadGuiStyle()]
-#include <string.h>     // Required for: strcmp() [Used only on LoadGuiStyle()]
-#include <stdarg.h>     // Required for: va_list, va_start(), vfprintf(), va_end()
-
-/*
-// NOTE: Example on how to define custom functions
-#if !defined(RAY_MALLOC)
-    #include <stdlib.h>
-    #define RAY_MALLOC(size,c) malloc(size)
-    #define RAY_FREE(ptr,c) free(ptr)
+// Check if custom malloc/free functions defined, if not, using standard ones
+#if !defined(RAYGUI_MALLOC)
+    #include <stdlib.h>     // Required for: malloc(), free() [Used only on LoadGuiStyle()]
+    
+    #define RAYGUI_MALLOC(size)  malloc(size)
+    #define RAYGUI_FREE(ptr)     free(ptr)
 #endif
 #endif
-*/
+
+#include <string.h>         // Required for: strcmp() [Used only on LoadGuiStyle()]
+#include <stdarg.h>         // Required for: va_list, va_start(), vfprintf(), va_end()
 
 
 //----------------------------------------------------------------------------------
 //----------------------------------------------------------------------------------
 // Defines and Macros
 // Defines and Macros
@@ -1272,7 +1291,7 @@ RAYGUIDEF void LoadGuiStyle(const char *fileName)
         int value;
         int value;
     } StyleProperty;
     } StyleProperty;
     
     
-    StyleProperty *styleProp = (StyleProperty *)malloc(MAX_STYLE_PROPERTIES*sizeof(StyleProperty));; 
+    StyleProperty *styleProp = (StyleProperty *)RAYGUI_MALLOC(MAX_STYLE_PROPERTIES*sizeof(StyleProperty));; 
     int counter = 0;
     int counter = 0;
     
     
     FILE *styleFile = fopen(fileName, "rt");
     FILE *styleFile = fopen(fileName, "rt");
@@ -1297,7 +1316,7 @@ RAYGUIDEF void LoadGuiStyle(const char *fileName)
         }
         }
     }
     }
     
     
-    free(styleProp);
+    RAYGUI_FREE(styleProp);
 }
 }
 
 
 // Set one style property value
 // Set one style property value