From 4c9d7a6878a20fa9013a31f120a10ab62ff6aab1 Mon Sep 17 00:00:00 2001 From: iovar Date: Mon, 25 Sep 2006 05:21:00 +0000 Subject: remove distutils based project git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@68 f606c939-3180-4ac9-a4b8-4b8779d57d0a --- gtk-recordmydesktop/AUTHORS | 14 - gtk-recordmydesktop/COPYING | 340 ------------------------ gtk-recordmydesktop/ChangeLog | 31 --- gtk-recordmydesktop/INSTALL | 67 ----- gtk-recordmydesktop/MANIFEST.in | 9 - gtk-recordmydesktop/README | 8 - gtk-recordmydesktop/__init__.py | 3 - gtk-recordmydesktop/gtk-recordMyDesktop | 43 --- gtk-recordmydesktop/gtk-recordmydesktop.desktop | 10 - gtk-recordmydesktop/gtk-recordmydesktop.png | Bin 3183 -> 0 bytes gtk-recordmydesktop/rmdPrefsWidget.py | 281 -------------------- gtk-recordmydesktop/rmdSelect.py | 139 ---------- gtk-recordmydesktop/rmdSelectThumb.py | 217 --------------- gtk-recordmydesktop/rmdSimple.py | 283 -------------------- gtk-recordmydesktop/rmdTrayIcon.py | 276 ------------------- gtk-recordmydesktop/rmdTrayPopup.py | 99 ------- gtk-recordmydesktop/setup.py | 15 -- 17 files changed, 1835 deletions(-) delete mode 100644 gtk-recordmydesktop/AUTHORS delete mode 100644 gtk-recordmydesktop/COPYING delete mode 100644 gtk-recordmydesktop/ChangeLog delete mode 100644 gtk-recordmydesktop/INSTALL delete mode 100644 gtk-recordmydesktop/MANIFEST.in delete mode 100644 gtk-recordmydesktop/README delete mode 100644 gtk-recordmydesktop/__init__.py delete mode 100755 gtk-recordmydesktop/gtk-recordMyDesktop delete mode 100644 gtk-recordmydesktop/gtk-recordmydesktop.desktop delete mode 100644 gtk-recordmydesktop/gtk-recordmydesktop.png delete mode 100644 gtk-recordmydesktop/rmdPrefsWidget.py delete mode 100644 gtk-recordmydesktop/rmdSelect.py delete mode 100755 gtk-recordmydesktop/rmdSelectThumb.py delete mode 100644 gtk-recordmydesktop/rmdSimple.py delete mode 100644 gtk-recordmydesktop/rmdTrayIcon.py delete mode 100644 gtk-recordmydesktop/rmdTrayPopup.py delete mode 100644 gtk-recordmydesktop/setup.py (limited to 'gtk-recordmydesktop') diff --git a/gtk-recordmydesktop/AUTHORS b/gtk-recordmydesktop/AUTHORS deleted file mode 100644 index 2c14f26..0000000 --- a/gtk-recordmydesktop/AUTHORS +++ /dev/null @@ -1,14 +0,0 @@ -gtk-recordMyDesktop is written by - -John Varouhakis(johnvarouhakis@gmail.com) - -Portions of the code are taken from Istanbul -version 0.2.1, available at http://live.gnome.org/Istanbul -which is written by - -Zaheer Abbas Merali -John N. Laliberte - -and publiced under the GNU GPL Version 2. - - diff --git a/gtk-recordmydesktop/COPYING b/gtk-recordmydesktop/COPYING deleted file mode 100644 index d60c31a..0000000 --- a/gtk-recordmydesktop/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/gtk-recordmydesktop/ChangeLog b/gtk-recordmydesktop/ChangeLog deleted file mode 100644 index a63c968..0000000 --- a/gtk-recordmydesktop/ChangeLog +++ /dev/null @@ -1,31 +0,0 @@ -/*VERSION 0.1*/ -First Version - -/*VERSION 0.2*/ -*Separated functionality in tabs. -*synced options to recordMyDesktop-0.2.5. -*Right click oin tray icon now has a menu. -*Added 'About' dialog. -*New option to select the area over which the -next recording will take place. -*Exit status notification. -*Abnormal termination notification. -*New Options: -i) Startup delay. -ii) sound device,channels and frequency. -iii) video and audio encoding quality. -iv) Display to connect to. -v) Disable/Enable Shared memory extension. -vi) Drop frames(theora encoder option). -vii) Threshold for conditional use of MIT-Shm. -viii) Quick-subsampling. - - -/*VERSION 0.2.1*/ -*Changed the UI. -*A basic window now appears on launch, -while non-visible options are can be -accessed through an 'advanced' button. -*The window contains a preview of the recording area, -and the selected region is outlined. -*Selection of the area can happen directly on the preview image. diff --git a/gtk-recordmydesktop/INSTALL b/gtk-recordmydesktop/INSTALL deleted file mode 100644 index 8c6356c..0000000 --- a/gtk-recordmydesktop/INSTALL +++ /dev/null @@ -1,67 +0,0 @@ -NOTICE: -gtk-recordMyDesktop is ONLY A FRONTEND to recordMyDesktop. You have to obtain and -install that first. - -DEPENDENCIES: - -PyGTK >= 2.4 -Gnome Python Extras >= 2.11.3 -recordMyDesktop 2.5 - - -INSTALLING recordMyDesktop(the backend): - -First step is of course to obtain it. If you haven't done so already -you can get the source code here: - -http://recordmydesktop.sourceforge.net - - -To compile the program you have to go through the regular drill: - -~$ gzip -d recordmydesktop-x.y.z.tar.gz -~$ tar -x recordmydesktop-x.y.z.tar -~$ cd recordmydesktop-x.y.z -~$ ./configure -~$ make -~$ sudo make install - - -You will need the development headers for the following: -alsa (libasound) -X -libXext -libXdamage -libXfixes -libogg -libvorbis -libtheora - -As well the regular headers, plus the ones for pthreads -(both of which you should have if you have compiled anything else before). - -Of the above, the most likely to be missing are probably those of libXdamage and libtheora -but any recent linux distribution should offer an easy way to get them. - - - - -Compiling on *BSD or other *nix flavors is not going to work(because of the alsa dependency) -but it shouldn't be too much of a hassle to change that(at least by disabling sound capture). -Future versions might include support for OSS-based sound capture. - - -INSTALLING gtk-recordMyDesktop(the frontend): - -~$ gzip -d gtk-recordMyDesktop-x.y.z.tar.gz -~$ tar -x gtk-recordMyDesktop-x.y.z.tar -~$ cd gtk-recordMyDesktop-x.y.z -~$ sudo python setup.py install - - -After this you should get a menu entry under multimedia. -If you don't get one even after a logout/login from your WM -you can launch the program from a terminal like this: - -~$ gtk-recordMyDesktop - diff --git a/gtk-recordmydesktop/MANIFEST.in b/gtk-recordmydesktop/MANIFEST.in deleted file mode 100644 index 0015de1..0000000 --- a/gtk-recordmydesktop/MANIFEST.in +++ /dev/null @@ -1,9 +0,0 @@ -include README -include AUTHORS -include COPYING -include ChangeLog -include INSTALL -include gtk-recordmydesktop.desktop -include gtk-recordmydesktop.png - - diff --git a/gtk-recordmydesktop/README b/gtk-recordmydesktop/README deleted file mode 100644 index caf8ebb..0000000 --- a/gtk-recordmydesktop/README +++ /dev/null @@ -1,8 +0,0 @@ -NOTICE: -gtk-recordMyDesktop is ONLY A FRONTEND to recordMyDesktop. You have to obtain and -install that first. - -For installation instructions and dependencies see the INSTALL file. - - - diff --git a/gtk-recordmydesktop/__init__.py b/gtk-recordmydesktop/__init__.py deleted file mode 100644 index 370620b..0000000 --- a/gtk-recordmydesktop/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -#file exists -#only for distribution -#purposes diff --git a/gtk-recordmydesktop/gtk-recordMyDesktop b/gtk-recordmydesktop/gtk-recordMyDesktop deleted file mode 100755 index 69e309f..0000000 --- a/gtk-recordmydesktop/gtk-recordMyDesktop +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/python - - -#/********************************************************************************* -#* 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 rmdSimple - -def main(): - tr=rmdSimple.simpleWidget() - - -main() - - - - - - - diff --git a/gtk-recordmydesktop/gtk-recordmydesktop.desktop b/gtk-recordmydesktop/gtk-recordmydesktop.desktop deleted file mode 100644 index 3d6a4a7..0000000 --- a/gtk-recordmydesktop/gtk-recordmydesktop.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=gtk-recordMyDesktop -Comment=Frontend for recordMyDesktop -Exec=gtk-recordMyDesktop -Terminal=false -Type=Application -Icon=gtk-recordmydesktop.png -Categories=GNOME;KDE;Application;AudioVideo; -StartupNotify=false diff --git a/gtk-recordmydesktop/gtk-recordmydesktop.png b/gtk-recordmydesktop/gtk-recordmydesktop.png deleted file mode 100644 index bc50b04..0000000 Binary files a/gtk-recordmydesktop/gtk-recordmydesktop.png and /dev/null differ diff --git a/gtk-recordmydesktop/rmdPrefsWidget.py b/gtk-recordmydesktop/rmdPrefsWidget.py deleted file mode 100644 index 772d952..0000000 --- a/gtk-recordmydesktop/rmdPrefsWidget.py +++ /dev/null @@ -1,281 +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 -import locale, gettext -_ = gettext.gettext -import os - - - - -class prefsWidget(object): - labelStrings=[_('Frames Per Second'),_(''),_('Startup Delay(secs)'), - _('Channels'),_('Frequency'),_('Device'),_('Video Quality'),_('Sound Quality'), - _('Display'),_('Mouse Cursor'),_('Full shots at every frame'),_('MIT-Shm extension'), - _('Drop Frames(encoder)'),_('Shared Threshold'),_('Quick Subsampling')] - mouseStrings=[_('Normal'),_('White'),_('Black'),_('None')] - stateStrings=[_('Enabled'),_('Disabled')] - tabStrings=[_('Basic'),_('Sound'),_('Advanced')] - - def destroy(self,Event=None): - self.values[0]=self.fpsSpinButton.get_value_as_int() - self.values[1]=self.mouseComboBox.get_active() - #self.values[2]=self.soundComboBox.get_active() - self.values[3]=self.fullComboBox.get_active() - #self.values[4]=self.pathEntry.get_text() - #self.values[5]=self.are - self.values[6]=self.delaySpinButton.get_value_as_int() - self.values[7]=self.channelsSpinButton.get_value_as_int() - self.values[8]=self.freqSpinButton.get_value_as_int() - self.values[9]=self.deviceEntry.get_text().replace(' ','') - #self.values[10]=self.vidqSpinButton.get_value_as_int() - #self.values[11]=self.soundqSpinButton.get_value_as_int() - self.values[12]=self.displayEntry.get_text().replace(' ','') - self.values[13]=self.sharedComboBox.get_active() - self.values[14]=self.frdropComboBox.get_active() - self.values[15]=self.thresSpinButton.get_value_as_int() - self.values[16]=self.quickComboBox.get_active() - - self.window.destroy() - self.optionsOpen[0]=0 - - def __exit__(self,Event=None): - gtk.main_quit() - self.values[0]=-1 - self.optionsOpen[0]=0 - self.window.destroy() - - - - def __subWidgets__(self): - self.labels={} - self.boxes={} - self.labelbox={} - #self.labelbox[0]=gtk.VBox(homogeneous=False, spacing=20) - for i in range(3): - self.labelbox[i]=gtk.VBox(homogeneous=False, spacing=20) - self.notebook = gtk.Notebook() - -#basic page - self.fpsAdjustment=gtk.Adjustment(value=self.values[0], lower=1, upper=50, step_incr=1, page_incr=5, page_size=0) - self.fpsSpinButton= gtk.SpinButton(self.fpsAdjustment, climb_rate=0.5, digits=0) - - - #self.soundComboBox = gtk.combo_box_new_text() - #for i in range(2): - #self.soundComboBox.append_text(self.stateStrings[i]) - #self.soundComboBox.set_active(self.values[2]) - - self.delayAdjustment=gtk.Adjustment(value=self.values[6], lower=0,upper=10000, step_incr=1, page_incr=5, page_size=0) - self.delaySpinButton= gtk.SpinButton(self.delayAdjustment, climb_rate=0.5, digits=0) - - #self.pathEntry= gtk.Entry(max=0) - #self.pathEntry.set_text(self.values[4]) - #self.pathButton = gtk.Button(None,gtk.STOCK_SAVE_AS) - - self.okButton=gtk.Button(None,gtk.STOCK_CLOSE) - - for i in xrange(0,3,2): - self.labels[i]=gtk.Label(self.labelStrings[i]) - self.labels[i].set_justify(gtk.JUSTIFY_LEFT) - self.boxes[i]=gtk.HBox(homogeneous=False, spacing=0) - self.boxes[i].pack_start(self.labels[i],expand=False,fill=False) - self.labels[i].show() - self.labelbox[0].pack_start(self.boxes[i],expand=False,fill=False) - - self.boxes[3]=gtk.HBox(homogeneous=False, spacing=20) - self.labelbox[0].pack_start(self.boxes[3],expand=False,fill=False) - placeholder2=gtk.Label("\n\n\n\n\n\n") - placeholder2.show() - self.labelbox[0].pack_start(placeholder2,True,True) - self.boxes[4]=gtk.HBox(homogeneous=False, spacing=0) - self.labelbox[0].pack_end(self.boxes[4]) - - self.fpsSpinButton.show() - self.boxes[0].pack_end(self.fpsSpinButton,expand=False,fill=False) - #self.soundComboBox.show() - #self.boxes[1].pack_end(self.soundComboBox,expand=False,fill=False) - self.delaySpinButton.show() - self.boxes[2].pack_end(self.delaySpinButton,expand=False,fill=False) - #self.pathEntry.show() - #self.boxes[3].pack_start(self.pathEntry,expand=False,fill=False) - #self.pathButton.show() - #self.boxes[3].pack_end(self.pathButton,expand=False,fill=False) - self.okButton.show() - self.boxes[4].pack_end(self.okButton,expand=False,fill=False) - for i in range(5): - if i!=1: - self.boxes[i].show() -#sound page - for i in xrange(3,6): - self.labels[i]=gtk.Label(self.labelStrings[i]) - self.labels[i].set_justify(gtk.JUSTIFY_LEFT) - self.boxes[i+5]=gtk.HBox(homogeneous=False, spacing=0) - self.boxes[i+5].pack_start(self.labels[i],expand=False,fill=False) - self.labels[i].show() - #self.boxes[i+5].show() - self.labelbox[1].pack_start(self.boxes[i+5],expand=False,fill=False) - self.channelsAdjustment=gtk.Adjustment(value=self.values[7], lower=1,upper=2, step_incr=1, page_incr=1, page_size=1) - self.channelsSpinButton= gtk.SpinButton(self.channelsAdjustment, climb_rate=0.5, digits=0) - self.boxes[8].pack_end(self.channelsSpinButton,expand=False,fill=False) - self.channelsSpinButton.show() - self.boxes[8].show() - - self.freqAdjustment=gtk.Adjustment(value=self.values[8], lower=0,upper=44100, step_incr=1, page_incr=100, page_size=0) - self.freqSpinButton= gtk.SpinButton(self.freqAdjustment, climb_rate=0.5, digits=0) - self.boxes[9].pack_end(self.freqSpinButton,expand=False,fill=False) - self.freqSpinButton.show() - self.boxes[9].show() - - self.deviceEntry= gtk.Entry(max=0) - self.deviceEntry.set_text(self.values[9]) - self.boxes[10].pack_end(self.deviceEntry,expand=False,fill=False) - self.deviceEntry.show() - self.boxes[10].show() - - -#encoding page - #for i in xrange(6,8): - #self.labels[i]=gtk.Label(self.labelStrings[i]) - #self.labels[i].set_justify(gtk.JUSTIFY_LEFT) - #self.boxes[i+5]=gtk.HBox(homogeneous=False, spacing=0) - #self.boxes[i+5].pack_start(self.labels[i],expand=False,fill=False) - #self.labels[i].show() - ##self.boxes[i+5].show() - #self.labelbox[2].pack_start(self.boxes[i+5],expand=False,fill=False) - #self.vidqAdjustment=gtk.Adjustment(value=self.values[10], lower=0,upper=63, step_incr=1, page_incr=1, page_size=1) - #self.vidqSpinButton= gtk.SpinButton(self.vidqAdjustment, climb_rate=0.5, digits=0) - #self.boxes[11].pack_end(self.vidqSpinButton,expand=False,fill=False) - #self.vidqSpinButton.show() - #self.boxes[11].show() - #self.soundqAdjustment=gtk.Adjustment(value=self.values[11], lower=-1,upper=10, step_incr=1, page_incr=1, page_size=1) - #self.soundqSpinButton= gtk.SpinButton(self.soundqAdjustment, climb_rate=0.5, digits=0) - #self.boxes[12].pack_end(self.soundqSpinButton,expand=False,fill=False) - #self.soundqSpinButton.show() - #self.boxes[12].show() - -#misc page - for i in xrange(8,15): - self.labels[i]=gtk.Label(self.labelStrings[i]) - self.labels[i].set_justify(gtk.JUSTIFY_LEFT) - self.boxes[i+5]=gtk.HBox(homogeneous=False, spacing=0) - self.boxes[i+5].pack_start(self.labels[i],expand=False,fill=False) - self.labels[i].show() - #self.boxes[i+5].show() - self.labelbox[2].pack_start(self.boxes[i+5],expand=False,fill=False) - self.displayEntry= gtk.Entry(max=0) - self.displayEntry.set_text(self.values[12]) - self.boxes[13].pack_end(self.displayEntry,expand=False,fill=False) - self.displayEntry.show() - self.boxes[13].show() - - self.mouseComboBox = gtk.combo_box_new_text() - for i in range(4): - self.mouseComboBox.append_text(self.mouseStrings[i]) - self.mouseComboBox.set_active(self.values[1]) - self.boxes[14].pack_end(self.mouseComboBox,expand=False,fill=False) - self.mouseComboBox.show() - self.boxes[14].show() - - self.fullComboBox = gtk.combo_box_new_text() - for i in range(2): - self.fullComboBox.append_text(self.stateStrings[i]) - self.fullComboBox.set_active(self.values[3]) - self.boxes[15].pack_end(self.fullComboBox,expand=False,fill=False) - self.fullComboBox.show() - self.boxes[15].show() - - self.sharedComboBox = gtk.combo_box_new_text() - for i in range(2): - self.sharedComboBox.append_text(self.stateStrings[i]) - self.sharedComboBox.set_active(self.values[13]) - self.boxes[16].pack_end(self.sharedComboBox,expand=False,fill=False) - self.sharedComboBox.show() - self.boxes[16].show() - - - self.frdropComboBox = gtk.combo_box_new_text() - for i in range(2): - self.frdropComboBox.append_text(self.stateStrings[i]) - self.frdropComboBox.set_active(self.values[14]) - self.boxes[17].pack_end(self.frdropComboBox,expand=False,fill=False) - self.frdropComboBox.show() - self.boxes[17].show() - - self.thresAdjustment=gtk.Adjustment(value=self.values[15], lower=0,upper=100, step_incr=1, page_incr=5, page_size=1) - self.thresSpinButton= gtk.SpinButton(self.thresAdjustment, climb_rate=0.5, digits=0) - self.boxes[18].pack_end(self.thresSpinButton,expand=False,fill=False) - self.thresSpinButton.show() - self.boxes[18].show() - - self.quickComboBox = gtk.combo_box_new_text() - for i in range(2): - self.quickComboBox.append_text(self.stateStrings[i]) - self.quickComboBox.set_active(self.values[16]) - self.boxes[19].pack_end(self.quickComboBox,expand=False,fill=False) - self.quickComboBox.show() - self.boxes[19].show() - -#append and show - for i in range(3): - self.notebook.append_page(self.labelbox[i],gtk.Label(self.tabStrings[i])) - self.window.add(self.notebook) - for i in range(3): - self.labelbox[i].show() - self.notebook.show() - - def __makeCons__(self): - #self.pathButton.connect("clicked",self.__fileSelect__) - self.okButton.connect("clicked",self.destroy) - - def __init__(self,values,optionsOpen): - self.values=values - self.optionsOpen=optionsOpen - self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) - self.window.connect("destroy", self.destroy) - self.window.set_border_width(10) - self.window.set_title("recordMyDesktop") - self.__subWidgets__() - self.__makeCons__() - - - self.window.set_size_request(350,-1) - self.window.show() - - def main(self): - gtk.main() - - - - - - - - diff --git a/gtk-recordmydesktop/rmdSelect.py b/gtk-recordmydesktop/rmdSelect.py deleted file mode 100644 index cf03403..0000000 --- a/gtk-recordmydesktop/rmdSelect.py +++ /dev/null @@ -1,139 +0,0 @@ -# -*- Mode: Python -*- -# vi:si:et:sw=4:sts=4:ts=4 -# -# Istanbul - a desktop session recorder -# Copyright (C) 2005 Zaheer Abbas Merali (zaheerabbas at merali dot org) -# All rights reserved. - -# This file may be distributed and/or modified under the terms of -# the GNU General Public License version 2 as published by -# the Free Software Foundation. -# This file is distributed without any warranty; without even the implied -# warranty of merchantability or fitness for a particular purpose. -# See "LICENSE.GPL" in the source distribution for more information. - -# Headers in this file shall remain intact. - -#This file has been modified to be used in gtk-recordMyDesktop -#by John Varouhakis -#area_return list has been added to retrieve the values -#original file name is select.py in Istanbul-0.2.1 -import gtk -import gtk.gdk - -class GtkAreaSelector(gtk.Window): - def __init__(self,area_return): - self.area_return=area_return - gtk.Window.__init__(self) - self.set_app_paintable(True) - self.fullscreen() - self.connect("expose-event", self.expose_cb) - self.connect("button-press-event", self.button_press_cb) - self.connect("button-release-event", self.button_release_cb) - self.connect("motion-notify-event", self.motion_notify_cb) - self.connect("delete-event", self.delete_cb) - self.connect("realize", self.realize_cb) - root = gtk.gdk.get_default_root_window() - (width, height) = root.get_size() - self.root = root.get_image(0, 0, width, height) - self.x1 = self.y1 = -1 - self.x2 = self.y2 = 0 - self.show_all() - - def realize_cb(self, widget): - gdkwindow = self.window - gdkwindow.set_events(gdkwindow.get_events() | - gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | - gtk.gdk.POINTER_MOTION_MASK); - cursor = gtk.gdk.Cursor(gtk.gdk.CROSSHAIR) - gdkwindow.set_cursor(cursor) - gdkwindow.set_back_pixmap(None, False) - - def expose_cb(self, widget, event): - dashes = [ 1.0, 2.0 ] - cr = self.window.cairo_create() - cr.rectangle(event.area.x, event.area.y, event.area.width, - event.area.height) - cr.clip() - self.window.draw_image(self.style.black_gc, self.root, event.area.x, - event.area.y, event.area.x, event.area.y, event.area.width, - event.area.height) - cr.set_line_width(1.0) - cr.set_source_rgba (1.0, 0.0, 0.0, 1.0) - cr.set_dash (dashes, 0.0) - cr.move_to (self.x1 - 0.5, 0.0) - cr.line_to (self.x1 - 0.5, event.area.y + event.area.height) - cr.move_to (0.0, self.y1 - 0.5) - cr.line_to (event.area.x + event.area.width, self.y1 - 0.5) - cr.stroke () - - if self.x1 >= 0: - x = min(self.x1, self.x2) - y = min(self.y1, self.y2) - w = max(self.x1, self.x2) - x - h = max(self.y1, self.y2) - y - cr.set_dash ([], 0.0) - cr.rectangle ( x, y, w, h) - cr.fill() - cr.set_source_rgba (0.0, 0.0, 0.5, 0.5) - cr.rectangle (x + 0.5, y + 0.5, w - 1, h - 1) - cr.stroke() - - return False - - def motion_notify_cb(self, widget, event): - self.queue_draw() - - if self.x1 >= 0: - rect = gtk.gdk.Rectangle() - rect.x = min(self.x1, min(self.x2, event.x + 1)) - rect.width = max(self.x1, max(self.x2, event.x + 1)) - rect.x - rect.y = min(self.y1, min(self.y2, event.y + 1)) - rect.height = max(self.y1, max(self.y2, event.y + 1)) - rect.y - self.queue_draw_area(rect.x, rect.y, rect.width, rect.height) - - self.x2 = event.x + 1 - self.y2 = event.y + 1 - - return True - - def button_release_cb(self, widget, event): - if event.button == 1 and self.x1 >= 0: - self.x2 = event.x + 1 - self.y2 = event.y + 1 - # stop - self.area_return[0]=min(int(self.x1),int(self.x2)) - self.area_return[1]=min(int(self.y1),int(self.y2)) - self.area_return[2]=max(int(self.x1),int(self.x2)) - self.area_return[3]=max(int(self.y1),int(self.y2)) - self.hide() - self.destroy() - - return True - - def button_press_cb(self, widget, event): - if event.button != 1: - self.x1 = self.y1 = -1 - # stop - #print "(%d, %d) - (%d, %d)" % (self.x1, self.y1, self.x2, self.y2) - #self.area_return[0]=self.x1 - #self.area_return[1]=self.y1 - #self.area_return[2]=self.x2 - #self.area_return[3]=self.y2 - #print self.area_return - self.destroy() - return True - self.x1 = event.x - self.y1 = event.y - self.queue_draw() - return True - - def delete_cb(self, widget,Event=None): - pass - -if __name__ == "__main__": - w = GtkAreaSelector() - w.show() - gtk.main() - - diff --git a/gtk-recordmydesktop/rmdSelectThumb.py b/gtk-recordmydesktop/rmdSelectThumb.py deleted file mode 100755 index 6130b26..0000000 --- a/gtk-recordmydesktop/rmdSelectThumb.py +++ /dev/null @@ -1,217 +0,0 @@ -# -*- Mode: Python -*- -# vi:si:et:sw=4:sts=4:ts=4 -# -# Istanbul - a desktop session recorder -# Copyright (C) 2005 Zaheer Abbas Merali (zaheerabbas at merali dot org) -# All rights reserved. - -# This file may be distributed and/or modified under the terms of -# the GNU General Public License version 2 as published by -# the Free Software Foundation. -# This file is distributed without any warranty; without even the implied -# warranty of merchantability or fitness for a particular purpose. -# See "LICENSE.GPL" in the source distribution for more information. - -# Headers in this file shall remain intact. - -#This file has been modified to be used in gtk-recordMyDesktop -#by John Varouhakis - -#Base class is DrawingArea instead of Window to allow insertion. -#new methods: -# update_image to keep the screenshot current. -# __subsample__ to scale the screenshot -# __draw_lines__ to highlight the selected area. -#Calls to destroy have been removed, since this widget is meant to -#live for an indefinite amount of time. -#Click behavior has been changed. Selection now happens by left-click and dragging, -#while right click resets the selection. - - -#original file name is select.py in Istanbul-0.2.1 - - -import gtk -import gtk.gdk -#from rmdSelect import * -import gobject -import gc - -class GtkThumbSelector(gtk.DrawingArea): - def __init__(self,area_return,hidden,update_interval=2000): - self.hidden=hidden - self.area_return=area_return - self.selecting=0 - gtk.DrawingArea.__init__(self) - self.set_app_paintable(True) - #self.fullscreen() - self.connect("expose-event", self.expose_cb) - self.connect("button-press-event", self.button_press_cb) - self.connect("button-release-event", self.button_release_cb) - self.connect("motion-notify-event", self.motion_notify_cb) - #self.connect("delete-event", self.delete_cb) - self.connect("realize", self.realize_cb) - #root = gtk.gdk.get_default_root_window() - self.wroot = gtk.gdk.get_default_root_window() - (self.wwidth, self.wheight) = self.wroot.get_size() - ############################################################### - - self.factor=1; - twidth=self.wwidth - while twidth>320 or self.factor<4: - twidth/=2 - self.factor*=2 - self.root=gtk.gdk.Image(gtk.gdk.IMAGE_NORMAL,self.wroot.get_visual(),self.wwidth/self.factor,self.wheight/self.factor) - #(width, height) = root.get_size() - sroot = self.wroot.get_image(0, 0, self.wwidth, self.wheight) - self.__subsample__(sroot,self.wwidth,self.wheight,self.root,self.factor) - #self.root = root.get_image(0, 0, width, height) - self.x1 = self.y1 = -1 - self.x2 = self.y2 = -1 - self.set_size_request(self.wwidth/self.factor,self.wheight/self.factor) - self.timed_id=gobject.timeout_add(update_interval,self.update_image) - - def __subsample__(self,im1,w,h,im2,stride,x=0,y=0): - for i in xrange(y,h,stride): - for k in xrange(x,w,stride): - im2.put_pixel(k/stride,i/stride,im1.get_pixel(k,i)) - def button_release_cb(self, widget, event): - if event.button == 1 and self.x1 >= 0 and widget==self: - self.selecting=0 - self.x2 = event.x + 1 - self.y2 = event.y + 1 - # stop - if self.x1 <0: self.x1=0 - if self.x2 <0: self.x2=0 - if self.y1 <0: self.y1=0 - if self.y2 <0: self.y2=0 - if self.x1 >self.wwidth/self.factor: self.x1=self.wwidth/self.factor - if self.x2 >self.wwidth/self.factor: self.x2=self.wwidth/self.factor - if self.y1 >self.wheight/self.factor: self.y1=self.wheight/self.factor - if self.y2 >self.wheight/self.factor: self.y2=self.wheight/self.factor - - - self.area_return[0]=min(int(self.x1),int(self.x2))*self.factor - self.area_return[1]=min(int(self.y1),int(self.y2))*self.factor - self.area_return[2]=max(int(self.x1),int(self.x2))*self.factor - self.area_return[3]=max(int(self.y1),int(self.y2))*self.factor - self.x1=self.y1=self.x2=self.y2=-1 - #print self.area_return - self.update_image() - - def button_press_cb(self, widget, event): - if widget==self: - if event.button == 1: - self.selecting=1 - self.update_image() - self.x1 = event.x - self.y1 = event.y - else: - self.x1 = self.y1=self.x2=self.y2=-1 - self.area_return[0]=self.area_return[1]=0 - self.area_return[2]=self.wwidth - self.area_return[3]=self.wheight - self.update_image() - - def realize_cb(self, widget): - if widget == self: - gdkwindow = self.window - gdkwindow.set_events(gdkwindow.get_events() | - gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | - gtk.gdk.POINTER_MOTION_MASK); - cursor = gtk.gdk.Cursor(gtk.gdk.CROSSHAIR) - gdkwindow.set_cursor(cursor) - gdkwindow.set_back_pixmap(None, False) - - def expose_cb(self, widget, event): - if widget==self: - dashes = [ 1.0, 2.0 ] - cr = self.window.cairo_create() - cr.rectangle(event.area.x, event.area.y, event.area.width, - event.area.height) - cr.clip() - self.window.draw_image(self.style.black_gc, self.root, event.area.x, - event.area.y, event.area.x, event.area.y, event.area.width, - event.area.height) - cr.set_line_width(1.0) - cr.set_source_rgba (1.0, 0.0, 0.0, 1.0) - cr.set_dash (dashes, 0.0) - cr.move_to (self.x1 - 0.5, 0.0) - cr.line_to (self.x1 - 0.5, event.area.y + event.area.height) - cr.move_to (0.0, self.y1 - 0.5) - cr.line_to (event.area.x + event.area.width, self.y1 - 0.5) - cr.stroke () - - if self.x1 >= 0: - x = min(self.x1, self.x2) - y = min(self.y1, self.y2) - w = max(self.x1, self.x2) - x - h = max(self.y1, self.y2) - y - cr.set_dash ([], 0.0) - cr.rectangle ( x, y, w, h) - cr.fill() - cr.set_source_rgba (0.0, 0.0, 0.5, 0.5) - cr.rectangle (x + 0.5, y + 0.5, w - 1, h - 1) - cr.stroke() - - return False - - def motion_notify_cb(self, widget, event): - if widget ==self: - self.queue_draw() - - if self.x1 >= 0 : - rect = gtk.gdk.Rectangle() - rect.x = min(self.x1, min(self.x2, event.x + 1)) - rect.width = max(self.x1, max(self.x2, event.x + 1)) - rect.x - rect.y = min(self.y1, min(self.y2, event.y + 1)) - rect.height = max(self.y1, max(self.y2, event.y + 1)) - rect.y - self.queue_draw_area(rect.x, rect.y, rect.width, rect.height) - - self.x2 = event.x + 1 - self.y2 = event.y + 1 - - return True - - def update_image(self): - #self.root.destroy() - self.queue_draw() - if self.hidden[0]==0 : - gc.collect() - sroot = self.wroot.get_image(0,0,self.wwidth,self.wheight) - self.__subsample__(sroot,self.wwidth,self.wheight,self.root,self.factor) - vals=[0,0, self.wwidth, self.wheight] - if self.area_return[0]>=0: - vals[0]=self.area_return[0] - if self.area_return[1]>=0: - vals[1]=self.area_return[1] - if self.area_return[2]>=0: - vals[2]=self.area_return[2]-self.area_return[0] - if self.area_return[3]>=0: - vals[3]=self.area_return[3]-self.area_return[1] - if vals[0] >0 or vals[1] >0 or vals[2]