NUMBER_OF_DESKTOPS = 4
"""The number of desktops/workspaces which can be scrolled between."""
-DEFAULT_ICON_WIDTH = 16
-"""The width of the default icon."""
-DEFAULT_ICON_HEIGHT = 16
-"""The height of the default icon."""
-DEFAULT_ICON = \
-"OOO\377\251\251\251\377\251\251\251\377\251\251\251\377\251\251\251\377\251"+\
-"\251\251\377\251\251\251\377\251\251\251\377\251\251\251\377\251\251\251\377"+\
-"\251\251\251\377\216\216\216\377___\377\352\352\352\0\352\352\352\0\0\0\0"+\
-"\0OOO\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"+\
-"\377\377\377\377\377\377\377\377\376\376\376\377\376\376\376\377\373\373\373"+\
-"\377\371\371\370\377\302\302\302\377\244\244\244\377BBB\377\352\352\352\0"+\
-"\0\0\0\0OOO\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"+\
-"\377\377\377\377\377\376\376\376\377\374\374\374\377\372\372\372\377\367\367"+\
-"\367\377\365\365\365\377\265\265\265\377``_\377\30\30\30\377\320\320\320\0"+\
-"\0\0\0\0OOO\377\377\377\377\377\377\377\377\377\377\377\377\377\376\376\376"+\
-"\377\374\374\374\377\372\372\372\377\367\367\367\377\365\365\365\377\363\363"+\
-"\362\377\361\361\360\377\356\356\355\377\354\354\352\377jjj\377\234\234\234"+\
-"\0\0\0T\0OOO\377\377\377\377\377\377\377\377\377\375\375\375\377\373\373\373"+\
-"\377\371\371\370\377\366\366\366\377\364\364\363\377\362\362\361\377\357\357"+\
-"\356\377\355\355\354\377\352\352\351\377\350\350\347\377mmm\377\234\234\234"+\
-"\0\0\0T\0OOO\377\376\376\376\377\373\373\373\377\371\371\370\377\366\366\366"+\
-"\377\364\364\363\377\362\362\361\377\357\357\356\377\355\355\354\377\352\352"+\
-"\351\377\350\350\347\377\346\346\344\377\344\344\342\377lll\377\234\234\234"+\
-"\0\0\0T\0OOO\377\375\375\375\377\370\370\367\377\365\365\364\377\363\363\362"+\
-"\377\360\360\357\377\356\356\355\377\354\354\352\377\352\352\350\377\347\347"+\
-"\345\377\345\345\343\377\342\342\340\377\340\340\336\377lll\377\234\234\234"+\
-"\0\0\0T\0OOO\377\373\373\373\377\363\363\362\377\360\360\357\377\356\356\355"+\
-"\377\354\354\352\377\351\351\350\377\347\347\345\377\345\345\343\377\342\342"+\
-"\340\377\340\340\336\377\336\336\333\377\333\333\331\377llk\377\234\234\234"+\
-"\0\0\0T\0OOO\377\372\372\372\377\357\357\356\377\355\355\353\377\353\353\351"+\
-"\377\350\350\346\377\346\346\344\377\343\343\341\377\341\341\337\377\337\337"+\
-"\334\377\335\335\332\377\332\332\327\377\330\330\325\377kkj\377\234\234\234"+\
-"\0\0\0T\0OOO\377\370\370\370\377\353\353\351\377\350\350\346\377\346\346\344"+\
-"\377\343\343\341\377\341\341\337\377\337\337\334\377\335\335\332\377\332\332"+\
-"\327\377\330\330\325\377\325\325\322\377\323\323\320\377kkk\377\234\234\234"+\
-"\0\0\0\0\0OOO\377\367\367\367\377\347\347\345\377\345\345\343\377\342\342"+\
-"\340\377\340\340\336\377\336\336\333\377\333\333\330\377\331\331\326\377\326"+\
-"\326\323\377\324\324\321\377\322\322\316\377\320\320\314\377jjj\377\234\234"+\
-"\234\0\0\0\0\0OOO\377\366\366\365\377\342\342\340\377\340\340\336\377\336"+\
-"\336\333\377\333\333\331\377\331\331\326\377\326\326\323\377\324\324\321\377"+\
-"\322\322\316\377\320\320\314\377\315\315\311\377\314\314\310\377llk\377\234"+\
-"\234\234\0\0\0\0\0OOO\377\364\364\364\377\337\337\334\377\334\334\332\377"+\
-"\332\332\327\377\330\330\325\377\326\326\322\377\323\323\320\377\321\321\315"+\
-"\377\316\316\312\377\315\315\310\377\314\314\307\377\314\314\307\377jjj\377"+\
-"\234\234\234\0\0\0\0\0OOO\377\344\344\343\377\316\316\313\377\312\312\307"+\
-"\377\304\304\301\377\302\302\277\377\301\301\275\377\274\274\270\377\267\267"+\
-"\264\377\266\266\262\377\265\265\262\377\265\265\261\377\263\263\257\377["+\
-"[[\377\234\234\234\0\0\0\0\0OOO\377AAA\377;;;\377998\377554\377554\377553"+\
-"\377110\377..-\377..-\377---\377--,\377+++\377111\377\234\234\234\0\0\0\0"+\
-"\0OOO\0AAA\0;;;\0""998\0""554\0""554\0""553\0""110\0..-\0..-\0---\0--,\0+"+\
-"++\0""111\0\271\271\271\0\0\0\0\0"
-"""The icon which will be used when an application doesn't supply one. This
- was generated by making the icon in gimp (with an alpha channel!) and saving
- it as a C source file."""
-
#############################################################################
print "Loaded config.py"
unsigned long num = (unsigned) -1;
unsigned long *data;
unsigned long w, h, i = 0;
- bool freeit = false;
for (int j = 0; j < _nicons; ++j)
delete [] _icons[j].data;
delete [] _icons;
_nicons = 0;
- if (!otk::Property::get(_window, otk::Property::atoms.net_wm_icon,
+ if (otk::Property::get(_window, otk::Property::atoms.net_wm_icon,
otk::Property::atoms.cardinal, &num, &data)) {
- // use default icon(s)
- num = openbox->screen(_screen)->config().icon_length;
- data = openbox->screen(_screen)->config().default_icon;
- } else
- freeit = true;
-
- // figure out how man valid icons are in here
- while (num - i > 2) {
- w = data[i++];
- h = data[i++];
- i += w * h;
- if (i > num) break;
- ++_nicons;
- }
-
- _icons = new Icon[_nicons];
+ // figure out how man valid icons are in here
+ while (num - i > 2) {
+ w = data[i++];
+ h = data[i++];
+ i += w * h;
+ if (i > num) break;
+ ++_nicons;
+ }
- // store the icons
- i = 0;
- for (int j = 0; j < _nicons; ++j) {
- w = _icons[j].w = data[i++];
+ _icons = new Icon[_nicons];
+
+ // store the icons
+ i = 0;
+ for (int j = 0; j < _nicons; ++j) {
+ w = _icons[j].w = data[i++];
h = _icons[j].h = data[i++];
_icons[j].data = new unsigned long[w * h];
::memcpy(_icons[j].data, &data[i], w * h * sizeof(unsigned long));
i += w * h;
assert(i <= num);
- }
+ }
- if (freeit)
delete [] data;
+ }
if (_nicons <= 0) {
_nicons = 1;
drag_threshold = 3;
if (!python_get_long("NUMBER_OF_DESKTOPS", (long*)&num_desktops))
num_desktops = 1;
-
- otk::ustring s;
- long w, h;
- if (python_get_string("DEFAULT_ICON", &s) && s.bytes() > 2 &&
- python_get_long("DEFAULT_ICON_WIDTH", &w) &&
- python_get_long("DEFAULT_ICON_HEIGHT", &h) &&
- (unsigned)(w * h) == s.bytes() / sizeof(unsigned long)) {
- default_icon = new unsigned long[s.bytes() / sizeof(unsigned long) + 2];
- default_icon[0] = w;
- default_icon[1] = h;
- memcpy(default_icon + 2, s.data(), s.bytes());
- } else {
- default_icon = 0;
- }
-
- icon_length = s.bytes();
}
Config::~Config()
{
- if (default_icon) delete [] default_icon;
}
}