コード例 #1
0
void CCommEditTool::BringConsoleToFront()
{
	CConsolePage *p = GetConsole();
	Panel *pPage = p->GetParent();
	if ( pPage == NULL )
	{
		OnToggleConsole();
	}
	else
	{
		ToolWindow *tw = dynamic_cast< ToolWindow * >( pPage->GetParent() );
		if ( tw )
		{
			if ( tw->GetActivePage() != p )
			{
				tw->SetActivePage( p );
				vgui::surface()->SetForegroundWindow( tw->GetVPanel() );
				p->TextEntryRequestFocus();
			}
			else
			{
				PropertySheet *pSheet = tw->GetPropertySheet();
				int nPageCount = pSheet->GetNumPages();
				int i;
				for ( i = 0; i < nPageCount; ++i )
				{
					if ( p == pSheet->GetPage(i) )
						break;
				}
				i = ( i + 1 ) % nPageCount;
				pSheet->SetActivePage( pSheet->GetPage(i) );
			}
		}
	}
}
コード例 #2
0
ファイル: PropertySheet.cpp プロジェクト: swaphack/CodeLib
PropertySheet* PropertySheet::clone()
{
	PropertySheet* pSheet = new PropertySheet();
	Properties::iterator iter = m_mProperties.begin();
	while (iter != m_mProperties.end())
	{
		pSheet->addProperty(iter->second->clone());
		iter++;
	}

	return pSheet;
}
コード例 #3
0
ファイル: FloatProperty.cpp プロジェクト: CgGraphic/tungsten
FloatProperty::FloatProperty(QWidget *parent, PropertySheet &sheet, std::string name, float value,
        std::function<bool(float)> setter)
: _value(value),
  _setter(std::move(setter))
{
    _nameLabel = new QLabel(QString::fromStdString(name + ":"), parent);
    _lineEdit = new QLineEdit(QString::number(value), parent);
    connect(_lineEdit, SIGNAL(editingFinished()), this, SLOT(textEdited()));

    sheet.addWidget(_nameLabel, sheet.rowCount(), 0);
    sheet.addWidget(_lineEdit, sheet.rowCount() - 1, 1);
}
コード例 #4
0
MediumProperty::MediumProperty(QWidget *parent, PropertySheet &sheet, std::string name, std::shared_ptr<Medium> value,
        std::function<bool(std::shared_ptr<Medium> &)> setter, Scene *scene)
: _value(std::move(value)),
  _setter(std::move(setter)),
  _scene(scene)
{
    _nameLabel = new QLabel(QString::fromStdString(name + ":"), parent);

    _mediumSelector = new QComboBox(parent);

    buildMediumList();

    sheet.addWidget(_nameLabel, sheet.rowCount(), 0);
    sheet.addWidget(_mediumSelector, sheet.rowCount() - 1, 1);
}
コード例 #5
0
ファイル: propertysheet.cpp プロジェクト: Bubbasacs/FinalProj
void PropertySheet::OnPanelDropped( CUtlVector< KeyValues * >& msglist )
{
	if ( msglist.Count() != 1 )
	{
		return;
	}

	PropertySheet *sheet = IsDroppingSheet( msglist );
	if ( !sheet )
	{
		// Defer to active page
		if ( _activePage && _activePage->IsDropEnabled() )
		{
			return _activePage->OnPanelDropped( msglist );
		}
		return;
	}

	KeyValues *data = msglist[ 0 ];

	Panel *page = reinterpret_cast< Panel * >( data->GetPtr( "propertypage" ) );
	char const *title = data->GetString( "tabname", "" );
	if ( !page || !sheet )
		return;

	// Can only create if sheet was part of a ToolWindow derived object
	ToolWindow *tw = dynamic_cast< ToolWindow * >( sheet->GetParent() );
	if ( tw )
	{
		IToolWindowFactory *factory = tw->GetToolWindowFactory();
		if ( factory )
		{
			bool showContext = sheet->PageHasContextMenu( page );
			sheet->RemovePage( page );
			if ( sheet->GetNumPages() == 0 )
			{
				tw->MarkForDeletion();
			}

			AddPage( page, title, NULL, showContext );
		}
	}
}
コード例 #6
0
ファイル: propertysheet.cpp プロジェクト: Bubbasacs/FinalProj
	virtual void OnCreateDragData( KeyValues *msg )
	{
		Assert( m_pParent->IsDraggableTab() );

		msg->SetPtr( "propertypage", m_pPage );
		msg->SetPtr( "propertysheet", m_pParent );
		char sz[ 256 ];
		GetText( sz, sizeof( sz ) );
		msg->SetString( "tabname", sz  );
		msg->SetString( "text", sz );
	}
