mcu_hi3321_watch/tjd/ui/common/TjdUiUtils.h
2025-05-26 20:15:20 +08:00

101 lines
2.8 KiB
C++

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2024. All rights reserved.
*
* Description: TjdUiUtils.h
*
* Author: luziquan@ss-tjd.com
*
* Create: 2024-11-07
*--------------------------------------------------------------------------*/
#ifndef TJD_UI_COMMON_TJDUIUTILS_H
#define TJD_UI_COMMON_TJDUIUTILS_H
#include "components/ui_scroll_view.h"
#include "components/ui_view.h"
#include <stdint.h>
namespace TJD {
class TjdUiUtils final
{
public:
static inline int16_t HorizontalCenter(int16_t width, int16_t target) { return (target - width) / 2; }
static inline int16_t VerticalCenter(int16_t height, int16_t target) { return (target - height) / 2; }
/**
* @brief 计算到控件中心到底部的距离
* @param screenBottomView
* @return int16_t
*/
static int16_t CalculateBottomHidePos(OHOS::UIView &screenBottomView);
/**
* @brief 设置默认的滚动效果
* @param view
*/
static void SetDefaultRollingEffect(OHOS::UIScrollView &view);
/**
* @brief 滑动到顶部
* @param view
*/
static void ScrollByTop(OHOS::UIScrollView &view);
/**
* @brief 请求焦点
* @param view
*/
static void ViewRequestFocus(OHOS::UIView &view);
enum class MsgBoxPosition
{
MSG_BOX_CENTER,
MSG_BOX_BOTTOM,
};
/**
* @brief 显示消息框
* @param msg 显示内容
* @param position 显示位置
*/
static void ShowMsgBox(const char *msg, TjdUiUtils::MsgBoxPosition position, uint32_t color = 0xFF555555,
uint32_t opa = 0xFF);
/**
* @brief 控件水平居中,默认为屏幕宽度466
* @param view
* @param parentWidth 父控件宽度
*/
static void AutoAlignHorizontalCenter(OHOS::UIView &view, int16_t parentWidth = 466);
/**
* @brief 控件垂直居中,默认为屏幕宽度466
* @param view
* @param parentWidth 父控件宽度
*/
static void AutoAlignVerticalCenter(OHOS::UIView &view, int16_t parentHeight = 466);
/**
* @brief 调整当前控件基于目标控件某个方向上的偏移量
* @param curView 当前控件
* @param targetView 目标控件
* @param offsetX 偏移量
* @param direction 偏移方向
*/
enum class OffsetDirection
{
OFFSET_LEFT,// 基于目标控件左偏移
OFFSET_RIGHT,// 基于目标控件右偏移
OFFSET_TOP,// 基于目标控件上偏移
OFFSET_BOTTOM,// 基于目标控件下偏移
};
static void AdjustViewOffset(OHOS::UIView &curView, OHOS::UIView &targetView, int16_t offset, OffsetDirection direction);
private:
TjdUiUtils() = delete;
~TjdUiUtils() = delete;
};
} // namespace TJD
#endif // TJD_UI_COMMON_TJDUIUTILS_H