You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ovdCStringSettingView.cpp 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "ovdCStringSettingView.h"
  2. #include "../ovd_base.h"
  3. namespace OpenViBE {
  4. namespace Designer {
  5. namespace Setting {
  6. static void OnChange(GtkEntry* /*entry*/, gpointer data) { static_cast<CStringSettingView*>(data)->onChange(); }
  7. CStringSettingView::CStringSettingView(Kernel::IBox& box, const size_t index, CString& builderName)
  8. : CAbstractSettingView(box, index, builderName, "settings_collection-entry_setting_string")
  9. {
  10. GtkWidget* settingWidget = CAbstractSettingView::getEntryFieldWidget();
  11. m_entry = GTK_ENTRY(settingWidget);
  12. g_signal_connect(G_OBJECT(m_entry), "changed", G_CALLBACK(OnChange), this);
  13. CAbstractSettingView::initializeValue();
  14. }
  15. void CStringSettingView::getValue(CString& value) const { value = CString(gtk_entry_get_text(m_entry)); }
  16. void CStringSettingView::setValue(const CString& value)
  17. {
  18. m_onValueSetting = true;
  19. gtk_entry_set_text(m_entry, value);
  20. m_onValueSetting = false;
  21. }
  22. void CStringSettingView::onChange()
  23. {
  24. if (!m_onValueSetting)
  25. {
  26. const gchar* value = gtk_entry_get_text(m_entry);
  27. getBox().setSettingValue(getSettingIndex(), value);
  28. }
  29. }
  30. } // namespace Setting
  31. } // namespace Designer
  32. } // namespace OpenViBE