/********************************************************************* * * _OnTouch */ static void _OnTouch(EDIT_Handle hObj, EDIT_Obj* pObj, WM_MESSAGE*pMsg) { GUI_TOUCH_tState* pState = (GUI_TOUCH_tState*)pMsg->Data.p; if (pMsg->Data.p) { /* Something happened in our area (pressed or released) */ if (pState->Pressed) { GUI_DEBUG_LOG1("EDIT__Callback(WM_TOUCH, Pressed, Handle %d)\n",1); _SetCursor(hObj, pObj, pState->x); WM_SetFocus(hObj); } else { GUI_DEBUG_LOG1("EDIT__Callback(WM_TOUCH, Released, Handle %d)\n",1); } } else { GUI_DEBUG_LOG1("_EDIT_Callback(WM_TOUCH, Moved out, Handle %d)\n",1); } }
/********************************************************************* * * _Free */ static void _Free(GUI_HMEM hMem) { GUI_ALLOC_DATATYPE Size; GUI_DEBUG_LOG1("\nGUI_ALLOC_Free(%d)", hMem); /* Do some error checking ... */ #if GUI_DEBUG_LEVEL>0 /* Block not allocated ? */ if (aBlock[hMem].Size == 0) { GUI_DEBUG_ERROROUT("GUI_ALLOC_Free(): Invalid hMem"); return; } #endif Size = aBlock[hMem].Size; #ifdef WIN32 GUI_MEMSET(&GUI_Heap.abHeap[aBlock[hMem].Off], 0xcc, Size); #endif GUI_ALLOC.NumFreeBytes += Size; GUI_ALLOC.NumUsedBytes -= Size; aBlock[hMem].Size = 0; if (_FirstFreeHandle > hMem) { _FirstFreeHandle = hMem; } { int Next = aBlock[hMem].Next; int Prev = aBlock[hMem].Prev; aBlock[Prev].Next = Next; if (Next) { aBlock[Next].Prev = Prev; } } GUI_ALLOC.NumFreeBlocks++; GUI_ALLOC.NumUsedBlocks--; }
void GUI_ALLOC_Free(GUI_HMEM hMem) { int Size; if (hMem == GUI_HMEM_NULL) /* Note: This is not an error, it is permitted */ return; GUI_LOCK(); GUI_DEBUG_LOG1("\nGUI_ALLOC_Free(%d)", hMem); /* Do some error checking ... */ #if GUI_DEBUG_LEVEL>0 /* Block not allocated ? */ if (aBlock[hMem].Size==0) { GUI_DEBUG_ERROROUT("GUI_ALLOC_Free(): Invalid hMem"); return; } #endif Size = aBlock[hMem].Size; #ifdef WIN32 memset(&GUI_Heap.abHeap[aBlock[hMem].Off], 0xcc, Size); #endif GUI_ALLOC.NumFreeBytes += Size; GUI_ALLOC.NumUsedBytes -= Size; aBlock[hMem].Size = 0; { int Next = aBlock[hMem].Next; int Prev = aBlock[hMem].Prev; aBlock[Prev].Next = Next; if (Next) aBlock[Next].Prev = Prev; } GUI_ALLOC.NumFreeBlocks++; GUI_ALLOC.NumUsedBlocks--; GUI_UNLOCK(); }
/********************************************************************* * * _OnTouch */ static void _OnTouch(EDIT_Handle hObj, EDIT_Obj* pObj, WM_MESSAGE*pMsg) { const GUI_PID_STATE* pState = (const GUI_PID_STATE*)pMsg->Data.p; GUI_USE_PARA(pObj); if (pMsg->Data.p) { /* Something happened in our area (pressed or released) */ if (pState->Pressed) { GUI_DEBUG_LOG1("EDIT_Callback(WM_TOUCH, Pressed, Handle %d)\n",1); EDIT_SetCursorAtPixel(hObj, pState->x); WM_NotifyParent(hObj, WM_NOTIFICATION_CLICKED); } else { GUI_DEBUG_LOG1("EDIT_Callback(WM_TOUCH, Released, Handle %d)\n",1); WM_NotifyParent(hObj, WM_NOTIFICATION_RELEASED); } } else { GUI_DEBUG_LOG1("EDIT_Callback(WM_TOUCH, Moved out, Handle %d)\n",1); WM_NotifyParent(hObj, WM_NOTIFICATION_MOVED_OUT); } }
/********************************************************************* * * GUI_ALLOC_Free */ void GUI_ALLOC_Free(GUI_HMEM hMem) { if (hMem == GUI_HMEM_NULL) { /* Note: This is not an error, it is permitted */ return; } GUI_LOCK(); GUI_DEBUG_LOG1("\nGUI_ALLOC_Free(%d)", hMem); _Free(hMem); GUI_UNLOCK(); }
GUI_HMEM GUI_ALLOC_Alloc(int size) { GUI_HMEM hMem; /* First make sure that init has been called */ GUI_LOCK(); GUI_DEBUG_LOG2("\nGUI_ALLOC_Alloc... requesting %d, %d avail", size, GUI_ALLOC.NumFreeBytes); hMem = _Alloc(size); GUI_DEBUG_LOG1("\nGUI_ALLOC_Alloc : Handle", hMem); GUI_UNLOCK(); return hMem; }
/********************************************************************* * * GUI_ALLOC_AllocNoInit */ GUI_HMEM GUI_ALLOC_AllocNoInit(GUI_ALLOC_DATATYPE Size) { GUI_HMEM hMem; if (Size == 0) { return (GUI_HMEM)0; } GUI_LOCK(); GUI_DEBUG_LOG2("\nGUI_ALLOC_AllocNoInit... requesting %d, %d avail", Size, GUI_ALLOC.NumFreeBytes); hMem = _Alloc(Size); GUI_DEBUG_LOG1("\nGUI_ALLOC_AllocNoInit : Handle", hMem); GUI_UNLOCK(); return hMem; }