Jump to content

Не отрабатывает Gui::CALLBACK_INDEX::SHOW для WidgetSliderPtr


photo

Recommended Posts

Здравствуйте, у меня есть слайдер для которого я настроил сallback на событие show, но при отображении слайдера событие не вызывается. В чем может быть проблема ?

int WaterSettingsWindow::init()
{
  auto gui = Gui::getCurrent();
  
  auto wWindow = WidgetWindow::create(m_gui, "Окно настройки воды");
  gui->addChild(wWindow, Gui::ALIGN_OVERLAP);
  
  m_slider = WidgetSlider::create(gui);
  m_slider->setMinValue((int)(min_value * 100));
  m_slider->setMaxValue((int)(max_value * 100));
  m_slider->setValue((int)(default_value * 100));
  m_slider->setWidth(200);
  m_slider->setButtonWidth(20);
  m_slider->setButtonHeight(20);
  m_slider->setToolTip(tooltip);
  wWindow->addChild(m_slider, Gui::ALIGN_LEFT);
  
  slider->setHidden(true);
  
  CallbackBase* callback = MakeCallback([this]()
  {
  	Log::message(Math::vec4_green, "Show slider.\n");
  });

  slider->addCallback(Gui::CALLBACK_INDEX::SHOW, callback);
}

void WaterSettingsWindow::update()
{
    if (Input::isKeyDown(Input::KEY_P))
        m_slider->setHidden(!m_slider->isHidden());
}



image.thumb.png.67f5d74c43f42bb4770726b20aba03c4.png

Link to comment

Колбэка для метода setHidden() не предусмотрено.

Gui::CALLBACK_INDEX::SHOW сработает только для методов addChild() / replaceChild() внутри VBox/VPaned (и их наследников).
Gui::CALLBACK_INDEX::HIDE в свою очередь сработает только на removeChild() / replaceChild().

При этом в случае с replaceChild() SHOW сработает для нового виджета. а HIDE, соответственно, для старого.

Уточним в документации этот момент, спасибо.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

@silent Спасибо за ответ. Да этой информации очень не хватало в документации. Было хорошо если бы появился CALLBACK_INDEX для setHidden.  

Link to comment
×
×
  • Create New...