From 76d5234858740792115cef45fe80dbfaaee62f5b Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 8 Nov 2018 10:41:31 +0100 Subject: [PATCH] Reviewed raygui examples --- .../scrollpanel_text_multiline.c | 79 ------------------ .../controls_test_suite.c} | 49 ++++++----- .../fonts/FiveByFive10.ttf | Bin .../fonts/NorthernLights.ttf | Bin .../fonts/PIXEARG11.ttf | Bin .../fonts/PixelOperator8.ttf | Bin .../fonts/pixelpoiiz10.ttf | Bin .../fonts/prstartk8.ttf | Bin .../fonts/rainyhearts16.ttf | Bin examples/image_exporter/image_exporter.c | 66 +++++---------- .../{ => design}/raw_importer_REF.png | Bin .../{ => design}/raw_importer_REV0.png | Bin .../{ => design}/raw_importer_REV1.png | Bin .../{ => design}/raw_importer_REV2.png | Bin .../{ => design}/raw_importer_REV3.png | Bin .../{ => design}/raw_importer_REV4.png | Bin .../{ => design}/raw_importer_REV5.png | Bin .../image_raw_importer/image_raw_importer.c | 33 +++++--- .../standalone_window.c} | 37 ++++---- 19 files changed, 83 insertions(+), 181 deletions(-) delete mode 100644 examples/controls_test/scrollpanel_text_multiline.c rename examples/{controls_review/controls_review.c => controls_test_suite/controls_test_suite.c} (86%) rename examples/{controls_review => controls_test_suite}/fonts/FiveByFive10.ttf (100%) rename examples/{controls_review => controls_test_suite}/fonts/NorthernLights.ttf (100%) rename examples/{controls_review => controls_test_suite}/fonts/PIXEARG11.ttf (100%) rename examples/{controls_review => controls_test_suite}/fonts/PixelOperator8.ttf (100%) rename examples/{controls_review => controls_test_suite}/fonts/pixelpoiiz10.ttf (100%) rename examples/{controls_review => controls_test_suite}/fonts/prstartk8.ttf (100%) rename examples/{controls_review => controls_test_suite}/fonts/rainyhearts16.ttf (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REF.png (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REV0.png (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REV1.png (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REV2.png (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REV3.png (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REV4.png (100%) rename examples/image_raw_importer/{ => design}/raw_importer_REV5.png (100%) rename examples/{window_test/window.c => standalone_window/standalone_window.c} (75%) diff --git a/examples/controls_test/scrollpanel_text_multiline.c b/examples/controls_test/scrollpanel_text_multiline.c deleted file mode 100644 index 15de8ab..0000000 --- a/examples/controls_test/scrollpanel_text_multiline.c +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************************* -* -* Some new GUI controls testing program -* -* Controls to test: -* - GuiScrollPanel() -* - GuiTextBoxMulti() -* -* Compile this program using: -* gcc -o $(NAME_PART).exe $(NAME_PART).c -I..\..\src -lraylib -lopengl32 -lgdi32 -std=c99 -Wall -* -* LICENSE: zlib/libpng -* -* Copyright (c) 2018 raylib technologies -* -**********************************************************************************************/ - -#include "raylib.h" - -#define RAYGUI_IMPLEMENTATION -#include "raygui.h" - -//---------------------------------------------------------------------------------- -// Controls Functions Declaration -//---------------------------------------------------------------------------------- - -//------------------------------------------------------------------------------------ -// Program main entry point -//------------------------------------------------------------------------------------ -int main() -{ - // Initialization - //--------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 600; - - InitWindow(screenWidth, screenHeight, "Controls testing suite"); - - // GuiTextBoxMulti() variables - int textMultiSize = 128; - char textMulti[128] = ""; - - // GuiScrollPanel() variables - Rectangle scrollBox = { 100, 100, 200, 300 }; - Rectangle scrollContent = { 0, 0, 200, 600 }; - Vector2 scrollPosition = { 0, 0 }; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Implement required update logic - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(GetColor(style[DEFAULT_BACKGROUND_COLOR])); - - GuiTextBoxMulti((Rectangle){ 500, 100, 100, 200 }, textMulti, textMultiSize, true); - - scrollPosition = GuiScrollPanel(scrollBox, scrollContent, scrollPosition); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/controls_review/controls_review.c b/examples/controls_test_suite/controls_test_suite.c similarity index 86% rename from examples/controls_review/controls_review.c rename to examples/controls_test_suite/controls_test_suite.c index f94398e..538d033 100644 --- a/examples/controls_review/controls_review.c +++ b/examples/controls_test_suite/controls_test_suite.c @@ -1,10 +1,25 @@ /******************************************************************************************* * -* layout_file_name - tool description +* raygui - controls test suite +* +* TEST CONTROLS: +* - GuiDropdownBox() +* - GuiValueBox() +* - GuiSpinner() +* - GuiTextBox() +* - GuiTextBoxMulti() +* - GuiListView() +* +* DEPENDENCIES: +* raylib 2.1-dev - Windowing/input management and drawing. +* raygui 2.1-dev - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 * * LICENSE: zlib/libpng * -* Copyright (c) 2018 raylib technologies +* Copyright (c) 2018 raylib technologies (@raylibtech) * **********************************************************************************************/ @@ -13,10 +28,6 @@ #define RAYGUI_IMPLEMENTATION #include "../../src/raygui.h" -//---------------------------------------------------------------------------------- -// Controls Functions Declaration -//---------------------------------------------------------------------------------- -static void Button005(); // Button: Button005 logic //------------------------------------------------------------------------------------ // Program main entry point @@ -28,9 +39,9 @@ int main() int screenWidth = 800; int screenHeight = 600; - InitWindow(screenWidth, screenHeight, "layout_file_name"); + InitWindow(screenWidth, screenHeight, "raygui - controls test suite"); - // layout_file_name: controls initialization + // GUI controls initialization //---------------------------------------------------------------------------------- int dropdownBox000Active = 0; const char *dropdownBox000TextList[3] = { "ONE", "TWO", "THREE" }; @@ -67,6 +78,7 @@ int main() bool forceSquaredChecked = false; //---------------------------------------------------------------------------------- + // Custom GUI font loading //Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0); //GuiFont(font); @@ -97,7 +109,7 @@ int main() if (GuiSpinner((Rectangle){ 25, 135, 125, 30 }, &spinner001Value, 0, 100, 25, spinnerEditMode)) spinnerEditMode = !spinnerEditMode; if (GuiValueBox((Rectangle){ 25, 175, 125, 30 }, &valueBox002Value, 0, 100, valueBoxEditMode)) valueBoxEditMode = !valueBoxEditMode; if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode; - if (GuiButton((Rectangle){ 25, 255, 125, 30 }, "SAMPLE TEXT")) Button005(); + if (GuiButton((Rectangle){ 25, 255, 125, 30 }, "SAMPLE TEXT")) { } // NOTE: GuiDropdownBox must draw at the end of the column if (GuiDropdownBox((Rectangle){ 25, 65, 125, 30 }, dropdownBox001TextList, 5, &dropdownBox001Active, dropDown001EditMode)) dropDown001EditMode = !dropDown001EditMode; if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, dropdownBox000TextList, 3, &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode; @@ -115,10 +127,10 @@ int main() // Fourth GUI column GuiLock(); - GuiState(0); if (GuiButton((Rectangle){ 600, 25, 125, 30 }, "DISABLE")) Button005(); - GuiState(1); if (GuiButton((Rectangle){ 600, 65, 125, 30 }, "NORMAL")) Button005(); - GuiState(2); if (GuiButton((Rectangle){ 600, 105, 125, 30 }, "FOCUSED")) Button005(); - GuiState(3); if (GuiButton((Rectangle){ 600, 145, 125, 30 }, "PRESSED")) Button005(); + GuiState(0); if (GuiButton((Rectangle){ 600, 25, 125, 30 }, "DISABLE")) { } + GuiState(1); if (GuiButton((Rectangle){ 600, 65, 125, 30 }, "NORMAL")) { } + GuiState(2); if (GuiButton((Rectangle){ 600, 105, 125, 30 }, "FOCUSED")) { } + GuiState(3); if (GuiButton((Rectangle){ 600, 145, 125, 30 }, "PRESSED")) { } GuiState(1); GuiUnlock(); //---------------------------------------------------------------------------------- @@ -126,7 +138,7 @@ int main() EndDrawing(); //---------------------------------------------------------------------------------- } - //free(enableElements); + // De-Initialization //-------------------------------------------------------------------------------------- CloseWindow(); // Close window and OpenGL context @@ -134,12 +146,3 @@ int main() return 0; } - -//------------------------------------------------------------------------------------ -// Controls Functions Definitions (local) -//------------------------------------------------------------------------------------ -// Button: Button005 logic -static void Button005() -{ - // TODO: Implement control logic -} diff --git a/examples/controls_review/fonts/FiveByFive10.ttf b/examples/controls_test_suite/fonts/FiveByFive10.ttf similarity index 100% rename from examples/controls_review/fonts/FiveByFive10.ttf rename to examples/controls_test_suite/fonts/FiveByFive10.ttf diff --git a/examples/controls_review/fonts/NorthernLights.ttf b/examples/controls_test_suite/fonts/NorthernLights.ttf similarity index 100% rename from examples/controls_review/fonts/NorthernLights.ttf rename to examples/controls_test_suite/fonts/NorthernLights.ttf diff --git a/examples/controls_review/fonts/PIXEARG11.ttf b/examples/controls_test_suite/fonts/PIXEARG11.ttf similarity index 100% rename from examples/controls_review/fonts/PIXEARG11.ttf rename to examples/controls_test_suite/fonts/PIXEARG11.ttf diff --git a/examples/controls_review/fonts/PixelOperator8.ttf b/examples/controls_test_suite/fonts/PixelOperator8.ttf similarity index 100% rename from examples/controls_review/fonts/PixelOperator8.ttf rename to examples/controls_test_suite/fonts/PixelOperator8.ttf diff --git a/examples/controls_review/fonts/pixelpoiiz10.ttf b/examples/controls_test_suite/fonts/pixelpoiiz10.ttf similarity index 100% rename from examples/controls_review/fonts/pixelpoiiz10.ttf rename to examples/controls_test_suite/fonts/pixelpoiiz10.ttf diff --git a/examples/controls_review/fonts/prstartk8.ttf b/examples/controls_test_suite/fonts/prstartk8.ttf similarity index 100% rename from examples/controls_review/fonts/prstartk8.ttf rename to examples/controls_test_suite/fonts/prstartk8.ttf diff --git a/examples/controls_review/fonts/rainyhearts16.ttf b/examples/controls_test_suite/fonts/rainyhearts16.ttf similarity index 100% rename from examples/controls_review/fonts/rainyhearts16.ttf rename to examples/controls_test_suite/fonts/rainyhearts16.ttf diff --git a/examples/image_exporter/image_exporter.c b/examples/image_exporter/image_exporter.c index 9a93f90..9d4e820 100644 --- a/examples/image_exporter/image_exporter.c +++ b/examples/image_exporter/image_exporter.c @@ -1,9 +1,13 @@ /******************************************************************************************* * -* raygui - image exporter example +* raygui - image exporter * -* This example has been created using raylib v2.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* DEPENDENCIES: +* raylib 2.1-dev - Windowing/input management and drawing. +* raygui 2.1-dev - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 * * Copyright (c) 2018 raylib technologies (@raylibtech) * @@ -14,13 +18,6 @@ #define RAYGUI_IMPLEMENTATION #include "raygui.h" -//#include "untitled.h" - -// Static functions -static void ImageToCode(Image image, char *fileName); // Exports image to code (.h) - -const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" }; -int pixelFormatActive = 0; //------------------------------------------------------------------------------------ // Program main entry point @@ -32,18 +29,22 @@ int main(int argc, char *argv[0]) const int screenWidth = 800; const int screenHeight = 450; - //SetConfigFlags(); - InitWindow(screenWidth, screenHeight, "image exporter"); + InitWindow(screenWidth, screenHeight, "raygui - image exporter"); - // Image export window variables + // GUI controls initialization + //---------------------------------------------------------------------------------- Rectangle windowBoxRec = { screenWidth/2 - 110, screenHeight/2 - 100, 220, 190 }; bool windowBoxActive = false; + int fileFormatActive = 0; const char *fileFormatTextList[3] = { "IMAGE (.png)", "DATA (.raw)", "CODE (.h)" }; - char fileName[32] = "untitled"; - //Image image = { untitled_data, untitled_width, untitled_height, 1, untitled_format }; - //Texture2D texture = LoadTextureFromImage(image); + int pixelFormatActive = 0; + const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" }; + + char fileName[32] = "untitled"; + //-------------------------------------------------------------------------------------- + Image image = { 0 }; Texture2D texture = { 0 }; @@ -66,7 +67,6 @@ int main(int argc, char *argv[0]) int fileCount = 0; char **droppedFiles = GetDroppedFiles(&fileCount); - // Check file extensions for drag-and-drop if (fileCount == 1) { Image imTemp = LoadImage(droppedFiles[0]); @@ -99,7 +99,7 @@ int main(int argc, char *argv[0]) if (fileFormatActive == 0) // PNG { if ((GetExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".png"))) strcat(fileName, ".png\0"); // No extension provided - ExportImage(fileName, image); + ExportImage(image, fileName); } else if (fileFormatActive == 1) // RAW { @@ -113,7 +113,7 @@ int main(int argc, char *argv[0]) } else if (fileFormatActive == 2) // CODE { - ImageToCode(image, fileName); + ExportImageAsCode(image, fileName); } } @@ -126,7 +126,9 @@ int main(int argc, char *argv[0]) if (imageScale <= 0.1f) imageScale = 0.1f; else if (imageScale >= 5) imageScale = 5; - imageRec = (Rectangle){ screenWidth/2 - (float)image.width*imageScale/2, screenHeight/2 - (float)image.height*imageScale/2, (float)image.width*imageScale, (float)image.height*imageScale }; + imageRec = (Rectangle){ screenWidth/2 - (float)image.width*imageScale/2, + screenHeight/2 - (float)image.height*imageScale/2, + (float)image.width*imageScale, (float)image.height*imageScale }; } //---------------------------------------------------------------------------------- @@ -187,27 +189,3 @@ int main(int argc, char *argv[0]) return 0; } - -static void ImageToCode(Image image, char *fileName) -{ - char outName[32] = "\0"; - - strcpy(outName, fileName); - if ((GetExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".h"))) strcat(fileName, ".h\0"); // No extension provided - - int dataSize = GetPixelDataSize(image.width, image.height, image.format); - - FILE *txtFile = fopen(fileName, "wt"); - - // TODO: Add image information - fprintf(txtFile, "//\n// Image exported using raygui image_exporter example\n//\n// Copyright (c) 2018 raylib technologies (@raylibtech)\n//\n\n"); - fprintf(txtFile, "#define %s_width %i\n", outName, image.width); - fprintf(txtFile, "#define %s_height %i\n", outName, image.height); - fprintf(txtFile, "#define %s_format %i // raylib internal pixel format: %s\n\n", outName, pixelFormatActive + 1, pixelFormatTextList[pixelFormatActive]); - - fprintf(txtFile, "static unsigned char %s_data[%i] = { ", outName, dataSize); - for (int i = 0; i < dataSize - 1; i++) fprintf(txtFile, "0x%x, ", ((unsigned char *)image.data)[i]); - fprintf(txtFile, "0x%x };\n", ((unsigned char *)image.data)[dataSize - 1]); - - fclose(txtFile); -} diff --git a/examples/image_raw_importer/raw_importer_REF.png b/examples/image_raw_importer/design/raw_importer_REF.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REF.png rename to examples/image_raw_importer/design/raw_importer_REF.png diff --git a/examples/image_raw_importer/raw_importer_REV0.png b/examples/image_raw_importer/design/raw_importer_REV0.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REV0.png rename to examples/image_raw_importer/design/raw_importer_REV0.png diff --git a/examples/image_raw_importer/raw_importer_REV1.png b/examples/image_raw_importer/design/raw_importer_REV1.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REV1.png rename to examples/image_raw_importer/design/raw_importer_REV1.png diff --git a/examples/image_raw_importer/raw_importer_REV2.png b/examples/image_raw_importer/design/raw_importer_REV2.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REV2.png rename to examples/image_raw_importer/design/raw_importer_REV2.png diff --git a/examples/image_raw_importer/raw_importer_REV3.png b/examples/image_raw_importer/design/raw_importer_REV3.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REV3.png rename to examples/image_raw_importer/design/raw_importer_REV3.png diff --git a/examples/image_raw_importer/raw_importer_REV4.png b/examples/image_raw_importer/design/raw_importer_REV4.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REV4.png rename to examples/image_raw_importer/design/raw_importer_REV4.png diff --git a/examples/image_raw_importer/raw_importer_REV5.png b/examples/image_raw_importer/design/raw_importer_REV5.png similarity index 100% rename from examples/image_raw_importer/raw_importer_REV5.png rename to examples/image_raw_importer/design/raw_importer_REV5.png diff --git a/examples/image_raw_importer/image_raw_importer.c b/examples/image_raw_importer/image_raw_importer.c index 52a0567..4b0dad7 100644 --- a/examples/image_raw_importer/image_raw_importer.c +++ b/examples/image_raw_importer/image_raw_importer.c @@ -1,9 +1,15 @@ /******************************************************************************************* * -* raygui - image raw importer example +* raygui - image raw importer * -* This example has been created using raylib v2.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* DEPENDENCIES: +* raylib 2.1-dev - Windowing/input management and drawing. +* raygui 2.1-dev - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 +* +* LICENSE: zlib/libpng * * Copyright (c) 2018 raylib technologies (@raylibtech) * @@ -17,10 +23,6 @@ #include // Required for: strcpy() #include // Required for: atoi() -//---------------------------------------------------------------------------------- -// Controls Functions Declaration -//---------------------------------------------------------------------------------- -static void ImportRAW(); // Button: ImportRAW logic //------------------------------------------------------------------------------------ // Program main entry point @@ -32,17 +34,21 @@ int main() const int screenWidth = 800; const int screenHeight = 600; - InitWindow(screenWidth, screenHeight, "Image RAW Importer"); + InitWindow(screenWidth, screenHeight, "raygui - image raw importer"); Texture2D texture = { 0 }; - // raw_importer: controls initialization + // GUI controls initialization //---------------------------------------------------------------------------------- Vector2 windowOffset = { screenWidth/2 - 200/2, screenHeight/2 - 465/2 }; bool importWindowActive = false; + int widthValue = 0; + bool widthEditMode = false; int heightValue = 0; + bool heightEditMode = false; + int pixelFormatActive = 0; const char *pixelFormatTextList[8] = { "CUSTOM", "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" }; @@ -50,7 +56,9 @@ int main() const char *channelsTextList[4] = { "1", "2", "3", "4" }; int bitDepthActive = 0; const char *bitDepthTextList[3] = { "8", "16", "32" }; + int headerSizeValue = 0; + bool headerSizeEditMode = false; //---------------------------------------------------------------------------------- // Image file info @@ -181,10 +189,10 @@ int main() GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 50, 75, 20 }, FormatText("%i bytes", dataSize)); GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 85, 180, 80 }, "Resolution"); GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 100, 33, 25 }, "Width:"); - widthValue = GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 100, 80, 25 }, widthValue, 100); + if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 100, 80, 25 }, &widthValue, 0, 8192, widthEditMode)) widthEditMode = !widthEditMode; GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 100, 30, 25 }, "pixels"); GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 130, 33, 25 }, "Height:"); - heightValue = GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, heightValue, 100); + if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, &heightValue, 0, 8192, heightEditMode)) heightEditMode = !heightEditMode; GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 130, 30, 25 }, "pixels"); GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 180, 180, 160 }, "Pixel Format"); pixelFormatActive = GuiComboBox((Rectangle){ windowOffset.x + 20, windowOffset.y + 195, 160, 25 }, pixelFormatTextList, 8, pixelFormatActive); @@ -199,7 +207,7 @@ int main() GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header"); GuiLabel((Rectangle){ windowOffset.x + 25, windowOffset.y + 370, 27, 25 }, "Size:"); - headerSizeValue = GuiValueBox((Rectangle){ windowOffset.x + 55, windowOffset.y + 370, 85, 25 }, headerSizeValue, 100); + if (GuiValueBox((Rectangle){ windowOffset.x + 55, windowOffset.y + 370, 85, 25 }, &headerSizeValue, 0, 10000, headerSizeEditMode)) headerSizeEditMode = !headerSizeEditMode; GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 370, 30, 25 }, "bytes"); btnLoadPressed = GuiButton((Rectangle){ windowOffset.x + 10, windowOffset.y + 420, 180, 30 }, "Import RAW"); @@ -213,6 +221,7 @@ int main() // De-Initialization //-------------------------------------------------------------------------------------- if (texture.id != 0) UnloadTexture(texture); + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/window_test/window.c b/examples/standalone_window/standalone_window.c similarity index 75% rename from examples/window_test/window.c rename to examples/standalone_window/standalone_window.c index a64a852..2ca3943 100644 --- a/examples/window_test/window.c +++ b/examples/standalone_window/standalone_window.c @@ -1,10 +1,17 @@ /******************************************************************************************* * -* window - tool description +* raygui - standalone window +* +* DEPENDENCIES: +* raylib 2.1-dev - Windowing/input management and drawing. +* raygui 2.1-dev - Immediate-mode GUI controls. +* +* COMPILATION (Windows - MinGW): +* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99 * * LICENSE: zlib/libpng * -* Copyright (c) 2018 raylib technologies +* Copyright (c) 2018 raylib technologies (@raylibtech) * **********************************************************************************************/ @@ -13,9 +20,6 @@ #define RAYGUI_IMPLEMENTATION #include "raygui.h" -//---------------------------------------------------------------------------------- -// Controls Functions Declaration -//---------------------------------------------------------------------------------- //------------------------------------------------------------------------------------ // Program main entry point @@ -28,10 +32,9 @@ int main() int screenHeight = 600; SetConfigFlags(FLAG_WINDOW_UNDECORATED); + InitWindow(screenWidth, screenHeight, "raygui - standalone window"); - InitWindow(screenWidth, screenHeight, "window"); - - // window: controls initialization + // GUI controls initialization //---------------------------------------------------------------------------------- bool exitWindow = false; //---------------------------------------------------------------------------------- @@ -51,8 +54,6 @@ int main() { // Update //---------------------------------------------------------------------------------- - // TODO: Implement required update logic - //---------------------------------------------------------------------------------- mousePos = GetMousePosition(); if ((CheckCollisionPointRec(mousePos, (Rectangle){ 0, 0, screenWidth, 20 })) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) @@ -68,8 +69,7 @@ int main() position.x = prevPosition.x + (mousePos.x - panOffset.x), position.y = prevPosition.y + (mousePos.y - panOffset.y); } - - if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) { prevPosition = position; dragWindow = false; @@ -77,10 +77,7 @@ int main() } SetWindowPosition(position.x, position.y); - // printf("mouse: %f, %f\n", mousePos.x, mousePos.y); - // printf("panOffset: %f, %f\n", panOffset.x, panOffset.y); - // printf("prevPosition: %f, %f\n", prevPosition.x, prevPosition.y); - // printf("position: %f, %f\n\n", position.x, position.y); + //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- @@ -90,9 +87,7 @@ int main() // raygui: controls drawing //---------------------------------------------------------------------------------- - - exitWindow = GuiWindowBox((Rectangle){ 1, 0, screenWidth - 2, screenHeight - 1 }, "EXAMPLE WINDOW"); - + exitWindow = GuiWindowBox((Rectangle){ 1, 0, screenWidth - 2, screenHeight - 1 }, "STANDALONE WINDOW"); //---------------------------------------------------------------------------------- EndDrawing(); @@ -106,7 +101,3 @@ int main() return 0; } - -//------------------------------------------------------------------------------------ -// Controls Functions Definitions (local) -//------------------------------------------------------------------------------------