summaryrefslogtreecommitdiff
path: root/src/ui/ui_setup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/ui_setup.cpp')
-rw-r--r--src/ui/ui_setup.cpp59
1 files changed, 58 insertions, 1 deletions
diff --git a/src/ui/ui_setup.cpp b/src/ui/ui_setup.cpp
index 4f4a120..a386e72 100644
--- a/src/ui/ui_setup.cpp
+++ b/src/ui/ui_setup.cpp
@@ -20,14 +20,71 @@
#include "administration_writer.hpp"
#include "administration_reader.hpp"
+#include <GLFW/glfw3.h>
+
+#include "stb/stb_image.h"
+
+#include "IconFontCppHeaders/IconsFontAwesome5.h"
+
+int ui::load_image(const char* filename)
+{
+ int width, height, channels;
+ unsigned char* data = stbi_load(filename, &width, &height, &channels, 0);
+
+ if (!data)
+ {
+ return 0;
+ }
+
+ GLuint textureID;
+ glGenTextures(1, &textureID);
+ glBindTexture(GL_TEXTURE_2D, textureID);
+
+ // Set texture parameters
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+ // Upload texture data
+ GLenum format = (channels == 4) ? GL_RGBA : GL_RGB;
+ glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);
+ //glGenerateMipmap(GL_TEXTURE_2D);
+
+ // Free image memory
+ stbi_image_free(data);
+
+ return textureID;
+}
+
void ui::draw_setup()
{
- if (ImGui::Button("Load administration")) {
+ static int img = load_image("/home/aldrik/Projects/open-books/build/splash.png");
+ ImVec2 area = ImGui::GetContentRegionAvail();
+
+ ImGui::PushStyleVar(ImGuiStyleVar_ButtonTextAlign, ImVec2(0.0f, 0.5f));
+ ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(10.0f, 10.0f));
+
+ if (ImGui::Button(ICON_FA_FILE_IMPORT " Load administration", ImVec2(200, 0))) { // @locale
if (administration_reader::open_existing(NULL)) {
ui::set_state(ui::main_state::UI_SETTINGS);
ui::recreate_window_for_main_views();
}
}
+
+ if (ImGui::Button(ICON_FA_FOLDER_PLUS " Create administration", ImVec2(200, 0))) { // @locale
+ if (administration_reader::open_existing(NULL)) {
+ ui::set_state(ui::main_state::UI_SETTINGS);
+ ui::recreate_window_for_main_views();
+ }
+ }
+ ImGui::PopStyleVar();
+ ImGui::PopStyleVar();
+
+ int imageW = 360;
+ int imageH = 360;
+ ImGui::SetCursorScreenPos(ImVec2(area.x - imageW + 20, area.y - imageH + 20));
+ ImGui::Image(img, ImVec2(imageW, imageH));
}
void ui::setup_setup()