cool this is exactly that what i needed, thanks :3
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu menu->addMenu("File");
menu->addMenu("Layers");
menu->addMenu("Tiles");
menu->addMenu("Objects");
menu->addMenuItem("File", "Create");
menu->addMenuItem("File", "Open");
menu->addMenuItem("File", "Save");
menu->addMenuItem("File", "Exit");
menu->addMenuItem("Tiles", "Create");
menu->addMenuItem("Tiles", "Open");
menu->addMenuItem("Tiles", "Exit");
menu->addMenuItem("Objects", "Create");
menu->addMenuItem("Objects", "Open");
menu->addMenuItem("Objects", "Exit");
menu->addMenuItem("Layers", "Tile");
menu->addMenuItem("Layers", "Object");
menu->addMenuItem("Layers", "Type");
void Menu::LoadMenu(sf::RenderWindow &wnd)
{
W=&wnd;
gui.setWindow(wnd);
gui.setGlobalFont("Font/djvs.ttf");
gui.add(menu);
tilegui.setWindow(T);
tilegui.setGlobalFont("Font/djvs.ttf");
tilegui.add(slider);
menu->load(THEME_CONFIG_FILE);
menu->setSize(wnd.getSize().x, 20);
menu->addMenu("File");
menu->addMenu("Layers");
menu->addMenu("Tiles");
menu->addMenu("Objects");
menu->addMenuItem("File", "Create");
menu->addMenuItem("File", "Load");
menu->addMenuItem("File", "Save");
menu->addMenuItem("File", "Exit");
menu->bindCallback(tgui::MenuBar::MenuItemClicked);
gui.add(window);
window->bindCallback(tgui::ChildWindow::Closed);
window->setCallbackId(0);
Create->setCallbackId(1);
Load->setCallbackId(2);
menu->setCallbackId(3);
slider->load(THEME_CONFIG_FILE);
slider->setVerticalScroll(false);
slider->setPosition(400, 0);
slider->setSize(20, 300);
slider->setMaximum(5);
slider->setValue(0);
slider->bindCallback(std::bind(this->moveTile, this, slider, std::ref(tilespr), 20, 100), tgui::Slider::ValueChanged);
}
void Menu::moveTile(tgui::Slider::Ptr slider, sf::Sprite& sprite, int minY, int maxY)
{
if(slider->getValue()==minY)
{
sprite.setPosition(0,minY);
}
if(slider->getValue()==maxY)
{
sprite.setPosition(0,slider->getValue());
}
sprite.setPosition(sprite.getPosition().x, minY + (slider->getValue() / (float)slider->getMaximum()) * (maxY - minY));
}
menu.h #ifndef MENU_H
#define MENU_H
#include <TGUI/TGUI.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>
#include "../include/Map.h"
#define THEME_CONFIG_FILE "gui/Black.conf"
class Menu
{
public:
void LoadMenu(sf::RenderWindow &wnd);
void Callback(Map &m);
void Event(sf::Event &event);
void Draw();
protected:
tgui::Gui gui;
tgui::ChildWindow::Ptr Create;
tgui::MenuBar::Ptr menu;
tgui::Callback callback;
tgui::ChildWindow::Ptr create;
tgui::Button::Ptr BCreate;
tgui::EditBox::Ptr name;
tgui::EditBox::Ptr tilepath;
tgui::EditBox::Ptr tilesize;
tgui::EditBox::Ptr x;
tgui::EditBox::Ptr y;
sf::RenderWindow *W;
};
#endif // MENU_H
menu.cpp
#include "../include/Menu.h"
void Menu::LoadMenu(sf::RenderWindow &wnd)
{
W=&wnd;
gui.setWindow(wnd);
gui.setGlobalFont("Font/djvs.ttf");
tgui::MenuBar::Ptr m(gui);
menu=m;
menu->load(THEME_CONFIG_FILE);
menu->setSize(wnd.getSize().x, 20);
menu->addMenu("File");
menu->addMenu("Layers");
menu->addMenu("Tiles");
menu->addMenu("Objects");
menu->addMenuItem("File", "Create");
menu->addMenuItem("File", "Load");
menu->addMenuItem("File", "Save");
menu->addMenuItem("File", "Exit");
menu->bindCallback(tgui::MenuBar::MenuItemClicked);
menu->setCallbackId(2);
tgui::ChildWindow::Ptr c(gui);
create=c;
create->load(THEME_CONFIG_FILE);
create->hide();
create->setSize(400, 200);
create->setBackgroundColor(sf::Color(80, 80, 80));
create->setPosition(100, 460);
create->setTitle("Map Creator");
create->setIcon("../icon.jpg");
tgui::EditBox::Ptr name(*create);
tgui::EditBox::Ptr tilepath(*create);
tgui::EditBox::Ptr tilesize(*create);
tgui::EditBox::Ptr x(*create);
tgui::EditBox::Ptr y(*create);
name->load(THEME_CONFIG_FILE);
name->setTextSize(10);
name->setPosition(50, 50);
name->setSize(100, 30);
name->setText("Map name");
tilepath->load(THEME_CONFIG_FILE);
tilepath->setTextSize(10);
tilepath->setPosition(50, 150);
tilepath->setSize(100, 30);
tilepath->setText("Tile path");
tilesize->load(THEME_CONFIG_FILE);
tilesize->setTextSize(10);
tilesize->setPosition(50, 100);
tilesize->setSize(100, 30);
tilesize->setText("Tile size");
x->load(THEME_CONFIG_FILE);
x->setTextSize(10);
x->setPosition(200, 50);
x->setSize(100, 30);
x->setText("X size");
y->load(THEME_CONFIG_FILE);
y->setTextSize(10);
y->setPosition(200, 100);
y->setSize(100, 30);
y->setText("y size");
tgui::Button::Ptr BCreate(*create);
BCreate->load(THEME_CONFIG_FILE);
BCreate->setPosition(250, 100);
BCreate->setText("Create");
BCreate->setCallbackId(1);
BCreate->bindCallback(tgui::Button::LeftMouseClicked);
BCreate->setSize(50, 40);
}
void Menu::Callback(Map &m)
{
while (gui.pollCallback(callback))
{
if (callback.id == 1)
{
std::string Name, Path;
sf::String str;
int Size,xsize,ysize;
str=name->getText();
std::cout<<str.toAnsiString()<<std::endl; this line nothing print, same down
Name="maps/"+str.toAnsiString();
str=tilepath->getText();
std::cout<<str.toAnsiString()<<std::endl;
Path="gfx/"+str.toAnsiString();
str=tilesize->getText();
std::cout<<str.toAnsiString()<<std::endl;
Size=atoi(str.toAnsiString().c_str());
str=x->getText();
std::cout<<str.toAnsiString()<<std::endl;
xsize=atoi(str.toAnsiString().c_str());
str=y->getText();
std::cout<<str.toAnsiString()<<std::endl;
ysize=atoi(str.toAnsiString().c_str());
m.Create(xsize,ysize,Size,Name.c_str(),Path.c_str());
}
else if (callback.id == 2)
{
if (callback.text == "Exit")
W->close();
else if( callback.text == "Create")
create->show();
else if( callback.text == "Save")
m.Save();
else
create->hide();
}
}
}
void Menu::Event(sf::Event &event)
{
gui.handleEvent(event);
}
void Menu::Draw()
{
gui.draw();
}
if (callback.id == 1)
{
std::string n,p;
sf::String str;
int s,xs,ys;
create->get()
str=name->getText();
n="maps/"+str.toAnsiString();
str=tilepath->getText();
p="gfx/"+str.toAnsiString();
str=tilesize->getText();
s=atoi(str.toAnsiString().c_str());
str=x->getText();
xs=atoi(str.toAnsiString().c_str());
str=y->getText();
ys=atoi(str.toAnsiString().c_str());
m.Create(xs,ys,s,n.c_str(),p.c_str());
}