// This code is auto-generated by Qul's qmltocpp tool from the file 'Dial.qml'
// WARNING! All changes made in this file will be lost!
// NOTE: This generated API is to be considered implementation detail for Qul.
//       It may change from version to version and should not be relied upon.
#pragma once
#include "DefaultStyle.h"
#include <cstdlib>
#include <platforminterface/log.h>
#include <qul/image.h>
#include <qul/private/array.h>
#include <qul/private/builtins.h>
#include <qul/private/compilerdetection.h>
#include <qul/private/controls/dialtemplate.h>
#include <qul/private/file.h>
#include <qul/private/items.h>
#include <qul/private/items/item.h>
#include <qul/private/models.h>
#include <qul/private/qmltocpp_util.h>
#include <qul/private/qulrcc_lookup.h>
#include <qul/private/unicodestring.h>
#include <qul/signal.h>


namespace QtQuick {
namespace Controls {
namespace StyleDefault {

struct Dial : Qul::Private::Controls::Templates::Dial  {
    Dial();


    Qul::Property<Qul::Private::String> state;
    struct item_ : Qul::Private::Items::Item  {
        explicit item_(Dial *parentScope_);


        typedef Qul::Private::Items::Image  image_Image;
        struct item__3986738907_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__2493429032_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__290463231_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__1918190639_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__876045100_bindingFunctor {

            bool operator()(item_ *self) const;

        };
        struct item__3579183226_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__2358637009_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__3459033655_bindingFunctor {

            int operator()(item_ *self) const;

        };
        struct item__3687861180_bindingFunctor {

            int operator()(item_ *self) const;

        };
        Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Items::Item  > ExtraStorage_itemExtraProperties_this_instance;
        image_Image image;
        Qul::Property<int> attached_index;
        Dial * parentScope;
        Qul::Private::Binding<item__3986738907_bindingFunctor, 0> _y_binding;
        Qul::Private::Binding<item__2493429032_bindingFunctor, 0> _height_binding;
        Qul::Private::Binding<item__290463231_bindingFunctor, 0> _x_binding;
        Qul::Private::Binding<item__1918190639_bindingFunctor, 0> _width_binding;
        Qul::Private::Binding<item__876045100_bindingFunctor, 0> _visible_binding;
        Qul::Private::Binding<item__3579183226_bindingFunctor, 0> image_height_binding;
        Qul::Private::Binding<item__2358637009_bindingFunctor, 0> image_width_binding;
        Qul::Private::Binding<item__3459033655_bindingFunctor, 0> image_y_binding;
        Qul::Private::Binding<item__3687861180_bindingFunctor, 0> image_x_binding;
    };
    typedef Qul::Private::Items::Repeater <Qul::Private::ConstIntegerModel<4>, item_, Dial> repeater_Repeater;
    typedef Qul::Private::Items::Image  backgroundImg_Image;
    struct handleImg_Image : Qul::Private::Items::Image  {
        Qul::Property<Qul::qreal> angleRadians;
    };
    struct Dial_2823032336_bindingFunctor {

        Qul::SharedImage operator()(Dial *self) const;

    };
    struct Dial_2113370248_bindingFunctor {

        int operator()(Dial *self) const;

    };
    struct Dial_1817330643_bindingFunctor {

        int operator()(Dial *self) const;

    };
    struct Dial_2264598102_bindingFunctor {

        Qul::qreal operator()(Dial *self) const;

    };
    struct Dial_400761508_bindingFunctor {

        int operator()(Dial *self) const;

    };
    struct Dial_1937770403_bindingFunctor {

        int operator()(Dial *self) const;

    };
    struct Dial_1979022036_bindingFunctor {

        int operator()(Dial *self) const;

    };
    struct Dial_3988550022_bindingFunctor {

        int operator()(Dial *self) const;

    };
    Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Controls::Templates::Dial  > ExtraStorage_itemExtraProperties_this_instance;
    repeater_Repeater repeater;
    backgroundImg_Image backgroundImg;
    handleImg_Image handleImg;
    Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Items::Image  > ExtraStorage_itemExtraProperties_backgroundImg_instance;
    Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Items::Image  > ExtraStorage_itemExtraProperties_handleImg_instance;
    Qul::Private::Binding<Dial_2823032336_bindingFunctor, 0> backgroundImg_source_binding;
    Qul::Private::Binding<Dial_2113370248_bindingFunctor, 0> backgroundImg_y_binding;
    Qul::Private::Binding<Dial_1817330643_bindingFunctor, 0> backgroundImg_x_binding;
    Qul::Private::ConstIntegerModel<4> static_model_Dial;
    Qul::Private::Binding<Dial_2264598102_bindingFunctor, 0> handleImg_angleRadians_binding;
    Qul::Private::Binding<Dial_400761508_bindingFunctor, 0> handleImg_y_binding;
    Qul::Private::Binding<Dial_1937770403_bindingFunctor, 0> handleImg_x_binding;
    Qul::Private::Binding<Dial_1979022036_bindingFunctor, 0> _implicitHeight_binding;
    Qul::Private::Binding<Dial_3988550022_bindingFunctor, 0> _implicitWidth_binding;
};

} // namespace QtQuick
} // namespace Controls
} // namespace StyleDefault
