/*
 * Copyright © 2010 Codethink Limited
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 *
 * Authors:
 *	Ryan Lortie <desrt@desrt.ca>
 */

#ifndef __gdesktop_enums_h__
#define __gdesktop_enums_h__

typedef enum
{
  G_DESKTOP_PROXY_MODE_NONE,
  G_DESKTOP_PROXY_MODE_MANUAL,
  G_DESKTOP_PROXY_MODE_AUTO
} GDesktopProxyMode;

typedef enum
{
  G_DESKTOP_TOOLBAR_STYLE_BOTH,
  G_DESKTOP_TOOLBAR_STYLE_BOTH_HORIZ,
  G_DESKTOP_TOOLBAR_STYLE_ICONS,
  G_DESKTOP_TOOLBAR_STYLE_TEXT
} GDesktopToolbarStyle;

typedef enum
{
  G_DESKTOP_TOOLBAR_ICON_SIZE_SMALL,
  G_DESKTOP_TOOLBAR_ICON_SIZE_LARGE
} GDesktopToolbarIconSize;

typedef enum
{
  G_DESKTOP_BACKGROUND_STYLE_NONE,
  G_DESKTOP_BACKGROUND_STYLE_WALLPAPER,
  G_DESKTOP_BACKGROUND_STYLE_CENTERED,
  G_DESKTOP_BACKGROUND_STYLE_SCALED,
  G_DESKTOP_BACKGROUND_STYLE_STRETCHED,
  G_DESKTOP_BACKGROUND_STYLE_ZOOM,
  G_DESKTOP_BACKGROUND_STYLE_SPANNED
} GDesktopBackgroundStyle;

typedef enum
{
  G_DESKTOP_BACKGROUND_SHADING_SOLID,
  G_DESKTOP_BACKGROUND_SHADING_VERTICAL,
  G_DESKTOP_BACKGROUND_SHADING_HORIZONTAL
} GDesktopBackgroundShading;

typedef enum
{
  G_DESKTOP_MOUSE_DWELL_MODE_WINDOW,
  G_DESKTOP_MOUSE_DWELL_MODE_GESTURE
} GDesktopMouseDwellMode;

typedef enum
{
  G_DESKTOP_MOUSE_DWELL_DIRECTION_LEFT,
  G_DESKTOP_MOUSE_DWELL_DIRECTION_RIGHT,
  G_DESKTOP_MOUSE_DWELL_DIRECTION_UP,
  G_DESKTOP_MOUSE_DWELL_DIRECTION_DOWN
} GDesktopMouseDwellDirection;

typedef enum
{
  G_DESKTOP_CLOCK_FORMAT_24H,
  G_DESKTOP_CLOCK_FORMAT_12H
} GDesktopClockFormat;

typedef enum
{
  G_DESKTOP_SCREENSAVER_MODE_BLANK_ONLY,
  G_DESKTOP_SCREENSAVER_MODE_RANDOM,
  G_DESKTOP_SCREENSAVER_MODE_SINGLE
} GDesktopScreensaverMode;

typedef enum
{
  G_DESKTOP_MAGNIFIER_MOUSE_TRACKING_MODE_NONE,
  G_DESKTOP_MAGNIFIER_MOUSE_TRACKING_MODE_CENTERED,
  G_DESKTOP_MAGNIFIER_MOUSE_TRACKING_MODE_PROPORTIONAL,
  G_DESKTOP_MAGNIFIER_MOUSE_TRACKING_MODE_PUSH
} GDesktopMagnifierMouseTrackingMode;

typedef enum
{
  G_DESKTOP_MAGNIFIER_FOCUS_TRACKING_MODE_NONE,
  G_DESKTOP_MAGNIFIER_FOCUS_TRACKING_MODE_CENTERED,
  G_DESKTOP_MAGNIFIER_FOCUS_TRACKING_MODE_PROPORTIONAL,
  G_DESKTOP_MAGNIFIER_FOCUS_TRACKING_MODE_PUSH
} GDesktopMagnifierFocusTrackingMode;

