1111#include " BetterInputNode.hpp"
1212#include " BlurLayer.hpp"
1313#include " FloatingButton/FloatingUIManager.hpp"
14+ #include " EasyBG.hpp"
1415
1516bool AndroidUI::setup ()
1617{
1718 this ->addChild (CCBlurLayer::create (), -3 );
19+ this ->scheduleUpdate ();
1820
1921 rt = CCRenderTexture::create (getContentWidth (), getContentHeight ());
2022 rt->getSprite ()->setBlendFunc (this ->getBlendFunc ());
@@ -102,22 +104,19 @@ void AndroidUI::populateModules()
102104
103105void AndroidUI::populateTabs ()
104106{
105- auto bg = CCScale9Sprite ::create (" square02b_small.png " );
106- bg->setContentSize (ccp (110 , m_size.height - 10 * 2 ) / 0 . 5f );
107+ auto bg = EasyBG ::create ();
108+ bg->setContentSize (ccp (110 , m_size.height - 10 * 2 ));
107109 bg->setAnchorPoint (ccp (0 , 0 .5f ));
108- bg->setScale (0 .5f );
109- bg->setColor (ccc3 (0 , 0 , 0 ));
110- bg->setOpacity (100 );
111110
112111 tabsMenu = CCMenu::create ();
113- tabsMenu->setContentSize ((bg->getContentSize () / 2 ) + ccp (0 , -10 ));
112+ tabsMenu->setContentSize ((bg->getContentSize ()) + ccp (0 , -5 ));
114113 tabsMenu->setAnchorPoint (ccp (0 , 0 .5f ));
115114 tabsMenu->ignoreAnchorPointForPosition (false );
116- tabsMenu->setLayout (ColumnLayout::create ()->setAxisReverse (true )->setAxisAlignment (AxisAlignment::End)->setCrossAxisOverflow (true )->setAutoScale (false )->setGap (3 .5f ));
115+ tabsMenu->setLayout (ColumnLayout::create ()->setAxisReverse (true )->setAxisAlignment (AxisAlignment::End)->setCrossAxisOverflow (true )->setAutoScale (false )->setGap (2 .5f ));
117116 tabsMenu->getLayout ()->ignoreInvisibleChildren (true );
118117
119118 m_mainLayer->addChildAtPosition (bg, Anchor::Left, ccp (10 , 0 ));
120- m_mainLayer->addChildAtPosition (tabsMenu, Anchor::Left, ccp (10 + 5 , 0 ));
119+ m_mainLayer->addChildAtPosition (tabsMenu, Anchor::Left, ccp (10 + 2 . 5f , 0 ));
121120
122121 for (auto category : categoryOrders)
123122 {
@@ -131,13 +130,13 @@ void AndroidUI::populateTabs()
131130 tabsMenu->addChild (geode::SpacerNode::create ());
132131
133132 // TODO: Bottom row
134- /*
133+
135134 bottomTabsContainer = CCMenu::create ();
136135 bottomTabsContainer->ignoreAnchorPointForPosition (false );
137- bottomTabsContainer->setContentSize(ccp(100 , 20));
138- bottomTabsContainer->setLayout(AxisLayout::create()->setAutoScale(false)->setAxisAlignment(AxisAlignment::Even ));
136+ bottomTabsContainer->setContentSize (ccp (105 , 20 ));
137+ bottomTabsContainer->setLayout (AxisLayout::create ()->setAutoScale (false )->setAxisAlignment (AxisAlignment::Between ));
139138 tabsMenu->addChild (bottomTabsContainer);
140- */
139+
141140
142141 continue ;
143142 }
@@ -172,16 +171,16 @@ void AndroidUI::addTab(std::string name, std::string id, std::string sprite)
172171 auto sprHeld = CategoryTabSprite::create (CategoryTabType::Text, name, sprite);
173172 sprHeld->updateSelection (CategorySelectionType::Hovered);
174173
175- sprNormal->setContentSize (ccp (100 , 20 ));
176- sprHeld->setContentSize (ccp (100 , 20 ));
174+ sprNormal->setContentSize (ccp (105 , 20 ));
175+ sprHeld->setContentSize (ccp (105 , 20 ));
177176
178177 if (bottomTabsContainer)
179178 {
180179 sprNormal->label ->setString (" " );
181- sprNormal->setContentSize (ccp ((100 - 5 * 2 ) / 3 , 20 ));
180+ sprNormal->setContentSize (ccp ((105 - 2 . 5f ) / 2 , 20 ));
182181
183182 sprHeld->label ->setString (" " );
184- sprHeld->setContentSize (ccp ((100 - 5 * 2 ) / 3 , 20 ));
183+ sprHeld->setContentSize (ccp ((105 - 2 . 5f ) / 2 , 20 ));
185184 }
186185
187186 auto btn = CCMenuItemSpriteExtra::create (sprNormal, this , menu_selector (AndroidUI::onSelectTab));
@@ -409,4 +408,34 @@ void AndroidUI::visit()
409408 rt->setPosition (getContentSize () / 2 );
410409 rt->getSprite ()->setOpacity (drawOpacity->getOpacity ());
411410 rt->visit ();
411+ }
412+
413+ void AndroidUI::update (float dt)
414+ {
415+ for (auto btn : categoryBtns)
416+ {
417+ bool sel = btn.second ->m_bSelected || (btn.second == categoryBtns[selectedCategory]);
418+ float opacity = sel ? 125 : 100 ;
419+
420+ if (!categoryBtnsSelCheck.contains (btn.second ))
421+ {
422+ categoryBtnsSelCheck.emplace (btn.second , sel);
423+
424+ static_cast <CategoryTabSprite*>(btn.second ->getNormalImage ())->background ->setOpacity (opacity);
425+ static_cast <CategoryTabSprite*>(btn.second ->getSelectedImage ())->background ->setOpacity (opacity);
426+ }
427+ else
428+ {
429+ if (categoryBtnsSelCheck[btn.second ] != sel)
430+ {
431+ categoryBtnsSelCheck[btn.second ] = sel;
432+
433+ static_cast <CategoryTabSprite*>(btn.second ->getNormalImage ())->background ->stopAllActions ();
434+ static_cast <CategoryTabSprite*>(btn.second ->getSelectedImage ())->background ->stopAllActions ();
435+
436+ static_cast <CategoryTabSprite*>(btn.second ->getNormalImage ())->background ->runAction (RealtimeAction::create (CCFadeTo::create (0 .1f , opacity)));
437+ static_cast <CategoryTabSprite*>(btn.second ->getSelectedImage ())->background ->runAction (RealtimeAction::create (CCFadeTo::create (0 .1f , opacity)));
438+ }
439+ }
440+ }
412441}
0 commit comments