Commit 239a6eb03a4db2ce3083c6543c6675851f79adda
1 parent
0188a6ba
LiteLoader 1.6.4_02 - experimental - remove parent gui reference from config panel container
Showing
2 changed files
with
57 additions
and
35 deletions
java/com/mumfrey/liteloader/gui/GuiConfigPanelContainer.java
| @@ -28,11 +28,6 @@ public class GuiConfigPanelContainer extends Gui implements ConfigPanelHost | @@ -28,11 +28,6 @@ public class GuiConfigPanelContainer extends Gui implements ConfigPanelHost | ||
| 28 | private static final int MARGIN = 12; | 28 | private static final int MARGIN = 12; |
| 29 | 29 | ||
| 30 | /** | 30 | /** |
| 31 | - * Parent screen | ||
| 32 | - */ | ||
| 33 | - private GuiScreenModInfo parent; | ||
| 34 | - | ||
| 35 | - /** | ||
| 36 | * Minecraft | 31 | * Minecraft |
| 37 | */ | 32 | */ |
| 38 | private Minecraft mc; | 33 | private Minecraft mc; |
| @@ -88,17 +83,21 @@ public class GuiConfigPanelContainer extends Gui implements ConfigPanelHost | @@ -88,17 +83,21 @@ public class GuiConfigPanelContainer extends Gui implements ConfigPanelHost | ||
| 88 | private int panelTop = TOP; | 83 | private int panelTop = TOP; |
| 89 | 84 | ||
| 90 | /** | 85 | /** |
| 86 | + * True if the client wants to close the panel | ||
| 87 | + */ | ||
| 88 | + private boolean closeRequested; | ||
| 89 | + | ||
| 90 | + /** | ||
| 91 | * @param parent | 91 | * @param parent |
| 92 | * @param minecraft | 92 | * @param minecraft |
| 93 | * @param panel | 93 | * @param panel |
| 94 | * @param mod | 94 | * @param mod |
| 95 | */ | 95 | */ |
| 96 | - GuiConfigPanelContainer(GuiScreenModInfo parent, Minecraft minecraft, ConfigPanel panel, LiteMod mod) | 96 | + GuiConfigPanelContainer(ConfigPanel panel, LiteMod mod) |
| 97 | { | 97 | { |
| 98 | - this.parent = parent; | ||
| 99 | - this.mc = minecraft; | ||
| 100 | - this.panel = panel; | ||
| 101 | - this.mod = mod; | 98 | + this.mc = Minecraft.getMinecraft(); |
| 99 | + this.panel = panel; | ||
| 100 | + this.mod = mod; | ||
| 102 | } | 101 | } |
| 103 | 102 | ||
| 104 | /** | 103 | /** |
| @@ -137,14 +136,22 @@ public class GuiConfigPanelContainer extends Gui implements ConfigPanelHost | @@ -137,14 +136,22 @@ public class GuiConfigPanelContainer extends Gui implements ConfigPanelHost | ||
| 137 | { | 136 | { |
| 138 | return this.panelHeight; | 137 | return this.panelHeight; |
| 139 | } | 138 | } |
| 140 | - | 139 | + |
| 141 | /* (non-Javadoc) | 140 | /* (non-Javadoc) |
| 142 | * @see com.mumfrey.liteloader.modconfig.ConfigPanelHost#close() | 141 | * @see com.mumfrey.liteloader.modconfig.ConfigPanelHost#close() |
| 143 | */ | 142 | */ |
| 144 | @Override | 143 | @Override |
| 145 | public void close() | 144 | public void close() |
| 146 | { | 145 | { |
| 147 | - this.parent.closeConfigPanel(this); | 146 | + this.closeRequested = true; |
| 147 | + } | ||
| 148 | + | ||
| 149 | + /** | ||
| 150 | + * Get whether the client wants to close the panel | ||
| 151 | + */ | ||
| 152 | + boolean isCloseRequested() | ||
| 153 | + { | ||
| 154 | + return this.closeRequested; | ||
| 148 | } | 155 | } |
| 149 | 156 | ||
| 150 | /** | 157 | /** |
java/com/mumfrey/liteloader/gui/GuiScreenModInfo.java
| @@ -353,24 +353,7 @@ public class GuiScreenModInfo extends GuiScreen | @@ -353,24 +353,7 @@ public class GuiScreenModInfo extends GuiScreen | ||
| 353 | } | 353 | } |
| 354 | else | 354 | else |
| 355 | { | 355 | { |
| 356 | - // Draw the header pieces | ||
| 357 | - glDrawTexturedRect(LEFT_EDGE + MARGIN, 12, 128, 40, 0, 0, 256, 80, 1.0F); // liteloader logo | ||
| 358 | - glDrawTexturedRect(this.width - 32 - MARGIN, 12, 32, 45, 0, 80, 64, 170, 1.0F); // chicken | ||
| 359 | - | ||
| 360 | - // Draw header text | ||
| 361 | - this.fontRenderer.drawString("Version " + LiteLoader.getVersion(), LEFT_EDGE + MARGIN + 38, 50, 0xFFFFFFFF); | ||
| 362 | - this.fontRenderer.drawString(this.activeModText, LEFT_EDGE + MARGIN + 38, 60, 0xFFAAAAAA); | ||
| 363 | - | ||
| 364 | - // Draw top and bottom horizontal rules | ||
| 365 | - drawRect(LEFT_EDGE + MARGIN, 80, this.width - MARGIN, 81, 0xFF999999); | ||
| 366 | - drawRect(LEFT_EDGE + MARGIN, this.height - PANEL_BOTTOM + 2, this.width - MARGIN, this.height - PANEL_BOTTOM + 3, 0xFF999999); | ||
| 367 | - | ||
| 368 | - int innerWidth = this.width - LEFT_EDGE - MARGIN - MARGIN - 4; | ||
| 369 | - int panelWidth = innerWidth / 2; | ||
| 370 | - int panelHeight = this.height - PANEL_BOTTOM - PANEL_TOP; | ||
| 371 | - | ||
| 372 | - this.drawModsList(mouseX, mouseY, partialTicks, panelWidth, panelHeight); | ||
| 373 | - this.drawSelectedMod(mouseX, mouseY, partialTicks, panelWidth, panelHeight); | 356 | + this.drawInfoPanel(mouseX, mouseY, partialTicks); |
| 374 | 357 | ||
| 375 | // Draw other controls inside the transform so that they slide properly | 358 | // Draw other controls inside the transform so that they slide properly |
| 376 | super.drawScreen(mouseX, mouseY, partialTicks); | 359 | super.drawScreen(mouseX, mouseY, partialTicks); |
| @@ -378,9 +361,8 @@ public class GuiScreenModInfo extends GuiScreen | @@ -378,9 +361,8 @@ public class GuiScreenModInfo extends GuiScreen | ||
| 378 | } | 361 | } |
| 379 | else if (this.configPanel != null) | 362 | else if (this.configPanel != null) |
| 380 | { | 363 | { |
| 381 | - this.closeConfigPanel(this.configPanel); | 364 | + this.closeConfigPanel(); |
| 382 | } | 365 | } |
| 383 | - | ||
| 384 | 366 | ||
| 385 | glPopMatrix(); | 367 | glPopMatrix(); |
| 386 | } | 368 | } |
| @@ -392,6 +374,12 @@ public class GuiScreenModInfo extends GuiScreen | @@ -392,6 +374,12 @@ public class GuiScreenModInfo extends GuiScreen | ||
| 392 | */ | 374 | */ |
| 393 | public void drawConfigPanel(int mouseX, int mouseY, float partialTicks) | 375 | public void drawConfigPanel(int mouseX, int mouseY, float partialTicks) |
| 394 | { | 376 | { |
| 377 | + if (this.configPanel.isCloseRequested()) | ||
| 378 | + { | ||
| 379 | + this.closeConfigPanel(); | ||
| 380 | + return; | ||
| 381 | + } | ||
| 382 | + | ||
| 395 | glPushMatrix(); | 383 | glPushMatrix(); |
| 396 | glTranslatef(LEFT_EDGE, 0, 0); | 384 | glTranslatef(LEFT_EDGE, 0, 0); |
| 397 | 385 | ||
| @@ -404,6 +392,33 @@ public class GuiScreenModInfo extends GuiScreen | @@ -404,6 +392,33 @@ public class GuiScreenModInfo extends GuiScreen | ||
| 404 | * @param mouseX | 392 | * @param mouseX |
| 405 | * @param mouseY | 393 | * @param mouseY |
| 406 | * @param partialTicks | 394 | * @param partialTicks |
| 395 | + */ | ||
| 396 | + public void drawInfoPanel(int mouseX, int mouseY, float partialTicks) | ||
| 397 | + { | ||
| 398 | + // Draw the header pieces | ||
| 399 | + glDrawTexturedRect(LEFT_EDGE + MARGIN, 12, 128, 40, 0, 0, 256, 80, 1.0F); // liteloader logo | ||
| 400 | + glDrawTexturedRect(this.width - 32 - MARGIN, 12, 32, 45, 0, 80, 64, 170, 1.0F); // chicken | ||
| 401 | + | ||
| 402 | + // Draw header text | ||
| 403 | + this.fontRenderer.drawString("Version " + LiteLoader.getVersion(), LEFT_EDGE + MARGIN + 38, 50, 0xFFFFFFFF); | ||
| 404 | + this.fontRenderer.drawString(this.activeModText, LEFT_EDGE + MARGIN + 38, 60, 0xFFAAAAAA); | ||
| 405 | + | ||
| 406 | + // Draw top and bottom horizontal rules | ||
| 407 | + drawRect(LEFT_EDGE + MARGIN, 80, this.width - MARGIN, 81, 0xFF999999); | ||
| 408 | + drawRect(LEFT_EDGE + MARGIN, this.height - PANEL_BOTTOM + 2, this.width - MARGIN, this.height - PANEL_BOTTOM + 3, 0xFF999999); | ||
| 409 | + | ||
| 410 | + int innerWidth = this.width - LEFT_EDGE - MARGIN - MARGIN - 4; | ||
| 411 | + int panelWidth = innerWidth / 2; | ||
| 412 | + int panelHeight = this.height - PANEL_BOTTOM - PANEL_TOP; | ||
| 413 | + | ||
| 414 | + this.drawModsList(mouseX, mouseY, partialTicks, panelWidth, panelHeight); | ||
| 415 | + this.drawSelectedMod(mouseX, mouseY, partialTicks, panelWidth, panelHeight); | ||
| 416 | + } | ||
| 417 | + | ||
| 418 | + /** | ||
| 419 | + * @param mouseX | ||
| 420 | + * @param mouseY | ||
| 421 | + * @param partialTicks | ||
| 407 | * @param width | 422 | * @param width |
| 408 | * @param height | 423 | * @param height |
| 409 | */ | 424 | */ |
| @@ -672,7 +687,7 @@ public class GuiScreenModInfo extends GuiScreen | @@ -672,7 +687,7 @@ public class GuiScreenModInfo extends GuiScreen | ||
| 672 | this.configPanel.onHidden(); | 687 | this.configPanel.onHidden(); |
| 673 | } | 688 | } |
| 674 | 689 | ||
| 675 | - this.configPanel = new GuiConfigPanelContainer(this, this.mc, panel, this.selectedMod.getModInstance()); | 690 | + this.configPanel = new GuiConfigPanelContainer(panel, this.selectedMod.getModInstance()); |
| 676 | this.configPanel.setSize(this.width - LEFT_EDGE, this.height); | 691 | this.configPanel.setSize(this.width - LEFT_EDGE, this.height); |
| 677 | this.configPanel.onShown(); | 692 | this.configPanel.onShown(); |
| 678 | } | 693 | } |
| @@ -682,9 +697,9 @@ public class GuiScreenModInfo extends GuiScreen | @@ -682,9 +697,9 @@ public class GuiScreenModInfo extends GuiScreen | ||
| 682 | /* (non-Javadoc) | 697 | /* (non-Javadoc) |
| 683 | * @see com.mumfrey.liteloader.modconfig.ConfigPanelHost#close() | 698 | * @see com.mumfrey.liteloader.modconfig.ConfigPanelHost#close() |
| 684 | */ | 699 | */ |
| 685 | - void closeConfigPanel(GuiConfigPanelContainer container) | 700 | + private void closeConfigPanel() |
| 686 | { | 701 | { |
| 687 | - if (this.configPanel != null && (container == null || this.configPanel == container)) | 702 | + if (this.configPanel != null) |
| 688 | { | 703 | { |
| 689 | this.configPanel.onHidden(); | 704 | this.configPanel.onHidden(); |
| 690 | this.configPanel = null; | 705 | this.configPanel = null; |