Слияние кода завершено, страница обновится автоматически
/*
* Copyright (c) 2009-2022 Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*============================ INCLUDES ======================================*/
#define __ARM_2D_HELPER_LIST_VIEW_INHERIT__
#define __NUMBER_LIST_IMPLEMENT__
#include "list_view.h"
#include "__common.h"
#include "arm_2d.h"
#include "arm_2d_helper.h"
#include <assert.h>
#if defined(__clang__)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wunknown-warning-option"
# pragma clang diagnostic ignored "-Wreserved-identifier"
# pragma clang diagnostic ignored "-Wdeclaration-after-statement"
# pragma clang diagnostic ignored "-Wsign-conversion"
# pragma clang diagnostic ignored "-Wpadded"
# pragma clang diagnostic ignored "-Wcast-qual"
# pragma clang diagnostic ignored "-Wcast-align"
# pragma clang diagnostic ignored "-Wmissing-field-initializers"
# pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
# pragma clang diagnostic ignored "-Wmissing-braces"
# pragma clang diagnostic ignored "-Wunused-const-variable"
# pragma clang diagnostic ignored "-Wmissing-declarations"
# pragma clang diagnostic ignored "-Wmissing-variable-declarations"
#endif
/*============================ MACROS ========================================*/
#if __GLCD_CFG_COLOUR_DEPTH__ == 8
#elif __GLCD_CFG_COLOUR_DEPTH__ == 16
#elif __GLCD_CFG_COLOUR_DEPTH__ == 32
#else
# error Unsupported colour depth!
#endif
#undef this
#define this (*ptThis)
/*============================ MACROFIED FUNCTIONS ===========================*/
/*============================ TYPES =========================================*/
/*============================ GLOBAL VARIABLES ==============================*/
/*============================ PROTOTYPES ====================================*/
/*============================ LOCAL VARIABLES ===============================*/
/*============================ IMPLEMENTATION ================================*/
static
IMPL_ON_DRAW_EVT(__arm_2d_list_view_draw_background)
{
ARM_2D_UNUSED(bIsNewFrame);
list_view_t *ptThis = (list_view_t *)pTarget;
if (!this.tListViewCFG.bIgnoreBackground) {
arm_2d_fill_colour_with_opacity(
ptTile,
NULL,
(__arm_2d_color_t) {this.tListViewCFG.tBackgroundColour},
this.tListViewCFG.chOpacity);
}
arm_2d_op_wait_async(NULL);
return arm_fsm_rt_cpl;
}
ARM_NONNULL(1,2)
void list_view_init(list_view_t *ptThis,
list_view_cfg_t *ptCFG)
{
assert(NULL != ptThis);
assert(NULL != ptCFG);
assert(NULL != ptCFG->fnIterator);
this.tListViewCFG = *ptCFG;
/* validation */
if (0 == this.tListViewCFG.chOpacity) {
this.tListViewCFG.chOpacity = 255;
}
/* call base class contructor */
do {
__arm_2d_list_core_cfg_t tCFG = {
.fnIterator = ptCFG->fnIterator,
/* vertical list, centre aligned style */
.fnCalculator = ptCFG->fnCalculator,
.fnOnDrawListBackground = &__arm_2d_list_view_draw_background,
//.fnOnDrawListItemBackground = &__arm_2d_number_list_draw_list_core_item_background,
.hwSwitchingPeriodInMs = ptCFG->hwSwitchingPeriodInMs,
.hwItemCount = ptCFG->hwCount,
.hwItemSizeInByte = ptCFG->hwItemSizeInByte,
.nTotalLength = 0,
.tListSize = ptCFG->tListSize,
.ptItems = ptCFG->ptItems,
};
/* you can override the default implementations */
if (NULL != ptCFG->fnOnDrawListBackground) {
tCFG.fnOnDrawListBackground = ptCFG->fnOnDrawListBackground;
}
if (NULL != ptCFG->fnOnDrawListCover) {
tCFG.fnOnDrawListCover = ptCFG->fnOnDrawListCover;
}
if (NULL != ptCFG->fnOnDrawListItemBackground) {
tCFG.fnOnDrawListItemBackground = ptCFG->fnOnDrawListItemBackground;
}
__arm_2d_list_core_init(&this.use_as____arm_2d_list_core_t, &tCFG);
} while(0);
/* request updating StartOffset */
//this.use_as____arm_2d_list_core_t.CalMidAligned.bListHeightChanged = true;
}
ARM_NONNULL(1,2)
arm_fsm_rt_t list_view_show(list_view_t *ptThis,
const arm_2d_tile_t *ptTile,
const arm_2d_region_t *ptRegion,
bool bIsNewFrame)
{
return __arm_2d_list_core_show( &this.use_as____arm_2d_list_core_t,
ptTile,
ptRegion,
bIsNewFrame);
}
ARM_NONNULL(1)
void list_view_move_selection( list_view_t *ptThis,
int16_t iSteps,
int32_t nFinishInMs)
{
__arm_2d_list_core_move_request(&this.use_as____arm_2d_list_core_t,
iSteps,
nFinishInMs);
}
#if defined(__clang__)
# pragma clang diagnostic pop
#endif
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )