/****f* EZ.LCD.Wrapper/CEzLcd::SetText * NAME * HRESULT CEzLcd::SetText -- Set text * INPUTS * handle - handle to the object. * text - text string. * RETURN VALUE * E_FAIL if there was an error. * S_OK if no error. ****** */ HRESULT CEzLcd::SetText(HANDLE handle, LPCTSTR text) { CLCDBase* myObject = GetObject(handle); if (NULL != myObject) { assert(LG_STATIC_TEXT == myObject->GetObjectType() || LG_SCROLLING_TEXT == myObject->GetObjectType()); if (LG_STATIC_TEXT == myObject->GetObjectType()) { CLCDText* staticText = static_cast<CLCDText*>(myObject); assert(NULL != staticText); staticText->SetText(text); return S_OK; } else if (LG_SCROLLING_TEXT == myObject->GetObjectType()) { CLCDStreamingText* streamingText = static_cast<CLCDStreamingText*>(myObject); assert(NULL != streamingText); streamingText->SetText(text); return S_OK; } } return E_FAIL; }
/****f* LCD.SDK/SetText(HANDLE.handle,LPCTSTR.text,BOOL.resetScrollingTextPosition) * NAME * HRESULT SetText(HANDLE handle, * LPCTSTR text, * BOOL resetScrollingTextPosition = FALSE) -- Sets the text in the * control on the page being worked on. * INPUTS * handle - handle to the object. * text - text string. * resetScrollingTextPosition - indicates if position of scrolling * text needs to be reset. * RETURN VALUE * S_OK if succeeded. * E_FAIL otherwise. ****** */ HRESULT CEzLcd::SetText(HANDLE handle, LPCTSTR text, BOOL resetScrollingTextPosition) { CLCDBase* myObject = (CLCDBase*)handle; if (NULL != myObject) { if (!((LG_STATIC_TEXT == myObject->GetObjectType() || LG_SCROLLING_TEXT == myObject->GetObjectType()))) return E_FAIL; if (LG_STATIC_TEXT == myObject->GetObjectType()) { CLCDText* staticText = static_cast<CLCDText*>(myObject); if (NULL == staticText) return E_FAIL; staticText->SetText(text); return S_OK; } else if (LG_SCROLLING_TEXT == myObject->GetObjectType()) { CLCDStreamingText* streamingText = static_cast<CLCDStreamingText*>(myObject); if (NULL == streamingText) return E_FAIL; streamingText->SetText(text); if (resetScrollingTextPosition) { streamingText->ResetUpdate(); } return S_OK; } } return E_FAIL; }
HRESULT CEzLcdPage::SetText(HANDLE handle, LPCTSTR text, BOOL resetScrollingTextPosition) { CLCDBase* myObject = GetObject(handle); if (NULL != myObject) { if (!((LG_STATIC_TEXT == myObject->GetObjectType() || LG_SCROLLING_TEXT == myObject->GetObjectType() || LG_RIGHTFOCUS_TEXT == myObject->GetObjectType() ))) return E_FAIL; if (LG_STATIC_TEXT == myObject->GetObjectType()) { CLCDText* staticText = static_cast<CLCDText*>(myObject); if (NULL == staticText) return E_FAIL; staticText->SetText(text); return S_OK; } else if (LG_SCROLLING_TEXT == myObject->GetObjectType()) { CLCDStreamingText* streamingText = static_cast<CLCDStreamingText*>(myObject); if (NULL == streamingText) return E_FAIL; streamingText->SetText(text); if (resetScrollingTextPosition) { streamingText->ResetUpdate(); } return S_OK; } else if (LG_RIGHTFOCUS_TEXT == myObject->GetObjectType()) { CLCDText* rightFocusText = static_cast<CLCDText*>(myObject); if (NULL == rightFocusText) return E_FAIL; rightFocusText->SetText(text); rightFocusText->CalculateExtent(true); // if out of focus, set alignment to right in order to follow what is written if (rightFocusText->GetHExtent().cx>=rightFocusText->GetSize().cx) rightFocusText->SetAlignment(DT_RIGHT); else rightFocusText->SetAlignment(DT_LEFT); return S_OK; } } return E_FAIL; }
/****f* EZ.LCD.Wrapper/CEzLcd::AddText * NAME * HANDLE CEzLcd::AddText -- Add a text object to the LCD * INPUTS * type - specifies whether the text is static or * scrolling. Possible types are: LG_SCROLLING_TEXT, * LG_STATIC_TEXT * size - size of the text. Choose between these three: * LG_SMALL, LG_MEDIUM or LG_BIG. * alignment - alignment of the text. Values are: DT_LEFT, * DT_CENTER, DT_RIGHT. * maxLengthPixels - max length in pixels of the text. If the text is * longer and of type LG_STATIC_TEXT, it will be cut * off. If the text is longer and of type * LG_SCROLLING_TEXT, it will scroll. * RETURN VALUE * Handle for this object. * SEE ALSO * CEzLcd::AddIcon * CEzLcd::AddProgressBar ****** */ HANDLE CEzLcd::AddText(LGObjectType type, LGTextSize size, INT alignment, INT maxLengthPixels) { assert(LG_SCROLLING_TEXT == type || LG_STATIC_TEXT == type); CLCDText* staticText; CLCDStreamingText* streamingText; INT boxHeight = LG_MEDIUM_FONT_TEXT_BOX_HEIGHT; INT fontSize = LG_MEDIUM_FONT_SIZE; INT localOriginY = LG_MEDIUM_FONT_LOGICAL_ORIGIN_Y; switch (type) { case LG_SCROLLING_TEXT: streamingText = new CLCDStreamingText(); assert(NULL != streamingText); streamingText->Initialize(); streamingText->SetOrigin(0, 0); streamingText->SetFontFaceName(_T("Tahoma")); streamingText->SetAlignment(alignment); streamingText->SetText(_T(" ")); streamingText->SetGapText(LG_SCROLLING_GAP_TEXT); streamingText->SetSpeed(LG_SCROLLING_SPEED); streamingText->SetScrollingStep(LG_SCROLLING_STEP); streamingText->SetStartDelay(LG_SCROLLING_DELAY_MS); if (LG_SMALL == size) { boxHeight = LG_SMALL_FONT_TEXT_BOX_HEIGHT; fontSize = LG_SMALL_FONT_SIZE; localOriginY = LG_SMALL_FONT_LOGICAL_ORIGIN_Y; } else if (LG_MEDIUM == size) { boxHeight = LG_MEDIUM_FONT_TEXT_BOX_HEIGHT; fontSize = LG_MEDIUM_FONT_SIZE; localOriginY = LG_MEDIUM_FONT_LOGICAL_ORIGIN_Y; } else if (LG_BIG == size) { streamingText->SetFontWeight(FW_BOLD); boxHeight = LG_BIG_FONT_TEXT_BOX_HEIGHT; fontSize = LG_BIG_FONT_SIZE; localOriginY = LG_BIG_FONT_LOGICAL_ORIGIN_Y; } streamingText->SetSize(maxLengthPixels, boxHeight); streamingText->SetFontPointSize(fontSize); streamingText->SetLogicalOrigin(0, localOriginY); streamingText->SetObjectType(LG_SCROLLING_TEXT); AddObject(streamingText); return streamingText; break; case LG_STATIC_TEXT: staticText = new CLCDText(); assert(NULL != staticText); staticText->Initialize(); staticText->SetOrigin(0, 0); staticText->SetFontFaceName(_T("Tahoma")); staticText->SetAlignment(alignment); staticText->SetBackgroundMode(OPAQUE); staticText->SetText(_T(" ")); if (LG_SMALL == size) { boxHeight = LG_SMALL_FONT_TEXT_BOX_HEIGHT; fontSize = LG_SMALL_FONT_SIZE; localOriginY = LG_SMALL_FONT_LOGICAL_ORIGIN_Y; } else if (LG_MEDIUM == size) { boxHeight = LG_MEDIUM_FONT_TEXT_BOX_HEIGHT; fontSize = LG_MEDIUM_FONT_SIZE; localOriginY = LG_MEDIUM_FONT_LOGICAL_ORIGIN_Y; } else if (LG_BIG == size) { staticText->SetFontWeight(FW_BOLD); boxHeight = LG_BIG_FONT_TEXT_BOX_HEIGHT; fontSize = LG_BIG_FONT_SIZE; localOriginY = LG_BIG_FONT_LOGICAL_ORIGIN_Y; } staticText->SetSize(maxLengthPixels, boxHeight); staticText->SetFontPointSize(fontSize); staticText->SetLogicalOrigin(0, localOriginY); staticText->SetObjectType(LG_STATIC_TEXT); AddObject(staticText); return staticText; break; default: Printf(_T("ERROR: trying to add text object with undefined type\n")); } return NULL; }