[gnome-applets] add window-buttons and window-title applets



commit d586e6152cdd17c8dccb3279d91f9045ca355c88
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Wed Nov 9 19:41:21 2016 +0200

    add window-buttons and window-title applets
    
    Added files are copied from original *.tar.gz file:
    https://www.gnome-look.org/content/show.php?content=103732
    
    https://bugzilla.gnome.org/show_bug.cgi?id=770795

 window-buttons/Makefile.am                         |   84 ++
 window-buttons/external.c                          |   93 ++
 window-buttons/external.h                          |   31 +
 ...me.panel.WindowButtonsApplet.panel-applet.in.in |   15 +
 ...el.applet.WindowButtonsAppletFactory.service.in |    3 +
 window-buttons/pixmaps/Makefile.am                 |   14 +
 window-buttons/pixmaps/windowbuttons-applet.png    |  Bin 0 -> 5109 bytes
 window-buttons/preferences.c                       |  575 +++++++++
 window-buttons/preferences.h                       |   36 +
 window-buttons/theme.c                             |  169 +++
 window-buttons/theme.h                             |   25 +
 window-buttons/themes/Makefile.am                  |   91 ++
 window-buttons/themes/WoW/close-clicked.png        |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/close-focused.png        |  Bin 0 -> 3202 bytes
 window-buttons/themes/WoW/close-hover.png          |  Bin 0 -> 3197 bytes
 window-buttons/themes/WoW/close-unfocused.png      |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/maximize-clicked.png     |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/maximize-focused.png     |  Bin 0 -> 3202 bytes
 window-buttons/themes/WoW/maximize-hover.png       |  Bin 0 -> 3216 bytes
 window-buttons/themes/WoW/maximize-unfocused.png   |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/minimize-clicked.png     |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/minimize-focused.png     |  Bin 0 -> 3202 bytes
 window-buttons/themes/WoW/minimize-hover.png       |  Bin 0 -> 3221 bytes
 window-buttons/themes/WoW/minimize-unfocused.png   |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/unmaximize-clicked.png   |  Bin 0 -> 3194 bytes
 window-buttons/themes/WoW/unmaximize-focused.png   |  Bin 0 -> 3202 bytes
 window-buttons/themes/WoW/unmaximize-hover.png     |  Bin 0 -> 3216 bytes
 window-buttons/themes/WoW/unmaximize-unfocused.png |  Bin 0 -> 3194 bytes
 window-buttons/themes/ambiance-maverick/bg.png     |  Bin 0 -> 458 bytes
 .../ambiance-maverick/close-focused-clicked.png    |  Bin 0 -> 886 bytes
 .../ambiance-maverick/close-focused-hover.png      |  Bin 0 -> 1052 bytes
 .../ambiance-maverick/close-focused-normal.png     |  Bin 0 -> 1000 bytes
 .../ambiance-maverick/close-unfocused-clicked.png  |  Bin 0 -> 886 bytes
 .../ambiance-maverick/close-unfocused-hover.png    |  Bin 0 -> 1057 bytes
 .../ambiance-maverick/close-unfocused-normal.png   |  Bin 0 -> 708 bytes
 .../ambiance-maverick/maximize-focused-clicked.png |  Bin 0 -> 743 bytes
 .../ambiance-maverick/maximize-focused-hover.png   |  Bin 0 -> 925 bytes
 .../ambiance-maverick/maximize-focused-normal.png  |  Bin 0 -> 928 bytes
 .../maximize-unfocused-clicked.png                 |  Bin 0 -> 743 bytes
 .../ambiance-maverick/maximize-unfocused-hover.png |  Bin 0 -> 925 bytes
 .../maximize-unfocused-normal.png                  |  Bin 0 -> 669 bytes
 .../ambiance-maverick/minimize-focused-clicked.png |  Bin 0 -> 730 bytes
 .../ambiance-maverick/minimize-focused-hover.png   |  Bin 0 -> 894 bytes
 .../ambiance-maverick/minimize-focused-normal.png  |  Bin 0 -> 889 bytes
 .../minimize-unfocused-clicked.png                 |  Bin 0 -> 730 bytes
 .../ambiance-maverick/minimize-unfocused-hover.png |  Bin 0 -> 894 bytes
 .../minimize-unfocused-normal.png                  |  Bin 0 -> 619 bytes
 .../unmaximize-focused-clicked.png                 |  Bin 0 -> 745 bytes
 .../ambiance-maverick/unmaximize-focused-hover.png |  Bin 0 -> 919 bytes
 .../unmaximize-focused-normal.png                  |  Bin 0 -> 936 bytes
 .../unmaximize-unfocused-clicked.png               |  Bin 0 -> 745 bytes
 .../unmaximize-unfocused-hover.png                 |  Bin 0 -> 919 bytes
 .../unmaximize-unfocused-normal.png                |  Bin 0 -> 668 bytes
 .../themes/ambiance-x-studio/close-clicked.png     |  Bin 0 -> 870 bytes
 .../themes/ambiance-x-studio/close-focused.png     |  Bin 0 -> 898 bytes
 .../themes/ambiance-x-studio/close-hover.png       |  Bin 0 -> 625 bytes
 .../themes/ambiance-x-studio/close-unfocused.png   |  Bin 0 -> 934 bytes
 .../themes/ambiance-x-studio/maximize-clicked.png  |  Bin 0 -> 877 bytes
 .../themes/ambiance-x-studio/maximize-focused.png  |  Bin 0 -> 1009 bytes
 .../themes/ambiance-x-studio/maximize-hover.png    |  Bin 0 -> 991 bytes
 .../ambiance-x-studio/maximize-unfocused.png       |  Bin 0 -> 917 bytes
 .../themes/ambiance-x-studio/minimize-clicked.png  |  Bin 0 -> 867 bytes
 .../themes/ambiance-x-studio/minimize-focused.png  |  Bin 0 -> 1002 bytes
 .../themes/ambiance-x-studio/minimize-hover.png    |  Bin 0 -> 978 bytes
 .../ambiance-x-studio/minimize-unfocused.png       |  Bin 0 -> 907 bytes
 .../ambiance-x-studio/unmaximize-clicked.png       |  Bin 0 -> 870 bytes
 .../ambiance-x-studio/unmaximize-focused.png       |  Bin 0 -> 985 bytes
 .../themes/ambiance-x-studio/unmaximize-hover.png  |  Bin 0 -> 975 bytes
 .../ambiance-x-studio/unmaximize-unfocused.png     |  Bin 0 -> 886 bytes
 window-buttons/themes/ambiance/close-clicked.png   |  Bin 0 -> 939 bytes
 window-buttons/themes/ambiance/close-focused.png   |  Bin 0 -> 1084 bytes
 window-buttons/themes/ambiance/close-hover.png     |  Bin 0 -> 1067 bytes
 window-buttons/themes/ambiance/close-unfocused.png |  Bin 0 -> 934 bytes
 .../themes/ambiance/maximize-clicked.png           |  Bin 0 -> 850 bytes
 .../themes/ambiance/maximize-focused.png           |  Bin 0 -> 1009 bytes
 window-buttons/themes/ambiance/maximize-hover.png  |  Bin 0 -> 956 bytes
 .../themes/ambiance/maximize-unfocused.png         |  Bin 0 -> 917 bytes
 .../themes/ambiance/minimize-clicked.png           |  Bin 0 -> 851 bytes
 .../themes/ambiance/minimize-focused.png           |  Bin 0 -> 1002 bytes
 window-buttons/themes/ambiance/minimize-hover.png  |  Bin 0 -> 953 bytes
 .../themes/ambiance/minimize-unfocused.png         |  Bin 0 -> 907 bytes
 .../themes/ambiance/unmaximize-clicked.png         |  Bin 0 -> 862 bytes
 .../themes/ambiance/unmaximize-focused.png         |  Bin 0 -> 985 bytes
 .../themes/ambiance/unmaximize-hover.png           |  Bin 0 -> 956 bytes
 .../themes/ambiance/unmaximize-unfocused.png       |  Bin 0 -> 886 bytes
 window-buttons/themes/antique/close-clicked.png    |  Bin 0 -> 593 bytes
 window-buttons/themes/antique/close-focused.png    |  Bin 0 -> 593 bytes
 window-buttons/themes/antique/close-hover.png      |  Bin 0 -> 668 bytes
 window-buttons/themes/antique/close-unfocused.png  |  Bin 0 -> 593 bytes
 window-buttons/themes/antique/maximize-clicked.png |  Bin 0 -> 523 bytes
 window-buttons/themes/antique/maximize-focused.png |  Bin 0 -> 523 bytes
 window-buttons/themes/antique/maximize-hover.png   |  Bin 0 -> 605 bytes
 .../themes/antique/maximize-unfocused.png          |  Bin 0 -> 523 bytes
 window-buttons/themes/antique/minimize-clicked.png |  Bin 0 -> 591 bytes
 window-buttons/themes/antique/minimize-focused.png |  Bin 0 -> 591 bytes
 window-buttons/themes/antique/minimize-hover.png   |  Bin 0 -> 655 bytes
 .../themes/antique/minimize-unfocused.png          |  Bin 0 -> 591 bytes
 .../themes/antique/unmaximize-clicked.png          |  Bin 0 -> 523 bytes
 .../themes/antique/unmaximize-focused.png          |  Bin 0 -> 523 bytes
 window-buttons/themes/antique/unmaximize-hover.png |  Bin 0 -> 605 bytes
 .../themes/antique/unmaximize-unfocused.png        |  Bin 0 -> 523 bytes
 .../themes/blaze-color/close-clicked.png           |  Bin 0 -> 532 bytes
 .../themes/blaze-color/close-focused.png           |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze-color/close-hover.png  |  Bin 0 -> 1104 bytes
 .../themes/blaze-color/close-unfocused.png         |  Bin 0 -> 596 bytes
 .../themes/blaze-color/maximize-clicked.png        |  Bin 0 -> 532 bytes
 .../themes/blaze-color/maximize-focused.png        |  Bin 0 -> 596 bytes
 .../themes/blaze-color/maximize-hover.png          |  Bin 0 -> 1112 bytes
 .../themes/blaze-color/maximize-unfocused.png      |  Bin 0 -> 596 bytes
 .../themes/blaze-color/minimize-clicked.png        |  Bin 0 -> 532 bytes
 .../themes/blaze-color/minimize-focused.png        |  Bin 0 -> 596 bytes
 .../themes/blaze-color/minimize-hover.png          |  Bin 0 -> 1113 bytes
 .../themes/blaze-color/minimize-unfocused.png      |  Bin 0 -> 596 bytes
 .../themes/blaze-color/unmaximize-clicked.png      |  Bin 0 -> 532 bytes
 .../themes/blaze-color/unmaximize-focused.png      |  Bin 0 -> 596 bytes
 .../themes/blaze-color/unmaximize-hover.png        |  Bin 0 -> 1090 bytes
 .../themes/blaze-color/unmaximize-unfocused.png    |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/close-clicked.png      |  Bin 0 -> 532 bytes
 window-buttons/themes/blaze/close-focused.png      |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/close-hover.png        |  Bin 0 -> 643 bytes
 window-buttons/themes/blaze/close-unfocused.png    |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/maximize-clicked.png   |  Bin 0 -> 532 bytes
 window-buttons/themes/blaze/maximize-focused.png   |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/maximize-hover.png     |  Bin 0 -> 643 bytes
 window-buttons/themes/blaze/maximize-unfocused.png |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/minimize-clicked.png   |  Bin 0 -> 532 bytes
 window-buttons/themes/blaze/minimize-focused.png   |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/minimize-hover.png     |  Bin 0 -> 643 bytes
 window-buttons/themes/blaze/minimize-unfocused.png |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/unmaximize-clicked.png |  Bin 0 -> 532 bytes
 window-buttons/themes/blaze/unmaximize-focused.png |  Bin 0 -> 596 bytes
 window-buttons/themes/blaze/unmaximize-hover.png   |  Bin 0 -> 643 bytes
 .../themes/blaze/unmaximize-unfocused.png          |  Bin 0 -> 596 bytes
 window-buttons/themes/blubuntu/close-clicked.png   |  Bin 0 -> 670 bytes
 window-buttons/themes/blubuntu/close-focused.png   |  Bin 0 -> 692 bytes
 window-buttons/themes/blubuntu/close-hover.png     |  Bin 0 -> 704 bytes
 window-buttons/themes/blubuntu/close-unfocused.png |  Bin 0 -> 482 bytes
 .../themes/blubuntu/maximize-clicked.png           |  Bin 0 -> 540 bytes
 .../themes/blubuntu/maximize-focused.png           |  Bin 0 -> 557 bytes
 window-buttons/themes/blubuntu/maximize-hover.png  |  Bin 0 -> 559 bytes
 .../themes/blubuntu/maximize-unfocused.png         |  Bin 0 -> 443 bytes
 .../themes/blubuntu/minimize-clicked.png           |  Bin 0 -> 469 bytes
 .../themes/blubuntu/minimize-focused.png           |  Bin 0 -> 485 bytes
 window-buttons/themes/blubuntu/minimize-hover.png  |  Bin 0 -> 496 bytes
 .../themes/blubuntu/minimize-unfocused.png         |  Bin 0 -> 402 bytes
 .../themes/blubuntu/unmaximize-clicked.png         |  Bin 0 -> 532 bytes
 .../themes/blubuntu/unmaximize-focused.png         |  Bin 0 -> 550 bytes
 .../themes/blubuntu/unmaximize-hover.png           |  Bin 0 -> 553 bytes
 .../themes/blubuntu/unmaximize-unfocused.png       |  Bin 0 -> 466 bytes
 .../themes/default/close-focused-clicked.png       |  Bin 0 -> 644 bytes
 .../themes/default/close-focused-hover.png         |  Bin 0 -> 610 bytes
 .../themes/default/close-focused-normal.png        |  Bin 0 -> 616 bytes
 .../themes/default/close-unfocused-clicked.png     |  Bin 0 -> 644 bytes
 .../themes/default/close-unfocused-hover.png       |  Bin 0 -> 610 bytes
 .../themes/default/close-unfocused-normal.png      |  Bin 0 -> 614 bytes
 .../themes/default/maximize-focused-clicked.png    |  Bin 0 -> 575 bytes
 .../themes/default/maximize-focused-hover.png      |  Bin 0 -> 554 bytes
 .../themes/default/maximize-focused-normal.png     |  Bin 0 -> 571 bytes
 .../themes/default/maximize-unfocused-clicked.png  |  Bin 0 -> 575 bytes
 .../themes/default/maximize-unfocused-hover.png    |  Bin 0 -> 554 bytes
 .../themes/default/maximize-unfocused-normal.png   |  Bin 0 -> 569 bytes
 .../themes/default/minimize-focused-clicked.png    |  Bin 0 -> 536 bytes
 .../themes/default/minimize-focused-hover.png      |  Bin 0 -> 519 bytes
 .../themes/default/minimize-focused-normal.png     |  Bin 0 -> 536 bytes
 .../themes/default/minimize-unfocused-clicked.png  |  Bin 0 -> 536 bytes
 .../themes/default/minimize-unfocused-hover.png    |  Bin 0 -> 519 bytes
 .../themes/default/minimize-unfocused-normal.png   |  Bin 0 -> 536 bytes
 .../themes/default/unmaximize-focused-clicked.png  |  Bin 0 -> 528 bytes
 .../themes/default/unmaximize-focused-hover.png    |  Bin 0 -> 512 bytes
 .../themes/default/unmaximize-focused-normal.png   |  Bin 0 -> 520 bytes
 .../default/unmaximize-unfocused-clicked.png       |  Bin 0 -> 528 bytes
 .../themes/default/unmaximize-unfocused-hover.png  |  Bin 0 -> 512 bytes
 .../themes/default/unmaximize-unfocused-normal.png |  Bin 0 -> 518 bytes
 .../themes/dust-invert/close-clicked.png           |  Bin 0 -> 1021 bytes
 .../themes/dust-invert/close-focused.png           |  Bin 0 -> 293 bytes
 window-buttons/themes/dust-invert/close-hover.png  |  Bin 0 -> 997 bytes
 .../themes/dust-invert/close-unfocused.png         |  Bin 0 -> 293 bytes
 .../themes/dust-invert/maximize-clicked.png        |  Bin 0 -> 1127 bytes
 .../themes/dust-invert/maximize-focused.png        |  Bin 0 -> 276 bytes
 .../themes/dust-invert/maximize-hover.png          |  Bin 0 -> 1088 bytes
 .../themes/dust-invert/maximize-unfocused.png      |  Bin 0 -> 276 bytes
 .../themes/dust-invert/minimize-clicked.png        |  Bin 0 -> 1128 bytes
 .../themes/dust-invert/minimize-focused.png        |  Bin 0 -> 262 bytes
 .../themes/dust-invert/minimize-hover.png          |  Bin 0 -> 1097 bytes
 .../themes/dust-invert/minimize-unfocused.png      |  Bin 0 -> 262 bytes
 .../themes/dust-invert/unmaximize-clicked.png      |  Bin 0 -> 1127 bytes
 .../themes/dust-invert/unmaximize-focused.png      |  Bin 0 -> 276 bytes
 .../themes/dust-invert/unmaximize-hover.png        |  Bin 0 -> 1088 bytes
 .../themes/dust-invert/unmaximize-unfocused.png    |  Bin 0 -> 276 bytes
 window-buttons/themes/dust-sand/close-clicked.png  |  Bin 0 -> 3245 bytes
 window-buttons/themes/dust-sand/close-focused.png  |  Bin 0 -> 3245 bytes
 window-buttons/themes/dust-sand/close-hover.png    |  Bin 0 -> 3221 bytes
 .../themes/dust-sand/close-unfocused.png           |  Bin 0 -> 3250 bytes
 .../themes/dust-sand/maximize-clicked.png          |  Bin 0 -> 3245 bytes
 .../themes/dust-sand/maximize-focused.png          |  Bin 0 -> 3245 bytes
 window-buttons/themes/dust-sand/maximize-hover.png |  Bin 0 -> 3221 bytes
 .../themes/dust-sand/maximize-unfocused.png        |  Bin 0 -> 3250 bytes
 .../themes/dust-sand/minimize-clicked.png          |  Bin 0 -> 3245 bytes
 .../themes/dust-sand/minimize-focused.png          |  Bin 0 -> 3245 bytes
 window-buttons/themes/dust-sand/minimize-hover.png |  Bin 0 -> 3221 bytes
 .../themes/dust-sand/minimize-unfocused.png        |  Bin 0 -> 3250 bytes
 .../themes/dust-sand/unmaximize-clicked.png        |  Bin 0 -> 3245 bytes
 .../themes/dust-sand/unmaximize-focused.png        |  Bin 0 -> 3245 bytes
 .../themes/dust-sand/unmaximize-hover.png          |  Bin 0 -> 3221 bytes
 .../themes/dust-sand/unmaximize-unfocused.png      |  Bin 0 -> 3250 bytes
 window-buttons/themes/dust/close-clicked.png       |  Bin 0 -> 1039 bytes
 window-buttons/themes/dust/close-focused.png       |  Bin 0 -> 309 bytes
 window-buttons/themes/dust/close-hover.png         |  Bin 0 -> 997 bytes
 window-buttons/themes/dust/close-unfocused.png     |  Bin 0 -> 309 bytes
 window-buttons/themes/dust/maximize-clicked.png    |  Bin 0 -> 1124 bytes
 window-buttons/themes/dust/maximize-focused.png    |  Bin 0 -> 280 bytes
 window-buttons/themes/dust/maximize-hover.png      |  Bin 0 -> 1100 bytes
 window-buttons/themes/dust/maximize-unfocused.png  |  Bin 0 -> 280 bytes
 window-buttons/themes/dust/minimize-clicked.png    |  Bin 0 -> 1127 bytes
 window-buttons/themes/dust/minimize-focused.png    |  Bin 0 -> 273 bytes
 window-buttons/themes/dust/minimize-hover.png      |  Bin 0 -> 1104 bytes
 window-buttons/themes/dust/minimize-unfocused.png  |  Bin 0 -> 273 bytes
 window-buttons/themes/dust/unmaximize-clicked.png  |  Bin 0 -> 1124 bytes
 window-buttons/themes/dust/unmaximize-focused.png  |  Bin 0 -> 280 bytes
 window-buttons/themes/dust/unmaximize-hover.png    |  Bin 0 -> 1100 bytes
 .../themes/dust/unmaximize-unfocused.png           |  Bin 0 -> 280 bytes
 window-buttons/themes/elementary/README            |    8 +
 window-buttons/themes/elementary/close-clicked.png |  Bin 0 -> 478 bytes
 window-buttons/themes/elementary/close-focused.png |  Bin 0 -> 465 bytes
 window-buttons/themes/elementary/close-hover.png   |  Bin 0 -> 478 bytes
 .../themes/elementary/close-unfocused.png          |  Bin 0 -> 504 bytes
 .../themes/elementary/maximize-clicked.png         |  Bin 0 -> 442 bytes
 .../themes/elementary/maximize-focused.png         |  Bin 0 -> 432 bytes
 .../themes/elementary/maximize-hover.png           |  Bin 0 -> 442 bytes
 .../themes/elementary/maximize-unfocused.png       |  Bin 0 -> 448 bytes
 .../themes/elementary/minimize-clicked.png         |  Bin 0 -> 294 bytes
 .../themes/elementary/minimize-focused.png         |  Bin 0 -> 296 bytes
 .../themes/elementary/minimize-hover.png           |  Bin 0 -> 294 bytes
 .../themes/elementary/minimize-unfocused.png       |  Bin 0 -> 282 bytes
 .../themes/elementary/unmaximize-clicked.png       |  Bin 0 -> 442 bytes
 .../themes/elementary/unmaximize-focused.png       |  Bin 0 -> 432 bytes
 .../themes/elementary/unmaximize-hover.png         |  Bin 0 -> 442 bytes
 .../themes/elementary/unmaximize-unfocused.png     |  Bin 0 -> 448 bytes
 window-buttons/themes/equinox-glass/README         |   13 +
 .../themes/equinox-glass/close-clicked.png         |  Bin 0 -> 707 bytes
 .../themes/equinox-glass/close-focused.png         |  Bin 0 -> 625 bytes
 .../themes/equinox-glass/close-hover.png           |  Bin 0 -> 700 bytes
 .../themes/equinox-glass/close-unfocused.png       |  Bin 0 -> 625 bytes
 .../themes/equinox-glass/maximize-clicked.png      |  Bin 0 -> 434 bytes
 .../themes/equinox-glass/maximize-focused.png      |  Bin 0 -> 335 bytes
 .../themes/equinox-glass/maximize-hover.png        |  Bin 0 -> 439 bytes
 .../themes/equinox-glass/maximize-unfocused.png    |  Bin 0 -> 335 bytes
 .../themes/equinox-glass/minimize-clicked.png      |  Bin 0 -> 511 bytes
 .../themes/equinox-glass/minimize-focused.png      |  Bin 0 -> 384 bytes
 .../themes/equinox-glass/minimize-hover.png        |  Bin 0 -> 511 bytes
 .../themes/equinox-glass/minimize-unfocused.png    |  Bin 0 -> 384 bytes
 .../themes/equinox-glass/unmaximize-clicked.png    |  Bin 0 -> 434 bytes
 .../themes/equinox-glass/unmaximize-focused.png    |  Bin 0 -> 335 bytes
 .../themes/equinox-glass/unmaximize-hover.png      |  Bin 0 -> 439 bytes
 .../themes/equinox-glass/unmaximize-unfocused.png  |  Bin 0 -> 335 bytes
 window-buttons/themes/human-thin/close-clicked.png |  Bin 0 -> 580 bytes
 window-buttons/themes/human-thin/close-focused.png |  Bin 0 -> 609 bytes
 window-buttons/themes/human-thin/close-hover.png   |  Bin 0 -> 824 bytes
 .../themes/human-thin/close-unfocused.png          |  Bin 0 -> 580 bytes
 .../themes/human-thin/maximize-clicked.png         |  Bin 0 -> 534 bytes
 .../themes/human-thin/maximize-focused.png         |  Bin 0 -> 523 bytes
 .../themes/human-thin/maximize-hover.png           |  Bin 0 -> 594 bytes
 .../themes/human-thin/maximize-unfocused.png       |  Bin 0 -> 524 bytes
 .../themes/human-thin/minimize-clicked.png         |  Bin 0 -> 438 bytes
 .../themes/human-thin/minimize-focused.png         |  Bin 0 -> 430 bytes
 .../themes/human-thin/minimize-hover.png           |  Bin 0 -> 477 bytes
 .../themes/human-thin/minimize-unfocused.png       |  Bin 0 -> 433 bytes
 .../themes/human-thin/unmaximize-clicked.png       |  Bin 0 -> 510 bytes
 .../themes/human-thin/unmaximize-focused.png       |  Bin 0 -> 504 bytes
 .../themes/human-thin/unmaximize-hover.png         |  Bin 0 -> 608 bytes
 .../themes/human-thin/unmaximize-unfocused.png     |  Bin 0 -> 513 bytes
 window-buttons/themes/human/close-clicked.png      |  Bin 0 -> 652 bytes
 window-buttons/themes/human/close-focused.png      |  Bin 0 -> 673 bytes
 window-buttons/themes/human/close-hover.png        |  Bin 0 -> 950 bytes
 window-buttons/themes/human/close-unfocused.png    |  Bin 0 -> 659 bytes
 window-buttons/themes/human/maximize-clicked.png   |  Bin 0 -> 614 bytes
 window-buttons/themes/human/maximize-focused.png   |  Bin 0 -> 591 bytes
 window-buttons/themes/human/maximize-hover.png     |  Bin 0 -> 639 bytes
 window-buttons/themes/human/maximize-unfocused.png |  Bin 0 -> 595 bytes
 window-buttons/themes/human/minimize-clicked.png   |  Bin 0 -> 489 bytes
 window-buttons/themes/human/minimize-focused.png   |  Bin 0 -> 477 bytes
 window-buttons/themes/human/minimize-hover.png     |  Bin 0 -> 522 bytes
 window-buttons/themes/human/minimize-unfocused.png |  Bin 0 -> 482 bytes
 window-buttons/themes/human/unmaximize-clicked.png |  Bin 0 -> 589 bytes
 window-buttons/themes/human/unmaximize-focused.png |  Bin 0 -> 582 bytes
 window-buttons/themes/human/unmaximize-hover.png   |  Bin 0 -> 691 bytes
 .../themes/human/unmaximize-unfocused.png          |  Bin 0 -> 575 bytes
 window-buttons/themes/new-hope/close-clicked.png   |  Bin 0 -> 521 bytes
 window-buttons/themes/new-hope/close-focused.png   |  Bin 0 -> 554 bytes
 window-buttons/themes/new-hope/close-hover.png     |  Bin 0 -> 611 bytes
 window-buttons/themes/new-hope/close-unfocused.png |  Bin 0 -> 521 bytes
 .../themes/new-hope/maximize-clicked.png           |  Bin 0 -> 560 bytes
 .../themes/new-hope/maximize-focused.png           |  Bin 0 -> 562 bytes
 window-buttons/themes/new-hope/maximize-hover.png  |  Bin 0 -> 576 bytes
 .../themes/new-hope/maximize-unfocused.png         |  Bin 0 -> 560 bytes
 .../themes/new-hope/minimize-clicked.png           |  Bin 0 -> 526 bytes
 .../themes/new-hope/minimize-focused.png           |  Bin 0 -> 570 bytes
 window-buttons/themes/new-hope/minimize-hover.png  |  Bin 0 -> 572 bytes
 .../themes/new-hope/minimize-unfocused.png         |  Bin 0 -> 526 bytes
 .../themes/new-hope/unmaximize-clicked.png         |  Bin 0 -> 560 bytes
 .../themes/new-hope/unmaximize-focused.png         |  Bin 0 -> 562 bytes
 .../themes/new-hope/unmaximize-hover.png           |  Bin 0 -> 576 bytes
 .../themes/new-hope/unmaximize-unfocused.png       |  Bin 0 -> 560 bytes
 window-buttons/themes/plano/close-clicked.png      |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/close-focused.png      |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/close-hover.png        |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/close-unfocused.png    |  Bin 0 -> 750 bytes
 window-buttons/themes/plano/maximize-clicked.png   |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/maximize-focused.png   |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/maximize-hover.png     |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/maximize-unfocused.png |  Bin 0 -> 750 bytes
 window-buttons/themes/plano/minimize-clicked.png   |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/minimize-focused.png   |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/minimize-hover.png     |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/minimize-unfocused.png |  Bin 0 -> 750 bytes
 window-buttons/themes/plano/unmaximize-clicked.png |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/unmaximize-focused.png |  Bin 0 -> 2173 bytes
 window-buttons/themes/plano/unmaximize-hover.png   |  Bin 0 -> 2173 bytes
 .../themes/plano/unmaximize-unfocused.png          |  Bin 0 -> 750 bytes
 .../radiance-maverick/close-focused-clicked.png    |  Bin 0 -> 911 bytes
 .../radiance-maverick/close-focused-hover.png      |  Bin 0 -> 1130 bytes
 .../radiance-maverick/close-focused-normal.png     |  Bin 0 -> 1123 bytes
 .../radiance-maverick/close-unfocused-clicked.png  |  Bin 0 -> 911 bytes
 .../radiance-maverick/close-unfocused-hover.png    |  Bin 0 -> 1036 bytes
 .../radiance-maverick/close-unfocused-normal.png   |  Bin 0 -> 744 bytes
 .../radiance-maverick/maximize-focused-clicked.png |  Bin 0 -> 728 bytes
 .../radiance-maverick/maximize-focused-hover.png   |  Bin 0 -> 925 bytes
 .../radiance-maverick/maximize-focused-normal.png  |  Bin 0 -> 848 bytes
 .../maximize-unfocused-clicked.png                 |  Bin 0 -> 728 bytes
 .../radiance-maverick/maximize-unfocused-hover.png |  Bin 0 -> 925 bytes
 .../maximize-unfocused-normal.png                  |  Bin 0 -> 650 bytes
 .../radiance-maverick/minimize-focused-clicked.png |  Bin 0 -> 689 bytes
 .../radiance-maverick/minimize-focused-hover.png   |  Bin 0 -> 879 bytes
 .../radiance-maverick/minimize-focused-normal.png  |  Bin 0 -> 834 bytes
 .../minimize-unfocused-clicked.png                 |  Bin 0 -> 689 bytes
 .../radiance-maverick/minimize-unfocused-hover.png |  Bin 0 -> 879 bytes
 .../minimize-unfocused-normal.png                  |  Bin 0 -> 628 bytes
 .../unmaximize-focused-clicked.png                 |  Bin 0 -> 730 bytes
 .../radiance-maverick/unmaximize-focused-hover.png |  Bin 0 -> 936 bytes
 .../unmaximize-focused-normal.png                  |  Bin 0 -> 852 bytes
 .../unmaximize-unfocused-clicked.png               |  Bin 0 -> 730 bytes
 .../unmaximize-unfocused-hover.png                 |  Bin 0 -> 936 bytes
 .../unmaximize-unfocused-normal.png                |  Bin 0 -> 649 bytes
 window-buttons/themes/radiance/close-clicked.png   |  Bin 0 -> 1082 bytes
 window-buttons/themes/radiance/close-focused.png   |  Bin 0 -> 1082 bytes
 window-buttons/themes/radiance/close-hover.png     |  Bin 0 -> 1053 bytes
 window-buttons/themes/radiance/close-unfocused.png |  Bin 0 -> 987 bytes
 .../themes/radiance/maximize-clicked.png           |  Bin 0 -> 844 bytes
 .../themes/radiance/maximize-focused.png           |  Bin 0 -> 950 bytes
 window-buttons/themes/radiance/maximize-hover.png  |  Bin 0 -> 936 bytes
 .../themes/radiance/maximize-unfocused.png         |  Bin 0 -> 965 bytes
 .../themes/radiance/minimize-clicked.png           |  Bin 0 -> 824 bytes
 .../themes/radiance/minimize-focused.png           |  Bin 0 -> 949 bytes
 window-buttons/themes/radiance/minimize-hover.png  |  Bin 0 -> 931 bytes
 .../themes/radiance/minimize-unfocused.png         |  Bin 0 -> 961 bytes
 .../themes/radiance/unmaximize-clicked.png         |  Bin 0 -> 832 bytes
 .../themes/radiance/unmaximize-focused.png         |  Bin 0 -> 931 bytes
 .../themes/radiance/unmaximize-hover.png           |  Bin 0 -> 931 bytes
 .../themes/radiance/unmaximize-unfocused.png       |  Bin 0 -> 945 bytes
 window-buttons/themes/sorbet/close-clicked.png     |  Bin 0 -> 488 bytes
 window-buttons/themes/sorbet/close-focused.png     |  Bin 0 -> 364 bytes
 window-buttons/themes/sorbet/close-hover.png       |  Bin 0 -> 340 bytes
 window-buttons/themes/sorbet/close-unfocused.png   |  Bin 0 -> 464 bytes
 window-buttons/themes/sorbet/maximize-clicked.png  |  Bin 0 -> 409 bytes
 window-buttons/themes/sorbet/maximize-focused.png  |  Bin 0 -> 211 bytes
 window-buttons/themes/sorbet/maximize-hover.png    |  Bin 0 -> 211 bytes
 .../themes/sorbet/maximize-unfocused.png           |  Bin 0 -> 211 bytes
 window-buttons/themes/sorbet/minimize-clicked.png  |  Bin 0 -> 409 bytes
 window-buttons/themes/sorbet/minimize-focused.png  |  Bin 0 -> 200 bytes
 window-buttons/themes/sorbet/minimize-hover.png    |  Bin 0 -> 200 bytes
 .../themes/sorbet/minimize-unfocused.png           |  Bin 0 -> 200 bytes
 .../themes/sorbet/unmaximize-clicked.png           |  Bin 0 -> 456 bytes
 .../themes/sorbet/unmaximize-focused.png           |  Bin 0 -> 238 bytes
 window-buttons/themes/sorbet/unmaximize-hover.png  |  Bin 0 -> 230 bytes
 .../themes/sorbet/unmaximize-unfocused.png         |  Bin 0 -> 238 bytes
 window-buttons/windowbuttons.c                     |  710 +++++++++++
 window-buttons/windowbuttons.h                     |  225 ++++
 window-buttons/windowbuttons.schemas.in            |  385 ++++++
 window-buttons/windowbuttons.ui                    | 1231 ++++++++++++++++++++
 window-title/Makefile.am                           |   74 ++
 ...nome.panel.WindowTitleApplet.panel-applet.in.in |   15 +
 ...anel.applet.WindowTitleAppletFactory.service.in |    3 +
 window-title/pixmaps/Makefile.am                   |   12 +
 window-title/pixmaps/Makefile.in                   |  408 +++++++
 window-title/pixmaps/windowtitle-applet.png        |  Bin 0 -> 5198 bytes
 window-title/preferences.c                         |  343 ++++++
 window-title/preferences.h                         |   25 +
 window-title/windowtitle.c                         |  749 ++++++++++++
 window-title/windowtitle.h                         |  157 +++
 window-title/windowtitle.schemas.in                |  164 +++
 window-title/windowtitle.ui                        |  557 +++++++++
 391 files changed, 6215 insertions(+), 0 deletions(-)
