MCPcopy Create free account
hub / github.com/NetHack/NetHack / resizePaperDoll

Method resizePaperDoll

win/Qt/qt_main.cpp:1267–1312  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1265#endif
1266
1267void NetHackQtMainWindow::resizePaperDoll(bool showdoll)
1268{
1269#ifdef ENHANCED_PAPERDOLL
1270 // this is absurd...
1271 NetHackQtInvUsageWindow *w = static_cast <NetHackQtMainWindow *>
1272 (NetHackQtBind::mainWidget())->invusage;
1273 QList<int> hsplittersizes = hsplitter->sizes(),
1274 vsplittersizes = vsplitter->sizes();
1275 w->resize(w->sizeHint());
1276
1277 int oldwidth = hsplittersizes[1],
1278 newwidth = w->width();
1279 if (newwidth != oldwidth) {
1280 if (oldwidth > newwidth)
1281 hsplittersizes[0] += (oldwidth - newwidth);
1282 else
1283 hsplittersizes[2] += (newwidth - oldwidth);
1284 hsplittersizes[1] = newwidth;
1285 hsplitter->setSizes(hsplittersizes);
1286 }
1287
1288 // Height limit is 48+2 pixels per doll cell plus 1 pixel margin at top;
1289 // values greater than 44+2 need taller window which pushes the map down
1290 // (when font size 'Large' is used for messages and status; threshold
1291 // may vary by 1 or 2 for other sizes).
1292 // FIXME: this doesn't shrink the window back if size is reduced from 45+
1293 int oldheight = vsplittersizes[0],
1294 newheight = w->height();
1295 if (newheight > oldheight && oldheight > 0 && vsplittersizes[1] > 0) {
1296 vsplittersizes[0] = newheight;
1297 vsplitter->setSizes(vsplittersizes);
1298 }
1299
1300 if (showdoll) {
1301 if (w->isHidden())
1302 w->show();
1303 else
1304 w->repaint();
1305 } else {
1306 if (w->isVisible())
1307 w->hide();
1308 }
1309#else
1310 nhUse(showdoll);
1311#endif /* ENHANCED_PAPERDOLL */
1312}
1313
1314void NetHackQtMainWindow::resizeEvent(QResizeEvent*)
1315{

Callers 1

resizeDollMethod · 0.80

Calls 5

repaintMethod · 0.60
sizeHintMethod · 0.45
widthMethod · 0.45
heightMethod · 0.45
showMethod · 0.45

Tested by

no test coverage detected