def meterClicked(widget, meter, button): """ This gets called when a meter (image, text, etc) is clicked. NOTE you must use attachClickArea() to make a meter clickable. widget = reference to your theme meter = the meter clicked button = the button clicked """ global active global raised_alarm global curtime if meter == startButton: if active == 0: print "startButton" karamba.showBar(widget, progressBar) if zerotime.time < alarmtime.time: karamba.setBarMinMax(widget, progressBar, \ zerotime.time, alarmtime.time) else: karamba.setBarMinMax(widget, progressBar, \ alarmtime.time, zerotime.time) karamba.setBarValue(widget, progressBar, curtime.time) karamba.hideImage(widget, done) karamba.setImagePath(widget, startButton, "img/startpause.png") karamba.setImagePath(widget, endButton, "img/stoppause.png") active = 1 else: print "startButton (Pause)" karamba.setImagePath(widget, startButton, "img/start.png") karamba.setImagePath(widget, endButton, "img/stop.png") active = 0 elif meter == endButton: if active == 0: print "endButton" curtime = zerotime.copy() showTime(widget, curtime) karamba.showImage(widget, done) karamba.hideBar(widget, progressBar) curtimefh = open(curtimefile, "w") curtimefh.write(str(curtime)) curtimefh.close() karamba.setImagePath(widget, startButton, "img/start.png") karamba.setImagePath(widget, endButton, "img/stop.png") raised_alarm = False else: print "endButton (Pause)" karamba.setImagePath(widget, startButton, "img/start.png") karamba.setImagePath(widget, endButton, "img/stop.png") active = 0 elif meter == done: print "done" alarmtime.from_string(getValue(widget, "Alarm Time", str(alarmtime))) karamba.writeConfigEntry(widget, "alarmtime", str(alarmtime)) else: print "anotherbutton"
def initWidget(widget): global richtext global penguin karamba.resizeWidget(widget, 360, 520) penguin = karamba.createImage( widget, 250, 150, karamba.getThemePath(widget) + "/penguin_executive.png") karamba.hideImage(widget, penguin) text = """ <h1>Richtext Example</h1> <p>A rich text object allows to display a string interpreted as rich text. To create a rich text object use the command:<br> <p align="center">karamba.createRichText(widget, text)</p> A simple subset of <a href="kfmclient openURL http://www.selfhtml.org"><font color="black"><i>HTML</i></font></a>-tags is used to encode the formatting commands.</p> <p><font size=+2>Some features:</font> <ul> <li>Numbered and unnumbered lists</li> <li>Inline Images <img src=\"""" + karamba.getThemePath( widget) + u"""info.png\"</li> <li>Various <font color="red">different</font><font color="blue"> text</font><font color="green"> colours</font></li> <li>Hyperlinks: <a href="kfmclient openURL http://netdragon.sourceforge.net"> Superkaramba Homepage</a></li> <li>Links can also <a href="#trigger">trigger</a> actions in the script</li> <li><i>Various</i> <b>different</b> <u>caracter</u> <s>styles</s></li> <li><a href="kfmclient openURL http://www.unicode.org">Unicode</a>: \u03B6 \u03B3 \u03BB \u03A3 \u03A9 </li> <li>Simple Tables: <table bgcolor="darkgray" border="1" width="80%"> <tr><th colspan="3">Header</th></tr> <tr><td>Cell (1,1)</td><td>Cell (1,2)</td><td>Cell (1,3)</td><tr> <tr><td>Cell (2,1)</td><td>Cell (2,2)</td><td>Cell (2,3)</td><tr> </table></li> </ul> For a complete documentation of all supported tags look at: <a href="kfmclient openURL http://doc.trolltech.com/3.0/qstylesheet.html"> http://doc.trolltech.com/3.0/qstylesheet.html</a>. </p><br> """ richtext = karamba.createRichText(widget, text) karamba.moveRichText(widget, richtext, 10, 10) print "richText Size = ", karamba.getRichTextSize(widget, richtext) karamba.setRichTextWidth(widget, richtext, 345) #karamba.deleteRichText(widget, richtext) karamba.redrawWidget(widget)
def initWidget(widget): global richtext global penguin karamba.resizeWidget(widget, 360, 520) penguin = karamba.createImage(widget, 250, 150, karamba.getThemePath(widget) + "/penguin_executive.png") karamba.hideImage(widget, penguin) text = """ <h1>Richtext Example</h1> <p>A rich text object allows to display a string interpreted as rich text. To create a rich text object use the command:<br> <p align="center">karamba.createRichText(widget, text)</p> A simple subset of <a href="kfmclient openURL http://www.selfhtml.org"><font color="black"><i>HTML</i></font></a>-tags is used to encode the formatting commands.</p> <p><font size=+2>Some features:</font> <ul> <li>Numbered and unnumbered lists</li> <li>Inline Images <img src=\"""" + karamba.getThemePath(widget) + u"""info.png\"</li> <li>Various <font color="red">different</font><font color="blue"> text</font><font color="green"> colours</font></li> <li>Hyperlinks: <a href="kfmclient openURL http://netdragon.sourceforge.net"> Superkaramba Homepage</a></li> <li>Links can also <a href="#trigger">trigger</a> actions in the script</li> <li><i>Various</i> <b>different</b> <u>caracter</u> <s>styles</s></li> <li><a href="kfmclient openURL http://www.unicode.org">Unicode</a>: \u03B6 \u03B3 \u03BB \u03A3 \u03A9 </li> <li>Simple Tables: <table bgcolor="darkgray" border="1" width="80%"> <tr><th colspan="3">Header</th></tr> <tr><td>Cell (1,1)</td><td>Cell (1,2)</td><td>Cell (1,3)</td><tr> <tr><td>Cell (2,1)</td><td>Cell (2,2)</td><td>Cell (2,3)</td><tr> </table></li> </ul> For a complete documentation of all supported tags look at: <a href="kfmclient openURL http://doc.trolltech.com/3.0/qstylesheet.html"> http://doc.trolltech.com/3.0/qstylesheet.html</a>. </p><br> """ richtext = karamba.createRichText(widget, text) karamba.moveRichText(widget, richtext, 10, 10) print "richText Size = ", karamba.getRichTextSize(widget, richtext) karamba.setRichTextWidth(widget, richtext, 345) #karamba.deleteRichText(widget, richtext) karamba.redrawWidget(widget)
def meterClicked(widget, meter, button): global penguin global penguin_hidden global richtext print "Meter clicked", meter if meter == "trigger": if penguin_hidden: karamba.showImage(widget, penguin) penguin_hidden = 0 else: karamba.hideImage(widget, penguin) penguin_hidden = 1 if meter == "delete": karamba.deleteRichText(widget, richtext) karamba.redrawWidget(widget)
def drawTaskbar(widget): global taskPanels global taskText global numOfTasks taskList = karamba.getTaskList(widget) for image in taskPanels: karamba.hideImage(widget, image) for text in taskText: karamba.changeText(widget, text, "") karamba.changeTextShadow(widget, text, 0) karamba.changeTextColor(widget, text, 0, 0, 0) length = len(taskList) if (numOfTasks < length): length = numOfTasks knownGroups = {} groups = [] groupRefs = {} activeGroup = 0 groupCount = 0 #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) #fill out the task bar j = 0 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 if (activeGroup != 0): karamba.changeTextShadow(widget, taskText[activeGroup - 1], 1) karamba.changeTextColor(widget, taskText[activeGroup - 1], 239, 220, 11) karamba.redrawWidget(widget)
def drawTaskbar(widget): global taskPanels global taskText global numOfTasks taskList = karamba.getTaskList(widget) for image in taskPanels: karamba.hideImage(widget, image) for text in taskText: karamba.changeText(widget, text, "") karamba.changeTextShadow(widget, text, 0) karamba.changeTextColor(widget, text, 0, 0, 0) length = len(taskList) if numOfTasks < length: length = numOfTasks knownGroups = {} groups = [] groupRefs = {} activeGroup = 0 groupCount = 0 # 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) # fill out the task bar j = 0 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 if activeGroup != 0: karamba.changeTextShadow(widget, taskText[activeGroup - 1], 1) karamba.changeTextColor(widget, taskText[activeGroup - 1], 239, 220, 11) karamba.redrawWidget(widget)
def widgetUpdated(widget): global images, c b = c%2 # Create & delete if(images[0]): karamba.deleteImage(widget, images[0]) images[0] = 0 else: images[0] = karamba.createImage(widget, 0, 20, "flag.png") # Hide & Show if(b): karamba.hideImage(widget, images[1]) else: karamba.showImage(widget, images[1]) # size & resize size = karamba.getImageSize(widget, images[1]) print "getImageSize: " + str(size) print "getImageWidth: " + str(karamba.getImageWidth(widget, images[1])) print "getImageHeight: " + str(karamba.getImageHeight(widget, images[1])) # Auto size #size = ((b * 200) + 200, size[1]) #karamba.resizeImage(widget, images[1], size[0], size[1]) # pos & move pos = karamba.getImagePos(widget, images[2]) print "getImagePos: " + str(pos) pos = (b * 200, pos[1]) karamba.moveImage(widget, images[2], pos[0], pos[1]) # Sensor sensor = karamba.getImageSensor(widget, images[3]) print "getSensor: " + str(sensor) if(b): karamba.setImageSensor(widget, images[3], 'SENSOR=PROGRAM PROGRAM="/tmp/test1.sh"') else: karamba.setImageSensor(widget, images[3], 'SENSOR=PROGRAM PROGRAM="/tmp/test2.sh"') # Value v = karamba.getImagePath(widget, images[4]) print "getImagePath: ", v if(b): v = 'flag.png' else: v = 'flag2.png' karamba.setImagePath(widget, images[4], v) if((c % 10) == 0): karamba.removeImageEffects(widget, images[5]) karamba.removeImageEffects(widget, images[6]) karamba.removeImageEffects(widget, images[7]) else: karamba.changeImageIntensity(widget, images[5], (float(c%10) / 5 - 1.0)) karamba.changeImageChannelIntensity(widget, images[6], (float(c%10) / 5 - 1.0), 'blue') karamba.changeImageToGray(widget, images[7], 0) if((c % 9) == 0): karamba.removeImageTransformations(widget, images[8]) karamba.removeImageTransformations(widget, images[9]) karamba.removeImageTransformations(widget, images[10]) else: karamba.rotateImage(widget, images[8], (c%9)*20 + 45) karamba.resizeImage(widget, images[9], 50 + (c%5)*10, size[1]) karamba.resizeImageSmooth(widget, images[10], 50 + (c%5)*10, size[1]) if((c % 10) == 0): karamba.addImageTooltip(widget, images[11], str(c)) if((c % 20) == 0): if(images[12]): karamba.deleteImage(widget, images[12]) images[12] = 0 else: images[12] = karamba.createBackgroundImage(widget, 0, 340, "flag.png") if(images[13]): karamba.deleteImage(widget, images[13]) images[13] = 0 else: tlist = karamba.getTaskList(widget) images[13] = karamba.createTaskIcon(widget, 50, 340, tlist[c % len(tlist)]) c += 1
def widgetUpdated(widget): global images, c b = c % 2 # Create & delete if (images[0]): karamba.deleteImage(widget, images[0]) images[0] = 0 else: images[0] = karamba.createImage(widget, 0, 20, "flag.png") # Hide & Show if (b): karamba.hideImage(widget, images[1]) else: karamba.showImage(widget, images[1]) # size & resize size = karamba.getImageSize(widget, images[1]) print "getImageSize: " + str(size) print "getImageWidth: " + str(karamba.getImageWidth(widget, images[1])) print "getImageHeight: " + str(karamba.getImageHeight(widget, images[1])) # Auto size #size = ((b * 200) + 200, size[1]) #karamba.resizeImage(widget, images[1], size[0], size[1]) # pos & move pos = karamba.getImagePos(widget, images[2]) print "getImagePos: " + str(pos) pos = (b * 200, pos[1]) karamba.moveImage(widget, images[2], pos[0], pos[1]) # Sensor sensor = karamba.getImageSensor(widget, images[3]) print "getSensor: " + str(sensor) if (b): karamba.setImageSensor(widget, images[3], 'SENSOR=PROGRAM PROGRAM="/tmp/test1.sh"') else: karamba.setImageSensor(widget, images[3], 'SENSOR=PROGRAM PROGRAM="/tmp/test2.sh"') # Value v = karamba.getImagePath(widget, images[4]) print "getImagePath: ", v if (b): v = 'flag.png' else: v = 'flag2.png' karamba.setImagePath(widget, images[4], v) if ((c % 10) == 0): karamba.removeImageEffects(widget, images[5]) karamba.removeImageEffects(widget, images[6]) karamba.removeImageEffects(widget, images[7]) else: karamba.changeImageIntensity(widget, images[5], (float(c % 10) / 5 - 1.0)) karamba.changeImageChannelIntensity(widget, images[6], (float(c % 10) / 5 - 1.0), 'blue') karamba.changeImageToGray(widget, images[7], 0) if ((c % 9) == 0): karamba.removeImageTransformations(widget, images[8]) karamba.removeImageTransformations(widget, images[9]) karamba.removeImageTransformations(widget, images[10]) else: karamba.rotateImage(widget, images[8], (c % 9) * 20 + 45) karamba.resizeImage(widget, images[9], 50 + (c % 5) * 10, size[1]) karamba.resizeImageSmooth(widget, images[10], 50 + (c % 5) * 10, size[1]) if ((c % 10) == 0): karamba.addImageTooltip(widget, images[11], str(c)) if ((c % 20) == 0): if (images[12]): karamba.deleteImage(widget, images[12]) images[12] = 0 else: images[12] = karamba.createBackgroundImage(widget, 0, 340, "flag.png") if (images[13]): karamba.deleteImage(widget, images[13]) images[13] = 0 else: tlist = karamba.getTaskList(widget) images[13] = karamba.createTaskIcon(widget, 50, 340, tlist[c % len(tlist)]) c += 1