NpcIntegerDialog::NpcIntegerDialog(): Window(_("NPC Input")) { setWindowName("NPCInput"); saveVisibility(false); mValueField = new IntTextField(0, "ok", this); okButton = new Button(_("OK"), "ok", this); cancelButton = new Button(_("Cancel"), "cancel", this); resetButton = new Button(_("Reset"), "reset", this); ContainerPlacer place; place = getPlacer(0, 0); place(0, 0, mValueField, 3); place.getCell().matchColWidth(1, 0); place = getPlacer(0, 1); place(0, 0, resetButton); place(2, 0, cancelButton); place(3, 0, okButton); setDefaultSize(175, 75, ImageRect::CENTER); loadWindowState(); }
TargetDebugTab::TargetDebugTab() { LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); mTargetLabel = new Label(strprintf("%s ?", _("Target:"))); mTargetIdLabel = new Label(strprintf("%s ? ", _("Target Id:"))); mTargetLevelLabel = new Label(strprintf("%s ?", _("Target level:"))); mTargetRaceLabel = new Label(strprintf("%s ?", _("Target race:"))); mTargetPartyLabel = new Label(strprintf("%s ?", _("Target party:"))); mTargetGuildLabel = new Label(strprintf("%s ?", _("Target guild:"))); mAttackDelayLabel = new Label(strprintf("%s ?", _("Attack delay:"))); mMinHitLabel = new Label(strprintf("%s ?", _("Minimal hit:"))); mMaxHitLabel = new Label(strprintf("%s ?", _("Maximum hit:"))); mCriticalHitLabel = new Label(strprintf("%s ?", _("Critical hit:"))); place(0, 0, mTargetLabel, 2); place(0, 1, mTargetIdLabel, 2); place(0, 2, mTargetLevelLabel, 2); place(0, 3, mTargetRaceLabel, 2); place(0, 4, mAttackDelayLabel, 2); place(0, 5, mTargetPartyLabel, 2); place(0, 6, mTargetGuildLabel, 2); place(0, 7, mMinHitLabel, 2); place(0, 8, mMaxHitLabel, 2); place(0, 9, mCriticalHitLabel, 2); place.getCell().matchColWidth(0, 0); place = h.getPlacer(0, 1); setDimension(gcn::Rectangle(0, 0, 600, 300)); }
void CharCreateDialog::fontChanged() { Window::fontChanged(); if (mWidgets.size() > 0) clear(); ContainerPlacer place; place = getPlacer(0, 0); place(0, 0, mNameLabel, 1); place(1, 0, mNameField, 6); place(0, 1, mHairStyleLabel, 1); place(1, 1, mPrevHairStyleButton); place(2, 1, mBeingBox, 1, 8).setPadding(3); place(3, 1, mNextHairStyleButton); place(0, 2, mHairColorLabel, 1); place(1, 2, mPrevHairColorButton); place(3, 2, mNextHairColorButton); place.getCell().matchColWidth(0, 2); place = getPlacer(0, 2); place(4, 0, mCancelButton); place(5, 0, mCreateButton); reflowLayout(225, 0); restoreFocus(); }
MapDebugTab::MapDebugTab() : mTexturesLabel(nullptr) { LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); mMusicFileLabel = new Label(strprintf(_("Music:"))); mMapLabel = new Label(strprintf(_("Map:"))); mMinimapLabel = new Label(strprintf(_("Minimap:"))); mTileMouseLabel = new Label(strprintf("%s (%d, %d)", _("Cursor:"), 0, 0)); mXYLabel = new Label(strprintf("%s (?,?)", _("Player Position:"))); mParticleCountLabel = new Label(strprintf("%s %d", _("Particle count:"), 88888)); mMapActorCountLabel = new Label(strprintf("%s %d", _("Map actors count:"), 88888)); mUpdateTime = 0; #ifdef USE_OPENGL switch (imageHelper->useOpenGL()) { case 0: mFPSText = _("%d FPS (Software)"); break; case 1: default: mFPSText = _("%d FPS (fast OpenGL)"); break; case 2: mFPSText = _("%d FPS (old OpenGL)"); break; }; #else mFPSText = _("%d FPS (Software)"); #endif mFPSLabel = new Label(strprintf(_("%d FPS"), 0)); mLPSLabel = new Label(strprintf(_("%d LPS"), 0)); place(0, 0, mFPSLabel, 2); place(0, 1, mLPSLabel, 2); place(0, 2, mMusicFileLabel, 2); place(0, 3, mMapLabel, 2); place(0, 4, mMinimapLabel, 2); place(0, 5, mXYLabel, 2); place(0, 6, mTileMouseLabel, 2); place(0, 7, mParticleCountLabel, 2); place(0, 8, mMapActorCountLabel, 2); #ifdef USE_OPENGL #ifdef DEBUG_OPENGL_LEAKS mTexturesLabel = new Label(strprintf("%s %s", _("Textures count:"), "?")); place(0, 9, mTexturesLabel, 2); #endif #endif place.getCell().matchColWidth(0, 0); place = h.getPlacer(0, 1); setDimension(gcn::Rectangle(0, 0, 600, 300)); }
CharCreateDialog::CharCreateDialog(Window *parent, int slot, Gender gender): Window(_("Create Character"), true, parent), mSlot(slot) { mPlayer = new Player(0, 0, NULL); mPlayer->setGender(gender); int numberOfHairColors = ColorDB::size(); mPlayer->setHairStyle(rand() % mPlayer->getNumOfHairstyles(), rand() % numberOfHairColors); mNameField = new TextField(""); mNameLabel = new Label(_("Name:")); mNextHairColorButton = new Button(">", "nextcolor", this); mPrevHairColorButton = new Button("<", "prevcolor", this); mHairColorLabel = new Label(_("Hair Color:")); mNextHairStyleButton = new Button(">", "nextstyle", this); mPrevHairStyleButton = new Button("<", "prevstyle", this); mHairStyleLabel = new Label(_("Hair Style:")); mCreateButton = new Button(_("Create"), "create", this); mCancelButton = new Button(_("Cancel"), "cancel", this); mBeingBox = new BeingBox(mPlayer); mBeingBox->setWidth(74); mNameField->setActionEventId("create"); mNameField->addActionListener(this); ContainerPlacer place; place = getPlacer(0, 0); place(0, 0, mNameLabel, 1); place(1, 0, mNameField, 6); place(0, 1, mHairStyleLabel, 1); place(1, 1, mPrevHairStyleButton); place(2, 1, mBeingBox, 1, 8).setPadding(3); place(3, 1, mNextHairStyleButton); place(0, 2, mHairColorLabel, 1); place(1, 2, mPrevHairColorButton); place(3, 2, mNextHairColorButton); place.getCell().matchColWidth(0, 2); place = getPlacer(0, 2); place(4, 0, mCancelButton); place(5, 0, mCreateButton); reflowLayout(225, 0); setLocationRelativeTo(getParent()); setVisible(true); mNameField->requestFocus(); }
CharSelectDialog::CharSelectDialog(LockedArray<LocalPlayer*> *charInfo, Gender gender): Window(_("Select Character")), mCharInfo(charInfo), mGender(gender), mCharSelected(false) { // Control that shows the Player mBeingBox = new BeingBox(); mBeingBox->setWidth(74); mNameLabel = new Label(strprintf(_("Name: %s"), "")); mLevelLabel = new Label(strprintf(_("Level: %d"), 0)); mJobLevelLabel = new Label(strprintf(_("Job Level: %d"), 0)); mMoneyLabel = new Label(strprintf(_("Money: %d"), 0)); const std::string tempString = getFont()->getWidth(_("New")) < getFont()->getWidth(_("Delete")) ? _("Delete") : _("New"); mPreviousButton = new Button(_("Previous"), "previous", this); mNextButton = new Button(_("Next"), "next", this); mNewDelCharButton = new Button(tempString, "newdel", this); mSelectButton = new Button(_("OK"), "ok", this); mCancelButton = new Button(_("Cancel"), "cancel", this); ContainerPlacer place; place = getPlacer(0, 0); place(0, 0, mBeingBox, 1, 6).setPadding(3); place(1, 0, mNewDelCharButton); place(1, 1, mNameLabel, 5); place(1, 2, mLevelLabel, 5); place(1, 3, mJobLevelLabel, 5); place(1, 4, mMoneyLabel, 5); place.getCell().matchColWidth(1, 4); place = getPlacer(0, 2); place(0, 0, mPreviousButton); place(1, 0, mNextButton); place(4, 0, mCancelButton); place(5, 0, mSelectButton); reflowLayout(250, 0); setLocationRelativeTo(getParent()); setVisible(true); mSelectButton->requestFocus(); updatePlayerInfo(); }
NetDebugTab::NetDebugTab() { LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); mPingLabel = new Label(" "); mInPackets1Label = new Label(" "); mOutPackets1Label = new Label(" "); place(0, 0, mPingLabel, 2); place(0, 1, mInPackets1Label, 2); place(0, 2, mOutPackets1Label, 2); place.getCell().matchColWidth(0, 0); place = h.getPlacer(0, 1); setDimension(gcn::Rectangle(0, 0, 600, 300)); }
InfoClanTab::InfoClanTab(const Widget2 *const widget) : Container(widget), mNameLabel(new Label(this, " ")), mMasterLabel(new Label(this, " ")), mMapLabel(new Label(this, " ")) { setSelectable(false); LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mNameLabel, 2, 1); place(0, 1, mMasterLabel, 2, 1); place(0, 2, mMapLabel, 2, 1); place.getCell().matchColWidth(0, 0); setDimension(Rect(0, 0, 600, 300)); }
Setup_Joystick::Setup_Joystick(): mCalibrateLabel(new Label(_("Press the button to start calibration"))), mCalibrateButton(new Button(_("Calibrate"), "calibrate", this)), mJoystickEnabled(new CheckBox(_("Enable joystick"))) { setName(_("Joystick")); mOriginalJoystickEnabled = !config.getBoolValue("joystickEnabled"); mJoystickEnabled->setSelected(mOriginalJoystickEnabled); mJoystickEnabled->addActionListener(this); // Do the layout LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mJoystickEnabled); place(0, 1, mCalibrateLabel); place.getCell().matchColWidth(0, 0); place = h.getPlacer(0, 1); place(0, 0, mCalibrateButton); setDimension(gcn::Rectangle(0, 0, 370, 75)); }
MapDebugTab::MapDebugTab(const Widget2 *const widget) : DebugTab(widget), // TRANSLATORS: debug window label mMusicFileLabel(new Label(this, _("Music:"))), // TRANSLATORS: debug window label mMapLabel(new Label(this, _("Map:"))), // TRANSLATORS: debug window label mMapNameLabel(new Label(this, _("Map name:"))), // TRANSLATORS: debug window label mMinimapLabel(new Label(this, _("Minimap:"))), mTileMouseLabel(new Label(this, strprintf("%s (%d, %d)", // TRANSLATORS: debug window label _("Cursor:"), 0, 0))), mParticleCountLabel(new Label(this, strprintf("%s %d", // TRANSLATORS: debug window label _("Particle count:"), 88888))), mMapActorCountLabel(new Label(this, strprintf("%s %d", // TRANSLATORS: debug window label _("Map actors count:"), 88888))), // TRANSLATORS: debug window label mXYLabel(new Label(this, strprintf("%s (?,?)", _("Player Position:")))), mTexturesLabel(nullptr), mUpdateTime(0), #ifdef DEBUG_DRAW_CALLS mDrawCallsLabel(new Label(this, strprintf("%s %s", // TRANSLATORS: debug window label _("Draw calls:"), "?"))), #endif // DEBUG_DRAW_CALLS #ifdef DEBUG_BIND_TEXTURE mBindsLabel(new Label(this, strprintf("%s %s", // TRANSLATORS: debug window label _("Texture binds:"), "?"))), #endif // DEBUG_BIND_TEXTURE // TRANSLATORS: debug window label, frames per second mFPSLabel(new Label(this, strprintf(_("%d FPS"), 0))), // TRANSLATORS: debug window label, logic per second mLPSLabel(new Label(this, strprintf(_("%d LPS"), 0))), mFPSText() { LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); #ifdef USE_OPENGL switch (imageHelper->useOpenGL()) { case RENDER_SOFTWARE: // TRANSLATORS: debug window label mFPSText = _("%d FPS (Software)"); break; case RENDER_NORMAL_OPENGL: case RENDER_NULL: case RENDER_LAST: default: // TRANSLATORS: debug window label mFPSText = _("%d FPS (normal OpenGL)"); break; case RENDER_SAFE_OPENGL: // TRANSLATORS: debug window label mFPSText = _("%d FPS (safe OpenGL)"); break; case RENDER_GLES_OPENGL: // TRANSLATORS: debug window label mFPSText = _("%d FPS (mobile OpenGL ES)"); break; case RENDER_GLES2_OPENGL: // TRANSLATORS: debug window label mFPSText = _("%d FPS (mobile OpenGL ES 2)"); break; case RENDER_MODERN_OPENGL: // TRANSLATORS: debug window label mFPSText = _("%d FPS (modern OpenGL)"); break; case RENDER_SDL2_DEFAULT: // TRANSLATORS: debug window label mFPSText = _("%d FPS (SDL2 default)"); break; }; #else // USE_OPENGL // TRANSLATORS: debug window label mFPSText = _("%d FPS (Software)"); #endif // USE_OPENGL place(0, 0, mFPSLabel, 2); place(0, 1, mLPSLabel, 2); place(0, 2, mMusicFileLabel, 2); place(0, 3, mMapLabel, 2); place(0, 4, mMapNameLabel, 2); place(0, 5, mMinimapLabel, 2); place(0, 6, mXYLabel, 2); place(0, 7, mTileMouseLabel, 2); place(0, 8, mParticleCountLabel, 2); place(0, 9, mMapActorCountLabel, 2); #ifdef USE_OPENGL #if defined (DEBUG_OPENGL_LEAKS) || defined(DEBUG_DRAW_CALLS) \ || defined(DEBUG_BIND_TEXTURE) int n = 10; #endif // defined (DEBUG_OPENGL_LEAKS) || defined(DEBUG_DRAW_CALLS) // || defined(DEBUG_BIND_TEXTURE) #ifdef DEBUG_OPENGL_LEAKS mTexturesLabel = new Label(this, strprintf("%s %s", // TRANSLATORS: debug window label _("Textures count:"), "?")); place(0, n, mTexturesLabel, 2); n ++; #endif // DEBUG_OPENGL_LEAKS #ifdef DEBUG_DRAW_CALLS place(0, n, mDrawCallsLabel, 2); n ++; #endif // DEBUG_DRAW_CALLS #ifdef DEBUG_BIND_TEXTURE place(0, n, mBindsLabel, 2); #endif // DEBUG_BIND_TEXTURE #endif // USE_OPENGL place.getCell().matchColWidth(0, 0); place = h.getPlacer(0, 1); setDimension(Rect(0, 0, 600, 300)); }
Setup_Video::Setup_Video(): mFullScreenEnabled(config.getBoolValue("screen")), mOpenGLEnabled(config.getBoolValue("opengl")), mCustomCursorEnabled(config.getBoolValue("customcursor")), mParticleEffectsEnabled(config.getBoolValue("particleeffects")), mFps(config.getIntValue("fpslimit")), mSDLTransparencyDisabled(config.getBoolValue("disableTransparency")), mModeListModel(new ModeListModel), mModeList(new ListBox(mModeListModel)), mFsCheckBox(new CheckBox(_("Full screen"), mFullScreenEnabled)), mOpenGLCheckBox(new CheckBox(_("OpenGL"), mOpenGLEnabled)), mCustomCursorCheckBox(new CheckBox(_("Custom cursor"), mCustomCursorEnabled)), mParticleEffectsCheckBox(new CheckBox(_("Particle effects"), mParticleEffectsEnabled)), mFpsCheckBox(new CheckBox(_("FPS limit:"))), mFpsSlider(new Slider(10, 120)), mFpsLabel(new Label), mOverlayDetail(config.getIntValue("OverlayDetail")), mOverlayDetailSlider(new Slider(0, 2)), mOverlayDetailField(new Label), mParticleDetail(3 - config.getIntValue("particleEmitterSkip")), mParticleDetailSlider(new Slider(0, 3)), mParticleDetailField(new Label), mDisableSDLTransparencyCheckBox( new CheckBox(_("Disable transparency (Low CPU mode)"), mSDLTransparencyDisabled)) { setName(_("Video")); Spacer *space = new Spacer(0,10); ScrollArea *scrollArea = new ScrollArea(mModeList); scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); scrollArea->setSize(100, 200); overlayDetailLabel = new Label(_("Ambient FX:")); particleDetailLabel = new Label(_("Particle detail:")); mModeList->setEnabled(true); #ifndef USE_OPENGL mOpenGLCheckBox->setEnabled(false); #endif mFpsLabel->setCaption(mFps > 0 ? toString(mFps) : _("None")); mFpsLabel->setWidth(60); mFpsSlider->setValue(mFps); mFpsSlider->setEnabled(mFps > 0); mFpsCheckBox->setSelected(mFps > 0); overlayDetailLabel->setAlignment(Graphics::RIGHT); particleDetailLabel->setAlignment(Graphics::RIGHT); // If the openGL Mode is enabled, disabling the transaprency // is irrelevant. mDisableSDLTransparencyCheckBox->setEnabled(!mOpenGLEnabled); // Pre-select the current video mode. std::string videoMode = toString(graphics->getWidth()) + "x" + toString(graphics->getHeight()); mModeList->setSelected(mModeListModel->getIndexOf(videoMode)); // Set actions mModeList->setActionEventId("videomode"); mCustomCursorCheckBox->setActionEventId("customcursor"); mParticleEffectsCheckBox->setActionEventId("particleeffects"); mDisableSDLTransparencyCheckBox->setActionEventId("disableTransparency"); mFpsCheckBox->setActionEventId("fpslimitcheckbox"); mFpsSlider->setActionEventId("fpslimitslider"); mOverlayDetailSlider->setActionEventId("overlaydetailslider"); mOverlayDetailField->setActionEventId("overlaydetailfield"); mOpenGLCheckBox->setActionEventId("opengl"); mParticleDetailSlider->setActionEventId("particledetailslider"); mParticleDetailField->setActionEventId("particledetailfield"); // Set listeners mModeList->addActionListener(this); mCustomCursorCheckBox->addActionListener(this); mOpenGLCheckBox->addActionListener(this); mParticleEffectsCheckBox->addActionListener(this); mDisableSDLTransparencyCheckBox->addActionListener(this); mFpsCheckBox->addActionListener(this); mFpsSlider->addActionListener(this); mOverlayDetailSlider->addActionListener(this); mOverlayDetailField->addKeyListener(this); mParticleDetailSlider->addActionListener(this); mParticleDetailField->addKeyListener(this); mOverlayDetailField->setCaption(overlayDetailToString(mOverlayDetail)); mOverlayDetailSlider->setValue(mOverlayDetail); mParticleDetailField->setCaption(particleDetailToString(mParticleDetail)); mParticleDetailSlider->setValue(mParticleDetail); // Do the layout ContainerPlacer place = getPlacer(0, 0); place.getCell().setHAlign(LayoutCell::FILL); place(0, 0, scrollArea, 1, 4).setPadding(2).setHAlign(LayoutCell::FILL); place(1, 0, space, 1, 4); place(2, 0, mFsCheckBox); place(2, 1, mOpenGLCheckBox); place(2, 2, mCustomCursorCheckBox); place = getPlacer(0, 1); place.getCell().setHAlign(LayoutCell::FILL); place(0, 0, space, 3); place(0, 1, mDisableSDLTransparencyCheckBox, 4); place(0, 2, mFpsCheckBox); place(1, 2, mFpsSlider, 2); place(3, 2, mFpsLabel); place(0, 3, mParticleEffectsCheckBox, 4); place(0, 4, particleDetailLabel); place(1, 4, mParticleDetailSlider, 2); place(3, 4, mParticleDetailField); place(0, 5, overlayDetailLabel); place(1, 5, mOverlayDetailSlider, 2); place(3, 5, mOverlayDetailField); }
StatusWindow::StatusWindow(LocalPlayer *player): Window(player->getName()), mPlayer(player), mCurrency(0) { setWindowName("Status"); setCloseButton(true); setSaveVisible(true); setDefaultSize(400, 345, ImageRect::CENTER); // ---------------------- // Status Part // ---------------------- mLvlLabel = new Label(strprintf(_("Level: %d"), 0)); mJobLvlLabel = new Label(strprintf(_("Job: %d"), 0)); mGpLabel = new Label(strprintf(_("Money: %s"), Units::formatCurrency(mCurrency).c_str())); mHpLabel = new Label(_("HP:")); mHpBar = new ProgressBar(0.0f, 80, 15, gcn::Color(0, 171, 34)); mXpLabel = new Label(_("Exp:")); mXpBar = new ProgressBar(0.0f, 80, 15, gcn::Color(143, 192, 211)); mMpLabel = new Label(_("MP:")); mMpBar = new ProgressBar(0.0f, 80, 15, gcn::Color(26, 102, 230)); mJobLabel = new Label(_("Job:")); mJobBar = new ProgressBar(0.0f, 80, 15, gcn::Color(220, 135, 203)); // ---------------------- // Stats Part // ---------------------- // Static Labels gcn::Label *mStatsTitleLabel = new Label(_("Stats")); gcn::Label *mStatsTotalLabel = new Label(_("Total")); gcn::Label *mStatsCostLabel = new Label(_("Cost")); mStatsTotalLabel->setAlignment(gcn::Graphics::CENTER); // Derived Stats mStatsAttackLabel = new Label(_("Attack:")); mStatsDefenseLabel= new Label(_("Defense:")); mStatsMagicAttackLabel = new Label(_("M.Attack:")); mStatsMagicDefenseLabel = new Label(_("M.Defense:")); // Gettext flag for next line: xgettext:no-c-format mStatsAccuracyLabel = new Label(_("% Accuracy:")); // Gettext flag for next line: xgettext:no-c-format mStatsEvadeLabel = new Label(_("% Evade:")); // Gettext flag for next line: xgettext:no-c-format mStatsReflexLabel = new Label(_("% Reflex:")); mStatsAttackPoints = new Label; mStatsDefensePoints = new Label; mStatsMagicAttackPoints = new Label; mStatsMagicDefensePoints = new Label; mStatsAccuracyPoints = new Label; mStatsEvadePoints = new Label; mStatsReflexPoints = new Label; // New labels for (int i = 0; i < 6; i++) { mStatsLabel[i] = new Label("0"); mStatsLabel[i]->setAlignment(gcn::Graphics::CENTER); mStatsDisplayLabel[i] = new Label; mPointsLabel[i] = new Label("0"); mPointsLabel[i]->setAlignment(gcn::Graphics::CENTER); } mRemainingStatsPointsLabel = new Label; // Set button events Id mStatsButton[0] = new Button("+", "STR", this); mStatsButton[1] = new Button("+", "AGI", this); mStatsButton[2] = new Button("+", "VIT", this); mStatsButton[3] = new Button("+", "INT", this); mStatsButton[4] = new Button("+", "DEX", this); mStatsButton[5] = new Button("+", "LUK", this); // Assemble ContainerPlacer place; place = getPlacer(0, 0); place(0, 0, mLvlLabel, 3); place(5, 0, mJobLvlLabel, 3); place(8, 0, mGpLabel, 3); place(0, 1, mHpLabel).setPadding(3); place(1, 1, mHpBar, 4); place(5, 1, mXpLabel).setPadding(3); place(6, 1, mXpBar, 5); place(0, 2, mMpLabel).setPadding(3); place(1, 2, mMpBar, 4); place(5, 2, mJobLabel).setPadding(3); place(6, 2, mJobBar, 5); place.getCell().matchColWidth(0, 1); place = getPlacer(0, 3); place(0, 1, mStatsTitleLabel, 5); place(5, 1, mStatsTotalLabel, 5); place(12, 1, mStatsCostLabel, 5); for (int i = 0; i < 6; i++) { place(0, 2 + i, mStatsLabel[i], 7).setPadding(5); place(7, 2 + i, mStatsDisplayLabel[i]).setPadding(5); place(10, 2 + i, mStatsButton[i]); place(12, 2 + i, mPointsLabel[i]).setPadding(5); } place(14, 2, mStatsAttackLabel, 7).setPadding(5); place(14, 3, mStatsDefenseLabel, 7).setPadding(5); place(14, 4, mStatsMagicAttackLabel, 7).setPadding(5); place(14, 5, mStatsMagicDefenseLabel, 7).setPadding(5); place(14, 6, mStatsAccuracyLabel, 7).setPadding(5); place(14, 7, mStatsEvadeLabel, 7).setPadding(5); place(14, 8, mStatsReflexLabel, 7).setPadding(5); place(21, 2, mStatsAttackPoints, 3).setPadding(5); place(21, 3, mStatsDefensePoints, 3).setPadding(5); place(21, 4, mStatsMagicAttackPoints, 3).setPadding(5); place(21, 5, mStatsMagicDefensePoints, 3).setPadding(5); place(21, 6, mStatsAccuracyPoints, 3).setPadding(5); place(21, 7, mStatsEvadePoints, 3).setPadding(5); place(21, 8, mStatsReflexPoints, 3).setPadding(5); place(0, 8, mRemainingStatsPointsLabel, 3).setPadding(5); Layout &layout = getLayout(); layout.setRowHeight(0, Layout::AUTO_SET); loadWindowState(); }