#include #include #include #include #include #include #include #include int main( int argc, char* argv[] ) { KAboutData about( "a", "b", ki18n( "c" ), "d" ); KCmdLineArgs::init( argc, argv, &about ); KCmdLineOptions args; args.add( "window ", ki18n( "Window to show icons for" )); KCmdLineArgs::addCmdLineOptions( args ); KApplication app; QWidget w; QGridLayout l( &w ); l.setSpacing( 5 ); WId window = KCmdLineArgs::parsedArgs()->getOption( "window" ).toLong(); NETWinInfo info( QX11Info::display(), window, QX11Info::appRootWindow(), NET::WMIcon ); const int* sizes = info.iconSizes(); int i = 0; for(; sizes[ i * 2 ] != 0; ++i ) { int width = sizes[ i * 2 ]; int height = sizes[ i * 2 + 1 ]; l.addWidget( new QLabel( QString( "EWMH: %1x%2" ).arg( width ).arg( height ), &w ), 0, i ); QLabel* ll = new QLabel( &w ); ll->setPixmap( KWindowSystem::icon( window, width, height, KWindowSystem::NETWM )); l.addWidget( ll, 1, i, Qt::AlignCenter ); } QLabel* ll; l.addWidget( new QLabel( "ICCCM", &w ), 0, i ); ll = new QLabel( &w ); ll->setPixmap( KWindowSystem::icon( window, -1, -1, KWindowSystem::WMHints )); l.addWidget( ll, 1, i, Qt::AlignCenter ); ++i; l.addWidget( new QLabel( "CLASS", &w ), 0, i ); ll = new QLabel( &w ); ll->setPixmap( KWindowSystem::icon( window, -1, -1, KWindowSystem::WMHints )); l.addWidget( ll, 1, i, Qt::AlignCenter ); w.show(); return app.exec(); }