import QtQuick.tooling 1.0

// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.

Module {
    Component {
        name: "QDeclarativeFeedback"
        prototype: "QObject"
        exports: [
            "QtMobility.feedback/Feedback 1.1"
        ]
        Enum {
            name: "Duration"
            values: {
                "Infinite": -1
            }
        }
        Enum {
            name: "State"
            values: {
                "Stopped": 0,
                "Paused": 1,
                "Running": 2,
                "Loading": 3
            }
        }
        Enum {
            name: "ErrorType"
            values: {
                "UnknownError": 0,
                "DeviceBusy": 1
            }
        }
    }
    Component {
        name: "QDeclarativeFileEffect"
        prototype: "QFeedbackFileEffect"
        exports: [
            "QtMobility.feedback/FileEffect 1.1"
        ]
        Property { name: "running"; type: "bool" }
        Property { name: "paused"; type: "bool" }
        Signal { name: "runningChanged" }
        Signal { name: "pausedChanged" }
        Method { name: "updateState" }
    }
    Component {
        name: "QDeclarativeHapticsEffect"
        prototype: "QFeedbackHapticsEffect"
        exports: [
            "QtMobility.feedback/HapticsEffect 1.1"
        ]
        Property { name: "actuators"; type: "QFeedbackActuator"; isList: true; isReadonly: true }
        Property { name: "running"; type: "bool" }
        Property { name: "paused"; type: "bool" }
        Signal { name: "runningChanged" }
        Signal { name: "pausedChanged" }
        Signal { name: "actuatorsChanged" }
        Method { name: "updateState" }
    }
    Component {
        name: "QDeclarativeThemeEffect"
        prototype: "QObject"
        exports: [
            "QtMobility.feedback/ThemeEffect 1.1"
        ]
        Enum {
            name: "ThemeEffect"
            values: {
                "Basic": 0,
                "Sensitive": 1,
                "BasicButton": 2,
                "SensitiveButton": 3,
                "BasicKeypad": 4,
                "SensitiveKeypad": 5,
                "BasicSlider": 6,
                "SensitiveSlider": 7,
                "BasicItem": 8,
                "SensitiveItem": 9,
                "ItemScroll": 10,
                "ItemPick": 11,
                "ItemDrop": 12,
                "ItemMoveOver": 13,
                "BounceEffect": 14,
                "CheckBox": 15,
                "MultipleCheckBox": 16,
                "Editor": 17,
                "TextSelection": 18,
                "BlankSelection": 19,
                "LineSelection": 20,
                "EmptyLineSelection": 21,
                "PopUp": 22,
                "PopupOpen": 23,
                "PopupClose": 24,
                "Flick": 25,
                "StopFlick": 26,
                "MultiPointTouchActivate": 27,
                "RotateStep": 28,
                "LongPress": 29,
                "PositiveTacticon": 30,
                "NeutralTacticon": 31,
                "NegativeTacticon": 32,
                "NumberOfThemeEffects": 33,
                "ThemeUser": 65535
            }
        }
        Property { name: "supported"; type: "bool"; isReadonly: true }
        Property { name: "effect"; type: "ThemeEffect" }
        Signal { name: "effectChanged" }
        Method { name: "play" }
    }
    Component {
        name: "QFeedbackActuator"
        prototype: "QObject"
        exports: [
            "QtMobility.feedback/Actuator 1.1"
        ]
        Enum {
            name: "Capability"
            values: {
                "Envelope": 0,
                "Period": 1
            }
        }
        Enum {
            name: "State"
            values: {
                "Busy": 0,
                "Ready": 1,
                "Unknown": 2
            }
        }
        Property { name: "id"; type: "int"; isReadonly: true }
        Property { name: "name"; type: "string"; isReadonly: true }
        Property { name: "state"; type: "QFeedbackActuator::State"; isReadonly: true }
        Property { name: "valid"; type: "bool"; isReadonly: true }
        Property { name: "enabled"; type: "bool" }
        Signal { name: "enabledChanged" }
        Method {
            name: "isCapabilitySupported"
            type: "bool"
            Parameter { type: "Capability" }
        }
    }
    Component {
        name: "QFeedbackEffect"
        prototype: "QObject"
        Enum {
            name: "ThemeEffect"
            values: {
                "ThemeBasic": 0,
                "ThemeSensitive": 1,
                "ThemeBasicButton": 2,
                "ThemeSensitiveButton": 3,
                "ThemeBasicKeypad": 4,
                "ThemeSensitiveKeypad": 5,
                "ThemeBasicSlider": 6,
                "ThemeSensitiveSlider": 7,
                "ThemeBasicItem": 8,
                "ThemeSensitiveItem": 9,
                "ThemeItemScroll": 10,
                "ThemeItemPick": 11,
                "ThemeItemDrop": 12,
                "ThemeItemMoveOver": 13,
                "ThemeBounceEffect": 14,
                "ThemeCheckBox": 15,
                "ThemeMultipleCheckBox": 16,
                "ThemeEditor": 17,
                "ThemeTextSelection": 18,
                "ThemeBlankSelection": 19,
                "ThemeLineSelection": 20,
                "ThemeEmptyLineSelection": 21,
                "ThemePopUp": 22,
                "ThemePopupOpen": 23,
                "ThemePopupClose": 24,
                "ThemeFlick": 25,
                "ThemeStopFlick": 26,
                "ThemeMultiPointTouchActivate": 27,
                "ThemeRotateStep": 28,
                "ThemeLongPress": 29,
                "ThemePositiveTacticon": 30,
                "ThemeNeutralTacticon": 31,
                "ThemeNegativeTacticon": 32,
                "NumberOfThemeEffects": 33,
                "ThemeUser": 65535
            }
        }
        Enum {
            name: "Duration"
            values: {
                "Infinite": -1
            }
        }
        Enum {
            name: "State"
            values: {
                "Stopped": 0,
                "Paused": 1,
                "Running": 2,
                "Loading": 3
            }
        }
        Enum {
            name: "ErrorType"
            values: {
                "UnknownError": 0,
                "DeviceBusy": 1
            }
        }
        Property { name: "duration"; type: "int"; isReadonly: true }
        Property { name: "state"; type: "State"; isReadonly: true }
        Signal {
            name: "error"
            Parameter { type: "QFeedbackEffect::ErrorType" }
        }
        Signal { name: "stateChanged" }
        Method { name: "start" }
        Method { name: "stop" }
        Method { name: "pause" }
    }
    Component {
        name: "QFeedbackFileEffect"
        prototype: "QFeedbackEffect"
        Property { name: "loaded"; type: "bool" }
        Property { name: "source"; type: "QUrl" }
    }
    Component {
        name: "QFeedbackHapticsEffect"
        prototype: "QFeedbackEffect"
        Property { name: "duration"; type: "int" }
        Property { name: "intensity"; type: "qreal" }
        Property { name: "attackTime"; type: "int" }
        Property { name: "attackIntensity"; type: "qreal" }
        Property { name: "fadeTime"; type: "int" }
        Property { name: "fadeIntensity"; type: "int" }
        Property { name: "period"; type: "int" }
        Property { name: "actuator"; type: "QFeedbackActuator"; isPointer: true }
    }
}
