Files
yoga/javascript/sources/Config.hh
Lukas Wöhrl 37c48257ae Move configuration to new YGConfig and pass them down to CalculateLayout
Summary:
Move configuration to new ```YGConfig``` and pass them down to CalculateLayout. See #418 .

Adds ```YGConfigNew()``` + ```YGConfigFree```, and changed ```YGSetExperimentalFeatureEnabled``` to use the config.

New function for calculation is ```YGNodeCalculateLayoutWithConfig```.
Closes https://github.com/facebook/yoga/pull/432

Reviewed By: astreet

Differential Revision: D4611359

Pulled By: emilsjolander

fbshipit-source-id: a1332f0e1b21cec02129dd021ee57408449e10b0
2017-03-01 09:27:53 -08:00

50 lines
966 B
C++

/**
* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#pragma once
#include <nbind/api.h>
#include <nbind/BindDefiner.h>
#include <yoga/Yoga.h>
class Config {
private:
YGConfigRef m_config;
Config(void)
: m_config(YGConfigNew())
{}
public:
static Config * create(void)
{
return new Config();
}
static void destroy(Config * config)
{
delete config;
}
~Config(void)
{
YGConfigFree(m_config);
}
void setExperimentalFeatureEnabled(int feature, bool enabled)
{
YGConfigSetExperimentalFeatureEnabled(m_config, static_cast<YGExperimentalFeature>(feature), enabled);
}
Config(Config const &) = delete;
Config const & operator=(Config const &) = delete;
};