154 lines
2.8 KiB
PHP
154 lines
2.8 KiB
PHP
<?php
|
|
namespace Elementor\Core\Breakpoints;
|
|
|
|
use Elementor\Core\Base\Base_Object;
|
|
use Elementor\Plugin;
|
|
use Elementor\Core\Breakpoints\Manager as Breakpoints_Manager;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
class Breakpoint extends Base_Object {
|
|
|
|
private $name;
|
|
private $label;
|
|
private $default_value;
|
|
private $db_key;
|
|
private $value;
|
|
private $is_custom;
|
|
private $direction = 'max';
|
|
private $is_enabled = false;
|
|
private $config;
|
|
|
|
/**
|
|
* Get Name
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return string
|
|
*/
|
|
public function get_name() {
|
|
return $this->name;
|
|
}
|
|
|
|
/**
|
|
* Is Enabled
|
|
*
|
|
* Check if the breakpoint is enabled or not. The breakpoint instance receives this data from
|
|
* the Breakpoints Manager.
|
|
*
|
|
* @return bool $is_enabled class variable
|
|
*/
|
|
public function is_enabled() {
|
|
return $this->is_enabled;
|
|
}
|
|
|
|
/**
|
|
* Get Label
|
|
*
|
|
* Retrieve the breakpoint label.
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return string $label class variable
|
|
*/
|
|
public function get_label() {
|
|
return $this->label;
|
|
}
|
|
|
|
/**
|
|
* Get Value
|
|
*
|
|
* Retrieve the saved breakpoint value.
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return int $value class variable
|
|
*/
|
|
public function get_value() {
|
|
if ( ! $this->value ) {
|
|
$this->init_value();
|
|
}
|
|
|
|
return $this->value;
|
|
}
|
|
|
|
/**
|
|
* Is Custom
|
|
*
|
|
* Check if the breakpoint's value is a custom or default value.
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return bool $is_custom class variable
|
|
*/
|
|
public function is_custom() {
|
|
if ( ! $this->is_custom ) {
|
|
$this->get_value();
|
|
}
|
|
|
|
return $this->is_custom;
|
|
}
|
|
|
|
/**
|
|
* Get Default Value
|
|
*
|
|
* Returns the Breakpoint's default value.
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return int $default_value class variable
|
|
*/
|
|
public function get_default_value() {
|
|
return $this->default_value;
|
|
}
|
|
|
|
/**
|
|
* Get Direction
|
|
*
|
|
* Returns the Breakpoint's direction ('min'/'max').
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return string $direction class variable
|
|
*/
|
|
public function get_direction() {
|
|
return $this->direction;
|
|
}
|
|
|
|
/**
|
|
* Set Value
|
|
*
|
|
* Set the `$value` class variable and the `$is_custom` class variable.
|
|
*
|
|
* @since 3.2.0
|
|
*
|
|
* @return int $value class variable
|
|
*/
|
|
private function init_value() {
|
|
$cached_value = Plugin::$instance->kits_manager->get_current_settings( $this->db_key );
|
|
|
|
if ( $cached_value ) {
|
|
$this->value = (int) $cached_value;
|
|
|
|
$this->is_custom = $this->value !== $this->default_value;
|
|
} else {
|
|
$this->value = $this->default_value;
|
|
|
|
$this->is_custom = false;
|
|
}
|
|
|
|
return $this->value;
|
|
}
|
|
|
|
public function __construct( $args ) {
|
|
$this->name = $args['name'];
|
|
$this->label = $args['label'];
|
|
// Used for CSS generation
|
|
$this->db_key = Breakpoints_Manager::BREAKPOINT_SETTING_PREFIX . $args['name'];
|
|
$this->direction = $args['direction'];
|
|
$this->is_enabled = $args['is_enabled'];
|
|
$this->default_value = $args['default_value'];
|
|
}
|
|
}
|