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

📄 header.c

📁 MCB2300_ucgui_LCD320240.rar LPC2368的uc/gui的移植
💻 C
📖 第 1 页 / 共 2 页
字号:
		WIDGET__Init(&pObj->Widget, Id, 0);
		/* init member variables */
		HEADER_INIT_ID(pObj);
		pObj->BkColor = _DefaultBkColor;
		pObj->TextColor = _DefaultTextColor;
		pObj->pFont = _pDefaultFont;
		pObj->CapturePosX = -1;
		pObj->CaptureItem = -1;
		pObj->ScrollPos = 0;
	}
	else
	{
		GUI_DEBUG_ERROROUT_IF(hObj == 0, "HEADER_Create failed")
	}
	WM_UNLOCK();
	return hObj;
}

/*********************************************************************
*
*   	Exported routines: Global functions
*
**********************************************************************
*/
/*********************************************************************
*
*   	HEADER_SetDefautCursor
*/
const GUI_CURSOR GUI_UNI_PTR * HEADER_SetDefaultCursor(const GUI_CURSOR *pCursor)
{
	const GUI_CURSOR GUI_UNI_PTR * pOldCursor = _pDefaultCursor;
	_pDefaultCursor = pCursor;
	return pOldCursor;
}

/*********************************************************************
*
*   	HEADER_SetDefaultBkColor
*/
GUI_COLOR HEADER_SetDefaultBkColor(GUI_COLOR Color)
{
	GUI_COLOR OldColor = _DefaultBkColor;
	_DefaultBkColor = Color;
	return OldColor;
}

/*********************************************************************
*
*   	HEADER_SetDefaultTextColor
*/
GUI_COLOR HEADER_SetDefaultTextColor(GUI_COLOR Color)
{
	GUI_COLOR OldColor = _DefaultTextColor;
	_DefaultTextColor = Color;
	return OldColor;
}

/*********************************************************************
*
*   	HEADER_SetDefaultBorderH
*/
int HEADER_SetDefaultBorderH(int Spacing)
{
	int OldSpacing = _DefaultBorderH;
	_DefaultBorderH = Spacing;
	return OldSpacing;
}

/*********************************************************************
*
*   	HEADER_SetDefaultBorderV
*/
int HEADER_SetDefaultBorderV(int Spacing)
{
	int OldSpacing = _DefaultBorderV;
	_DefaultBorderV = Spacing;
	return OldSpacing;
}

/*********************************************************************
*
*   	HEADER_SetDefaultFont
*/
const GUI_FONT GUI_UNI_PTR * HEADER_SetDefaultFont(const GUI_FONT GUI_UNI_PTR *pFont)
{
	const GUI_FONT GUI_UNI_PTR * pOldFont = _pDefaultFont;
	_pDefaultFont = pFont;
	return pOldFont;
}

/*********************************************************************
*
*   	HEADER_GetDefault...
*/
const GUI_CURSOR GUI_UNI_PTR * HEADER_GetDefaultCursor(void)
{
	return _pDefaultCursor;
}
GUI_COLOR HEADER_GetDefaultBkColor(void)
{
	return _DefaultBkColor;
}
GUI_COLOR HEADER_GetDefaultTextColor(void)
{
	return _DefaultTextColor;
}
int HEADER_GetDefaultBorderH(void)
{
	return _DefaultBorderH;
}
int HEADER_GetDefaultBorderV(void)
{
	return _DefaultBorderV;
}
const GUI_FONT GUI_UNI_PTR * HEADER_GetDefaultFont(void)
{
	return _pDefaultFont;
}

