7 #ifndef GDCORE_LAYOUT_H
8 #define GDCORE_LAYOUT_H
12 #include "GDCore/Events/EventsList.h"
13 #include "GDCore/Project/BehaviorsSharedData.h"
14 #include "GDCore/Project/InitialInstancesContainer.h"
15 #include "GDCore/Project/Layer.h"
16 #include "GDCore/Project/ObjectGroupsContainer.h"
17 #include "GDCore/Project/ObjectsContainer.h"
18 #include "GDCore/Project/VariablesContainer.h"
19 #include "GDCore/String.h"
20 #include "GDCore/IDE/Dialogs/LayoutEditorCanvas/EditorSettings.h"
26 class InitialInstancesContainer;
116 return initialInstances;
123 return initialInstances;
174 bool HasLayerNamed(
const gd::String& name)
const;
190 Layer& GetLayer(std::size_t index);
196 const Layer& GetLayer(std::size_t index)
const;
201 std::size_t GetLayerPosition(
const gd::String& name)
const;
206 std::size_t GetLayersCount()
const;
212 void InsertNewLayer(
const gd::String& name, std::size_t position);
221 void InsertLayer(
const Layer& theLayer, std::size_t position);
231 void SwapLayers(std::size_t firstLayerIndex, std::size_t secondLayerIndex);
236 void MoveLayer(std::size_t oldIndex, std::size_t newIndex);
257 void UpdateBehaviorsSharedData(
gd::Project& project);
262 std::vector<gd::String> GetAllBehaviorSharedDataNames()
const;
267 bool HasBehaviorSharedData(
const gd::String& behaviorName);
283 const std::map<gd::String, std::unique_ptr<gd::BehaviorsSharedData>>&
284 GetAllBehaviorSharedData()
const;
292 return editorSettings;
300 return editorSettings;
310 disableInputWhenNotFocused = disable;
322 standardSortMethod = enable;
334 stopSoundsOnStartup = enable;
368 void SetProfiler(BaseProfiler* profiler_) { profiler = profiler_; };
373 unsigned int backgroundColorR;
374 unsigned int backgroundColorG;
375 unsigned int backgroundColorB;
379 std::vector<gd::Layer> initialLayers;
380 std::map<gd::String, std::unique_ptr<gd::BehaviorsSharedData>>
382 bool stopSoundsOnStartup;
384 bool standardSortMethod;
385 bool disableInputWhenNotFocused;
391 badBehaviorSharedData;
400 BaseProfiler* profiler;
408 std::unique_ptr<gd::BehaviorsSharedData> CreateBehaviorsSharedData(
419 :
public std::binary_function<std::unique_ptr<Layout>, gd::String, bool> {
420 bool operator()(
const std::unique_ptr<Layout>& layout,
422 return layout->GetName() == name;
445 bool searchInGroups =
true);
454 bool searchInGroups =
true);
461 bool searchInGroups);
471 bool searchInGroups =
true);
480 bool searchInGroups =
true);
489 bool searchInGroups =
true);
498 std::vector<gd::String> GD_CORE_API
502 bool searchInGroups =
true);
Base class for defining data shared by behaviors having the same type and name.
Definition: BehaviorsSharedData.h:24
Container for arbitrary serialized data to be used by the editor to store settings.
Definition: EditorSettings.h:19
A list of events.
Definition: EventsList.h:33
Defines a container of gd::InitialInstances.
Definition: InitialInstancesContainer.h:38
Represents a layer of a layout.
Definition: Layer.h:91
Represent a layout ( also called a scene ) of a project.
Definition: Layout.h:39
bool StopSoundsOnStartup() const
Definition: Layout.h:341
bool StandardSortMethod() const
Definition: Layout.h:328
const gd::String & GetMangledName() const
Definition: Layout.h:69
unsigned int GetBackgroundColorGreen() const
Definition: Layout.h:88
void SetStandardSortMethod(bool enable=true)
Definition: Layout.h:321
gd::InitialInstancesContainer & GetInitialInstances()
Definition: Layout.h:122
bool IsInputDisabledWhenFocusIsLost()
Definition: Layout.h:316
void SetBackgroundColor(unsigned int r, unsigned int g, unsigned int b)
Definition: Layout.h:74
const gd::VariablesContainer & GetVariables() const
Definition: Layout.h:153
const gd::EventsList & GetEvents() const
Definition: Layout.h:135
gd::EditorSettings & GetAssociatedEditorSettings()
Definition: Layout.h:299
void SetProfiler(BaseProfiler *profiler_)
Definition: Layout.h:368
const gd::String & GetName() const
Definition: Layout.h:64
BaseProfiler * GetProfiler() const
Definition: Layout.h:363
const gd::String & GetWindowDefaultTitle() const
Definition: Layout.h:98
unsigned int GetBackgroundColorBlue() const
Definition: Layout.h:93
const gd::EditorSettings & GetAssociatedEditorSettings() const
Definition: Layout.h:291
const gd::InitialInstancesContainer & GetInitialInstances() const
Definition: Layout.h:115
unsigned int GetBackgroundColorRed() const
Definition: Layout.h:83
void SetStopSoundsOnStartup(bool enable=true)
Definition: Layout.h:333
void DisableInputWhenFocusIsLost(bool disable=true)
Definition: Layout.h:309
gd::EventsList & GetEvents()
Definition: Layout.h:140
Layout * Clone() const
Return a pointer to a copy of the layout.
Definition: Layout.h:49
gd::VariablesContainer & GetVariables()
Definition: Layout.h:161
void SetWindowDefaultTitle(const gd::String &title_)
Definition: Layout.h:103
Used as a base class for classes that will own objects (see gd::Object).
Definition: ObjectsContainer.h:36
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:50
A generic container that can represent a value ( containing a string, double, bool or int),...
Definition: SerializerElement.h:37
String represents an UTF8 encoded string.
Definition: String.h:31
Class defining a container for gd::Variable.
Definition: VariablesContainer.h:30
Definition: CommonTools.h:24
gd::String GD_CORE_API GetTypeOfObject(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, gd::String name, bool searchInGroups)
Get a type from an object/group name.
Definition: Layout.cpp:447
std::vector< gd::String > GD_CORE_API GetBehaviorNamesInObjectOrGroup(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, const gd::String &objectOrGroupName, const gd::String &behaviorType, bool searchInGroups)
Get the names of behavior of a given type if an object or all objects of a group has it.
Definition: Layout.cpp:530
gd::String GD_CORE_API GetTypeOfBehaviorInObjectOrGroup(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, const gd::String &objectOrGroupName, const gd::String &behaviorName, bool searchInGroups)
Get the type of a behavior if an object or all objects of a group has it.
Definition: Layout.cpp:693
gd::String GD_CORE_API GetTypeOfBehavior(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, gd::String name, bool searchInGroups)
Get a type from a behavior name.
Definition: Layout.cpp:745
bool GD_CORE_API IsDefaultBehavior(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, gd::String objectOrGroupName, gd::String behaviorName, bool searchInGroups)
Check if a behavior is a default one or doesn't exist in an object or all objects of a group.
Definition: Layout.cpp:643
vector< gd::String > GD_CORE_API GetBehaviorsOfObject(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, const gd::String &name, bool searchInGroups)
Get behaviors of an object/group.
Definition: Layout.cpp:767
bool GD_CORE_API HasBehaviorInObjectOrGroup(const gd::ObjectsContainer &project, const gd::ObjectsContainer &layout, const gd::String &objectOrGroupName, const gd::String &behaviorName, bool searchInGroups)
Check if an object or all objects of a group has a behavior.
Definition: Layout.cpp:597
std::vector< gd::String > GetHiddenLayers(const Layout &layout)
Get the names of all layers from the given layout that are invisible.
Definition: Layout.cpp:436
Functor testing layout name.
Definition: Layout.h:419