AutoCatGnome/gtkpp/Entry.cpp

36 lines
911 B
C++

//
// Created by selim on 10.05.2022.
//
#include "Entry.h"
namespace gtkpp {
void changedCallback(GtkEntry* widget, void* data) {
auto entry = reinterpret_cast<Entry*>(data);
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<void()>& callback) {
_signalChanged.connect(callback);
}
}