You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
#include <kcmdlineargs.h> |
|
#include <kapplication.h> |
|
#include <kdebug.h> |
|
#include <kaboutdata.h> |
|
#include <kwindowsystem.h> |
|
#include <qlabel.h> |
|
#include <qgridlayout.h> |
|
#include <netwm.h> |
|
|
|
int main(int argc, char* argv[]) |
|
{ |
|
KAboutData about("a", "b", ki18n("c"), "d"); |
|
KCmdLineArgs::init(argc, argv, &about); |
|
KCmdLineOptions args; |
|
args.add("window <n>", 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(); |
|
}
|
|
|