⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listedit_setitemcolor.c

📁 在uc_GUI中增加的列表编辑框list_edit源代码
💻 C
字号:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : LISTEDIT_SetItemColor.c
Purpose     : Implementation of LISTEDIT_SetItemTextColor and LISTEDIT_SetItemBkColor
---------------------------END-OF-HEADER------------------------------
*/

#include <string.h>

#include "LISTEDIT_Private.h"

#if GUI_WINSUPPORT

/*********************************************************************
*
*       _GetpItemInfo
*/
static LISTEDIT_ITEM_INFO * _GetpItemInfo(LISTEDIT_Handle hObj, unsigned Column, unsigned Row, unsigned int Index) {
  LISTEDIT_ITEM_INFO * pItemInfo = 0;
  LISTEDIT_ITEM      * pItem;
  LISTEDIT_Obj       * pObj;
  if (hObj) {
    if ((Column < LISTEDIT_GetNumColumns(hObj)) && (Row < LISTEDIT_GetNumRows(hObj)) && (Index < GUI_COUNTOF(pItemInfo->aTextColor))) {
      pObj = LISTEDIT_H2P(hObj);
      pItem = (LISTEDIT_ITEM *)GUI_ARRAY_GetpItem((GUI_ARRAY *)GUI_ARRAY_GetpItem(&pObj->RowArray, Row), Column);
      if (!pItem->hItemInfo) {
        int i;
        pItem->hItemInfo = GUI_ALLOC_AllocZero(sizeof(LISTEDIT_ITEM_INFO));
        pItemInfo = (LISTEDIT_ITEM_INFO *)GUI_ALLOC_h2p(pItem->hItemInfo);
        for (i = 0; i < GUI_COUNTOF(pItemInfo->aTextColor); i++) {
          pItemInfo->aTextColor[i] = LISTEDIT_GetTextColor(hObj, i);
          pItemInfo->aBkColor[i]   = LISTEDIT_GetBkColor  (hObj, i);
        }
      } else {
        pItemInfo = (LISTEDIT_ITEM_INFO *)GUI_ALLOC_h2p(pItem->hItemInfo);
      }
    }
  }
  return pItemInfo;
}

/*********************************************************************
*
*       Public routines
*
**********************************************************************
*/
/*********************************************************************
*
*       LISTEDIT_SetItemTextColor
*/
void LISTEDIT_SetItemTextColor(LISTEDIT_Handle hObj, unsigned Column, unsigned Row, unsigned int Index, GUI_COLOR Color) {
  LISTEDIT_ITEM_INFO * pItemInfo;
  WM_LOCK();
  pItemInfo = _GetpItemInfo(hObj, Column, Row, Index);
  if (pItemInfo) {
    pItemInfo->aTextColor[Index] = Color;
  }
  WM_UNLOCK();
}

/*********************************************************************
*
*       LISTEDIT_SetItemBkColor
*/
void LISTEDIT_SetItemBkColor(LISTEDIT_Handle hObj, unsigned Column, unsigned Row, unsigned int Index, GUI_COLOR Color) {
  LISTEDIT_ITEM_INFO * pItemInfo;
  WM_LOCK();
  pItemInfo = _GetpItemInfo(hObj, Column, Row, Index);
  if (pItemInfo) {
    pItemInfo->aBkColor[Index] = Color;
  }
  WM_UNLOCK();
}

#else                            /* Avoid problems with empty object modules */
  void LISTEDIT_SetItemColor_C(void);
  void LISTEDIT_SetItemColor_C(void) {}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -