02 апреля | 2025г. | 15:14:24


АвторТема: ExtraChannelSelection  (Прочитано 331506 раз)

0 Пользователей и 2 Гостей смотрят эту тему.

Оффлайн ака УчкунАвтор темы

  • Рыцарь Джедай
  • *****
  • Забанен!
  • Сообщений: 1098
  • Поблагодарили: 4787
  • Уважение: +49
ExtraChannelSelection
« Ответ #255: 21 августа | 2013г. | 00:17:49 »
0
Да можно попробовать конечно.
Но сейчас пытаюсь понять возможности другого модуля из имиджа, модуля eWidgetAnimation.
Вот это было бы круче.
У этого модуля есть функция startMoveAnimation, для которого задается только начало и конец движения и тогда движение будет вообще без рывков.
Но пока не получается оседлать эту функцию........
Добавлено  21 августа | 2013г. | 00:29:08   
Как давным-давно исходник (cpp) листбокссервиса натолкнула меня на мысль создания нового списка каналов, так и вот этот исходник данного модуля тоже меня вдохновило сейчас

Спойлер   :
#include <lib/gui/ewidgetanimation.h>
#include <lib/gui/ewidget.h>

eWidgetAnimation::eWidgetAnimation(eWidget *widget): m_widget(widget)
{
   m_active = 0;
}

void eWidgetAnimation::tick(int inc)
{
   if (!m_active)
      return;
   
      // move animation
   if (m_move_length)
   {
      if (m_move_current_tick >= m_move_length)
      {
         m_active = 0;
         m_move_current_tick = m_move_length;
      }
      
      m_move_start = m_widget->position();
      
      int xdiff = m_move_start.x() - m_move_end.x();
      int ydiff = m_move_start.y() - m_move_end.y();
      
      xdiff *= 31; xdiff /= 32;
      ydiff *= 31; ydiff /= 32;
      
      #if 0
      xdiff *= m_move_current_tick;
      xdiff /= m_move_length;

      ydiff *= m_move_current_tick;
      ydiff /= m_move_length;
      #endif
      
      ePoint res(m_move_end.x() + xdiff, m_move_end.y() + ydiff);
      
      m_move_current_tick += inc;
      
      m_widget->move(res);
   }
}

void eWidgetAnimation::startMoveAnimation(ePoint start, ePoint end, int length)
{
   m_move_current_tick = 0;
   m_move_length = length;
   m_move_start = start;
   m_move_end = end;
   m_active = 1;
   m_widget->move(m_move_start);
}


  • vu+ultimo 9995
Мои авторские работы  нельзя редактировать для выкладывания на паблик.
Но их можно выкладывать неизмененными на любых ресурсах с указанием авторства
Мои кошельки:
WMZ     Z356196865451 WMR     R105983132832

Теги:
 



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!