// This code is auto-generated by Qul's qmltocpp tool from the file 'Button.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/buttontemplate.h>
#include <qul/private/file.h>
#include <qul/private/items.h>
#include <qul/private/items/item.h>
#include <qul/private/items/text.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 Button : Qul::Private::Controls::Templates::Button  {
    Button();


    Qul::Property<Qul::Private::String> state;
    typedef Qul::Private::Items::BorderImage  borderimage_BorderImage;
    typedef Qul::Private::Items::Item  item__Item;
    typedef Qul::Private::Items::Text  text__Text;
    struct anchor_functor {
        int operator()(Button *self, int _switch_index) const;
    };
    struct Button_182579060_bindingFunctor {

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

    };
    struct Button_366292497_bindingFunctor {

        Qul::PlatformInterface::Rgba32 operator()(Button *self) const;

    };
    struct Button_3934977972_bindingFunctor {

        Qul::Private::FontPointer operator()(Button *self) const;

    };
    struct Button_1880257050_bindingFunctor {

        Qul::Private::String operator()(Button *self) const;

    };
    struct Button_1979022036_bindingFunctor {

        int operator()(Button *self) const;

    };
    struct Button_3988550022_bindingFunctor {

        int operator()(Button *self) const;

    };
    Qul::Private::Binding<anchor_functor, 1> borderimage_width_anchor_binding;
    Qul::Private::Binding<anchor_functor, 1> borderimage_height_anchor_binding;
    Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Controls::Templates::Button  > ExtraStorage_itemExtraProperties_this_instance;
    borderimage_BorderImage borderimage;
    item__Item item_;
    text__Text text_;
    Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Items::Item  > ExtraStorage_itemExtraProperties_item__instance;
    Qul::Private::Items::ItemBase ::ExtraStorage_itemExtraProperties<Qul::Private::Items::Text  > ExtraStorage_itemExtraProperties_text__instance;
    Qul::Private::Binding<Button_182579060_bindingFunctor, 0> borderimage_source_binding;
    Qul::Private::Binding<Button_366292497_bindingFunctor, 0> text__color_binding;
    Qul::Private::Binding<Button_3934977972_bindingFunctor, 0> font_font_binding;
    Qul::Private::Binding<Button_1880257050_bindingFunctor, 0> text__text_binding;
    Qul::Private::Binding<Button_1979022036_bindingFunctor, 0> _implicitHeight_binding;
    Qul::Private::Binding<Button_3988550022_bindingFunctor, 0> _implicitWidth_binding;
};

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