| 190 | } |
| 191 | |
| 192 | UIPushButton* UIStatusBar::insertStatusBarElement( std::string id, const String& text, |
| 193 | const std::string& icon, |
| 194 | std::shared_ptr<StatusBarElement> element ) { |
| 195 | auto elemIt = mElements.find( id ); |
| 196 | UIPushButton* button = nullptr; |
| 197 | if ( elemIt != mElements.end() ) { |
| 198 | button = elemIt->second.first; |
| 199 | mElements.erase( elemIt ); |
| 200 | } else { |
| 201 | button = UIPushButton::New(); |
| 202 | button->beginAttributesTransaction(); |
| 203 | button->setText( text ); |
| 204 | button->setParent( this )->setId( id ); |
| 205 | button->setClass( "status_but" ); |
| 206 | UIWidget* statusSep = findByClass( "status_sep" ); |
| 207 | if ( statusSep ) |
| 208 | button->toPosition( statusSep->getNodeIndex() ); |
| 209 | button->applyProperty( |
| 210 | StyleSheetProperty( "icon", icon, false, StyleSheetSelectorRule::SpecificityInline ) ); |
| 211 | button->endAttributesTransaction(); |
| 212 | } |
| 213 | |
| 214 | mElements[id] = { button, element }; |
| 215 | return button; |
| 216 | } |
| 217 | |
| 218 | void UIStatusBar::removeStatusBarElement( const std::string& id ) { |
| 219 | auto elemIt = mElements.find( id ); |
no test coverage detected