New module for poker client window finding on OSX.
This commit is contained in:
		
							parent
							
								
									6696cab13c
								
							
						
					
					
						commit
						9c73c0b791
					
				
							
								
								
									
										90
									
								
								pyfpdb/OSXTables.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								pyfpdb/OSXTables.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | |||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| """XWindows specific methods for TableWindows Class. | ||||
| """ | ||||
| #    Copyright 2008 - 2010, Ray E. Barker | ||||
| 
 | ||||
| #    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 | ||||
| 
 | ||||
| ######################################################################## | ||||
| 
 | ||||
| import L10n | ||||
| _ = L10n.get_translation() | ||||
| 
 | ||||
| #    Standard Library modules | ||||
| import re | ||||
| import os | ||||
| 
 | ||||
| #    pyGTK modules | ||||
| import gtk | ||||
| 
 | ||||
| #    Other Library modules | ||||
| from Quartz import CoreGraphics | ||||
| 
 | ||||
| #    FPDB modules | ||||
| from TableWindow import Table_Window | ||||
| 
 | ||||
| class Table(Table_Window): | ||||
| 
 | ||||
|     def find_table_parameters(self): | ||||
| 
 | ||||
| #    This is called by __init__(). Find the poker table window of interest, | ||||
| #    given the self.search_string. Then populate self.number, self.title,  | ||||
| #    self.window, and self.parent (if required). | ||||
| 
 | ||||
|         self.number = None | ||||
|         WinList = CoreGraphics.CGWindowListCreate(0,0) | ||||
|         WinListDict = CoreGraphics.CGWindowListCreateDescriptionFromArray(WinList) | ||||
| 
 | ||||
|         for d in WinListDict: | ||||
|             if re.search(self.search_string, d['kCGWindowName'], re.I): | ||||
|                 title = d['kCGWindowName'] | ||||
|                 if self.check_bad_words(title): continue | ||||
|                 self.number = d['kCGWindowNumber'] | ||||
|                 self.title = title | ||||
|         if self.number is None: | ||||
|             return None | ||||
|    | ||||
|     def get_geometry(self): | ||||
| 
 | ||||
|         WinList = CoreGraphics.CGWindowListCreate(0,0) | ||||
|         WinListDict = CoreGraphics.CGWindowListCreateDescriptionFromArray(WinList) | ||||
| 
 | ||||
|         for d in WinListDict: | ||||
|             if d['kCGWindowNumber'] == self.number: | ||||
|                 return {'x'      : d['kCGWindowBounds']['X'], | ||||
|                         'y'      : d['kCGWindowBounds']['Y'], | ||||
|                         'width'  : d['kCGWindowBounds']['Width'], | ||||
|                         'height' : d['kCGWindowBounds']['Height'] | ||||
|                        } | ||||
|         return None | ||||
| 
 | ||||
|     def get_window_title(self): | ||||
|         WinList = CoreGraphics.CGWindowListCreate(0,0) | ||||
|         WinListDict = CoreGraphics.CGWindowListCreateDescriptionFromArray(WinList) | ||||
| 
 | ||||
|         for d in WinListDict: | ||||
|             if d['kCGWindowNumber'] == self.number: | ||||
|                 return d['kCGWindowName'] | ||||
|         return None | ||||
| 
 | ||||
|     def topify(self, window): | ||||
| #    The idea here is to call set_transient_for on the HUD window, with the table window | ||||
| #    as the argument. This should keep the HUD window on top of the table window, as if  | ||||
| #    the hud window was a dialog belonging to the table. | ||||
| 
 | ||||
| #    This is the gdkhandle for the HUD window | ||||
|         gdkwindow = gtk.gdk.window_foreign_new(window.number) | ||||
|         gdkwindow.set_transient_for(self.gdkhandle) | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user