MCPcopy Create free account
hub / github.com/SpartanJ/eepp / onMessage

Method onMessage

src/eepp/ui/uitab.cpp:365–415  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

363}
364
365Uint32 UITab::onMessage( const NodeMessage* message ) {
366 UITabWidget* tTabW = getTabWidget();
367 if ( !tTabW || !mEnabled || !mVisible )
368 return 1;
369
370 if ( NULL == mOwnedWidget && !mOwnedName.empty() ) {
371 setOwnedNode();
372 }
373
374 Uint32 flags = message->getFlags();
375
376 switch ( message->getMsg() ) {
377 case NodeMessage::MouseDown: {
378 if ( flags & EE_BUTTON_LMASK && message->getSender() != mCloseButton &&
379 getEventDispatcher()->getMouseDownNode() == this ) {
380 tTabW->setTabSelected( this );
381 }
382 break;
383 }
384 case NodeMessage::MouseUp: {
385 if ( tTabW->getTabsClosable() && ( flags & EE_BUTTON_MMASK ) ) {
386 tTabW->tryCloseTab( this, UITabWidget::FocusTabBehavior::Closest );
387 } else if ( flags & EE_BUTTONS_WUWD ) {
388 Input* input = getInput();
389 if ( input->isModState( KeyMod::getDefaultModifier() ) ) {
390 UISlider* slider = tTabW->getTabScroll()->getSlider();
391 if ( flags & EE_BUTTON_WUMASK ) {
392 slider->setValue( slider->getValue() - slider->getClickStep() );
393 } else if ( flags & EE_BUTTON_WDMASK ) {
394 slider->setValue( slider->getValue() + slider->getClickStep() );
395 }
396 } else {
397 if ( flags & EE_BUTTON_WUMASK ) {
398 tTabW->selectPreviousTab();
399 } else if ( flags & EE_BUTTON_WDMASK ) {
400 tTabW->selectNextTab();
401 }
402 }
403 }
404 break;
405 }
406 case NodeMessage::MouseClick: {
407 if ( flags & EE_BUTTON_LMASK && message->getSender() == mCloseButton ) {
408 tTabW->tryCloseTab( this, UITabWidget::FocusTabBehavior::Closest );
409 }
410 break;
411 }
412 }
413
414 return 0;
415}
416
417void UITab::setOwnedNode() {
418 Node* node = getParent()->getParent()->find( mOwnedName );

Callers

nothing calls this directly

Calls 14

getFlagsMethod · 0.80
getSenderMethod · 0.80
getMouseDownNodeMethod · 0.80
getTabsClosableMethod · 0.80
tryCloseTabMethod · 0.80
isModStateMethod · 0.80
getSliderMethod · 0.80
getTabScrollMethod · 0.80
selectPreviousTabMethod · 0.80
selectNextTabMethod · 0.80
emptyMethod · 0.45
setTabSelectedMethod · 0.45

Tested by

no test coverage detected