/*********************************************************************
*
*   	Exported routines: Member functions
*
**********************************************************************
*/
/*********************************************************************
*
*   	HEADER_SetFont
*/
void HEADER_SetFont(HEADER_Handle hObj, const GUI_FONT GUI_UNI_PTR *pFont)
{
	if (hObj)
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		pObj->pFont = pFont;
		WM_InvalidateWindow(hObj);
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_SetHeight
*/
void HEADER_SetHeight(HEADER_Handle hObj, int Height)
{
	if (hObj)
	{
		GUI_RECT Rect;
		WM_GetClientRectEx(hObj, &Rect);
		WM_SetSize(hObj, Rect.x1 - Rect.x0 + 1, Height);
		WM_InvalidateWindow(WM_GetParent(hObj));
	}
}

/*********************************************************************
*
*   	HEADER_SetTextColor
*/
void HEADER_SetTextColor(HEADER_Handle hObj, GUI_COLOR Color)
{
	if (hObj)
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		pObj->TextColor = Color;
		WM_InvalidateWindow(hObj);
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_SetBkColor
*/
void HEADER_SetBkColor(HEADER_Handle hObj, GUI_COLOR Color)
{
	if (hObj)
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		pObj->BkColor = Color;
		WM_InvalidateWindow(hObj);
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_SetTextAlign
*/
void HEADER_SetTextAlign(HEADER_Handle hObj, unsigned int Index, int Align)
{
	if (hObj)
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns))
		{
			HEADER_COLUMN * pColumn;
			pColumn = (HEADER_COLUMN *) GUI_ARRAY_GetpItem(&pObj->Columns, Index);
			pColumn->Align = Align;
			WM_InvalidateWindow(hObj);
		}
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_SetScrollPos
*/
void HEADER_SetScrollPos(HEADER_Handle hObj, int ScrollPos)
{
	if (hObj && (ScrollPos >= 0))
	{
		HEADER_Obj* pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (ScrollPos != pObj->ScrollPos)
		{
			pObj->ScrollPos = ScrollPos;
			WM_Invalidate(hObj);
			WM_InvalidateWindow(WM_GetParent(hObj));
		}
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_AddItem
*/
void HEADER_AddItem(HEADER_Handle hObj, int Width, const char *s, int Align)
{
	if (hObj)
	{
		HEADER_Obj * pObj;
		HEADER_COLUMN Column;
		int Index;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (!Width)
		{
			const GUI_FONT GUI_UNI_PTR * pFont = GUI_SetFont(pObj->pFont);
			Width = GUI_GetStringDistX(s) + 2 * (pObj->Widget.pEffect->EffectSize + _DefaultBorderH);
			GUI_SetFont(pFont);
		}
		Column.Width = Width;
		Column.Align = Align;
		Column.hDrawObj = 0;
		Index = GUI_ARRAY_GetNumItems(&pObj->Columns);
		if (GUI_ARRAY_AddItem(&pObj->Columns, &Column, sizeof(HEADER_COLUMN) + strlen(s) + 1) == 0)
		{
			HEADER_COLUMN * pColumn;
			pObj = HEADER_H2P(hObj);
			pColumn = (HEADER_COLUMN *) GUI_ARRAY_GetpItem(&pObj->Columns, Index);
			strcpy(pColumn->acText, s);
			WM_InvalidateWindow(hObj);
			WM_InvalidateWindow(WM_GetParent(hObj));
		}
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_DeleteItem
*/
void HEADER_DeleteItem(HEADER_Handle hObj, unsigned Index)
{
	if (hObj)
	{
		HEADER_Obj* pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (Index < GUI_ARRAY_GetNumItems(&pObj->Columns))
		{
			GUI_ARRAY_DeleteItem(&pObj->Columns, Index);
			WM_InvalidateWindow(hObj);
			WM_InvalidateWindow(WM_GetParent(hObj));
		}
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_SetItemText
*/
void HEADER_SetItemText(HEADER_Handle hObj, unsigned int Index, const char *s)
{
	if (hObj)
	{
		HEADER_Obj* pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (Index < GUI_ARRAY_GetNumItems(&pObj->Columns))
		{
			HEADER_COLUMN* pColumn;
			pColumn = (HEADER_COLUMN *) GUI_ARRAY_ResizeItem(&pObj->Columns, Index, sizeof(HEADER_COLUMN) + strlen(s));
			if (pColumn)
			{
				strcpy(pColumn->acText, s);
			}
		}
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_SetItemWidth
*/
void HEADER_SetItemWidth(HEADER_Handle hObj, unsigned int Index, int Width)
{
	if (hObj && (Width >= 0))
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns))
		{
			HEADER_COLUMN * pColumn;
			pColumn = (HEADER_COLUMN *) GUI_ARRAY_GetpItem(&pObj->Columns, Index);
			if (pColumn)
			{
				pColumn->Width = Width;
				WM_InvalidateWindow(hObj);
				WM__SendMsgNoData(WM_GetParent(hObj), WM_NOTIFY_CLIENTCHANGE);
				WM_InvalidateWindow(WM_GetParent(hObj));
			}
		}
		WM_UNLOCK();
	}
}

/*********************************************************************
*
*   	HEADER_GetHeight
*/
int HEADER_GetHeight(HEADER_Handle hObj)
{
	int Height = 0;
	if (hObj)
	{
		GUI_RECT Rect;
		WM_GetClientRectEx(hObj, &Rect);
		GUI_MoveRect(&Rect, -Rect.x0, -Rect.y0);
		Height = Rect.y1 - Rect.y0 + 1;
	}
	return Height;
}

/*********************************************************************
*
*   	HEADER_GetItemWidth
*/
int HEADER_GetItemWidth(HEADER_Handle hObj, unsigned int Index)
{
	int Width = 0;
	if (hObj)
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		if (Index <= GUI_ARRAY_GetNumItems(&pObj->Columns))
		{
			HEADER_COLUMN * pColumn;
			pColumn = (HEADER_COLUMN *) GUI_ARRAY_GetpItem(&pObj->Columns, Index);
			Width = pColumn->Width;
		}
		WM_UNLOCK();
	}
	return Width;
}

/*********************************************************************
*
*   	HEADER_GetNumItems
*/
int HEADER_GetNumItems(HEADER_Handle hObj)
{
	int NumCols = 0;
	if (hObj)
	{
		HEADER_Obj * pObj;
		WM_LOCK();
		pObj = HEADER_H2P(hObj);
		NumCols = GUI_ARRAY_GetNumItems(&pObj->Columns);
		WM_UNLOCK();
	}
	return NumCols;
}

#else /* avoid empty object files */

void HEADER_C(void);
void HEADER_C(void)
{
}

#endif  /* #if GUI_WINSUPPORT */

⌨️ 快捷键说明

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