# encoding=utf8
# The window related apis
# Currently this module depends on pywin32:
import logging
try:
import win32gui
except ImportError:
logging.error('Require pywin32 lib')
if __name__ != '__main__':
raise RuntimeError
# Window api const value definitions
# Window long
GWL_EXSTYLE = -20
GWL_HINSTANCE = -6
GWL_HWNDPARENT = -8
GWL_ID = -12
GWL_STYLE = -16
GWL_USERDATA = -21
GWL_WNDPROC = -4
# window style values
# See:
GWL_STYLE_OVERLAPPED = 0x00000000L
GWL_STYLE_POPUP = 0x80000000L
GWL_STYLE_CHILD = 0x40000000L
GWL_STYLE_MINIMIZE = 0x20000000L
GWL_STYLE_VISIBLE = 0x10000000L
GWL_STYLE_DISABLED = 0x08000000L
GWL_STYLE_CLIPSIBLINGS = 0x04000000L
GWL_STYLE_CLIPCHILDREN = 0x02000000L
GWL_STYLE_MAXIMIZE = 0x01000000L
GWL_STYLE_BORDER = 0x00800000L
GWL_STYLE_DLGFRAME = 0x00400000L
GWL_STYLE_VSCROLL = 0x00200000L
GWL_STYLE_HSCROLL = 0x00100000L
GWL_STYLE_SYSMENU = 0x00080000L
GWL_STYLE_THICKFRAME = 0x00040000L
GWL_STYLE_SIZEBOX = 0x00040000L
GWL_STYLE_GROUP = 0x00020000L
GWL_STYLE_TABSTOP = 0x00010000L
GWL_STYLE_MINIMIZEBOX = 0x00020000L
GWL_STYLE_MAXIMIZEBOX = 0x00010000L
GWL_STYLE_CAPTION = GWL_STYLE_BORDER | GWL_STYLE_DLGFRAME
GWL_STYLE_OVERLAPPEDWINDOW = GWL_STYLE_OVERLAPPED | GWL_STYLE_CAPTION | GWL_STYLE_SYSMENU | GWL_STYLE_THICKFRAME | GWL_STYLE_MINIMIZEBOX | GWL_STYLE_MAXIMIZEBOX
GWL_STYLE_POPUPWINDOW = GWL_STYLE_POPUP | GWL_STYLE_BORDER | GWL_STYLE_SYSMENU
GWL_STYLE_CHILDWINDOW = GWL_STYLE_CHILD
GWL_STYLE_TILED = GWL_STYLE_OVERLAPPED
GWL_STYLE_ICONIC = GWL_STYLE_MINIMIZE
GWL_STYLE_SIZEBOX = GWL_STYLE_THICKFRAME
GWL_STYLE_TILEDWINDOW = GWL_STYLE_OVERLAPPEDWINDOW
def getActiveWindow():
"""
Get the current active window
Since kivy only support single window, so this hwnd is the only window hwnd
"""
return win32gui.GetActiveWindow()
def getWindowLong(hwnd, nIndex):
"""
Retrieves information about the specified window.
See:
"""
return win32gui.GetWindowLong(hwnd, nIndex)
def setWindowLong(hwnd, nIndex, dwNewLong):
"""
Changes an attribute of the specified window.
See:
"""
return win32gui.SetWindowLong(hwnd, nIndex, dwNewLong)