diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-21 18:42:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-21 18:42:39 +0000 |
| commit | a52a6d96d701c993896f276e4198003317632aaf (patch) | |
| tree | be2f51e6a433d1fdf9a7c8248b343cb3f6297212 /python/historyplacement.py | |
| parent | a36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6 (diff) | |
rm the old code including the .pys and the c++ shit
Diffstat (limited to 'python/historyplacement.py')
| -rw-r--r-- | python/historyplacement.py | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/python/historyplacement.py b/python/historyplacement.py deleted file mode 100644 index 0421a223..00000000 --- a/python/historyplacement.py +++ /dev/null @@ -1,164 +0,0 @@ -############################################################################## -### The history window placement algorithm. ebind historyplacement.place ### -### to the ob.EventAction.PlaceWindow event to use it. ### -############################################################################## - -import windowplacement, config, hooks - -def place(data): - """Place a window usingthe history placement algorithm.""" - _place(data) - -export_functions = place - -############################################################################## - -config.add('historyplacement', - 'ignore_requested_positions', - 'Ignore Requested Positions', - "When true, the placement algorithm will attempt to place " + \ - "windows even when they request a position (like XMMS can)." + \ - "Note this only applies to 'normal' windows, not to special " + \ - "cases like desktops and docks.", - 'boolean', - 0) -config.add('historyplacement', - 'dont_duplicate', - "Don't Diplicate", - "When true, if 2 copies of the same match in history are to be " + \ - "placed before one of them is closed (so it would be placed " + \ - "over-top of the last one), this will cause the second window to "+\ - "not be placed via history, and the 'Fallback Algorithm' will be "+\ - "used instead.", - 'boolean', - 1) -config.add('historyplacement', - 'filename', - 'History Database Filename', - "The name of the file where history data will be stored. The " + \ - "number of the screen is appended onto this name. The file will " +\ - "be placed in ~/.openbox/.", - 'string', - 'historydb') -config.add('historyplacement', - 'fallback', - 'Fallback Algorithm', - "The window placement algorithm that will be used when history " + \ - "placement does not have a place for the window.", - 'enum', - windowplacement.random, - options = windowplacement.export_functions) - -########################################################################### - -########################################################################### -### Internal stuff, should not be accessed outside the module. ### -########################################################################### - -import ob, os, string - -_data = [] - -class _State: - def __init__(self, resname, resclass, role, x, y): - self.resname = resname - self.resclass = resclass - self.role = role - self.x = x - self.y = y - self.placed = 0 - def __eq__(self, other): - if self.resname == other.resname and \ - self.resclass == other.resclass and \ - self.role == other.role: - return 1 - return 0 - -def _load(): - global _data - try: - file = open(os.environ['HOME'] + '/.openbox/' + \ - config.get('historyplacement', 'filename') + \ - "." + str(ob.Openbox.screenNumber()), 'r') - # read data - for line in file.readlines(): - line = line[:-1] # drop the '\n' - try: - s = string.split(line, '\0') - state = _State(s[0], s[1], s[2], - int(s[3]), int(s[4])) - - _data.append(state) - - except ValueError: pass - except IndexError: pass - file.close() - except IOError: pass - -def _save(): - file = open(os.environ['HOME'] + '/.openbox/'+ \ - config.get('historyplacement', 'filename') + \ - "." + str(ob.Openbox.screenNumber()), 'w') - if file: - for i in _data: - file.write(i.resname + '\0' + - i.resclass + '\0' + - i.role + '\0' + - str(i.x) + '\0' + - str(i.y) + '\n') - file.close() - -def _create_state(client): - area = client.area() - return _State(client.resName(), client.resClass(), - client.role(), area[0], area[1]) - -def _place(client): - state = _create_state(client) - try: - print "looking for : " + state.resname + " : " + \ - state.resclass + " : " + state.role - try: - i = _data.index(state) - except ValueError: - print "No match in history" - else: - coords = _data[i] # get the equal element - print "Found in history ("+str(coords.x)+","+\ - str(coords.y)+")" - if not (config.get('historyplacement', 'dont_duplicate') \ - and coords.placed): - coords.placed = 1 - if ob.Openbox.state() != ob.State.Starting: -# if not (config.get('historyplacement', 'ignore_requested_positions') \ -# and data.client.normal()): -# if data.client.positionRequested(): return - ca = client.area() - client.setArea((coords.x, coords.y, ca[2], ca[3])) - return - else: - print "Already placed another window there" - except TypeError: - pass - fallback = config.get('historyplacement', 'fallback') - if fallback: fallback(client) - -def _save_window(client): - global _data - state = _create_state(client) - print "looking for : " + state.resname + " : " + state.resclass + \ - " : " + state.role - - try: - print "replacing" - i = _data.index(state) - _data[i] = state # replace it - except ValueError: - print "appending" - _data.append(state) - -hooks.startup.append(_load) -hooks.shutdown.append(_save) -hooks.closed.append(_save_window) - -print "Loaded historyplacement.py" |