typedef enum
{
  G_DESKTOP_MAGNIFIER_CARET_TRACKING_MODE_NONE,
  G_DESKTOP_MAGNIFIER_CARET_TRACKING_MODE_CENTERED,
  G_DESKTOP_MAGNIFIER_CARET_TRACKING_MODE_PROPORTIONAL,
  G_DESKTOP_MAGNIFIER_CARET_TRACKING_MODE_PUSH
} GDesktopMagnifierCaretTrackingMode;
typedef enum
{
  G_DESKTOP_MAGNIFIER_SCREEN_POSITION_NONE,
  G_DESKTOP_MAGNIFIER_SCREEN_POSITION_FULL_SCREEN,
  G_DESKTOP_MAGNIFIER_SCREEN_POSITION_TOP_HALF,
  G_DESKTOP_MAGNIFIER_SCREEN_POSITION_BOTTOM_HALF,
  G_DESKTOP_MAGNIFIER_SCREEN_POSITION_LEFT_HALF,
  G_DESKTOP_MAGNIFIER_SCREEN_POSITION_RIGHT_HALF,
} GDesktopMagnifierScreenPosition;

typedef enum
{
  G_DESKTOP_TITLEBAR_ACTION_TOGGLE_SHADE,
  G_DESKTOP_TITLEBAR_ACTION_TOGGLE_MAXIMIZE,
  G_DESKTOP_TITLEBAR_ACTION_TOGGLE_MAXIMIZE_HORIZONTALLY,
  G_DESKTOP_TITLEBAR_ACTION_TOGGLE_MAXIMIZE_VERTICALLY,
  G_DESKTOP_TITLEBAR_ACTION_MINIMIZE,
  G_DESKTOP_TITLEBAR_ACTION_NONE,
  G_DESKTOP_TITLEBAR_ACTION_LOWER,
  G_DESKTOP_TITLEBAR_ACTION_MENU,
} GDesktopTitlebarAction;

typedef enum
{
  G_DESKTOP_FOCUS_MODE_CLICK,
  G_DESKTOP_FOCUS_MODE_SLOPPY,
  G_DESKTOP_FOCUS_MODE_MOUSE,
} GDesktopFocusMode;

typedef enum
{
  G_DESKTOP_FOCUS_NEW_WINDOWS_SMART,
  G_DESKTOP_FOCUS_NEW_WINDOWS_STRICT,
} GDesktopFocusNewWindows;

typedef enum
{
  G_DESKTOP_VISUAL_BELL_FULLSCREEN_FLASH,
  G_DESKTOP_VISUAL_BELL_FRAME_FLASH,
} GDesktopVisualBellType;

typedef enum
{
    G_DESKTOP_LOCATION_ACCURACY_LEVEL_COUNTRY,
    G_DESKTOP_LOCATION_ACCURACY_LEVEL_CITY,
    G_DESKTOP_LOCATION_ACCURACY_LEVEL_NEIGHBORHOOD,
    G_DESKTOP_LOCATION_ACCURACY_LEVEL_STREET,
    G_DESKTOP_LOCATION_ACCURACY_LEVEL_EXACT
} GDesktopLocationAccuracyLevel;

typedef enum
{
  G_DESKTOP_TOUCHPAD_HANDEDNESS_RIGHT,
  G_DESKTOP_TOUCHPAD_HANDEDNESS_LEFT,
  G_DESKTOP_TOUCHPAD_HANDEDNESS_MOUSE
} GDesktopTouchpadHandedness;

typedef enum
{
  G_DESKTOP_TOUCHPAD_CLICK_METHOD_DEFAULT,
  G_DESKTOP_TOUCHPAD_CLICK_METHOD_NONE,
  G_DESKTOP_TOUCHPAD_CLICK_METHOD_AREAS,
  G_DESKTOP_TOUCHPAD_CLICK_METHOD_FINGERS
} GDesktopTouchpadClickMethod;

typedef enum
{
  G_DESKTOP_TOUCHPAD_BUTTON_TAP_MAP_DEFAULT,
  G_DESKTOP_TOUCHPAD_BUTTON_TAP_MAP_LRM,
  G_DESKTOP_TOUCHPAD_BUTTON_TAP_MAP_LMR
} GDesktopTouchpadTapButtonMap;

typedef enum
{
  G_DESKTOP_DEVICE_SEND_EVENTS_ENABLED,
  G_DESKTOP_DEVICE_SEND_EVENTS_DISABLED,
  G_DESKTOP_DEVICE_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE
} GDesktopDeviceSendEvents;

