+EDGE_RESISTANCE = 10
+"""The amount of resistance to provide to moving a window past a screen
+ boundary. Specify a value of 0 to disable edge resistance."""
+POPUP_IN_WINDOW = 0
+"""When this is non-zero, the coordinates popups will be placed relative to
+ the window being moved/resized. When zero, they will appear relative to the
+ entire screen."""
+POPUP_CENTERED = 1
+"""When this is non-zero, the coordinates popups will be centered relative to
+ the window or screen (see POPUP_IN_WINDOW). When zero, they will be placed
+ at based upon POPUP_COORDS."""
+POPUP_COORDS = 0, 0
+"""When POPUP_CENTERED is zero, these coordinates will be used to place the
+ coordinates popup. The popup will be placed relative to the window or the
+ screen (see POPUP_IN_WINDOW). A value of 0, 0 would place it in the top
+ left corner, while a value of -1, -1 would place it in the bottom right.
+ These values behave simmilarly to those passed to the -geometry flag of many
+ applications."""
+MOVE_POPUP = 1
+"""Display a coordinates popup when moving windows."""
+MOVE_RUBBERBAND = 0
+"""NOT IMPLEMENTED (yet?)
+ Display an outline while moving instead of moving the actual window,
+ until the move is completed. Good for slower systems."""
+RESIZE_POPUP = 1
+"""Display a size popup when resizing windows."""
+RESIZE_RUBBERBAND = 0
+"""NOT IMPLEMENTED (yet?)
+ Display an outline while resizing instead of resizing the actual
+ window, until the resize is completed. Good for slower systems."""
+RESIZE_NEAREST = 1
+"""Non-zero to resize from the corner nearest where the mouse is, 0 to
+ resize always from the bottom right corner."""
+#############################################################################
+
+def move(data):
+ """Moves the window interactively. This should only be used with
+ MouseAction.Motion events. If MOVE_POPUP or MOVE_RUBBERBAND is enabled,
+ then the end_move function needs to be bound as well."""
+ _move(data)
+
+def end_move(data):
+ """Complete the interactive move of a window."""
+ _end_move(data)
+
+def resize(data):
+ """Resizes the window interactively. This should only be used with
+ MouseMotion events. If RESIZE_POPUP or RESIZE_RUBBERBAND is enabled,
+ then the end_resize function needs to be bound as well."""
+ _resize(data)
+
+def end_resize(data):
+ """Complete the interactive resize of a window."""
+ _end_resize(data)
+
+###########################################################################
+###########################################################################
+
+###########################################################################
+### Internal stuff, should not be accessed outside the module. ###
+###########################################################################