1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*******************************************************************************************
- *
- * raygui - portable window
- *
- * DEPENDENCIES:
- * raylib 4.0 - Windowing/input management and drawing.
- * raygui 3.0 - 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) 2016-2024 Ramon Santamaria (@raysan5)
- *
- **********************************************************************************************/
- #include "raylib.h"
- #define RAYGUI_IMPLEMENTATION
- #include "../../src/raygui.h"
- //------------------------------------------------------------------------------------
- // Program main entry point
- //------------------------------------------------------------------------------------
- int main()
- {
- // Initialization
- //---------------------------------------------------------------------------------------
- const int screenWidth = 800;
- const int screenHeight = 600;
-
- SetConfigFlags(FLAG_WINDOW_UNDECORATED);
- InitWindow(screenWidth, screenHeight, "raygui - portable window");
- // General variables
- Vector2 mousePosition = { 0 };
- Vector2 windowPosition = { 500, 200 };
- Vector2 panOffset = mousePosition;
- bool dragWindow = false;
-
- SetWindowPosition(windowPosition.x, windowPosition.y);
-
- bool exitWindow = false;
-
- SetTargetFPS(60);
- //--------------------------------------------------------------------------------------
- // Main game loop
- while (!exitWindow && !WindowShouldClose()) // Detect window close button or ESC key
- {
- // Update
- //----------------------------------------------------------------------------------
- mousePosition = GetMousePosition();
-
- if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !dragWindow)
- {
- if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 }))
- {
- windowPosition = GetWindowPosition();
- dragWindow = true;
- panOffset = mousePosition;
- }
- }
- if (dragWindow)
- {
- windowPosition.x += (mousePosition.x - panOffset.x);
- windowPosition.y += (mousePosition.y - panOffset.y);
- SetWindowPosition((int)windowPosition.x, (int)windowPosition.y);
-
- if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false;
- }
- //----------------------------------------------------------------------------------
- // Draw
- //----------------------------------------------------------------------------------
- BeginDrawing();
- ClearBackground(RAYWHITE);
- exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "#198# PORTABLE WINDOW");
-
- DrawText(TextFormat("Mouse Position: [ %.0f, %.0f ]", mousePosition.x, mousePosition.y), 10, 40, 10, DARKGRAY);
- DrawText(TextFormat("Window Position: [ %.0f, %.0f ]", windowPosition.x, windowPosition.y), 10, 60, 10, DARKGRAY);
- EndDrawing();
- //----------------------------------------------------------------------------------
- }
- // De-Initialization
- //--------------------------------------------------------------------------------------
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
- return 0;
- }
|