1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "bridge/declarative_frontend/jsview/models/richtext_model_impl.h"
17 
18 #include "bridge/declarative_frontend/view_stack_processor.h"
19 #include "core/components/web/web_component.h"
20 #include "core/event/ace_event_handler.h"
21 
22 namespace OHOS::Ace::Framework {
Create(const std::string & data)23 void RichTextModelImpl::Create(const std::string& data)
24 {
25     auto webComponent = AceType::MakeRefPtr<OHOS::Ace::WebComponent>("");
26     if (webComponent) {
27         webComponent->SetData(data);
28         ViewStackProcessor::GetInstance()->Push(webComponent);
29     }
30 }
31 
SetOnPageStart(std::function<void (const BaseEventInfo *)> && onStarted)32 void RichTextModelImpl::SetOnPageStart(std::function<void(const BaseEventInfo*)>&& onStarted)
33 {
34     auto eventMarker = EventMarker(std::move(onStarted));
35     auto webComponent = AceType::DynamicCast<WebComponent>(ViewStackProcessor::GetInstance()->GetMainComponent());
36     if (webComponent) {
37         webComponent->SetPageStartedEventId(eventMarker);
38     }
39 }
40 
SetOnPageFinish(std::function<void (const BaseEventInfo *)> && onFinish)41 void RichTextModelImpl::SetOnPageFinish(std::function<void(const BaseEventInfo*)>&& onFinish)
42 {
43     auto eventMarker = EventMarker(std::move(onFinish));
44     auto webComponent = AceType::DynamicCast<WebComponent>(ViewStackProcessor::GetInstance()->GetMainComponent());
45     if (webComponent) {
46         webComponent->SetPageFinishedEventId(eventMarker);
47     }
48 }
49 } // namespace OHOS::Ace::Framework
50