コード例 #7
0
ファイル: propertysheet.cpp プロジェクト: Bubbasacs/FinalProj
	virtual void OnDragFailed( CUtlVector< KeyValues * >& msglist )
	{
		PropertySheet *sheet = IsDroppingSheet( msglist );
		if ( !sheet )
			return;

		// Create a new property sheet
		if ( m_pParent->IsDraggableTab() )
		{
			if ( msglist.Count() == 1 )
			{
				KeyValues *data = msglist[ 0 ];
                int screenx = data->GetInt( "screenx" );
				int screeny = data->GetInt( "screeny" );

				// m_pParent->ScreenToLocal( screenx, screeny );
				if ( !m_pParent->IsWithin( screenx, screeny ) )
				{
					Panel *page = reinterpret_cast< Panel * >( data->GetPtr( "propertypage" ) );
					PropertySheet *sheet = reinterpret_cast< PropertySheet * >( data->GetPtr( "propertysheet" ) );
					char const *title = data->GetString( "tabname", "" );
					if ( !page || !sheet )
						return;
					
					// Can only create if sheet was part of a ToolWindow derived object
					ToolWindow *tw = dynamic_cast< ToolWindow * >( sheet->GetParent() );
					if ( tw )
					{
						IToolWindowFactory *factory = tw->GetToolWindowFactory();
						if ( factory )
						{
							bool hasContextMenu = sheet->PageHasContextMenu( page );
							sheet->RemovePage( page );
							factory->InstanceToolWindow( tw->GetParent(), sheet->ShouldShowContextButtons(), page, title, hasContextMenu );

							if ( sheet->GetNumPages() == 0 )
							{
								tw->MarkForDeletion();
							}
						}
					}
				}
			}
		}
	}
コード例 #8
0
ファイル: propertysheet.cpp プロジェクト: Bubbasacs/FinalProj
	virtual void OnPanelDropped( CUtlVector< KeyValues * >& msglist )
	{
		PropertySheet *sheet = IsDroppingSheet( msglist );
		if ( sheet )
		{
			Panel *target = GetParent()->GetDropTarget( msglist );
			if ( target )
			{
			// Fixme, mouse pos could be wrong...
				target->OnPanelDropped( msglist );
			}
		}

		// Defer to active page...
		Panel *active = m_pParent->GetActivePage();
		if ( !active || !active->IsDroppable( msglist ) )
			return;

		active->OnPanelDropped( msglist );
	}
コード例 #9
0
ファイル: propertysheet.cpp プロジェクト: Bubbasacs/FinalProj
	virtual bool IsDroppable( CUtlVector< KeyValues * >&msglist )
	{
		// It's never droppable, but should activate
		FireActionSignal();
		SetSelected(true);
		Repaint();
		if ( !GetParent() )
			return false;

		PropertySheet *sheet = IsDroppingSheet( msglist );
		if ( sheet )
		{
			return GetParent()->IsDroppable( msglist );
		}

		// Defer to active page...
		Panel *active = m_pParent->GetActivePage();
		if ( !active || !active->IsDroppable( msglist ) )
			return false;

		return active->IsDroppable( msglist );
	}
コード例 #10
0
ファイル: propertysheet.cpp プロジェクト: Bubbasacs/FinalProj
	PageTab(PropertySheet *parent, const char *panelName, const char *text, char const *imageName, int maxTabWidth, Panel *page, bool showContextButton ) : 
		Button( (Panel *)parent, panelName, text),
		m_pParent( parent ),
		m_pPage( page ),
		m_pImage( 0 ),
		m_pszImageName( 0 ),
		m_bShowContextLabel( showContextButton )
	{
		SetCommand(new KeyValues("TabPressed"));
		_active = false;
		m_bMaxTabWidth = maxTabWidth;
		SetDropEnabled( true );
		SetDragEnabled( m_pParent->IsDraggableTab() );
		if ( imageName )
		{
			m_pImage = new ImagePanel( this, text );
			int buflen = Q_strlen( imageName ) + 1;
			m_pszImageName = new char[ buflen ];
			Q_strncpy( m_pszImageName, imageName, buflen );

		}
		SetMouseClickEnabled( MOUSE_RIGHT, true );
		m_pContextLabel = m_bShowContextLabel ? new ContextLabel( this, "Context", "9" ) : NULL;
	}