---
diff --git a/window-buttons/Makefile.am b/window-buttons/Makefile.am
new file mode 100644
index 0000000..4c1dbc2
--- /dev/null
+++ b/window-buttons/Makefile.am
@@ -0,0 +1,84 @@
+AM_CPPFLAGS = \
+       -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
+       -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
+       -DPACKAGE_DATA_DIR=\""$(datadir)"\" \
+       $(WINDOWBUTTONS_CFLAGS)
+
+AM_CFLAGS =\
+        -Wall\
+        -g
+
+libexec_PROGRAMS = windowbuttons
+
+windowbuttons_SOURCES = \
+       windowbuttons.c\
+       windowbuttons.h \
+       preferences.c \
+       preferences.h \
+       external.c \
+       external.h \
+       theme.c \
+       theme.h
+
+windowbuttons_LDFLAGS = \
+       -Wl,--export-dynamic
+
+windowbuttons_LDADD = $(WINDOWBUTTONS_LIBS)
+
+# The new applet files (D-Bus???)
+appletdir       = $(datadir)/gnome-panel/4.0/applets
+applet_in_files = org.gnome.panel.WindowButtonsApplet.panel-applet.in
+applet_DATA     = $(applet_in_files:.panel-applet.in=.panel-applet)
+
+$(applet_in_files): $(applet_in_files).in Makefile
+       $(AM_V_GEN)sed \
+           -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
+           -e "s|\@DATADIR\@|$(datadir)|" \
+           -e "s|\@VERSION\@|$(PACKAGE_VERSION)|" \
+           $< > $@
+
+%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) 
$(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+# The new Service file (D-Bus)
+servicedir       = $(datadir)/dbus-1/services
+service_in_files = org.gnome.panel.applet.WindowButtonsAppletFactory.service.in
+service_DATA     = $(service_in_files:.service.in=.service)
+
+org.gnome.panel.applet.WindowButtonsAppletFactory.service: $(service_in_files)
+       $(AM_V_GEN)sed \
+           -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
+           $< > $@
+
+# Schemas for GConf
+schemasdir       = @GCONF_SCHEMA_FILE_DIR@
+schemas_in_files = windowbuttons.schemas.in
+schemas_DATA     = $(schemas_in_files:.schemas.in=.schemas)
+
+windowbuttons.schemas: $(schemas_in_files)
+       $(AM_V_GEN)sed \
+           -e "s|\@DATADIR\@|$(datadir)|" \
+           $< > $@
+
+@INTLTOOL_SCHEMAS_RULE@
+
+if GCONF_SCHEMAS_INSTALL
+install-data-local:
+       GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule 
$(schemas_DATA) ;
+endif
+
+# UI Builder file (Glade)
+builderdir = $(datadir)/windowbuttons
+builder_DATA = windowbuttons.ui
+
+#CLEANFILES = $(service_in_files) $(server_DATA)
+CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(schemas_DATA)
+
+EXTRA_DIST = \
+       org.gnome.panel.WindowButtonsApplet.panel-applet.in.in \
+       $(service_in_files) \
+       $(schemas_in_files) \
+       $(builder_DATA)
+
+SUBDIRS = \
+       pixmaps\
+       themes
diff --git a/window-buttons/external.c b/window-buttons/external.c
new file mode 100644
index 0000000..d4fe605
--- /dev/null
+++ b/window-buttons/external.c
@@ -0,0 +1,93 @@
+/***************************************************************************
+ *            external.c
+ *
+ *  Wed Sep  29 01:56:39 2010
+ *  Copyright  2010  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+/* 
+ * This file is responsible for handling of things that are a part of outside
+ * programs (Metacity, Compiz...).
+ */
+
+#include "external.h"
+
+gchar *getMetacityLayout(void);
+gchar *getMetacityTheme(void);
+gboolean issetCompizDecoration(void);
+//gboolean issetMetacityDecoration(void); //TODO
+void toggleCompizDecoration(gboolean);
+//void toggleMetacityDecoration(gboolean); //TODO
+
+gchar *getMetacityLayout() {
+       GConfClient *gcc = gconf_client_get_default();
+       gchar *retval = gconf_client_get_string(gcc, GCONF_METACITY_BUTTON_LAYOUT, NULL);
+       g_object_unref(gcc);
+       return retval;
+}
+
+gchar *getMetacityTheme() {
+       GConfClient *gcc = gconf_client_get_default();
+       gchar *retval = gconf_client_get_string(gcc, GCONF_METACITY_THEME, NULL);
+       g_object_unref(gcc);
+       return retval;
+}
+
+gboolean issetCompizDecoration() {
+       gboolean retval = FALSE;
+       GConfClient *gcc = gconf_client_get_default();
+       gchar *gconf_cdm = gconf_client_get_string(gcc, GCONF_COMPIZ_DECORATION_MATCH, NULL);
+       
+       if (gconf_cdm == NULL) {
+               retval = FALSE;
+       } else if (!g_strcmp0(gconf_cdm, COMPIZ_DECORATION_MATCH)) {
+               retval = TRUE;
+       }
+       g_free(gconf_cdm);
+       g_object_unref(gcc);
+       return retval;
+}
+
+void toggleCompizDecoration(gboolean new_value) {
+       GError *err = NULL;
+       GConfClient *gconfclient = gconf_client_get_default();
+
+       if (new_value) {
+               if (gconf_client_unset(gconfclient, GCONF_COMPIZ_DECORATION_MATCH, &err))
+                       gconf_client_unset(gconfclient, GCONF_COMPIZ_DECORATION_MATCH_OLD, &err);
+       } else if (gconf_client_get_string(gconfclient, GCONF_COMPIZ_DECORATION_MATCH, &err)) {
+                                        gconf_client_set_string(gconfclient,
+                                        GCONF_COMPIZ_DECORATION_MATCH,
+                                        COMPIZ_DECORATION_MATCH,
+                                        NULL);
+       } else if (gconf_client_get_string(gconfclient, GCONF_COMPIZ_DECORATION_MATCH_OLD, &err)) {
+                                        gconf_client_set_string(gconfclient,
+                                        GCONF_COMPIZ_DECORATION_MATCH_OLD,
+                                        COMPIZ_DECORATION_MATCH,
+                                        NULL);
+       } else {
+               // Compiz probably not installed. Unset newly created value.
+               // TODO: This doesn't really remove it. I hate GConf.
+               toggleCompizDecoration(0);
+       }
+
+       g_free(err);
+       g_object_unref(gconfclient);
+}
\ No newline at end of file
diff --git a/window-buttons/external.h b/window-buttons/external.h
new file mode 100644
index 0000000..52f5280
--- /dev/null
+++ b/window-buttons/external.h
@@ -0,0 +1,31 @@
+/***************************************************************************
+ *            external.h
+ *
+ *  Wed Sep  29 01:56:39 2010
+ *  Copyright  2010  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#include <gconf/gconf-client.h>
+
+#define GCONF_METACITY_THEME                   "/apps/metacity/general/theme"
+#define GCONF_METACITY_BUTTON_LAYOUT           "/apps/metacity/general/button_layout"
+#define GCONF_COMPIZ_DECORATION_MATCH          
"/apps/compiz-1/plugins/decor/screen0/options/decoration_match"
+#define GCONF_COMPIZ_DECORATION_MATCH_OLD      
"/apps/compiz/plugins/decoration/allscreens/options/decoration_match"
+#define COMPIZ_DECORATION_MATCH                        "!state=maxvert"
diff --git a/window-buttons/org.gnome.panel.WindowButtonsApplet.panel-applet.in.in 
b/window-buttons/org.gnome.panel.WindowButtonsApplet.panel-applet.in.in
new file mode 100644
index 0000000..5ea35b6
--- /dev/null
+++ b/window-buttons/org.gnome.panel.WindowButtonsApplet.panel-applet.in.in
@@ -0,0 +1,15 @@
+[Applet Factory]
+Id=WindowButtonsAppletFactory
+Location=@LIBEXECDIR@/windowbuttons
+_Name=Window Buttons applet Factory
+_Description=Window buttons for your GNOME Panel
+
+[WindowButtonsApplet]
+_Name=Window Buttons
+_Description=Window buttons for your GNOME Panel
+Icon=windowbuttons-applet
+BonoboId=OAFIID:WindowButtonsApplet
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-window-applets
+X-GNOME-Bugzilla-Component=windowbuttons
+X-GNOME-Bugzilla-Version=@VERSION@
diff --git a/window-buttons/org.gnome.panel.applet.WindowButtonsAppletFactory.service.in 
b/window-buttons/org.gnome.panel.applet.WindowButtonsAppletFactory.service.in
new file mode 100644
index 0000000..9ec52d9
--- /dev/null
+++ b/window-buttons/org.gnome.panel.applet.WindowButtonsAppletFactory.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.panel.applet.WindowButtonsAppletFactory
+Exec=@LIBEXECDIR@/windowbuttons
diff --git a/window-buttons/pixmaps/Makefile.am b/window-buttons/pixmaps/Makefile.am
new file mode 100644
index 0000000..e47a3ef
--- /dev/null
+++ b/window-buttons/pixmaps/Makefile.am
@@ -0,0 +1,14 @@
+
+EXTRA_DIST = \
+       $(pixmaps_DATA)\
+       $(other_files_DATA) \
+       $(pixmaps_DATA)
+
+pixmaps_DATA = \
+       windowbuttons-applet.png 
+
+pixmapsdir = \
+       $(datadir)/pixmaps
+
+## File created by the gnome-build tools
+
diff --git a/window-buttons/pixmaps/windowbuttons-applet.png b/window-buttons/pixmaps/windowbuttons-applet.png
new file mode 100644
index 0000000..72b2d35
Binary files /dev/null and b/window-buttons/pixmaps/windowbuttons-applet.png differ
diff --git a/window-buttons/preferences.c b/window-buttons/preferences.c
new file mode 100644
index 0000000..3cda104
--- /dev/null
+++ b/window-buttons/preferences.c
@@ -0,0 +1,575 @@
+/***************************************************************************
+ *            preferences.c
+ *
+ *  Mon May  4 01:23:08 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#include "preferences.h"
+
+/* prototypes */
+void cb_only_maximized (GtkButton *, WBApplet *);
+void cb_click_effect (GtkButton *, WBApplet *);
+void cb_hover_effect (GtkButton *, WBApplet *);
+void cb_hide_on_unmaximized (GtkButton *, WBApplet *);
+void cb_hide_decoration (GtkButton *, WBApplet *);
+void cb_btn_minimize_hidden (GtkButton *, WBApplet *);
+void cb_btn_maximize_hidden (GtkButton *, WBApplet *);
+void cb_btn_close_hidden (GtkButton *, WBApplet *);
+void properties_close (GtkButton *, WBApplet *);
+void updateImages(WBApplet *);
+void savePreferences(WBPreferences *, WBApplet *);
+void loadThemeComboBox(GtkComboBox *, gchar *);
+void loadThemeButtons(GtkWidget ***, GdkPixbuf ***, gchar ***);
+void toggleCompizDecoration(gboolean);
+void reloadButtons(WBApplet *);
+const gchar *getImageCfgKey (gushort, gushort);
+const gchar *getCheckBoxCfgKey (gushort);
+const gchar *getImageCfgKey(gushort, gushort);
+const gchar *getImageCfgKey4(gushort, gushort);
+const gchar* getButtonImageState(int, const gchar*);
+const gchar* getButtonImageState4(int);
+const gchar* getButtonImageName(int);
+GtkRadioButton **getOrientationButtons(GtkBuilder *);
+GtkToggleButton **getHideButtons(GtkBuilder *);
+GtkWidget ***getImageButtons(GtkBuilder *);
+GdkPixbuf ***getPixbufs(gchar ***);
+gchar ***getImages(gchar *);
+gchar *getMetacityLayout (void);
+gchar *getCfgValue(FILE *, gchar *);
+gchar *fixThemeName(gchar *);
+gshort *getEBPos(gchar *);
+WBPreferences *loadPreferences(WBApplet *);
+gboolean issetCompizDecoration(void);
+
+void savePreferences(WBPreferences *wbp, WBApplet *wbapplet) {
+#if PLAINTEXT_CONFIG == 0
+       gint i, j;
+
+       for (i=0; i<WB_BUTTONS; i++) {
+               //panel_applet_gconf_set_bool (wbapplet->applet, getCheckBoxCfgKey(i), 
(wbapplet->button[i]->state & WB_BUTTON_STATE_HIDDEN), NULL);
+               panel_applet_gconf_set_bool (wbapplet->applet, getCheckBoxCfgKey(i), wbp->button_hidden[i], 
NULL);
+       }
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               for (j=0; j<WB_IMAGES; j++) {
+                       panel_applet_gconf_set_string (wbapplet->applet, getImageCfgKey(i,j), 
wbp->images[i][j], NULL);
+               }
+       }
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_ONLY_MAXIMIZED, wbp->only_maximized, NULL);
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_CLICK_EFFECT, wbp->click_effect, NULL);
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_HOVER_EFFECT, wbp->hover_effect, NULL);
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_HIDE_ON_UNMAXIMIZED, wbp->hide_on_unmaximized, 
NULL);
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_USE_METACITY_LAYOUT, wbp->use_metacity_layout, 
NULL);
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_REVERSE_ORDER, wbp->reverse_order, NULL);
+       panel_applet_gconf_set_bool (wbapplet->applet, CFG_SHOW_TOOLTIPS, wbp->show_tooltips, NULL);
+       panel_applet_gconf_set_int (wbapplet->applet, CFG_ORIENTATION, wbp->orientation, NULL);
+       panel_applet_gconf_set_string (wbapplet->applet, CFG_THEME, wbp->theme, NULL);
+       if (!wbp->use_metacity_layout) {
+               // save only when we're using a custom layout
+               panel_applet_gconf_set_string (wbapplet->applet, CFG_BUTTON_LAYOUT, wbp->button_layout, NULL);
+       }
+#else
+       FILE *cfg = g_fopen (g_strconcat(g_get_home_dir(),"/",FILE_CONFIGFILE,NULL),"w");
+       gint i, j;
+       
+       for (i=0; i<WB_BUTTONS; i++) {
+               fprintf(cfg, "%s %d\n", getCheckBoxCfgKey(i), wbp->button_hidden[i]);
+       }
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               for (j=0; j<WB_IMAGES; j++) {
+                       fprintf(cfg, "%s %s\n", getImageCfgKey(i,j), wbp->images[i][j]);
+               }
+       }
+       fprintf(cfg, "%s %d\n", CFG_ONLY_MAXIMIZED, wbp->only_maximized);
+       fprintf(cfg, "%s %d\n", CFG_CLICK_EFFECT, wbp->click_effect);
+       fprintf(cfg, "%s %d\n", CFG_HOVER_EFFECT, wbp->hover_effect);
+       fprintf(cfg, "%s %d\n", CFG_HIDE_ON_UNMAXIMIZED, wbp->hide_on_unmaximized);
+       fprintf(cfg, "%s %d\n", CFG_USE_METACITY_LAYOUT, wbp->use_metacity_layout);
+       fprintf(cfg, "%s %d\n", CFG_REVERSE_ORDER, wbp->reverse_order);
+       fprintf(cfg, "%s %d\n", CFG_SHOW_TOOLTIPS, wbp->show_tooltips);
+       fprintf(cfg, "%s %d\n", CFG_ORIENTATION, wbp->orientation);
+       fprintf(cfg, "%s %s\n", CFG_THEME, wbp->theme);
+       if (!wbp->use_metacity_layout) {
+               fprintf(cfg, "%s %s\n", CFG_BUTTON_LAYOUT, wbp->button_layout);
+       }
+       
+       fclose (cfg);
+#endif
+}
+
+/* Get our properties (the only properties getter that should be called) */
+WBPreferences *loadPreferences(WBApplet *wbapplet) {
+       WBPreferences *wbp = g_new0(WBPreferences, 1);
+       gint i;
+
+       wbp->button_hidden = g_new(gboolean, WB_BUTTONS);
+       wbp->images = g_new(gchar**, WB_IMAGE_STATES);
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               wbp->images[i] = g_new(gchar*, WB_IMAGES);
+       }
+
+#if PLAINTEXT_CONFIG == 0
+       //gint i, j;
+       gint j;
+
+       for (i=0; i<WB_BUTTONS; i++) {
+               wbp->button_hidden[i] = panel_applet_gconf_get_bool(wbapplet->applet, getCheckBoxCfgKey(i), 
NULL);
+       }
+       
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               for (j=0; j<WB_IMAGES; j++) {
+                       wbp->images[i][j] = panel_applet_gconf_get_string(wbapplet->applet, 
getImageCfgKey(i,j), NULL);
+                       if (!g_file_test(wbp->images[i][j], G_FILE_TEST_EXISTS | ~G_FILE_TEST_IS_DIR)) { // 
this is only good for upgrading where old gconf keys still exist
+                               wbp->images[i][j] = panel_applet_gconf_get_string(wbapplet->applet, 
getImageCfgKey4(i,j), NULL);
+                       }
+               }
+       }
+
+       wbp->only_maximized = panel_applet_gconf_get_bool(wbapplet->applet, CFG_ONLY_MAXIMIZED, NULL);
+       wbp->hide_on_unmaximized = panel_applet_gconf_get_bool(wbapplet->applet, CFG_HIDE_ON_UNMAXIMIZED, 
NULL);
+       wbp->click_effect = panel_applet_gconf_get_bool(wbapplet->applet, CFG_CLICK_EFFECT, NULL);
+       wbp->hover_effect = panel_applet_gconf_get_bool(wbapplet->applet, CFG_HOVER_EFFECT, NULL);
+       wbp->use_metacity_layout = panel_applet_gconf_get_bool(wbapplet->applet, CFG_USE_METACITY_LAYOUT, 
NULL);
+       wbp->reverse_order = panel_applet_gconf_get_bool(wbapplet->applet, CFG_REVERSE_ORDER, NULL);
+       wbp->show_tooltips = panel_applet_gconf_get_bool(wbapplet->applet, CFG_SHOW_TOOLTIPS, NULL);
+       wbp->orientation = panel_applet_gconf_get_int(wbapplet->applet, CFG_ORIENTATION, NULL);
+       wbp->theme = panel_applet_gconf_get_string(wbapplet->applet, CFG_THEME, NULL);
+
+       // read positions from GConf
+       if (wbp->use_metacity_layout) {
+               wbp->button_layout = getMetacityLayout();
+       } else {
+               wbp->button_layout = panel_applet_gconf_get_string(wbapplet->applet, CFG_BUTTON_LAYOUT, NULL);
+       }
+#else
+       FILE *cfg = g_fopen (g_strconcat(g_get_home_dir(),"/",FILE_CONFIGFILE, NULL), "r");
+       gint i,j;
+
+       if (cfg) {
+               for (i=0; i<WB_BUTTONS; i++) {
+                       wbp->button_hidden[i] = 
g_ascii_strtod(getCfgValue(cfg,(gchar*)getCheckBoxCfgKey(i)),NULL);
+               }
+               for (i=0; i<WB_IMAGE_STATES; i++) {
+                       for (j=0; j<WB_IMAGES; j++) {
+                               wbp->images[i][j] = getCfgValue(cfg,(gchar*)getImageCfgKey(i,j));
+                               if (!g_file_test(wbp->images[i][j], G_FILE_TEST_EXISTS | 
~G_FILE_TEST_IS_DIR)) {
+                                       wbp->images[i][j] = getCfgValue(cfg,(gchar*)getImageCfgKey4(i,j));
+                               }
+                       }
+               }
+               wbp->only_maximized = g_ascii_strtod(getCfgValue(cfg,CFG_ONLY_MAXIMIZED),NULL);
+               wbp->hide_on_unmaximized = g_ascii_strtod(getCfgValue(cfg,CFG_HIDE_ON_UNMAXIMIZED),NULL);
+               wbp->click_effect = g_ascii_strtod(getCfgValue(cfg,CFG_CLICK_EFFECT),NULL);
+               wbp->hover_effect = g_ascii_strtod(getCfgValue(cfg,CFG_HOVER_EFFECT),NULL);
+               wbp->reverse_order = g_ascii_strtod(getCfgValue(cfg,CFG_REVERSE_ORDER),NULL);
+               wbp->show_tooltips = g_ascii_strtod(getCfgValue(cfg,CFG_SHOW_TOOLTIPS),NULL);
+               wbp->orientation = g_ascii_strtod(getCfgValue(cfg,CFG_ORIENTATION),NULL);
+               wbp->use_metacity_layout = g_ascii_strtod(getCfgValue(cfg,CFG_USE_METACITY_LAYOUT),NULL);
+               if (wbp->use_metacity_layout) {
+                       // wbp->button_layout = getMetacityLayout(); // We're avoiding GConf, so let's not 
use that
+                       wbp->button_layout = "menu:minimize,maximize,close";
+               } else {
+                       wbp->button_layout = getCfgValue(cfg,CFG_BUTTON_LAYOUT);
+               }
+               wbp->theme = getCfgValue(cfg,CFG_THEME);
+
+               fclose (cfg);           
+       } else {
+               // Defaults if the file doesn't exist
+
+               wbp->only_maximized = TRUE;
+               wbp->hide_on_unmaximized = FALSE;
+               wbp->click_effect = TRUE;
+               wbp->hover_effect = TRUE;
+               wbp->use_metacity_layout = TRUE;        
+               wbp->reverse_order = FALSE;
+               wbp->show_tooltips = FALSE;
+               wbp->orientation = 0;
+               wbp->button_layout = "menu:minimize,maximize,close";
+               wbp->theme = "default";
+               for (i=0; i<WB_BUTTONS; i++) {
+                       wbp->button_hidden[i] = 0;
+               }
+               for (i=0; i<WB_IMAGE_STATES; i++) {
+                       for (j=0; j<WB_IMAGES; j++) {
+                               wbp->images[i][j] = 
g_strconcat(PATH_THEMES,"/",wbp->theme,"/",getButtonImageName(j),"-",getButtonImageState(i,"-"),".",THEME_EXTENSION,NULL);
+                               if (!g_file_test(wbp->images[i][j], G_FILE_TEST_EXISTS | 
~G_FILE_TEST_IS_DIR)) {
+                                       wbp->images[i][j] = 
g_strconcat(PATH_THEMES,"/",wbp->theme,"/",getButtonImageName(j),"-",getButtonImageState4(i),".",THEME_EXTENSION,NULL);
+                               }
+                       }
+               }
+
+               savePreferences(wbp,wbapplet);
+       }
+#endif
+
+       wbp->eventboxposition = getEBPos(wbp->button_layout);
+
+       return wbp;
+}
+
+#if PLAINTEXT_CONFIG != 0
+/* Returns a string value of the specified configuration parameter (key) */
+gchar* getCfgValue(FILE *f, gchar *key) {
+    gchar tmp[256] = {0x0};
+       long int pos = ftell(f);
+       
+    while (f!=NULL && fgets(tmp,sizeof(tmp),f)!=NULL) {
+               if (g_strrstr(tmp, key))
+                   break;
+    }
+
+       gchar *r = g_strndup(tmp+strlen(key)+1,strlen(tmp)-strlen(key)+1);
+       g_strstrip(r);
+
+       fseek(f,pos,SEEK_SET);
+    return r;
+}
+#endif
+
+/* Parses Metacity's GConf entry to get the button order */
+gshort *getEBPos(gchar *button_layout) {
+       gshort *ebps = g_new(gshort, WB_BUTTONS);
+       gint i, j;
+
+       // in case we got a faulty button_layout:
+       for (i=0; i<WB_BUTTONS; i++) ebps[i] = i;
+               if (button_layout == NULL || *button_layout == '\0')
+                       return ebps;
+       
+//     for(i=0; i<WB_BUTTONS; i++) ebps[i] = -1; //set to -1 if we don't find some
+       gchar **pch = g_strsplit_set(button_layout, ":, ", -1);
+       i = 0; j = 0;
+       while (pch[j]) {
+               if (!g_strcmp0(pch[j], "minimize")) ebps[0] = i++;
+               if (!g_strcmp0(pch[j], "maximize")) ebps[1] = i++;
+               if (!g_strcmp0(pch[j], "close"))        ebps[2] = i++;
+               j++;
+       }
+       
+       g_strfreev(pch);
+       return ebps;
+}
+
+const gchar* getCheckBoxCfgKey(gushort checkbox_id) {
+       switch (checkbox_id) {
+               case 0: return CFG_MINIMIZE_HIDDEN;
+               case 1: return CFG_UNMAXIMIZE_HIDDEN;
+               case 2: return CFG_CLOSE_HIDDEN;
+               default: return NULL;
+       }
+}
+
+/* Returns a 2D array of GtkWidget image buttons */
+GtkWidget ***getImageButtons(GtkBuilder *prefbuilder) {
+       gint i,j;
+       GtkWidget ***btn = g_new(GtkWidget**, WB_IMAGE_STATES);
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               btn[i] = g_new(GtkWidget*, WB_IMAGES);
+               for (j=0; j<WB_IMAGES; j++) {
+                       btn[i][j] = GTK_WIDGET (gtk_builder_get_object(prefbuilder, getImageCfgKey(i,j)));
+               }
+       }
+       return btn;
+}
+
+GtkToggleButton **getHideButtons(GtkBuilder *prefbuilder) {
+       GtkToggleButton **chkb_btn_hidden = g_new(GtkToggleButton*, WB_BUTTONS);
+       chkb_btn_hidden[0] = GTK_TOGGLE_BUTTON (gtk_builder_get_object(prefbuilder, "cb_btn0_visible")),
+       chkb_btn_hidden[1] = GTK_TOGGLE_BUTTON (gtk_builder_get_object(prefbuilder, "cb_btn1_visible")),
+       chkb_btn_hidden[2] = GTK_TOGGLE_BUTTON (gtk_builder_get_object(prefbuilder, "cb_btn2_visible"));
+       return chkb_btn_hidden;
+}
+
+GtkRadioButton **getOrientationButtons(GtkBuilder *prefbuilder) {
+       GtkRadioButton **radio_orientation = g_new(GtkRadioButton*, 3);
+       radio_orientation[0] = GTK_RADIO_BUTTON (gtk_builder_get_object(prefbuilder, 
"orientation_automatic")),
+       radio_orientation[1] = GTK_RADIO_BUTTON (gtk_builder_get_object(prefbuilder, 
"orientation_horizontal")),
+       radio_orientation[2] = GTK_RADIO_BUTTON (gtk_builder_get_object(prefbuilder, "orientation_vertical"));
+       return radio_orientation;
+}
+
+void select_new_image (GtkButton *object, gpointer user_data) {
+       GtkWidget *fileopendialog;
+       ImageOpenData *iod = (ImageOpenData*)user_data;
+       WBApplet *wbapplet = iod->wbapplet;
+       fileopendialog = gtk_file_chooser_dialog_new
+                                       (
+                                       "Select New Image",
+                                               GTK_WINDOW (wbapplet->window_prefs),
+                                               GTK_FILE_CHOOSER_ACTION_OPEN,
+                                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                               GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                                               NULL
+                               );
+       if (gtk_dialog_run (GTK_DIALOG (fileopendialog)) == GTK_RESPONSE_ACCEPT) {
+               gchar *filename;
+               filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileopendialog));
+
+               // save new value to memory
+               wbapplet->prefs->images[iod->image_state][iod->image_index] = filename;
+
+               //wbapplet->prefs->theme = "custom"; //TODO: change combo box
+               //GtkComboBox *combo_theme = GTK_COMBO_BOX (gtk_builder_get_object(wbapplet->prefbuilder, 
"combo_theme"));
+               //GtkListStore *store = gtk_combo_box_get_model(combo_theme);
+               /*
+               GtkTreeIter iter;
+               gboolean valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(store), &iter);
+               while( valid ){
+                       // do stuff as 
+                       gtk_tree_model_get (GTK_TREE_MODEL(store), &iter, ... )
+                       //                      
+                       valid = gtk_tree_model_iter_next (GTK_TREE_MODEL(store), &iter);   
+               }
+                */
+               
+               wbapplet->pixbufs = getPixbufs(wbapplet->prefs->images); // reload pixbufs from files
+               loadThemeButtons(getImageButtons(wbapplet->prefbuilder), wbapplet->pixbufs, 
wbapplet->prefs->images); // set pref button images from pixbufs
+               updateImages(wbapplet); // reload images
+
+               savePreferences(wbapplet->prefs, wbapplet);
+       }
+       gtk_widget_destroy (fileopendialog);
+}
+
+void cb_only_maximized(GtkButton *button, WBApplet *wbapplet) {
+       wbapplet->prefs->only_maximized = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+void cb_click_effect(GtkButton *button, WBApplet *wbapplet) {
+       wbapplet->prefs->click_effect = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+void cb_hover_effect(GtkButton *button, WBApplet *wbapplet) {
+       wbapplet->prefs->hover_effect = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+void cb_reverse_order(GtkButton *button, WBApplet *wbapplet) {
+       wbapplet->prefs->reverse_order = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       reloadButtons(wbapplet);
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+void cb_hide_on_unmaximized(GtkButton *button, WBApplet *wbapplet) {
+       wbapplet->prefs->hide_on_unmaximized = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       updateImages(wbapplet);
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+void cb_hide_decoration(GtkButton *button, WBApplet *wbapplet) {
+       toggleCompizDecoration(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
+}
+
+void cb_show_tooltips(GtkButton *button, WBApplet *wbapplet) {
+       wbapplet->prefs->show_tooltips = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       gint i;
+       for (i=0; i<WB_BUTTONS; i++)
+               gtk_widget_set_has_tooltip (GTK_WIDGET(wbapplet->button[i]->image), 
wbapplet->prefs->show_tooltips);
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+void cb_btn_hidden(GtkButton *button, gpointer user_data) {
+       CheckBoxData *cbd = (CheckBoxData*)user_data;
+       WBApplet *wbapplet = cbd->wbapplet;
+       
+       if (wbapplet->prefs->button_hidden[cbd->button_id]) {
+               wbapplet->prefs->button_hidden[cbd->button_id] = 0;
+       } else {
+               wbapplet->prefs->button_hidden[cbd->button_id] = 1;
+       }
+
+       updateImages(wbapplet);
+       savePreferences(wbapplet->prefs, wbapplet);
+}
+
+// "Use Metacity's button order" checkbox
+void cb_metacity_layout(GtkButton *button, WBApplet *wbapplet) {
+       GtkEntry *entry_custom_layout = GTK_ENTRY (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_BUTTON_LAYOUT));
+       
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button))) {
+               wbapplet->prefs->use_metacity_layout = TRUE;
+               wbapplet->prefs->button_layout = getMetacityLayout();
+               gtk_widget_set_sensitive(GTK_WIDGET(entry_custom_layout), FALSE);
+       } else {
+               gtk_widget_set_sensitive(GTK_WIDGET(entry_custom_layout), TRUE);
+               wbapplet->prefs->use_metacity_layout = FALSE;
+               gchar *new_layout = g_strdup(gtk_entry_get_text(entry_custom_layout));
+               wbapplet->prefs->button_layout = new_layout;
+       }
+
+       savePreferences(wbapplet->prefs, wbapplet);
+       
+       wbapplet->prefs->eventboxposition = getEBPos(wbapplet->prefs->button_layout);
+       reloadButtons (wbapplet);
+}
+
+// "Reload" button clicked
+void cb_reload_buttons(GtkButton *button, WBApplet *wbapplet) { 
+       GtkEntry *entry_custom_layout = GTK_ENTRY (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_BUTTON_LAYOUT));
+       gchar *new_layout = g_strdup(gtk_entry_get_text(entry_custom_layout));
+       wbapplet->prefs->button_layout = new_layout;
+       savePreferences(wbapplet->prefs, wbapplet);
+       wbapplet->prefs->eventboxposition = getEBPos(wbapplet->prefs->button_layout);
+       reloadButtons(wbapplet);
+}
+
+static void cb_theme_changed(GtkComboBox *combo, WBApplet *wbapplet) {
+       WBPreferences *wbp = wbapplet->prefs;
+       GtkTreeIter   iter;
+    gchar        *theme = NULL;
+    GtkTreeModel *model;
+
+    if (gtk_combo_box_get_active_iter( combo, &iter )) {
+        model = gtk_combo_box_get_model( combo );
+        gtk_tree_model_get( model, &iter, 0, &theme, -1 );
+    }
+       
+       wbp->theme = theme;
+       wbp->images = getImages(g_strconcat(PATH_THEMES,"/",wbp->theme,"/",NULL)); // rebuild image paths
+       wbapplet->pixbufs = getPixbufs(wbp->images); // reload pixbufs from files
+       loadThemeButtons(getImageButtons(wbapplet->prefbuilder), wbapplet->pixbufs, wbp->images); // set pref 
button images from pixbufs
+       updateImages(wbapplet);
+       
+       savePreferences(wbp, wbapplet);
+}
+
+void cb_orientation(GtkRadioButton *style, WBApplet *wbapplet) {
+       // This thing gets executed twice with every selection
+       // (Supposedly this is going to be resolved with GtkRadioGroup in later versions of GTK+)
+       // So we need to eliminate the "untoggle" event
+       if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(style))) {
+               GtkRadioButton **radio_orientation = getOrientationButtons(wbapplet->prefbuilder);
+               gushort i;
+               for (i=0;i<3;i++)
+                       if (style == radio_orientation[i])
+                               break;
+               if (i<3)
+                       wbapplet->prefs->orientation = i;
+
+               wbapplet->pixbufs = getPixbufs(wbapplet->prefs->images); // reload pixbufs before rotating!
+               reloadButtons(wbapplet); // reload and rotate buttons
+               loadThemeButtons(getImageButtons(wbapplet->prefbuilder), wbapplet->pixbufs, 
wbapplet->prefs->images); // set pref button images from pixbufs
+               updateImages(wbapplet);
+               savePreferences(wbapplet->prefs, wbapplet);
+       }
+}
+
+/* The Preferences Dialog */
+//void properties_cb(BonoboUIComponent *uic, WBApplet *wbapplet, const char *verb) {
+void properties_cb (GtkAction *action, WBApplet *wbapplet) { 
+       GtkWidget               ***btn;
+       ImageOpenData   ***iod;
+       gint i,j;
+
+       // Create the Properties dialog from the GtkBuilder file
+       if (wbapplet->window_prefs) {
+               // Window already exists, only open
+               gtk_window_present(GTK_WINDOW(wbapplet->window_prefs)); // CRASHES HERE BECAUSE window_prefs 
IS NOT NULL WHEN IT SHOULD BE!!!
+       } else {
+               // Create window from builder
+               gtk_builder_add_from_file (wbapplet->prefbuilder, PATH_UI_PREFS, NULL);
+               wbapplet->window_prefs = GTK_WIDGET (gtk_builder_get_object (wbapplet->prefbuilder, 
"properties"));
+       }
+       
+       /* Get the widgets from GtkBuilder & Init data structures we'll pass to our buttons */
+       btn = getImageButtons(wbapplet->prefbuilder);
+       iod =  g_new(ImageOpenData**, WB_IMAGE_STATES);
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               iod[i] = g_new(ImageOpenData*, WB_IMAGES);
+               for (j=0; j<WB_IMAGES; j++) {
+                       iod[i][j] = g_new0(ImageOpenData, 1);
+                       iod[i][j]->wbapplet = wbapplet;
+                       iod[i][j]->image_state = i;
+                       iod[i][j]->image_index = j;
+
+                       // Connect buttons to select_new_image callback
+                       g_signal_connect(G_OBJECT (btn[i][j]), "clicked", G_CALLBACK (select_new_image), 
iod[i][j]);
+               }
+       }
+       
+       GtkToggleButton
+               *chkb_only_maximized = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_ONLY_MAXIMIZED)),
+               *chkb_click_effect = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_CLICK_EFFECT)),
+               *chkb_hover_effect = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_HOVER_EFFECT)),
+               *chkb_hide_on_unmaximized = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_HIDE_ON_UNMAXIMIZED)),
+               *chkb_reverse_order = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_REVERSE_ORDER)),
+               *chkb_hide_decoration = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_HIDE_DECORATION)),
+               *chkb_metacity_order = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_USE_METACITY_LAYOUT)),
+               *chkb_show_tooltips = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_SHOW_TOOLTIPS));
+       GtkButton
+               *btn_reload_order = GTK_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, 
"btn_reload_order")),
+               *btn_close = GTK_BUTTON (gtk_builder_get_object(wbapplet->prefbuilder, "btn_close"));
+       GtkEntry *entry_custom_order = GTK_ENTRY (gtk_builder_get_object(wbapplet->prefbuilder, 
CFG_BUTTON_LAYOUT));
+       GtkComboBox *combo_theme = GTK_COMBO_BOX (gtk_builder_get_object(wbapplet->prefbuilder, CFG_THEME)); 
+       GtkToggleButton **chkb_btn_hidden = getHideButtons(wbapplet->prefbuilder);
+       GtkRadioButton **radio_orientation = getOrientationButtons(wbapplet->prefbuilder);
+       
+       loadThemeComboBox(combo_theme, wbapplet->prefs->theme);
+       loadThemeButtons(btn, wbapplet->pixbufs, wbapplet->prefs->images);
+       
+       // set the checkboxes according to preferences
+       gtk_widget_set_sensitive(GTK_WIDGET(entry_custom_order), !wbapplet->prefs->use_metacity_layout);
+       gtk_toggle_button_set_active (chkb_only_maximized, wbapplet->prefs->only_maximized);
+       gtk_toggle_button_set_active (chkb_click_effect, wbapplet->prefs->click_effect);
+       gtk_toggle_button_set_active (chkb_hover_effect, wbapplet->prefs->hover_effect);
+       gtk_toggle_button_set_active (chkb_hide_on_unmaximized, wbapplet->prefs->hide_on_unmaximized);
+       gtk_toggle_button_set_active (chkb_hide_decoration, issetCompizDecoration());
+       gtk_toggle_button_set_active (chkb_metacity_order, wbapplet->prefs->use_metacity_layout);
+       gtk_toggle_button_set_active (chkb_reverse_order, wbapplet->prefs->reverse_order);
+       gtk_toggle_button_set_active (chkb_show_tooltips, wbapplet->prefs->show_tooltips);
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(radio_orientation[wbapplet->prefs->orientation]), 
TRUE);
+       gtk_entry_set_text (entry_custom_order, (const gchar*)wbapplet->prefs->button_layout);
+                                               
+       CheckBoxData **cbd = g_new(CheckBoxData*, WB_BUTTONS);
+       for (i=0; i<WB_BUTTONS; i++) {
+               cbd[i] = g_new(CheckBoxData,1);
+               cbd[i]->button_id = i;
+               cbd[i]->wbapplet = wbapplet;
+
+               gtk_toggle_button_set_active (chkb_btn_hidden[i], wbapplet->prefs->button_hidden[i]);
+               g_signal_connect(G_OBJECT(chkb_btn_hidden[i]), "clicked", G_CALLBACK (cb_btn_hidden), cbd[i]);
+       }
+       
+       for (i=0; i<3; i++)
+               g_signal_connect(G_OBJECT(radio_orientation[i]), "clicked", G_CALLBACK (cb_orientation), 
wbapplet);
+       g_signal_connect(G_OBJECT(chkb_only_maximized), "clicked", G_CALLBACK (cb_only_maximized), wbapplet);
+       g_signal_connect(G_OBJECT(chkb_click_effect), "clicked", G_CALLBACK (cb_click_effect), wbapplet);
+       g_signal_connect(G_OBJECT(chkb_hover_effect), "clicked", G_CALLBACK (cb_hover_effect), wbapplet);     
                                          
