diff options
Diffstat (limited to 'superkaramba/examples/taskBar/cleanbar/cleanbar.py')
-rw-r--r-- | superkaramba/examples/taskBar/cleanbar/cleanbar.py | 180 |
1 files changed, 88 insertions, 92 deletions
diff --git a/superkaramba/examples/taskBar/cleanbar/cleanbar.py b/superkaramba/examples/taskBar/cleanbar/cleanbar.py index c0da2a2..16bd18f 100644 --- a/superkaramba/examples/taskBar/cleanbar/cleanbar.py +++ b/superkaramba/examples/taskBar/cleanbar/cleanbar.py @@ -34,7 +34,7 @@ havexwi = os.system("which xwininfo") if (havexwi == 0): pass else: - print "\nCan't find xwininfo in your path." + print("\nCan't find xwininfo in your path.") fp = os.popen("xwininfo -root -stats") output = fp.read() @@ -49,8 +49,6 @@ for x in output: resY = int(param[1]) - - def drawTaskbar(widget): global taskPanels global taskText @@ -81,40 +79,41 @@ def drawTaskbar(widget): #build groups list that contains sub-lists of taskInfo sorted by group for j in range(len(taskList)): taskinfo = karamba.getTaskInfo(widget, taskList[j]) - - if knownGroups.has_key(taskinfo[2]) == 0: - groupCount = groupCount + 1 - if (taskinfo[7] == 1): - activeGroup = groupCount - knownGroups[taskinfo[2]] = 1 - thisGroup = [] - thisGroup.append(taskinfo) - groupRefs[taskinfo[2]] = len(groups) - groups.append(thisGroup) - else: - if (taskinfo[7] == 1): - activeGroup = groupRefs[taskinfo[2]] + 1 - knownGroups[taskinfo[2]] = knownGroups[taskinfo[2]] + 1 - thisGroup = groups[groupRefs[taskinfo[2]]] - thisGroup.append(taskinfo) - + + if (taskinfo[2] in knownGroups) == 0: + groupCount = groupCount + 1 + if (taskinfo[7] == 1): + activeGroup = groupCount + knownGroups[taskinfo[2]] = 1 + thisGroup = [] + thisGroup.append(taskinfo) + groupRefs[taskinfo[2]] = len(groups) + groups.append(thisGroup) + else: + if (taskinfo[7] == 1): + activeGroup = groupRefs[taskinfo[2]] + 1 + knownGroups[taskinfo[2]] = knownGroups[taskinfo[2]] + 1 + thisGroup = groups[groupRefs[taskinfo[2]]] + thisGroup.append(taskinfo) + #fill out the task bar j = 0 - for group in groups: + for group in groups: #safety check (could be more task groups than bar is long) if (j < length): - karamba.showImage(widget, taskPanels[j]) - if len(group) != 1: - karamba.changeText(widget, taskText[j], group[0][2] + " [" + str(len(group)) + "]") - else: - karamba.changeText(widget, taskText[j], (group[0][0])) - j = j + 1 + karamba.showImage(widget, taskPanels[j]) + if len(group) != 1: + karamba.changeText(widget, taskText[j], group[0][2].decode('utf-8') + ' [' + str(len(group)) + ']') + else: + karamba.changeText(widget, taskText[j], group[0][0].decode('utf-8')) + j = j + 1 if (activeGroup != 0): - karamba.changeTextShadow(widget, taskText[activeGroup - 1], 1) - karamba.changeTextColor(widget, taskText[activeGroup - 1], 239, 220, 11) + karamba.changeTextShadow(widget, taskText[activeGroup - 1], 1) + karamba.changeTextColor(widget, taskText[activeGroup - 1], 239, 220, 11) - + karamba.moveWidget(widget, 0, resY - 32) + karamba.resizeWidget(widget, resX, resY) karamba.redrawWidget(widget) #this is called when your widget is initialized @@ -126,7 +125,7 @@ def initWidget(widget): global timeText karamba.createImage(widget, resX - 149, 0, "pics/rightend_new.png") - numOfTasks = (resX - 198 - 149)/121 + numOfTasks = (resX - 198 - 149) // 121 timeText = karamba.createText(widget, resX - 149 + 54, 10, 140, 20, "time") karamba.changeTextColor(widget, timeText, 0,0,0) @@ -143,13 +142,13 @@ def initWidget(widget): # called to indicate that a new task is currently started def startupAdded(widget, startup): - pass + pass # called whenever a startup is removed. Which either means the task is # successfully started (and taskAdded will be called), or the task could # not be started for some reason. def startupRemoved(widget, startup): - pass + pass # called whenever a new task has been started def taskAdded(widget, task): @@ -190,78 +189,75 @@ def widgetClicked(widget, x, y, button): global taskMenu global taskMenuLookup - taskSelected = (x-198)/121 + taskSelected = (x-198) // 121 ## Make sure its a valid task if (0 <= taskSelected < numOfTasks): taskList = karamba.getTaskList(widget) #free last menu - karamba.deleteMenu(widget, taskMenu) - - #create new menu - taskMenu = karamba.createMenu(widget) - taskMenuLoopup = {} - - length = len(taskList) - if (numOfTasks < length): - length = numOfTasks - - - knownGroups = {} - groups = [] - groupRefs = {} - for j in range(len(taskList)): - taskinfo = karamba.getTaskInfo(widget, taskList[j]) - - if knownGroups.has_key(taskinfo[2]) == 0: - knownGroups[taskinfo[2]] = 1 - thisGroup = [] - thisGroup.append(taskinfo) - groupRefs[taskinfo[2]] = len(groups) - groups.append(thisGroup) - else: - knownGroups[taskinfo[2]] = knownGroups[taskinfo[2]] + 1 - thisGroup = groups[groupRefs[taskinfo[2]]] - thisGroup.append(taskinfo) - - if taskSelected < len(groups): - taskGroup = groups[taskSelected] - - - if len(taskGroup) == 1: - #only one task in group - just switch to that app - ## perform the task action (see Task API for list of numbers) - karamba.performTaskAction(widget, taskGroup[0][8], 8) - - else: - #more than one task in this group, make a popup - for task in taskGroup: - #if it's minimized, put []'s around name - if task[5] == 1: - item = karamba.addMenuItem(widget, taskMenu, "[ " + task[0] + " ]", task[2]) - else: - item = karamba.addMenuItem(widget, taskMenu, task[0], task[2]) - #save the taskInfo item for later use - #so we will know info for the task that - #will be clicked in the callback - taskMenuLookup[item] = task - - numOfItems = len(taskGroup) - karamba.popupMenu(widget, taskMenu, 198 + (121*taskSelected), -1 * (numOfItems * 26)) - - + karamba.deleteMenu(widget, taskMenu) + + #create new menu + taskMenu = karamba.createMenu(widget) + taskMenuLoopup = {} + + length = len(taskList) + if (numOfTasks < length): + length = numOfTasks + + + knownGroups = {} + groups = [] + groupRefs = {} + for j in range(len(taskList)): + taskinfo = karamba.getTaskInfo(widget, taskList[j]) + + if (taskinfo[2] in knownGroups) == 0: + knownGroups[taskinfo[2]] = 1 + thisGroup = [] + thisGroup.append(taskinfo) + groupRefs[taskinfo[2]] = len(groups) + groups.append(thisGroup) + else: + knownGroups[taskinfo[2]] = knownGroups[taskinfo[2]] + 1 + thisGroup = groups[groupRefs[taskinfo[2]]] + thisGroup.append(taskinfo) + + if taskSelected < len(groups): + taskGroup = groups[taskSelected] + + if len(taskGroup) == 1: + #only one task in group - just switch to that app + ## perform the task action (see Task API for list of numbers) + karamba.performTaskAction(widget, taskGroup[0][8], 8) + else: + #more than one task in this group, make a popup + for task in taskGroup: + #if it's minimized, put []'s around name + if task[5] == 1: + item = karamba.addMenuItem(widget, taskMenu, "[ " + task[0].decode('utf-8') + " ]", task[2].decode('utf-8')) + else: + item = karamba.addMenuItem(widget, taskMenu, task[0].decode('utf-8'), task[2].decode('utf-8')) + #save the taskInfo item for later use + #so we will know info for the task that + #will be clicked in the callback + taskMenuLookup[item] = task + + numOfItems = len(taskGroup) + karamba.popupMenu(widget, taskMenu, 198 + (121*taskSelected), -1 * (numOfItems * 26)) if (taskSelected == numOfTasks): karamba.toggleShowDesktop(widget) + #This gets called when an item is clicked in a popup menu you have created. # menu = a reference to the menu # id = the number of the item that was clicked. def menuItemClicked(widget, menu, id): - global taskMenuLookup + global taskMenuLookup - taskinfo = taskMenuLookup[id] - karamba.performTaskAction(widget, taskinfo[8], 8) - + taskinfo = taskMenuLookup[id] + karamba.performTaskAction(widget, taskinfo[8], 8) + |