Figuring out the file dialog.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package simulator
|
||||
|
||||
import "core:strings"
|
||||
import "core:log"
|
||||
import "core:strings"
|
||||
import rl "vendor:raylib"
|
||||
|
||||
gui_left_panel :: proc(rect: rl.Rectangle, sim: ^Simulator) {
|
||||
@@ -12,6 +12,7 @@ gui_left_panel :: proc(rect: rl.Rectangle, sim: ^Simulator) {
|
||||
rect.height / 2,
|
||||
}
|
||||
rl.DrawRectangleLinesEx(top_panel, 1, rl.DARKGRAY)
|
||||
gui_file_loader(top_panel)
|
||||
|
||||
bottom_panel := rl.Rectangle {
|
||||
rect.x,
|
||||
@@ -23,6 +24,20 @@ gui_left_panel :: proc(rect: rl.Rectangle, sim: ^Simulator) {
|
||||
gui_key_pad(bottom_panel, sim.machine.keypad, sim.font)
|
||||
}
|
||||
|
||||
gui_file_loader :: proc(rect: rl.Rectangle,) {
|
||||
if rl.IsFileDropped() {
|
||||
log.info("file drop found!")
|
||||
dropped_file := rl.LoadDroppedFiles()
|
||||
|
||||
if dropped_file.count > 1 {
|
||||
path_str := string(dropped_file.paths[0])
|
||||
log.info("file dropped: ", path_str)
|
||||
}
|
||||
|
||||
rl.UnloadDroppedFiles(dropped_file)
|
||||
}
|
||||
}
|
||||
|
||||
gui_key_pad :: proc(rect: rl.Rectangle, display: [16]bool, font: rl.Font) {
|
||||
Key :: struct { label: string, index: int}
|
||||
keys := [16]Key {
|
||||
@@ -30,14 +45,14 @@ gui_key_pad :: proc(rect: rl.Rectangle, display: [16]bool, font: rl.Font) {
|
||||
{"4", 4}, {"5", 5}, {"6", 6}, {"D", 13},
|
||||
{"7", 7}, {"8", 8}, {"9", 9}, {"D", 14},
|
||||
{"A", 10}, {"0", 0}, {"B", 11}, {"F", 15}
|
||||
}
|
||||
}
|
||||
|
||||
btn_width := f32(rect.width / 4)
|
||||
btn_height := f32(rect.height / 4)
|
||||
|
||||
for val, idx in keys {
|
||||
str := strings.clone_to_cstring(val.label)
|
||||
ri := int(idx / 4)
|
||||
ri := int(idx / 4)
|
||||
ci := idx % 4
|
||||
|
||||
irect := rl.Rectangle{
|
||||
@@ -53,5 +68,5 @@ gui_key_pad :: proc(rect: rl.Rectangle, display: [16]bool, font: rl.Font) {
|
||||
|
||||
// Free the allocations!
|
||||
delete(str)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user