first commit

This commit is contained in:
2026-02-21 17:11:31 +09:00
commit 18b4338361
4001 changed files with 365464 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
#include "rm_widget_drag.h"
#include <QMouseEvent>
#include <Windows.h>
RMWidgetDrag::RMWidgetDrag(QWidget *target,int titleBarHeight) : QObject(target)
{
_target = target;
_dragStart = false;
_titleBarHeight = titleBarHeight;
_target->installEventFilter(this);
}
RMWidgetDrag::~RMWidgetDrag()
{
_target->removeEventFilter(this);
}
bool RMWidgetDrag::eventFilter(QObject *o, QEvent*e)
{
// Alt+Enter 방지
if(e->type() == QEvent::WindowActivate)
{
//qInfo() << __FUNCTION__ << e->type();
::RegisterHotKey((HWND)_target->winId(),
998,
MOD_ALT | MOD_NOREPEAT,
VK_RETURN);
}
else if (e->type() == QEvent::WindowDeactivate)
{
//qInfo() << __FUNCTION__ << e->type();
::UnregisterHotKey((HWND)_target->winId(),998);
}
Q_UNUSED(o);
#if (USE_KEY_EVENT_FOR_SEEK)
if(e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease)
{
QKeyEvent* ke = static_cast<QKeyEvent*>(e);
if(ke->isAutoRepeat() == true)
{
return false;
}
qInfo() << "KE:" << ((e->type() == QEvent::KeyPress) ? "P" : "R");
}
#endif
#if (DESIGN_LAYOUT_MODE)
if( e->type() == QEvent::MouseButtonPress)
{
// CHILD 는 적용안됨.. 어..쩔..
QMouseEvent* me = static_cast<QMouseEvent*>(e);
qInfo() << me->pos();
}
#endif // DESIGN_LAYOUT_MODE
if (_target->isMaximized() == false &&
_target->isFullScreen() == false &&
(e->type() == QEvent::MouseMove ||
e->type() == QEvent::MouseButtonPress ||
e->type() == QEvent::MouseButtonRelease))
{
QMouseEvent* me = static_cast<QMouseEvent*>(e);
switch (e->type())
{
case QEvent::MouseMove:
if (_dragStart)
{
_target->move(_target->frameGeometry().topLeft() + (me->pos() - _dragPos));
emit onWindowMove();
}
return true; // discard
break;
case QEvent::MouseButtonPress:
if (_target->rect().contains(me->pos()) && me->pos().y() < _titleBarHeight)
{
_dragStart = true;
_dragPos = me->pos();
}
return true; // discard
break;
case QEvent::MouseButtonRelease:
_dragStart = false;
//mouseRealese(static_cast<QMouseEvent*>(e));
return true; // discard
break;
}
}
return false;
}