SFML with TUI example
This commit is contained in:
parent
362bbed6bd
commit
6d50aa349a
3
sfml-tgui/.gitignore
vendored
Normal file
3
sfml-tgui/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
themes/
|
||||
fonts/
|
||||
libtgui.so*
|
13
sfml-tgui/build.sh
Executable file
13
sfml-tgui/build.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm ./a.out
|
||||
|
||||
g++ \
|
||||
-Wl,-rpath=. \
|
||||
-I/home/user/Downloads/TGUI-1.1.0/include/ \
|
||||
-L./ \
|
||||
main.cpp \
|
||||
-ltgui \
|
||||
-lsfml-graphics -lsfml-window -lsfml-system
|
||||
|
||||
./a.out
|
70
sfml-tgui/main.cpp
Normal file
70
sfml-tgui/main.cpp
Normal file
@ -0,0 +1,70 @@
|
||||
#include <TGUI/TGUI.hpp>
|
||||
#include <TGUI/Backend/SFML-Graphics.hpp>
|
||||
#include <TGUI/Widgets/Group.hpp>
|
||||
#include <TGUI/Widgets/Panel.hpp>
|
||||
#include <TGUI/Widgets/MenuBar.hpp>
|
||||
|
||||
int main() {
|
||||
sf::RenderWindow window{{800, 600}, "TGUI example w/ SFML_GRAPHICS backend"};
|
||||
sf::Event event;
|
||||
|
||||
tgui::Gui gui{window};
|
||||
tgui::Font m_tguiFont("fonts/Cuprum/Cuprum-Regular.ttf");
|
||||
tgui::Font::setGlobalFont(m_tguiFont);
|
||||
|
||||
tgui::Theme::setDefault("themes/Black.txt");
|
||||
|
||||
auto top_panel = tgui::Panel::create();
|
||||
auto main_panel = tgui::Panel::create();
|
||||
auto footer_panel = tgui::Panel::create();
|
||||
|
||||
auto menu_bar = tgui::MenuBar::create();
|
||||
menu_bar->addMenu("File");
|
||||
menu_bar->addMenuItem("Load");
|
||||
menu_bar->addMenuItem("Save");
|
||||
|
||||
top_panel->setHeight("50px");
|
||||
footer_panel->setHeight("30px");
|
||||
|
||||
top_panel->setAutoLayout(tgui::AutoLayout::Top);
|
||||
main_panel->setAutoLayout(tgui::AutoLayout::Fill);
|
||||
footer_panel->setAutoLayout(tgui::AutoLayout::Bottom);
|
||||
|
||||
tgui::Button::Ptr button = tgui::Button::create("Привет");
|
||||
button->onPress([&] { printf("ololo\n"); });
|
||||
button->setHeight("30px");
|
||||
tgui::Button::Ptr button2 = tgui::Button::create("Закрыть");
|
||||
button2->setAutoLayout(tgui::AutoLayout::Fill);
|
||||
button2->onPress([&] { window.close(); });
|
||||
|
||||
auto picture = tgui::Picture::create("CLI_Logo_small.png");
|
||||
|
||||
auto editBox = tgui::EditBox::create();
|
||||
|
||||
top_panel->add(button);
|
||||
main_panel->add(picture);
|
||||
footer_panel->add(button2);
|
||||
|
||||
gui.add(menu_bar);
|
||||
gui.add(top_panel);
|
||||
gui.add(main_panel);
|
||||
gui.add(footer_panel);
|
||||
|
||||
|
||||
// gui.mainLoop();
|
||||
while (window.isOpen()) {
|
||||
while (window.pollEvent(event)) {
|
||||
// while (window.waitEvent(event)) {
|
||||
gui.handleEvent(event);
|
||||
|
||||
if (event.type == sf::Event::Closed)
|
||||
window.close();
|
||||
}
|
||||
|
||||
window.clear({240, 240, 240});
|
||||
gui.draw();
|
||||
window.display();
|
||||
}
|
||||
|
||||
printf("Пока\n");
|
||||
}
|
Loading…
Reference in New Issue
Block a user