WIconManager.cpp 1.81 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
//---------------------------------------------------------------------------
//
// Project: OpenWalnut ( http://www.openwalnut.org )
//
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
// For more information see http://www.openwalnut.org/copying
//
// This file is part of OpenWalnut.
//
// OpenWalnut is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// OpenWalnut is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
//
//---------------------------------------------------------------------------

#include <cassert>
#include <string>

28 29
#include "core/common/WAssert.h"
#include "core/kernel/WModuleFactory.h"
30
#include "WIconManager.h"
31 32 33 34 35 36 37 38 39 40 41

void WIconManager::addIcon( std::string name, const char* const xpm[] )
{
    assert( ( m_iconList.count( name ) == 0 ) );

    QIcon* icon = new QIcon( QPixmap( xpm ) );
    m_iconList[name] = icon;
}

QIcon WIconManager::getIcon( const std::string name )
{
42 43 44 45 46 47 48 49 50 51
    QIcon icon;
    if( m_iconList.count( name ) != 0 )
    {
        icon = *m_iconList[name];
    }
    else if( WModuleFactory::getModuleFactory()->getPrototypeByName( name ) )
    {
        icon =  QIcon( QPixmap( WModuleFactory::getModuleFactory()->getPrototypeByName( name )->getXPMIcon() ) );
    }
    else
52 53 54
    {
        WAssert( 0, "Found no icon named: " + name );
    }
55 56

    return icon;
57
}