aboutsummaryrefslogtreecommitdiff
path: root/src/SearchBar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SearchBar.cpp')
-rw-r--r--src/SearchBar.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/src/SearchBar.cpp b/src/SearchBar.cpp
index 8362864..7d7f72d 100644
--- a/src/SearchBar.cpp
+++ b/src/SearchBar.cpp
@@ -82,7 +82,7 @@ namespace QuickMedia {
caret.setPosition(text.findCharacterPos(text.getString().getSize()) + sf::Vector2f(0.0f, 2.0f));
}
- if(caret_visible)
+ if(caret_visible && is_editable())
window.draw(caret);
if(draw_logo)
@@ -90,6 +90,22 @@ namespace QuickMedia {
}
void SearchBar::on_event(sf::Event &event) {
+ if(is_touch_enabled() && event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left) {
+ sf::FloatRect box(background.get_position(), background.get_size());
+ if(box.contains(event.mouseButton.x, event.mouseButton.y))
+ mouse_left_inside = true;
+ else
+ mouse_left_inside = false;
+ } else if(is_touch_enabled() && event.type == sf::Event::MouseButtonReleased && event.mouseButton.button == sf::Mouse::Left) {
+ sf::FloatRect box(background.get_position(), background.get_size());
+ if(mouse_left_inside && box.contains(event.mouseButton.x, event.mouseButton.y))
+ show_virtual_keyboard();
+ mouse_left_inside = false;
+ }
+
+ if(!editable)
+ return;
+
if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Backspace)
backspace_pressed = true;
else if(event.type == sf::Event::KeyReleased && event.key.code == sf::Keyboard::Backspace)
@@ -110,19 +126,6 @@ namespace QuickMedia {
onTextEntered(event.text.unicode);
else if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Backspace)
onTextEntered(8);
-
- if(is_touch_enabled() && event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left) {
- sf::FloatRect box(background.get_position(), background.get_size());
- if(box.contains(event.mouseButton.x, event.mouseButton.y))
- mouse_left_inside = true;
- else
- mouse_left_inside = false;
- } else if(is_touch_enabled() && event.type == sf::Event::MouseButtonReleased && event.mouseButton.button == sf::Mouse::Left) {
- sf::FloatRect box(background.get_position(), background.get_size());
- if(mouse_left_inside && box.contains(event.mouseButton.x, event.mouseButton.y))
- show_virtual_keyboard();
- mouse_left_inside = false;
- }
}
void SearchBar::update() {
@@ -303,6 +306,14 @@ namespace QuickMedia {
}
}
+ void SearchBar::set_editable(bool editable) {
+ this->editable = editable;
+ }
+
+ bool SearchBar::is_editable() const {
+ return editable;
+ }
+
void SearchBar::clear_autocomplete_if_text_not_substring() {
const sf::String &text_str = text.getString();
const sf::String &autocomplete_str = autocomplete_text.getString();