Update actions
This commit is contained in:
parent
b681b7890d
commit
5dcd22c1f8
99 changed files with 4 additions and 1 deletions
|
@ -1,286 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
gui "github.com/gen2brain/raylib-go/raygui"
|
||||
rl "github.com/gen2brain/raylib-go/raylib"
|
||||
)
|
||||
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - controls test suite
|
||||
*
|
||||
* TEST CONTROLS:
|
||||
* - gui.DropdownBox()
|
||||
* - gui.CheckBox()
|
||||
* - gui.Spinner()
|
||||
* - gui.ValueBox()
|
||||
* - gui.TextBox()
|
||||
* - gui.Button()
|
||||
* - gui.ComboBox()
|
||||
* - gui.ListView()
|
||||
* - gui.ToggleGroup()
|
||||
* - gui.TextBoxMulti()
|
||||
* - gui.ColorPicker()
|
||||
* - gui.Slider()
|
||||
* - gui.SliderBar()
|
||||
* - gui.ProgressBar()
|
||||
* - gui.ColorBarAlpha()
|
||||
* - gui.ScrollPanel()
|
||||
*
|
||||
*
|
||||
* DEPENDENCIES:
|
||||
* raylib 4.0 - Windowing/input management and drawing.
|
||||
* raygui 3.2 - 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-2022 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
//#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory
|
||||
//#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool
|
||||
|
||||
// ------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
// ------------------------------------------------------------------------------------
|
||||
func main() {
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const (
|
||||
screenWidth = 690
|
||||
screenHeight = 560
|
||||
)
|
||||
|
||||
rl.InitWindow(screenWidth, screenHeight, "raygui - controls test suite")
|
||||
rl.SetExitKey(0)
|
||||
|
||||
// GUI controls initialization
|
||||
//----------------------------------------------------------------------------------
|
||||
var (
|
||||
dropdownBox000Active int32 = 0
|
||||
dropDown000EditMode bool = false
|
||||
|
||||
dropdownBox001Active int32 = 0
|
||||
dropDown001EditMode bool = false
|
||||
|
||||
spinner001Value int32 = 0
|
||||
spinnerEditMode bool = false
|
||||
|
||||
valueBox002Value int32 = 0
|
||||
valueBoxEditMode bool = false
|
||||
|
||||
textBoxText = "Text box"
|
||||
textBoxEditMode bool = false
|
||||
|
||||
listViewScrollIndex int32 = 0
|
||||
listViewActive int32 = -1
|
||||
|
||||
listViewExScrollIndex int32 = 0
|
||||
listViewExActive int32 = 2
|
||||
listViewExFocus int32 = -1
|
||||
listViewExList = []string{"This", "is", "a", "list view", "with", "disable", "elements", "amazing!"}
|
||||
|
||||
multiTextBoxText = "Multi text box"
|
||||
multiTextBoxEditMode bool = false
|
||||
colorPickerValue = rl.Red
|
||||
|
||||
sliderValue float32 = 50
|
||||
sliderBarValue float32 = 60
|
||||
progressValue float32 = 0.4
|
||||
|
||||
forceSquaredChecked bool = false
|
||||
|
||||
alphaValue float32 = 0.5
|
||||
|
||||
comboBoxActive int32 = 1
|
||||
|
||||
toggleGroupActive int32 = 0
|
||||
|
||||
// TODO viewScroll = rl.Vector2{0, 0}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Custom GUI font loading
|
||||
//Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0);
|
||||
//GuiSetFont(font);
|
||||
|
||||
exitWindow bool = false
|
||||
showMessageBox bool = false
|
||||
|
||||
textInput string
|
||||
showTextInputBox bool = false
|
||||
|
||||
// TODO textInputFileName string
|
||||
)
|
||||
|
||||
rl.SetTargetFPS(60)
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
for !exitWindow { // Detect window close button or ESC key
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
exitWindow = rl.WindowShouldClose()
|
||||
|
||||
if rl.IsKeyPressed(rl.KeyEscape) {
|
||||
showMessageBox = !showMessageBox
|
||||
}
|
||||
|
||||
if rl.IsKeyDown(rl.KeyLeftControl) && rl.IsKeyPressed(rl.KeyS) {
|
||||
showTextInputBox = true
|
||||
}
|
||||
|
||||
// TODO if rl.IsFileDropped() {
|
||||
// TODO var droppedFiles gui.FilePathList = rl.LoadDroppedFiles()
|
||||
// TODO if (droppedFiles.count > 0) && rl.IsFileExtension(droppedFiles.paths[0], ".rgs") {
|
||||
// TODO gui.LoadStyle(droppedFiles.paths[0])
|
||||
// TODO }
|
||||
// TODO rl.UnloadDroppedFiles(droppedFiles) // Clear internal buffers
|
||||
// TODO }
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
rl.BeginDrawing()
|
||||
|
||||
rl.ClearBackground(rl.GetColor(uint(gui.GetStyle(gui.DEFAULT, gui.BACKGROUND_COLOR))))
|
||||
|
||||
// raygui: controls drawing
|
||||
//----------------------------------------------------------------------------------
|
||||
if dropDown000EditMode || dropDown001EditMode {
|
||||
gui.Lock()
|
||||
} else if !dropDown000EditMode && !dropDown001EditMode {
|
||||
gui.Unlock()
|
||||
}
|
||||
//GuiDisable();
|
||||
|
||||
// First GUI column
|
||||
//GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
forceSquaredChecked = gui.CheckBox(rl.Rectangle{25, 108, 15, 15}, "FORCE CHECK!", forceSquaredChecked)
|
||||
|
||||
gui.SetStyle(gui.TEXTBOX, gui.TEXT_ALIGNMENT, gui.TEXT_ALIGN_CENTER)
|
||||
//GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
if gui.Spinner(rl.Rectangle{25, 135, 125, 30}, "", &spinner001Value, 0, 100, spinnerEditMode) {
|
||||
spinnerEditMode = !spinnerEditMode
|
||||
}
|
||||
if gui.ValueBox(rl.Rectangle{25, 175, 125, 30}, "", &valueBox002Value, 0, 100, valueBoxEditMode) {
|
||||
valueBoxEditMode = !valueBoxEditMode
|
||||
}
|
||||
gui.SetStyle(gui.TEXTBOX, gui.TEXT_ALIGNMENT, gui.TEXT_ALIGN_LEFT)
|
||||
if gui.TextBox(rl.Rectangle{25, 215, 125, 30}, &textBoxText, 64, textBoxEditMode) {
|
||||
textBoxEditMode = !textBoxEditMode
|
||||
}
|
||||
|
||||
gui.SetStyle(gui.BUTTON, gui.TEXT_ALIGNMENT, gui.TEXT_ALIGN_CENTER)
|
||||
|
||||
if gui.Button(rl.Rectangle{25, 255, 125, 30}, gui.IconText(gui.ICON_FILE_SAVE, "Save File")) {
|
||||
showTextInputBox = true
|
||||
}
|
||||
|
||||
gui.GroupBox(rl.Rectangle{25, 310, 125, 150}, "STATES")
|
||||
//GuiLock();
|
||||
gui.SetState(gui.STATE_NORMAL)
|
||||
if gui.Button(rl.Rectangle{30, 320, 115, 30}, "NORMAL") {
|
||||
}
|
||||
gui.SetState(gui.STATE_FOCUSED)
|
||||
if gui.Button(rl.Rectangle{30, 355, 115, 30}, "FOCUSED") {
|
||||
}
|
||||
gui.SetState(gui.STATE_PRESSED)
|
||||
if gui.Button(rl.Rectangle{30, 390, 115, 30}, "#15#PRESSED") {
|
||||
}
|
||||
gui.SetState(gui.STATE_DISABLED)
|
||||
if gui.Button(rl.Rectangle{30, 425, 115, 30}, "DISABLED") {
|
||||
}
|
||||
gui.SetState(gui.STATE_NORMAL)
|
||||
//GuiUnlock();
|
||||
|
||||
comboBoxActive = gui.ComboBox(rl.Rectangle{25, 470, 125, 30}, "ONE;TWO;THREE;FOUR", comboBoxActive)
|
||||
|
||||
// NOTE: gui.DropdownBox must draw after any other control that can be covered on unfolding
|
||||
gui.SetStyle(gui.DROPDOWNBOX, gui.TEXT_ALIGNMENT, gui.TEXT_ALIGN_LEFT)
|
||||
if gui.DropdownBox(rl.Rectangle{25, 65, 125, 30}, "#01#ONE;#02#TWO;#03#THREE;#04#FOUR", &dropdownBox001Active, dropDown001EditMode) {
|
||||
dropDown001EditMode = !dropDown001EditMode
|
||||
}
|
||||
|
||||
gui.SetStyle(gui.DROPDOWNBOX, gui.TEXT_ALIGNMENT, gui.TEXT_ALIGN_CENTER)
|
||||
if gui.DropdownBox(rl.Rectangle{25, 25, 125, 30}, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode) {
|
||||
dropDown000EditMode = !dropDown000EditMode
|
||||
}
|
||||
|
||||
// Second GUI column
|
||||
listViewActive = gui.ListView(rl.Rectangle{165, 25, 140, 140}, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, listViewActive)
|
||||
listViewExActive = gui.ListViewEx(rl.Rectangle{165, 180, 140, 200}, listViewExList, &listViewExFocus, &listViewExScrollIndex, listViewExActive)
|
||||
|
||||
toggleGroupActive = gui.ToggleGroup(rl.Rectangle{165, 400, 140, 25}, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", toggleGroupActive)
|
||||
|
||||
// Third GUI column
|
||||
if gui.TextBoxMulti(rl.Rectangle{320, 25, 225, 140}, &multiTextBoxText, 256, multiTextBoxEditMode) {
|
||||
multiTextBoxEditMode = !multiTextBoxEditMode
|
||||
}
|
||||
colorPickerValue = gui.ColorPicker(rl.Rectangle{320, 185, 196, 192}, "", colorPickerValue)
|
||||
|
||||
sliderValue = gui.Slider(rl.Rectangle{355, 400, 165, 20}, "TEST",
|
||||
fmt.Sprintf("%2.2f", sliderValue), sliderValue, -50, 100)
|
||||
sliderBarValue = gui.SliderBar(rl.Rectangle{320, 430, 200, 20}, "",
|
||||
fmt.Sprint("%d", sliderBarValue), sliderBarValue, 0, 100)
|
||||
progressValue = gui.ProgressBar(rl.Rectangle{320, 460, 200, 20}, "", "", progressValue, 0, 1)
|
||||
|
||||
// NOTE: View rectangle could be used to perform some scissor test
|
||||
//var view rl.Rectangle = gui.ScrollPanel(rl.Rectangle{560, 25, 100, 160}, "", rl.Rectangle{560, 25, 200, 400}, &viewScroll)
|
||||
|
||||
gui.Panel(rl.Rectangle{560, 25 + 180, 100, 160}, "Panel Info")
|
||||
|
||||
gui.Grid(rl.Rectangle{560, 25 + 180 + 180, 100, 120}, "", 20, 2)
|
||||
|
||||
gui.StatusBar(rl.Rectangle{0, float32(rl.GetScreenHeight()) - 20, float32(rl.GetScreenWidth()), 20}, "This is a status bar")
|
||||
|
||||
alphaValue = gui.ColorBarAlpha(rl.Rectangle{320, 490, 200, 30}, "", alphaValue)
|
||||
|
||||
if showMessageBox {
|
||||
rl.DrawRectangle(0, 0, int32(rl.GetScreenWidth()), int32(rl.GetScreenHeight()), rl.Fade(rl.RayWhite, 0.8))
|
||||
var result int32 = gui.MessageBox(rl.Rectangle{float32(rl.GetScreenWidth())/2 - 125, float32(rl.GetScreenHeight())/2 - 50, 250, 100}, gui.IconText(gui.ICON_EXIT, "Close Window"), "Do you really want to exit?", "Yes;No")
|
||||
|
||||
if (result == 0) || (result == 2) {
|
||||
showMessageBox = false
|
||||
} else if result == 1 {
|
||||
exitWindow = true
|
||||
}
|
||||
}
|
||||
|
||||
if showTextInputBox {
|
||||
rl.DrawRectangle(0, 0, int32(rl.GetScreenWidth()), int32(rl.GetScreenHeight()), rl.Fade(rl.RayWhite, 0.8))
|
||||
var result int32 = gui.TextInputBox(
|
||||
rl.Rectangle{float32(rl.GetScreenWidth())/2 - 120, float32(rl.GetScreenHeight())/2 - 60, 240, 140},
|
||||
"Save",
|
||||
gui.IconText(gui.ICON_FILE_SAVE, "Save file as..."),
|
||||
"Ok;Cancel",
|
||||
&textInput, 255, nil)
|
||||
|
||||
if result == 1 {
|
||||
// TODO: Validate textInput value and save
|
||||
// strcpy(textInputFileName, textInput)
|
||||
// TODO textInputFileName = textInput
|
||||
}
|
||||
if (result == 0) || (result == 1) || (result == 2) {
|
||||
showTextInputBox = false
|
||||
//strcpy(textInput, "\0");
|
||||
textInput = ""
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
rl.EndDrawing()
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
rl.CloseWindow() // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue