bool WgTablist::SelectTab( int id ) { WgTab * pTab = _findTab(id); if( pTab == m_pTabSelected ) return true; // Not an error... if( pTab ) { m_pTabSelected = pTab; pTab->m_bAlert = false; // Selecting automatically stops any alert. _resizeTabs(); // fonts have changed _requestRender(); WgEventHandler * pHandler = _eventHandler(); if( pHandler ) { WgItemInfo * p = new WgItemInfo[1]; p->id = pTab->m_id; //TODO: Should set index too (and in the future, a pointer to the widget of the tab). pHandler->QueueEvent( new WgItemsSelectEvent(this, 1, p) ); } return true; } _resizeTabs(); // fonts have changed _requestRender(); return false; }
bool WgPopupLayer::ClosePopup( const WgWidgetPtr& pWidget ) { if( !pWidget || pWidget->Parent() != this || pWidget == m_baseHook.Widget() ) return false; WgEventHandler * pEH = _eventHandler(); WgPopupHook * pHook = (WgPopupHook *) pWidget->_hook(); while( pHook ) { WgPopupHook * p = pHook; pHook = pHook->_next(); if( pEH ) pEH->QueueEvent( new WgPopupClosedEvent( p->_widget(), p->m_pOpener ) ); p->_requestRender(); delete p; } _restoreKeyboardFocus(); return true; }
void WgTablePanel::_updateMarkedRowColumn( int row, int column ) { // Update m_markedRow/Column right away so change has happened before signals are emitted. int oldRow = m_markedRow; int oldColumn = m_markedColumn; m_markedRow = row; m_markedColumn = column; // WgEventHandler * pHandler = _eventHandler(); if( pHandler && (column != oldColumn || row != oldRow) ) { if( oldRow != -1 && oldColumn != -1 ) pHandler->QueueEvent( new WgEvent::TableCellUnmarked(this, oldRow, oldColumn, GetCellContent(oldRow, oldColumn) ) ); if( row != -1 && column != -1 ) pHandler->QueueEvent( new WgEvent::TableCellMarked(this, row, column, GetCellContent(row, column) ) ); } }