<MainMenu>:
    rows: 1
    size_hint: (1, None)
    height: 50
    spacing: 5
    padding: 5
    ToggleButton:
        group: 'mainmenu'
        state: 'down'
        text: 'Gesture Surface'
        on_press:
            app.manager.current = 'surface'
            if self.state == 'normal': self.state = 'down'
    ToggleButton:
        group: 'mainmenu'
        text: 'History'
        on_press:
            app.manager.current = 'history'
            if self.state == 'normal': self.state = 'down'
    ToggleButton:
        group: 'mainmenu'
        text: 'Database'
        on_press:
            app.goto_database_screen()
            if self.state == 'normal': self.state = 'down'
    ToggleButton:
        group: 'mainmenu'
        text: 'Settings'
        on_press:
            app.manager.current = 'settings'
            if self.state == 'normal': self.state = 'down'

<MultistrokeAppSettings>:
    pos_hint: {'top': 1}

    MultistrokeSettingTitle:
        title: 'GestureSurface behavior'
        desc: 'Affects how gestures are detected and cleaned up'

    MultistrokeSettingSlider:
        id: max_strokes
        title: 'Max strokes'
        type: 'int'
        desc: 
            ('Max number of strokes for a single gesture. If 0, the ' +
            'gesture will only be analyzed once the temporal window has ' +
            'expired since the last strokes touch up event')
        value: 4
        min: 0
        max: 15

    MultistrokeSettingSlider:
        id: temporal_win
        title: 'Temporal Window'
        type: 'float'
        desc: 
            ('Time to wait from last touch up in a gesture before analyzing ' +
            'the input. If 0, only analyzed once Max Strokes is reached')
        value: 2.
        min: 0
        max: 60.

    MultistrokeSettingTitle:
        title: 'Drawing'
        desc: 'Affects how gestures are visualized on the GestureSurface'

    MultistrokeSettingSlider:
        id: timeout
        title: 'Draw Timeout'
        type: 'float'
        desc: 
            ('How long to display the gesture (and result label) on the ' +
            'gesture surface once analysis has completed')
        value: 2.
        min: 0
        max: 60.

    MultistrokeSettingSlider:
        id: line_width
        title: 'Line width'
        type: 'int'
        desc: 
            ('Width of lines on the gesture surface; 0 does not draw ' +
            'anything; 1 uses OpenGL line, >1 uses custom drawing method.')
        value: 2
        min: 0
        max: 10

    MultistrokeSettingBoolean:
        id: use_random_color
        title: 'Use random color?'
        desc: 'Use random color for each gesture? If disabled, white is used.'
        button_text: 'Random color?'
        value: True

    MultistrokeSettingBoolean:
        id: draw_bbox
        title: 'Draw gesture bounding box?'
        desc: 'Enable to draw a bounding box around the gesture'
        button_text: 'Draw bbox?'
        value: True
