コード例 #1
0
ファイル: window.cpp プロジェクト: sorlok/Dubious-Dabblings
void pWindow::setGeometry(const Geometry &geometry_) {
  locked = true;
  OS::processEvents();
  QApplication::syncX();
  Geometry geometry = geometry_, margin = frameMargin();

  setResizable(window.state.resizable);
  qtWindow->move(geometry.x - frameMargin().x, geometry.y - frameMargin().y);
  //qtWindow->adjustSize() fails if larger than 2/3rds screen size
  qtWindow->resize(qtWindow->sizeHint());
  qtWindow->setMinimumSize(1, 1);
  qtContainer->setMinimumSize(1, 1);

  for(auto &layout : window.state.layout) {
    geometry = geometry_;
    geometry.x = geometry.y = 0;
    layout.setGeometry(geometry);
  }
  locked = false;
}
コード例 #2
0
ファイル: window.cpp プロジェクト: ChoccyHobNob/DiCE
void pWindow::setFullScreen(bool fullScreen) {
  if(fullScreen == false) {
    setResizable(window.state.resizable);
    qtWindow->showNormal();
    qtWindow->adjustSize();
  } else {
    qtLayout->setSizeConstraint(QLayout::SetDefaultConstraint);
    qtContainer->setFixedSize(Desktop::size().width - frameMargin().width, Desktop::size().height - frameMargin().height);
    qtWindow->showFullScreen();
  }
}
コード例 #3
0
ファイル: window.cpp プロジェクト: sorlok/Dubious-Dabblings
void pWindow::setFullScreen(bool fullScreen) {
  locked = true;
  if(fullScreen == false) {
    SetWindowLongPtr(hwnd, GWL_STYLE, WS_VISIBLE | (window.state.resizable ? ResizableStyle : FixedStyle));
    setGeometry(window.state.geometry);
  } else {
    SetWindowLongPtr(hwnd, GWL_STYLE, WS_VISIBLE | WS_POPUP);
    Geometry margin = frameMargin();
    setGeometry({ margin.x, margin.y, GetSystemMetrics(SM_CXSCREEN) - margin.width, GetSystemMetrics(SM_CYSCREEN) - margin.height });
  }
  locked = false;
}
コード例 #4
0
ファイル: window.cpp プロジェクト: sorlok/Dubious-Dabblings
void pWindow::setFullScreen(bool fullScreen) {
  if(fullScreen == false) {
    setResizable(window.state.resizable);
    qtWindow->showNormal();
    qtWindow->adjustSize();
  } else {
    Geometry geometry = OS::desktopGeometry(), margin = frameMargin();
    qtLayout->setSizeConstraint(QLayout::SetDefaultConstraint);
    qtContainer->setFixedSize(geometry.width - margin.width, geometry.height - margin.height);
    qtWindow->showFullScreen();
  }
}
コード例 #5
0
ファイル: window.cpp プロジェクト: ChoccyHobNob/DiCE
void pWindow::setGeometry(Geometry geometry) {
  locked = true;
  Application::processEvents();
  QApplication::syncX();
  Geometry margin = frameMargin();

  setResizable(window.state.resizable);
  qtWindow->move(geometry.x - frameMargin().x, geometry.y - frameMargin().y);
  //qtWindow->adjustSize() fails if larger than 2/3rds screen size
  qtWindow->resize(qtWindow->sizeHint());
  if(window.state.resizable) {
    //required to allow shrinking window from default size
    qtWindow->setMinimumSize(1, 1);
    qtContainer->setMinimumSize(1, 1);
  }

  for(auto& layout : window.state.layout) {
    geometry.x = geometry.y = 0;
    layout.setGeometry(geometry);
  }
  locked = false;
}
コード例 #6
0
ファイル: window.cpp プロジェクト: sorlok/Dubious-Dabblings
void pWindow::setGeometry(const Geometry &geometry) {
  locked = true;
  Geometry margin = frameMargin();
  SetWindowPos(
    hwnd, NULL,
    geometry.x - margin.x, geometry.y - margin.y,
    geometry.width + margin.width, geometry.height + margin.height,
    SWP_NOZORDER | SWP_FRAMECHANGED
  );
  SetWindowPos(hstatus, NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_FRAMECHANGED);
  for(auto &layout : window.state.layout) {
    Geometry geom = this->geometry();
    geom.x = geom.y = 0;
    layout.setGeometry(geom);
  }
  locked = false;
}
コード例 #7
0
ファイル: window.cpp プロジェクト: sorlok/Dubious-Dabblings
Geometry pWindow::geometry() {
  Geometry margin = frameMargin();

  RECT rc;
  if(IsIconic(hwnd)) {
    //GetWindowRect returns -32000(x),-32000(y) when window is minimized
    WINDOWPLACEMENT wp;
    GetWindowPlacement(hwnd, &wp);
    rc = wp.rcNormalPosition;
  } else {
    GetWindowRect(hwnd, &rc);
  }

  signed x = rc.left + margin.x;
  signed y = rc.top + margin.y;
  unsigned width = (rc.right - rc.left) - margin.width;
  unsigned height = (rc.bottom - rc.top) - margin.height;

  return { x, y, width, height };
}