Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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) ) );
	}
}