void uiWindowNode::doLayout (uiNode_t* node) { if (!node->invalidated) return; /* use a the space */ if (EXTRADATA(node).fill) { if (node->box.size[0] != viddef.virtualWidth) { node->box.size[0] = viddef.virtualWidth; } if (node->box.size[1] != viddef.virtualHeight) { node->box.size[1] = viddef.virtualHeight; } } /* move fullscreen window on the center of the screen */ if (UI_WindowIsFullScreen(node)) { node->box.pos[0] = (int) ((viddef.virtualWidth - node->box.size[0]) / 2); node->box.pos[1] = (int) ((viddef.virtualHeight - node->box.size[1]) / 2); } /** @todo check and fix here window outside the screen */ if (EXTRADATA(node).starLayout) { UI_StarLayout(node); } /* super */ uiLocatedNode::doLayout(node); }
void uiWindowNode::doLayout (uiNode_t* node) { if (!node->invalidated) return; /* use a the space */ if (EXTRADATA(node).fill) { if (node->box.size[0] != viddef.virtualWidth) { node->box.size[0] = viddef.virtualWidth; } if (node->box.size[1] != viddef.virtualHeight) { node->box.size[1] = viddef.virtualHeight; } } /* move fullscreen window on the center of the screen */ if (UI_WindowIsFullScreen(node)) { node->box.pos[0] = (int) ((viddef.virtualWidth - node->box.size[0]) / 2); node->box.pos[1] = (int) ((viddef.virtualHeight - node->box.size[1]) / 2); } /* reposition the close button */ if (EXTRADATA(node).closeButton) { uiNode_t* control = UI_FindNode(node, WINDOW_CLOSE_BUTTON_NAME); control->box.pos[0] = node->box.size[0] - CONTROLS_PADDING - control->box.size[0]; } /* resize the dragw button */ if (EXTRADATA(node).dragButton) { uiNode_t* control = UI_FindNode(node, WINDOW_DRAG_BUTTON_NAME); control->box.size[0] = node->box.size[0]; } /** @todo check and fix here window outside the screen */ if (EXTRADATA(node).starLayout) { UI_StarLayout(node); } /* super */ uiLocatedNode::doLayout(node); }
static void UI_PanelNodeDoLayout (uiNode_t *node) { if (!node->invalidated) return; switch (EXTRADATA(node).layout) { case LAYOUT_NONE: break; case LAYOUT_TOP_DOWN_FLOW: UI_TopDownFlowLayout(node, EXTRADATA(node).layoutMargin); break; case LAYOUT_LEFT_RIGHT_FLOW: UI_LeftRightFlowLayout(node, EXTRADATA(node).layoutMargin); break; case LAYOUT_BORDER: UI_BorderLayout(node, EXTRADATA(node).layoutMargin); break; case LAYOUT_PACK: UI_PackLayout(node, EXTRADATA(node).layoutMargin); break; case LAYOUT_STAR: UI_StarLayout(node); break; case LAYOUT_CLIENT: UI_ClientLayout(node); break; case LAYOUT_COLUMN: UI_ColumnLayout(node); break; default: Com_Printf("UI_PanelNodeDoLayout: layout '%d' unsupported.", EXTRADATA(node).layout); break; } localBehaviour->super->doLayout(node); }