diff options
| author | Fuwn <[email protected]> | 2026-02-12 22:33:32 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-12 22:33:32 -0800 |
| commit | c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9 (patch) | |
| tree | df9f48bf128a6c0186a8e91857d6ff30fe0e9f18 /NET/worlds/console/GammaFrame.java | |
| download | worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.tar.xz worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.zip | |
Initial commit
Diffstat (limited to 'NET/worlds/console/GammaFrame.java')
| -rw-r--r-- | NET/worlds/console/GammaFrame.java | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/NET/worlds/console/GammaFrame.java b/NET/worlds/console/GammaFrame.java new file mode 100644 index 0000000..4aec0db --- /dev/null +++ b/NET/worlds/console/GammaFrame.java @@ -0,0 +1,144 @@ +package NET.worlds.console; + +import NET.worlds.core.Std; +import NET.worlds.scape.EditTile; +import NET.worlds.scape.LibrariesTile; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Container; +import java.awt.Event; +import java.awt.Frame; + +public class GammaFrame extends Frame implements DialogDisabled { + private static final long serialVersionUID = 2725752068161032112L; + private Container consoleTile; + private Tree treeTile; + private EditTile editTile; + private LibrariesTile librariesTile; + private FourTilePanel fourTile; + private boolean isDialogDisabled; + + @Override + public boolean handleEvent(Event e) { + if (this.isDialogDisabled) { + return false; + } else { + Console c = Console.getActive(); + if (c != null && c.handleEvent(e)) { + return true; + } else { + return e.id == 201 ? Console.maybeQuit() : super.handleEvent(e); + } + } + } + + public static String getDefaultTitle() { + return Std.getProductName(); + } + + public GammaFrame() { + super(getDefaultTitle()); + } + + @Override + public void show() { + Gamma.hideSplash(); + Window.allowFGJavaPalette(false); + Console cons = Console.getActive(); + if (cons instanceof DefaultConsole) { + ((DefaultConsole)cons).setOrthoEnabled(this.isShaperVisible()); + } + + super.show(); + } + + public Container getConsoleTile() { + this.makeTiles(); + return this.consoleTile; + } + + public Tree getTreeTile() { + this.makeTiles(); + return this.treeTile; + } + + public EditTile getEditTile() { + this.makeTiles(); + return this.editTile; + } + + public LibrariesTile getLibrariesTile() { + this.makeTiles(); + return this.librariesTile; + } + + private void makeTiles() { + if (this.consoleTile == null) { + if (Gamma.getShaper() == null) { + this.consoleTile = this; + } else { + this.consoleTile = new ExposedPanel(); + this.treeTile = new Tree(); + this.editTile = new EditTile(this.treeTile); + this.librariesTile = new LibrariesTile(); + this.setLayout(new BorderLayout()); + this.fourTile = new FourTilePanel(this.librariesTile, this.consoleTile, this.treeTile, this.editTile, 1); + this.add("Center", this.fourTile); + } + + this.consoleTile.setLayout(new CardLayout()); + } + } + + public void setShaperVisible(boolean f) { + if (Gamma.getShaper() != null) { + if (this.fourTile.isOneTileMode() == f) { + if (f) { + this.fourTile.useFourTileMode(); + } else { + this.fourTile.useOneTileMode(); + } + } + + Console cons = Console.getActive(); + if (cons instanceof DefaultConsole) { + ((DefaultConsole)cons).setOrthoEnabled(f); + } + } + } + + public boolean isShaperVisible() { + return Gamma.getShaper() != null && this.fourTile != null && !this.fourTile.isOneTileMode(); + } + + public void deactivate() { + } + + public void activate() { + if (!this.isShowing()) { + new GammaFrameState(this); + this.show(); + } + } + + @Override + public boolean action(Event event, Object what) { + Console c = Console.getActive(); + return c != null && c.action(event, what) ? true : super.action(event, what); + } + + @Override + public void dialogDisable(boolean disable) { + this.isDialogDisabled = disable; + Console c = Console.getActive(); + if (c != null) { + c.dialogDisable(disable); + } + + if (this.isShaperVisible()) { + this.getTreeTile().dialogDisable(disable); + this.getLibrariesTile().dialogDisable(disable); + this.getEditTile().dialogDisable(disable); + } + } +} |