Elementor\Widget_Icon_Box::_register_controls PHP Method

_register_controls() protected method

protected _register_controls ( )
    protected function _register_controls()
    {
        $this->start_controls_section('section_icon', ['label' => __('Icon Box', 'elementor')]);
        $this->add_control('view', ['label' => __('View', 'elementor'), 'type' => Controls_Manager::SELECT, 'options' => ['default' => __('Default', 'elementor'), 'stacked' => __('Stacked', 'elementor'), 'framed' => __('Framed', 'elementor')], 'default' => 'default', 'prefix_class' => 'elementor-view-']);
        $this->add_control('icon', ['label' => __('Choose Icon', 'elementor'), 'type' => Controls_Manager::ICON, 'default' => 'fa fa-star']);
        $this->add_control('shape', ['label' => __('Shape', 'elementor'), 'type' => Controls_Manager::SELECT, 'options' => ['circle' => __('Circle', 'elementor'), 'square' => __('Square', 'elementor')], 'default' => 'circle', 'condition' => ['view!' => 'default'], 'prefix_class' => 'elementor-shape-']);
        $this->add_control('title_text', ['label' => __('Title & Description', 'elementor'), 'type' => Controls_Manager::TEXT, 'default' => __('This is the heading', 'elementor'), 'placeholder' => __('Your Title', 'elementor'), 'label_block' => true]);
        $this->add_control('description_text', ['label' => '', 'type' => Controls_Manager::TEXTAREA, 'default' => __('Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor'), 'placeholder' => __('Your Description', 'elementor'), 'title' => __('Input icon text here', 'elementor'), 'rows' => 10, 'separator' => 'none', 'show_label' => false]);
        $this->add_control('link', ['label' => __('Link to', 'elementor'), 'type' => Controls_Manager::URL, 'placeholder' => __('http://your-link.com', 'elementor'), 'separator' => 'before']);
        $this->add_control('position', ['label' => __('Icon Position', 'elementor'), 'type' => Controls_Manager::CHOOSE, 'default' => 'top', 'options' => ['left' => ['title' => __('Left', 'elementor'), 'icon' => 'align-left'], 'top' => ['title' => __('Top', 'elementor'), 'icon' => 'align-center'], 'right' => ['title' => __('Right', 'elementor'), 'icon' => 'align-right']], 'prefix_class' => 'elementor-position-', 'toggle' => false]);
        $this->add_control('title_size', ['label' => __('Title HTML Tag', 'elementor'), 'type' => Controls_Manager::SELECT, 'options' => ['h1' => __('H1', 'elementor'), 'h2' => __('H2', 'elementor'), 'h3' => __('H3', 'elementor'), 'h4' => __('H4', 'elementor'), 'h5' => __('H5', 'elementor'), 'h6' => __('H6', 'elementor'), 'div' => __('div', 'elementor'), 'span' => __('span', 'elementor'), 'p' => __('p', 'elementor')], 'default' => 'h3']);
        $this->end_controls_section();
        $this->start_controls_section('section_style_icon', ['label' => __('Icon', 'elementor'), 'tab' => Controls_Manager::TAB_STYLE]);
        $this->add_control('primary_color', ['label' => __('Primary Color', 'elementor'), 'type' => Controls_Manager::COLOR, 'scheme' => ['type' => Scheme_Color::get_type(), 'value' => Scheme_Color::COLOR_1], 'default' => '', 'selectors' => ['{{WRAPPER}}.elementor-view-stacked .elementor-icon' => 'background-color: {{VALUE}};', '{{WRAPPER}}.elementor-view-framed .elementor-icon, {{WRAPPER}}.elementor-view-default .elementor-icon' => 'color: {{VALUE}}; border-color: {{VALUE}};']]);
        $this->add_control('secondary_color', ['label' => __('Secondary Color', 'elementor'), 'type' => Controls_Manager::COLOR, 'default' => '', 'condition' => ['view!' => 'default'], 'selectors' => ['{{WRAPPER}}.elementor-view-framed .elementor-icon' => 'background-color: {{VALUE}};', '{{WRAPPER}}.elementor-view-stacked .elementor-icon' => 'color: {{VALUE}};']]);
        $this->add_control('icon_space', ['label' => __('Icon Spacing', 'elementor'), 'type' => Controls_Manager::SLIDER, 'default' => ['size' => 15], 'range' => ['px' => ['min' => 0, 'max' => 100]], 'selectors' => ['{{WRAPPER}}.elementor-position-right .elementor-icon-box-icon' => 'margin-left: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.elementor-position-left .elementor-icon-box-icon' => 'margin-right: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.elementor-position-top .elementor-icon-box-icon' => 'margin-bottom: {{SIZE}}{{UNIT}};']]);
        $this->add_control('icon_size', ['label' => __('Icon Size', 'elementor'), 'type' => Controls_Manager::SLIDER, 'range' => ['px' => ['min' => 6, 'max' => 300]], 'selectors' => ['{{WRAPPER}} .elementor-icon' => 'font-size: {{SIZE}}{{UNIT}};']]);
        $this->add_control('icon_padding', ['label' => __('Icon Padding', 'elementor'), 'type' => Controls_Manager::SLIDER, 'selectors' => ['{{WRAPPER}} .elementor-icon' => 'padding: {{SIZE}}{{UNIT}};'], 'range' => ['em' => ['min' => 0, 'max' => 5]], 'condition' => ['view!' => 'default']]);
        $this->add_control('rotate', ['label' => __('Icon Rotate', 'elementor'), 'type' => Controls_Manager::SLIDER, 'default' => ['size' => 0, 'unit' => 'deg'], 'selectors' => ['{{WRAPPER}} .elementor-icon i' => 'transform: rotate({{SIZE}}{{UNIT}});']]);
        $this->add_control('border_width', ['label' => __('Border Width', 'elementor'), 'type' => Controls_Manager::DIMENSIONS, 'selectors' => ['{{WRAPPER}} .elementor-icon' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'], 'condition' => ['view' => 'framed']]);
        $this->add_control('border_radius', ['label' => __('Border Radius', 'elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => ['{{WRAPPER}} .elementor-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'], 'condition' => ['view!' => 'default']]);
        $this->end_controls_section();
        $this->start_controls_section('section_hover', ['label' => __('Icon Hover', 'elementor'), 'tab' => Controls_Manager::TAB_STYLE]);
        $this->add_control('hover_primary_color', ['label' => __('Primary Color', 'elementor'), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => ['{{WRAPPER}}.elementor-view-stacked .elementor-icon:hover' => 'background-color: {{VALUE}};', '{{WRAPPER}}.elementor-view-framed .elementor-icon:hover, {{WRAPPER}}.elementor-view-default .elementor-icon:hover' => 'color: {{VALUE}}; border-color: {{VALUE}};']]);
        $this->add_control('hover_secondary_color', ['label' => __('Secondary Color', 'elementor'), 'type' => Controls_Manager::COLOR, 'default' => '', 'condition' => ['view!' => 'default'], 'selectors' => ['{{WRAPPER}}.elementor-view-framed .elementor-icon:hover' => 'background-color: {{VALUE}};', '{{WRAPPER}}.elementor-view-stacked .elementor-icon:hover' => 'color: {{VALUE}};']]);
        $this->add_control('hover_animation', ['label' => __('Animation', 'elementor'), 'type' => Controls_Manager::HOVER_ANIMATION]);
        $this->end_controls_section();
        $this->start_controls_section('section_style_content', ['label' => __('Content', 'elementor'), 'tab' => Controls_Manager::TAB_STYLE]);
        $this->add_responsive_control('text_align', ['label' => __('Alignment', 'elementor'), 'type' => Controls_Manager::CHOOSE, 'options' => ['left' => ['title' => __('Left', 'elementor'), 'icon' => 'align-left'], 'center' => ['title' => __('Center', 'elementor'), 'icon' => 'align-center'], 'right' => ['title' => __('Right', 'elementor'), 'icon' => 'align-right'], 'justify' => ['title' => __('Justified', 'elementor'), 'icon' => 'align-justify']], 'selectors' => ['{{WRAPPER}} .elementor-icon-box-wrapper' => 'text-align: {{VALUE}};']]);
        $this->add_control('content_vertical_alignment', ['label' => __('Vertical Alignment', 'elementor'), 'type' => Controls_Manager::SELECT, 'options' => ['top' => __('Top', 'elementor'), 'middle' => __('Middle', 'elementor'), 'bottom' => __('Bottom', 'elementor')], 'default' => 'top', 'prefix_class' => 'elementor-vertical-align-']);
        $this->add_control('heading_title', ['label' => __('Title', 'elementor'), 'type' => Controls_Manager::HEADING, 'separator' => 'before']);
        $this->add_responsive_control('title_bottom_space', ['label' => __('Title Spacing', 'elementor'), 'type' => Controls_Manager::SLIDER, 'range' => ['px' => ['min' => 0, 'max' => 100]], 'selectors' => ['{{WRAPPER}} .elementor-icon-box-title' => 'margin-bottom: {{SIZE}}{{UNIT}};']]);
        $this->add_control('title_color', ['label' => __('Title Color', 'elementor'), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => ['{{WRAPPER}} .elementor-icon-box-content .elementor-icon-box-title' => 'color: {{VALUE}};'], 'scheme' => ['type' => Scheme_Color::get_type(), 'value' => Scheme_Color::COLOR_1]]);
        $this->add_group_control(Group_Control_Typography::get_type(), ['name' => 'title_typography', 'selector' => '{{WRAPPER}} .elementor-icon-box-content .elementor-icon-box-title', 'scheme' => Scheme_Typography::TYPOGRAPHY_1]);
        $this->add_control('heading_description', ['label' => __('Description', 'elementor'), 'type' => Controls_Manager::HEADING, 'separator' => 'before']);
        $this->add_control('description_color', ['label' => __('Description Color', 'elementor'), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => ['{{WRAPPER}} .elementor-icon-box-content .elementor-icon-box-description' => 'color: {{VALUE}};'], 'scheme' => ['type' => Scheme_Color::get_type(), 'value' => Scheme_Color::COLOR_3]]);
        $this->add_group_control(Group_Control_Typography::get_type(), ['name' => 'description_typography', 'selector' => '{{WRAPPER}} .elementor-icon-box-content .elementor-icon-box-description', 'scheme' => Scheme_Typography::TYPOGRAPHY_3]);
        $this->end_controls_section();
    }