-### Options that can be modified to change the functions' behaviors. ###
-### ###
-# snap - snap windows to other windows and screen edges while moving them ###
-snap = 1
-###
-# move_popup - display a coordinates popup when moving windows. ###
-move_popup = 1 ###
-### ###
-# NOT IMPLEMENTED (yet?) ###
-# move_rubberband - display an outline while moving instead of moving the ###
-### actual window, until the move is completed. Good for ###
-### slower systems. ###
-move_rubberband = 0 ###
-### ###
-# resize_popup - display a size popup when resizing windows. ###
-resize_popup = 1 ###
-### ###
-# NOT IMPLEMENTED (yet?) ###
-# resize_rubberband - display an outline while resizing instead of ###
-### resizing the actual window, until the resize is ###
-### completed. Good for slower systems. ###
-resize_rubberband = 0 ###
-### ###
-# resize_nearest - 1 to resize from the corner nearest where the mouse ###
-### is, 0 to resize always from the bottom right corner. ###
-resize_nearest = 1 ###
-### ###
-### ###
-# Provides: ###
-# def move(data): ###
-# """Moves the window interactively. This should only be used with ###
-# MouseMotion events. If move_popup or move_rubberband is enabled, ###
-# then the end_move function needs to be bound as well.""" ###
-# def end_move(data): ###
-# """Complete the interactive move of a window.""" ###
-# def resize(data): ###
-# """Resizes the window interactively. This should only be used with ###
-# MouseMotion events""" ###
-# def end_resize(data): ###
-# """Complete the interactive resize of a window.""" ###
-### ###
-#############################################################################
+
+import config
+
+config.add('motion',
+ 'edge_resistance',
+ 'Edge Resistance',
+ "The amount of resistance to provide to moving a window past a " + \
+ "screen boundary. Specify a value of 0 to disable edge resistance.",
+ 'integer',
+ 10,
+ min = 0)
+config.add('motion',
+ 'popup_in_window',
+ 'Coords Popup In Window',
+ "When this is true, the coordinates popups will be placed " + \
+ "relative to the window being moved/resized. When false, they " + \
+ "will appear relative to the entire screen.",
+ 'boolean',
+ 0)
+config.add('motion',
+ 'popup_centered',
+ 'Coords Popup Centered',
+ "When this is true, the coordinates popups will be centered " + \
+ "relative to the window or screen (see 'Coords Popup In " + \
+ "Window'). When false, they will be placed based upon the " + \
+ "'Coords Popup Position' options.",
+ 'boolean',
+ 1)
+config.add('motion',
+ 'popup_coords_x',
+ 'Coords Popup Position - X',
+ "When 'Coords Popup Centered' is false, this position will be " + \
+ "used to place the coordinates popups. The popups will be " + \
+ "placed relative to the window or the screen (see 'Coords " + \
+ "Popup In Window'). A value of 0 would place it at the left " + \
+ "edge, while a value of -1 would place it at the right edge. " + \
+ "This value behaves similarly to those passed to the -geometry " + \
+ "flag of many applications.",
+ 'integer',
+ 0)
+config.add('motion',
+ 'popup_coords_y',
+ 'Coords Popup Position - Y',
+ "When 'Coords Popup Centered' is false, this position will be " + \
+ "used to place the coordinates popups. The popups will be " + \
+ "placed relative to the window or the screen (see 'Coords Popup " +\
+ "In Window'). A value of 0 would place it at the top edge, " + \
+ "while a value of -1 would place it at the bottom edge. This " + \
+ "value behaves similarly to those passed to the -geometry flag " + \
+ "of many applications.",
+ 'integer',
+ 0)
+config.add('motion',
+ 'move_popup',
+ 'Coords Popup for Moving',
+ "Option to display a coordinates popup when moving windows.",
+ 'boolean',
+ 1)
+config.add('motion',
+ 'move_rubberband',
+ 'Rubberband Mode for Moving',
+ "NOT IMPLEMENTED (yet?)\n"+\
+ "Display an outline while moving instead of moving the actual " + \
+ "window, until the move is completed. Good for slower systems.",
+ 'boolean',
+ 0)
+config.add('motion',
+ 'resize_popup',
+ 'Coords Popup for Resizing',
+ "Option to display a coordinates popup when resizing windows.",
+ 'boolean',
+ 1)
+config.add('motion',
+ 'resize_rubberband',
+ 'Rubberband Mode for Resizing',
+ "NOT IMPLEMENTED (yet?)\n"+\
+ "Display an outline while resizing instead of resizing the " + \
+ "actual window, until the resize is completed. Good for slower " + \
+ "systems.",
+ 'boolean',
+ 0)
+config.add('motion',
+ 'resize_nearest',
+ 'Resize Nearest Corner',
+ "When true, resizing will occur from the corner nearest where " + \
+ "the mouse is. When false resizing will always occur from the " + \
+ "bottom right corner.",
+ 'boolean',
+ 1)
+
+###########################################################################
+### Internal stuff, should not be accessed outside the module. ###
+###########################################################################