Добавить переход previous/next по тапу в определенном месте [Готово]

Автор Leo, 25 августа 2016, 16:16:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Leo

В общем нашлись кой-какие ягоды в ягодицах + ультимативный скилл "копипаст" и в результате родился такой шедевр:
// это было:
                           CRect rc;
                            m_wndView.GetWindowRect(&rc);

                            const int percent = 100 * point.x_end / rc.Width();
                            if (percent <= 10) {
                                MSG msg;
                                while (PeekMessage(&msg, m_hWnd, WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, PM_REMOVE));

                                PostMessage(WM_COMMAND, ID_PLAY_SEEKBACKWARDMED);
                            } else if (percent >= 90) {
                                MSG msg;
                                while (PeekMessage(&msg, m_hWnd, WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, PM_REMOVE));

                                PostMessage(WM_COMMAND, ID_PLAY_SEEKFORWARDMED);
                            }

// а это добавил:

// jump back/forward on single touch
                            const int percentX = 100 * point.x_end / rc.Width();
                            const int percentY = 100 * point.y_end / rc.Height();
                            if (percentX >= 15 &&
                                percentX <= 45 &&
                                percentY <= 15) {
                                MSG msg;
                                while (PeekMessage(&msg, m_hWnd, WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, PM_REMOVE));

                                PostMessage(WM_COMMAND, ID_NAVIGATE_SKIPBACK);
                            } else if (percentX >= 55 &&
                                       percentX <= 85 &&
                                       percentY <= 15) {
                                MSG msg;
                                while (PeekMessage(&msg, m_hWnd, WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, PM_REMOVE));

                                PostMessage(WM_COMMAND, ID_NAVIGATE_SKIPFORWARD);
                            }

Вроде делает то, что я и хотел - переход вперед-назад по тыку вверху. На нереагирование на тач флайбара и панели меня уже не хватило.

Можно добавить это чудо в svn чтобы мне не пересобирать под себя каждый раз? Вроде тем, у кого нет девайсов с тачскрином это никак помешать не сможет.

V0lt


Aleksoid1978

Вот патч - https://yadi.sk/d/xx8TpHriuh3Fz
Не могу пока проверить - нет планшета под рукой. Так что если "автор кода" говорит что он его устраивает - можно залить.

Немного не по теме но касаемо управления тачем - может кто сможет сделать что-то типа небольшой доки, ну какие действия/движения/жесты поддерживаются и что при этом происходит(конечно желательно со схематичными рисунками). Если надо - я могу расписать все поддерживаемые нажатия и движения.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Leo

Сотворил вот:


Код меня устраивает, но лишняя проверка никогда не помешает. Если появится планшет - лучше конечно перепроверить. Хотя вроде работает нормально.

Точно, забыл свой патч прицепить:
Index: MainFrm.cpp
===================================================================
--- MainFrm.cpp    (revision 1864)
+++ MainFrm.cpp    (working copy)
@@ -1463,6 +1463,24 @@
 
                                 PostMessage(WM_COMMAND, ID_PLAY_SEEKFORWARDMED);
                             }
+    // jump back/forward on single touch
+                            const int percentX = 100 * point.x_end / rc.Width();
+                            const int percentY = 100 * point.y_end / rc.Height();
+                            if (percentX >= 15 &&
+                                percentX <= 45 &&
+                                percentY <= 15) {
+                                MSG msg;
+                                while (PeekMessage(&msg, m_hWnd, WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, PM_REMOVE));
+
+                                PostMessage(WM_COMMAND, ID_NAVIGATE_SKIPBACK);
+                            } else if (percentX >= 55 &&
+                                       percentX <= 85 &&
+                                       percentY <= 15) {
+                                MSG msg;
+                                while (PeekMessage(&msg, m_hWnd, WM_LBUTTONDOWN, WM_LBUTTONDBLCLK, PM_REMOVE));
+
+                                PostMessage(WM_COMMAND, ID_NAVIGATE_SKIPFORWARD);
+                            }
                         }
                     } else if (m_touchScreen.Count() == 2) {
                         if (!m_touchScreen.moving) {
Или надо файлом?

Aleksoid1978

Ну классно - тогда надо заливать мой патч, а вот данную картинку где-то разместить как доку по управлению с помощью тача. Продублировать на руборде в шапке.
[merge_posts_bbcode]Добавлено: 2016-09-03 10:40:48[/merge_posts_bbcode]

Надо данную картинку на руборд в шапку поместить как описание управления на устройствах с так-скрином.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Leo


Aleksoid1978

Так - код в SVN. А у меня просьба к Leo - можешь данную картинку "перевести" на English, названия действий желательно подсмотреть в самом MPC-BE.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215