Blender V4.3
rna_timeline.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include <cstdlib>
10
11#include "DNA_scene_types.h"
12
13#include "RNA_define.hh"
14
15#include "rna_internal.hh"
16
17#include "WM_types.hh"
18
19#ifdef RNA_RUNTIME
20
21# include "BKE_idprop.hh"
22# include "BKE_scene.hh"
23# include "BKE_screen.hh"
24# include "WM_api.hh"
25
26# include "DEG_depsgraph_build.hh"
27
28static IDProperty **rna_TimelineMarker_idprops(PointerRNA *ptr)
29{
30 TimeMarker *marker = static_cast<TimeMarker *>(ptr->data);
31 return &marker->prop;
32}
33
34static void rna_TimelineMarker_update(Main * /*bmain*/, Scene * /*scene*/, PointerRNA * /*ptr*/)
35{
38}
39
40static void rna_TimelineMarker_camera_update(Main *bmain, Scene * /*scene*/, PointerRNA *ptr)
41{
42 wmWindowManager *wm = static_cast<wmWindowManager *>(bmain->wm.first);
43 Scene *scene = (Scene *)ptr->owner_id;
44
46 WM_windows_scene_data_sync(&wm->windows, scene);
48
51 WM_main_add_notifier(NC_SCENE | NA_EDITED, scene); /* so we get view3d redraws */
52}
53
54#else
55
57{
58 StructRNA *srna;
59 PropertyRNA *prop;
60
61 srna = RNA_def_struct(brna, "TimelineMarker", nullptr);
62 RNA_def_struct_sdna(srna, "TimeMarker");
63 RNA_def_struct_ui_text(srna, "Marker", "Marker for noting points in the timeline");
64 RNA_def_struct_idprops_func(srna, "rna_TimelineMarker_idprops");
65
66 /* String values */
67 prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
68 RNA_def_property_ui_text(prop, "Name", "");
70 RNA_def_property_update(prop, 0, "rna_TimelineMarker_update");
71
72 prop = RNA_def_property(srna, "frame", PROP_INT, PROP_TIME);
73 RNA_def_property_ui_text(prop, "Frame", "The frame on which the timeline marker appears");
74 RNA_def_property_update(prop, 0, "rna_TimelineMarker_update");
75
76 prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
77 RNA_def_property_boolean_sdna(prop, nullptr, "flag", 1 /*SELECT*/);
78 RNA_def_property_ui_text(prop, "Select", "Marker selection state");
79 RNA_def_property_update(prop, 0, "rna_TimelineMarker_update");
80
81# ifdef DURIAN_CAMERA_SWITCH
82 prop = RNA_def_property(srna, "camera", PROP_POINTER, PROP_NONE);
83 RNA_def_property_struct_type(prop, "Object");
86 RNA_def_property_ui_text(prop, "Camera", "Camera that becomes active on this frame");
87 RNA_def_property_update(prop, 0, "rna_TimelineMarker_camera_update");
88# endif
89}
90
95
96#endif
bool BKE_scene_camera_switch_update(Scene *scene)
Definition scene.cc:2213
void DEG_relations_tag_update(Main *bmain)
@ PROP_BOOLEAN
Definition RNA_types.hh:65
@ PROP_INT
Definition RNA_types.hh:66
@ PROP_STRING
Definition RNA_types.hh:68
@ PROP_POINTER
Definition RNA_types.hh:70
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
Definition RNA_types.hh:355
@ PROP_EDITABLE
Definition RNA_types.hh:207
@ PROP_ID_SELF_CHECK
Definition RNA_types.hh:259
@ PROP_TIME
Definition RNA_types.hh:156
@ PROP_NONE
Definition RNA_types.hh:136
#define NC_ANIMATION
Definition WM_types.hh:355
#define NC_SCENE
Definition WM_types.hh:345
#define NA_EDITED
Definition WM_types.hh:550
#define ND_MARKERS
Definition WM_types.hh:400
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
static void rna_def_timeline_marker(BlenderRNA *brna)
void RNA_def_timeline_marker(BlenderRNA *brna)
void * first
ListBase wm
Definition BKE_main.hh:239
ID * owner_id
Definition RNA_types.hh:40
void * data
Definition RNA_types.hh:42
struct IDProperty * prop
void WM_main_add_notifier(uint type, void *reference)
PointerRNA * ptr
Definition wm_files.cc:4126
void WM_windows_scene_data_sync(const ListBase *win_lb, Scene *scene)