+       g_signal_connect(G_OBJECT(chkb_hide_on_unmaximized), "clicked", G_CALLBACK (cb_hide_on_unmaximized), 
wbapplet);
+       g_signal_connect(G_OBJECT(chkb_hide_decoration), "clicked", G_CALLBACK (cb_hide_decoration), 
wbapplet);
+       g_signal_connect(G_OBJECT(chkb_metacity_order), "clicked", G_CALLBACK (cb_metacity_layout), wbapplet);
+       g_signal_connect(G_OBJECT(chkb_reverse_order), "clicked", G_CALLBACK (cb_reverse_order), wbapplet);
+       g_signal_connect(G_OBJECT(chkb_show_tooltips), "clicked", G_CALLBACK (cb_show_tooltips), wbapplet);
+       g_signal_connect(G_OBJECT(btn_reload_order), "clicked", G_CALLBACK (cb_reload_buttons), wbapplet);
+       g_signal_connect(G_OBJECT(combo_theme), "changed", G_CALLBACK(cb_theme_changed), wbapplet);
+       g_signal_connect(G_OBJECT(btn_close), "clicked", G_CALLBACK (properties_close), wbapplet);
+       g_signal_connect(G_OBJECT(wbapplet->window_prefs), "destroy", G_CALLBACK(properties_close), wbapplet);
+
+       gtk_widget_show (wbapplet->window_prefs);
+}
+
+/* Close the Properties dialog - we're not saving anything (it's already saved) */
+void properties_close (GtkButton *object, WBApplet *wbapplet) {
+       gtk_widget_destroy(wbapplet->window_prefs);
+       wbapplet->window_prefs = NULL;
+}
diff --git a/window-buttons/preferences.h b/window-buttons/preferences.h
new file mode 100644
index 0000000..1b2bdcf
--- /dev/null
+++ b/window-buttons/preferences.h
@@ -0,0 +1,36 @@
+/***************************************************************************
+ *            preferences.h
+ *
+ *  Mon May  4 01:23:08 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#include "windowbuttons.h"
+
+typedef struct {
+       WBApplet *wbapplet;
+       gushort image_index;
+       gushort image_state;
+} ImageOpenData;
+
+typedef struct {
+       WBApplet *wbapplet;
+       gushort button_id;
+} CheckBoxData;
\ No newline at end of file
diff --git a/window-buttons/theme.c b/window-buttons/theme.c
new file mode 100644
index 0000000..00d8174
--- /dev/null
+++ b/window-buttons/theme.c
@@ -0,0 +1,169 @@
+#include "theme.h"
+
+void loadThemeComboBox(GtkComboBox *, gchar *);
+void loadThemeButtons(GtkWidget ***, GdkPixbuf ***, gchar ***);
+const gchar *getImageCfgKey(gushort, gushort);
+const gchar *getImageCfgKey4(gushort, gushort);
+const gchar* getButtonImageState(int, const gchar*);
+const gchar* getButtonImageState4(int);
+const gchar* getButtonImageName(int);
+GdkPixbuf ***getPixbufs(gchar ***);
+gchar ***getImages(gchar *);
+gchar *fixThemeName(gchar *);
+
+
+const gchar* getButtonImageName(int button_id) {
+       switch (button_id) {
+               case WB_IMAGE_MINIMIZE: return BTN_NAME_MINIMIZE;
+               case WB_IMAGE_UNMAXIMIZE: return BTN_NAME_UNMAXIMIZE;
+               case WB_IMAGE_MAXIMIZE: return BTN_NAME_MAXIMIZE;
+               case WB_IMAGE_CLOSE: return BTN_NAME_CLOSE;
+               default: return NULL;
+       }
+}
+
+const gchar* getButtonImageState(int state_id, const gchar* separator) { // new 6-state mode
+       switch (state_id) {
+               case WB_IMAGE_FOCUSED_NORMAL:           return 
g_strconcat(BTN_STATE_FOCUSED,separator,BTN_STATE_NORMAL,NULL);
+               case WB_IMAGE_FOCUSED_CLICKED:          return 
g_strconcat(BTN_STATE_FOCUSED,separator,BTN_STATE_CLICKED,NULL);
+               case WB_IMAGE_FOCUSED_HOVERED:          return 
g_strconcat(BTN_STATE_FOCUSED,separator,BTN_STATE_HOVERED,NULL);
+               case WB_IMAGE_UNFOCUSED_NORMAL:         return 
g_strconcat(BTN_STATE_UNFOCUSED,separator,BTN_STATE_NORMAL,NULL);
+               case WB_IMAGE_UNFOCUSED_CLICKED:        return 
g_strconcat(BTN_STATE_UNFOCUSED,separator,BTN_STATE_CLICKED,NULL);
+               case WB_IMAGE_UNFOCUSED_HOVERED:        return 
g_strconcat(BTN_STATE_UNFOCUSED,separator,BTN_STATE_HOVERED,NULL);
+               default: return g_strconcat(BTN_STATE_UNFOCUSED,separator,BTN_STATE_NORMAL,NULL);
+       }
+}
+const gchar* getButtonImageState4(int state_id) { // old 4-state mode for backwards compatibility
+       switch (state_id) {
+               case WB_IMAGE_FOCUSED_NORMAL:           return BTN_STATE_FOCUSED;
+               case WB_IMAGE_FOCUSED_CLICKED:          return BTN_STATE_CLICKED;
+               case WB_IMAGE_FOCUSED_HOVERED:          return BTN_STATE_HOVERED;
+               case WB_IMAGE_UNFOCUSED_NORMAL:         return BTN_STATE_UNFOCUSED;
+               case WB_IMAGE_UNFOCUSED_CLICKED:        return BTN_STATE_CLICKED;
+               case WB_IMAGE_UNFOCUSED_HOVERED:        return BTN_STATE_HOVERED;
+               default: return BTN_STATE_NORMAL;
+       }
+}
+
+/* returns the image key string */
+const gchar *getImageCfgKey(gushort image_state, gushort image_index) {
+       return g_strconcat("btn_", getButtonImageState(image_state,"_"), "_", 
getButtonImageName(image_index), NULL);
+}
+const gchar *getImageCfgKey4(gushort image_state, gushort image_index) { // old 4-state mode for backwards 
compatibility
+       return g_strconcat("btn_", getButtonImageState4(image_state), "_", getButtonImageName(image_index), 
NULL);
+}
+
+
+/* Load the themes into a combo Box */ 
+void loadThemeComboBox(GtkComboBox *combo, gchar *active_theme) {    
+       GtkTreeIter             iter;
+       GtkListStore    *store = gtk_list_store_new( 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT );
+       // (0=real_name, 1=display_name, 2=id)
+
+       GError  *error = NULL;
+       GDir    *dir_themes = g_dir_open(PATH_THEMES, 0, &error);
+       if (error) {
+               g_printerr ("g_dir_open(%s) failed - %s\n", PATH_THEMES, error->message);
+               g_error_free(error);
+               return;
+       }
+
+       gint active = -1;
+       gint N_THEMES = 0;
+       const gchar *curtheme;
+       while ((curtheme = g_dir_read_name(dir_themes))) { //TODO: do this in a separate function
+               if ( g_strcmp0(
+                       g_ascii_strdown(curtheme,-1),
+                       g_ascii_strdown(active_theme,-1)
+                   ) == 0 )
+               {
+                       active = N_THEMES;
+               }
+                       
+               gtk_list_store_append( store, &iter );
+               gtk_list_store_set( store, &iter, 
+                       0, curtheme,
+                       1, fixThemeName(g_strdup(curtheme)),
+                               2, 1+N_THEMES++,
+                               -1 );
+       }
+       if (active<0) active = N_THEMES;
+       
+    gtk_list_store_append( store, &iter );
+    gtk_list_store_set( store, &iter, 0,"custom", 1,"Custom", 2,0, -1 );
+       
+       gtk_combo_box_set_model( combo, GTK_TREE_MODEL(store) );
+    g_object_unref( G_OBJECT( store ) );
+
+       GtkCellRenderer *cell = gtk_cell_renderer_text_new();
+    gtk_cell_layout_pack_start( GTK_CELL_LAYOUT( combo ), cell, TRUE );
+    gtk_cell_layout_set_attributes( GTK_CELL_LAYOUT( combo ), cell, "text",1, NULL );
+
+       gtk_combo_box_set_active(combo, active);
+}
+
+/* Load theme pixbufs into buttons */
+void loadThemeButtons(GtkWidget ***button, GdkPixbuf ***pixbufs, gchar ***images) {
+       gint i,j;
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               for (j=0; j<WB_IMAGES; j++) {
+                       gtk_button_set_image(GTK_BUTTON(button[i][j]), 
gtk_image_new_from_pixbuf(pixbufs[i][j]));
+                       gtk_widget_set_tooltip_text(button[i][j], images[i][j]);
+               }
+       }
+}
+
+/* Returns absolute image paths and makes sure they exist */
+//TODO: different extensions
+gchar ***getImages(gchar *location) {
+       gint i,j;
+       gchar ***images = g_new(gchar**, WB_IMAGE_STATES);
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               images[i] = g_new(gchar*, WB_IMAGES);
+               for (j=0; j<WB_IMAGES; j++) {
+                       images[i][j] = g_strconcat(location, getButtonImageName(j), "-", 
getButtonImageState(i,"-"), ".", THEME_EXTENSION, NULL);
+                       if (!g_file_test(images[i][j], G_FILE_TEST_EXISTS | ~G_FILE_TEST_IS_DIR)) {
+                               images[i][j] = g_strconcat(location, getButtonImageName(j), "-", 
getButtonImageState4(i), ".", THEME_EXTENSION, NULL);
+                       }
+               }
+       }
+       return images;
+}
+
+/* Loads pixbufs from image paths */
+GdkPixbuf ***getPixbufs(gchar ***images) {
+       gint i,j;
+       GdkPixbuf ***pixbufs = g_new(GdkPixbuf**, WB_IMAGE_STATES);
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               pixbufs[i] = g_new(GdkPixbuf*, WB_IMAGES);
+               for (j=0; j<WB_IMAGES; j++) {
+                       GError *error = NULL;
+                       pixbufs[i][j] = gdk_pixbuf_new_from_file(images[i][j], &error);
+                       if (error) {
+                               printf("Error loading image \"%s\": %s\n", images[i][j], error->message);
+                               continue;
+                       }
+               }
+       }
+       return pixbufs;
+}
+
+gchar *fixThemeName(gchar *theme_name) {
+       gchar prev;
+       gint len = strlen(theme_name);
+       gint i;
+
+       if (len > 1) {
+               prev = '-';
+               for (i=0; i<len; i++) {
+                       if (prev == '-') theme_name[i] = g_ascii_toupper(theme_name[i]);
+                       prev = theme_name[i];
+               }
+               
+               return theme_name;
+       } else if (len == 1) {
+               return g_ascii_strup(theme_name,1);
+       } else {
+               return NULL;
+       }
+}
\ No newline at end of file
diff --git a/window-buttons/theme.h b/window-buttons/theme.h
new file mode 100644
index 0000000..6687c87
--- /dev/null
+++ b/window-buttons/theme.h
@@ -0,0 +1,25 @@
+/***************************************************************************
+ *            theme.h
+ *
+ *  Tue Nov  4 01:22:17 2010
+ *  Copyright  2010  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#include "windowbuttons.h"
\ No newline at end of file
diff --git a/window-buttons/themes/Makefile.am b/window-buttons/themes/Makefile.am
new file mode 100644
index 0000000..db2dd98
--- /dev/null
+++ b/window-buttons/themes/Makefile.am
@@ -0,0 +1,91 @@
+
+EXTRA_DIST = \
+       $(default_DATA) \
+       $(themes_DATA) \
+       $(default_DATA) \
+       $(dust_DATA) \
+       $(human_DATA) \
+       $(human_thin_DATA) \
+       $(dust_sand_DATA) \
+       $(blaze_DATA) \
+       $(blaze_color_DATA) \
+       $(antique_DATA) \
+       $(ambiance_DATA) \
+       $(dust_invert_DATA) \
+       $(elementary_DATA) \
+       $(radiance_DATA) \
+       $(WoW_DATA) \
+       $(ambiance_x_studio_DATA) \
+       $(sorbet_DATA) \
+       $(ambiance_maverick_DATA) \
+       $(radiance_maverick_DATA) \
+       $(equinox_glass_DATA) \
+       $(plano_DATA) \
+       $(new_hope_DATA) \
+       $(blubuntu_DATA)
+
+default_DATA = default/*.png
+defaultdir = $(datadir)/pixmaps/windowbuttons/themes/default
+
+dust_DATA = dust/*.png
+dustdir = $(datadir)/pixmaps/windowbuttons/themes/dust
+
+human_DATA = human/*.png
+humandir = $(datadir)/pixmaps/windowbuttons/themes/human
+
+human_thin_DATA = human-thin/*.png
+human_thindir = $(datadir)/pixmaps/windowbuttons/themes/human-thin
+
+dust_sand_DATA = dust-sand/*.png
+dust_sanddir = $(datadir)/pixmaps/windowbuttons/themes/dust-sand
+
+blaze_DATA = blaze/*.png
+blazedir = $(datadir)/pixmaps/windowbuttons/themes/blaze
+
+blaze_color_DATA = blaze-color/*.png
+blaze_colordir = $(datadir)/pixmaps/windowbuttons/themes/blaze-color
+
+antique_DATA = antique/*.png
+antiquedir = $(datadir)/pixmaps/windowbuttons/themes/antique
+
+ambiance_DATA = ambiance/*.png
+ambiancedir = $(datadir)/pixmaps/windowbuttons/themes/ambiance
+
+dust_invert_DATA = dust-invert/*.png
+dust_invertdir = $(datadir)/pixmaps/windowbuttons/themes/dust-invert
+
+elementary_DATA = elementary/*.png \
+       elementary/README
+elementarydir = $(datadir)/pixmaps/windowbuttons/themes/elementary
+
+radiance_DATA = radiance/*.png
+radiancedir = $(datadir)/pixmaps/windowbuttons/themes/radiance
+
+WoW_DATA = WoW/*.png
+WoWdir = $(datadir)/pixmaps/windowbuttons/themes/WoW
+
+ambiance_x_studio_DATA = ambiance-x-studio/*.png
+ambiance_x_studiodir = $(datadir)/pixmaps/windowbuttons/themes/ambiance-x-studio
+
+sorbet_DATA = sorbet/*.png
+sorbetdir = $(datadir)/pixmaps/windowbuttons/themes/sorbet
+
+ambiance_maverick_DATA = ambiance-maverick/*.png
+ambiance_maverickdir = $(datadir)/pixmaps/windowbuttons/themes/ambiance-maverick
+
+radiance_maverick_DATA = radiance-maverick/*.png
+radiance_maverickdir = $(datadir)/pixmaps/windowbuttons/themes/radiance-maverick
+
+equinox_glass_DATA = equinox-glass/*.png \
+       equinox-glass/README
+equinox_glassdir = $(datadir)/pixmaps/windowbuttons/themes/equinox-glass
+
+plano_DATA = plano/*.png
+planodir = $(datadir)/pixmaps/windowbuttons/themes/plano
+
+new_hope_DATA = new-hope/*.png
+new_hopedir = $(datadir)/pixmaps/windowbuttons/themes/new-hope
+
+blubuntu_DATA = blubuntu/*.png
+blubuntudir = $(datadir)/pixmaps/windowbuttons/themes/blubuntu
+
diff --git a/window-buttons/themes/WoW/close-clicked.png b/window-buttons/themes/WoW/close-clicked.png
new file mode 100644
index 0000000..d77fe07
Binary files /dev/null and b/window-buttons/themes/WoW/close-clicked.png differ
diff --git a/window-buttons/themes/WoW/close-focused.png b/window-buttons/themes/WoW/close-focused.png
new file mode 100644
index 0000000..2035da8
Binary files /dev/null and b/window-buttons/themes/WoW/close-focused.png differ
diff --git a/window-buttons/themes/WoW/close-hover.png b/window-buttons/themes/WoW/close-hover.png
new file mode 100644
index 0000000..d4bc4de
Binary files /dev/null and b/window-buttons/themes/WoW/close-hover.png differ
diff --git a/window-buttons/themes/WoW/close-unfocused.png b/window-buttons/themes/WoW/close-unfocused.png
new file mode 100644
index 0000000..ef2fea8
Binary files /dev/null and b/window-buttons/themes/WoW/close-unfocused.png differ
diff --git a/window-buttons/themes/WoW/maximize-clicked.png b/window-buttons/themes/WoW/maximize-clicked.png
new file mode 100644
index 0000000..6c1d0bd
Binary files /dev/null and b/window-buttons/themes/WoW/maximize-clicked.png differ
diff --git a/window-buttons/themes/WoW/maximize-focused.png b/window-buttons/themes/WoW/maximize-focused.png
new file mode 100644
index 0000000..4899fb8
Binary files /dev/null and b/window-buttons/themes/WoW/maximize-focused.png differ
diff --git a/window-buttons/themes/WoW/maximize-hover.png b/window-buttons/themes/WoW/maximize-hover.png
new file mode 100644
index 0000000..40e4989
Binary files /dev/null and b/window-buttons/themes/WoW/maximize-hover.png differ
diff --git a/window-buttons/themes/WoW/maximize-unfocused.png 
b/window-buttons/themes/WoW/maximize-unfocused.png
new file mode 100644
index 0000000..2232cd3
Binary files /dev/null and b/window-buttons/themes/WoW/maximize-unfocused.png differ
diff --git a/window-buttons/themes/WoW/minimize-clicked.png b/window-buttons/themes/WoW/minimize-clicked.png
new file mode 100644
index 0000000..ed76146
Binary files /dev/null and b/window-buttons/themes/WoW/minimize-clicked.png differ
diff --git a/window-buttons/themes/WoW/minimize-focused.png b/window-buttons/themes/WoW/minimize-focused.png
new file mode 100644
index 0000000..51b4fe2
Binary files /dev/null and b/window-buttons/themes/WoW/minimize-focused.png differ
diff --git a/window-buttons/themes/WoW/minimize-hover.png b/window-buttons/themes/WoW/minimize-hover.png
new file mode 100644
index 0000000..9998c92
Binary files /dev/null and b/window-buttons/themes/WoW/minimize-hover.png differ
diff --git a/window-buttons/themes/WoW/minimize-unfocused.png 
b/window-buttons/themes/WoW/minimize-unfocused.png
new file mode 100644
index 0000000..f50f13f
Binary files /dev/null and b/window-buttons/themes/WoW/minimize-unfocused.png differ
diff --git a/window-buttons/themes/WoW/unmaximize-clicked.png 
b/window-buttons/themes/WoW/unmaximize-clicked.png
new file mode 100644
index 0000000..6c1d0bd
Binary files /dev/null and b/window-buttons/themes/WoW/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/WoW/unmaximize-focused.png 
b/window-buttons/themes/WoW/unmaximize-focused.png
new file mode 100644
index 0000000..4899fb8
Binary files /dev/null and b/window-buttons/themes/WoW/unmaximize-focused.png differ
diff --git a/window-buttons/themes/WoW/unmaximize-hover.png b/window-buttons/themes/WoW/unmaximize-hover.png
new file mode 100644
index 0000000..40e4989
Binary files /dev/null and b/window-buttons/themes/WoW/unmaximize-hover.png differ
diff --git a/window-buttons/themes/WoW/unmaximize-unfocused.png 
b/window-buttons/themes/WoW/unmaximize-unfocused.png
new file mode 100644
index 0000000..2232cd3
Binary files /dev/null and b/window-buttons/themes/WoW/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/ambiance-maverick/bg.png b/window-buttons/themes/ambiance-maverick/bg.png
new file mode 100644
index 0000000..bbbd8bb
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/bg.png differ
diff --git a/window-buttons/themes/ambiance-maverick/close-focused-clicked.png 
b/window-buttons/themes/ambiance-maverick/close-focused-clicked.png
new file mode 100644
index 0000000..51b5f90
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/close-focused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/close-focused-hover.png 
b/window-buttons/themes/ambiance-maverick/close-focused-hover.png
new file mode 100644
index 0000000..eacc6b5
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/close-focused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/close-focused-normal.png 
b/window-buttons/themes/ambiance-maverick/close-focused-normal.png
new file mode 100644
index 0000000..b45afd4
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/close-focused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/close-unfocused-clicked.png 
b/window-buttons/themes/ambiance-maverick/close-unfocused-clicked.png
new file mode 100644
index 0000000..51b5f90
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/close-unfocused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/close-unfocused-hover.png 
b/window-buttons/themes/ambiance-maverick/close-unfocused-hover.png
new file mode 100644
index 0000000..36375ec
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/close-unfocused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/close-unfocused-normal.png 
b/window-buttons/themes/ambiance-maverick/close-unfocused-normal.png
new file mode 100644
index 0000000..1aa12c7
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/close-unfocused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/maximize-focused-clicked.png 
b/window-buttons/themes/ambiance-maverick/maximize-focused-clicked.png
new file mode 100644
index 0000000..04fa41d
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/maximize-focused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/maximize-focused-hover.png 
b/window-buttons/themes/ambiance-maverick/maximize-focused-hover.png
new file mode 100644
index 0000000..213b979
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/maximize-focused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/maximize-focused-normal.png 
b/window-buttons/themes/ambiance-maverick/maximize-focused-normal.png
new file mode 100644
index 0000000..31540b9
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/maximize-focused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/maximize-unfocused-clicked.png 
b/window-buttons/themes/ambiance-maverick/maximize-unfocused-clicked.png
new file mode 100644
index 0000000..04fa41d
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/maximize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/maximize-unfocused-hover.png 
b/window-buttons/themes/ambiance-maverick/maximize-unfocused-hover.png
new file mode 100644
index 0000000..213b979
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/maximize-unfocused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/maximize-unfocused-normal.png 
b/window-buttons/themes/ambiance-maverick/maximize-unfocused-normal.png
new file mode 100644
index 0000000..45e5dee
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/maximize-unfocused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/minimize-focused-clicked.png 
b/window-buttons/themes/ambiance-maverick/minimize-focused-clicked.png
new file mode 100644
index 0000000..ded2538
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/minimize-focused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/minimize-focused-hover.png 
b/window-buttons/themes/ambiance-maverick/minimize-focused-hover.png
new file mode 100644
index 0000000..6f07893
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/minimize-focused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/minimize-focused-normal.png 
b/window-buttons/themes/ambiance-maverick/minimize-focused-normal.png
new file mode 100644
index 0000000..920d17d
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/minimize-focused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/minimize-unfocused-clicked.png 
b/window-buttons/themes/ambiance-maverick/minimize-unfocused-clicked.png
new file mode 100644
index 0000000..ded2538
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/minimize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/minimize-unfocused-hover.png 
b/window-buttons/themes/ambiance-maverick/minimize-unfocused-hover.png
new file mode 100644
index 0000000..6f07893
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/minimize-unfocused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/minimize-unfocused-normal.png 
b/window-buttons/themes/ambiance-maverick/minimize-unfocused-normal.png
new file mode 100644
index 0000000..689c929
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/minimize-unfocused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/unmaximize-focused-clicked.png 
b/window-buttons/themes/ambiance-maverick/unmaximize-focused-clicked.png
new file mode 100644
index 0000000..f2b6f0e
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/unmaximize-focused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/unmaximize-focused-hover.png 
b/window-buttons/themes/ambiance-maverick/unmaximize-focused-hover.png
new file mode 100644
index 0000000..f3f1d13
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/unmaximize-focused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/unmaximize-focused-normal.png 
b/window-buttons/themes/ambiance-maverick/unmaximize-focused-normal.png
new file mode 100644
index 0000000..dc642c7
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/unmaximize-focused-normal.png differ
diff --git a/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-clicked.png 
b/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-clicked.png
new file mode 100644
index 0000000..f2b6f0e
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-hover.png 
b/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-hover.png
new file mode 100644
index 0000000..f3f1d13
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-hover.png differ
diff --git a/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-normal.png 
b/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-normal.png
new file mode 100644
index 0000000..99d35e3
Binary files /dev/null and b/window-buttons/themes/ambiance-maverick/unmaximize-unfocused-normal.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/close-clicked.png 
b/window-buttons/themes/ambiance-x-studio/close-clicked.png
new file mode 100644
index 0000000..82919e6
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/close-clicked.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/close-focused.png 
b/window-buttons/themes/ambiance-x-studio/close-focused.png
new file mode 100644
index 0000000..f4e1551
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/close-focused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/close-hover.png 
b/window-buttons/themes/ambiance-x-studio/close-hover.png
new file mode 100644
index 0000000..7825bfd
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/close-hover.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/close-unfocused.png 
b/window-buttons/themes/ambiance-x-studio/close-unfocused.png
new file mode 100644
index 0000000..7c74599
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/close-unfocused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/maximize-clicked.png 
b/window-buttons/themes/ambiance-x-studio/maximize-clicked.png
new file mode 100644
index 0000000..19fa2cd
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/maximize-clicked.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/maximize-focused.png 
b/window-buttons/themes/ambiance-x-studio/maximize-focused.png
new file mode 100644
index 0000000..193bb86
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/maximize-focused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/maximize-hover.png 
b/window-buttons/themes/ambiance-x-studio/maximize-hover.png
new file mode 100644
index 0000000..0b2e03d
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/maximize-hover.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/maximize-unfocused.png 
b/window-buttons/themes/ambiance-x-studio/maximize-unfocused.png
new file mode 100644
index 0000000..a633ae1
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/maximize-unfocused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/minimize-clicked.png 
b/window-buttons/themes/ambiance-x-studio/minimize-clicked.png
new file mode 100644
index 0000000..b7c4201
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/minimize-clicked.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/minimize-focused.png 
b/window-buttons/themes/ambiance-x-studio/minimize-focused.png
new file mode 100644
index 0000000..746a57e
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/minimize-focused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/minimize-hover.png 
b/window-buttons/themes/ambiance-x-studio/minimize-hover.png
new file mode 100644
index 0000000..83c02f8
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/minimize-hover.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/minimize-unfocused.png 
b/window-buttons/themes/ambiance-x-studio/minimize-unfocused.png
new file mode 100644
index 0000000..c6c6043
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/minimize-unfocused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/unmaximize-clicked.png 
b/window-buttons/themes/ambiance-x-studio/unmaximize-clicked.png
new file mode 100644
index 0000000..dde081b
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/unmaximize-focused.png 
b/window-buttons/themes/ambiance-x-studio/unmaximize-focused.png
new file mode 100644
index 0000000..e85e554
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/unmaximize-focused.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/unmaximize-hover.png 
b/window-buttons/themes/ambiance-x-studio/unmaximize-hover.png
new file mode 100644
index 0000000..9b5419c
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/unmaximize-hover.png differ
diff --git a/window-buttons/themes/ambiance-x-studio/unmaximize-unfocused.png 
b/window-buttons/themes/ambiance-x-studio/unmaximize-unfocused.png
new file mode 100644
index 0000000..03c0d9e
Binary files /dev/null and b/window-buttons/themes/ambiance-x-studio/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/ambiance/close-clicked.png 
b/window-buttons/themes/ambiance/close-clicked.png
new file mode 100644
index 0000000..c8a2c76
Binary files /dev/null and b/window-buttons/themes/ambiance/close-clicked.png differ
diff --git a/window-buttons/themes/ambiance/close-focused.png 
b/window-buttons/themes/ambiance/close-focused.png
new file mode 100644
index 0000000..a0e7710
Binary files /dev/null and b/window-buttons/themes/ambiance/close-focused.png differ
diff --git a/window-buttons/themes/ambiance/close-hover.png b/window-buttons/themes/ambiance/close-hover.png
new file mode 100644
index 0000000..2d0c473
Binary files /dev/null and b/window-buttons/themes/ambiance/close-hover.png differ
diff --git a/window-buttons/themes/ambiance/close-unfocused.png 
b/window-buttons/themes/ambiance/close-unfocused.png
new file mode 100644
index 0000000..7c74599
Binary files /dev/null and b/window-buttons/themes/ambiance/close-unfocused.png differ
diff --git a/window-buttons/themes/ambiance/maximize-clicked.png 
b/window-buttons/themes/ambiance/maximize-clicked.png
new file mode 100644
index 0000000..ae17c64
Binary files /dev/null and b/window-buttons/themes/ambiance/maximize-clicked.png differ
diff --git a/window-buttons/themes/ambiance/maximize-focused.png 
b/window-buttons/themes/ambiance/maximize-focused.png
new file mode 100644
index 0000000..193bb86
Binary files /dev/null and b/window-buttons/themes/ambiance/maximize-focused.png differ
diff --git a/window-buttons/themes/ambiance/maximize-hover.png 
b/window-buttons/themes/ambiance/maximize-hover.png
new file mode 100644
index 0000000..0c39cf4
Binary files /dev/null and b/window-buttons/themes/ambiance/maximize-hover.png differ
diff --git a/window-buttons/themes/ambiance/maximize-unfocused.png 
b/window-buttons/themes/ambiance/maximize-unfocused.png
new file mode 100644
index 0000000..a633ae1
Binary files /dev/null and b/window-buttons/themes/ambiance/maximize-unfocused.png differ
diff --git a/window-buttons/themes/ambiance/minimize-clicked.png 
b/window-buttons/themes/ambiance/minimize-clicked.png
new file mode 100644
index 0000000..492917e
Binary files /dev/null and b/window-buttons/themes/ambiance/minimize-clicked.png differ
diff --git a/window-buttons/themes/ambiance/minimize-focused.png 
b/window-buttons/themes/ambiance/minimize-focused.png
new file mode 100644
index 0000000..746a57e
Binary files /dev/null and b/window-buttons/themes/ambiance/minimize-focused.png differ
diff --git a/window-buttons/themes/ambiance/minimize-hover.png 
b/window-buttons/themes/ambiance/minimize-hover.png
new file mode 100644
index 0000000..bdb2f7f
Binary files /dev/null and b/window-buttons/themes/ambiance/minimize-hover.png differ
diff --git a/window-buttons/themes/ambiance/minimize-unfocused.png 
b/window-buttons/themes/ambiance/minimize-unfocused.png
new file mode 100644
index 0000000..c6c6043
Binary files /dev/null and b/window-buttons/themes/ambiance/minimize-unfocused.png differ
diff --git a/window-buttons/themes/ambiance/unmaximize-clicked.png 
b/window-buttons/themes/ambiance/unmaximize-clicked.png
new file mode 100644
index 0000000..71e75ed
Binary files /dev/null and b/window-buttons/themes/ambiance/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/ambiance/unmaximize-focused.png 
b/window-buttons/themes/ambiance/unmaximize-focused.png
new file mode 100644
index 0000000..e85e554
Binary files /dev/null and b/window-buttons/themes/ambiance/unmaximize-focused.png differ
diff --git a/window-buttons/themes/ambiance/unmaximize-hover.png 
b/window-buttons/themes/ambiance/unmaximize-hover.png
new file mode 100644
index 0000000..fc9c6f9
Binary files /dev/null and b/window-buttons/themes/ambiance/unmaximize-hover.png differ
diff --git a/window-buttons/themes/ambiance/unmaximize-unfocused.png 
b/window-buttons/themes/ambiance/unmaximize-unfocused.png
new file mode 100644
index 0000000..03c0d9e
Binary files /dev/null and b/window-buttons/themes/ambiance/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/antique/close-clicked.png b/window-buttons/themes/antique/close-clicked.png
new file mode 100644
index 0000000..5464af4
Binary files /dev/null and b/window-buttons/themes/antique/close-clicked.png differ
diff --git a/window-buttons/themes/antique/close-focused.png b/window-buttons/themes/antique/close-focused.png
new file mode 100644
index 0000000..5464af4
Binary files /dev/null and b/window-buttons/themes/antique/close-focused.png differ
diff --git a/window-buttons/themes/antique/close-hover.png b/window-buttons/themes/antique/close-hover.png
new file mode 100644
index 0000000..1e14298
Binary files /dev/null and b/window-buttons/themes/antique/close-hover.png differ
diff --git a/window-buttons/themes/antique/close-unfocused.png 
b/window-buttons/themes/antique/close-unfocused.png
new file mode 100644
index 0000000..5464af4
Binary files /dev/null and b/window-buttons/themes/antique/close-unfocused.png differ
diff --git a/window-buttons/themes/antique/maximize-clicked.png 
b/window-buttons/themes/antique/maximize-clicked.png
new file mode 100644
index 0000000..5b95daf
Binary files /dev/null and b/window-buttons/themes/antique/maximize-clicked.png differ
diff --git a/window-buttons/themes/antique/maximize-focused.png 
b/window-buttons/themes/antique/maximize-focused.png
new file mode 100644
index 0000000..5b95daf
Binary files /dev/null and b/window-buttons/themes/antique/maximize-focused.png differ
diff --git a/window-buttons/themes/antique/maximize-hover.png 
b/window-buttons/themes/antique/maximize-hover.png
new file mode 100644
index 0000000..02facd6
Binary files /dev/null and b/window-buttons/themes/antique/maximize-hover.png differ
diff --git a/window-buttons/themes/antique/maximize-unfocused.png 
b/window-buttons/themes/antique/maximize-unfocused.png
new file mode 100644
index 0000000..5b95daf
Binary files /dev/null and b/window-buttons/themes/antique/maximize-unfocused.png differ
diff --git a/window-buttons/themes/antique/minimize-clicked.png 
b/window-buttons/themes/antique/minimize-clicked.png
new file mode 100644
index 0000000..9f08e74
Binary files /dev/null and b/window-buttons/themes/antique/minimize-clicked.png differ
diff --git a/window-buttons/themes/antique/minimize-focused.png 
b/window-buttons/themes/antique/minimize-focused.png
new file mode 100644
index 0000000..9f08e74
Binary files /dev/null and b/window-buttons/themes/antique/minimize-focused.png differ
diff --git a/window-buttons/themes/antique/minimize-hover.png 
b/window-buttons/themes/antique/minimize-hover.png
new file mode 100644
index 0000000..739d5ce
Binary files /dev/null and b/window-buttons/themes/antique/minimize-hover.png differ
diff --git a/window-buttons/themes/antique/minimize-unfocused.png 
b/window-buttons/themes/antique/minimize-unfocused.png
new file mode 100644
index 0000000..9f08e74
Binary files /dev/null and b/window-buttons/themes/antique/minimize-unfocused.png differ
diff --git a/window-buttons/themes/antique/unmaximize-clicked.png 
b/window-buttons/themes/antique/unmaximize-clicked.png
new file mode 100644
index 0000000..5b95daf
Binary files /dev/null and b/window-buttons/themes/antique/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/antique/unmaximize-focused.png 
b/window-buttons/themes/antique/unmaximize-focused.png
new file mode 100644
index 0000000..5b95daf
Binary files /dev/null and b/window-buttons/themes/antique/unmaximize-focused.png differ
diff --git a/window-buttons/themes/antique/unmaximize-hover.png 
b/window-buttons/themes/antique/unmaximize-hover.png
new file mode 100644
index 0000000..02facd6
Binary files /dev/null and b/window-buttons/themes/antique/unmaximize-hover.png differ
diff --git a/window-buttons/themes/antique/unmaximize-unfocused.png 
b/window-buttons/themes/antique/unmaximize-unfocused.png
new file mode 100644
index 0000000..5b95daf
Binary files /dev/null and b/window-buttons/themes/antique/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/blaze-color/close-clicked.png 
b/window-buttons/themes/blaze-color/close-clicked.png
new file mode 100644
index 0000000..18ca264
Binary files /dev/null and b/window-buttons/themes/blaze-color/close-clicked.png differ
diff --git a/window-buttons/themes/blaze-color/close-focused.png 
b/window-buttons/themes/blaze-color/close-focused.png
new file mode 100644
index 0000000..cb63419
Binary files /dev/null and b/window-buttons/themes/blaze-color/close-focused.png differ
diff --git a/window-buttons/themes/blaze-color/close-hover.png 
b/window-buttons/themes/blaze-color/close-hover.png
new file mode 100644
index 0000000..32471cf
Binary files /dev/null and b/window-buttons/themes/blaze-color/close-hover.png differ
diff --git a/window-buttons/themes/blaze-color/close-unfocused.png 
b/window-buttons/themes/blaze-color/close-unfocused.png
new file mode 100644
index 0000000..0a1713b
Binary files /dev/null and b/window-buttons/themes/blaze-color/close-unfocused.png differ
diff --git a/window-buttons/themes/blaze-color/maximize-clicked.png 
b/window-buttons/themes/blaze-color/maximize-clicked.png
new file mode 100644
index 0000000..53b9e29
Binary files /dev/null and b/window-buttons/themes/blaze-color/maximize-clicked.png differ
diff --git a/window-buttons/themes/blaze-color/maximize-focused.png 
b/window-buttons/themes/blaze-color/maximize-focused.png
new file mode 100644
index 0000000..f77f265
Binary files /dev/null and b/window-buttons/themes/blaze-color/maximize-focused.png differ
diff --git a/window-buttons/themes/blaze-color/maximize-hover.png 
b/window-buttons/themes/blaze-color/maximize-hover.png
new file mode 100644
index 0000000..0664009
Binary files /dev/null and b/window-buttons/themes/blaze-color/maximize-hover.png differ
diff --git a/window-buttons/themes/blaze-color/maximize-unfocused.png 
b/window-buttons/themes/blaze-color/maximize-unfocused.png
new file mode 100644
index 0000000..5121aae
Binary files /dev/null and b/window-buttons/themes/blaze-color/maximize-unfocused.png differ
diff --git a/window-buttons/themes/blaze-color/minimize-clicked.png 
b/window-buttons/themes/blaze-color/minimize-clicked.png
new file mode 100644
index 0000000..0a823d5
Binary files /dev/null and b/window-buttons/themes/blaze-color/minimize-clicked.png differ
diff --git a/window-buttons/themes/blaze-color/minimize-focused.png 
b/window-buttons/themes/blaze-color/minimize-focused.png
new file mode 100644
index 0000000..8246d08
Binary files /dev/null and b/window-buttons/themes/blaze-color/minimize-focused.png differ
diff --git a/window-buttons/themes/blaze-color/minimize-hover.png 
b/window-buttons/themes/blaze-color/minimize-hover.png
new file mode 100644
index 0000000..70e614e
Binary files /dev/null and b/window-buttons/themes/blaze-color/minimize-hover.png differ
diff --git a/window-buttons/themes/blaze-color/minimize-unfocused.png 
b/window-buttons/themes/blaze-color/minimize-unfocused.png
new file mode 100644
index 0000000..39f0aae
Binary files /dev/null and b/window-buttons/themes/blaze-color/minimize-unfocused.png differ
diff --git a/window-buttons/themes/blaze-color/unmaximize-clicked.png 
b/window-buttons/themes/blaze-color/unmaximize-clicked.png
new file mode 100644
index 0000000..ab64136
Binary files /dev/null and b/window-buttons/themes/blaze-color/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/blaze-color/unmaximize-focused.png 
b/window-buttons/themes/blaze-color/unmaximize-focused.png
new file mode 100644
index 0000000..f0ef896
Binary files /dev/null and b/window-buttons/themes/blaze-color/unmaximize-focused.png differ
diff --git a/window-buttons/themes/blaze-color/unmaximize-hover.png 
b/window-buttons/themes/blaze-color/unmaximize-hover.png
new file mode 100644
index 0000000..8d3cc87
Binary files /dev/null and b/window-buttons/themes/blaze-color/unmaximize-hover.png differ
diff --git a/window-buttons/themes/blaze-color/unmaximize-unfocused.png 
b/window-buttons/themes/blaze-color/unmaximize-unfocused.png
new file mode 100644
index 0000000..f0133b9
Binary files /dev/null and b/window-buttons/themes/blaze-color/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/blaze/close-clicked.png b/window-buttons/themes/blaze/close-clicked.png
new file mode 100644
index 0000000..18ca264
Binary files /dev/null and b/window-buttons/themes/blaze/close-clicked.png differ
diff --git a/window-buttons/themes/blaze/close-focused.png b/window-buttons/themes/blaze/close-focused.png
new file mode 100644
index 0000000..cb63419
Binary files /dev/null and b/window-buttons/themes/blaze/close-focused.png differ
diff --git a/window-buttons/themes/blaze/close-hover.png b/window-buttons/themes/blaze/close-hover.png
new file mode 100644
index 0000000..edaa41c
Binary files /dev/null and b/window-buttons/themes/blaze/close-hover.png differ
diff --git a/window-buttons/themes/blaze/close-unfocused.png b/window-buttons/themes/blaze/close-unfocused.png
new file mode 100644
index 0000000..0a1713b
Binary files /dev/null and b/window-buttons/themes/blaze/close-unfocused.png differ
diff --git a/window-buttons/themes/blaze/maximize-clicked.png 
b/window-buttons/themes/blaze/maximize-clicked.png
new file mode 100644
index 0000000..53b9e29
Binary files /dev/null and b/window-buttons/themes/blaze/maximize-clicked.png differ
diff --git a/window-buttons/themes/blaze/maximize-focused.png 
b/window-buttons/themes/blaze/maximize-focused.png
new file mode 100644
index 0000000..f77f265
Binary files /dev/null and b/window-buttons/themes/blaze/maximize-focused.png differ
diff --git a/window-buttons/themes/blaze/maximize-hover.png b/window-buttons/themes/blaze/maximize-hover.png
new file mode 100644
index 0000000..edaa41c
Binary files /dev/null and b/window-buttons/themes/blaze/maximize-hover.png differ
diff --git a/window-buttons/themes/blaze/maximize-unfocused.png 
b/window-buttons/themes/blaze/maximize-unfocused.png
new file mode 100644
index 0000000..5121aae
Binary files /dev/null and b/window-buttons/themes/blaze/maximize-unfocused.png differ
diff --git a/window-buttons/themes/blaze/minimize-clicked.png 
b/window-buttons/themes/blaze/minimize-clicked.png
new file mode 100644
index 0000000..0a823d5
Binary files /dev/null and b/window-buttons/themes/blaze/minimize-clicked.png differ
diff --git a/window-buttons/themes/blaze/minimize-focused.png 
b/window-buttons/themes/blaze/minimize-focused.png
new file mode 100644
index 0000000..8246d08
Binary files /dev/null and b/window-buttons/themes/blaze/minimize-focused.png differ
diff --git a/window-buttons/themes/blaze/minimize-hover.png b/window-buttons/themes/blaze/minimize-hover.png
new file mode 100644
index 0000000..edaa41c
Binary files /dev/null and b/window-buttons/themes/blaze/minimize-hover.png differ
diff --git a/window-buttons/themes/blaze/minimize-unfocused.png 
b/window-buttons/themes/blaze/minimize-unfocused.png
new file mode 100644
index 0000000..39f0aae
Binary files /dev/null and b/window-buttons/themes/blaze/minimize-unfocused.png differ
diff --git a/window-buttons/themes/blaze/unmaximize-clicked.png 
b/window-buttons/themes/blaze/unmaximize-clicked.png
new file mode 100644
index 0000000..ab64136
Binary files /dev/null and b/window-buttons/themes/blaze/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/blaze/unmaximize-focused.png 
b/window-buttons/themes/blaze/unmaximize-focused.png
new file mode 100644
index 0000000..f0ef896
Binary files /dev/null and b/window-buttons/themes/blaze/unmaximize-focused.png differ
diff --git a/window-buttons/themes/blaze/unmaximize-hover.png 
b/window-buttons/themes/blaze/unmaximize-hover.png
new file mode 100644
index 0000000..edaa41c
Binary files /dev/null and b/window-buttons/themes/blaze/unmaximize-hover.png differ
diff --git a/window-buttons/themes/blaze/unmaximize-unfocused.png 
b/window-buttons/themes/blaze/unmaximize-unfocused.png
new file mode 100644
index 0000000..f0133b9
Binary files /dev/null and b/window-buttons/themes/blaze/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/blubuntu/close-clicked.png 
b/window-buttons/themes/blubuntu/close-clicked.png
new file mode 100644
index 0000000..0609cdb
Binary files /dev/null and b/window-buttons/themes/blubuntu/close-clicked.png differ
diff --git a/window-buttons/themes/blubuntu/close-focused.png 
b/window-buttons/themes/blubuntu/close-focused.png
new file mode 100644
index 0000000..e1eaef9
Binary files /dev/null and b/window-buttons/themes/blubuntu/close-focused.png differ
diff --git a/window-buttons/themes/blubuntu/close-hover.png b/window-buttons/themes/blubuntu/close-hover.png
new file mode 100644
index 0000000..9a8e124
Binary files /dev/null and b/window-buttons/themes/blubuntu/close-hover.png differ
diff --git a/window-buttons/themes/blubuntu/close-unfocused.png 
b/window-buttons/themes/blubuntu/close-unfocused.png
new file mode 100644
index 0000000..4d6a5b0
Binary files /dev/null and b/window-buttons/themes/blubuntu/close-unfocused.png differ
diff --git a/window-buttons/themes/blubuntu/maximize-clicked.png 
b/window-buttons/themes/blubuntu/maximize-clicked.png
new file mode 100644
index 0000000..ba971ae
Binary files /dev/null and b/window-buttons/themes/blubuntu/maximize-clicked.png differ
diff --git a/window-buttons/themes/blubuntu/maximize-focused.png 
b/window-buttons/themes/blubuntu/maximize-focused.png
new file mode 100644
index 0000000..4b03a84
Binary files /dev/null and b/window-buttons/themes/blubuntu/maximize-focused.png differ
diff --git a/window-buttons/themes/blubuntu/maximize-hover.png 
b/window-buttons/themes/blubuntu/maximize-hover.png
new file mode 100644
index 0000000..f37b82d
Binary files /dev/null and b/window-buttons/themes/blubuntu/maximize-hover.png differ
diff --git a/window-buttons/themes/blubuntu/maximize-unfocused.png 
b/window-buttons/themes/blubuntu/maximize-unfocused.png
new file mode 100644
index 0000000..e18cab1
Binary files /dev/null and b/window-buttons/themes/blubuntu/maximize-unfocused.png differ
diff --git a/window-buttons/themes/blubuntu/minimize-clicked.png 
b/window-buttons/themes/blubuntu/minimize-clicked.png
new file mode 100644
index 0000000..889b9e5
Binary files /dev/null and b/window-buttons/themes/blubuntu/minimize-clicked.png differ
diff --git a/window-buttons/themes/blubuntu/minimize-focused.png 
b/window-buttons/themes/blubuntu/minimize-focused.png
new file mode 100644
index 0000000..27f7484
Binary files /dev/null and b/window-buttons/themes/blubuntu/minimize-focused.png differ
diff --git a/window-buttons/themes/blubuntu/minimize-hover.png 
b/window-buttons/themes/blubuntu/minimize-hover.png
new file mode 100644
index 0000000..0400616
Binary files /dev/null and b/window-buttons/themes/blubuntu/minimize-hover.png differ
diff --git a/window-buttons/themes/blubuntu/minimize-unfocused.png 
b/window-buttons/themes/blubuntu/minimize-unfocused.png
new file mode 100644
index 0000000..5f27bf9
Binary files /dev/null and b/window-buttons/themes/blubuntu/minimize-unfocused.png differ
diff --git a/window-buttons/themes/blubuntu/unmaximize-clicked.png 
b/window-buttons/themes/blubuntu/unmaximize-clicked.png
new file mode 100644
index 0000000..c670754
Binary files /dev/null and b/window-buttons/themes/blubuntu/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/blubuntu/unmaximize-focused.png 
b/window-buttons/themes/blubuntu/unmaximize-focused.png
new file mode 100644
index 0000000..8667132
Binary files /dev/null and b/window-buttons/themes/blubuntu/unmaximize-focused.png differ
diff --git a/window-buttons/themes/blubuntu/unmaximize-hover.png 
b/window-buttons/themes/blubuntu/unmaximize-hover.png
new file mode 100644
index 0000000..208a049
Binary files /dev/null and b/window-buttons/themes/blubuntu/unmaximize-hover.png differ
diff --git a/window-buttons/themes/blubuntu/unmaximize-unfocused.png 
b/window-buttons/themes/blubuntu/unmaximize-unfocused.png
new file mode 100644
index 0000000..ee8af53
Binary files /dev/null and b/window-buttons/themes/blubuntu/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/default/close-focused-clicked.png 
b/window-buttons/themes/default/close-focused-clicked.png
new file mode 100644
index 0000000..a331f1a
Binary files /dev/null and b/window-buttons/themes/default/close-focused-clicked.png differ
diff --git a/window-buttons/themes/default/close-focused-hover.png 
b/window-buttons/themes/default/close-focused-hover.png
new file mode 100644
index 0000000..4333adf
Binary files /dev/null and b/window-buttons/themes/default/close-focused-hover.png differ
diff --git a/window-buttons/themes/default/close-focused-normal.png 
b/window-buttons/themes/default/close-focused-normal.png
new file mode 100644
index 0000000..310b21c
Binary files /dev/null and b/window-buttons/themes/default/close-focused-normal.png differ
diff --git a/window-buttons/themes/default/close-unfocused-clicked.png 
b/window-buttons/themes/default/close-unfocused-clicked.png
new file mode 100644
index 0000000..a331f1a
Binary files /dev/null and b/window-buttons/themes/default/close-unfocused-clicked.png differ
diff --git a/window-buttons/themes/default/close-unfocused-hover.png 
b/window-buttons/themes/default/close-unfocused-hover.png
new file mode 100644
index 0000000..4333adf
Binary files /dev/null and b/window-buttons/themes/default/close-unfocused-hover.png differ
diff --git a/window-buttons/themes/default/close-unfocused-normal.png 
b/window-buttons/themes/default/close-unfocused-normal.png
new file mode 100644
index 0000000..3e58be0
Binary files /dev/null and b/window-buttons/themes/default/close-unfocused-normal.png differ
diff --git a/window-buttons/themes/default/maximize-focused-clicked.png 
b/window-buttons/themes/default/maximize-focused-clicked.png
new file mode 100644
index 0000000..8fc79b1
Binary files /dev/null and b/window-buttons/themes/default/maximize-focused-clicked.png differ
diff --git a/window-buttons/themes/default/maximize-focused-hover.png 
b/window-buttons/themes/default/maximize-focused-hover.png
new file mode 100644
index 0000000..92595fe
Binary files /dev/null and b/window-buttons/themes/default/maximize-focused-hover.png differ
diff --git a/window-buttons/themes/default/maximize-focused-normal.png 
b/window-buttons/themes/default/maximize-focused-normal.png
new file mode 100644
index 0000000..41e4472
Binary files /dev/null and b/window-buttons/themes/default/maximize-focused-normal.png differ
diff --git a/window-buttons/themes/default/maximize-unfocused-clicked.png 
b/window-buttons/themes/default/maximize-unfocused-clicked.png
new file mode 100644
index 0000000..8fc79b1
Binary files /dev/null and b/window-buttons/themes/default/maximize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/default/maximize-unfocused-hover.png 
b/window-buttons/themes/default/maximize-unfocused-hover.png
new file mode 100644
index 0000000..92595fe
Binary files /dev/null and b/window-buttons/themes/default/maximize-unfocused-hover.png differ
diff --git a/window-buttons/themes/default/maximize-unfocused-normal.png 
b/window-buttons/themes/default/maximize-unfocused-normal.png
new file mode 100644
index 0000000..1d5bbd2
Binary files /dev/null and b/window-buttons/themes/default/maximize-unfocused-normal.png differ
diff --git a/window-buttons/themes/default/minimize-focused-clicked.png 
b/window-buttons/themes/default/minimize-focused-clicked.png
new file mode 100644
index 0000000..a10c89e
Binary files /dev/null and b/window-buttons/themes/default/minimize-focused-clicked.png differ
diff --git a/window-buttons/themes/default/minimize-focused-hover.png 
b/window-buttons/themes/default/minimize-focused-hover.png
new file mode 100644
index 0000000..4eace1c
Binary files /dev/null and b/window-buttons/themes/default/minimize-focused-hover.png differ
diff --git a/window-buttons/themes/default/minimize-focused-normal.png 
b/window-buttons/themes/default/minimize-focused-normal.png
new file mode 100644
index 0000000..be66b11
Binary files /dev/null and b/window-buttons/themes/default/minimize-focused-normal.png differ
diff --git a/window-buttons/themes/default/minimize-unfocused-clicked.png 
b/window-buttons/themes/default/minimize-unfocused-clicked.png
new file mode 100644
index 0000000..a10c89e
Binary files /dev/null and b/window-buttons/themes/default/minimize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/default/minimize-unfocused-hover.png 
b/window-buttons/themes/default/minimize-unfocused-hover.png
new file mode 100644
index 0000000..4eace1c
Binary files /dev/null and b/window-buttons/themes/default/minimize-unfocused-hover.png differ
diff --git a/window-buttons/themes/default/minimize-unfocused-normal.png 
b/window-buttons/themes/default/minimize-unfocused-normal.png
new file mode 100644
index 0000000..7bbe620
Binary files /dev/null and b/window-buttons/themes/default/minimize-unfocused-normal.png differ
diff --git a/window-buttons/themes/default/unmaximize-focused-clicked.png 
b/window-buttons/themes/default/unmaximize-focused-clicked.png
new file mode 100644
index 0000000..d42a9ff
Binary files /dev/null and b/window-buttons/themes/default/unmaximize-focused-clicked.png differ
diff --git a/window-buttons/themes/default/unmaximize-focused-hover.png 
b/window-buttons/themes/default/unmaximize-focused-hover.png
new file mode 100644
index 0000000..f1de9e7
Binary files /dev/null and b/window-buttons/themes/default/unmaximize-focused-hover.png differ
diff --git a/window-buttons/themes/default/unmaximize-focused-normal.png 
b/window-buttons/themes/default/unmaximize-focused-normal.png
new file mode 100644
index 0000000..5f43881
Binary files /dev/null and b/window-buttons/themes/default/unmaximize-focused-normal.png differ
diff --git a/window-buttons/themes/default/unmaximize-unfocused-clicked.png 
b/window-buttons/themes/default/unmaximize-unfocused-clicked.png
new file mode 100644
index 0000000..d42a9ff
Binary files /dev/null and b/window-buttons/themes/default/unmaximize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/default/unmaximize-unfocused-hover.png 
b/window-buttons/themes/default/unmaximize-unfocused-hover.png
new file mode 100644
index 0000000..f1de9e7
Binary files /dev/null and b/window-buttons/themes/default/unmaximize-unfocused-hover.png differ
diff --git a/window-buttons/themes/default/unmaximize-unfocused-normal.png 
b/window-buttons/themes/default/unmaximize-unfocused-normal.png
new file mode 100644
index 0000000..4b1b3ff
Binary files /dev/null and b/window-buttons/themes/default/unmaximize-unfocused-normal.png differ
diff --git a/window-buttons/themes/dust-invert/close-clicked.png 
b/window-buttons/themes/dust-invert/close-clicked.png
new file mode 100644
index 0000000..f3c095f
Binary files /dev/null and b/window-buttons/themes/dust-invert/close-clicked.png differ
diff --git a/window-buttons/themes/dust-invert/close-focused.png 
b/window-buttons/themes/dust-invert/close-focused.png
new file mode 100644
index 0000000..b4e94fe
Binary files /dev/null and b/window-buttons/themes/dust-invert/close-focused.png differ
diff --git a/window-buttons/themes/dust-invert/close-hover.png 
b/window-buttons/themes/dust-invert/close-hover.png
new file mode 100644
index 0000000..af096fb
Binary files /dev/null and b/window-buttons/themes/dust-invert/close-hover.png differ
diff --git a/window-buttons/themes/dust-invert/close-unfocused.png 
b/window-buttons/themes/dust-invert/close-unfocused.png
new file mode 100644
index 0000000..b4e94fe
Binary files /dev/null and b/window-buttons/themes/dust-invert/close-unfocused.png differ
diff --git a/window-buttons/themes/dust-invert/maximize-clicked.png 
b/window-buttons/themes/dust-invert/maximize-clicked.png
new file mode 100644
index 0000000..1ccf743
Binary files /dev/null and b/window-buttons/themes/dust-invert/maximize-clicked.png differ
diff --git a/window-buttons/themes/dust-invert/maximize-focused.png 
b/window-buttons/themes/dust-invert/maximize-focused.png
new file mode 100644
index 0000000..ff3542c
Binary files /dev/null and b/window-buttons/themes/dust-invert/maximize-focused.png differ
diff --git a/window-buttons/themes/dust-invert/maximize-hover.png 
b/window-buttons/themes/dust-invert/maximize-hover.png
new file mode 100644
index 0000000..6b535b8
Binary files /dev/null and b/window-buttons/themes/dust-invert/maximize-hover.png differ
diff --git a/window-buttons/themes/dust-invert/maximize-unfocused.png 
b/window-buttons/themes/dust-invert/maximize-unfocused.png
new file mode 100644
index 0000000..6ccc0e5
Binary files /dev/null and b/window-buttons/themes/dust-invert/maximize-unfocused.png differ
diff --git a/window-buttons/themes/dust-invert/minimize-clicked.png 
b/window-buttons/themes/dust-invert/minimize-clicked.png
new file mode 100644
index 0000000..256446d
Binary files /dev/null and b/window-buttons/themes/dust-invert/minimize-clicked.png differ
diff --git a/window-buttons/themes/dust-invert/minimize-focused.png 
b/window-buttons/themes/dust-invert/minimize-focused.png
new file mode 100644
index 0000000..fad7dbd
Binary files /dev/null and b/window-buttons/themes/dust-invert/minimize-focused.png differ
diff --git a/window-buttons/themes/dust-invert/minimize-hover.png 
b/window-buttons/themes/dust-invert/minimize-hover.png
new file mode 100644
index 0000000..cbaecf4
Binary files /dev/null and b/window-buttons/themes/dust-invert/minimize-hover.png differ
diff --git a/window-buttons/themes/dust-invert/minimize-unfocused.png 
b/window-buttons/themes/dust-invert/minimize-unfocused.png
new file mode 100644
index 0000000..fad7dbd
Binary files /dev/null and b/window-buttons/themes/dust-invert/minimize-unfocused.png differ
diff --git a/window-buttons/themes/dust-invert/unmaximize-clicked.png 
b/window-buttons/themes/dust-invert/unmaximize-clicked.png
new file mode 100644
index 0000000..b57c757
Binary files /dev/null and b/window-buttons/themes/dust-invert/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/dust-invert/unmaximize-focused.png 
b/window-buttons/themes/dust-invert/unmaximize-focused.png
new file mode 100644
index 0000000..6ccc0e5
Binary files /dev/null and b/window-buttons/themes/dust-invert/unmaximize-focused.png differ
diff --git a/window-buttons/themes/dust-invert/unmaximize-hover.png 
b/window-buttons/themes/dust-invert/unmaximize-hover.png
new file mode 100644
index 0000000..9680ad4
Binary files /dev/null and b/window-buttons/themes/dust-invert/unmaximize-hover.png differ
diff --git a/window-buttons/themes/dust-invert/unmaximize-unfocused.png 
b/window-buttons/themes/dust-invert/unmaximize-unfocused.png
new file mode 100644
index 0000000..6ccc0e5
Binary files /dev/null and b/window-buttons/themes/dust-invert/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/dust-sand/close-clicked.png 
b/window-buttons/themes/dust-sand/close-clicked.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/close-clicked.png differ
diff --git a/window-buttons/themes/dust-sand/close-focused.png 
b/window-buttons/themes/dust-sand/close-focused.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/close-focused.png differ
diff --git a/window-buttons/themes/dust-sand/close-hover.png b/window-buttons/themes/dust-sand/close-hover.png
new file mode 100644
index 0000000..caa7ca3
Binary files /dev/null and b/window-buttons/themes/dust-sand/close-hover.png differ
diff --git a/window-buttons/themes/dust-sand/close-unfocused.png 
b/window-buttons/themes/dust-sand/close-unfocused.png
new file mode 100644
index 0000000..475998b
Binary files /dev/null and b/window-buttons/themes/dust-sand/close-unfocused.png differ
diff --git a/window-buttons/themes/dust-sand/maximize-clicked.png 
b/window-buttons/themes/dust-sand/maximize-clicked.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/maximize-clicked.png differ
diff --git a/window-buttons/themes/dust-sand/maximize-focused.png 
b/window-buttons/themes/dust-sand/maximize-focused.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/maximize-focused.png differ
diff --git a/window-buttons/themes/dust-sand/maximize-hover.png 
b/window-buttons/themes/dust-sand/maximize-hover.png
new file mode 100644
index 0000000..caa7ca3
Binary files /dev/null and b/window-buttons/themes/dust-sand/maximize-hover.png differ
diff --git a/window-buttons/themes/dust-sand/maximize-unfocused.png 
b/window-buttons/themes/dust-sand/maximize-unfocused.png
new file mode 100644
index 0000000..2397ba7
Binary files /dev/null and b/window-buttons/themes/dust-sand/maximize-unfocused.png differ
diff --git a/window-buttons/themes/dust-sand/minimize-clicked.png 
b/window-buttons/themes/dust-sand/minimize-clicked.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/minimize-clicked.png differ
diff --git a/window-buttons/themes/dust-sand/minimize-focused.png 
b/window-buttons/themes/dust-sand/minimize-focused.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/minimize-focused.png differ
diff --git a/window-buttons/themes/dust-sand/minimize-hover.png 
b/window-buttons/themes/dust-sand/minimize-hover.png
new file mode 100644
index 0000000..caa7ca3
Binary files /dev/null and b/window-buttons/themes/dust-sand/minimize-hover.png differ
diff --git a/window-buttons/themes/dust-sand/minimize-unfocused.png 
b/window-buttons/themes/dust-sand/minimize-unfocused.png
new file mode 100644
index 0000000..40c1ed0
Binary files /dev/null and b/window-buttons/themes/dust-sand/minimize-unfocused.png differ
diff --git a/window-buttons/themes/dust-sand/unmaximize-clicked.png 
b/window-buttons/themes/dust-sand/unmaximize-clicked.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/dust-sand/unmaximize-focused.png 
b/window-buttons/themes/dust-sand/unmaximize-focused.png
new file mode 100644
index 0000000..8280708
Binary files /dev/null and b/window-buttons/themes/dust-sand/unmaximize-focused.png differ
diff --git a/window-buttons/themes/dust-sand/unmaximize-hover.png 
b/window-buttons/themes/dust-sand/unmaximize-hover.png
new file mode 100644
index 0000000..caa7ca3
Binary files /dev/null and b/window-buttons/themes/dust-sand/unmaximize-hover.png differ
diff --git a/window-buttons/themes/dust-sand/unmaximize-unfocused.png 
b/window-buttons/themes/dust-sand/unmaximize-unfocused.png
new file mode 100644
index 0000000..b5f3e67
Binary files /dev/null and b/window-buttons/themes/dust-sand/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/dust/close-clicked.png b/window-buttons/themes/dust/close-clicked.png
new file mode 100644
index 0000000..31895e5
Binary files /dev/null and b/window-buttons/themes/dust/close-clicked.png differ
diff --git a/window-buttons/themes/dust/close-focused.png b/window-buttons/themes/dust/close-focused.png
new file mode 100644
index 0000000..98b55f3
Binary files /dev/null and b/window-buttons/themes/dust/close-focused.png differ
diff --git a/window-buttons/themes/dust/close-hover.png b/window-buttons/themes/dust/close-hover.png
new file mode 100644
index 0000000..125cb9d
Binary files /dev/null and b/window-buttons/themes/dust/close-hover.png differ
diff --git a/window-buttons/themes/dust/close-unfocused.png b/window-buttons/themes/dust/close-unfocused.png
new file mode 100644
index 0000000..45124d8
Binary files /dev/null and b/window-buttons/themes/dust/close-unfocused.png differ
diff --git a/window-buttons/themes/dust/maximize-clicked.png b/window-buttons/themes/dust/maximize-clicked.png
new file mode 100644
index 0000000..690f7af
Binary files /dev/null and b/window-buttons/themes/dust/maximize-clicked.png differ
diff --git a/window-buttons/themes/dust/maximize-focused.png b/window-buttons/themes/dust/maximize-focused.png
new file mode 100644
index 0000000..0b861bd
Binary files /dev/null and b/window-buttons/themes/dust/maximize-focused.png differ
diff --git a/window-buttons/themes/dust/maximize-hover.png b/window-buttons/themes/dust/maximize-hover.png
new file mode 100644
index 0000000..25f9686
Binary files /dev/null and b/window-buttons/themes/dust/maximize-hover.png differ
diff --git a/window-buttons/themes/dust/maximize-unfocused.png 
b/window-buttons/themes/dust/maximize-unfocused.png
new file mode 100644
index 0000000..3eaeb71
Binary files /dev/null and b/window-buttons/themes/dust/maximize-unfocused.png differ
diff --git a/window-buttons/themes/dust/minimize-clicked.png b/window-buttons/themes/dust/minimize-clicked.png
new file mode 100644
index 0000000..be2d0fb
Binary files /dev/null and b/window-buttons/themes/dust/minimize-clicked.png differ
diff --git a/window-buttons/themes/dust/minimize-focused.png b/window-buttons/themes/dust/minimize-focused.png
new file mode 100644
index 0000000..f124983
Binary files /dev/null and b/window-buttons/themes/dust/minimize-focused.png differ
diff --git a/window-buttons/themes/dust/minimize-hover.png b/window-buttons/themes/dust/minimize-hover.png
new file mode 100644
index 0000000..52a7f35
Binary files /dev/null and b/window-buttons/themes/dust/minimize-hover.png differ
diff --git a/window-buttons/themes/dust/minimize-unfocused.png 
b/window-buttons/themes/dust/minimize-unfocused.png
new file mode 100644
index 0000000..9a37021
Binary files /dev/null and b/window-buttons/themes/dust/minimize-unfocused.png differ
diff --git a/window-buttons/themes/dust/unmaximize-clicked.png 
b/window-buttons/themes/dust/unmaximize-clicked.png
new file mode 100644
index 0000000..690f7af
Binary files /dev/null and b/window-buttons/themes/dust/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/dust/unmaximize-focused.png 
b/window-buttons/themes/dust/unmaximize-focused.png
new file mode 100644
index 0000000..0b861bd
Binary files /dev/null and b/window-buttons/themes/dust/unmaximize-focused.png differ
diff --git a/window-buttons/themes/dust/unmaximize-hover.png b/window-buttons/themes/dust/unmaximize-hover.png
new file mode 100644
index 0000000..25f9686
Binary files /dev/null and b/window-buttons/themes/dust/unmaximize-hover.png differ
diff --git a/window-buttons/themes/dust/unmaximize-unfocused.png 
b/window-buttons/themes/dust/unmaximize-unfocused.png
new file mode 100644
index 0000000..3eaeb71
Binary files /dev/null and b/window-buttons/themes/dust/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/elementary/README b/window-buttons/themes/elementary/README
new file mode 100644
index 0000000..0eaac32
--- /dev/null
+++ b/window-buttons/themes/elementary/README
@@ -0,0 +1,8 @@
+# Elementary theme for Window Buttons applet
+# Created by Jeff M. Hubbard <jeffmhubbard gmail com>
+# Contains images from DanRabbit's Elementary Metacity theme
+
+To install:
+cp -r elementary /usr/share/windowbuttons/themes/
+
+0.1 - this is it
diff --git a/window-buttons/themes/elementary/close-clicked.png 
b/window-buttons/themes/elementary/close-clicked.png
new file mode 100644
index 0000000..34cca50
Binary files /dev/null and b/window-buttons/themes/elementary/close-clicked.png differ
diff --git a/window-buttons/themes/elementary/close-focused.png 
b/window-buttons/themes/elementary/close-focused.png
new file mode 100644
index 0000000..d57bb3a
Binary files /dev/null and b/window-buttons/themes/elementary/close-focused.png differ
diff --git a/window-buttons/themes/elementary/close-hover.png 
b/window-buttons/themes/elementary/close-hover.png
new file mode 100644
index 0000000..34cca50
Binary files /dev/null and b/window-buttons/themes/elementary/close-hover.png differ
diff --git a/window-buttons/themes/elementary/close-unfocused.png 
b/window-buttons/themes/elementary/close-unfocused.png
new file mode 100644
index 0000000..6669547
Binary files /dev/null and b/window-buttons/themes/elementary/close-unfocused.png differ
diff --git a/window-buttons/themes/elementary/maximize-clicked.png 
b/window-buttons/themes/elementary/maximize-clicked.png
new file mode 100644
index 0000000..7496ba4
Binary files /dev/null and b/window-buttons/themes/elementary/maximize-clicked.png differ
diff --git a/window-buttons/themes/elementary/maximize-focused.png 
b/window-buttons/themes/elementary/maximize-focused.png
new file mode 100644
index 0000000..a594d24
Binary files /dev/null and b/window-buttons/themes/elementary/maximize-focused.png differ
diff --git a/window-buttons/themes/elementary/maximize-hover.png 
b/window-buttons/themes/elementary/maximize-hover.png
new file mode 100644
index 0000000..7496ba4
Binary files /dev/null and b/window-buttons/themes/elementary/maximize-hover.png differ
diff --git a/window-buttons/themes/elementary/maximize-unfocused.png 
b/window-buttons/themes/elementary/maximize-unfocused.png
new file mode 100644
index 0000000..4cfd620
Binary files /dev/null and b/window-buttons/themes/elementary/maximize-unfocused.png differ
diff --git a/window-buttons/themes/elementary/minimize-clicked.png 
b/window-buttons/themes/elementary/minimize-clicked.png
new file mode 100644
index 0000000..ba6f70d
Binary files /dev/null and b/window-buttons/themes/elementary/minimize-clicked.png differ
diff --git a/window-buttons/themes/elementary/minimize-focused.png 
b/window-buttons/themes/elementary/minimize-focused.png
new file mode 100644
index 0000000..683d98d
Binary files /dev/null and b/window-buttons/themes/elementary/minimize-focused.png differ
diff --git a/window-buttons/themes/elementary/minimize-hover.png 
b/window-buttons/themes/elementary/minimize-hover.png
new file mode 100644
index 0000000..ba6f70d
Binary files /dev/null and b/window-buttons/themes/elementary/minimize-hover.png differ
diff --git a/window-buttons/themes/elementary/minimize-unfocused.png 
b/window-buttons/themes/elementary/minimize-unfocused.png
new file mode 100644
index 0000000..97fa75f
Binary files /dev/null and b/window-buttons/themes/elementary/minimize-unfocused.png differ
diff --git a/window-buttons/themes/elementary/unmaximize-clicked.png 
b/window-buttons/themes/elementary/unmaximize-clicked.png
new file mode 100644
index 0000000..7496ba4
Binary files /dev/null and b/window-buttons/themes/elementary/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/elementary/unmaximize-focused.png 
b/window-buttons/themes/elementary/unmaximize-focused.png
new file mode 100644
index 0000000..a594d24
Binary files /dev/null and b/window-buttons/themes/elementary/unmaximize-focused.png differ
diff --git a/window-buttons/themes/elementary/unmaximize-hover.png 
b/window-buttons/themes/elementary/unmaximize-hover.png
new file mode 100644
index 0000000..7496ba4
Binary files /dev/null and b/window-buttons/themes/elementary/unmaximize-hover.png differ
diff --git a/window-buttons/themes/elementary/unmaximize-unfocused.png 
b/window-buttons/themes/elementary/unmaximize-unfocused.png
new file mode 100644
index 0000000..4cfd620
Binary files /dev/null and b/window-buttons/themes/elementary/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/equinox-glass/README b/window-buttons/themes/equinox-glass/README
new file mode 100644
index 0000000..7e69a93
--- /dev/null
+++ b/window-buttons/themes/equinox-glass/README
@@ -0,0 +1,13 @@
+# Equinox Glass theme for Window Buttons applet
+# Created by eMcE
+# Contains images from Tiheum's Equinox Glass GTK theme
+
+To install:
+cp -r equinox-glass /usr/share/windowbuttons/themes/
+
+v0.2b - :)
+
+Changelog:
+
+0.2b - added 22 pixels at the bottom of each button to move them up to the edge of taskbar.
+0.1b - initial release
diff --git a/window-buttons/themes/equinox-glass/close-clicked.png 
b/window-buttons/themes/equinox-glass/close-clicked.png
new file mode 100644
index 0000000..7930464
Binary files /dev/null and b/window-buttons/themes/equinox-glass/close-clicked.png differ
diff --git a/window-buttons/themes/equinox-glass/close-focused.png 
b/window-buttons/themes/equinox-glass/close-focused.png
new file mode 100644
index 0000000..8ee1389
Binary files /dev/null and b/window-buttons/themes/equinox-glass/close-focused.png differ
diff --git a/window-buttons/themes/equinox-glass/close-hover.png 
b/window-buttons/themes/equinox-glass/close-hover.png
new file mode 100644
index 0000000..b152243
Binary files /dev/null and b/window-buttons/themes/equinox-glass/close-hover.png differ
diff --git a/window-buttons/themes/equinox-glass/close-unfocused.png 
b/window-buttons/themes/equinox-glass/close-unfocused.png
new file mode 100644
index 0000000..f930b06
Binary files /dev/null and b/window-buttons/themes/equinox-glass/close-unfocused.png differ
diff --git a/window-buttons/themes/equinox-glass/maximize-clicked.png 
b/window-buttons/themes/equinox-glass/maximize-clicked.png
new file mode 100644
index 0000000..f89dea2
Binary files /dev/null and b/window-buttons/themes/equinox-glass/maximize-clicked.png differ
diff --git a/window-buttons/themes/equinox-glass/maximize-focused.png 
b/window-buttons/themes/equinox-glass/maximize-focused.png
new file mode 100644
index 0000000..4deec48
Binary files /dev/null and b/window-buttons/themes/equinox-glass/maximize-focused.png differ
diff --git a/window-buttons/themes/equinox-glass/maximize-hover.png 
b/window-buttons/themes/equinox-glass/maximize-hover.png
new file mode 100644
index 0000000..d27fc16
Binary files /dev/null and b/window-buttons/themes/equinox-glass/maximize-hover.png differ
diff --git a/window-buttons/themes/equinox-glass/maximize-unfocused.png 
b/window-buttons/themes/equinox-glass/maximize-unfocused.png
new file mode 100644
index 0000000..e69002b
Binary files /dev/null and b/window-buttons/themes/equinox-glass/maximize-unfocused.png differ
diff --git a/window-buttons/themes/equinox-glass/minimize-clicked.png 
b/window-buttons/themes/equinox-glass/minimize-clicked.png
new file mode 100644
index 0000000..13832b2
Binary files /dev/null and b/window-buttons/themes/equinox-glass/minimize-clicked.png differ
diff --git a/window-buttons/themes/equinox-glass/minimize-focused.png 
b/window-buttons/themes/equinox-glass/minimize-focused.png
new file mode 100644
index 0000000..c16006d
Binary files /dev/null and b/window-buttons/themes/equinox-glass/minimize-focused.png differ
diff --git a/window-buttons/themes/equinox-glass/minimize-hover.png 
b/window-buttons/themes/equinox-glass/minimize-hover.png
new file mode 100644
index 0000000..d13c5f9
Binary files /dev/null and b/window-buttons/themes/equinox-glass/minimize-hover.png differ
diff --git a/window-buttons/themes/equinox-glass/minimize-unfocused.png 
b/window-buttons/themes/equinox-glass/minimize-unfocused.png
new file mode 100644
index 0000000..2889c3f
Binary files /dev/null and b/window-buttons/themes/equinox-glass/minimize-unfocused.png differ
diff --git a/window-buttons/themes/equinox-glass/unmaximize-clicked.png 
b/window-buttons/themes/equinox-glass/unmaximize-clicked.png
new file mode 100644
index 0000000..746d065
Binary files /dev/null and b/window-buttons/themes/equinox-glass/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/equinox-glass/unmaximize-focused.png 
b/window-buttons/themes/equinox-glass/unmaximize-focused.png
new file mode 100644
index 0000000..bf06ff1
Binary files /dev/null and b/window-buttons/themes/equinox-glass/unmaximize-focused.png differ
diff --git a/window-buttons/themes/equinox-glass/unmaximize-hover.png 
b/window-buttons/themes/equinox-glass/unmaximize-hover.png
new file mode 100644
index 0000000..b1366d5
Binary files /dev/null and b/window-buttons/themes/equinox-glass/unmaximize-hover.png differ
diff --git a/window-buttons/themes/equinox-glass/unmaximize-unfocused.png 
b/window-buttons/themes/equinox-glass/unmaximize-unfocused.png
new file mode 100644
index 0000000..eb13086
Binary files /dev/null and b/window-buttons/themes/equinox-glass/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/human-thin/close-clicked.png 
b/window-buttons/themes/human-thin/close-clicked.png
new file mode 100644
index 0000000..97e4d54
Binary files /dev/null and b/window-buttons/themes/human-thin/close-clicked.png differ
diff --git a/window-buttons/themes/human-thin/close-focused.png 
b/window-buttons/themes/human-thin/close-focused.png
new file mode 100644
index 0000000..33bc2b2
Binary files /dev/null and b/window-buttons/themes/human-thin/close-focused.png differ
diff --git a/window-buttons/themes/human-thin/close-hover.png 
b/window-buttons/themes/human-thin/close-hover.png
new file mode 100644
index 0000000..e78fbfb
Binary files /dev/null and b/window-buttons/themes/human-thin/close-hover.png differ
diff --git a/window-buttons/themes/human-thin/close-unfocused.png 
b/window-buttons/themes/human-thin/close-unfocused.png
new file mode 100644
index 0000000..32af8d1
Binary files /dev/null and b/window-buttons/themes/human-thin/close-unfocused.png differ
diff --git a/window-buttons/themes/human-thin/maximize-clicked.png 
b/window-buttons/themes/human-thin/maximize-clicked.png
new file mode 100644
index 0000000..6cdda99
Binary files /dev/null and b/window-buttons/themes/human-thin/maximize-clicked.png differ
diff --git a/window-buttons/themes/human-thin/maximize-focused.png 
b/window-buttons/themes/human-thin/maximize-focused.png
new file mode 100644
index 0000000..547b679
Binary files /dev/null and b/window-buttons/themes/human-thin/maximize-focused.png differ
diff --git a/window-buttons/themes/human-thin/maximize-hover.png 
b/window-buttons/themes/human-thin/maximize-hover.png
new file mode 100644
index 0000000..841e1a0
Binary files /dev/null and b/window-buttons/themes/human-thin/maximize-hover.png differ
diff --git a/window-buttons/themes/human-thin/maximize-unfocused.png 
b/window-buttons/themes/human-thin/maximize-unfocused.png
new file mode 100644
index 0000000..375a92f
Binary files /dev/null and b/window-buttons/themes/human-thin/maximize-unfocused.png differ
diff --git a/window-buttons/themes/human-thin/minimize-clicked.png 
b/window-buttons/themes/human-thin/minimize-clicked.png
new file mode 100644
index 0000000..c7bb179
Binary files /dev/null and b/window-buttons/themes/human-thin/minimize-clicked.png differ
diff --git a/window-buttons/themes/human-thin/minimize-focused.png 
b/window-buttons/themes/human-thin/minimize-focused.png
new file mode 100644
index 0000000..05ac512
Binary files /dev/null and b/window-buttons/themes/human-thin/minimize-focused.png differ
diff --git a/window-buttons/themes/human-thin/minimize-hover.png 
b/window-buttons/themes/human-thin/minimize-hover.png
new file mode 100644
index 0000000..7002437
Binary files /dev/null and b/window-buttons/themes/human-thin/minimize-hover.png differ
diff --git a/window-buttons/themes/human-thin/minimize-unfocused.png 
b/window-buttons/themes/human-thin/minimize-unfocused.png
new file mode 100644
index 0000000..44638a8
Binary files /dev/null and b/window-buttons/themes/human-thin/minimize-unfocused.png differ
diff --git a/window-buttons/themes/human-thin/unmaximize-clicked.png 
b/window-buttons/themes/human-thin/unmaximize-clicked.png
new file mode 100644
index 0000000..fb38387
Binary files /dev/null and b/window-buttons/themes/human-thin/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/human-thin/unmaximize-focused.png 
b/window-buttons/themes/human-thin/unmaximize-focused.png
new file mode 100644
index 0000000..4b81212
Binary files /dev/null and b/window-buttons/themes/human-thin/unmaximize-focused.png differ
diff --git a/window-buttons/themes/human-thin/unmaximize-hover.png 
b/window-buttons/themes/human-thin/unmaximize-hover.png
new file mode 100644
index 0000000..c8b1b8d
Binary files /dev/null and b/window-buttons/themes/human-thin/unmaximize-hover.png differ
diff --git a/window-buttons/themes/human-thin/unmaximize-unfocused.png 
b/window-buttons/themes/human-thin/unmaximize-unfocused.png
new file mode 100644
index 0000000..1bfb9d9
Binary files /dev/null and b/window-buttons/themes/human-thin/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/human/close-clicked.png b/window-buttons/themes/human/close-clicked.png
new file mode 100644
index 0000000..7ed8549
Binary files /dev/null and b/window-buttons/themes/human/close-clicked.png differ
diff --git a/window-buttons/themes/human/close-focused.png b/window-buttons/themes/human/close-focused.png
new file mode 100644
index 0000000..20fc007
Binary files /dev/null and b/window-buttons/themes/human/close-focused.png differ
diff --git a/window-buttons/themes/human/close-hover.png b/window-buttons/themes/human/close-hover.png
new file mode 100644
index 0000000..606c930
Binary files /dev/null and b/window-buttons/themes/human/close-hover.png differ
diff --git a/window-buttons/themes/human/close-unfocused.png b/window-buttons/themes/human/close-unfocused.png
new file mode 100644
index 0000000..18f4444
Binary files /dev/null and b/window-buttons/themes/human/close-unfocused.png differ
diff --git a/window-buttons/themes/human/maximize-clicked.png 
b/window-buttons/themes/human/maximize-clicked.png
new file mode 100644
index 0000000..a1146a6
Binary files /dev/null and b/window-buttons/themes/human/maximize-clicked.png differ
diff --git a/window-buttons/themes/human/maximize-focused.png 
b/window-buttons/themes/human/maximize-focused.png
new file mode 100644
index 0000000..4434b9f
Binary files /dev/null and b/window-buttons/themes/human/maximize-focused.png differ
diff --git a/window-buttons/themes/human/maximize-hover.png b/window-buttons/themes/human/maximize-hover.png
new file mode 100644
index 0000000..1d76bfb
Binary files /dev/null and b/window-buttons/themes/human/maximize-hover.png differ
diff --git a/window-buttons/themes/human/maximize-unfocused.png 
b/window-buttons/themes/human/maximize-unfocused.png
new file mode 100644
index 0000000..0e3dd42
Binary files /dev/null and b/window-buttons/themes/human/maximize-unfocused.png differ
diff --git a/window-buttons/themes/human/minimize-clicked.png 
b/window-buttons/themes/human/minimize-clicked.png
new file mode 100644
index 0000000..3a5a7b5
Binary files /dev/null and b/window-buttons/themes/human/minimize-clicked.png differ
diff --git a/window-buttons/themes/human/minimize-focused.png 
b/window-buttons/themes/human/minimize-focused.png
new file mode 100644
index 0000000..32ec53c
Binary files /dev/null and b/window-buttons/themes/human/minimize-focused.png differ
diff --git a/window-buttons/themes/human/minimize-hover.png b/window-buttons/themes/human/minimize-hover.png
new file mode 100644
index 0000000..6b66011
Binary files /dev/null and b/window-buttons/themes/human/minimize-hover.png differ
diff --git a/window-buttons/themes/human/minimize-unfocused.png 
b/window-buttons/themes/human/minimize-unfocused.png
new file mode 100644
index 0000000..f8ba5c5
Binary files /dev/null and b/window-buttons/themes/human/minimize-unfocused.png differ
diff --git a/window-buttons/themes/human/unmaximize-clicked.png 
b/window-buttons/themes/human/unmaximize-clicked.png
new file mode 100644
index 0000000..b8df437
Binary files /dev/null and b/window-buttons/themes/human/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/human/unmaximize-focused.png 
b/window-buttons/themes/human/unmaximize-focused.png
new file mode 100644
index 0000000..9787772
Binary files /dev/null and b/window-buttons/themes/human/unmaximize-focused.png differ
diff --git a/window-buttons/themes/human/unmaximize-hover.png 
b/window-buttons/themes/human/unmaximize-hover.png
new file mode 100644
index 0000000..4436323
Binary files /dev/null and b/window-buttons/themes/human/unmaximize-hover.png differ
diff --git a/window-buttons/themes/human/unmaximize-unfocused.png 
b/window-buttons/themes/human/unmaximize-unfocused.png
new file mode 100644
index 0000000..e16fb6c
Binary files /dev/null and b/window-buttons/themes/human/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/new-hope/close-clicked.png 
b/window-buttons/themes/new-hope/close-clicked.png
new file mode 100644
index 0000000..bcda9bb
Binary files /dev/null and b/window-buttons/themes/new-hope/close-clicked.png differ
diff --git a/window-buttons/themes/new-hope/close-focused.png 
b/window-buttons/themes/new-hope/close-focused.png
new file mode 100644
index 0000000..d70c2f2
Binary files /dev/null and b/window-buttons/themes/new-hope/close-focused.png differ
diff --git a/window-buttons/themes/new-hope/close-hover.png b/window-buttons/themes/new-hope/close-hover.png
new file mode 100644
index 0000000..b3c5424
Binary files /dev/null and b/window-buttons/themes/new-hope/close-hover.png differ
diff --git a/window-buttons/themes/new-hope/close-unfocused.png 
b/window-buttons/themes/new-hope/close-unfocused.png
new file mode 100644
index 0000000..bcda9bb
Binary files /dev/null and b/window-buttons/themes/new-hope/close-unfocused.png differ
diff --git a/window-buttons/themes/new-hope/maximize-clicked.png 
b/window-buttons/themes/new-hope/maximize-clicked.png
new file mode 100644
index 0000000..a9c2d9e
Binary files /dev/null and b/window-buttons/themes/new-hope/maximize-clicked.png differ
diff --git a/window-buttons/themes/new-hope/maximize-focused.png 
b/window-buttons/themes/new-hope/maximize-focused.png
new file mode 100644
index 0000000..d9e8dba
Binary files /dev/null and b/window-buttons/themes/new-hope/maximize-focused.png differ
diff --git a/window-buttons/themes/new-hope/maximize-hover.png 
b/window-buttons/themes/new-hope/maximize-hover.png
new file mode 100644
index 0000000..1c2daf8
Binary files /dev/null and b/window-buttons/themes/new-hope/maximize-hover.png differ
diff --git a/window-buttons/themes/new-hope/maximize-unfocused.png 
b/window-buttons/themes/new-hope/maximize-unfocused.png
new file mode 100644
index 0000000..a9c2d9e
Binary files /dev/null and b/window-buttons/themes/new-hope/maximize-unfocused.png differ
diff --git a/window-buttons/themes/new-hope/minimize-clicked.png 
b/window-buttons/themes/new-hope/minimize-clicked.png
new file mode 100644
index 0000000..2ffccfd
Binary files /dev/null and b/window-buttons/themes/new-hope/minimize-clicked.png differ
diff --git a/window-buttons/themes/new-hope/minimize-focused.png 
b/window-buttons/themes/new-hope/minimize-focused.png
new file mode 100644
index 0000000..60b85b5
Binary files /dev/null and b/window-buttons/themes/new-hope/minimize-focused.png differ
diff --git a/window-buttons/themes/new-hope/minimize-hover.png 
b/window-buttons/themes/new-hope/minimize-hover.png
new file mode 100644
index 0000000..f6ae7d4
Binary files /dev/null and b/window-buttons/themes/new-hope/minimize-hover.png differ
diff --git a/window-buttons/themes/new-hope/minimize-unfocused.png 
b/window-buttons/themes/new-hope/minimize-unfocused.png
new file mode 100644
index 0000000..2ffccfd
Binary files /dev/null and b/window-buttons/themes/new-hope/minimize-unfocused.png differ
diff --git a/window-buttons/themes/new-hope/unmaximize-clicked.png 
b/window-buttons/themes/new-hope/unmaximize-clicked.png
new file mode 100644
index 0000000..a9c2d9e
Binary files /dev/null and b/window-buttons/themes/new-hope/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/new-hope/unmaximize-focused.png 
b/window-buttons/themes/new-hope/unmaximize-focused.png
new file mode 100644
index 0000000..d9e8dba
Binary files /dev/null and b/window-buttons/themes/new-hope/unmaximize-focused.png differ
diff --git a/window-buttons/themes/new-hope/unmaximize-hover.png 
b/window-buttons/themes/new-hope/unmaximize-hover.png
new file mode 100644
index 0000000..1c2daf8
Binary files /dev/null and b/window-buttons/themes/new-hope/unmaximize-hover.png differ
diff --git a/window-buttons/themes/new-hope/unmaximize-unfocused.png 
b/window-buttons/themes/new-hope/unmaximize-unfocused.png
new file mode 100644
index 0000000..a9c2d9e
Binary files /dev/null and b/window-buttons/themes/new-hope/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/plano/close-clicked.png b/window-buttons/themes/plano/close-clicked.png
new file mode 100644
index 0000000..f8ce090
Binary files /dev/null and b/window-buttons/themes/plano/close-clicked.png differ
diff --git a/window-buttons/themes/plano/close-focused.png b/window-buttons/themes/plano/close-focused.png
new file mode 100644
index 0000000..89fb2cc
Binary files /dev/null and b/window-buttons/themes/plano/close-focused.png differ
diff --git a/window-buttons/themes/plano/close-hover.png b/window-buttons/themes/plano/close-hover.png
new file mode 100644
index 0000000..858a0a0
Binary files /dev/null and b/window-buttons/themes/plano/close-hover.png differ
diff --git a/window-buttons/themes/plano/close-unfocused.png b/window-buttons/themes/plano/close-unfocused.png
new file mode 100644
index 0000000..04c471a
Binary files /dev/null and b/window-buttons/themes/plano/close-unfocused.png differ
diff --git a/window-buttons/themes/plano/maximize-clicked.png 
b/window-buttons/themes/plano/maximize-clicked.png
new file mode 100644
index 0000000..df388ea
Binary files /dev/null and b/window-buttons/themes/plano/maximize-clicked.png differ
diff --git a/window-buttons/themes/plano/maximize-focused.png 
b/window-buttons/themes/plano/maximize-focused.png
new file mode 100644
index 0000000..3414e06
Binary files /dev/null and b/window-buttons/themes/plano/maximize-focused.png differ
diff --git a/window-buttons/themes/plano/maximize-hover.png b/window-buttons/themes/plano/maximize-hover.png
new file mode 100644
index 0000000..1f90f07
Binary files /dev/null and b/window-buttons/themes/plano/maximize-hover.png differ
diff --git a/window-buttons/themes/plano/maximize-unfocused.png 
b/window-buttons/themes/plano/maximize-unfocused.png
new file mode 100644
index 0000000..04c471a
Binary files /dev/null and b/window-buttons/themes/plano/maximize-unfocused.png differ
diff --git a/window-buttons/themes/plano/minimize-clicked.png 
b/window-buttons/themes/plano/minimize-clicked.png
new file mode 100644
index 0000000..db0a3e3
Binary files /dev/null and b/window-buttons/themes/plano/minimize-clicked.png differ
diff --git a/window-buttons/themes/plano/minimize-focused.png 
b/window-buttons/themes/plano/minimize-focused.png
new file mode 100644
index 0000000..8372ee9
Binary files /dev/null and b/window-buttons/themes/plano/minimize-focused.png differ
diff --git a/window-buttons/themes/plano/minimize-hover.png b/window-buttons/themes/plano/minimize-hover.png
new file mode 100644
index 0000000..e8154d7
Binary files /dev/null and b/window-buttons/themes/plano/minimize-hover.png differ
diff --git a/window-buttons/themes/plano/minimize-unfocused.png 
b/window-buttons/themes/plano/minimize-unfocused.png
new file mode 100644
index 0000000..04c471a
Binary files /dev/null and b/window-buttons/themes/plano/minimize-unfocused.png differ
diff --git a/window-buttons/themes/plano/unmaximize-clicked.png 
b/window-buttons/themes/plano/unmaximize-clicked.png
new file mode 100644
index 0000000..df388ea
Binary files /dev/null and b/window-buttons/themes/plano/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/plano/unmaximize-focused.png 
b/window-buttons/themes/plano/unmaximize-focused.png
new file mode 100644
index 0000000..3414e06
Binary files /dev/null and b/window-buttons/themes/plano/unmaximize-focused.png differ
diff --git a/window-buttons/themes/plano/unmaximize-hover.png 
b/window-buttons/themes/plano/unmaximize-hover.png
new file mode 100644
index 0000000..1f90f07
Binary files /dev/null and b/window-buttons/themes/plano/unmaximize-hover.png differ
diff --git a/window-buttons/themes/plano/unmaximize-unfocused.png 
b/window-buttons/themes/plano/unmaximize-unfocused.png
new file mode 100644
index 0000000..04c471a
Binary files /dev/null and b/window-buttons/themes/plano/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/radiance-maverick/close-focused-clicked.png 
b/window-buttons/themes/radiance-maverick/close-focused-clicked.png
new file mode 100644
index 0000000..bb32e5b
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/close-focused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/close-focused-hover.png 
b/window-buttons/themes/radiance-maverick/close-focused-hover.png
new file mode 100644
index 0000000..b9f14b6
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/close-focused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/close-focused-normal.png 
b/window-buttons/themes/radiance-maverick/close-focused-normal.png
new file mode 100644
index 0000000..3655c79
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/close-focused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/close-unfocused-clicked.png 
b/window-buttons/themes/radiance-maverick/close-unfocused-clicked.png
new file mode 100644
index 0000000..bb32e5b
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/close-unfocused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/close-unfocused-hover.png 
b/window-buttons/themes/radiance-maverick/close-unfocused-hover.png
new file mode 100644
index 0000000..857de76
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/close-unfocused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/close-unfocused-normal.png 
b/window-buttons/themes/radiance-maverick/close-unfocused-normal.png
new file mode 100644
index 0000000..5ada173
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/close-unfocused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/maximize-focused-clicked.png 
b/window-buttons/themes/radiance-maverick/maximize-focused-clicked.png
new file mode 100644
index 0000000..b95b3a8
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/maximize-focused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/maximize-focused-hover.png 
b/window-buttons/themes/radiance-maverick/maximize-focused-hover.png
new file mode 100644
index 0000000..c0e356e
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/maximize-focused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/maximize-focused-normal.png 
b/window-buttons/themes/radiance-maverick/maximize-focused-normal.png
new file mode 100644
index 0000000..bd0aa78
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/maximize-focused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/maximize-unfocused-clicked.png 
b/window-buttons/themes/radiance-maverick/maximize-unfocused-clicked.png
new file mode 100644
index 0000000..b95b3a8
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/maximize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/maximize-unfocused-hover.png 
b/window-buttons/themes/radiance-maverick/maximize-unfocused-hover.png
new file mode 100644
index 0000000..c0e356e
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/maximize-unfocused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/maximize-unfocused-normal.png 
b/window-buttons/themes/radiance-maverick/maximize-unfocused-normal.png
new file mode 100644
index 0000000..0881f06
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/maximize-unfocused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/minimize-focused-clicked.png 
b/window-buttons/themes/radiance-maverick/minimize-focused-clicked.png
new file mode 100644
index 0000000..261a65d
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/minimize-focused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/minimize-focused-hover.png 
b/window-buttons/themes/radiance-maverick/minimize-focused-hover.png
new file mode 100644
index 0000000..b19cb73
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/minimize-focused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/minimize-focused-normal.png 
b/window-buttons/themes/radiance-maverick/minimize-focused-normal.png
new file mode 100644
index 0000000..542ae3a
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/minimize-focused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/minimize-unfocused-clicked.png 
b/window-buttons/themes/radiance-maverick/minimize-unfocused-clicked.png
new file mode 100644
index 0000000..261a65d
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/minimize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/minimize-unfocused-hover.png 
b/window-buttons/themes/radiance-maverick/minimize-unfocused-hover.png
new file mode 100644
index 0000000..b19cb73
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/minimize-unfocused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/minimize-unfocused-normal.png 
b/window-buttons/themes/radiance-maverick/minimize-unfocused-normal.png
new file mode 100644
index 0000000..048a931
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/minimize-unfocused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/unmaximize-focused-clicked.png 
b/window-buttons/themes/radiance-maverick/unmaximize-focused-clicked.png
new file mode 100644
index 0000000..407777e
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/unmaximize-focused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/unmaximize-focused-hover.png 
b/window-buttons/themes/radiance-maverick/unmaximize-focused-hover.png
new file mode 100644
index 0000000..e2a01e3
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/unmaximize-focused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/unmaximize-focused-normal.png 
b/window-buttons/themes/radiance-maverick/unmaximize-focused-normal.png
new file mode 100644
index 0000000..d0961c8
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/unmaximize-focused-normal.png differ
diff --git a/window-buttons/themes/radiance-maverick/unmaximize-unfocused-clicked.png 
b/window-buttons/themes/radiance-maverick/unmaximize-unfocused-clicked.png
new file mode 100644
index 0000000..407777e
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/unmaximize-unfocused-clicked.png differ
diff --git a/window-buttons/themes/radiance-maverick/unmaximize-unfocused-hover.png 
b/window-buttons/themes/radiance-maverick/unmaximize-unfocused-hover.png
new file mode 100644
index 0000000..e2a01e3
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/unmaximize-unfocused-hover.png differ
diff --git a/window-buttons/themes/radiance-maverick/unmaximize-unfocused-normal.png 
b/window-buttons/themes/radiance-maverick/unmaximize-unfocused-normal.png
new file mode 100644
index 0000000..b7b0e12
Binary files /dev/null and b/window-buttons/themes/radiance-maverick/unmaximize-unfocused-normal.png differ
diff --git a/window-buttons/themes/radiance/close-clicked.png 
b/window-buttons/themes/radiance/close-clicked.png
new file mode 100644
index 0000000..ddc2de4
Binary files /dev/null and b/window-buttons/themes/radiance/close-clicked.png differ
diff --git a/window-buttons/themes/radiance/close-focused.png 
b/window-buttons/themes/radiance/close-focused.png
new file mode 100644
index 0000000..ddc2de4
Binary files /dev/null and b/window-buttons/themes/radiance/close-focused.png differ
diff --git a/window-buttons/themes/radiance/close-hover.png b/window-buttons/themes/radiance/close-hover.png
new file mode 100644
index 0000000..dd449b7
Binary files /dev/null and b/window-buttons/themes/radiance/close-hover.png differ
diff --git a/window-buttons/themes/radiance/close-unfocused.png 
b/window-buttons/themes/radiance/close-unfocused.png
new file mode 100644
index 0000000..3b3f6b2
Binary files /dev/null and b/window-buttons/themes/radiance/close-unfocused.png differ
diff --git a/window-buttons/themes/radiance/maximize-clicked.png 
b/window-buttons/themes/radiance/maximize-clicked.png
new file mode 100644
index 0000000..5fb9e74
Binary files /dev/null and b/window-buttons/themes/radiance/maximize-clicked.png differ
diff --git a/window-buttons/themes/radiance/maximize-focused.png 
b/window-buttons/themes/radiance/maximize-focused.png
new file mode 100644
index 0000000..70c9ac9
Binary files /dev/null and b/window-buttons/themes/radiance/maximize-focused.png differ
diff --git a/window-buttons/themes/radiance/maximize-hover.png 
b/window-buttons/themes/radiance/maximize-hover.png
new file mode 100644
index 0000000..cd13e32
Binary files /dev/null and b/window-buttons/themes/radiance/maximize-hover.png differ
diff --git a/window-buttons/themes/radiance/maximize-unfocused.png 
b/window-buttons/themes/radiance/maximize-unfocused.png
new file mode 100644
index 0000000..cdd6c5d
Binary files /dev/null and b/window-buttons/themes/radiance/maximize-unfocused.png differ
diff --git a/window-buttons/themes/radiance/minimize-clicked.png 
b/window-buttons/themes/radiance/minimize-clicked.png
new file mode 100644
index 0000000..c275b15
Binary files /dev/null and b/window-buttons/themes/radiance/minimize-clicked.png differ
diff --git a/window-buttons/themes/radiance/minimize-focused.png 
b/window-buttons/themes/radiance/minimize-focused.png
new file mode 100644
index 0000000..bb19161
Binary files /dev/null and b/window-buttons/themes/radiance/minimize-focused.png differ
diff --git a/window-buttons/themes/radiance/minimize-hover.png 
b/window-buttons/themes/radiance/minimize-hover.png
new file mode 100644
index 0000000..fb54908
Binary files /dev/null and b/window-buttons/themes/radiance/minimize-hover.png differ
diff --git a/window-buttons/themes/radiance/minimize-unfocused.png 
b/window-buttons/themes/radiance/minimize-unfocused.png
new file mode 100644
index 0000000..d90bd33
Binary files /dev/null and b/window-buttons/themes/radiance/minimize-unfocused.png differ
diff --git a/window-buttons/themes/radiance/unmaximize-clicked.png 
b/window-buttons/themes/radiance/unmaximize-clicked.png
new file mode 100644
index 0000000..d6f25de
Binary files /dev/null and b/window-buttons/themes/radiance/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/radiance/unmaximize-focused.png 
b/window-buttons/themes/radiance/unmaximize-focused.png
new file mode 100644
index 0000000..630727e
Binary files /dev/null and b/window-buttons/themes/radiance/unmaximize-focused.png differ
diff --git a/window-buttons/themes/radiance/unmaximize-hover.png 
b/window-buttons/themes/radiance/unmaximize-hover.png
new file mode 100644
index 0000000..2e2b634
Binary files /dev/null and b/window-buttons/themes/radiance/unmaximize-hover.png differ
diff --git a/window-buttons/themes/radiance/unmaximize-unfocused.png 
b/window-buttons/themes/radiance/unmaximize-unfocused.png
new file mode 100644
index 0000000..7f656e4
Binary files /dev/null and b/window-buttons/themes/radiance/unmaximize-unfocused.png differ
diff --git a/window-buttons/themes/sorbet/close-clicked.png b/window-buttons/themes/sorbet/close-clicked.png
new file mode 100644
index 0000000..2e8f771
Binary files /dev/null and b/window-buttons/themes/sorbet/close-clicked.png differ
diff --git a/window-buttons/themes/sorbet/close-focused.png b/window-buttons/themes/sorbet/close-focused.png
new file mode 100644
index 0000000..1c6fd5b
Binary files /dev/null and b/window-buttons/themes/sorbet/close-focused.png differ
diff --git a/window-buttons/themes/sorbet/close-hover.png b/window-buttons/themes/sorbet/close-hover.png
new file mode 100644
index 0000000..3a36595
Binary files /dev/null and b/window-buttons/themes/sorbet/close-hover.png differ
diff --git a/window-buttons/themes/sorbet/close-unfocused.png 
b/window-buttons/themes/sorbet/close-unfocused.png
new file mode 100644
index 0000000..449f8c6
Binary files /dev/null and b/window-buttons/themes/sorbet/close-unfocused.png differ
diff --git a/window-buttons/themes/sorbet/maximize-clicked.png 
b/window-buttons/themes/sorbet/maximize-clicked.png
new file mode 100644
index 0000000..1e38a30
Binary files /dev/null and b/window-buttons/themes/sorbet/maximize-clicked.png differ
diff --git a/window-buttons/themes/sorbet/maximize-focused.png 
b/window-buttons/themes/sorbet/maximize-focused.png
new file mode 100644
index 0000000..08eae20
Binary files /dev/null and b/window-buttons/themes/sorbet/maximize-focused.png differ
diff --git a/window-buttons/themes/sorbet/maximize-hover.png b/window-buttons/themes/sorbet/maximize-hover.png
new file mode 100644
index 0000000..bd9f245
Binary files /dev/null and b/window-buttons/themes/sorbet/maximize-hover.png differ
diff --git a/window-buttons/themes/sorbet/maximize-unfocused.png 
b/window-buttons/themes/sorbet/maximize-unfocused.png
new file mode 100644
index 0000000..08eae20
Binary files /dev/null and b/window-buttons/themes/sorbet/maximize-unfocused.png differ
diff --git a/window-buttons/themes/sorbet/minimize-clicked.png 
b/window-buttons/themes/sorbet/minimize-clicked.png
new file mode 100644
index 0000000..59f8815
Binary files /dev/null and b/window-buttons/themes/sorbet/minimize-clicked.png differ
diff --git a/window-buttons/themes/sorbet/minimize-focused.png 
b/window-buttons/themes/sorbet/minimize-focused.png
new file mode 100644
index 0000000..3ea2113
Binary files /dev/null and b/window-buttons/themes/sorbet/minimize-focused.png differ
diff --git a/window-buttons/themes/sorbet/minimize-hover.png b/window-buttons/themes/sorbet/minimize-hover.png
new file mode 100644
index 0000000..7a780b9
Binary files /dev/null and b/window-buttons/themes/sorbet/minimize-hover.png differ
diff --git a/window-buttons/themes/sorbet/minimize-unfocused.png 
b/window-buttons/themes/sorbet/minimize-unfocused.png
new file mode 100644
index 0000000..3ea2113
Binary files /dev/null and b/window-buttons/themes/sorbet/minimize-unfocused.png differ
diff --git a/window-buttons/themes/sorbet/unmaximize-clicked.png 
b/window-buttons/themes/sorbet/unmaximize-clicked.png
new file mode 100644
index 0000000..be8eb60
Binary files /dev/null and b/window-buttons/themes/sorbet/unmaximize-clicked.png differ
diff --git a/window-buttons/themes/sorbet/unmaximize-focused.png 
b/window-buttons/themes/sorbet/unmaximize-focused.png
new file mode 100644
index 0000000..ad4d611
Binary files /dev/null and b/window-buttons/themes/sorbet/unmaximize-focused.png differ
diff --git a/window-buttons/themes/sorbet/unmaximize-hover.png 
b/window-buttons/themes/sorbet/unmaximize-hover.png
new file mode 100644
index 0000000..9a860ea
Binary files /dev/null and b/window-buttons/themes/sorbet/unmaximize-hover.png differ
diff --git a/window-buttons/themes/sorbet/unmaximize-unfocused.png 
b/window-buttons/themes/sorbet/unmaximize-unfocused.png
new file mode 100644
index 0000000..ad4d611
Binary files /dev/null and b/window-buttons/themes/sorbet/unmaximize-unfocused.png differ
diff --git a/window-buttons/windowbuttons.c b/window-buttons/windowbuttons.c
new file mode 100644
index 0000000..224c426
--- /dev/null
+++ b/window-buttons/windowbuttons.c
@@ -0,0 +1,710 @@
+/***************************************************************************
+ *            windowbuttons.c
+ *
+ *  Mon May  4 01:21:56 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+ 
+#include "windowbuttons.h"
+
+/* Prototypes */
+//static void applet_change_background (PanelApplet *, PanelAppletBackgroundType, GdkColor *, GdkPixmap *);
+static void active_workspace_changed (WnckScreen *, WnckWorkspace *, WBApplet *);
+static void active_window_changed (WnckScreen *, WnckWindow *, WBApplet *);
+static void active_window_state_changed (WnckWindow *, WnckWindowState, WnckWindowState, WBApplet *);
+static void umaxed_window_state_changed (WnckWindow *, WnckWindowState, WnckWindowState, WBApplet *);
+static void viewports_changed (WnckScreen *, WBApplet *);
+static void window_closed (WnckScreen *, WnckWindow *, WBApplet *);
+static void window_opened (WnckScreen *, WnckWindow *, WBApplet *);
+//static void about_cb (BonoboUIComponent *, WBApplet *);
+static void about_cb (GtkAction *, WBApplet *);
+//void properties_cb (BonoboUIComponent *, WBApplet *, const char *);
+void properties_cb (GtkAction *, WBApplet *);
+static gboolean hover_enter (GtkWidget *, GdkEventCrossing *, WBApplet *);
+static gboolean hover_leave (GtkWidget *, GdkEventCrossing *, WBApplet *);
+static gboolean button_press (GtkWidget *, GdkEventButton *, WBApplet *);
+static gboolean button_release (GtkWidget *, GdkEventButton *, WBApplet *);
+static WnckWindow *getRootWindow (WnckScreen *screen);
+static WnckWindow *getUpperMaximized (WBApplet *);
+void setCustomLayout (WBPreferences *, gchar *);
+void rotatePixbufs(WBApplet *);
+void placeButtons(WBApplet *);
+void reloadButtons(WBApplet *);
+void toggleHidden(WBApplet *);
+void savePreferences(WBPreferences *, WBApplet *);
+void loadThemes(GtkComboBox *, gchar *);
+WBPreferences *loadPreferences(WBApplet *);
+gchar *getButtonLayoutGConf(WBApplet *, gboolean);
+gchar *getMetacityLayout(void);
+const gchar *getCheckBoxCfgKey (gushort);
+GdkPixbuf ***getPixbufs(gchar ***);
+
+//G_DEFINE_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
+//This line is very important! It defines how the requested functions will be called
+G_DEFINE_TYPE (WBApplet, wb_applet, PANEL_TYPE_APPLET);
+
+static const gchar windowbuttons_menu_items [] =
+       "<menuitem name=\"Preferences\" action=\"WBPreferences\" />"
+       "<menuitem name=\"About\"               action=\"WBAbout\" />";
+
+static const GtkActionEntry windowbuttons_menu_actions [] = {
+        { "WBPreferences", GTK_STOCK_PROPERTIES, N_("_Preferences"), NULL, NULL, G_CALLBACK (properties_cb) 
},
+        { "WBAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, NULL, G_CALLBACK (about_cb) }
+};
+
+WBApplet* wb_applet_new (void) {
+        return g_object_new (WB_TYPE_APPLET, NULL);
+}
+
+static void wb_applet_class_init (WBAppletClass *klass) {
+       // Called before wb_applet_init()
+}
+
+static void wb_applet_init(WBApplet *wbapplet) {
+       // Called before windowbuttons_applet_fill(), after wb_applet_class_init()
+}
+
+/* The About dialog */
+//static void about_cb (BonoboUIComponent *uic, WBApplet *applet) {
+static void about_cb (GtkAction *action, WBApplet *applet) {
+    static const gchar *authors [] = {
+               "Andrej Belcijan <{andrejx}at{gmail.com}>",
+               " ",
+               "Also contributed:",
+               "quiescens",
+               NULL
+       };
+
+       const gchar *artists[] = {
+               "Andrej Belcijan <{andrejx}at{gmail.com}> for theme \"Default\" and contribution moderating",
+               "Maurizio De Santis <{desantis.maurizio}at{gmail.com}> for theme \"Blubuntu\"",
+               "Nasser Alshammari <{designernasser}at{gmail.com}> for logo design",
+               "Jeff M. Hubbard <{jeffmhubbard}at{gmail.com}> for theme \"Elementary\"",
+               "Gaurang Arora for theme \"Dust-Invert\"",
+               "Giacomo Porrà for themes \"Ambiance\", \"Ambiance-Maverick\", \"Radiance\", 
\"Radiance-Maverick\"",
+               "Vitalii Dmytruk for theme \"Ambiance-X-Studio\"",
+               "amoob for themes \"Plano\", \"New-Hope\" and \"WoW\"",
+               "McBurri for theme \"Equinox-Glass\"",
+               "milky2313 for theme \"Sorbet\"",
+               NULL
+       };
+       
+       const gchar *documenters[] = {
+        "Andrej Belcijan <{andrejx}at{gmail.com}>",
+               NULL
+       };
+
+       GdkPixbuf *logo = gdk_pixbuf_new_from_file (PATH_LOGO, NULL);
+
+       gtk_show_about_dialog (NULL,
+               "version",      VERSION,
+               "comments",     N_("Window buttons for your GNOME Panel."),
+               "copyright",    "\xC2\xA9 2011 Andrej Belcijan",
+               "authors",      authors,
+           "artists",  artists,
+               "documenters",  documenters,
+               "translator-credits", ("translator-credits"),
+               "logo",         logo,
+           "website",  "http://www.gnome-look.org/content/show.php?content=103732";,
+               "website-label", N_("Window Applets on Gnome-Look"),
+               NULL);
+}
+
+static WnckWindow *getRootWindow (WnckScreen *screen) {
+       GList *winstack = wnck_screen_get_windows_stacked(screen);
+       if (winstack) // we can't access data directly because sometimes we will get NULL
+               return winstack->data;
+       else
+               return NULL;
+}
+
+/* Returns the highest maximized window */
+static WnckWindow *getUpperMaximized (WBApplet *wbapplet) {
+       if (!wbapplet->prefs->only_maximized)
+               return wbapplet->activewindow;
+       
+       GList *windows = wnck_screen_get_windows_stacked(wbapplet->activescreen);
+       WnckWindow *returnwindow = NULL;
+
+       while (windows && windows->data) {
+               if (wnck_window_is_maximized(windows->data)) {
+                       //if (wnck_window_is_on_workspace(windows->data, wbapplet->activeworkspace))
+                       if (!wnck_window_is_minimized(windows->data))
+                               if (wnck_window_is_in_viewport(windows->data, wbapplet->activeworkspace))
+                                       returnwindow = windows->data;
+               }
+               windows = windows->next;
+       }
+
+       // start tracking the new umaxed window
+       if (wbapplet->umaxedwindow) {
+               if (g_signal_handler_is_connected(G_OBJECT(wbapplet->umaxedwindow), wbapplet->umaxed_handler))
+                       g_signal_handler_disconnect(G_OBJECT(wbapplet->umaxedwindow), 
wbapplet->umaxed_handler);
+       }
+       if (returnwindow) {
+               wbapplet->umaxed_handler = g_signal_connect(G_OBJECT(returnwindow),
+                                                            "state-changed",
+                                                            G_CALLBACK (umaxed_window_state_changed),
+                                                            wbapplet);
+       } else {
+               returnwindow = wbapplet->rootwindow;
+       }
+
+       return returnwindow;
+}
+
+/* Return image ID according to button state */
+gushort getImageState (WBButtonState button_state) {
+       if (button_state & WB_BUTTON_STATE_FOCUSED) {
+               if (button_state & WB_BUTTON_STATE_CLICKED) {
+                       return WB_IMAGE_FOCUSED_CLICKED;
+               } else if (button_state & WB_BUTTON_STATE_HOVERED) {
+                       return WB_IMAGE_FOCUSED_HOVERED;
+               } else {
+                       return WB_IMAGE_FOCUSED_NORMAL;
+               }
+       } else {
+               if (button_state & WB_BUTTON_STATE_CLICKED) {
+                       return WB_IMAGE_UNFOCUSED_CLICKED;
+               } else if (button_state & WB_BUTTON_STATE_HOVERED) {
+                       return WB_IMAGE_UNFOCUSED_HOVERED;
+               } else {
+                       return WB_IMAGE_UNFOCUSED_NORMAL;
+               }
+       }
+}
+
+/* Updates the images according to preferences and the umaxed window situation */
+void updateImages (WBApplet *wbapplet) {
+       WnckWindow *controlledwindow;
+       gint i;
+
+       if (wbapplet->prefs->only_maximized) {
+               controlledwindow = wbapplet->umaxedwindow;
+       } else {
+               controlledwindow = wbapplet->activewindow;
+       }
+
+       if (controlledwindow == wbapplet->rootwindow) {
+               // There are no maximized windows (or any windows at all) left
+               for (i=0; i<WB_BUTTONS; i++)
+                       wbapplet->button[i]->state &= ~WB_BUTTON_STATE_FOCUSED;
+
+               // Hide/unhide all buttons according to hide_on_unmaximized and button_hidden
+               for (i=0; i<WB_BUTTONS; i++) {
+                       if (wbapplet->prefs->hide_on_unmaximized || wbapplet->prefs->button_hidden[i]) {
+                               // hide if we want them hidden or it is hidden anyway
+                               wbapplet->button[i]->state |= WB_BUTTON_STATE_HIDDEN;
+                       } else {
+                               if (!wbapplet->prefs->button_hidden[i]) {
+                                       // unhide only if it is not explicitly hidden
+                                       wbapplet->button[i]->state &= ~WB_BUTTON_STATE_HIDDEN;
+                               }
+                       }
+               }
+       } else {
+               for (i=0; i<WB_BUTTONS; i++) { // update states
+                       if (wbapplet->prefs->button_hidden[i]) {
+                               wbapplet->button[i]->state |= WB_BUTTON_STATE_HIDDEN;
+                       } else {
+                               wbapplet->button[i]->state &= ~WB_BUTTON_STATE_HIDDEN;
+                       }
+               }
+       }
+
+       toggleHidden(wbapplet);
+       
+       //update minimize button:
+       gtk_image_set_from_pixbuf (wbapplet->button[WB_BUTTON_MINIMIZE]->image, 
wbapplet->pixbufs[getImageState(wbapplet->button[WB_BUTTON_MINIMIZE]->state)][WB_IMAGE_MINIMIZE]);
+       // update maximize/unmaximize button:
+       if (controlledwindow && wnck_window_is_maximized(controlledwindow)) {
+               gtk_image_set_from_pixbuf (wbapplet->button[WB_BUTTON_UMAXIMIZE]->image, 
wbapplet->pixbufs[getImageState(wbapplet->button[WB_BUTTON_UMAXIMIZE]->state)][WB_IMAGE_UNMAXIMIZE]);
+               if (wbapplet->prefs->show_tooltips)
+                       gtk_widget_set_tooltip_text 
(GTK_WIDGET(wbapplet->button[WB_BUTTON_UMAXIMIZE]->image), N_("Unmaximize")); // Set correct tooltip
+       } else {
+               gtk_image_set_from_pixbuf (wbapplet->button[WB_BUTTON_UMAXIMIZE]->image, 
wbapplet->pixbufs[getImageState(wbapplet->button[WB_BUTTON_UMAXIMIZE]->state)][WB_IMAGE_MAXIMIZE]);
+               if (wbapplet->prefs->show_tooltips)
+                       gtk_widget_set_tooltip_text 
(GTK_WIDGET(wbapplet->button[WB_BUTTON_UMAXIMIZE]->image), N_("Maximize")); // Set correct tooltip
+       }
+       //update close button
+       gtk_image_set_from_pixbuf (wbapplet->button[WB_BUTTON_CLOSE]->image, 
wbapplet->pixbufs[getImageState(wbapplet->button[WB_BUTTON_CLOSE]->state)][WB_IMAGE_CLOSE]);
+
+       //set remaining tooltips
+       if (wbapplet->prefs->show_tooltips) {
+               gtk_widget_set_tooltip_text (GTK_WIDGET(wbapplet->button[WB_BUTTON_MINIMIZE]->image), 
N_("Minimize"));
+               gtk_widget_set_tooltip_text (GTK_WIDGET(wbapplet->button[WB_BUTTON_CLOSE]->image), 
N_("Close"));
+       }
+}
+
+/* Triggers when a new window has been opened */
+// in case a new maximized non-active window appears
+static void window_opened (WnckScreen *screen,
+                           WnckWindow *window,
+                           WBApplet *wbapplet) {
+
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+
+       //updateImages(wbapplet); // not required(?)
+}
+
+/* Triggers when a window has been closed */
+// in case the last maximized window was closed
+static void window_closed (WnckScreen *screen,
+                           WnckWindow *window,
+                           WBApplet *wbapplet) {
+
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+
+       updateImages(wbapplet); //required to hide buttons when last window is closed
+}
+
+/* Triggers when a new active window is selected */
+static void active_window_changed (WnckScreen *screen,
+                                   WnckWindow *previous,
+                                   WBApplet *wbapplet) {
+       gint i;
+       
+       // Start tracking the new active window:
+       if (wbapplet->activewindow)
+               if (g_signal_handler_is_connected(G_OBJECT(wbapplet->activewindow), wbapplet->active_handler))
+                       g_signal_handler_disconnect(G_OBJECT(wbapplet->activewindow), 
wbapplet->active_handler);
+       wbapplet->activewindow = wnck_screen_get_active_window(screen);
+       wbapplet->umaxedwindow = getUpperMaximized (wbapplet); // returns wbapplet->activewindow if not 
only_maximized
+       wbapplet->rootwindow = getRootWindow(wbapplet->activescreen);
+
+       // if we got NULL it would start flickering (but we shouldn't get NULL anymore)
+       if (wbapplet->activewindow) {
+               wbapplet->active_handler = g_signal_connect(G_OBJECT (wbapplet->activewindow), 
"state-changed", G_CALLBACK (active_window_state_changed), wbapplet);
+
+               if (wbapplet->activewindow == wbapplet->umaxedwindow) {
+                       // maximized window is on top
+                       for (i=0; i<WB_BUTTONS; i++) {
+                               wbapplet->button[i]->state |= WB_BUTTON_STATE_FOCUSED;
+                       }
+               } else {
+                       if (wbapplet->prefs->only_maximized) {
+                               for (i=0; i<WB_BUTTONS; i++) {
+                                       wbapplet->button[i]->state &= ~WB_BUTTON_STATE_FOCUSED;
+                               }
+                       }
+               }
+
+               updateImages(wbapplet);
+       }
+}
+
+/* Trigger when activewindow's state changes */
+static void active_window_state_changed (WnckWindow *window,
+                                         WnckWindowState changed_mask,
+                                         WnckWindowState new_state,
+                                         WBApplet *wbapplet) {
+       gint i;
+       
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+       wbapplet->rootwindow = getRootWindow(wbapplet->activescreen);
+
+       if ( new_state & (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY | WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY) 
) {
+               for (i=0; i<WB_BUTTONS; i++) {
+                       wbapplet->button[i]->state |= WB_BUTTON_STATE_FOCUSED;
+               }
+       } else {
+               if (wbapplet->prefs->only_maximized) {
+                       for (i=0; i<WB_BUTTONS; i++) {
+                               wbapplet->button[i]->state &= ~WB_BUTTON_STATE_FOCUSED;
+                       }
+               }
+       }
+       
+       updateImages(wbapplet);
+}
+
+/* Triggers when umaxedwindow's state changes */
+static void umaxed_window_state_changed (WnckWindow *window,
+                                          WnckWindowState changed_mask,
+                                          WnckWindowState new_state,
+                                          WBApplet *wbapplet) {
+
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+       wbapplet->rootwindow = getRootWindow(wbapplet->activescreen);
+       
+       updateImages(wbapplet); // need to hide buttons after click if desktop is below
+}
+
+/* Triggers when user changes viewports on Compiz */
+// We ONLY need this for Compiz (Metacity doesn't use viewports)
+static void viewports_changed (WnckScreen *screen,
+                               WBApplet *wbapplet)
+{
+       wbapplet->activeworkspace = wnck_screen_get_active_workspace(screen);
+       wbapplet->activewindow = wnck_screen_get_active_window(screen);
+       wbapplet->rootwindow = getRootWindow(wbapplet->activescreen);
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+
+       // active_window_changed should do this too, because this one will be too sooner
+       updateImages(wbapplet);
+}
+
+/* Triggers when user changes workspace on Metacity (?) */
+static void active_workspace_changed (WnckScreen *screen,
+                                      WnckWorkspace *previous,
+                                      WBApplet *wbapplet) {
+
+       wbapplet->activeworkspace = wnck_screen_get_active_workspace(screen);
+       /* // apparently active_window_changed handles this (?)
+       wbapplet->activewindow = wnck_screen_get_active_window(screen);
+       wbapplet->rootwindow = getRootWindow(wbapplet->activescreen);
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+       */
+
+       //updateImages(wbapplet);
+}
+
+/* Called when we release the click on a button */
+static gboolean button_release (GtkWidget *event_box, GdkEventButton *event, WBApplet *wbapplet) {
+       
+       WnckWindow *controlledwindow;
+       const GdkPixbuf *imgpb;
+       gint i, imgw, imgh;
+                                                                  
+       if (event->button != 1) return FALSE;
+
+       // Find our button:
+       for (i=0; i<WB_BUTTONS; i++) {
+               if (GTK_EVENT_BOX(event_box) == wbapplet->button[i]->eventbox) {
+                       break;
+               }
+       }
+
+       if (wbapplet->prefs->click_effect) {
+               wbapplet->button[i]->state &= ~WB_BUTTON_STATE_CLICKED;
+       }
+
+       imgpb = gtk_image_get_pixbuf(wbapplet->button[i]->image);
+       imgw = gdk_pixbuf_get_width(imgpb);
+       imgh = gdk_pixbuf_get_height(imgpb);
+
+       if (!(event->x<0 || event->y<0 || event->x>imgw || event->y>imgh)) {
+               if (wbapplet->prefs->only_maximized) {
+                       controlledwindow = wbapplet->umaxedwindow;
+               } else {
+                       controlledwindow = wbapplet->activewindow;
+               }
+               
+               switch (i) {
+                       case WB_BUTTON_MINIMIZE:
+                               wnck_window_minimize(controlledwindow);
+                               break;
+                       case WB_BUTTON_UMAXIMIZE:
+                               if (wnck_window_is_maximized(controlledwindow)) {
+                                       wnck_window_unmaximize(controlledwindow);
+                                       wnck_window_activate(controlledwindow, gtk_get_current_event_time()); 
// make unmaximized window active
+                               } else {
+                                       wnck_window_maximize(controlledwindow);
+                               }
+                               break;
+                       case WB_BUTTON_CLOSE:
+                               wnck_window_close(controlledwindow, GDK_CURRENT_TIME);
+                               break;
+               }
+       }
+
+       updateImages(wbapplet);
+       
+       return TRUE;
+}
+
+/* Called when we click on a button */
+static gboolean button_press (GtkWidget *event_box,
+                             GdkEventButton *event,
+                             WBApplet *wbapplet) {
+       gint i;
+                                                                
+       if (event->button != 1) return FALSE;
+
+       // Find our button:
+       if (wbapplet->prefs->click_effect) {
+               for (i=0; i<WB_BUTTONS; i++) {
+                       if (GTK_EVENT_BOX(event_box) == wbapplet->button[i]->eventbox) {
+                               wbapplet->button[i]->state |= WB_BUTTON_STATE_CLICKED;
+                               break;
+                       }
+               }
+       
+               updateImages(wbapplet);
+       }
+
+       return TRUE;
+}
+
+/* Makes the button 'glow' when the mouse enters it */
+static gboolean hover_enter (GtkWidget *widget,
+                         GdkEventCrossing *event,
+                         WBApplet *wbapplet) {
+       gint i;
+
+       // Find our button:
+       if (wbapplet->prefs->hover_effect) {
+               for (i=0; i<WB_BUTTONS; i++) {  
+                       if (GTK_EVENT_BOX(widget) == wbapplet->button[i]->eventbox) {
+                               wbapplet->button[i]->state |= WB_BUTTON_STATE_HOVERED;
+                               break;
+                       }
+               }
+                
+               updateImages(wbapplet);
+       }
+                                                        
+       return TRUE;
+}
+
+/* Makes the button stop 'glowing' when the mouse leaves it */
+static gboolean hover_leave (GtkWidget *widget,
+                         GdkEventCrossing *event,
+                         WBApplet *wbapplet) {
+       gint i;
+
+       // Find our button:
+       if (wbapplet->prefs->hover_effect) {
+               for (i=0; i<WB_BUTTONS; i++) {
+                       if (GTK_EVENT_BOX(widget) == wbapplet->button[i]->eventbox) {   
+                               wbapplet->button[i]->state &= ~WB_BUTTON_STATE_HOVERED;
+                               break;
+                       }
+               }
+               
+               updateImages(wbapplet);
+       }
+
+       return TRUE;
+}
+
+WindowButton **createButtons (WBApplet *wbapplet) {
+       WindowButton **button = g_new(WindowButton*, WB_BUTTONS);
+       gint i;
+
+       for (i=0; i<WB_BUTTONS; i++) {  
+               button[i] = g_new0(WindowButton, 1);
+               button[i]->eventbox = GTK_EVENT_BOX(gtk_event_box_new());
+               button[i]->image = GTK_IMAGE(gtk_image_new());
+       
+               // Woohooo! This line eliminates PanelApplet borders - no more workarounds!
+               gtk_widget_set_can_focus(GTK_WIDGET(button[i]->eventbox), TRUE);
+
+               // Toggle tooltips (this is pointless because it is overridden by 
gtk_widget_set_tooltip_text())
+               //gtk_widget_set_has_tooltip (GTK_WIDGET(button[i]->image), wbapplet->prefs->show_tooltips);
+               
+               button[i]->state = 0;
+               button[i]->state |= WB_BUTTON_STATE_FOCUSED;
+               if (wbapplet->prefs->button_hidden[i]) {
+                       button[i]->state |= WB_BUTTON_STATE_HIDDEN;
+               } else {
+                       button[i]->state &= ~WB_BUTTON_STATE_HIDDEN;
+               }
+       
+               gtk_container_add (GTK_CONTAINER (button[i]->eventbox), GTK_WIDGET(button[i]->image));
+               gtk_event_box_set_visible_window (button[i]->eventbox, FALSE);
+       
+               // Add hover events to eventboxes:
+               gtk_widget_add_events (GTK_WIDGET (button[i]->eventbox), GDK_ENTER_NOTIFY_MASK); //add the 
"enter" signal
+               gtk_widget_add_events (GTK_WIDGET (button[i]->eventbox), GDK_LEAVE_NOTIFY_MASK); //add the 
"leave" signal
+
+               // Connect buttons to their respective callback functions
+               g_signal_connect (G_OBJECT (button[i]->eventbox), "button-release-event", G_CALLBACK 
(button_release), wbapplet);
+               g_signal_connect (G_OBJECT (button[i]->eventbox), "button-press-event", G_CALLBACK 
(button_press), wbapplet);
+               g_signal_connect (G_OBJECT (button[i]->eventbox), "enter-notify-event", G_CALLBACK 
(hover_enter), wbapplet);
+               g_signal_connect (G_OBJECT (button[i]->eventbox), "leave-notify-event", G_CALLBACK 
(hover_leave), wbapplet);    
+       }
+
+       return button;
+}
+
+// Places our buttons in correct order
+void placeButtons(WBApplet *wbapplet) {
+       gint i, j;
+
+       // Determine angle for pixmaps, box orientation and packing direction
+       // TODO: It's a bit messy, there's got to be a way to simplify this cluster!
+       if (wbapplet->prefs->orientation == 1) {
+               // Horizontal position: The pixmaps need to be rotated to 0° in every case
+               wbapplet->angle = GDK_PIXBUF_ROTATE_NONE; //0;
+               wbapplet->packtype = GTK_PACK_START;            
+               gtk_orientable_set_orientation(GTK_ORIENTABLE(wbapplet->box), GTK_ORIENTATION_HORIZONTAL);
+       } else if (wbapplet->prefs->orientation == 2) {
+               // Vertical position: The pixmaps need to be rotated to: Left/Down=270°, Right/Up=90°
+               if (wbapplet->orient == PANEL_APPLET_ORIENT_LEFT || wbapplet->orient == 
PANEL_APPLET_ORIENT_DOWN) {
+                       wbapplet->angle = GDK_PIXBUF_ROTATE_CLOCKWISE; // = 270°
+                       wbapplet->packtype = GTK_PACK_START;
+               } else {
+                       wbapplet->angle = GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE; // = 90°
+                       wbapplet->packtype = GTK_PACK_END;
+               }
+               gtk_orientable_set_orientation(GTK_ORIENTABLE(wbapplet->box), GTK_ORIENTATION_VERTICAL);
+       } else {
+               // Automatic position (default setting)
+               if (wbapplet->orient == PANEL_APPLET_ORIENT_RIGHT) {
+                       wbapplet->angle = GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE;
+                       wbapplet->packtype = GTK_PACK_END;
+                       gtk_orientable_set_orientation(GTK_ORIENTABLE(wbapplet->box), 
GTK_ORIENTATION_VERTICAL);
+               } else if (wbapplet->orient == PANEL_APPLET_ORIENT_LEFT) {
+                       wbapplet->angle = GDK_PIXBUF_ROTATE_CLOCKWISE;
+                       wbapplet->packtype = GTK_PACK_START;
+                       gtk_orientable_set_orientation(GTK_ORIENTABLE(wbapplet->box), 
GTK_ORIENTATION_VERTICAL);
+               } else {
+                       wbapplet->angle = GDK_PIXBUF_ROTATE_NONE;
+                       wbapplet->packtype = GTK_PACK_START;
+                       gtk_orientable_set_orientation(GTK_ORIENTABLE(wbapplet->box), 
GTK_ORIENTATION_HORIZONTAL);
+               }
+       }
+
+       if (wbapplet->prefs->reverse_order) {
+               wbapplet->packtype = (wbapplet->packtype==GTK_PACK_START)?GTK_PACK_END:GTK_PACK_START;
+       }
+       
+       // Add eventboxes to box in preferred order     
+       for (i=0; i<WB_BUTTONS; i++) {
+               for (j=0; j<WB_BUTTONS; j++) {
+                       if (wbapplet->prefs->eventboxposition[j] == i) {
+                               if (wbapplet->packtype == GTK_PACK_START) {
+                                       gtk_box_pack_start(wbapplet->box, 
GTK_WIDGET(wbapplet->button[j]->eventbox), TRUE, TRUE, 0);
+                               } else if (wbapplet->packtype == GTK_PACK_END) {
+                                       gtk_box_pack_end(wbapplet->box, 
GTK_WIDGET(wbapplet->button[j]->eventbox), TRUE, TRUE, 0);
+                               }
+                               break;
+                       }
+               }
+       }
+
+       // Rotate pixmaps
+       for (i=0; i<WB_IMAGE_STATES; i++) {
+               for (j=0; j<WB_IMAGES; j++) {
+                       wbapplet->pixbufs[i][j] = gdk_pixbuf_rotate_simple(wbapplet->pixbufs[i][j], 
wbapplet->angle);
+               }
+       }
+}
+
+void reloadButtons(WBApplet *wbapplet) {
+       gint i;
+
+       // Remove eventbuttons from box:
+       for (i=0; i<WB_BUTTONS; i++) {
+               g_object_ref(wbapplet->button[i]->eventbox);
+               gtk_container_remove(GTK_CONTAINER(wbapplet->box), GTK_WIDGET(wbapplet->button[i]->eventbox));
+       }
+
+       placeButtons(wbapplet);
+
+       for (i=0; i<WB_BUTTONS; i++) {
+               g_object_unref(wbapplet->button[i]->eventbox);
+       }
+}
+
+/* Triggered when a different panel orientation is detected */
+void applet_change_orient (PanelApplet *panelapplet, PanelAppletOrient orient, WBApplet *wbapplet) {
+       if (orient != wbapplet->orient) {
+               wbapplet->orient = orient;
+               wbapplet->pixbufs = getPixbufs(wbapplet->prefs->images);        
+               reloadButtons(wbapplet);
+               updateImages(wbapplet);
+       }
+}
+
+/* Do the actual applet initialization */
+static void init_wbapplet(PanelApplet *applet) {
+       WBApplet *wbapplet = g_new0 (WBApplet, 1);
+
+       wbapplet->applet = applet;
+       wbapplet->prefs = loadPreferences(wbapplet);
+       wbapplet->activescreen = wnck_screen_get_default();
+       wnck_screen_force_update(wbapplet->activescreen);
+       wbapplet->activeworkspace = wnck_screen_get_active_workspace(wbapplet->activescreen);
+       wbapplet->activewindow = wnck_screen_get_active_window(wbapplet->activescreen);
+       wbapplet->umaxedwindow = getUpperMaximized(wbapplet);
+       wbapplet->rootwindow = getRootWindow(wbapplet->activescreen);
+       wbapplet->prefbuilder = gtk_builder_new();
+       wbapplet->box = GTK_BOX(gtk_hbox_new(FALSE, 0));
+       wbapplet->button = createButtons(wbapplet);
+       wbapplet->orient = panel_applet_get_orient(wbapplet->applet);
+       wbapplet->pixbufs = getPixbufs(wbapplet->prefs->images);
+       
+       // Rotate & place buttons
+       placeButtons(wbapplet); 
+       
+       // Add box to applet
+       gtk_container_add (GTK_CONTAINER(wbapplet->applet), GTK_WIDGET(wbapplet->box));
+
+       // Global window tracking
+       g_signal_connect(wbapplet->activescreen, "active-window-changed", G_CALLBACK (active_window_changed), 
wbapplet);
+       g_signal_connect(wbapplet->activescreen, "viewports-changed", G_CALLBACK (viewports_changed), 
wbapplet);
+       g_signal_connect(wbapplet->activescreen, "active-workspace-changed", G_CALLBACK 
(active_workspace_changed), wbapplet);
+       g_signal_connect(wbapplet->activescreen, "window-closed", G_CALLBACK (window_closed), wbapplet);
+       g_signal_connect(wbapplet->activescreen, "window-opened", G_CALLBACK (window_opened), wbapplet);
+
+//     g_signal_connect(G_OBJECT (wbapplet->applet), "change-background", G_CALLBACK 
(applet_change_background), wbapplet);
+       g_signal_connect(G_OBJECT (wbapplet->applet), "change-orient", G_CALLBACK (applet_change_orient), 
wbapplet);
+
+       // ???: Is this still necessary?
+       wbapplet->active_handler = 
+               g_signal_connect(G_OBJECT (wbapplet->activewindow), "state-changed", G_CALLBACK 
(active_window_state_changed), wbapplet);
+
+       // Setup applet right-click menu
+       GtkActionGroup *action_group = gtk_action_group_new ("WindowButtons Applet Actions");
+       gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+       gtk_action_group_add_actions (action_group, windowbuttons_menu_actions, G_N_ELEMENTS 
(windowbuttons_menu_actions), wbapplet);
+       panel_applet_setup_menu (applet, windowbuttons_menu_items, action_group);
+       panel_applet_set_background_widget (wbapplet->applet, GTK_WIDGET (wbapplet->applet)); // Automatic 
background update
+       
+       toggleHidden (wbapplet);        // Properly hide or show stuff
+       updateImages (wbapplet);
+}
+
+/* We need this because things have to be hidden after we 'show' the applet */
+void toggleHidden (WBApplet *wbapplet) {
+       gint j;
+       for (j=0; j<WB_BUTTONS; j++) {
+               if (wbapplet->button[j]->state & WB_BUTTON_STATE_HIDDEN) {
+                       gtk_widget_hide(GTK_WIDGET(wbapplet->button[j]->eventbox));
+               } else {
+                       gtk_widget_show(GTK_WIDGET(wbapplet->button[j]->eventbox));
+               }
+       }
+
+       if (!gtk_widget_get_visible(GTK_WIDGET(wbapplet->box)))
+               gtk_widget_show_all(GTK_WIDGET(wbapplet->box));
+       if (!gtk_widget_get_visible(GTK_WIDGET(wbapplet->applet)))
+               gtk_widget_show_all(GTK_WIDGET(wbapplet->applet));
+}
+
+// Initial function that creates the applet
+static gboolean windowbuttons_applet_factory (PanelApplet *applet, const gchar *iid, gpointer data) {
+       if (g_strcmp0(iid, APPLET_OAFIID) != 0) return FALSE;
+
+       g_set_application_name (APPLET_NAME);
+       panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
+       panel_applet_add_preferences (applet, GCONF_PREFS, NULL);
+       
+       init_wbapplet(applet);
+
+       return TRUE;
+}
+
+PANEL_APPLET_OUT_PROCESS_FACTORY (APPLET_OAFIID_FACTORY,
+                                  PANEL_TYPE_APPLET,
+                                  (PanelAppletFactoryCallback) windowbuttons_applet_factory,
+                                  NULL)
\ No newline at end of file
diff --git a/window-buttons/windowbuttons.h b/window-buttons/windowbuttons.h
new file mode 100644
index 0000000..77d8e08
--- /dev/null
+++ b/window-buttons/windowbuttons.h
@@ -0,0 +1,225 @@
+/***************************************************************************
+ *            windowbuttons.h
+ *
+ *  Mon May  4 01:21:56 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#define PLAINTEXT_CONFIG                               0
+
+#ifndef __WB_APPLET_H__
+#define __WB_APPLET_H__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+#include <panel-applet.h>
+#include <panel-applet-gconf.h>
+#include <gtk/gtk.h>
+
+#if PLAINTEXT_CONFIG == 1
+#include <glib/gstdio.h>
+#endif
+
+#ifndef WNCK_I_KNOW_THIS_IS_UNSTABLE
+#define WNCK_I_KNOW_THIS_IS_UNSTABLE
+#endif
+#include <libwnck/libwnck.h>
+
+/* static paths and stuff */
+#define APPLET_NAME                                            "Window Buttons"
+#define APPLET_OAFIID                                  "WindowButtonsApplet"
+#define APPLET_OAFIID_FACTORY                  "WindowButtonsAppletFactory"
+#define PATH_BUILDER                                   "/usr/share/gnome-applets/builder"
+#define PATH_MAIN                                              "/usr/share"
+#define PATH_THEMES                                    PATH_MAIN"/pixmaps/windowbuttons/themes"
+#define PATH_UI_PREFS                                  PATH_MAIN"/windowbuttons/windowbuttons.ui"
+#define PATH_LOGO                                              PATH_MAIN"/pixmaps/windowbuttons-applet.png"
+#define METACITY_XML                                   "metacity-theme-1.xml"
+#define THEME_EXTENSION                                        "png"
+#define GCONF_PREFS                                    "/schemas/apps/windowbuttons-applet/prefs"
+#define FILE_CONFIGFILE                                        ".windowbuttons"
+
+/* strings that identify button states and names */
+#define BTN_STATE_FOCUSED                              "focused"
+#define BTN_STATE_UNFOCUSED                            "unfocused"
+#define BTN_STATE_NORMAL                               "normal"
+#define BTN_STATE_CLICKED                              "clicked"
+#define BTN_STATE_HOVERED                              "hover" //TODO: change to hovered
+
+#define BTN_NAME_CLOSE                                 "close"
+#define BTN_NAME_MINIMIZE                              "minimize"
+#define BTN_NAME_MAXIMIZE                              "maximize"
+#define BTN_NAME_UNMAXIMIZE                            "unmaximize"
+
+/* Key strings (used by GConf, Plaintext and GtkBuilder .ui file) */
+#define CFG_ONLY_MAXIMIZED                     "only_maximized"
+#define CFG_HIDE_ON_UNMAXIMIZED        "hide_on_unmaximized"
+#define CFG_HIDE_DECORATION                    "hide_decoration"
+#define CFG_CLICK_EFFECT                       "click_effect"
+#define CFG_HOVER_EFFECT                       "hover_effect"
+#define CFG_USE_METACITY_LAYOUT                "use_metacity_layout"
+#define CFG_MINIMIZE_HIDDEN                    "button_minimize_hidden"
+#define CFG_UNMAXIMIZE_HIDDEN          "button_maximize_hidden"
+#define CFG_CLOSE_HIDDEN                       "button_close_hidden"
+#define CFG_BUTTON_LAYOUT                      "button_layout"
+#define CFG_REVERSE_ORDER                      "reverse_order"
+#define CFG_ORIENTATION                                "orientation"
+#define CFG_THEME                                      "theme"
+#define CFG_SHOW_TOOLTIPS                      "show_tooltips"
+
+G_BEGIN_DECLS
+
+#define WB_TYPE_APPLET                wb_applet_get_type()
+#define WB_APPLET(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), WB_TYPE_APPLET, WBApplet))
+#define WB_APPLET_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), WB_TYPE_APPLET, WBAppletClass))
+#define WB_IS_APPLET(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WB_TYPE_APPLET))
+#define WB_IS_APPLET_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), WB_TYPE_APPLET))
+#define WB_APPLET_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), WB_TYPE_APPLET, WBAppletClass))
+
+/* we will index images for convenience */
+typedef enum {
+       WB_IMAGE_MINIMIZE = 0,
+       WB_IMAGE_UNMAXIMIZE,
+       WB_IMAGE_MAXIMIZE,
+       WB_IMAGE_CLOSE,
+
+       WB_IMAGES
+} WBImageIndices;
+
+/* we will also index image states for convenience */
+typedef enum {
+       WB_IMAGE_FOCUSED_NORMAL = 0,
+       WB_IMAGE_FOCUSED_CLICKED,
+       WB_IMAGE_FOCUSED_HOVERED,
+       WB_IMAGE_UNFOCUSED_NORMAL,
+       WB_IMAGE_UNFOCUSED_CLICKED,
+       WB_IMAGE_UNFOCUSED_HOVERED,
+
+       WB_IMAGE_STATES
+} WBImageStates;
+
+/* indexing of buttons */
+typedef enum {
+       WB_BUTTON_MINIMIZE = 0, // minimize button
+       WB_BUTTON_UMAXIMIZE,    // maximize/unmaximize button
+       WB_BUTTON_CLOSE,                // close button
+       
+       WB_BUTTONS                              // number of buttons
+} WindowButtonIndices;
+
+/* Button state masks */
+typedef enum {
+       WB_BUTTON_STATE_FOCUSED = 1 << 0, // [0001]
+       WB_BUTTON_STATE_CLICKED = 1 << 1, // [0010]
+       WB_BUTTON_STATE_HOVERED = 1 << 2, // [0100]
+       WB_BUTTON_STATE_HIDDEN  = 1 << 3  // [1000]
+} WBButtonState;
+
+/* Definition for our button */
+typedef struct {
+       GtkEventBox     *eventbox;
+       GtkImage                *image;
+       WBButtonState   state;
+} WindowButton;
+
+/* Applet properties (things that get saved) */
+typedef struct {
+       gchar           *theme;                                 // Selected theme name [NULL = "Custom"]
+       gchar           ***images;                              // Absolute paths to images
+       gshort          *eventboxposition;              // Position of eventboxes (left=0 to 
right=WB_BUTTONS-1)
+                                                                               // The index represents the 
button [0=minimize,unmaximize,close]
+                                                                               // Index of -1 means the 
button will not be put into box
+       gshort          orientation;                    // Orientation type (0=automatic, 1=horizontal, 
2=vertical)
+       gchar           *button_layout;                 // Button layout string
+       gboolean        *button_hidden;                 // Indicates whether a button is hidden
+       gboolean        only_maximized,
+                               hide_on_unmaximized,
+                               use_metacity_layout,
+                               reverse_order,
+                               click_effect,
+                               hover_effect,
+                               show_tooltips;
+} WBPreferences;
+
+/* WBApplet definition (inherits from PanelApplet) */
+typedef struct {
+    PanelApplet                *applet;                        // The actual PanelApplet
+       
+       /* Widgets */
+       GtkBox          *box;                           // Main container
+       GtkWidget               *window_prefs;          // Preferences window
+       
+       /* Variables */
+       WBPreferences   *prefs;                         // Main preferences
+       WindowButton    **button;                       // Array of buttons
+       WnckScreen              *activescreen;          // Active screen
+       WnckWorkspace   *activeworkspace;       // Active workspace
+       WnckWindow              *umaxedwindow,          // Upper-most maximized window
+                                       *activewindow,          // Active window
+                                       *rootwindow;            // Root window (desktop)
+       gulong                  active_handler,         // activewindow's event handler ID
+                                       umaxed_handler;         // umaxedwindow's event handler ID
+       
+       PanelAppletOrient orient;                       // Panel orientation
+       GdkPixbufRotation angle;                        // Applet angle
+       GtkPackType             packtype;                       // Packaging direction of buttons
+       
+       GdkPixbuf               ***pixbufs;                     // Images in memory
+       
+       /* GtkBuilder */
+       GtkBuilder              *prefbuilder;
+} WBApplet;
+
+typedef struct {
+        PanelAppletClass applet_class;
+} WBAppletClass;
+
+GType wb_applet_get_type (void);
+WBApplet* wb_applet_new (void);
+
+G_END_DECLS
+#endif
+
+/*
+Applet structure:
+
+              Panel
+                |
+                | 
+              Applet
+                |
+                |
+     _________ Box _________
+    |           |           |
+    |           |           | 
+EventBox[0] EventBox[1] EventBox[2]
+    |           |           |
+    |           |           | 
+  Image[0]   Image[1]    Image[2]
+
+* note that EventBox/Image pairs (buttons) may be positioned in a different order
+
+*/
diff --git a/window-buttons/windowbuttons.schemas.in b/window-buttons/windowbuttons.schemas.in
new file mode 100644
index 0000000..11a665e
--- /dev/null
+++ b/window-buttons/windowbuttons.schemas.in
@@ -0,0 +1,385 @@
+<gconfschemafile>
+    <schemalist>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_normal_close</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/close-focused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_normal_minimize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/minimize-focused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_normal_maximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/maximize-focused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_normal_unmaximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/unmaximize-focused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_clicked_close</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/close-focused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_clicked_minimize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/minimize-focused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_clicked_maximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/maximize-focused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_clicked_unmaximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/unmaximize-focused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_hover_close</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/close-focused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_hover_minimize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/minimize-focused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_hover_maximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/maximize-focused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_focused_hover_unmaximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/unmaximize-focused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_normal_close</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/close-unfocused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_normal_minimize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/minimize-unfocused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_normal_maximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/maximize-unfocused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_normal_unmaximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/unmaximize-unfocused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_clicked_close</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/close-unfocused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_clicked_minimize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/minimize-unfocused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_clicked_maximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/maximize-unfocused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_clicked_unmaximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            
<default>@DATADIR@/pixmaps/windowbuttons/themes/default/unmaximize-unfocused-clicked.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_hover_close</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/close-unfocused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_hover_minimize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/minimize-unfocused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_hover_maximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/maximize-unfocused-normal.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/btn_unfocused_hover_unmaximize</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>@DATADIR@/pixmaps/windowbuttons/themes/default/unmaximize-unfocused-hover.png</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+ 
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/use_metacity_layout</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Determines whether we use custom or Metacity's button layout</short>
+                <long>When disabled, this applet's button_layout string will be used to order the 
buttons.</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/button_layout</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>minimize,maximize,close</default>
+            <locale name="C">
+                <short>Layout of buttons.</short>
+                <long>Essentially a copy from Metacity's button_layout, but we can modify it for custom 
settings.</long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/theme</key>
+            <owner>windowbuttons</owner>
+            <type>string</type>
+            <default>default</default>
+            <locale name="C">
+                <short>Button theme</short>
+                <long>Name of a folder located in windowapplets/themes/ or "custom".</long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/orientation</key>
+            <owner>windowbuttons</owner>
+            <type>int</type>
+            <default>0</default>
+            <locale name="C">
+                <short>Button orientation</short>
+                <long>May be used to set a static button orientation. Setting this value to 1 will ensure 
the buttons are always displayed horizontally. Setting it to 2 will do the same but vertically. The default 
setting 0 will set it automatically according to the panel.</long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/button_minimize_hidden</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/button_maximize_hidden</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/button_close_hidden</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short></short>
+                <long></long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/hide_on_unmaximized</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Hides buttons when there are no windows present.</short>
+                <long>When enabled, the buttons will disappear when there are no maximized (or active) 
windows on the screen.</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/only_maximized</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Only control maximized windows.</short>
+                <long>When enabled, the window buttons will always control the upper-most maximized 
window.</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/reverse_order</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Reverse the buttons placement.</short>
+                <long>When enabled, the window buttons will be placed in reverse order (right to left 
instead of left to right, or bottom to top instead of top to bottom).</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/click_effect</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Enable click effect.</short>
+                <long>When enabled, the button will change image to 'clicked' whenever it is clicked.</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/hover_effect</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Enable hover effect.</short>
+                <long>When enabled, the button will change image to 'hovered' whenever the mouse passes 
it.</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowbuttons-applet/prefs/show_tooltips</key>
+            <owner>windowbuttons</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Show tooltips on buttons.</short>
+                <long>When enabled, each button will display its own tooltip, describing the function that 
it represents.</long>
+            </locale>
+        </schema>
+    </schemalist>
+</gconfschemafile>
diff --git a/window-buttons/windowbuttons.ui b/window-buttons/windowbuttons.ui
new file mode 100644
index 0000000..dd451e3
--- /dev/null
+++ b/window-buttons/windowbuttons.ui
@@ -0,0 +1,1231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <object class="GtkDialog" id="properties">
+    <property name="can_focus">False</property>
+    <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | 
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | 
GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | 
GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Window Buttons Preferences</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="icon_name">document-properties</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog_vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="btn_close">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | 
GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | 
GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | 
GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | 
GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkNotebook" id="notebook1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="GtkAlignment" id="alignment3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">10</property>
+                <property name="bottom_padding">10</property>
+                <property name="left_padding">10</property>
+                <property name="right_padding">10</property>
+                <child>
+                  <object class="GtkVBox" id="vbox7">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="GtkHBox" id="hbox3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label11">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Theme:</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="padding">9</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBox" id="theme">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkTable" id="table1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="n_rows">7</property>
+                        <property name="n_columns">5</property>
+                        <property name="column_spacing">1</property>
+                        <property name="row_spacing">1</property>
+                        <child>
+                          <object class="GtkLabel" id="label_unmaximize">
+                            <property name="width_request">60</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Unmaximize</property>
+                            <property name="angle">45</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="x_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_maximize">
+                            <property name="width_request">60</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Maximize</property>
+                            <property name="angle">45</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="x_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_close">
+                            <property name="width_request">60</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Close</property>
+                            <property name="angle">45</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="x_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_minimize">
+                            <property name="width_request">60</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Minimize</property>
+                            <property name="angle">45</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="x_options"></property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_focused">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Focused
+Normal</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_normal_minimize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_normal_unmaximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_normal_maximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_normal_close">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="top_attach">1</property>
+                            <property name="bottom_attach">2</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_clicked">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Focused
+Clicked</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_hover">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Focused
+Hover</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_clicked_minimize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_hover_minimize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_clicked_unmaximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_hover_unmaximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_clicked_maximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_hover_maximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_clicked_close">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="top_attach">2</property>
+                            <property name="bottom_attach">3</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_focused_hover_close">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="top_attach">3</property>
+                            <property name="bottom_attach">4</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label12">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Unfocused
+Normal</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_normal_minimize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_normal_unmaximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_normal_maximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_normal_close">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="top_attach">4</property>
+                            <property name="bottom_attach">5</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label10">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Unfocused
+Hover</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label9">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Unfocused
+Clicked</property>
+                            <property name="justify">center</property>
+                          </object>
+                          <packing>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_clicked_minimize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_hover_minimize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="right_attach">2</property>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_hover_unmaximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_clicked_unmaximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="right_attach">3</property>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_hover_maximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_clicked_maximize">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="right_attach">4</property>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_hover_close">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="top_attach">6</property>
+                            <property name="bottom_attach">7</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="btn_unfocused_clicked_close">
+                            <property name="width_request">40</property>
+                            <property name="height_request">40</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">4</property>
+                            <property name="right_attach">5</property>
+                            <property name="top_attach">5</property>
+                            <property name="bottom_attach">6</property>
+                            <property name="x_options">GTK_EXPAND</property>
+                            <property name="y_options">GTK_EXPAND</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Appearance</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">10</property>
+                <property name="bottom_padding">10</property>
+                <property name="left_padding">10</property>
+                <property name="right_padding">10</property>
+                <child>
+                  <object class="GtkVBox" id="vbox1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">10</property>
+                    <child>
+                      <object class="GtkFrame" id="frame2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="bottom_padding">10</property>
+                            <property name="left_padding">10</property>
+                            <property name="right_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="use_metacity_layout">
+                                    <property name="label" translatable="yes">Use Metacity's button 
order</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="tooltip_text" translatable="yes">When checked, the 
button order will be the same as on Metacity window borders.</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="hbox1">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">5</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label6">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Custom order:</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkEntry" id="button_layout">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="tooltip_text" translatable="yes">Define your custom 
order by using the words:
+minimize, maximize and close
+Separate them by commas (,).
+Do NOT use double values!</property>
+                                        <property name="invisible_char">●</property>
+                                        <property name="text" 
translatable="yes">minimize,maximize,close</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkButton" id="btn_reload_order">
+                                        <property name="label" translatable="yes">Reload</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">True</property>
+                                        <property name="tooltip_text" translatable="yes">Click to reload 
buttons.</property>
+                                        <property name="use_action_appearance">False</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">2</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="reverse_order">
+                                    <property name="label" translatable="yes">Reverse order</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Button 
Order&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment8">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="bottom_padding">10</property>
+                            <property name="left_padding">10</property>
+                            <property name="right_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox8">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkRadioButton" id="orientation_automatic">
+                                    <property name="label" translatable="yes">Automatic</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="tooltip_text" translatable="yes">Align buttons with 
panel orientation.</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkRadioButton" id="orientation_horizontal">
+                                    <property name="label" translatable="yes">Horizontal</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="tooltip_text" translatable="yes">Force buttons to always 
appear horizontal.</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">orientation_automatic</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkRadioButton" id="orientation_vertical">
+                                    <property name="label" translatable="yes">Vertical</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="tooltip_text" translatable="yes">Force buttons to always 
appear vertical.</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                    <property name="group">orientation_horizontal</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label13">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Button 
Orientation&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="bottom_padding">10</property>
+                            <property name="left_padding">10</property>
+                            <property name="right_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="cb_btn0_visible">
+                                    <property name="label" translatable="yes">Minimize Button</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="cb_btn1_visible">
+                                    <property name="label" translatable="yes">Maximize/Unmaximize 
Button</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="cb_btn2_visible">
+                                    <property name="label" translatable="yes">Close Button</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Button 
Hiding&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Positioning &amp; Visibility</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkAlignment" id="alignment2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">10</property>
+                <property name="bottom_padding">10</property>
+                <property name="left_padding">10</property>
+                <property name="right_padding">10</property>
+                <child>
+                  <object class="GtkVBox" id="vbox2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">10</property>
+                    <child>
+                      <object class="GtkFrame" id="frame3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="left_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox5">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">5</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="only_maximized">
+                                    <property name="label" translatable="yes">Control _maximized windows 
only</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="hide_on_unmaximized">
+                                    <property name="label" translatable="yes">_Hide when no active maximized 
window</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="click_effect">
+                                    <property name="label" translatable="yes">Enable _click effect</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="hover_effect">
+                                    <property name="label" translatable="yes">Enable _hover effect</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="show_tooltips">
+                                    <property name="label" translatable="yes">Show _tooltips</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">4</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label7">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Internal&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment7">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="left_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox6">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="hide_decoration">
+                                    <property name="label" translatable="yes">Hide Compiz _decorations for 
maximized windows</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label8">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">&lt;b&gt;External&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Behavior</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">btn_close</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/window-title/Makefile.am b/window-title/Makefile.am
new file mode 100644
index 0000000..8651e2c
--- /dev/null
+++ b/window-title/Makefile.am
@@ -0,0 +1,74 @@
+AM_CPPFLAGS = \
+       -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
+       -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
+       -DPACKAGE_DATA_DIR=\""$(datadir)"\" \
+       $(WINDOWTITLE_CFLAGS)
+
+AM_CFLAGS =\
+        -Wall\
+        -g
+
+libexec_PROGRAMS = windowtitle
+
+windowtitle_SOURCES = \
+       windowtitle.c \
+       windowtitle.h \
+       preferences.c \
+       preferences.h
+
+windowtitle_LDFLAGS = \
+       -Wl,--export-dynamic
+
+windowtitle_LDADD = $(WINDOWTITLE_LIBS)
+
+# The new applet files (D-Bus???)
+appletdir       = $(datadir)/gnome-panel/4.0/applets
+applet_in_files = org.gnome.panel.WindowTitleApplet.panel-applet.in
+applet_DATA     = $(applet_in_files:.panel-applet.in=.panel-applet)
+
+$(applet_in_files): $(applet_in_files).in Makefile
+       $(AM_V_GEN)sed \
+           -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
+               -e "s|\@DATADIR\@|$(datadir)|" \
+           -e "s|\@VERSION\@|$(PACKAGE_VERSION)|" \
+           $< > $@
+
+%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) 
$(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+# The new Service file (D-Bus)
+servicedir       = $(datadir)/dbus-1/services
+service_in_files = org.gnome.panel.applet.WindowTitleAppletFactory.service.in
+service_DATA     = $(service_in_files:.service.in=.service)
+
+org.gnome.panel.applet.WindowTitleAppletFactory.service: $(service_in_files)
+       $(AM_V_GEN)sed \
+           -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
+           $< > $@
+
+# Schemas for GConf
+schemasdir       = @GCONF_SCHEMA_FILE_DIR@
+schemas_in_files = windowtitle.schemas.in
+schemas_DATA     = $(schemas_in_files:.schemas.in=.schemas)
+
+@INTLTOOL_SCHEMAS_RULE@
+
+if GCONF_SCHEMAS_INSTALL
+install-data-local:
+       GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule 
$(schemas_DATA) ;
+endif
+
+# UI Builder file (Glade)
+builderdir = $(datadir)/windowtitle
+builder_DATA = windowtitle.ui
+
+CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(schemas_DATA)
+
+EXTRA_DIST = \
+       org.gnome.panel.WindowTitleApplet.panel-applet.in.in \
+       $(service_in_files) \
+       $(schemas_in_files) \
+       $(builder_DATA)
+       
+
+SUBDIRS = \
+       pixmaps
diff --git a/window-title/org.gnome.panel.WindowTitleApplet.panel-applet.in.in 
b/window-title/org.gnome.panel.WindowTitleApplet.panel-applet.in.in
new file mode 100644
index 0000000..e76e868
--- /dev/null
+++ b/window-title/org.gnome.panel.WindowTitleApplet.panel-applet.in.in
@@ -0,0 +1,15 @@
+[Applet Factory]
+Id=WindowTitleAppletFactory
+Location=@LIBEXECDIR@/windowtitle
+_Name=Window Title applet Factory
+_Description=Factory for Window Title
+
+[WindowTitleApplet]
+_Name=Window Title
+_Description=Window title for your GNOME Panel
+Icon=windowtitle-applet
+BonoboId=OAFIID:WindowTitleApplet
+X-GNOME-Bugzilla-Bugzilla=GNOME
+X-GNOME-Bugzilla-Product=gnome-window-applets
+X-GNOME-Bugzilla-Component=windowtitle
+X-GNOME-Bugzilla-Version=@VERSION@
diff --git a/window-title/org.gnome.panel.applet.WindowTitleAppletFactory.service.in 
b/window-title/org.gnome.panel.applet.WindowTitleAppletFactory.service.in
new file mode 100644
index 0000000..dc35882
--- /dev/null
+++ b/window-title/org.gnome.panel.applet.WindowTitleAppletFactory.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.panel.applet.WindowTitleAppletFactory
+Exec=@LIBEXECDIR@/windowtitle
diff --git a/window-title/pixmaps/Makefile.am b/window-title/pixmaps/Makefile.am
new file mode 100644
index 0000000..7024328
--- /dev/null
+++ b/window-title/pixmaps/Makefile.am
@@ -0,0 +1,12 @@
+
+pixmaps_DATA = \
+       windowtitle-applet.png
+
+pixmapsdir = \
+       $(datadir)/pixmaps
+
+EXTRA_DIST = \
+       $(pixmaps_DATA)
+
+## File created by the gnome-build tools
+
diff --git a/window-title/pixmaps/Makefile.in b/window-title/pixmaps/Makefile.in
new file mode 100644
index 0000000..37f0fc1
--- /dev/null
+++ b/window-title/pixmaps/Makefile.in
@@ -0,0 +1,408 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = gnome-title/pixmaps
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/as-ac-expand.m4 \
+       $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pixmapsdir)"
+DATA = $(pixmaps_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIR = @DATADIR@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GCONFTOOL = @GCONFTOOL@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOMELOCALEDIR = @GNOMELOCALEDIR@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LDFLAGS = @LDFLAGS@
+LIBEXECDIR = @LIBEXECDIR@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WINDOWBUTTONS_CFLAGS = @WINDOWBUTTONS_CFLAGS@
+WINDOWBUTTONS_LIBS = @WINDOWBUTTONS_LIBS@
+WINDOWTITLE_CFLAGS = @WINDOWTITLE_CFLAGS@
+WINDOWTITLE_LIBS = @WINDOWTITLE_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+pixmaps_DATA = \
+       windowtitle-applet.png
+
+pixmapsdir = \
+       $(datadir)/pixmaps
+
+EXTRA_DIST = \
+       $(pixmaps_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gnome-title/pixmaps/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu gnome-title/pixmaps/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pixmapsDATA: $(pixmaps_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)"
+       @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \
+       done
+
+uninstall-pixmapsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pixmapsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pixmapsdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(pixmapsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pixmapsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pixmapsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+       distclean-generic distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-pixmapsDATA install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+       uninstall-am uninstall-pixmapsDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/window-title/pixmaps/windowtitle-applet.png b/window-title/pixmaps/windowtitle-applet.png
new file mode 100644
index 0000000..789fc4f
Binary files /dev/null and b/window-title/pixmaps/windowtitle-applet.png differ
diff --git a/window-title/preferences.c b/window-title/preferences.c
new file mode 100644
index 0000000..cacbf03
--- /dev/null
+++ b/window-title/preferences.c
@@ -0,0 +1,343 @@
+/***************************************************************************
+ *            preferences.c
+ *
+ *  Mon May  4 01:23:08 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#include "preferences.h"
+
+/* prototypes */
+void cb_only_maximized (GtkButton *, WTApplet *);
+void cb_click_effect (GtkButton *, WTApplet *);
+void cb_hide_on_unmaximized (GtkButton *, WTApplet *);
+const gchar *getCheckBoxGConfKey (gushort);
+void updateTitle(WTApplet *);
+void reloadWidgets(WTApplet *);
+void toggleHidden(WTApplet *);
+void toggleExpand(WTApplet *);
+void setAlignment(WTApplet *, gfloat);
+void properties_close (GtkButton *, WTApplet *);
+void savePreferences(WTPreferences *, WTApplet *);
+WTPreferences *loadPreferences(WTApplet *);
+gchar* getCfgValue(FILE *, gchar *);
+
+void savePreferences(WTPreferences *wtp, WTApplet *wtapplet) {
+#if PLAINTEXT_CONFIG == 0
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_ONLY_MAXIMIZED, wtp->only_maximized, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_HIDE_ON_UNMAXIMIZED, wtp->hide_on_unmaximized, 
NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_HIDE_ICON, wtp->hide_icon, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_HIDE_TITLE, wtp->hide_title, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_SWAP_ORDER, wtp->swap_order, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_EXPAND_APPLET, wtp->expand_applet, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_CUSTOM_STYLE, wtp->custom_style, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_SHOW_WINDOW_MENU, wtp->show_window_menu, NULL);
+       panel_applet_gconf_set_bool (wtapplet->applet, CFG_SHOW_TOOLTIPS, wtp->show_tooltips, NULL);
+       panel_applet_gconf_set_float (wtapplet->applet, CFG_ALIGNMENT, wtp->alignment, NULL);
+       panel_applet_gconf_set_int (wtapplet->applet, CFG_TITLE_SIZE, wtp->title_size, NULL);
+       panel_applet_gconf_set_string (wtapplet->applet, CFG_TITLE_ACTIVE_FONT, wtp->title_active_font, NULL);
+       panel_applet_gconf_set_string (wtapplet->applet, CFG_TITLE_ACTIVE_COLOR_FG, wtp->title_active_color, 
NULL);
+       panel_applet_gconf_set_string (wtapplet->applet, CFG_TITLE_INACTIVE_FONT, wtp->title_inactive_font, 
NULL);
+       panel_applet_gconf_set_string (wtapplet->applet, CFG_TITLE_INACTIVE_COLOR_FG, 
wtp->title_inactive_color, NULL);
+#else
+       FILE *cfg = g_fopen (g_strconcat(g_get_home_dir(),"/",FILE_CONFIGFILE, NULL), "w");
+
+       fprintf(cfg, "%s %d\n", CFG_ONLY_MAXIMIZED, wtp->only_maximized);
+       fprintf(cfg, "%s %d\n", CFG_HIDE_ON_UNMAXIMIZED, wtp->hide_on_unmaximized);
+       fprintf(cfg, "%s %d\n", CFG_HIDE_ICON, wtp->hide_icon);
+       fprintf(cfg, "%s %d\n", CFG_HIDE_TITLE, wtp->hide_title);
+       fprintf(cfg, "%s %d\n", CFG_SWAP_ORDER, wtp->swap_order);
+       fprintf(cfg, "%s %d\n", CFG_EXPAND_APPLET, wtp->expand_applet);
+       fprintf(cfg, "%s %d\n", CFG_CUSTOM_STYLE, wtp->custom_style);
+       fprintf(cfg, "%s %d\n", CFG_SHOW_WINDOW_MENU, wtp->show_window_menu);
+       fprintf(cfg, "%s %d\n", CFG_SHOW_TOOLTIPS, wtp->show_tooltips);
+       fprintf(cfg, "%s %f\n", CFG_ALIGNMENT, wtp->alignment);
+       fprintf(cfg, "%s %d\n", CFG_TITLE_SIZE, wtp->title_size);
+       fprintf(cfg, "%s %s\n", CFG_TITLE_ACTIVE_FONT, wtp->title_active_font);
+       fprintf(cfg, "%s %s\n", CFG_TITLE_ACTIVE_COLOR_FG, wtp->title_active_color);
+       fprintf(cfg, "%s %s\n", CFG_TITLE_INACTIVE_FONT, wtp->title_inactive_font);
+       fprintf(cfg, "%s %s\n", CFG_TITLE_INACTIVE_COLOR_FG, wtp->title_inactive_color);
+
+       fclose (cfg);
+#endif
+}
+
+/* Get our properties (the only properties getter that should be called) */
+WTPreferences *loadPreferences(WTApplet *wtapplet) {
+       WTPreferences *wtp = g_new0(WTPreferences, 1);
+
+#if PLAINTEXT_CONFIG == 0
+       wtp->only_maximized = panel_applet_gconf_get_bool(wtapplet->applet, CFG_ONLY_MAXIMIZED, NULL);
+       wtp->hide_on_unmaximized = panel_applet_gconf_get_bool(wtapplet->applet, CFG_HIDE_ON_UNMAXIMIZED, 
NULL);
+       wtp->hide_icon = panel_applet_gconf_get_bool(wtapplet->applet, CFG_HIDE_ICON, NULL);
+       wtp->hide_title = panel_applet_gconf_get_bool(wtapplet->applet, CFG_HIDE_TITLE, NULL);
+       wtp->alignment = panel_applet_gconf_get_float(wtapplet->applet, CFG_ALIGNMENT, NULL);
+       wtp->swap_order = panel_applet_gconf_get_bool(wtapplet->applet, CFG_SWAP_ORDER, NULL);
+       wtp->expand_applet = panel_applet_gconf_get_bool(wtapplet->applet, CFG_EXPAND_APPLET, NULL);
+       wtp->custom_style = panel_applet_gconf_get_bool(wtapplet->applet, CFG_CUSTOM_STYLE, NULL);
+       wtp->show_window_menu = panel_applet_gconf_get_bool(wtapplet->applet, CFG_SHOW_WINDOW_MENU, NULL);
+       wtp->show_tooltips = panel_applet_gconf_get_bool(wtapplet->applet, CFG_SHOW_TOOLTIPS, NULL);
+       wtp->title_size = panel_applet_gconf_get_int(wtapplet->applet, CFG_TITLE_SIZE, NULL);
+       wtp->title_active_font = panel_applet_gconf_get_string(wtapplet->applet, CFG_TITLE_ACTIVE_FONT, NULL);
+       wtp->title_active_color = panel_applet_gconf_get_string(wtapplet->applet, CFG_TITLE_ACTIVE_COLOR_FG, 
NULL);
+       wtp->title_inactive_font = panel_applet_gconf_get_string(wtapplet->applet, CFG_TITLE_INACTIVE_FONT, 
NULL);;
+       wtp->title_inactive_color = panel_applet_gconf_get_string(wtapplet->applet, 
CFG_TITLE_INACTIVE_COLOR_FG, NULL);
+#else
+       FILE *cfg = g_fopen (g_strconcat(g_get_home_dir(),"/",FILE_CONFIGFILE,NULL),"r");
+
+       if (cfg) {
+               wtp->only_maximized = g_ascii_strtod(getCfgValue(cfg,CFG_ONLY_MAXIMIZED),NULL);
+               wtp->hide_on_unmaximized = g_ascii_strtod(getCfgValue(cfg,CFG_HIDE_ON_UNMAXIMIZED),NULL);
+               wtp->hide_icon = g_ascii_strtod(getCfgValue(cfg,CFG_HIDE_ICON),NULL);
+               wtp->hide_title = g_ascii_strtod(getCfgValue(cfg,CFG_HIDE_TITLE),NULL);
+               wtp->alignment = g_ascii_strtod(getCfgValue(cfg,CFG_ALIGNMENT),NULL);
+               wtp->swap_order = g_ascii_strtod(getCfgValue(cfg,CFG_SWAP_ORDER),NULL);
+               wtp->expand_applet = g_ascii_strtod(getCfgValue(cfg,CFG_EXPAND_APPLET),NULL);
+               wtp->custom_style = g_ascii_strtod(getCfgValue(cfg,CFG_CUSTOM_STYLE),NULL);
+               wtp->show_window_menu = g_ascii_strtod(getCfgValue(cfg,CFG_SHOW_WINDOW_MENU),NULL);
+               wtp->show_tooltips = g_ascii_strtod(getCfgValue(cfg,CFG_SHOW_TOOLTIPS),NULL);
+               wtp->title_size = g_ascii_strtod(getCfgValue(cfg,CFG_TITLE_SIZE),NULL);
+               wtp->title_active_font = getCfgValue(cfg,CFG_TITLE_ACTIVE_FONT);
+               wtp->title_active_color = getCfgValue(cfg,CFG_TITLE_ACTIVE_COLOR_FG);
+               wtp->title_inactive_font = getCfgValue(cfg,CFG_TITLE_INACTIVE_FONT);
+               wtp->title_inactive_color = getCfgValue(cfg,CFG_TITLE_INACTIVE_COLOR_FG);
+               
+               fclose (cfg);           
+       } else {
+               // Defaults if the file doesn't exist
+               
+               wtp->only_maximized = TRUE;
+               wtp->hide_on_unmaximized = FALSE;
+               wtp->hide_icon = FALSE;
+               wtp->hide_title = FALSE;
+               wtp->alignment = 0.5;
+               wtp->swap_order = FALSE;
+               wtp->expand_applet = TRUE;
+               wtp->custom_style = TRUE;
+               wtp->show_window_menu = FALSE;
+               wtp->show_tooltips = FALSE;
+               wtp->title_size = 16;
+               wtp->title_active_font = "Sans 10";
+               wtp->title_active_color = "#FFFFFF";
+               wtp->title_inactive_font = "Sans 10";
+               wtp->title_inactive_color = "#808080";
+
+               savePreferences(wtp,wtapplet);
+       }
+#endif
+
+       return wtp;
+}
+
+#if PLAINTEXT_CONFIG != 0
+/* Returns a string value of the specified configuration parameter (key) */
+// TODO: It wouldn't be too bad if we had this function in a common file instead of duplicating it for both 
applets
+gchar* getCfgValue(FILE *f, gchar *key) {
+    gchar tmp[256] = {0x0};
+       long int pos = ftell(f);
+       
+    while (f!=NULL && fgets(tmp,sizeof(tmp),f)!=NULL) {
+               if (g_strrstr(tmp, key))
+                   break;
+    }
+
+       gchar *r = g_strndup(tmp+strlen(key)+1,strlen(tmp)-strlen(key)+1);
+       g_strstrip(r);
+
+       fseek(f,pos,SEEK_SET);
+    return r;
+}
+#endif
+
+void cb_only_maximized(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->only_maximized = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+}
+
+void cb_hide_on_unmaximized(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->hide_on_unmaximized = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+       updateTitle(wtapplet);
+}
+
+void cb_hide_icon(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->hide_icon = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+       toggleHidden (wtapplet);
+}
+
+void cb_hide_title(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->hide_title = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+       toggleHidden(wtapplet);
+}
+
+void cb_swap_order(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->swap_order = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+       reloadWidgets(wtapplet);
+}
+
+void cb_expand_applet(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->expand_applet = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+       toggleExpand(wtapplet);
+}
+
+void cb_show_window_menu(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->show_window_menu = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+}
+
+void cb_show_tooltips(GtkButton *button, WTApplet *wtapplet) {
+       wtapplet->prefs->show_tooltips = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       gtk_widget_set_has_tooltip (GTK_WIDGET(wtapplet->icon), wtapplet->prefs->show_tooltips);
+       gtk_widget_set_has_tooltip (GTK_WIDGET(wtapplet->title), wtapplet->prefs->show_tooltips);
+       savePreferences(wtapplet->prefs, wtapplet);
+}
+
+void cb_custom_style(GtkButton *button, WTApplet *wtapplet) {
+       GtkTable *parent = GTK_TABLE(gtk_builder_get_object(wtapplet->prefbuilder, "table_custom_style"));
+       gtk_widget_set_sensitive(GTK_WIDGET(parent), gtk_toggle_button_get_active 
(GTK_TOGGLE_BUTTON(button)));
+       wtapplet->prefs->custom_style = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
+       savePreferences(wtapplet->prefs, wtapplet);
+       updateTitle(wtapplet);
+}
+
+static void cb_alignment_changed(GtkRange *range, WTApplet *wtapplet)
+{
+       wtapplet->prefs->alignment = gtk_range_get_value(range);
+       savePreferences(wtapplet->prefs, wtapplet);
+       setAlignment(wtapplet, (gfloat)wtapplet->prefs->alignment);
+}
+
+static void cb_font_active_set(GtkFontButton *widget, WTApplet *wtapplet)
+{
+       //we need to copy the new font string, because we lose the pointer after prefs close
+       wtapplet->prefs->title_active_font = g_strdup(gtk_font_button_get_font_name(widget));           
+       savePreferences(wtapplet->prefs, wtapplet);
+       updateTitle(wtapplet);
+}
+
+static void cb_font_inactive_set(GtkFontButton *widget, WTApplet *wtapplet)
+{
+       //we need to copy the new font string, because we lose the pointer after prefs close
+       wtapplet->prefs->title_inactive_font = g_strdup(gtk_font_button_get_font_name(widget));         
+       savePreferences(wtapplet->prefs, wtapplet);
+       updateTitle(wtapplet);
+}
+
+static void cb_color_active_fg_set(GtkColorButton *widget, WTApplet *wtapplet)
+{
+       GdkColor color;
+
+       gtk_color_button_get_color(widget, &color);
+       wtapplet->prefs->title_active_color = gdk_color_to_string(&color);      
+       savePreferences(wtapplet->prefs, wtapplet);
+       updateTitle(wtapplet);
+}
+
+static void cb_color_inactive_fg_set(GtkColorButton *widget, gpointer user_data)
+{
+       WTApplet *wtapplet = WT_APPLET(user_data);
+       GdkColor color;
+
+       gtk_color_button_get_color(widget, &color);
+       wtapplet->prefs->title_inactive_color = gdk_color_to_string(&color);    
+       savePreferences(wtapplet->prefs, wtapplet);
+       updateTitle(wtapplet);
+}
+
+
+/* The Preferences Dialog */
+void properties_cb (GtkAction *action, WTApplet *wtapplet) {
+       GdkColor btn_color_color;
+       
+       // Create the Properties dialog from the GtkBuilder file
+       if(wtapplet->window_prefs) {
+               gtk_window_present(GTK_WINDOW(wtapplet->window_prefs));
+       } else {
+               gtk_builder_add_from_file (wtapplet->prefbuilder, PATH_UI_PREFS, NULL);
+               wtapplet->window_prefs = GTK_WIDGET (gtk_builder_get_object (wtapplet->prefbuilder, 
"properties"));
+       }
+       //gtk_builder_connect_signals (wtapplet->prefbuilder, NULL); // no need for now
+
+       GtkToggleButton 
+               *chkb_only_maximized = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_ONLY_MAXIMIZED)),
+               *chkb_hide_on_unmaximized = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_HIDE_ON_UNMAXIMIZED)),
+               *chkb_hide_icon = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_HIDE_ICON)),
+               *chkb_hide_title = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_HIDE_TITLE)),
+               *chkb_swap_order = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_SWAP_ORDER)),
+               *chkb_expand_applet = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_EXPAND_APPLET)),
+               *chkb_custom_style = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_CUSTOM_STYLE)),
+               *chkb_show_window_menu = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_SHOW_WINDOW_MENU)),
+               *chkb_show_tooltips = GTK_TOGGLE_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
CFG_SHOW_TOOLTIPS));
+       GtkHScale *scale_alignment = GTK_HSCALE (gtk_builder_get_object(wtapplet->prefbuilder, 
"scale_alignment"));
+       GtkColorButton *btn_color_active = GTK_COLOR_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
"btn_color_active"));
+       GtkFontButton *btn_font_active = GTK_FONT_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
"btn_font_active"));
+       GtkColorButton *btn_color_inactive = GTK_COLOR_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
"btn_color_inactive"));
+       GtkFontButton *btn_font_inactive = GTK_FONT_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, 
"btn_font_inactive"));
+       GtkButton *btn_close = GTK_BUTTON (gtk_builder_get_object(wtapplet->prefbuilder, "btn_close"));
+       GtkTable *table_custom_style = GTK_TABLE(gtk_builder_get_object(wtapplet->prefbuilder, 
"table_custom_style"));
+       
+       // set widgets according to preferences
+       gtk_toggle_button_set_active (chkb_only_maximized, wtapplet->prefs->only_maximized);
+       gtk_toggle_button_set_active (chkb_hide_on_unmaximized, wtapplet->prefs->hide_on_unmaximized);
+       gtk_toggle_button_set_active (chkb_hide_icon, wtapplet->prefs->hide_icon);
+       gtk_toggle_button_set_active (chkb_hide_title, wtapplet->prefs->hide_title);    
+       gtk_toggle_button_set_active (chkb_swap_order, wtapplet->prefs->swap_order);
+       gtk_toggle_button_set_active (chkb_expand_applet, wtapplet->prefs->expand_applet);
+       gtk_toggle_button_set_active (chkb_custom_style, wtapplet->prefs->custom_style);
+       gtk_toggle_button_set_active (chkb_show_window_menu, wtapplet->prefs->show_window_menu);
+       gtk_toggle_button_set_active (chkb_show_tooltips, wtapplet->prefs->show_tooltips);
+       gtk_range_set_adjustment (GTK_RANGE(scale_alignment), 
GTK_ADJUSTMENT(gtk_adjustment_new(wtapplet->prefs->alignment, 0, 1.0, 0.1, 0, 0)));
+       gdk_color_parse(wtapplet->prefs->title_active_color, &btn_color_color);
+       gtk_color_button_set_color(btn_color_active, &btn_color_color);
+       gdk_color_parse(wtapplet->prefs->title_inactive_color, &btn_color_color);
+       gtk_color_button_set_color(btn_color_inactive, &btn_color_color);
+       gtk_font_button_set_font_name(btn_font_active, wtapplet->prefs->title_active_font);
+       gtk_font_button_set_font_name(btn_font_inactive, wtapplet->prefs->title_inactive_font);
+       gtk_widget_set_sensitive(GTK_WIDGET(table_custom_style), gtk_toggle_button_get_active 
(GTK_TOGGLE_BUTTON(chkb_custom_style)));
+       
+       g_signal_connect(G_OBJECT(chkb_only_maximized), "clicked", G_CALLBACK (cb_only_maximized), wtapplet);
+       g_signal_connect(G_OBJECT(chkb_hide_on_unmaximized), "clicked", G_CALLBACK (cb_hide_on_unmaximized), 
wtapplet);
+       g_signal_connect(G_OBJECT(chkb_hide_icon), "clicked", G_CALLBACK (cb_hide_icon), wtapplet);
+       g_signal_connect(G_OBJECT(chkb_hide_title), "clicked", G_CALLBACK (cb_hide_title), wtapplet);
+       g_signal_connect(G_OBJECT(chkb_swap_order), "clicked", G_CALLBACK(cb_swap_order), wtapplet);
+       g_signal_connect(G_OBJECT(chkb_expand_applet), "clicked", G_CALLBACK(cb_expand_applet), wtapplet);
+       g_signal_connect(G_OBJECT(chkb_custom_style), "clicked", G_CALLBACK(cb_custom_style), wtapplet);
+       g_signal_connect(G_OBJECT(chkb_show_window_menu), "clicked", G_CALLBACK(cb_show_window_menu), 
wtapplet);
+       g_signal_connect(G_OBJECT(chkb_show_tooltips), "clicked", G_CALLBACK(cb_show_tooltips), wtapplet);
+       g_signal_connect(G_OBJECT(scale_alignment), "value-changed", G_CALLBACK(cb_alignment_changed), 
wtapplet);
+       g_signal_connect(G_OBJECT(btn_color_active), "color-set", G_CALLBACK(cb_color_active_fg_set), 
wtapplet);
+       g_signal_connect(G_OBJECT(btn_font_active), "font-set", G_CALLBACK(cb_font_active_set), wtapplet);
+       g_signal_connect(G_OBJECT(btn_color_inactive), "color-set", G_CALLBACK(cb_color_inactive_fg_set), 
wtapplet);
+       g_signal_connect(G_OBJECT(btn_font_inactive), "font-set", G_CALLBACK(cb_font_inactive_set), wtapplet);
+       g_signal_connect(G_OBJECT(btn_close), "clicked", G_CALLBACK (properties_close), wtapplet);
+       g_signal_connect(G_OBJECT(wtapplet->window_prefs), "destroy", G_CALLBACK(properties_close), wtapplet);
+       
+       gtk_widget_show_all (wtapplet->window_prefs);
+}
+
+/* Close the Properties dialog - we're not saving anything (it's already saved) */
+void properties_close (GtkButton *object, WTApplet *wtapplet) {
+       gtk_widget_destroy(wtapplet->window_prefs);
+       wtapplet->window_prefs = NULL;
+}
diff --git a/window-title/preferences.h b/window-title/preferences.h
new file mode 100644
index 0000000..042408e
--- /dev/null
+++ b/window-title/preferences.h
@@ -0,0 +1,25 @@
+/***************************************************************************
+ *            preferences.h
+ *
+ *  Mon May  4 01:23:08 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#include "windowtitle.h"
\ No newline at end of file
diff --git a/window-title/windowtitle.c b/window-title/windowtitle.c
new file mode 100644
index 0000000..673e1d2
--- /dev/null
+++ b/window-title/windowtitle.c
@@ -0,0 +1,749 @@
+/*
+ * main.c
+ * Copyright (C) Andrej Belcijan 2009 <andrej.{@}.gmail.dot.com>
+ * 
+ * main.c is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * main.c 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 General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License along
+ * with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "windowtitle.h"
+
+/* Prototypes */
+//static void applet_change_background (PanelApplet *, PanelAppletBackgroundType, GdkColor *, GdkPixmap *);
+static void applet_change_orient (PanelApplet *, PanelAppletOrient, WTApplet *);
+static void active_workspace_changed (WnckScreen *, WnckWorkspace *, WTApplet *);
+static void active_window_changed (WnckScreen *, WnckWindow *, WTApplet *);
+static void active_window_state_changed (WnckWindow *, WnckWindowState, WnckWindowState, WTApplet *);
+static void active_window_nameicon_changed (WnckWindow *, WTApplet *);
+static void umaxed_window_state_changed (WnckWindow *, WnckWindowState, WnckWindowState, WTApplet *);
+static void umaxed_window_nameicon_changed (WnckWindow *, WTApplet *);
+static void viewports_changed (WnckScreen *, WTApplet *);
+static void window_closed (WnckScreen *, WnckWindow *, WTApplet *);
+static void window_opened (WnckScreen *, WnckWindow *, WTApplet *);
+//static void about_cb (BonoboUIComponent *, WTApplet *);
+static void about_cb (GtkAction *, WTApplet *);
+static WnckWindow *getRootWindow (WnckScreen *);
+static WnckWindow *getUpperMaximized (WTApplet *);
+const gchar *getCheckBoxGConfKey (gushort);
+//void properties_cb (BonoboUIComponent *, WTApplet *, const char *);
+void properties_cb (GtkAction *, WTApplet *);
+void setAlignment(WTApplet *, gfloat);
+void placeWidgets (WTApplet *);
+void reloadWidgets (WTApplet *);
+void toggleHidden(WTApplet *);
+void savePreferences(WTPreferences *, WTApplet *);
+WTPreferences *loadPreferences(WTApplet *);
+gchar *getButtonLayoutGConf(WTApplet *, gboolean);
+
+G_DEFINE_TYPE (WTApplet, wt_applet, PANEL_TYPE_APPLET);
+
+static GtkActionEntry windowtitle_menu_actions [] = {
+        { "WTPreferences", GTK_STOCK_PROPERTIES, N_("_Properties"), NULL, NULL, G_CALLBACK (properties_cb) },
+        { "WTAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, NULL, G_CALLBACK (about_cb) }
+};
+
+static const gchar windowtitle_menu_items [] =
+       "<menuitem name=\"Preferences\" action=\"WTPreferences\" />"
+       "<menuitem name=\"About\"               action=\"WTAbout\" />";
+
+WTApplet* wt_applet_new (void) {
+        return g_object_new (WT_TYPE_APPLET, NULL);
+}
+
+static void wt_applet_class_init (WTAppletClass *klass) {
+       // Not required
+}
+
+static void wt_applet_init(WTApplet *wtapplet) {
+       // Not required
+}
+
+/* The About dialog */
+//static void about_cb (BonoboUIComponent *uic, WTApplet *wtapplet) {
+static void about_cb (GtkAction *action, WTApplet *wtapplet) {
+        static const gchar *authors [] = {
+               "Andrej Belcijan <{andrejx}at{gmail.com}>",
+               " ",
+               "Also contributed:",
+               "Niko Bellic <{yurik81}at{gmail.com}>",
+               NULL
+       };
+
+       const gchar *artists[] = {
+               "Nasser Alshammari <{designernasser}at{gmail.com}>",
+               NULL
+       };
+       
+       const gchar *documenters[] = {
+        "Andrej Belcijan <{andrejx}at{gmail.com}>",
+               NULL
+       };
+
+       GdkPixbuf *logo = gdk_pixbuf_new_from_file (PATH_LOGO, NULL);
+
+       gtk_show_about_dialog (NULL,
+               "version",      VERSION,
+               "comments",     N_("Window title for your GNOME Panel."),
+               "copyright",    "\xC2\xA9 2011 Andrej Belcijan",
+               "authors",      authors,
+           "artists",  artists,            
+               "documenters",  documenters,
+               "translator-credits",   ("translator-credits"),
+               "logo",         logo,
+           "website",  "http://www.gnome-look.org/content/show.php?content=103732";,
+               "website-label", N_("Window Applets on Gnome-Look"),
+               NULL);
+}
+
+/* Safely returns the bottom-most (root) window */
+static WnckWindow *getRootWindow (WnckScreen *screen) {
+       GList *winstack = wnck_screen_get_windows_stacked(screen);
+       if (winstack)
+               return winstack->data;
+       else
+               return NULL;
+}
+
+/* Returns the highest maximized window */
+static WnckWindow *getUpperMaximized (WTApplet *wtapplet) {    
+       if (!wtapplet->prefs->only_maximized)
+               return wtapplet->activewindow;
+       
+       GList *windows = wnck_screen_get_windows_stacked(wtapplet->activescreen);
+       WnckWindow *returnwindow = NULL;
+
+       while (windows && windows->data) {
+               if (wnck_window_is_maximized(windows->data)) {
+                       // if(wnck_window_is_on_workspace(windows->data, wtapplet->activeworkspace))
+                       if (!wnck_window_is_minimized(windows->data))
+                               if (wnck_window_is_in_viewport(windows->data, wtapplet->activeworkspace))
+                                       returnwindow = windows->data;
+               }
+               windows = windows->next;
+       }
+        
+       // start tracking the new umaxed window
+       if (wtapplet->umaxedwindow) {
+               if (g_signal_handler_is_connected(G_OBJECT(wtapplet->umaxedwindow), 
wtapplet->umaxed_handler_state))
+                       g_signal_handler_disconnect(G_OBJECT(wtapplet->umaxedwindow), 
wtapplet->umaxed_handler_state);
+               if (g_signal_handler_is_connected(G_OBJECT(wtapplet->umaxedwindow), 
wtapplet->umaxed_handler_name))
+                       g_signal_handler_disconnect(G_OBJECT(wtapplet->umaxedwindow), 
wtapplet->umaxed_handler_name);
+               if (g_signal_handler_is_connected(G_OBJECT(wtapplet->umaxedwindow), 
wtapplet->umaxed_handler_icon))
+                       g_signal_handler_disconnect(G_OBJECT(wtapplet->umaxedwindow), 
wtapplet->umaxed_handler_icon); 
+       }
+       if (returnwindow) {
+               // maxed window was found
+               wtapplet->umaxed_handler_state = g_signal_connect(G_OBJECT(returnwindow),
+                                                            "state-changed",
+                                                            G_CALLBACK (umaxed_window_state_changed),
+                                                                 wtapplet);
+               wtapplet->umaxed_handler_name = g_signal_connect(G_OBJECT(returnwindow),
+                                                            "name-changed",
+                                                            G_CALLBACK (umaxed_window_nameicon_changed),
+                                                            wtapplet);         
+               wtapplet->umaxed_handler_icon = g_signal_connect(G_OBJECT(returnwindow),
+                                                            "icon-changed",
+                                                            G_CALLBACK (umaxed_window_nameicon_changed),
+                                                            wtapplet); 
+               //return returnwindow;
+       } else {
+               // maxed window was not found
+               returnwindow = wtapplet->rootwindow; //return wtapplet->rootwindow;
+       }
+       return returnwindow;
+       // WARNING: if this function returns NULL, applet won't detect clicks!
+}
+
+// Updates the images according to preferences and the window situation
+// Warning! This function is called very often, so it should only do the most necessary things!
+void updateTitle(WTApplet *wtapplet) {
+       WnckWindow *controlledwindow;
+       gchar *title_text, *title_color, *title_font;
+       GdkPixbuf *icon_pixbuf;
+       
+       if (wtapplet->prefs->only_maximized) {
+               controlledwindow = wtapplet->umaxedwindow;
+       } else {
+               controlledwindow = wtapplet->activewindow;
+       }
+
+       if (controlledwindow == NULL)
+               return;
+       
+       if (controlledwindow == wtapplet->rootwindow) {
+               // we're on desktop
+               if (wtapplet->prefs->hide_on_unmaximized) {
+                       // hide everything
+                       icon_pixbuf = NULL;
+                       title_text = "";
+               } else {
+                       // display "custom" icon/title (TODO: customization via preferences?)
+                       icon_pixbuf = 
gtk_widget_render_icon(GTK_WIDGET(wtapplet),GTK_STOCK_HOME,GTK_ICON_SIZE_MENU,NULL); // This has to be 
unrefed!
+                       title_text = ("Desktop");
+               }
+       } else {
+               icon_pixbuf = wnck_window_get_icon(controlledwindow); // This only returns a pointer - it 
SHOULDN'T be unrefed!
+               title_text = (gchar*)wnck_window_get_name(controlledwindow);
+       }
+       
+       // TODO: we need the default font to somehow be the same in both modes
+       if (wtapplet->prefs->custom_style) {
+               // custom style
+               if (controlledwindow == wtapplet->activewindow) {
+                       // window focused
+                       title_color = wtapplet->prefs->title_active_color;
+                       title_font = wtapplet->prefs->title_active_font;
+               } else {
+                       // window unfocused
+                       title_color = wtapplet->prefs->title_inactive_color;
+                       title_font = wtapplet->prefs->title_inactive_font;      
+               }
+       } else {
+               // automatic (non-custom) style
+               if (controlledwindow == wtapplet->activewindow) {
+                       // window focused                               
+                       title_color = wtapplet->panel_color_fg;
+                       title_font = "";
+               } else {
+                       // window unfocused
+                       title_color = "#808080"; // inactive title color. best fits for any panel regardless 
of color
+                       title_font = "";
+               }               
+       }
+
+       // Set tooltips
+       if (wtapplet->prefs->show_tooltips) {
+               gtk_widget_set_tooltip_text (GTK_WIDGET(wtapplet->icon), title_text);
+               gtk_widget_set_tooltip_text (GTK_WIDGET(wtapplet->title), title_text);
+       }
+
+       title_text = g_markup_printf_escaped("<span font=\"%s\" color=\"%s\">%s</span>", title_font, 
title_color, title_text);
+       // Apply markup to label widget
+       gtk_label_set_markup(GTK_LABEL(wtapplet->title), title_text);
+       g_free(title_text);
+
+       if (icon_pixbuf == NULL) {
+               gtk_image_clear(wtapplet->icon);
+       } else {
+               // We're updating window info (Careful! We've had pixbuf memory leaks here)
+               GdkPixbuf *ipb1 = gdk_pixbuf_scale_simple(icon_pixbuf, ICON_WIDTH, ICON_HEIGHT, 
GDK_INTERP_BILINEAR);
+               if (controlledwindow == wtapplet->rootwindow) g_object_unref(icon_pixbuf); //this is stupid 
beyond belief, thanks to the retarded GTK framework
+               GdkPixbuf *ipb2 = gdk_pixbuf_rotate_simple(ipb1, wtapplet->angle);
+               g_object_unref(ipb1);   // Unref ipb1 to get it cleared from memory (we still need ipb2)
+
+               // Saturate icon when window is not focused
+               if (controlledwindow != wtapplet->activewindow) 
+                       gdk_pixbuf_saturate_and_pixelate(ipb2, ipb2, 0, FALSE);
+               
+               // Apply pixbuf to icon widget
+               gtk_image_set_from_pixbuf(wtapplet->icon, ipb2);
+               g_object_unref(ipb2);   // Unref ipb2 to get it cleared from memory                     
+       }
+}
+
+/* Expand/unexpand applet according to preferences */
+void toggleExpand(WTApplet *wtapplet) {
+       if (wtapplet->prefs->expand_applet) {
+               panel_applet_set_flags (wtapplet->applet, PANEL_APPLET_EXPAND_MINOR | 
PANEL_APPLET_EXPAND_MAJOR);
+       } else {
+               // We must have a handle due to bug https://bugzilla.gnome.org/show_bug.cgi?id=556355
+               // panel_applet_set_flags (wtapplet->applet, PANEL_APPLET_EXPAND_MINOR | 
PANEL_APPLET_EXPAND_MAJOR | PANEL_APPLET_HAS_HANDLE);
+               panel_applet_set_flags (wtapplet->applet, PANEL_APPLET_EXPAND_MINOR);
+       }
+       reloadWidgets(wtapplet);
+       setAlignment(wtapplet, (gfloat)wtapplet->prefs->alignment);
+}
+
+/* Hide/unhide stuff according to preferences */
+void toggleHidden (WTApplet *wtapplet) {
+       if (wtapplet->prefs->hide_icon) {
+               gtk_widget_hide (GTK_WIDGET(wtapplet->icon));
+       } else {
+               gtk_widget_show (GTK_WIDGET(wtapplet->icon));
+       }
+       
+       if (wtapplet->prefs->hide_title) {
+               gtk_widget_hide (GTK_WIDGET(wtapplet->title));
+       } else {
+               gtk_widget_show (GTK_WIDGET(wtapplet->title));
+       }
+
+       if (!gtk_widget_get_visible(GTK_WIDGET(wtapplet->eb_icon)))
+               gtk_widget_show_all(GTK_WIDGET(wtapplet->eb_icon));
+       if (!gtk_widget_get_visible(GTK_WIDGET(wtapplet->eb_title)))
+               gtk_widget_show_all(GTK_WIDGET(wtapplet->eb_title));
+       if (!gtk_widget_get_visible(GTK_WIDGET(wtapplet->box)))
+               gtk_widget_show_all(GTK_WIDGET(wtapplet->box));
+       if (!gtk_widget_get_visible(GTK_WIDGET(wtapplet->applet)))
+               gtk_widget_show_all(GTK_WIDGET(wtapplet->applet));
+}
+
+/* Called when panel background is changed */
+static void applet_change_background (PanelApplet              *applet,
+                                                                cairo_pattern_t        *pattern,
+                                                                        WTApplet                       
*wtapplet)
+{
+       if (wtapplet->panel_color_fg)
+               g_free(wtapplet->panel_color_fg);       
+
+       // Look up the default text color in the theme, use a default if it's not defined
+       // This way is deprecated
+       GdkColor color;
+       GtkStyle *style = gtk_widget_get_style(GTK_WIDGET(applet));
+       if (!gtk_style_lookup_color(style, "dark_fg_color", &color))    // check if dark_fg_color is set 
otherwise...
+               if (!gtk_style_lookup_color(style, "fg_color", &color))         // ... check if fg_color is 
set otherwise...
+                       gdk_color_parse("#808080", &color);                                             // 
... set universally acceptable color #808080
+       wtapplet->panel_color_fg = gdk_color_to_string(&color);
+
+       /*
+       GdkRGBA rgba;
+       GtkStyleContext *stylecontext = gtk_widget_get_style_context(GTK_WIDGET(applet));
+       if (!gtk_style_context_lookup_color(stylecontext, "dark_fg_color", &rgba))
+               if (!gtk_style_context_lookup_color(stylecontext, "fg_color", &rgba))
+                       gdk_rgba_parse(&rgba, "#808080");
+       wtapplet->panel_color_fg = gdk_rgba_to_string(&rgba); // This does not produce the right syntax 
(gtk_label_set_markup fails)
+       */
+
+       updateTitle(wtapplet); // We need to redraw the title using the new colors
+}
+
+/* Triggered when a different panel orientation is detected */
+static void applet_change_orient (PanelApplet *panelapplet,
+                                  PanelAppletOrient orient,
+                                  WTApplet *wtapplet)
+{
+       if (orient != wtapplet->orient) {
+               wtapplet->orient = orient;
+
+               reloadWidgets(wtapplet);
+               updateTitle(wtapplet);
+       }
+}
+
+/* (Supposedly) tiggered when panel size changes */
+static void applet_change_pixel_size (PanelApplet      *applet,
+                                                                         gint                  size,
+                                                                         WTApplet              *wtapplet)
+{
+       if (wtapplet->size == size)
+               return;
+
+       wtapplet->size = size;
+
+       updateTitle(wtapplet);
+}
+
+/*
+static void applet_title_size_request (GtkWidget *widget,
+                                       GtkRequisition *requisition,
+                                       gpointer user_data)
+{
+       WTApplet *wtapplet = WT_APPLET(user_data);
+
+       if (wtapplet->prefs->expand_applet)
+               return;
+
+       gint size_min = MIN(requisition->width, wtapplet->asize);
+       gint size_max = MAX(requisition->width, wtapplet->asize);
+
+       //g_printf("New size: %d\n", new_size);
+       
+       wtapplet->size_hints[0] = size_min;
+       wtapplet->size_hints[1] = wtapplet->asize - 1;
+       panel_applet_set_size_hints (PANEL_APPLET(wtapplet), wtapplet->size_hints, 2, 0);       
+       // This is the only way to go, but it cannot work because of gnome-panel bugs:
+       // * https://bugzilla.gnome.org/show_bug.cgi?id=556355
+       // * https://bugzilla.gnome.org/show_bug.cgi?id=557232
+
+       //      GtkAllocation child_allocation;
+       //      child_allocation.x = 0;
+       //      child_allocation.y = 0;
+       //      child_allocation.width = new_size  - (16+11);
+       //      child_allocation.height = requisition->height;
+       //      gtk_widget_size_allocate (GTK_WIDGET(wtapplet->title), &child_allocation);
+       //      gtk_widget_set_child_visible (GTK_WIDGET(wtapplet->title), TRUE);
+}
+*/
+
+/* Triggered when applet allocates new size */
+static void applet_size_allocate (GtkWidget     *widget,
+                                  GtkAllocation *allocation,
+                                  WTApplet             *wtapplet)
+{
+       if (wtapplet->prefs->expand_applet) return;
+       
+       if (wtapplet->asize != allocation->width) {
+               wtapplet->asize = allocation->width;
+       }
+}
+
+/* Triggers when a new window has been opened */
+// in case a new maximized non-active window appears
+static void window_opened (WnckScreen *screen,
+                           WnckWindow *window,
+                           WTApplet *wtapplet) {
+
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+
+       updateTitle(wtapplet);
+}
+
+/* Triggers when a window has been closed */
+// in case the last maximized window was closed
+static void window_closed (WnckScreen *screen,
+                           WnckWindow *window,
+                           WTApplet *wtapplet) {
+
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+
+       updateTitle(wtapplet); // required when closing window in the background
+}
+
+/* Triggers when a new active window is selected */
+static void active_window_changed (WnckScreen *screen,
+                                   WnckWindow *previous,
+                                   WTApplet *wtapplet)
+{
+       // Start tracking the new active window:
+       if (wtapplet->activewindow) {
+               if (g_signal_handler_is_connected(G_OBJECT(wtapplet->activewindow), 
wtapplet->active_handler_state))
+                       g_signal_handler_disconnect(G_OBJECT(wtapplet->activewindow), 
wtapplet->active_handler_state);
+               if (g_signal_handler_is_connected(G_OBJECT(wtapplet->activewindow), 
wtapplet->active_handler_name))
+                       g_signal_handler_disconnect(G_OBJECT(wtapplet->activewindow), 
wtapplet->active_handler_name);
+               if (g_signal_handler_is_connected(G_OBJECT(wtapplet->activewindow), 
wtapplet->active_handler_icon))
+                       g_signal_handler_disconnect(G_OBJECT(wtapplet->activewindow), 
wtapplet->active_handler_icon);
+       }
+       
+       wtapplet->activewindow = wnck_screen_get_active_window(screen);
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet); // returns wbapplet->activewindow if not 
only_maximized
+       wtapplet->rootwindow = getRootWindow(wtapplet->activescreen);
+       
+       if (wtapplet->activewindow) {
+               wtapplet->active_handler_state = g_signal_connect(G_OBJECT (wtapplet->activewindow), 
"state-changed", G_CALLBACK (active_window_state_changed), wtapplet);
+               wtapplet->active_handler_name = g_signal_connect(G_OBJECT (wtapplet->activewindow), 
"name-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet);
+               wtapplet->active_handler_icon = g_signal_connect(G_OBJECT (wtapplet->activewindow), 
"icon-changed", G_CALLBACK (active_window_nameicon_changed), wtapplet);
+                                                                                  
+               wtapplet->focused = TRUE;
+
+               updateTitle(wtapplet);
+       }
+}
+
+/* Trigger when activewindow's state changes */
+static void active_window_state_changed (WnckWindow *window,
+                                         WnckWindowState changed_mask,
+                                         WnckWindowState new_state,
+                                         WTApplet *wtapplet) {
+
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+       wtapplet->rootwindow = getRootWindow(wtapplet->activescreen);
+
+       if (new_state & (WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY | WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY)) {
+               wtapplet->focused = TRUE;
+       } else {
+               if (wtapplet->prefs->only_maximized) {
+                               wtapplet->focused = FALSE;
+               }
+       }
+       
+       updateTitle(wtapplet);
+}
+
+/* Triggers when activewindow's name changes */
+static void active_window_nameicon_changed (WnckWindow *window, WTApplet *wtapplet) {
+       updateTitle(wtapplet);
+}
+
+/* Triggers when umaxedwindow's state changes */
+static void umaxed_window_state_changed (WnckWindow *window,
+                                          WnckWindowState changed_mask,
+                                          WnckWindowState new_state,
+                                          WTApplet *wtapplet)
+{
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+       wtapplet->rootwindow = getRootWindow(wtapplet->activescreen);
+       
+       updateTitle(wtapplet);
+}
+
+/* Triggers when umaxedwindow's name OR ICON changes */
+static void umaxed_window_nameicon_changed(WnckWindow *window, WTApplet *wtapplet) {
+       updateTitle(wtapplet);
+}
+
+/* Triggers when user changes viewports (Compiz) */
+static void viewports_changed (WnckScreen *screen,
+                               WTApplet *wtapplet)
+{
+       wtapplet->activeworkspace = wnck_screen_get_active_workspace(screen);
+       wtapplet->activewindow = wnck_screen_get_active_window(screen);
+       wtapplet->rootwindow = getRootWindow(wtapplet->activescreen); //?
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+
+       // active_window_changed will do it too, but this one will be sooner
+       updateTitle(wtapplet);
+}
+
+/* Triggers when.... ? not sure... (Metacity?) */
+static void active_workspace_changed (WnckScreen *screen,
+                                      WnckWorkspace *previous,
+                                      WTApplet *wtapplet)
+{
+       wtapplet->activeworkspace = wnck_screen_get_active_workspace(screen);
+       /*
+       wtapplet->activewindow = wnck_screen_get_active_window(screen);
+       // wtapplet->rootwindow = getRootWindow(wtapplet->activescreen); //?
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+
+       updateTitle(wtapplet);
+       */
+}
+
+static gboolean icon_clicked (GtkWidget *icon,
+                              GdkEventButton *event,
+                              WTApplet *wtapplet)
+{
+       if (event->button != 1) return FALSE;
+       
+       WnckWindow *controlledwindow;
+
+       if (wtapplet->prefs->only_maximized) {
+               controlledwindow = wtapplet->umaxedwindow;
+       } else {
+               controlledwindow = wtapplet->activewindow;
+       }
+
+       // single click:
+       if (controlledwindow) {
+               wnck_window_activate(controlledwindow, gtk_get_current_event_time());
+       }
+
+       // double click:
+       if (event->type == GDK_2BUTTON_PRESS) {
+               wnck_window_close(controlledwindow, gtk_get_current_event_time());
+       }               
+
+       return TRUE;
+}
+
+static gboolean title_clicked (GtkWidget *title,
+                               GdkEventButton *event,
+                               WTApplet *wtapplet)
+{
+       // only allow left and right mouse button
+       //if (event->button != 1 && event->button != 3) return FALSE;
+       
+       WnckWindow *controlledwindow;
+
+       if (wtapplet->prefs->only_maximized) {
+               controlledwindow = wtapplet->umaxedwindow;
+       } else {
+               controlledwindow = wtapplet->activewindow;
+       }
+
+       if (!controlledwindow) 
+               return FALSE;
+       
+       // single click (left/right)
+       if (event->button == 1) {
+               // left-click
+               wnck_window_activate(controlledwindow, gtk_get_current_event_time());
+               if (event->type==GDK_2BUTTON_PRESS || event->type==GDK_3BUTTON_PRESS) {
+                       // double/tripple click
+                       //if (event->type==GDK_2BUTTON_PRESS) {
+                       if (wnck_window_is_maximized(controlledwindow)) {
+                               wnck_window_unmaximize(controlledwindow);
+                       } else {
+                               wnck_window_maximize(controlledwindow);
+                       }
+               }
+       } else if (event->button == 3) {
+               // right-click
+               if (wtapplet->prefs->show_window_menu) {
+                       wnck_window_activate(controlledwindow, gtk_get_current_event_time());
+                       GtkMenu *window_menu = GTK_MENU(wnck_action_menu_new(controlledwindow));
+                       gtk_menu_popup(window_menu, NULL, NULL, NULL, NULL, event->button, 
gtk_get_current_event_time());
+                       //TODO: somehow alter the panel action menu to also display the wnck_action_menu !
+               } else {
+                       return FALSE;
+               }
+       } else {
+               return FALSE;
+       }
+       return TRUE;
+}
+
+/* Places widgets in box accordingly with angle and order */
+void placeWidgets (WTApplet *wtapplet) {
+
+       // TODO: merge all this... or not?
+       if (wtapplet->orient == PANEL_APPLET_ORIENT_RIGHT) {
+               wtapplet->angle = GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE;
+       } else if (wtapplet->orient == PANEL_APPLET_ORIENT_LEFT) {
+               wtapplet->angle = GDK_PIXBUF_ROTATE_CLOCKWISE;
+       } else {
+               wtapplet->angle = GDK_PIXBUF_ROTATE_NONE;
+       }
+
+       if (wtapplet->angle == GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE) {
+               wtapplet->packtype = GTK_PACK_END;
+       } else {
+               wtapplet->packtype = GTK_PACK_START;
+       }
+       
+       // set box orientation
+       if (wtapplet->angle == GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE || wtapplet->angle == 
GDK_PIXBUF_ROTATE_CLOCKWISE) {
+               gtk_orientable_set_orientation(GTK_ORIENTABLE(wtapplet->box), GTK_ORIENTATION_VERTICAL);
+       } else {
+               gtk_orientable_set_orientation(GTK_ORIENTABLE(wtapplet->box), GTK_ORIENTATION_HORIZONTAL);
+       }
+
+       // set packing order
+       if (wtapplet->prefs->swap_order == wtapplet->packtype) {
+               gtk_box_pack_start(wtapplet->box, GTK_WIDGET(wtapplet->eb_icon), FALSE, TRUE, 0);
+               gtk_box_pack_start(wtapplet->box, GTK_WIDGET(wtapplet->eb_title), TRUE, TRUE, 0);
+       } else {
+               gtk_box_pack_start(wtapplet->box, GTK_WIDGET(wtapplet->eb_title), TRUE, TRUE, 0);
+               gtk_box_pack_start(wtapplet->box, GTK_WIDGET(wtapplet->eb_icon), FALSE, TRUE, 0);
+       }
+
+       // Set alignment/orientation
+       gtk_label_set_angle( wtapplet->title, wtapplet->angle );
+       setAlignment(wtapplet, (gfloat)wtapplet->prefs->alignment);
+}
+
+/* Reloads all widgets */
+void reloadWidgets (WTApplet *wtapplet) {
+       g_object_ref(wtapplet->eb_icon);
+       g_object_ref(wtapplet->eb_title);
+       gtk_container_remove(GTK_CONTAINER(wtapplet->box), GTK_WIDGET(wtapplet->eb_icon));
+       gtk_container_remove(GTK_CONTAINER(wtapplet->box), GTK_WIDGET(wtapplet->eb_title));
+       placeWidgets(wtapplet);
+       g_object_unref(wtapplet->eb_icon);
+       g_object_unref(wtapplet->eb_title);
+}
+
+/* Sets alignment, min size, padding to title according to panel orientation */
+void setAlignment (WTApplet *wtapplet, gfloat alignment) {
+       if (!wtapplet->prefs->expand_applet)
+               alignment = 0.0;
+       
+       if (wtapplet->angle == GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE || wtapplet->angle == 
GDK_PIXBUF_ROTATE_CLOCKWISE) {
+               // Alignment is vertical
+               if (wtapplet->angle == GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE) {
+                       gtk_misc_set_alignment(GTK_MISC(wtapplet->title), 0.5, 1-alignment);
+               } else {
+                       gtk_misc_set_alignment(GTK_MISC(wtapplet->title), 0.5, alignment);
+               }
+               gtk_widget_set_size_request(GTK_WIDGET(wtapplet->title), -1, wtapplet->prefs->title_size);
+               gtk_misc_set_padding(GTK_MISC(wtapplet->icon), 0, ICON_PADDING);
+       } else {
+               // Alignment is horizontal
+               gtk_misc_set_alignment(GTK_MISC(wtapplet->title), alignment, 0.5);
+               gtk_widget_set_size_request(GTK_WIDGET(wtapplet->title), wtapplet->prefs->title_size, -1);
+               gtk_misc_set_padding(GTK_MISC(wtapplet->icon), ICON_PADDING, 0);
+       }
+}
+
+/* Do the actual applet initialization */
+static void init_wtapplet (PanelApplet *applet) {
+       WTApplet *wtapplet = g_new0 (WTApplet, 1);
+
+       wtapplet->applet = applet;
+       wtapplet->prefs = loadPreferences(wtapplet);
+       wtapplet->activescreen = wnck_screen_get_default();
+       wnck_screen_force_update(wtapplet->activescreen);
+       wtapplet->activeworkspace = wnck_screen_get_active_workspace(wtapplet->activescreen);
+       wtapplet->activewindow = wnck_screen_get_active_window(wtapplet->activescreen);
+       wtapplet->umaxedwindow = getUpperMaximized(wtapplet);
+       wtapplet->rootwindow = getRootWindow(wtapplet->activescreen);
+       wtapplet->prefbuilder = gtk_builder_new();
+       wtapplet->box = GTK_BOX(gtk_hbox_new(FALSE, 0));
+       wtapplet->icon = GTK_IMAGE(gtk_image_new());
+       wtapplet->title = GTK_LABEL(gtk_label_new(NULL));
+       wtapplet->eb_icon = GTK_EVENT_BOX(gtk_event_box_new());
+       wtapplet->eb_title = GTK_EVENT_BOX(gtk_event_box_new());
+       wtapplet->orient = panel_applet_get_orient(wtapplet->applet);
+       wtapplet->size_hints = g_new(gint,2);
+
+       // Widgets to eventboxes, eventboxes to box
+       gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->icon), TRUE);
+       gtk_widget_set_can_focus(GTK_WIDGET(wtapplet->title), TRUE);
+       gtk_container_add (GTK_CONTAINER (wtapplet->eb_icon), GTK_WIDGET(wtapplet->icon));
+       gtk_container_add (GTK_CONTAINER (wtapplet->eb_title), GTK_WIDGET(wtapplet->title));
+       gtk_event_box_set_visible_window (wtapplet->eb_icon, FALSE);
+       gtk_event_box_set_visible_window (wtapplet->eb_title, FALSE);
+
+       // Rotate & place elements
+       setAlignment(wtapplet, (gfloat)wtapplet->prefs->alignment);
+       placeWidgets(wtapplet);
+
+       // Add box to applet
+       gtk_container_add (GTK_CONTAINER(wtapplet->applet), GTK_WIDGET(wtapplet->box));
+
+       // Set event handling (icon & title clicks)
+       g_signal_connect(G_OBJECT (wtapplet->eb_icon), "button-press-event", G_CALLBACK (icon_clicked), 
wtapplet);
+       g_signal_connect(G_OBJECT (wtapplet->eb_title), "button-press-event", G_CALLBACK (title_clicked), 
wtapplet);
+       
+       // Global window tracking
+       g_signal_connect(wtapplet->activescreen, "active-window-changed", G_CALLBACK (active_window_changed), 
wtapplet); // <-- this thing is crashing with compiz !!!
+       g_signal_connect(wtapplet->activescreen, "viewports-changed", G_CALLBACK (viewports_changed), 
wtapplet);
+       g_signal_connect(wtapplet->activescreen, "active-workspace-changed", G_CALLBACK 
(active_workspace_changed), wtapplet);
+       g_signal_connect(wtapplet->activescreen, "window-closed", G_CALLBACK (window_closed), wtapplet);
+       g_signal_connect(wtapplet->activescreen, "window-opened", G_CALLBACK (window_opened), wtapplet);
+
+       // g_signal_connect(G_OBJECT (wtapplet->title), "size-request", G_CALLBACK 
(applet_title_size_request), wtapplet);
+       g_signal_connect(G_OBJECT (wtapplet->applet), "size-allocate", G_CALLBACK (applet_size_allocate), 
wtapplet);
+
+       g_signal_connect(G_OBJECT (wtapplet->applet), "change-background", G_CALLBACK 
(applet_change_background), wtapplet);
+       g_signal_connect(G_OBJECT (wtapplet->applet), "change-orient", G_CALLBACK (applet_change_orient), 
wtapplet);
+       g_signal_connect(G_OBJECT (wtapplet->applet), "change-size", G_CALLBACK (applet_change_pixel_size), 
wtapplet);
+       
+       // Track active window changes
+       wtapplet->active_handler_state = 
+               g_signal_connect(G_OBJECT (wtapplet->activewindow), "state-changed", G_CALLBACK 
(active_window_state_changed), wtapplet);
+       wtapplet->active_handler_name = 
+               g_signal_connect(G_OBJECT (wtapplet->activewindow), "name-changed", G_CALLBACK 
(active_window_nameicon_changed), wtapplet);
+       wtapplet->active_handler_icon = 
+               g_signal_connect(G_OBJECT (wtapplet->activewindow), "icon-changed", G_CALLBACK 
(active_window_nameicon_changed), wtapplet);
+
+       
+       // Setup applet right-click menu
+       GtkActionGroup *action_group = gtk_action_group_new ("WindowButtons Applet Actions");
+       gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+       gtk_action_group_add_actions (action_group, windowtitle_menu_actions, G_N_ELEMENTS 
(windowtitle_menu_actions), wtapplet);
+       panel_applet_setup_menu (applet, windowtitle_menu_items, action_group);
+       panel_applet_set_background_widget (wtapplet->applet, GTK_WIDGET (wtapplet->applet)); // Automatic 
background update
+       
+       toggleExpand  (wtapplet);
+       toggleHidden  (wtapplet);       // Properly hide or show stuff
+       updateTitle   (wtapplet);
+}
+
+// Initial function that draws the applet
+static gboolean windowtitle_applet_factory (PanelApplet *applet, const gchar *iid, gpointer data) {
+       if (strcmp (iid, APPLET_OAFIID) != 0) return FALSE;
+       
+       g_set_application_name (APPLET_NAME); //GLib-WARNING **: g_set_application_name() called multiple 
times
+       panel_applet_add_preferences (applet, GCONF_PREFS, NULL);
+       wnck_set_client_type (WNCK_CLIENT_TYPE_PAGER);
+
+       init_wtapplet (applet);
+
+       return TRUE;
+}
+
+PANEL_APPLET_OUT_PROCESS_FACTORY (APPLET_OAFIID_FACTORY,
+                                  PANEL_TYPE_APPLET,
+                                  (PanelAppletFactoryCallback) windowtitle_applet_factory,
+                                  NULL)
diff --git a/window-title/windowtitle.h b/window-title/windowtitle.h
new file mode 100644
index 0000000..5ae927b
--- /dev/null
+++ b/window-title/windowtitle.h
@@ -0,0 +1,157 @@
+/***************************************************************************
+ *            main.h
+ *
+ *  Mon May  4 01:21:56 2009
+ *  Copyright  2009  Andrej Belcijan
+ *  <{andrejx} at {gmail.com}>
+ ****************************************************************************/
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program 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 Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301,  USA
+ */
+
+#define PLAINTEXT_CONFIG                               0
+
+#ifndef __WT_APPLET_H__
+#define __WT_APPLET_H__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+#include <panel-applet.h>
+#include <panel-applet-gconf.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+#if PLAINTEXT_CONFIG == 1
+#include <glib/gstdio.h>
+#endif
+
+#ifndef WNCK_I_KNOW_THIS_IS_UNSTABLE
+#define WNCK_I_KNOW_THIS_IS_UNSTABLE
+#endif
+#include <libwnck/libwnck.h>
+
+/* static paths and stuff */
+#define APPLET_NAME                                            "Window Title"
+#define APPLET_OAFIID                                  "WindowTitleApplet"
+#define APPLET_OAFIID_FACTORY                  "WindowTitleAppletFactory"
+#define PATH_MAIN                                              "/usr/share"
+#define PATH_BUILDER                                   "/usr/share/gnome-applets/builder"
+#define PATH_UI_PREFS                                  PATH_MAIN"/windowtitle/windowtitle.ui"
+#define PATH_LOGO                                              PATH_MAIN"/pixmaps/windowtitle-applet.png"
+#define FILE_CONFIGFILE                                        ".windowtitle"
+#define GCONF_PREFS                                    "/schemas/apps/windowtitle-applet/prefs"
+#define ICON_WIDTH                                             16
+#define ICON_HEIGHT                                            16
+#define ICON_PADDING                                   5
+
+#define CFG_ALIGNMENT                                  "alignment"
+#define CFG_SWAP_ORDER                                 "swap_order"
+#define CFG_EXPAND_APPLET                              "expand_applet"
+#define CFG_HIDE_ICON                                  "hide_icon"
+#define CFG_HIDE_TITLE                                 "hide_title"
+#define CFG_CUSTOM_STYLE                               "custom_style"
+#define CFG_TITLE_SIZE                                 "title_size"
+#define CFG_ONLY_MAXIMIZED                             "only_maximized"
+#define CFG_HIDE_ON_UNMAXIMIZED                "hide_on_unmaximized"
+#define CFG_SHOW_WINDOW_MENU                   "show_window_menu"
+#define CFG_SHOW_TOOLTIPS                              "show_tooltips"
+#define CFG_TITLE_ACTIVE_FONT                  "title_active_font"
+#define CFG_TITLE_ACTIVE_COLOR_FG              "title_active_color_fg"
+#define CFG_TITLE_INACTIVE_FONT                        "title_inactive_font"
+#define CFG_TITLE_INACTIVE_COLOR_FG            "title_inactive_color_fg"
+
+G_BEGIN_DECLS
+
+#define WT_TYPE_APPLET                wt_applet_get_type()
+#define WT_APPLET(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), WT_TYPE_APPLET, WTApplet))
+#define WT_APPLET_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), WT_TYPE_APPLET, WTAppletClass))
+#define WT_IS_APPLET(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WT_TYPE_APPLET))
+#define WT_IS_APPLET_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), WT_TYPE_APPLET))
+#define WT_APPLET_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), WT_TYPE_APPLET, WTAppletClass))
+
+/* Applet properties (things that get saved) */
+typedef struct {
+       gboolean                only_maximized,                 // [T/F] Only track maximized windows
+                                       hide_on_unmaximized,    // [T/F] Hide when no maximized windows 
present
+                                       hide_icon,                              // [T/F] Hide the icon
+                                       hide_title,                             // [T/F] Hide the title
+                                       swap_order,                             // [T/F] Swap title/icon
+                                       expand_applet,                  // [T/F] Expand the applet TODO: 
rename to expand_title ?
+                                       custom_style,                   // [T/F] Use custom style
+                                       show_window_menu,               // [T/F] Show window action menu on 
right click
+                                       show_tooltips;                  // [T/F] Show tooltips
+       gint                    title_size;                             // Title size (minimal w/ expand and 
absolute w/o expand)
+       gchar                   *title_active_font;             // Custom active title font
+       gchar                   *title_active_color;    // Custom active title color
+       gchar                   *title_inactive_font;   // Custom inactive title font
+       gchar                   *title_inactive_color;  // Custom inactive title color
+       gdouble                 alignment;                              // Title alignment [0=left, 
0.5=center, 1=right]
+} WTPreferences;
+
+/* WBApplet definition (inherits from PanelApplet) */
+typedef struct {
+    PanelApplet                *applet;                                // The actual PanelApplet
+
+       /* Widgets */
+       GtkBox          *box;                                   // Main container widget
+       GtkEventBox             *eb_icon, *eb_title;    // Eventbox widgets
+       GtkImage                *icon;                                  // Icon image widget
+       GtkLabel                *title;                                 // Title label widget
+       GtkWidget               *window_prefs;                  // Preferences window
+       
+       /* Variables */
+       WTPreferences   *prefs;                                 // Main properties 
+       WnckScreen              *activescreen;                  // Active screen
+       WnckWorkspace   *activeworkspace;               // Active workspace
+       WnckWindow              *umaxedwindow,                  // Upper-most maximized window
+                                       *activewindow,                  // Active window
+                                       *rootwindow;                    // Root window (desktop)
+       gulong                  active_handler_state,   // activewindow's statechange event handler ID
+                                       active_handler_name,    // activewindow's namechange event handler ID
+                                       active_handler_icon,    // activewindow's iconchange event handler ID
+                                       umaxed_handler_state,   // umaxedwindow's statechange event handler ID
+                                       umaxed_handler_name,    // umaxedwindow's manechange event handler ID
+                                       umaxed_handler_icon;    // umaxedwindow's iconchange event handler ID
+       gboolean                focused;                                // [T/F] Window state (focused or 
unfocused)
+       gchar                   *panel_color_fg;                // Foreground color determined by the panel
+       
+       GdkPixbufRotation       angle;                          // Applet angle
+       PanelAppletOrient       orient;                         // Panel orientation
+       gint                            size;                           // Panel size
+       gint                            asize;                          // Applet allocation size
+       gint                            *size_hints;            // Applet size hints
+       GtkPackType                     packtype;                       // Packaging direction of buttons
+       
+       /* GtkBuilder */
+       GtkBuilder              *prefbuilder;                   // Glade GtkBuilder for the preferences
+} WTApplet;
+
+typedef struct {
+        PanelAppletClass applet_class;
+} WTAppletClass;
+
+GType wt_applet_get_type (void);
+WTApplet* wt_applet_new (void);
+
+G_END_DECLS
+#endif
diff --git a/window-title/windowtitle.schemas.in b/window-title/windowtitle.schemas.in
new file mode 100644
index 0000000..fac6e56
--- /dev/null
+++ b/window-title/windowtitle.schemas.in
@@ -0,0 +1,164 @@
+<gconfschemafile>
+    <schemalist>
+        <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/hide_on_unmaximized</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Hides title when there are no windows present.</short>
+                <long>When enabled, the title will disappear when there are no maximized (or active) windows 
on the screen.</long>
+            </locale>
+        </schema>
+        <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/only_maximized</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Only control maximized windows.</short>
+                <long>When enabled, the window title will always display the upper-most maximized window's 
name.</long>
+            </locale>
+        </schema>
+
+        <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/alignment</key>
+            <owner>windowtitle</owner>
+            <type>float</type>
+            <default>0.5</default>
+            <locale name="C">
+                <short>Set the title alignment.</short>
+                <long>Legal values are between 0 and 1.</long>
+            </locale>
+        </schema>
+        
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/swap_order</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Swap icon and title.</short>
+                <long>When enabled, window title will be on the left side and the icon on the right 
side.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/expand_applet</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>true</default>
+            <locale name="C">
+                <short>Expand the applet</short>
+                <long>When enabled, the applet will use up all available space in the panel.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/hide_icon</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Hide the icon</short>
+                <long>When enabled, the window icon will not be displayed.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/hide_title</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Hide the title</short>
+                <long>When enabled, the window title will not be displayed.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/show_tooltips</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Show tooltips over title and icon</short>
+                <long>When enabled, a tooltip carrying the name of the currently active window will be 
shown.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/title_size</key>
+            <owner>windowtitle</owner>
+            <type>int</type>
+            <default>16</default>
+            <locale name="C">
+                <short>Minimal title size</short>
+                <long>This size is used when the applet is not expanded or otherwise to determine the 
minimal size the title label can be shrunk to. The value represents the amount of pixels either in width or 
height, depending on the panel orientation.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/custom_style</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Use a custom style.</short>
+                <long>When enabled, custom font style and color will be used. When disabled, system theme 
defaults will be used.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/show_window_menu</key>
+            <owner>windowtitle</owner>
+            <type>bool</type>
+            <default>false</default>
+            <locale name="C">
+                <short>Show the window action menu on right click.</short>
+                <long>Will cause the window action menu to appear when the title is right-clicked. This 
experimental feature is still under development! Warning! In current feature state you will be unable to 
access the applet action menu via title-right click when this option is enabled! You may still do so by 
right-clicking the icon if it is not hidden.</long>
+            </locale>
+        </schema>
+
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/title_active_font</key>
+            <owner>windowtitle</owner>
+            <type>string</type>
+            <default>Sans 10</default>
+            <locale name="C">
+                <short>Active title font.</short>
+                <long>Font name and size for the active window state.</long>
+            </locale>
+        </schema>
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/title_inactive_font</key>
+            <owner>windowtitle</owner>
+            <type>string</type>
+            <default>Sans 10</default>
+            <locale name="C">
+                <short>Inactive title font.</short>
+                <long>Font name and size for the inactive window state.</long>
+            </locale>
+        </schema>
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/title_active_color_fg</key>
+            <owner>windowtitle</owner>
+            <type>string</type>
+            <default>#000000</default>
+            <locale name="C">
+                <short>Active title foreground color.</short>
+                <long>Title foreground color in hex format for the active window state.</long>
+            </locale>
+        </schema>
+       <schema>
+            <key>/schemas/apps/windowtitle-applet/prefs/title_inactive_color_fg</key>
+            <owner>windowtitle</owner>
+            <type>string</type>
+            <default>#808080</default>
+            <locale name="C">
+                <short>Inactive title foreground color.</short>
+                <long>Title foreground color in hex format for the inactive window state.</long>
+            </locale>
+        </schema>
+    </schemalist>
+</gconfschemafile>
diff --git a/window-title/windowtitle.ui b/window-title/windowtitle.ui
new file mode 100644
index 0000000..e9b0130
--- /dev/null
+++ b/window-title/windowtitle.ui
@@ -0,0 +1,557 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <object class="GtkDialog" id="properties">
+    <property name="can_focus">False</property>
+    <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | 
GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | 
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | 
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | 
GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | 
GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Window Title Preferences</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="icon_name">document-properties</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog_vbox">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="spacing">6</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="btn_close">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | 
GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | 
GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | 
GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | 
GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkNotebook" id="notebook1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <child>
+              <object class="GtkAlignment" id="alignment3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">10</property>
+                <property name="bottom_padding">10</property>
+                <property name="left_padding">10</property>
+                <property name="right_padding">10</property>
+                <child>
+                  <object class="GtkVBox" id="vbox1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">10</property>
+                    <child>
+                      <object class="GtkFrame" id="frame3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="bottom_padding">2</property>
+                            <property name="left_padding">10</property>
+                            <property name="right_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox5">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="swap_order">
+                                    <property name="label" translatable="yes">Swap icon/title 
_order</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="expand_applet">
+                                    <property name="label" translatable="yes">Expand applet</property>
+                                    <property name="visible">True</property>
+                                    <property name="sensitive">False</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="tooltip_text" translatable="yes">DIsabled until GTK+ 
developers fix the various bugs.
+You may change it using gconf-editor, but then you also need to set a fixed size.</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label8">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">General</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="bottom_padding">2</property>
+                            <property name="left_padding">10</property>
+                            <property name="right_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox4">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="hide_icon">
+                                    <property name="label" translatable="yes">Hide _icon</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Icon</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkFrame" id="frame2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">out</property>
+                        <child>
+                          <object class="GtkAlignment" id="alignment2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="bottom_padding">10</property>
+                            <property name="left_padding">10</property>
+                            <property name="right_padding">10</property>
+                            <child>
+                              <object class="GtkVBox" id="vbox3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="spacing">5</property>
+                                <child>
+                                  <object class="GtkCheckButton" id="hide_title">
+                                    <property name="label" translatable="yes">Hide title</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHBox" id="hbox2">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="spacing">10</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label4">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Alignment:</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHScale" id="scale_alignment">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="tooltip_text" translatable="yes">Set the title 
alignment.
+Note: only has effect when "Expand applet" is active.</property>
+                                        <property name="digits">2</property>
+                                        <property name="value_pos">left</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">True</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkHSeparator" id="hseparator1">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="padding">4</property>
+                                    <property name="position">2</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="custom_style">
+                                    <property name="label" translatable="yes">Custom _style</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_action_appearance">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">3</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkAlignment" id="alignment5">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="left_padding">12</property>
+                                    <child>
+                                      <object class="GtkTable" id="table_custom_style">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">False</property>
+                                        <property name="n_rows">3</property>
+                                        <property name="n_columns">3</property>
+                                        <child>
+                                          <object class="GtkLabel" id="label7">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xalign">0</property>
+                                            <property name="label" translatable="yes">Font color:</property>
+                                          </object>
+                                          <packing>
+                                            <property name="top_attach">2</property>
+                                            <property name="bottom_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label5">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="xalign">0</property>
+                                            <property name="label" translatable="yes">Font style:</property>
+                                          </object>
+                                          <packing>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkColorButton" id="btn_color_active">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="use_action_appearance">False</property>
+                                            <property name="color">#000000000000</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
+                                            <property name="top_attach">2</property>
+                                            <property name="bottom_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkFontButton" id="btn_font_active">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="use_action_appearance">False</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label9">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">Active</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">1</property>
+                                            <property name="right_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkLabel" id="label10">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">False</property>
+                                            <property name="label" translatable="yes">Inactive</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">2</property>
+                                            <property name="right_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkFontButton" id="btn_font_inactive">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="use_action_appearance">False</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">2</property>
+                                            <property name="right_attach">3</property>
+                                            <property name="top_attach">1</property>
+                                            <property name="bottom_attach">2</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkColorButton" id="btn_color_inactive">
+                                            <property name="visible">True</property>
+                                            <property name="can_focus">True</property>
+                                            <property name="receives_default">True</property>
+                                            <property name="use_action_appearance">False</property>
+                                            <property name="color">#000000000000</property>
+                                          </object>
+                                          <packing>
+                                            <property name="left_attach">2</property>
+                                            <property name="right_attach">3</property>
+                                            <property name="top_attach">2</property>
+                                            <property name="bottom_attach">3</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <placeholder/>
+                                        </child>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">True</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">4</property>
+                                  </packing>
+                                </child>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                        <child type="label">
+                          <object class="GtkLabel" id="label2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Title</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Appearance</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkAlignment" id="alignment1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="top_padding">10</property>
+                <property name="bottom_padding">10</property>
+                <property name="left_padding">10</property>
+                <property name="right_padding">10</property>
+                <child>
+                  <object class="GtkVBox" id="vbox2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">5</property>
+                    <child>
+                      <object class="GtkCheckButton" id="only_maximized">
+                        <property name="label" translatable="yes">Control _maximized windows only</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_action_appearance">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="hide_on_unmaximized">
+                        <property name="label" translatable="yes">_Hide when no active maximized 
windows</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_action_appearance">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="show_window_menu">
+                        <property name="label" translatable="yes">Show window _action menu on 
right-click</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip_text" translatable="yes">Will cause the window action menu 
to appear when the title is right-clicked.
+This experimental feature is still under development!
+Warning! In current feature state you will be unable to access the applet action menu via title-right click 
when this option is enabled! You may still do so by right-clicking the icon if it is not hidden. You may 
always change this setting from gconf-editor.</property>
+                        <property name="use_action_appearance">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="show_tooltips">
+                        <property name="label" translatable="yes">Show _tooltips</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_action_appearance">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">3</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Behavior</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-7">btn_close</action-widget>
+    </action-widgets>
+  </object>
+</interface>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]