В AWTK API-комментарии используются не только в качестве документации к API, но и для других целей:
Здесь используется формат API-комментариев, похожий на jsduck, однако jsduck не поддерживает типы данных языка C, поэтому невозможно полностью соответствовать формату jsduck.
@class обозначает определение класса. Пример:
/**
* @class progress_bar_t
* @parent widget_t
* @annotation ["scriptable"]
* Прогрессивная полоса (индикатор выполнения).
*/
Здесь указано название класса, имя родительского класса и возможность его использования для скриптинга. Для классов annotation может принимать значения:
@property обозначает определение свойства. Пример:
/**
* @property {uint8_t} value
* @annotation ["set_prop","get_prop","readable","persitent","design","scriptable"]
* Значение прогресса от 0 до 100 для полосы прогресса.
*/
Здесь указаны тип переменной-члена, её название и информация о том, доступна ли она только для чтения. Для property annotation может принимать следующие значения:
@method обозначает определение функции. Пример:
/**
* @method progress_bar_create
* @annotation ["constructor", "scriptable"]
* Создаёт объект progress_bar.
* @param {widget_t*} parent родительский элемент управления
* @param {xy_t} x координата X
* @param {xy_t} y координата Y
* @param {wh_t} w ширина
* @param {wh_t} h высота
*
* @return {widget_t*} объект.
*/
widget_t* progress_bar_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
/**
* @method progress_bar_cast
* Преобразует в объект progress_bar (для использования в скриптовых языках).
* @annotation ["cast", "scriptable"]
* @param {widget_t*} widget объект progress_bar
*
* @return {widget_t*} объект progress_bar.
*/
widget_t* progress_bar_cast(widget_t* widget);
/**
* @method progress_bar_set_value
* Устанавливает прогресс полосы.
* @annotation ["scriptable"]
* @param {widget_t*} виджет
* @param {uint8_t} значение
*
* @return {ret_t} возвращает RET_OK при успешном выполнении, иначе — ошибку.
*/
ret_t progress_bar_set_value(widget_t* widget, uint8_t value);
Здесь указываются название функции, параметры и возвращаемое значение. Для property annotation может иметь следующие значения:
@enum обозначает определение перечисления. Пример:
/**
* @enum align_v_t
* @annotation ["scriptable"]
* Определяет константы вертикального выравнивания.
*/
typedef enum _align_v_t {
/**
* @const ALIGN_V_NONE
* Недействительный способ выравнивания.
*/
ALIGN_V_NONE= 0,
/**
* @const ALIGN_V_MIDDLE
* Выравнивание по центру.
*/
ALIGN_V_MIDDLE,
/**
* @const ALIGN_V_TOP
* Верхнее выравнивание.
*/
ALIGN_V_TOP,
/**
* @const ALIGN_V_BOTTOM
* Нижнее выравнивание.
*/
ALIGN_V_BOTTOM
}align_v_t;
Здесь определяется название перечисления и значения каждого элемента. Для enum annotation может иметь следующее значение:
@event обозначает определение события. Пример:
/**
* @event {pointer_event_t} EVT_CLICK
* Событие клика.
*/
/**
* @event {pointer_event_t} EVT_LONG_PRESS
* Событие длительного нажатия.
*/
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )