mirror of
https://github.com/raysan5/raygui.git
synced 2026-01-28 09:49:18 -05:00
Multiple tool improvements
- Support loading tracemap images for reference (and corresponding controls) - Support linked anchors movement (and relink) - Hide/Unhide selected anchor-controls - New fancy help menu
This commit is contained in:
@ -15,7 +15,7 @@
|
|||||||
#define RAYGUI_STYLE_SAVE_LOAD
|
#define RAYGUI_STYLE_SAVE_LOAD
|
||||||
#include "raygui.h"
|
#include "raygui.h"
|
||||||
|
|
||||||
#include "easings.h"
|
#include "external/easings.h"
|
||||||
#include "external/tinyfiledialogs.h" // Open/Save file dialogs
|
#include "external/tinyfiledialogs.h" // Open/Save file dialogs
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -61,6 +61,7 @@ typedef struct {
|
|||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
bool enabled;
|
bool enabled;
|
||||||
|
bool hidding;
|
||||||
} AnchorPoint;
|
} AnchorPoint;
|
||||||
|
|
||||||
// Gui control type
|
// Gui control type
|
||||||
@ -123,9 +124,16 @@ int main()
|
|||||||
bool anchorLinkMode = false;
|
bool anchorLinkMode = false;
|
||||||
int selectedAnchor = -1;
|
int selectedAnchor = -1;
|
||||||
int linkedAnchor = -1;
|
int linkedAnchor = -1;
|
||||||
|
|
||||||
|
AnchorPoint auxAnchor = { 9, 0, 0, 0};
|
||||||
|
bool anchorNewPos = false;
|
||||||
|
|
||||||
bool lockMode = false;
|
bool lockMode = false;
|
||||||
bool helpMode = false;
|
|
||||||
|
int helpPosX = -300;
|
||||||
|
int helpCounter = 0;
|
||||||
|
int startPosXHelp = -300;
|
||||||
|
int deltaPosXHelp = 0;
|
||||||
|
|
||||||
int fileCount = 0;
|
int fileCount = 0;
|
||||||
char **droppedFiles = { 0 };
|
char **droppedFiles = { 0 };
|
||||||
@ -154,15 +162,15 @@ int main()
|
|||||||
|
|
||||||
// List view required variables
|
// List view required variables
|
||||||
Rectangle listViewControls = { -200, 0, 140, 500 };
|
Rectangle listViewControls = { -200, 0, 140, 500 };
|
||||||
int counterListViewControls = 0;
|
|
||||||
int startPosXListViewControls = -200;
|
|
||||||
int deltaPosXListViewControls = 0;
|
|
||||||
Rectangle listViewControlsCounter = { GetScreenWidth() + 140, 0, 140, 500 };
|
Rectangle listViewControlsCounter = { GetScreenWidth() + 140, 0, 140, 500 };
|
||||||
int counterListViewControlsCounter = 0;
|
int counterListViewControlsCounter = 0;
|
||||||
int startPosXListViewControlsCounter = GetScreenWidth() + 140;
|
int startPosXListViewControlsCounter = GetScreenWidth() + 140;
|
||||||
int deltaPosXListViewControlsCounter = 0;
|
int deltaPosXListViewControlsCounter = 0;
|
||||||
|
|
||||||
|
// ToggleGroup, ComboBox, DropdownBox use this data
|
||||||
const char *list[3] = { "ONE", "TWO", "THREE" };
|
const char *list[3] = { "ONE", "TWO", "THREE" };
|
||||||
|
|
||||||
|
|
||||||
const char *guiControls[18] = {
|
const char *guiControls[18] = {
|
||||||
"LABEL",
|
"LABEL",
|
||||||
@ -205,7 +213,12 @@ int main()
|
|||||||
};
|
};
|
||||||
|
|
||||||
Texture2D texture = LoadTexture("icons.png");
|
Texture2D texture = LoadTexture("icons.png");
|
||||||
Texture2D rfxgenLayout = LoadTexture("screenshot001.png");
|
Texture2D tracemap = { 0 };
|
||||||
|
Rectangle tracemapRec = { 0 };
|
||||||
|
bool tracemapEditMode = false;
|
||||||
|
float tracemapFade = 0.5f;
|
||||||
|
Vector2 panOffset = { 0 };
|
||||||
|
Vector2 prevPosition = { tracemapRec.x, tracemapRec.y };
|
||||||
|
|
||||||
// Initialize anchor points to default values
|
// Initialize anchor points to default values
|
||||||
for (int i = 0; i < MAX_ANCHOR_POINTS; i++)
|
for (int i = 0; i < MAX_ANCHOR_POINTS; i++)
|
||||||
@ -214,6 +227,7 @@ int main()
|
|||||||
anchors[i].x = 0;
|
anchors[i].x = 0;
|
||||||
anchors[i].y = 0;
|
anchors[i].y = 0;
|
||||||
anchors[i].enabled = false;
|
anchors[i].enabled = false;
|
||||||
|
anchors[i].hidding = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
anchors[0].enabled = true; // Enable anchors parent (0, 0)
|
anchors[0].enabled = true; // Enable anchors parent (0, 0)
|
||||||
@ -247,34 +261,35 @@ int main()
|
|||||||
if (CheckCollisionPointRec(GetMousePosition(), listViewControls)) controlCollision = true;
|
if (CheckCollisionPointRec(GetMousePosition(), listViewControls)) controlCollision = true;
|
||||||
else if (CheckCollisionPointRec(GetMousePosition(), listViewControlsCounter)) controlCollision = true;
|
else if (CheckCollisionPointRec(GetMousePosition(), listViewControlsCounter)) controlCollision = true;
|
||||||
|
|
||||||
/*
|
|
||||||
// Toggle on the controlListView
|
// Toggle on the controlListView
|
||||||
if (IsKeyPressed(KEY_TAB))
|
if (IsKeyPressed(KEY_TAB))
|
||||||
{
|
{
|
||||||
startPosXListViewControls = listViewControls.x;
|
startPosXHelp = helpPosX;
|
||||||
deltaPosXListViewControls = 0 - startPosXListViewControls;
|
deltaPosXHelp = 0 - startPosXHelp;
|
||||||
counterListViewControls = 0;
|
helpCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsKeyDown(KEY_TAB))
|
if (IsKeyDown(KEY_TAB))
|
||||||
{
|
{
|
||||||
counterListViewControls++;
|
helpCounter++;
|
||||||
if (counterListViewControls >= 60) counterListViewControls = 60;
|
if (helpCounter >= 60) helpCounter = 60;
|
||||||
listViewControls.x = (int)EaseCubicInOut(counterListViewControls, startPosXListViewControls, deltaPosXListViewControls, 60);
|
helpPosX = (int)EaseCubicInOut(helpCounter, startPosXHelp, deltaPosXHelp, 60);
|
||||||
}
|
}
|
||||||
else if (IsKeyReleased(KEY_TAB))
|
else if (IsKeyReleased(KEY_TAB))
|
||||||
{
|
{
|
||||||
startPosXListViewControls = listViewControls.x;
|
startPosXHelp = helpPosX;
|
||||||
deltaPosXListViewControls = -200 - startPosXListViewControls;
|
deltaPosXHelp = -300 - startPosXHelp;
|
||||||
counterListViewControls = 0;
|
helpCounter = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
counterListViewControls++;
|
helpCounter++;
|
||||||
if (counterListViewControls >= 60) counterListViewControls = 60;
|
if (helpCounter >= 60) helpCounter = 60;
|
||||||
listViewControls.x = (int)EaseCubicInOut(counterListViewControls, startPosXListViewControls, deltaPosXListViewControls, 60);
|
helpPosX = (int)EaseCubicInOut(helpCounter, startPosXHelp, deltaPosXHelp, 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
// Toggle on the controlListViewCounter
|
// Toggle on the controlListViewCounter
|
||||||
if (IsKeyPressed(KEY_W))
|
if (IsKeyPressed(KEY_W))
|
||||||
{
|
{
|
||||||
@ -303,7 +318,7 @@ int main()
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && (selectedControl == -1) && !controlCollision && !anchorMode)
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && (selectedControl == -1) && !controlCollision && !anchorMode && !tracemapEditMode)
|
||||||
{
|
{
|
||||||
// Add new control (button)
|
// Add new control (button)
|
||||||
layout[controlsCounter].id = controlsCounter;
|
layout[controlsCounter].id = controlsCounter;
|
||||||
@ -339,13 +354,13 @@ int main()
|
|||||||
// Check selected control (on mouse hover)
|
// Check selected control (on mouse hover)
|
||||||
for (int i = 0; i < controlsCounter; i++)
|
for (int i = 0; i < controlsCounter; i++)
|
||||||
{
|
{
|
||||||
if (controlDrag || lockMode) break;
|
if (controlDrag || lockMode || tracemapEditMode) break;
|
||||||
if ((layout[i].type == WINDOWBOX) && (CheckCollisionPointRec(GetMousePosition(), (Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, 24 })))
|
if ((layout[i].type == WINDOWBOX) && (!layout[i].ap->hidding) && (CheckCollisionPointRec(GetMousePosition(), (Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, 24 })))
|
||||||
{
|
{
|
||||||
selectedControl = i;
|
selectedControl = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (CheckCollisionPointRec(GetMousePosition(), (Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }) && layout[i].type != WINDOWBOX)
|
else if ((!layout[i].ap->hidding) && (CheckCollisionPointRec(GetMousePosition(), (Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }) && layout[i].type != WINDOWBOX))
|
||||||
{
|
{
|
||||||
selectedControl = i;
|
selectedControl = i;
|
||||||
break;
|
break;
|
||||||
@ -585,15 +600,10 @@ int main()
|
|||||||
textEditMode = true;
|
textEditMode = true;
|
||||||
saveControlSelected = selectedControl;
|
saveControlSelected = selectedControl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsKeyPressed(KEY_H) && !textEditMode) helpMode = !helpMode;
|
|
||||||
|
|
||||||
// Selected control lock logic
|
// Selected control lock logic
|
||||||
if (lockMode)
|
if (lockMode) selectedControl = saveControlSelected;
|
||||||
{
|
|
||||||
selectedControl = saveControlSelected;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsKeyPressed(KEY_SPACE) && !textEditMode && (selectedControl != -1) && !lockMode && !anchorMode)
|
if (IsKeyPressed(KEY_SPACE) && !textEditMode && (selectedControl != -1) && !lockMode && !anchorMode)
|
||||||
{
|
{
|
||||||
lockMode = true;
|
lockMode = true;
|
||||||
@ -658,17 +668,50 @@ int main()
|
|||||||
anchors[selectedAnchor].x = 0;
|
anchors[selectedAnchor].x = 0;
|
||||||
anchors[selectedAnchor].y = 0;
|
anchors[selectedAnchor].y = 0;
|
||||||
anchors[selectedAnchor].enabled = false;
|
anchors[selectedAnchor].enabled = false;
|
||||||
|
anchors[selectedAnchor].hidding = false;
|
||||||
anchorMode = false;
|
anchorMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allows to drag an anchor without losing collision
|
// Allows to drag an anchor without losing collision
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) controlDrag = true;
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && IsKeyDown(KEY_A))
|
||||||
|
{
|
||||||
|
controlDrag = true;
|
||||||
|
anchorNewPos = true;
|
||||||
|
|
||||||
|
for (int i = 0; i < controlsCounter; i++)
|
||||||
|
{
|
||||||
|
if (layout[i].ap->id == selectedAnchor)
|
||||||
|
{
|
||||||
|
layout[i].rec.x += layout[i].ap->x;
|
||||||
|
layout[i].rec.y += layout[i].ap->y;
|
||||||
|
layout[i].ap = &auxAnchor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) controlDrag = true;
|
||||||
|
|
||||||
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON))
|
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON))
|
||||||
{
|
{
|
||||||
|
if (anchorNewPos)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < controlsCounter; i++)
|
||||||
|
{
|
||||||
|
if (layout[i].ap->id == 9)
|
||||||
|
{
|
||||||
|
layout[i].rec.x += layout[i].ap->x;
|
||||||
|
layout[i].rec.y += layout[i].ap->y;
|
||||||
|
layout[i].ap = &anchors[selectedAnchor];
|
||||||
|
layout[i].rec.x -= anchors[selectedAnchor].x;
|
||||||
|
layout[i].rec.y -= anchors[selectedAnchor].y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
anchorNewPos = false;
|
||||||
|
}
|
||||||
controlDrag = false;
|
controlDrag = false;
|
||||||
selectedAnchor = -1;
|
selectedAnchor = -1;
|
||||||
anchorMode = false;
|
anchorMode = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Moves the anchor to the mouse position
|
// Moves the anchor to the mouse position
|
||||||
@ -700,6 +743,11 @@ int main()
|
|||||||
anchorLinkMode = false;
|
anchorLinkMode = false;
|
||||||
anchorMode = false;
|
anchorMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsKeyPressed(KEY_H))
|
||||||
|
{
|
||||||
|
anchors[selectedAnchor].hidding = !anchors[selectedAnchor].hidding;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -758,6 +806,16 @@ int main()
|
|||||||
|
|
||||||
if (IsFileExtension(name, ".rgl")) LoadLayoutRGL(name);
|
if (IsFileExtension(name, ".rgl")) LoadLayoutRGL(name);
|
||||||
else if (IsFileExtension(name, ".rgs")) GuiLoadStyle(name);
|
else if (IsFileExtension(name, ".rgs")) GuiLoadStyle(name);
|
||||||
|
else if (IsFileExtension(name, ".png"))
|
||||||
|
{
|
||||||
|
if (tracemap.id > 0) UnloadTexture(tracemap);
|
||||||
|
tracemap = LoadTexture(name);
|
||||||
|
|
||||||
|
SetTextureFilter(tracemap, FILTER_BILINEAR);
|
||||||
|
|
||||||
|
tracemapRec.width = tracemap.width;
|
||||||
|
tracemapRec.height = tracemap.height;
|
||||||
|
}
|
||||||
|
|
||||||
ClearDroppedFiles();
|
ClearDroppedFiles();
|
||||||
}
|
}
|
||||||
@ -802,6 +860,72 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_ENTER)) GenerateLayoutCode("test_layout.c");
|
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_ENTER)) GenerateLayoutCode("test_layout.c");
|
||||||
|
|
||||||
|
// Tracemap texture control logic
|
||||||
|
if (tracemap.id > 0)
|
||||||
|
{
|
||||||
|
// Toggles Texture editting mode between true or false
|
||||||
|
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_T)) tracemapEditMode = !tracemapEditMode;
|
||||||
|
|
||||||
|
if (tracemapEditMode)
|
||||||
|
{
|
||||||
|
int offsetX = mouseX%GRID_LINE_SPACING;
|
||||||
|
int offsetY = mouseY%GRID_LINE_SPACING;
|
||||||
|
|
||||||
|
// Moves the texture with the mouse
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) panOffset = (Vector2){ mouseX, mouseY };
|
||||||
|
|
||||||
|
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
|
||||||
|
{
|
||||||
|
if (snapMode)
|
||||||
|
{
|
||||||
|
if (offsetX >= GRID_LINE_SPACING/2) mouseX += (GRID_LINE_SPACING - offsetX);
|
||||||
|
else mouseX -= offsetX;
|
||||||
|
|
||||||
|
if (offsetY >= GRID_LINE_SPACING/2) mouseY += (GRID_LINE_SPACING - offsetY);
|
||||||
|
else mouseY -= offsetY;
|
||||||
|
}
|
||||||
|
|
||||||
|
tracemapRec.x = prevPosition.x + (mouseX - panOffset.x);
|
||||||
|
tracemapRec.y = prevPosition.y + (mouseY - panOffset.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) prevPosition = (Vector2){ tracemapRec.x, tracemapRec.y };
|
||||||
|
|
||||||
|
// Moves and scales the texture with snap.
|
||||||
|
if (IsKeyDown(KEY_LEFT_CONTROL))
|
||||||
|
{
|
||||||
|
tracemapRec.height -= GetMouseWheelMove();
|
||||||
|
tracemapRec.width -= GetMouseWheelMove();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tracemapRec.height -= 10*GetMouseWheelMove();
|
||||||
|
tracemapRec.width -= 10*GetMouseWheelMove();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
tracemap.height = tracemapRec.height;
|
||||||
|
tracemap.width = tracemapRec.width;
|
||||||
|
|
||||||
|
// Change texture fade
|
||||||
|
if (IsKeyDown(KEY_LEFT)) tracemapFade-= 0.01f;
|
||||||
|
else if (IsKeyDown(KEY_RIGHT)) tracemapFade+=0.01f;
|
||||||
|
|
||||||
|
if (tracemapFade < 0) tracemapFade = 0;
|
||||||
|
else if (tracemapFade > 1) tracemapFade = 1;
|
||||||
|
|
||||||
|
// Deletes the texture and resets it
|
||||||
|
if (IsKeyPressed(KEY_DELETE))
|
||||||
|
{
|
||||||
|
UnloadTexture(tracemap);
|
||||||
|
tracemap.id = 0;
|
||||||
|
tracemapEditMode = false;
|
||||||
|
tracemapRec.x = 0;
|
||||||
|
tracemapRec.y = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
@ -812,41 +936,45 @@ int main()
|
|||||||
|
|
||||||
if (showGrid) DrawGrid2D(GetScreenWidth()/13, GetScreenHeight()/13);
|
if (showGrid) DrawGrid2D(GetScreenWidth()/13, GetScreenHeight()/13);
|
||||||
|
|
||||||
DrawTexture(rfxgenLayout, 100, 50, Fade(WHITE, 0.6f));
|
if (tracemap.id > 0) DrawTexture(tracemap, tracemapRec.x, tracemapRec.y, Fade(WHITE, tracemapFade));
|
||||||
|
|
||||||
for (int i = 0; i < controlsCounter; i++)
|
for (int i = 0; i < controlsCounter; i++)
|
||||||
{
|
{
|
||||||
// Draws the Controls when placed on the grid.
|
// Draws the Controls when placed on the grid.
|
||||||
switch (layout[i].type)
|
if (!layout[i].ap->hidding)
|
||||||
{
|
{
|
||||||
case LABEL: GuiLabel((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
switch (layout[i].type)
|
||||||
case BUTTON: GuiButton((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
{
|
||||||
case IMAGEBUTTON: GuiImageButtonEx((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, texture, (Rectangle){ 0, 0, texture.width/3, texture.height/6 }, layout[i].text); break;
|
case LABEL: GuiLabel((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
||||||
case TOGGLE: GuiToggleButton((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text, false); break;
|
case BUTTON: GuiButton((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
||||||
case TOGGLEGROUP: GuiToggleGroup((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, list, 3, 1); break;
|
case IMAGEBUTTON: GuiImageButtonEx((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, texture, (Rectangle){ 0, 0, texture.width/3, texture.height/6 }, layout[i].text); break;
|
||||||
case SLIDER: GuiSlider((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
case TOGGLE: GuiToggleButton((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text, false); break;
|
||||||
case SLIDERBAR: GuiSliderBar((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
case TOGGLEGROUP: GuiToggleGroup((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, list, 3, 1); break;
|
||||||
case PROGRESSBAR: GuiProgressBar((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
case SLIDER: GuiSlider((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
||||||
case SPINNER: GuiSpinner((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
case SLIDERBAR: GuiSliderBar((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
||||||
case COMBOBOX: GuiComboBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, list, 3, 1); break;
|
case PROGRESSBAR: GuiProgressBar((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
||||||
case CHECKBOX: GuiCheckBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, false); break;
|
case SPINNER: GuiSpinner((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, 40, 0, 100); break;
|
||||||
case TEXTBOX: GuiTextBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text, 32); break;
|
case COMBOBOX: GuiComboBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, list, 3, 1); break;
|
||||||
case GROUPBOX: GuiGroupBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
case CHECKBOX: GuiCheckBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, false); break;
|
||||||
case WINDOWBOX: GuiWindowBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
case TEXTBOX: GuiTextBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text, 32); break;
|
||||||
case DUMMYREC: GuiDummyRec((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
case GROUPBOX: GuiGroupBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
||||||
case STATUSBAR: GuiStatusBar((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text, 15); break;
|
case WINDOWBOX: GuiWindowBox((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
||||||
case LISTVIEW: GuiListView((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, guiControls, 14, 1); break;
|
case DUMMYREC: GuiDummyRec((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text); break;
|
||||||
case COLORPICKER: GuiColorPicker((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, RED); break;
|
case STATUSBAR: GuiStatusBar((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, layout[i].text, 15); break;
|
||||||
default: break;
|
case LISTVIEW: GuiListView((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, guiControls, 14, 1); break;
|
||||||
|
case COLORPICKER: GuiColorPicker((Rectangle){ layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, layout[i].rec.width, layout[i].rec.height }, RED); break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((layout[i].ap->id == selectedAnchor) && (layout[i].ap->id > 0)) DrawLine(layout[i].ap->x, layout[i].ap->y, layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, RED);
|
||||||
}
|
}
|
||||||
|
else if ((layout[i].ap->id == selectedAnchor) && (layout[i].ap->id > 0)) DrawLine(layout[i].ap->x, layout[i].ap->y, layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, BLUE);
|
||||||
if ((layout[i].ap->id == selectedAnchor) && (layout[i].ap->id > 0)) DrawLine(layout[i].ap->x, layout[i].ap->y, layout[i].ap->x + layout[i].rec.x, layout[i].ap->y + layout[i].rec.y, RED);
|
|
||||||
// Draw Control anchor information
|
// Draw Control anchor information
|
||||||
// DrawText(FormatText("Id: %i | X: %i | Y: %i | Enabled: %i", layout[0].ap->id, layout[0].ap->x, layout[0].ap->y, layout[0].ap->enabled), 100, 100, style[DEFAULT_TEXT_SIZE], RED);
|
// DrawText(FormatText("Id: %i | X: %i | Y: %i | Enabled: %i", layout[0].ap->id, layout[0].ap->x, layout[0].ap->y, layout[0].ap->enabled), 100, 100, style[DEFAULT_TEXT_SIZE], RED);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draws the defaultRec[selectedType] of the control selected
|
// Draws the defaultRec[selectedType] of the control selected
|
||||||
if (selectedControl == -1 && !anchorMode)
|
if (selectedControl == -1 && !anchorMode && !tracemapEditMode)
|
||||||
{
|
{
|
||||||
switch (selectedTypeDraw)
|
switch (selectedTypeDraw)
|
||||||
{
|
{
|
||||||
@ -871,6 +999,12 @@ int main()
|
|||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw the tracemap controler
|
||||||
|
if (tracemapEditMode)
|
||||||
|
{
|
||||||
|
DrawRectangleLines(tracemapRec.x, tracemapRec.y, tracemapRec.width, tracemapRec.height, RED);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Draw the list of controls
|
// Draw the list of controls
|
||||||
@ -885,16 +1019,48 @@ int main()
|
|||||||
// Draw the anchorPoints
|
// Draw the anchorPoints
|
||||||
for (int i = 1; i < MAX_ANCHOR_POINTS; i++)
|
for (int i = 1; i < MAX_ANCHOR_POINTS; i++)
|
||||||
{
|
{
|
||||||
if (anchors[i].id == selectedAnchor) DrawCircle(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(RED, 0.5f));
|
if (anchors[i].id == selectedAnchor && anchorNewPos)
|
||||||
else DrawCircleLines(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(RED, 0.5f));
|
{
|
||||||
DrawRectangle(anchors[i].x - ANCHOR_RADIUS - 5, anchors[i].y, ANCHOR_RADIUS*2 + 10, 1, RED);
|
// Draw the anchor that is currently moving
|
||||||
DrawRectangle(anchors[i].x, anchors[i].y - ANCHOR_RADIUS - 5, 1, ANCHOR_RADIUS*2 + 10, RED);
|
DrawCircle(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(ORANGE, 0.5f));
|
||||||
|
DrawRectangle(anchors[i].x - ANCHOR_RADIUS - 5, anchors[i].y, ANCHOR_RADIUS*2 + 10, 1, ORANGE);
|
||||||
|
DrawRectangle(anchors[i].x, anchors[i].y - ANCHOR_RADIUS - 5, 1, ANCHOR_RADIUS*2 + 10, ORANGE);
|
||||||
|
}
|
||||||
|
else if (anchors[i].hidding && anchors[i].id == selectedAnchor)
|
||||||
|
{
|
||||||
|
// Draw idle anchor
|
||||||
|
DrawCircle(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(BLUE, 0.5f));
|
||||||
|
DrawRectangle(anchors[i].x - ANCHOR_RADIUS - 5, anchors[i].y, ANCHOR_RADIUS*2 + 10, 1, BLUE);
|
||||||
|
DrawRectangle(anchors[i].x, anchors[i].y - ANCHOR_RADIUS - 5, 1, ANCHOR_RADIUS*2 + 10, BLUE);
|
||||||
|
}
|
||||||
|
else if (anchors[i].id == selectedAnchor)
|
||||||
|
{
|
||||||
|
// Draw the selected anchor
|
||||||
|
DrawCircle(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(RED, 0.5f));
|
||||||
|
DrawRectangle(anchors[i].x - ANCHOR_RADIUS - 5, anchors[i].y, ANCHOR_RADIUS*2 + 10, 1, RED);
|
||||||
|
DrawRectangle(anchors[i].x, anchors[i].y - ANCHOR_RADIUS - 5, 1, ANCHOR_RADIUS*2 + 10, RED);
|
||||||
|
}
|
||||||
|
else if (anchors[i].hidding)
|
||||||
|
{
|
||||||
|
// Draw idle anchor
|
||||||
|
DrawCircleLines(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(BLUE, 0.5f));
|
||||||
|
DrawRectangle(anchors[i].x - ANCHOR_RADIUS - 5, anchors[i].y, ANCHOR_RADIUS*2 + 10, 1, BLUE);
|
||||||
|
DrawRectangle(anchors[i].x, anchors[i].y - ANCHOR_RADIUS - 5, 1, ANCHOR_RADIUS*2 + 10, BLUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Draw idle anchor
|
||||||
|
DrawCircleLines(anchors[i].x, anchors[i].y, ANCHOR_RADIUS, Fade(RED, 0.5f));
|
||||||
|
DrawRectangle(anchors[i].x - ANCHOR_RADIUS - 5, anchors[i].y, ANCHOR_RADIUS*2 + 10, 1, RED);
|
||||||
|
DrawRectangle(anchors[i].x, anchors[i].y - ANCHOR_RADIUS - 5, 1, ANCHOR_RADIUS*2 + 10, RED);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((selectedControl != -1) && (selectedControl < controlsCounter))
|
if ((selectedControl != -1) && (selectedControl < controlsCounter))
|
||||||
{
|
{
|
||||||
DrawRectangleRec((Rectangle){ layout[selectedControl].ap->x + layout[selectedControl].rec.x, layout[selectedControl].ap->y + layout[selectedControl].rec.y, layout[selectedControl].rec.width, layout[selectedControl].rec.height }, Fade(RED, 0.5f));
|
DrawRectangleRec((Rectangle){ layout[selectedControl].ap->x + layout[selectedControl].rec.x, layout[selectedControl].ap->y + layout[selectedControl].rec.y, layout[selectedControl].rec.width, layout[selectedControl].rec.height }, Fade(RED, 0.5f));
|
||||||
if (layout[selectedControl].ap->id > 0) DrawLine(layout[selectedControl].ap->x, layout[selectedControl].ap->y, layout[selectedControl].ap->x + layout[selectedControl].rec.x, layout[selectedControl].ap->y + layout[selectedControl].rec.y, RED);
|
if (layout[selectedControl].ap->id > 0 && !layout[selectedControl].ap->hidding) DrawLine(layout[selectedControl].ap->x, layout[selectedControl].ap->y, layout[selectedControl].ap->x + layout[selectedControl].rec.x, layout[selectedControl].ap->y + layout[selectedControl].rec.y, RED);
|
||||||
|
else if (layout[selectedControl].ap->id > 0 && layout[selectedControl].ap->hidding) DrawLine(layout[selectedControl].ap->x, layout[selectedControl].ap->y, layout[selectedControl].ap->x + layout[selectedControl].rec.x, layout[selectedControl].ap->y + layout[selectedControl].rec.y, BLUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((selectedControl == -1) && (selectedAnchor == -1))
|
if ((selectedControl == -1) && (selectedAnchor == -1))
|
||||||
@ -927,35 +1093,34 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (anchorLinkMode) DrawLine(anchors[linkedAnchor].x, anchors[linkedAnchor].y, mouseX, mouseY, BLACK);
|
if (anchorLinkMode) DrawLine(anchors[linkedAnchor].x, anchors[linkedAnchor].y, mouseX, mouseY, BLACK);
|
||||||
|
|
||||||
if (helpMode)
|
// Draw the help list
|
||||||
{
|
DrawRectangleRec((Rectangle){ helpPosX + 20, 20, 260, 350 }, GetColor(style[DEFAULT_BACKGROUND_COLOR]));
|
||||||
DrawRectangleRec((Rectangle){ 20, 20, 260, 330 }, GetColor(style[DEFAULT_BACKGROUND_COLOR]));
|
GuiGroupBox((Rectangle){ helpPosX + 20, 20, 260, 350 }, "Shortcuts");
|
||||||
GuiGroupBox((Rectangle){ 20, 20, 260, 330 }, "Shortcuts");
|
GuiLabel((Rectangle){ helpPosX + 30, 30, 0, 0 }, "G - Show/hide grid");
|
||||||
GuiLabel((Rectangle){ 30, 30, 0, 0 }, "G - Show/hide grid");
|
GuiLabel((Rectangle){ helpPosX + 30, 50, 0, 0 }, "S - Toggle snap");
|
||||||
GuiLabel((Rectangle){ 30, 50, 0, 0 }, "S - Toggle snap");
|
GuiLabel((Rectangle){ helpPosX + 30, 70, 0, 0 }, "R - Resize to grid");
|
||||||
GuiLabel((Rectangle){ 30, 70, 0, 0 }, "R - Resize to grid");
|
GuiLabel((Rectangle){ helpPosX + 30, 90, 0, 0 }, "A - Anchor mode");
|
||||||
GuiLabel((Rectangle){ 30, 90, 0, 0 }, "A - Anchor mode");
|
GuiLabel((Rectangle){ helpPosX + 30, 110, 0, 0 }, "H - Hide controls of selected anchor");
|
||||||
GuiLabel((Rectangle){ 30, 110, 0, 0 }, "U - Unlink anchor");
|
GuiLabel((Rectangle){ helpPosX + 30, 130, 0, 0 }, "U - Unlink anchor");
|
||||||
GuiLabel((Rectangle){ 30, 130, 0, 0 }, "Space - Lock/unlock control");
|
GuiLabel((Rectangle){ helpPosX + 30, 150, 0, 0 }, "Space - Lock/unlock control");
|
||||||
GuiLabel((Rectangle){ 30, 150, 0, 0 }, "T - Enter text mode(if possible)");
|
GuiLabel((Rectangle){ helpPosX + 30, 170, 0, 0 }, "T - Enter text mode(if possible)");
|
||||||
GuiLabel((Rectangle){ 30, 170, 0, 0 }, "Enter - Exit text mode");
|
GuiLabel((Rectangle){ helpPosX + 30, 190, 0, 0 }, "Enter - Exit text mode");
|
||||||
GuiLabel((Rectangle){ 30, 190, 0, 0 }, "Delete - Delete a control");
|
GuiLabel((Rectangle){ helpPosX + 30, 210, 0, 0 }, "Delete - Delete a control");
|
||||||
GuiLabel((Rectangle){ 30, 210, 0, 0 }, "Arrows - Modify width/height");
|
GuiLabel((Rectangle){ helpPosX + 30, 230, 0, 0 }, "Arrows - Modify width/height");
|
||||||
GuiLabel((Rectangle){ 30, 230, 0, 0 }, "L. Ctrl + Arrows - Modify width/height(smooth)");
|
GuiLabel((Rectangle){ helpPosX + 30, 250, 0, 0 }, "L. Ctrl + Arrows - Modify width/height(smooth)");
|
||||||
GuiLabel((Rectangle){ 30, 250, 0, 0 }, "L. Alt + Arrows - Modify position");
|
GuiLabel((Rectangle){ helpPosX + 30, 270, 0, 0 }, "L. Alt + Arrows - Modify position");
|
||||||
GuiLabel((Rectangle){ 30, 270, 0, 0 }, "L. Ctrl + Enter - Export layout to code");
|
GuiLabel((Rectangle){ helpPosX + 30, 290, 0, 0 }, "L. Ctrl + Enter - Export layout to code");
|
||||||
GuiLabel((Rectangle){ 30, 290, 0, 0 }, "L. Ctrl + S - Save layout(.rgl)");
|
GuiLabel((Rectangle){ helpPosX + 30, 310, 0, 0 }, "L. Ctrl + S - Save layout(.rgl)");
|
||||||
GuiLabel((Rectangle){ 30, 310, 0, 0 }, "L. Ctrl + O - Open layout(.rgl)");
|
GuiLabel((Rectangle){ helpPosX + 30, 330, 0, 0 }, "L. Ctrl + O - Open layout(.rgl)");
|
||||||
GuiLabel((Rectangle){ 30, 330, 0, 0 }, "L. Ctrl + D - Duplicate selected control");
|
GuiLabel((Rectangle){ helpPosX + 30, 350, 0, 0 }, "L. Ctrl + D - Duplicate selected control");
|
||||||
}
|
|
||||||
|
|
||||||
// Draw status bar bottom with debug information
|
// Draw status bar bottom with debug information
|
||||||
GuiStatusBar((Rectangle){ 0, GetScreenHeight() - 24, 125, 24}, FormatText("Controls count: %i", controlsCounter), 20);
|
GuiStatusBar((Rectangle){ 0, GetScreenHeight() - 24, 125, 24}, FormatText("Controls count: %i", controlsCounter), 20);
|
||||||
GuiStatusBar((Rectangle){ 124, GetScreenHeight() - 24, 126, 24}, FormatText("Mouse: (%i, %i)", mouseX, mouseY), 15);
|
GuiStatusBar((Rectangle){ 124, GetScreenHeight() - 24, 126, 24}, FormatText("Mouse: (%i, %i)", mouseX, mouseY), 15);
|
||||||
if (snapMode) GuiStatusBar((Rectangle){ 249, GetScreenHeight() - 24, 81, 24}, "SNAP ON", 10);
|
if (snapMode) GuiStatusBar((Rectangle){ 249, GetScreenHeight() - 24, 81, 24}, "SNAP ON", 10);
|
||||||
else GuiStatusBar((Rectangle){ 249, GetScreenHeight() - 24, 81, 24}, "SNAP OFF", 10);
|
else GuiStatusBar((Rectangle){ 249, GetScreenHeight() - 24, 81, 24}, "SNAP OFF", 10);
|
||||||
GuiStatusBar((Rectangle){ 329, GetScreenHeight() - 24, 80, 24}, "H - Help", 10);
|
GuiStatusBar((Rectangle){ 329, GetScreenHeight() - 24, 80, 24}, "Tab - Help", 10);
|
||||||
GuiStatusBar((Rectangle){ 400, GetScreenHeight() - 24, GetScreenWidth() - 400, 24}, FormatText("Selected Control: %s (%i, %i, %i, %i)", controlTypeName[selectedType], layout[selectedControl].rec.x, layout[selectedControl].rec.y, layout[selectedControl].rec.width, layout[selectedControl].rec.height), 15);
|
GuiStatusBar((Rectangle){ 400, GetScreenHeight() - 24, GetScreenWidth() - 400, 24}, FormatText("Selected Control: %s (%i, %i, %i, %i)", controlTypeName[selectedType], layout[selectedControl].rec.x, layout[selectedControl].rec.y, layout[selectedControl].rec.width, layout[selectedControl].rec.height), 15);
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
@ -965,7 +1130,7 @@ int main()
|
|||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
UnloadTexture(texture);
|
UnloadTexture(texture);
|
||||||
UnloadTexture(rfxgenLayout);
|
UnloadTexture(tracemap);
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,96 +0,0 @@
|
|||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* $(tool_name) - $(tool_description)
|
|
||||||
*
|
|
||||||
* LICENSE: zlib/libpng
|
|
||||||
*
|
|
||||||
* Copyright (c) $(year) $(author)
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#include "raylib.h"
|
|
||||||
|
|
||||||
#define RAYGUI_IMPLEMENTATION
|
|
||||||
#include "raygui.h"
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Controls Functions Declaration
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
static void Button000();
|
|
||||||
static void Button001();
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
// Program main entry point
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "rFXGen");
|
|
||||||
|
|
||||||
Rectangle layoutRecs[12] = {
|
|
||||||
(Rectangle){ 100, 50, 100, 30 }, // BUTTON 000
|
|
||||||
(Rectangle){ 100, 100, 150, 30 }, // BUTTON 001
|
|
||||||
(Rectangle){ 100, 150, 100, 30 }, // LABEL 002
|
|
||||||
(Rectangle){ 100, 190, 100, 30 }, // TOGGLE 003
|
|
||||||
(Rectangle){ 100, 240, 90, 30 }, // TOGGLEGROUP 004
|
|
||||||
(Rectangle){ 100, 290, 300, 20 }, // SLIDER 005
|
|
||||||
(Rectangle){ 100, 330, 250, 20 }, // PROGRESSBAR 006
|
|
||||||
(Rectangle){ 350, 50, 150, 30 }, // SPINNER 007
|
|
||||||
(Rectangle){ 350, 100, 120, 30 }, // COMBOBOX 008
|
|
||||||
(Rectangle){ 420, 160, 20, 20 }, // CHECKBOX 009
|
|
||||||
(Rectangle){ 420, 210, 20, 20 }, // CHECKBOX 010
|
|
||||||
(Rectangle){ 450, 250, 150, 30 } // TEXTBOX 011
|
|
||||||
};
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// TODO: Implement required update logic
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(GuiBackground());
|
|
||||||
|
|
||||||
if (GuiButton(layoutRecs[0], "BUTTON")) Button000();
|
|
||||||
|
|
||||||
if (GuiButton(layoutRecs[1], "BUTTON")) Button001();
|
|
||||||
|
|
||||||
GuiLabel(layoutRecs[2], "TEXT SAMPLE");
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
// Controls Functions Definitions (local)
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
static void Button000()
|
|
||||||
{
|
|
||||||
// TODO: Implement control logic
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Button001()
|
|
||||||
{
|
|
||||||
// TODO: Implement control logic
|
|
||||||
}
|
|
||||||
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 21 KiB |
Binary file not shown.
@ -1,38 +0,0 @@
|
|||||||
# Num Controls : 12
|
|
||||||
|
|
||||||
# Control 000 : BUTTON
|
|
||||||
type 1 rec 100 50 100 30
|
|
||||||
|
|
||||||
# Control 001 : BUTTON
|
|
||||||
type 1 rec 100 100 150 30
|
|
||||||
|
|
||||||
# Control 002 : LABEL
|
|
||||||
type 0 rec 100 150 100 30
|
|
||||||
|
|
||||||
# Control 003 : TOGGLE
|
|
||||||
type 2 rec 100 190 100 30
|
|
||||||
|
|
||||||
# Control 004 : TOGGLEGROUP
|
|
||||||
type 3 rec 100 240 90 30
|
|
||||||
|
|
||||||
# Control 005 : SLIDER
|
|
||||||
type 4 rec 100 290 300 20
|
|
||||||
|
|
||||||
# Control 006 : PROGRESSBAR
|
|
||||||
type 6 rec 100 330 250 20
|
|
||||||
|
|
||||||
# Control 007 : SPINNER
|
|
||||||
type 7 rec 350 50 150 30
|
|
||||||
|
|
||||||
# Control 008 : COMBOBOX
|
|
||||||
type 8 rec 350 100 120 30
|
|
||||||
|
|
||||||
# Control 009 : CHECKBOX
|
|
||||||
type 9 rec 420 160 20 20
|
|
||||||
|
|
||||||
# Control 010 : CHECKBOX
|
|
||||||
type 9 rec 420 210 20 20
|
|
||||||
|
|
||||||
# Control 011 : TEXTBOX
|
|
||||||
type 10 rec 450 250 150 30
|
|
||||||
|
|
||||||
BIN
tools/rGuiLayout/tracemap_menus.png
Normal file
BIN
tools/rGuiLayout/tracemap_menus.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
BIN
tools/rGuiLayout/tracemap_rfxgen.png
Normal file
BIN
tools/rGuiLayout/tracemap_rfxgen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
Reference in New Issue
Block a user