#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(); }