You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeutils/superkaramba/examples/mouseDrag/karmix.py

191 lines
7.1 KiB

# Karmix 0.1
# Written by Tian ( http://www.c-sait.net )
# Functionality moved by Ryan Nickell (p0z3r@mail.com)
# This theme is demonstrates how to use mouse buttons
# being dragged in a theme.
# It shows how to use it for slider bars, but you can
# also apply this to anything you want like moving images
# and other things programmatically.
#this import statement allows access to the karamba functions
import karamba
import ossaudiodev
mixer = ""
onLeftButton = 0
onMidButton = 0
#this is called when you widget is initialized
def initWidget(widget):
global mixer
mixer = ossaudiodev.openmixer()
vol_main = karamba.getThemeImage(widget, "vol_main")
(l, r) = mixer.get(ossaudiodev.SOUND_MIXER_VOLUME)
vol_main_value = max(l, r)
karamba.resizeImage(widget, vol_main, vol_main_value, 10)
vol_pcm = karamba.getThemeImage(widget, "vol_pcm")
(l, r) = mixer.get(ossaudiodev.SOUND_MIXER_PCM)
vol_pcm_value = max(l, r)
karamba.resizeImage(widget, vol_pcm, vol_pcm_value, 10)
vol_cd = karamba.getThemeImage(widget, "vol_cd")
(l, r) = mixer.get(ossaudiodev.SOUND_MIXER_CD)
vol_cd_value = max(l, r)
karamba.resizeImage(widget, vol_cd, vol_cd_value, 10)
vol_mic = karamba.getThemeImage(widget, "vol_mic")
(l, r) = mixer.get(ossaudiodev.SOUND_MIXER_MIC)
vol_mic_value = max(l, r)
karamba.resizeImage(widget, vol_mic, vol_mic_value, 10)
karamba.redrawWidget(widget)
#this is called everytime your widget is updated
#the update inverval is specified in the .theme file
def widgetUpdated(widget):
pass
#This gets called everytime our widget is clicked.
#Notes:
# widget = reference to our widget
# x = x position (relative to our widget)
# y = y position (relative to our widget)
# botton = button clicked:
# 1 = Left Mouse Button
# 2 = Middle Mouse Button
# 3 = Right Mouse Button, but this will never happen
# because the right mouse button brings up the
# Karamba menu.
# 4,5 = Scroll wheel up and down
def widgetClicked(widget, x, y, button):
pass
#This gets called everytime our widget is clicked.
#Notes
# widget = reference to our widget
# x = x position (relative to our widget)
# y = y position (relative to our widget)
# botton = button being held:
# 0 = No Mouse Button
# 1 = Left Mouse Button
# 2 = Middle Mouse Button
# 3 = Right Mouse Button, but this will never happen
# because the right mouse button brings up the
# Karamba menu.
def widgetMouseMoved(widget, x, y, button):
global onMidButton,onLeftButton
global mixer
if(button == 1 and onLeftButton == 0):
# We are holding the left button here
if ((y>=17) and (y<=28)):
vol_main = karamba.getThemeImage(widget, "vol_main")
vol_main_value = max(min(x-40,100),0)
karamba.resizeImage(widget, vol_main, vol_main_value, 10)
mixer.set(ossaudiodev.SOUND_MIXER_VOLUME, (vol_main_value, vol_main_value))
karamba.redrawWidget(widget)
if ((y>=47) and (y<=58)):
vol_pcm = karamba.getThemeImage(widget, "vol_pcm")
vol_pcm_value = max(min(x-40,100),0)
karamba.resizeImage(widget, vol_pcm, vol_pcm_value, 10)
mixer.set(ossaudiodev.SOUND_MIXER_PCM, (vol_pcm_value, vol_pcm_value))
karamba.redrawWidget(widget)
if ((y>=77) and (y<=88)):
vol_cd = karamba.getThemeImage(widget, "vol_cd")
vol_cd_value = max(min(x-40,100),0)
karamba.resizeImage(widget, vol_cd, vol_cd_value, 10)
mixer.set(ossaudiodev.SOUND_MIXER_CD, (vol_cd_value, vol_cd_value))
karamba.redrawWidget(widget)
if ((y>=107) and (y<=118)):
vol_mic = karamba.getThemeImage(widget, "vol_mic")
vol_mic_value = max(min(x-40,100),0)
karamba.resizeImage(widget, vol_mic, vol_mic_value, 10)
mixer.set(ossaudiodev.SOUND_MIXER_MIC, (vol_mic_value, vol_mic_value))
karamba.redrawWidget(widget)
if(button == 2 and onMidButton == 0):
# We are holding the middle button here
pass
#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):
pass
#This gets called when an item is clicked in the theme CONFIGURATION menu,
#not the popup menus that you create.
# key = the reference to the configuration key that was changed
# value = the new value (true or false) that was selected
def menuOptionChanged(widget, key, value):
pass
#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 (see widgetClicked for button numbers)
def meterClicked(widget, meter, button):
pass
#This gets called when a command you have executed with executeInteractive() outputs something
#to stdout. This way you can get the output of for example kdialog without freezing up the widget
#waiting for kdialog to end.
# widget = reference to your theme
# pid = process number of the program outputting (use this if you execute more than out process)
# output = the text the program outputted to stdout
def commandOutput(widget, pid, output):
pass
#This gets called when an item is dropped on this widget.
# NOTE you have to call acceptDrops() before your widget will accept drops.
# widget = reference to your theme
# dropText = the text of the dropped item (probably a URL to it's location in KDE)
def itemDropped(widget, dropText):
pass
#This gets called when a new program is LOADING in KDE. When it is done
#loading, startupRemoved() is called, followed by taskAdded().
# widget = reference to your widget
# task = A refence to the task that is starting.
def startupAdded(widget, startup):
pass
#This gets called when a new program is done LOADING in KDE.
# widget = reference to your widget
# task = A refence to the task that just finished loading.
def startupRemoved(widget, startup):
pass
#This is called every time a new task (program) is started in KDE.
# widget = reference to your widget
# task = A refence to the new task. Call getTaskInfo() with this reference
# to get the name, etc of this new task.
def taskAdded(widget, task):
pass
#This is called everytime a task (program) is closed in KDE.
# widget = reference to your widget
# task = A refence to the task.
def taskRemoved(widget, task):
pass
#This is called everytime a different task gains focus (IE, the user clicks
#on a different window).
# widget = reference to your widget
# task = A refence to the task. Call getTaskInfo() with this reference
# to get the name, etc of this new task.
def activeTaskChanged(widget, task):
pass
# This will be printed when the widget loads.
print("Loaded my python extension!")