void OBSBasic::AddSourceWithProperty(const char *id) { size_t curTime = base::Time::Now().ToTimeT(); const char *src_name = obs_source_get_display_name(id); std::ostringstream os; os << src_name << "_" << curTime; std::string name = os.str(); OBSScene scene = GetCurrentScene(); if (!scene) return; obs_source_t * source = obs_source_create(id, name.c_str(), NULL, nullptr); if (source) { obs_scene_atomic_update(scene, [](void *data, obs_scene_t *scene){ obs_scene_add(scene, (obs_source_t *)data); }, source); } CreatePropertiesWindow(source, true); obs_source_release(source); }
static void ShowProperties(HWND parent, Doc doc, DisplayModel *dm, bool extended=false) { PropertiesLayout *layoutData = FindPropertyWindowByParent(parent); if (layoutData) { SetActiveWindow(layoutData->hwnd); return; } if (!doc.IsEngine() && !doc.IsEbook()) return; layoutData = new PropertiesLayout(); gPropertiesWindows.Append(layoutData); GetProps(doc, layoutData, dm, extended); if (!CreatePropertiesWindow(parent, layoutData)) delete layoutData; }
static void ShowProperties(HWND parent, Controller *ctrl, bool extended=false) { PropertiesLayout *layoutData = FindPropertyWindowByParent(parent); if (layoutData) { SetActiveWindow(layoutData->hwnd); return; } if (!ctrl) return; layoutData = new PropertiesLayout(); gPropertiesWindows.Append(layoutData); GetProps(ctrl, layoutData, extended); if (!CreatePropertiesWindow(parent, layoutData)) delete layoutData; }
void EditorWorld::CreatePropertiesWindow(const EntityPtr& entity, const std::function<void (void)>& close_callback) { std::vector<EntityPtr> e; e.push_back(entity); CreatePropertiesWindow(e, close_callback); }