Added AsloEngine 0.9.0 to Repository
This commit is contained in:
parent
d017dd84b3
commit
881e6c70f2
60 changed files with 2648 additions and 0 deletions
78
asloengine/builtin/text_only_input_field.cpp
Executable file
78
asloengine/builtin/text_only_input_field.cpp
Executable file
|
|
@ -0,0 +1,78 @@
|
|||
#include "headers/text_only_input_field.hpp"
|
||||
|
||||
namespace asloengine
|
||||
{
|
||||
|
||||
TextOnlyInputField::TextOnlyInputField(sf::String _name, sf::Vector2f _size, sf::Font& _font, uint _text_size, int _max_length, sf::String _default_text)
|
||||
: size(_size), max_length(_max_length), TextObject(_name, _default_text, _font, _text_size), GameObject(_name), Clickable(sf::Mouse::Left) {}
|
||||
|
||||
TextOnlyInputField::~TextOnlyInputField() {}
|
||||
|
||||
void TextOnlyInputField::draw()
|
||||
{
|
||||
|
||||
//sf::View default_view = crop ? set_crop(position.x, position.y, size.x, size.y * 1.5) : render_window->getView();
|
||||
TextObject::draw();
|
||||
//render_window->setView(default_view);
|
||||
|
||||
}
|
||||
|
||||
void TextOnlyInputField::on_main_property_update()
|
||||
{
|
||||
|
||||
TextObject::on_main_property_update();
|
||||
|
||||
update_clickable(sf::FloatRect(position, size));
|
||||
|
||||
}
|
||||
|
||||
void TextOnlyInputField::on_start()
|
||||
{
|
||||
|
||||
set_clickable(sf::FloatRect(position, size), render_window);
|
||||
|
||||
}
|
||||
|
||||
void TextOnlyInputField::on_update(float delta_time)
|
||||
{
|
||||
|
||||
if (editable)
|
||||
{
|
||||
|
||||
if (get_click_action() == ClickAction::Pressed)
|
||||
{
|
||||
if (is_mouse_in())
|
||||
{
|
||||
if (!editing)
|
||||
{
|
||||
signal_on_focus();
|
||||
}
|
||||
editing = true;
|
||||
} else {
|
||||
if (editing)
|
||||
{
|
||||
signal_on_lost_focus();
|
||||
}
|
||||
editing = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (editing && Keyboard::entered_text != 0)
|
||||
{
|
||||
if (Keyboard::entered_text == 8 || Keyboard::entered_text == 127)
|
||||
{
|
||||
sf::String tmp_text = get_text();
|
||||
set_text(tmp_text.substring(0, tmp_text.getSize() - 1));
|
||||
signal_on_text_changed(get_text(), Keyboard::entered_text);
|
||||
} else if (get_text_length() < max_length) {
|
||||
set_text(get_text() + sf::String(Keyboard::entered_text));
|
||||
signal_on_text_changed(get_text(), Keyboard::entered_text);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue