亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? graph_data_yt.c

?? UC_GUI開發源代碼,里面含有范例,源文件
?? C
字號:
/*
*********************************************************************************************************
*                                             uC/GUI V3.98
*                        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        : GRAPH_DATA_YT.c
Purpose     : Implementation of YT graph
---------------------------END-OF-HEADER------------------------------
*/

#include <string.h>

#include "GRAPH_Private.h"

#if GUI_WINSUPPORT

/*********************************************************************
*
*       Types
*
**********************************************************************
*/
typedef struct {
  GRAPH_DATA_OBJ GraphDataObj;
  WM_HMEM        hData;
  int            Align;
} GRAPH_DATA_YT_OBJ;

/*********************************************************************
*
*       Static routines
*
**********************************************************************
*/
/*********************************************************************
*
*       _OnPaint
*/
static void _OnPaint(GRAPH_DATA_Handle hDataObj, GUI_RECT * pRect) {
  int xPos, yPos;
  I16               * pData;
  GRAPH_OBJ         * pObj;
  GRAPH_DATA_YT_OBJ * pDataYtObj;
  GUI_USE_PARA(pRect);
  pDataYtObj = (GRAPH_DATA_YT_OBJ *)GUI_ALLOC_h2p(hDataObj);
  pData = (I16 *)GUI_ALLOC_h2p(pDataYtObj->hData);
  if (pData) {
    GUI_RECT Rect;
    int NumItems, NumVisItems, BorderL, BorderT, BorderR, BorderB, xSizeWin;
    pObj = GRAPH_H2P(pDataYtObj->GraphDataObj.PaintObj.hGraph);
    BorderL = pObj->Props.BorderL;
    BorderT = pObj->Props.BorderT;
    BorderR = pObj->Props.BorderR;
    BorderB = pObj->Props.BorderB;
    WM_GetInsideRectExScrollbar(pDataYtObj->GraphDataObj.PaintObj.hGraph, &Rect);
    Rect.x0 += BorderL;
    Rect.y0 += BorderT;
    Rect.x1 -= BorderR;
    Rect.y1 -= BorderB;
    NumItems = pDataYtObj->GraphDataObj.NumItems;
    xSizeWin = Rect.x1 - Rect.x0 + 1;
    yPos     = Rect.y1                        /* Bottom of data area */
             - pDataYtObj->GraphDataObj.OffY  /* - Y-offset of data object */
             + pObj->ScrollStateV.v;          /* + Y-offset of graph object */
    if (pDataYtObj->Align == GRAPH_ALIGN_LEFT) {
      xPos = Rect.x0;
      NumVisItems = NumItems - pDataYtObj->GraphDataObj.OffX;
      if (pDataYtObj->GraphDataObj.OffX < NumItems) {
        pData += pDataYtObj->GraphDataObj.OffX + pObj->ScrollStateH.v;
      }
      if (NumVisItems > xSizeWin) {
        NumVisItems = xSizeWin;
      }
    } else {
      NumVisItems = NumItems - pObj->ScrollStateH.v;
      xPos = Rect.x1 - NumVisItems;
      if (Rect.x0 > xPos) {
        int Diff = Rect.x0 - xPos;
        xPos        += Diff;
        pData       += Diff;
        NumVisItems -= Diff;
      }
    }
    GUI_SetColor(pDataYtObj->GraphDataObj.Color);
    GUI_DrawGraphEx(pData, NumVisItems, xPos, yPos, -1, 1);
  }
}

/*********************************************************************
*
*       _OnDelete
*/
static void _OnDelete(GRAPH_DATA_Handle hDataObj) {
  GRAPH_DATA_YT_OBJ * pDataYtObj;
  pDataYtObj = (GRAPH_DATA_YT_OBJ *)GUI_ALLOC_h2p(hDataObj);
  if (pDataYtObj->hData) {
    GUI_ALLOC_Free(pDataYtObj->hData);
  }
}

/*********************************************************************
*
*       _SetOffY
*/
static void _SetOffY(GRAPH_DATA_OBJ * pDataObj, int Value) {
  if (pDataObj) {
    if (pDataObj->OffY != Value) {
      pDataObj->OffY = Value;
      WM_Invalidate(pDataObj->PaintObj.hGraph);
    }
  }
}

/*********************************************************************
*
*       Exported routines
*
**********************************************************************
*/
/*********************************************************************
*
*       GRAPH_DATA_YT_Create
*/
GRAPH_DATA_Handle GRAPH_DATA_YT_Create(GUI_COLOR Color, unsigned MaxNumItems, I16 * pItems, unsigned NumItems) {
  GRAPH_DATA_Handle  hDataObj;
  WM_LOCK();
  hDataObj = GUI_ALLOC_AllocZero(sizeof(GRAPH_DATA_YT_OBJ));
  if (hDataObj) {
    GRAPH_DATA_YT_OBJ * pDataYtObj;
    WM_HMEM             hData;
    int                 BufferSize;
    BufferSize = sizeof(I16) * MaxNumItems;
    hData = GUI_ALLOC_AllocZero(BufferSize);
    if (hData && pItems && NumItems) {
      void * p;
      p = GUI_ALLOC_h2p(hData);
      memcpy(p, pItems, sizeof(I16) * NumItems);
    }
    pDataYtObj = (GRAPH_DATA_YT_OBJ *)GUI_ALLOC_h2p(hDataObj);
    pDataYtObj->hData = hData;
    pDataYtObj->GraphDataObj.Color               = Color;
    pDataYtObj->GraphDataObj.MaxNumItems         = MaxNumItems;
    pDataYtObj->GraphDataObj.NumItems            = NumItems;
    pDataYtObj->GraphDataObj.PaintObj.pfOnPaint  = _OnPaint;
    pDataYtObj->GraphDataObj.PaintObj.pfOnDelete = _OnDelete;
  }
  WM_UNLOCK();
  return hDataObj;
}

/*********************************************************************
*
*       GRAPH_DATA_YT_AddValue
*/
void GRAPH_DATA_YT_AddValue(GRAPH_DATA_Handle hDataObj, I16 Value) {
  GRAPH_DATA_YT_OBJ * pDataYtObj;
  WM_LOCK();
  pDataYtObj = (GRAPH_DATA_YT_OBJ *)GUI_ALLOC_h2p(hDataObj);
  if (pDataYtObj) {
    I16 * pData;
    pData = (I16 *)GUI_ALLOC_h2p(pDataYtObj->hData);
    GRAPH__AddValue(&pDataYtObj->GraphDataObj, pData, &Value, sizeof(I16));
  }
  WM_UNLOCK();
}

/*********************************************************************
*
*       GRAPH_DATA_YT_SetOffY
*/
void GRAPH_DATA_YT_SetOffY(GRAPH_DATA_Handle hDataObj, int Off) {
  WM_LOCK();
  _SetOffY((GRAPH_DATA_OBJ *)GUI_ALLOC_h2p(hDataObj), Off);
  WM_UNLOCK();
}

/*********************************************************************
*
*       GRAPH_DATA_YT_SetAlign
*/
void GRAPH_DATA_YT_SetAlign(GRAPH_DATA_Handle hDataObj, int Value) {
  GRAPH_DATA_YT_OBJ * pDataYtObj;
  WM_LOCK();
  pDataYtObj = (GRAPH_DATA_YT_OBJ *)GUI_ALLOC_h2p(hDataObj);
  if (pDataYtObj) {
    if (pDataYtObj->Align != Value) {
      pDataYtObj->Align = Value;
      WM_Invalidate(pDataYtObj->GraphDataObj.PaintObj.hGraph);
    }
  }
  WM_UNLOCK();
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
9i看片成人免费高清| 奇米亚洲午夜久久精品| 国产精品自拍三区| 欧美精品一区二区蜜臀亚洲| 日韩精品电影一区亚洲| 7777女厕盗摄久久久| 日本午夜精品视频在线观看| 日韩一区二区麻豆国产| 日韩一区欧美二区| 日韩三级高清在线| 国产在线播放一区| 国产欧美日韩另类一区| 成人av午夜电影| 国产精品视频一二三区| 日本韩国欧美在线| 亚洲图片欧美色图| 777亚洲妇女| 国产一区二区三区日韩| 国产精品视频麻豆| 在线观看91视频| 亚洲一级片在线观看| 欧美一区二区三区在线电影 | 一个色妞综合视频在线观看| 欧美影院午夜播放| 蜜桃视频免费观看一区| 久久久综合精品| av中文字幕一区| 亚洲午夜免费电影| 精品理论电影在线| 99re在线精品| 男女男精品视频网| 国产精品美女久久久久aⅴ| 欧美性高清videossexo| 麻豆免费精品视频| 国产精品久久久久久福利一牛影视| 91丨九色porny丨蝌蚪| 午夜久久久久久电影| 国产日韩亚洲欧美综合| 欧美三级在线看| 国产成人精品免费一区二区| 亚洲午夜久久久久久久久电影院 | 懂色av噜噜一区二区三区av| 悠悠色在线精品| 日韩一区二区电影网| 成人开心网精品视频| 亚洲国产sm捆绑调教视频 | 亚洲欧洲色图综合| 欧美一级专区免费大片| 99久久99精品久久久久久| 免费在线观看不卡| 亚洲欧美日韩久久精品| 2欧美一区二区三区在线观看视频| 色先锋资源久久综合| 久久国产综合精品| 亚洲午夜三级在线| 国产精品精品国产色婷婷| 日韩三级视频中文字幕| 欧美亚洲国产一卡| 99这里只有久久精品视频| 久久精品国产网站| 亚洲大片在线观看| 中文字幕一区二区在线观看| 久久综合色之久久综合| 欧美日韩高清影院| 在线观看亚洲精品| 不卡的电影网站| 国产一区二区三区在线观看免费视频| 五月婷婷综合在线| 亚洲日本在线视频观看| 国产欧美一区二区三区网站| 精品国产三级电影在线观看| 宅男噜噜噜66一区二区66| 色婷婷激情一区二区三区| 成人伦理片在线| 成人a免费在线看| 丁香激情综合国产| 国产精品自拍网站| 久久99九九99精品| 欧美激情综合五月色丁香| 欧美变态口味重另类| 欧美另类高清zo欧美| 在线精品国精品国产尤物884a| av一区二区久久| 成人av电影免费在线播放| 国产福利不卡视频| 国产乱人伦偷精品视频不卡 | 亚洲第一福利一区| 亚洲午夜在线视频| 亚洲成人av中文| 一区二区三区蜜桃| 亚洲国产一区在线观看| 亚洲国产日韩a在线播放性色| 一区二区三区欧美激情| 亚洲一卡二卡三卡四卡无卡久久| 一区二区三区四区不卡在线| 亚洲电影第三页| 日韩激情一二三区| 麻豆成人在线观看| 国产精品一线二线三线| 国产不卡一区视频| 99re这里只有精品首页| 91福利精品第一导航| 欧美日韩免费高清一区色橹橹| 欧美日韩黄视频| 欧美成人在线直播| 国产蜜臀97一区二区三区| 自拍偷在线精品自拍偷无码专区| 亚洲品质自拍视频| 亚洲va欧美va国产va天堂影院| 三级影片在线观看欧美日韩一区二区| 日韩在线卡一卡二| 国产精品一区一区三区| 99热在这里有精品免费| 欧美日精品一区视频| 日韩视频免费观看高清完整版 | 亚洲综合在线视频| 五月天亚洲精品| 久久99精品国产| 成人网页在线观看| 欧美天堂亚洲电影院在线播放| 欧美一区二区三区视频免费播放| 久久综合色婷婷| 亚洲综合另类小说| 国产一区二区三区在线观看精品| 91免费观看视频在线| 欧美日韩国产片| 久久久国产综合精品女国产盗摄| 亚洲人成精品久久久久久| 石原莉奈在线亚洲三区| 福利一区在线观看| 欧美日韩成人高清| 国产日产亚洲精品系列| 一个色在线综合| 国产成人鲁色资源国产91色综| 色中色一区二区| 精品99999| 亚洲一区二区美女| 国产成人综合在线| 欧美日本国产视频| 亚洲国产精品v| 免费不卡在线观看| 97精品国产97久久久久久久久久久久| 91精品国产91久久久久久一区二区| 国产欧美一区二区三区在线看蜜臀 | 久久黄色级2电影| 色婷婷国产精品综合在线观看| 精品女同一区二区| 一卡二卡欧美日韩| 国产91在线观看| 日韩视频免费观看高清完整版在线观看 | 国产精品国产自产拍在线| 日韩国产精品久久久久久亚洲| 国产91丝袜在线播放| 91精品国产aⅴ一区二区| 亚洲精品中文字幕在线观看| 国产一区二区三区四区五区美女| 欧美日韩一区视频| 亚洲欧美电影院| 国产成a人亚洲精品| 欧美大片拔萝卜| 天天爽夜夜爽夜夜爽精品视频| 91理论电影在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲一区国产视频| 成人av资源在线观看| 久久亚洲一区二区三区明星换脸| 午夜婷婷国产麻豆精品| 色噜噜夜夜夜综合网| 国产精品不卡视频| 国产精品一品二品| 精品久久久久久久久久久久包黑料| 五月激情综合婷婷| 欧美中文字幕一区| 亚洲美女在线一区| 91丨九色丨蝌蚪丨老版| 综合av第一页| 99久久婷婷国产综合精品 | 亚洲成人一二三| 在线观看国产日韩| 一区二区三区中文字幕在线观看| 成+人+亚洲+综合天堂| 国产三级精品在线| 高清不卡一区二区| 亚洲国产精品精华液2区45| 国产乱码一区二区三区| 久久久综合精品| 国产黄色成人av| 久久精品一二三| 高清不卡在线观看| 国产精品麻豆欧美日韩ww| 成人免费高清视频在线观看| 中文字幕av资源一区| 成人综合婷婷国产精品久久免费| 国产欧美日韩中文久久| 99精品视频一区二区三区| 中文字幕在线不卡视频| 色就色 综合激情| 午夜精品久久久久久久| 欧美二区乱c少妇| 久久国产生活片100|