gui.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include <gui/gui.h>
  2. #include <ui_gui.h>
  3. #include <gui/recruitmentscene.h>
  4. #include <QDebug>
  5. GUI::GUI(QWidget *parent) :
  6. QMainWindow(parent, Qt::Window | Qt::FramelessWindowHint),
  7. ui_(new Ui::GUI), dx_(0), dy_(0)
  8. {
  9. ui_->setupUi(this);
  10. setWindowTitle("Супер-мега-клёвая-игрушка-название-которой-мы-ещё-не-придумали");
  11. }
  12. GUI::~GUI()
  13. {
  14. delete ui_;
  15. }
  16. QWidget* GUI::mainContentScene() {
  17. return ui_->main_content_;
  18. }
  19. void GUI::mouseMoveEvent( QMouseEvent* e ) {
  20. if( e->buttons() | Qt::LeftButton ) {
  21. QPoint pt=mapFromGlobal(QCursor::pos());
  22. QWidget* child=childAt(pt);
  23. if (child == 0) {
  24. setGeometry(pos().x() + (pt.x() - dx_ ), pos().y() + (pt.y() - dy_ ), width(), height());
  25. return;
  26. }
  27. QString cname = child->metaObject()->className();
  28. if (cname != "QPushButton" && cname != "QComboBox" && cname != "RaceIcon" && cname != "UnitIcon"){ // отключаем перетягивание при наведение на активные элементы
  29. setGeometry(pos().x() + ( pt.x() - dx_ ), pos().y() + ( pt.y() - dy_ ), width(), height());
  30. } else {
  31. dx_ = pt.x();
  32. dy_ = pt.y();
  33. }
  34. }
  35. }
  36. void GUI::mousePressEvent( QMouseEvent* e ) {
  37. if(e->button() == Qt::LeftButton) {
  38. QPoint pt = mapFromGlobal(QCursor::pos());
  39. QWidget* child=childAt(pt);
  40. if (child == 0)
  41. return;
  42. QString cname = child->metaObject()->className();
  43. if (cname == "QPushButton" || cname == "QComboBox" || cname == "QLabel")
  44. return;
  45. dx_ = pt.x();
  46. dy_ = pt.y();
  47. setCursor( Qt::OpenHandCursor );
  48. }
  49. }
  50. void GUI::mouseReleaseEvent( QMouseEvent* e ) {
  51. if( e->button() == Qt::LeftButton ) {
  52. QPoint pt=mapFromGlobal(QCursor::pos());
  53. setCursor( Qt::ArrowCursor );
  54. dx_ = pt.x();
  55. dy_ = pt.y();
  56. }
  57. }