typedef enum
{
  G_DESKTOP_TABLET_MAPPING_ABSOLUTE,
  G_DESKTOP_TABLET_MAPPING_RELATIVE
} GDesktopTabletMapping;

typedef enum
{
  G_DESKTOP_PAD_BUTTON_ACTION_NONE,
  G_DESKTOP_PAD_BUTTON_ACTION_HELP,
  G_DESKTOP_PAD_BUTTON_ACTION_SWITCH_MONITOR,
  G_DESKTOP_PAD_BUTTON_ACTION_KEYBINDING
} GDesktopPadButtonAction;

typedef enum
{
  G_DESKTOP_STYLUS_BUTTON_ACTION_DEFAULT,
  G_DESKTOP_STYLUS_BUTTON_ACTION_MIDDLE,
  G_DESKTOP_STYLUS_BUTTON_ACTION_RIGHT,
  G_DESKTOP_STYLUS_BUTTON_ACTION_BACK,
  G_DESKTOP_STYLUS_BUTTON_ACTION_FORWARD,
  G_DESKTOP_STYLUS_BUTTON_ACTION_SWITCH_MONITOR,
  G_DESKTOP_STYLUS_BUTTON_ACTION_KEYBINDING
} GDesktopStylusButtonAction;

typedef enum
{
  G_DESKTOP_POINTER_ACCEL_PROFILE_DEFAULT,
  G_DESKTOP_POINTER_ACCEL_PROFILE_FLAT,
  G_DESKTOP_POINTER_ACCEL_PROFILE_ADAPTIVE
} GDesktopPointerAccelProfile;

typedef enum
{
  G_DESKTOP_USB_PROTECTION_LOCKSCREEN,
  G_DESKTOP_USB_PROTECTION_ALWAYS
} GDesktopUsbProtection;

typedef enum
{
  G_DESKTOP_FONT_ANTIALIASING_MODE_NONE,
  G_DESKTOP_FONT_ANTIALIASING_MODE_GRAYSCALE,
  G_DESKTOP_FONT_ANTIALIASING_MODE_RGBA,
} GDesktopFontAntialiasingMode;

typedef enum
{
  G_DESKTOP_FONT_HINTING_NONE,
  G_DESKTOP_FONT_HINTING_SLIGHT,
  G_DESKTOP_FONT_HINTING_MEDIUM,
  G_DESKTOP_FONT_HINTING_FULL,
} GDesktopFontHinting;

typedef enum
{
  G_DESKTOP_FONT_RGBA_ORDER_RGBA,
  G_DESKTOP_FONT_RGBA_ORDER_RGB,
  G_DESKTOP_FONT_RGBA_ORDER_BGR,
  G_DESKTOP_FONT_RGBA_ORDER_VRGB,
  G_DESKTOP_FONT_RGBA_ORDER_VBGR,
} GDesktopFontRgbaOrder;

typedef enum
{
  G_DESKTOP_COLOR_SCHEME_DEFAULT,
  G_DESKTOP_COLOR_SCHEME_PREFER_DARK,
  G_DESKTOP_COLOR_SCHEME_PREFER_LIGHT,
} GDesktopColorScheme;

typedef enum
{
  G_DESKTOP_POINTING_STICK_SCROLL_METHOD_DEFAULT,
  G_DESKTOP_POINTING_STICK_SCROLL_METHOD_NONE,
  G_DESKTOP_POINTING_STICK_SCROLL_METHOD_ON_BUTTON_DOWN
} GDesktopPointingStickScrollMethod;

typedef enum
{
  G_DESKTOP_FONT_RENDERING_AUTOMATIC,
  G_DESKTOP_FONT_RENDERING_MANUAL,
} GDesktopFontRendering;

typedef enum
{
  G_DESKTOP_ACCENT_COLOR_BLUE,
  G_DESKTOP_ACCENT_COLOR_TEAL,
  G_DESKTOP_ACCENT_COLOR_GREEN,
  G_DESKTOP_ACCENT_COLOR_YELLOW,
  G_DESKTOP_ACCENT_COLOR_ORANGE,
  G_DESKTOP_ACCENT_COLOR_RED,
  G_DESKTOP_ACCENT_COLOR_PINK,
  G_DESKTOP_ACCENT_COLOR_PURPLE,
  G_DESKTOP_ACCENT_COLOR_SLATE
} GDesktopAccentColor;

#endif /* __gdesktop_enums_h__ */
