1 /* 2 * Copyright (c) 2024 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 #ifndef OHOS_ACE_FRAMEWORK_CJ_TEXT_CLOCK_FFI_H 17 #define OHOS_ACE_FRAMEWORK_CJ_TEXT_CLOCK_FFI_H 18 19 #include <cinttypes> 20 21 #include "bridge/cj_frontend/interfaces/cj_ffi/cj_macro.h" 22 #include "bridge/cj_frontend/interfaces/cj_ffi/cj_view_abstract_ffi.h" 23 #include "core/components_ng/pattern/texttimer/text_timer_model.h" 24 #include "core/components_ng/pattern/texttimer/text_timer_model_ng.h" 25 #include "ffi_remote_data.h" 26 27 namespace OHOS::Ace::Framework { 28 29 class ACE_EXPORT NativeTextTimerController : public OHOS::FFI::FFIData { 30 DECL_TYPE(NativeTextTimerController, OHOS::FFI::FFIData) 31 public: 32 NativeTextTimerController(); 33 34 void Start(); 35 void Pause(); 36 void Reset(); SetController(const RefPtr<TextTimerController> & controller)37 void SetController(const RefPtr<TextTimerController>& controller) 38 { 39 controller_ = controller; 40 } 41 42 private: 43 RefPtr<TextTimerController> controller_; 44 }; 45 } // namespace OHOS::Ace::Framework 46 47 extern "C" { 48 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerCreate(bool isCountDown, int64_t count, int64_t controllerId); 49 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetFormat(const char* value); 50 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetOnTimer(void (*callback)(int64_t, int64_t elapsedTime)); 51 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetFontSize(double fontSize, int32_t unit); 52 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetFontWeight(const char* fontWeight); 53 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetFontColor(uint32_t textColor); 54 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetFontStyle(int32_t fontStyle); 55 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerSetFontFamily(const char* fontFamily); 56 CJ_EXPORT int64_t FfiOHOSAceFrameworkTextTimerControllerCtor(); 57 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerControllerStart(int64_t selfID); 58 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerControllerPause(int64_t selfID); 59 CJ_EXPORT void FfiOHOSAceFrameworkTextTimerControllerReset(int64_t selfID); 60 } 61 62 #endif // OHOS_ACE_FRAMEWORK_CJ_TEXT_CLOCK_FFI_H