linuxOS_D21X/source/artinchip/awtk-ui/awtk/src/base/clip_board.h

160 lines
4.2 KiB
C
Raw Normal View History

2024-11-29 08:23:11 +00:00
/**
* File: clip_board.h
* Author: AWTK Develop Team
* Brief: clip_board interface
*
* Copyright (c) 2018 - 2023 Guangzhou ZHIYUAN Electronics Co.,Ltd.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* License file for more details.
*
*/
/**
* History:
* ================================================================
* 2018-11-21 Li XianJing <xianjimli@hotmail.com> created
*
*/
#ifndef TK_CLIP_BOARD_H
#define TK_CLIP_BOARD_H
#include "base/types_def.h"
BEGIN_C_DECLS
struct _clip_board_t;
typedef struct _clip_board_t clip_board_t;
/**
* @enum clip_board_data_type_t
* @annotation ["scriptable"]
* @prefix CLIP_BOARD_DATA_TYPE_
*
*/
typedef enum _clip_board_data_type_t {
/**
* @const CLIP_BOARD_DATA_TYPE_NONE
*
*/
CLIP_BOARD_DATA_TYPE_NONE,
/**
* @const CLIP_BOARD_DATA_TYPE_TEXT
* UTF8文本
*/
CLIP_BOARD_DATA_TYPE_TEXT
} clip_board_data_type_t;
typedef ret_t (*clip_board_clear_t)(clip_board_t* cl);
typedef ret_t (*clip_board_get_data_t)(clip_board_t* cl, clip_board_data_type_t* type,
const void** data, uint32_t* size);
typedef ret_t (*clip_board_set_data_t)(clip_board_t* cl, clip_board_data_type_t type,
const void* data, uint32_t size);
typedef ret_t (*clip_board_destroy_t)(clip_board_t* cl);
typedef struct _clip_board_vtable_t {
clip_board_clear_t clear;
clip_board_get_data_t get_data;
clip_board_set_data_t set_data;
clip_board_destroy_t destroy;
} clip_board_vtable_t;
/**
* @class clip_board_t
* @annotation ["scriptable"]
*
*/
struct _clip_board_t {
const clip_board_vtable_t* vt;
};
/**
* @method clip_board
*
* @alias clip_board_instance
* @annotation ["constructor"]
*
* @return {clip_board_t*}
*/
clip_board_t* clip_board(void);
/**
* @method clip_board_set
*
* @param {clip_board_t*} cl
*
* @return {ret_t} RET_OK表示成功
*/
ret_t clip_board_set(clip_board_t* cl);
/**
* @method clip_board_clear
*
* @param {clip_board_t*} cl
*
* @return {ret_t} RET_OK表示成功
*/
ret_t clip_board_clear(clip_board_t* cl);
/**
* @method clip_board_set_data
*
* @param {clip_board_t*} cl
* @param {clip_board_data_type_t} type
* @param {const void*} data
* @param {uint32_t} size
*
* @return {ret_t} RET_OK表示成功
*/
ret_t clip_board_set_data(clip_board_t* cl, clip_board_data_type_t type, const void* data,
uint32_t size);
/**
* @method clip_board_get_data
*
* @param {clip_board_t*} cl
* @param {clip_board_data_type_t*} type (NULL)
* @param {const void**} data (NULL)
* @param {uint32_t*} size (NULL)
*
* @return {ret_t} RET_OK表示成功
*/
ret_t clip_board_get_data(clip_board_t* cl, clip_board_data_type_t* type, const void** data,
uint32_t* size);
/**
* @method clip_board_destroy
*
* @param {clip_board_t*} cl
*
* @return {ret_t} RET_OK表示成功
*/
ret_t clip_board_destroy(clip_board_t* cl);
/**
* @method clip_board_set_text
* (UTF8)
* @annotation ["static", "scriptable"]
* @param {const char*} text
*
* @return {ret_t} RET_OK表示成功
*/
ret_t clip_board_set_text(const char* text);
/**
* @method clip_board_get_text
* (UTF8)
* @annotation ["static", "scriptable"]
*
* @return {const char*}
*/
const char* clip_board_get_text(void);
END_C_DECLS
#endif /*TK_CLIP_BOARD_H*/