Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: swarm_client/third_party/colorama/win32.py

Issue 69143004: Delete swarm_client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1
2 # from winbase.h
3 STDOUT = -11
4 STDERR = -12
5
6 try:
7 from ctypes import windll
8 except ImportError:
9 windll = None
10 SetConsoleTextAttribute = lambda *_: None
11 else:
12 from ctypes import (
13 byref, Structure, c_char, c_short, c_uint32, c_ushort
14 )
15
16 handles = {
17 STDOUT: windll.kernel32.GetStdHandle(STDOUT),
18 STDERR: windll.kernel32.GetStdHandle(STDERR),
19 }
20
21 SHORT = c_short
22 WORD = c_ushort
23 DWORD = c_uint32
24 TCHAR = c_char
25
26 class COORD(Structure):
27 """struct in wincon.h"""
28 _fields_ = [
29 ('X', SHORT),
30 ('Y', SHORT),
31 ]
32
33 class SMALL_RECT(Structure):
34 """struct in wincon.h."""
35 _fields_ = [
36 ("Left", SHORT),
37 ("Top", SHORT),
38 ("Right", SHORT),
39 ("Bottom", SHORT),
40 ]
41
42 class CONSOLE_SCREEN_BUFFER_INFO(Structure):
43 """struct in wincon.h."""
44 _fields_ = [
45 ("dwSize", COORD),
46 ("dwCursorPosition", COORD),
47 ("wAttributes", WORD),
48 ("srWindow", SMALL_RECT),
49 ("dwMaximumWindowSize", COORD),
50 ]
51 def __str__(self):
52 return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % (
53 self.dwSize.Y, self.dwSize.X
54 , self.dwCursorPosition.Y, self.dwCursorPosition.X
55 , self.wAttributes
56 , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, s elf.srWindow.Right
57 , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X
58 )
59
60 def GetConsoleScreenBufferInfo(stream_id=STDOUT):
61 handle = handles[stream_id]
62 csbi = CONSOLE_SCREEN_BUFFER_INFO()
63 success = windll.kernel32.GetConsoleScreenBufferInfo(
64 handle, byref(csbi))
65 return csbi
66
67
68 def SetConsoleTextAttribute(stream_id, attrs):
69 handle = handles[stream_id]
70 return windll.kernel32.SetConsoleTextAttribute(handle, attrs)
71
72
73 def SetConsoleCursorPosition(stream_id, position):
74 position = COORD(*position)
75 # If the position is out of range, do nothing.
76 if position.Y <= 0 or position.X <= 0:
77 return
78 # Adjust for Windows' SetConsoleCursorPosition:
79 # 1. being 0-based, while ANSI is 1-based.
80 # 2. expecting (x,y), while ANSI uses (y,x).
81 adjusted_position = COORD(position.Y - 1, position.X - 1)
82 # Adjust for viewport's scroll position
83 sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
84 adjusted_position.Y += sr.Top
85 adjusted_position.X += sr.Left
86 # Resume normal processing
87 handle = handles[stream_id]
88 return windll.kernel32.SetConsoleCursorPosition(handle, adjusted_positio n)
89
90 def FillConsoleOutputCharacter(stream_id, char, length, start):
91 handle = handles[stream_id]
92 char = TCHAR(char)
93 length = DWORD(length)
94 num_written = DWORD(0)
95 # Note that this is hard-coded for ANSI (vs wide) bytes.
96 success = windll.kernel32.FillConsoleOutputCharacterA(
97 handle, char, length, start, byref(num_written))
98 return num_written.value
99
100 def FillConsoleOutputAttribute(stream_id, attr, length, start):
101 ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, c oordScreen, &cCharsWritten )'''
102 handle = handles[stream_id]
103 attribute = WORD(attr)
104 length = DWORD(length)
105 num_written = DWORD(0)
106 # Note that this is hard-coded for ANSI (vs wide) bytes.
107 return windll.kernel32.FillConsoleOutputAttribute(
108 handle, attribute, length, start, byref(num_written))
109
OLDNEW
« no previous file with comments | « swarm_client/third_party/colorama/initialise.py ('k') | swarm_client/third_party/colorama/winterm.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698