summaryrefslogtreecommitdiff
path: root/gtk-recordmydesktop/rmdTrayIcon.py
diff options
context:
space:
mode:
Diffstat (limited to 'gtk-recordmydesktop/rmdTrayIcon.py')
-rw-r--r--gtk-recordmydesktop/rmdTrayIcon.py276
1 files changed, 0 insertions, 276 deletions
diff --git a/gtk-recordmydesktop/rmdTrayIcon.py b/gtk-recordmydesktop/rmdTrayIcon.py
deleted file mode 100644
index 103dcdc..0000000
--- a/gtk-recordmydesktop/rmdTrayIcon.py
+++ /dev/null
@@ -1,276 +0,0 @@
-#/*********************************************************************************
-#* gtk-recordMyDesktop *
-#**********************************************************************************
-#* *
-#* Copyright (C) 2006 John Varouhakis *
-#* *
-#* *
-#* This program is free software; you can redistribute it and/or modify *
-#* it under the terms of the GNU General Public License as published by *
-#* the Free Software Foundation; either version 2 of the License, or *
-#* (at your option) any later version. *
-#* *
-#* This program is distributed in the hope that it will be useful, *
-#* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-#* GNU General Public License for more details. *
-#* *
-#* You should have received a copy of the GNU General Public License *
-#* along with this program; if not, write to the Free Software *
-#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
-#* *
-#* *
-#* *
-#* For further information contact me at johnvarouhakis@gmail.com *
-#**********************************************************************************/
-
-
-import pygtk
-pygtk.require('2.0')
-import gtk,gobject
-
-import egg.trayicon
-import rmdSelect as isel
-import rmdTrayPopup as iTP
-import os,signal
-
-#values struct:
-
-#0 fps
-#1 mouse
-#2 sound on/off
-#3 full
-#4 path
-#5 area
-#6 delay
-#7 channels
-#8 frequency
-#9 device
-#10 v_quality
-#11 s_quality
-#12 display
-#13 shared memory
-#14 drop-frames
-#15 shared threshold
-#16 quick subsampling
-
-
-class trayIcon(object):
- #values=[15,0,0,1,os.path.join(os.getenv('HOME'),'out.ogg'),[-1,-1,-1,-1],0,
- #1,22050,'hw:0,0',63,10,"$DISPLAY",0,1,75,1]
- exit_status={
- 0:'Success',
- 1*256:'Error while parsing the arguments.',
- 2*256:'Initializing the encoder failed(either vorbis or theora)',
- 3*256:'Could not open/configure sound card.',
- 4*256:'Xdamage extension not present.',
- 5*256:'Shared memory extension not present.',
- 6*256:'Xfixes extension not present.',
- 7*256:'XInitThreads failed.',
- 8*256:'No $DISPLAY environment variable and none specified as argument.',
- 9*256:'Cannot connect to Xserver.',
- 10*256:'Color depth is not 24bpp.',
- 11*256:'Improper window specification.',
- 12*256:'Cannot attach shared memory to proccess.',
- 11:'Segmentation Fault'
- }
-
-
- state=0#0 stopped,1 recording,2 paused
- rmdPid=None
- optionsOpen=[1]
- reopen=0
- timed_id=None
-
- def __buttonPress__(self,widget,event=None):
- if event.button==1 :
- if self.state == 0:
- if self.optionsOpen[0]==1:
- self.parent.hide()
- self.optionsOpen[0]=0
- self.reopen=1
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_STOP,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.state=1
- self.__execRMD__()
- elif self.state== 1:
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_RECORD,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.state=0
- self.__stopRMD__()
- elif self.state == 2 :
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_STOP,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.state=1
- self.__pauseRMD__()
-
-
- elif event.button == 3:
- if self.state == 0:
- self.tray_popup.show()
- elif self.state == 1:
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_PAUSE,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.state=2
- self.__pauseRMD__()
- elif self.state ==2:
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_STOP,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.state=1
- self.__pauseRMD__()
- def record_ext(self,button=None):
- if self.state == 0:
- if self.optionsOpen[0]==1:
- self.parent.hide()
- self.optionsOpen[0]=0
- self.reopen=1
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_STOP,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.state=1
- self.__execRMD__()
-
- def __execRMD__(self):
- self.parent.update()
- execargs=["recordmydesktop","-o",'%s'%self.parent.values[4],
- "-fps","%d"%self.parent.values[0]]
- if self.parent.values[2]==False :
- execargs.append("--nosound")
- if self.parent.values[1] == 1:
- execargs.append("-dummy-cursor")
- execargs.append("white")
- elif self.parent.values[1] == 2:
- execargs.append("-dummy-cursor")
- execargs.append("black")
- elif self.parent.values[1] == 3:
- execargs.append("--no-cursor")
-
- if self.parent.values[3] == 0:
- execargs.append("--full-shots")
- if self.parent.values[13] == 0:
- execargs.append("--with-shared")
- if self.parent.values[3] == 1 and self.parent.values[13] == 1 :
- execargs.append("--no-cond-shared")
-
- if self.parent.values[5][0]>0 :
- execargs.append('-x')
- execargs.append('%d'%self.parent.values[5][0])
- if self.parent.values[5][1]>0:
- execargs.append('-y')
- execargs.append('%d'%self.parent.values[5][1])
- if self.parent.values[5][2]>0 and self.parent.values[5][3]>0:
- execargs.append('-width')
- execargs.append('%d'%(self.parent.values[5][2]-self.parent.values[5][0]))
- execargs.append('-height')
- execargs.append('%d'%(self.parent.values[5][3]-self.parent.values[5][1]))
- for i in range(4):
- self.parent.values[5][i]=-1
- if self.parent.values[6]>0:
- execargs.append('-delay')
- execargs.append('%d'%self.parent.values[6])
- execargs.append('-channels')
- execargs.append('%d'%self.parent.values[7])
- execargs.append('-freq')
- execargs.append('%d'%self.parent.values[8])
- execargs.append('-device')
- execargs.append('%s'%self.parent.values[9])
- execargs.append('-v_quality')
- execargs.append('%d'%self.parent.values[10])
- execargs.append('-s_quality')
- execargs.append('%d'%self.parent.values[11])
- if self.parent.values[12] != "$DISPLAY":
- execargs.append('-display')
- execargs.append('%s'%self.parent.values[12])
- if self.parent.values[14] == 0:
- execargs.append('--drop-frames')
- execargs.append('-shared-threshold')
- execargs.append('%d'%self.parent.values[15])
- if self.parent.values[16] == 0:
- execargs.append('--quick-subsampling')
-
-
- #print execargs
-
- self.rmdPid=os.fork()
-
- if self.rmdPid==0:
- res=os.execvp("recordmydesktop",execargs)
- else:
- self.timed_id=gobject.timeout_add(1000,self.__check_status__)
-
-
- def __exit_status_dialog(self,status):
- dialog = gtk.Dialog(title=None, parent=None, flags=0, buttons=None)
- label1=None
- try:
- label1 = gtk.Label("\t\tRecording is finished.\nrecordMyDesktop has exited with status %d\nDescription:%s\n"%(status,self.exit_status[int(status)]))
- except:
- label1 = gtk.Label("\t\tRecording is finished.\nrecordMyDesktop has exited with uknown\nerror code: %d \n"%(status))
- dialog.vbox.pack_start(label1, True, True, 0)
- label1.show()
- button = gtk.Button(label=None, stock=gtk.STOCK_OK)
- dialog.vbox.pack_start(button, True, True, 0)
- def __destroy(button):
- dialog.destroy()
- button.connect("clicked", __destroy)
- button.show()
- dialog.set_size_request(300,128)
- dialog.show()
-
- def __pauseRMD__(self):
- os.kill(self.rmdPid,signal.SIGUSR1)
-
- def __stopRMD__(self):
- if self.timed_id!=None:
- gobject.source_remove(self.timed_id)
- self.timed_id=None
- exit_ret=os.waitpid(self.rmdPid,os.WNOHANG)
- if exit_ret[0] == 0:
- os.kill(self.rmdPid,signal.SIGTERM)
- exit_ret=os.waitpid(self.rmdPid,0)
- #if exit_ret[0]==self.rmdPid:
- #self.__exit_status_dialog(exit_ret[1])
- else:
- self.__exit_status_dialog(exit_ret[1])
- self.rmdPid=None
- if self.reopen==1:
- self.parent.show()
- self.optionsOpen[0]=1
- self.reopen=0
-
- #print exit_ret
- def __check_status__(self):
- if self.rmdPid!=None:
- exit_ret=os.waitpid(self.rmdPid,os.WNOHANG)
- if exit_ret[0] != 0:
- self.state=0
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_RECORD,gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.__exit_status_dialog(exit_ret[1])
- self.rmdPid=None
- if self.reopen==1:
- self.parent.show()
- self.optionsOpen[0]=1
- self.reopen=0
- return False
- else:
- return True
- else:
- return False
-
-
- def __init__(self,parent):
- self.parent=parent
- #self.parent.values=values
- self.event_box = gtk.EventBox()
- self.trayIcon=gtk.Image()
- self.trayIcon.set_from_stock(gtk.STOCK_MEDIA_RECORD, gtk.ICON_SIZE_SMALL_TOOLBAR)
- self.event_box.add(self.trayIcon)
- self.tray_container = egg.trayicon.TrayIcon("recordMyDesktop")
- self.tray_container.add(self.event_box)
- self.tray_popup=iTP.TrayPopupMenu(self.parent,self.parent.values,self.optionsOpen)
- self.event_box.connect("button-press-event", self.__buttonPress__)
- self.tray_container.show_all()
- #gtk.main()
-
-
-
-
-
-
-
-
-
-
© All Rights Reserved