// // Created by selim on 10.05.2022. // #include "Entry.h" #include namespace gtkpp { void changedCallback(GtkEntry*, Entry* entry) { entry->_signalChanged.emit(); } Entry::Entry() : Widget() { _widget = gtk_entry_new(); g_signal_connect(_widget, "changed", G_CALLBACK(changedCallback), this); } void Entry::setPlaceholder(const std::string &placeholder) { gtk_entry_set_placeholder_text(GTK_ENTRY(_widget), placeholder.c_str()); } void Entry::setPurpose(GtkInputPurpose purpose) { gtk_entry_set_input_purpose(GTK_ENTRY(_widget), purpose); } void Entry::setVisibility(bool visibility) { gtk_entry_set_visibility(GTK_ENTRY(_widget), visibility); } void Entry::onChanged(const std::function& callback) { _signalChanged.connect(callback); } int Entry::textLength() const { return gtk_entry_get_text_length(GTK_ENTRY(_widget)); } std::string Entry::text() const { auto buffer = gtk_entry_get_buffer(GTK_ENTRY(_widget)); return gtk_entry_buffer_get_text(buffer); } }