aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-06-09 20:01:39 +0200
committerraysan5 <raysan5@gmail.com>2016-06-09 20:01:39 +0200
commitdcbfb83031fb4158699efa8127930fb6de967d11 (patch)
tree9ca9b76e75d8ae865b77f8f49e42ae1fe943573a /src
parent420b85da98fff2603d94985a42cf86d6e4182204 (diff)
downloadraylib-dcbfb83031fb4158699efa8127930fb6de967d11.tar.gz
raylib-dcbfb83031fb4158699efa8127930fb6de967d11.zip
Updated comments...
Diffstat (limited to 'src')
-rw-r--r--src/raygui.h91
1 files changed, 55 insertions, 36 deletions
diff --git a/src/raygui.h b/src/raygui.h
index 32ad8e9b..f13b68cd 100644
--- a/src/raygui.h
+++ b/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
* - Button
@@ -16,31 +17,51 @@
* - Spinner
* - 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:
*
-* 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
*
+* Copyright (c) 2015-2016 emegeme (@emegemegames)
+*
* 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.
*
@@ -355,29 +376,27 @@ RAYGUIDEF int GetStyleProperty(int guiProperty); // Get
#endif // RAYGUI_H
-/*********************************************************************************************************
+/***********************************************************************************
*
-* RAYGUI IMPLEMENTATION
+* 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
-*/
+
+#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
@@ -1272,7 +1291,7 @@ RAYGUIDEF void LoadGuiStyle(const char *fileName)
int value;
} StyleProperty;
- StyleProperty *styleProp = (StyleProperty *)malloc(MAX_STYLE_PROPERTIES*sizeof(StyleProperty));;
+ StyleProperty *styleProp = (StyleProperty *)RAYGUI_MALLOC(MAX_STYLE_PROPERTIES*sizeof(StyleProperty));;
int counter = 0;
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