summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2DlgItemRadioText.cpp
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2023-06-28 22:22:32 +0100
committerAsh Wolf <ninji@wuffs.org>2023-06-28 22:22:32 +0100
commitc0c336500955a23e344651e5412c9d9d441ef4ee (patch)
tree790769c748db307cf3314f6e896e2f61c68561a2 /src/T2DLL/T2DlgItemRadioText.cpp
parent37e364b2c6cc7487a1c888d256a73e5337bb7189 (diff)
downloadt2win-c0c336500955a23e344651e5412c9d9d441ef4ee.tar.gz
t2win-c0c336500955a23e344651e5412c9d9d441ef4ee.zip
first pass of T2DLL
Diffstat (limited to '')
-rw-r--r--src/T2DLL/T2DlgItemRadioText.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/T2DLL/T2DlgItemRadioText.cpp b/src/T2DLL/T2DlgItemRadioText.cpp
new file mode 100644
index 0000000..bba4937
--- /dev/null
+++ b/src/T2DLL/T2DlgItemRadioText.cpp
@@ -0,0 +1,71 @@
+#include "T2BitImage.h"
+#include "T2DlgItemRadioText.h"
+
+/*virtual*/ BOOL T2DlgItemRadioText::Create(const char *inWindowName, DWORD inStyle, const RECT &inRect, CWnd *inParentWnd, UINT inID) {
+ CRect rect = inRect;
+ CRect imageRect;
+
+ strcpy(mText, inWindowName);
+ GetObjectImage(imageRect, "DLGITEM:TxRadio");
+
+ return T2DlgItem::Create("DLGITEM:TxRadio", inStyle, rect, inParentWnd, inID);
+}
+
+T2DlgItemRadioText::T2DlgItemRadioText(T2TowerDoc *inDoc, T2ImageObj *inImageObj, CPalette *inPalette)
+ : T2DlgItemICheck(inDoc, inImageObj, inPalette)
+{
+ mText[0] = 0;
+}
+
+/*virtual*/ T2DlgItemRadioText::~T2DlgItemRadioText() {
+}
+
+/*virtual*/ BOOL T2DlgItemRadioText::OnT2DlgItemEraseBkgnd(CDC *pDC) {
+ CRect drawRect;
+ GetClientRect(drawRect);
+
+ int saved = pDC->SaveDC();
+ pDC->SelectPalette(mPalette, false);
+ pDC->RealizePalette();
+
+ RECT imageRect;
+ T2BitImage *theImage = GetObjectImage(imageRect, "DLGITEM:TxRadio", GetPattern());
+ drawRect.right = (drawRect.left + imageRect.right) - imageRect.left;
+ drawRect.bottom = (drawRect.top + imageRect.bottom) - imageRect.top;
+ theImage->CopyImage(pDC, imageRect, drawRect);
+
+ GetClientRect(drawRect);
+ drawRect.left += (drawRect.bottom - drawRect.top);
+
+ char config = mText[0];
+ const char *text = &mText[1];
+ DWORD theFormat = DT_WORDBREAK | DT_NOPREFIX;
+
+ if (isupper(config)) {
+ theFormat |= DT_VCENTER | DT_SINGLELINE;
+ config = tolower(config);
+ }
+
+ switch (config) {
+ case 'c':
+ theFormat |= DT_CENTER;
+ break;
+ case 'l':
+ theFormat |= DT_LEFT;
+ break;
+ case 'r':
+ theFormat |= DT_RIGHT;
+ break;
+ }
+
+ pDC->SetBkMode(TRANSPARENT);
+ pDC->DrawText(text, drawRect, theFormat);
+
+ pDC->RestoreDC(saved);
+ return true;
+}
+
+/*virtual*/ void T2DlgItemRadioText::OnT2DlgItemLButtonDown(UINT inFlags, CPoint inPt) {
+ if (!GetValue())
+ T2DlgItemICheck::OnT2DlgItemLButtonDown(inFlags, inPt);
+}