From 89d72e60d15c3ff61f3c0fe9ae7bc141fdc966b4 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 7 Feb 2015 20:19:11 -0500 Subject: [PATCH] v0.2.4: fixed chrome inconsistency, standardized tab layouts and made them pretty --- assets/chrome.png | Bin 2017 -> 2181 bytes .../shatteredpixeldungeon/Chrome.java | 21 +++++----- .../shatteredpixeldungeon/windows/WndBag.java | 9 ++-- .../windows/WndCatalogus.java | 3 +- .../windows/WndClass.java | 3 +- .../windows/WndHero.java | 7 ++-- .../windows/WndRanking.java | 3 +- .../windows/WndTabbed.java | 39 +++++++++++++++++- 8 files changed, 60 insertions(+), 25 deletions(-) diff --git a/assets/chrome.png b/assets/chrome.png index e11048efa18437b64c390b7629b749ef9bfe06d2..d865869a4812d37016a5d258c2a2d00aa29bb18f 100644 GIT binary patch delta 2168 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 diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/Chrome.java b/src/com/shatteredpixel/shatteredpixeldungeon/Chrome.java index c1c3204be..0452fc400 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/Chrome.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/Chrome.java @@ -35,27 +35,28 @@ public class Chrome { }; public static NinePatch get( Type type ) { + String Asset = Assets.CHROME; switch (type) { case WINDOW: - return new NinePatch( Assets.CHROME, 0, 0, 22, 22, 7 ); + return new NinePatch( Asset, 0, 0, 20, 20, 6 ); case TOAST: - return new NinePatch( Assets.CHROME, 22, 0, 18, 18, 5 ); + return new NinePatch( Asset, 22, 0, 18, 18, 5 ); case TOAST_TR: - return new NinePatch( Assets.CHROME, 40, 0, 18, 18, 5 ); + return new NinePatch( Asset, 40, 0, 18, 18, 5 ); case BUTTON: - return new NinePatch( Assets.CHROME, 58, 0, 4, 4, 1 ); + return new NinePatch( Asset, 58, 0, 4, 4, 1 ); case TAG: - return new NinePatch( Assets.CHROME, 22, 18, 16, 14, 3 ); + return new NinePatch( Asset, 22, 18, 16, 14, 3 ); case GEM: - return new NinePatch( Assets.CHROME, 0, 32, 32, 32, 13 ); + return new NinePatch( Asset, 0, 32, 32, 32, 13 ); case SCROLL: - return new NinePatch( Assets.CHROME, 32, 32, 32, 32, 5, 11, 5, 11 ); + return new NinePatch( Asset, 32, 32, 32, 32, 5, 11, 5, 11 ); case TAB_SET: - return new NinePatch( Assets.CHROME, 64, 0, 22, 22, 7, 7, 7, 7 ); + return new NinePatch( Asset, 64, 0, 20, 20, 6, 6, 6, 6 ); case TAB_SELECTED: - return new NinePatch( Assets.CHROME, 64, 22, 10, 14, 4, 7, 4, 6 ); + return new NinePatch( Asset, 64, 22, 10, 14, 4, 7, 4, 6 ); case TAB_UNSELECTED: - return new NinePatch( Assets.CHROME, 74, 22, 10, 14, 4, 7, 4, 6 ); + return new NinePatch( Asset, 74, 22, 10, 14, 4, 7, 4, 6 ); default: return null; } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java index f59d8c411..e20ff82af 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java @@ -132,15 +132,12 @@ public class WndBag extends WndTabbed { for (Bag b : bags) { if (b != null) { BagTab tab = new BagTab( b ); - int tab_width = (slotsWidth-((bags.length-1)*5))/bags.length; - tab.setSize( tab_width, tabHeight() ); - - //no point in showing tabs if there's just one bag - if (bags.length > 1) add( tab ); - + add( tab ); tab.select( b == bag ); } } + + layoutTabs(); } public static WndBag lastBag( Listener listener, Mode mode, String title ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java index f274e172b..df12b2312 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java @@ -102,9 +102,10 @@ public class WndCatalogus extends WndTabbed { } }; for (Tab tab : tabs) { - tab.setSize( TAB_WIDTH, tabHeight() ); add( tab ); } + + layoutTabs(); select( showPotions ? 0 : 1 ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java index ae47f01f9..59aca3669 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java @@ -57,7 +57,6 @@ public class WndClass extends WndTabbed { add( tabMastery ); tab = new RankingTab( TXT_MASTERY, tabMastery ); - tab.setSize( TAB_WIDTH, tabHeight() ); add( tab ); resize( @@ -67,6 +66,8 @@ public class WndClass extends WndTabbed { resize( (int)tabPerks.width, (int)tabPerks.height ); } + layoutTabs(); + select( 0 ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java index fa3663efb..1353187f7 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java @@ -83,11 +83,10 @@ public class WndHero extends WndTabbed { buffs.visible = buffs.active = selected; }; } ); - for (Tab tab : tabs) { - tab.setSize( TAB_WIDTH, tabHeight() ); - } - + resize( WIDTH, (int)Math.max( stats.height(), buffs.height() ) ); + + layoutTabs(); select( 0 ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java index fc1f9fad7..59e896012 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java @@ -115,9 +115,10 @@ public class WndRanking extends WndTabbed { add( pages[i] ); Tab tab = new RankingTab( labels[i], pages[i] ); - tab.setSize( TAB_WIDTH, tabHeight() ); add( tab ); } + + layoutTabs(); select( 0 ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java index 9c8ec9050..81056b4d0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java @@ -39,9 +39,9 @@ public class WndTabbed extends Window { } protected Tab add( Tab tab ) { - + tab.setPos( tabs.size() == 0 ? - -chrome.marginLeft() + 1 : + -chrome.marginLeft() : tabs.get( tabs.size() - 1 ).right(), height ); tab.select( false ); super.add( tab ); @@ -100,6 +100,41 @@ public class WndTabbed extends Window { add( tab ); } } + + public void layoutTabs(){ + int fullWidth = width+chrome.marginHor(); + int numTabs = tabs.size(); + + if (numTabs == 0) + return; + if (numTabs == 1) { + tabs.get(0).setSize(fullWidth, tabHeight()); + return; + } + + int spaces = numTabs-1; + int spacing = -1; + + while (spacing == -1) { + for (int i = 0; i <= 5; i++){ + if ((fullWidth - i*(spaces)) % numTabs == 0) { + spacing = i; + break; + } + } + if (spacing == -1) fullWidth--; + } + + int tabWidth = (fullWidth - spacing*(numTabs-1)) / numTabs; + + for (int i = 0; i < tabs.size(); i++){ + tabs.get(i).setSize(tabWidth, tabHeight()); + tabs.get(i).setPos( i == 0 ? + -chrome.marginLeft() : + tabs.get( i - 1 ).right() + spacing, height ); + } + + } protected int tabHeight() { return 25;