projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed compilation for strict ANSI compilers
[wxWidgets.git]
/
src
/
os2
/
ownerdrw.cpp
diff --git
a/src/os2/ownerdrw.cpp
b/src/os2/ownerdrw.cpp
index 1f58781ed9f53f44b52f144bc11dcc7873c9e098..e5c4065ef4ac81584c834113dad50611170256bd 100644
(file)
--- a/
src/os2/ownerdrw.cpp
+++ b/
src/os2/ownerdrw.cpp
@@
-75,18
+75,6
@@
bool wxOwnerDrawn::OnMeasureItem(
wxString sStr = wxStripMenuCodes(m_strName);
wxString sStr = wxStripMenuCodes(m_strName);
-#if 0
- wxString sTgt = "\t";
- size_t nIndex;
-
- nIndex = sStr.Find(sTgt.c_str());
- if (nIndex != -1)
- sStr.Remove(nIndex);
- sTgt = "~";
- nIndex = sStr.Find(sTgt.c_str());
- if (nIndex != -1)
- sStr.Replace(sTgt.c_str(), "", TRUE);
-#endif
vDC.GetTextExtent( sStr
,(long *)pWidth
,(long *)pHeight
vDC.GetTextExtent( sStr
,(long *)pWidth
,(long *)pHeight
@@
-122,7
+110,8
@@
bool wxOwnerDrawn::OnDrawItem(
wxColour vColText;
COLORREF vRef;
RECTL vRect = {rRect.x + 4, rRect.y + 1, rRect.x + (rRect.width - 2), rRect.y + rRect.height};
wxColour vColText;
COLORREF vRef;
RECTL vRect = {rRect.x + 4, rRect.y + 1, rRect.x + (rRect.width - 2), rRect.y + rRect.height};
- char zMsg[128];
+
+ memset(&vCbnd, 0, sizeof(CHARBUNDLE));
//
// Use default font if no font set
//
// Use default font if no font set
@@
-189,9
+178,21
@@
bool wxOwnerDrawn::OnDrawItem(
,GetBValue(vRef)
);
}
,GetBValue(vRef)
);
}
+
rDC.SetTextBackground(vColBack);
rDC.SetTextForeground(vColText);
rDC.SetBackgroundMode(wxTRANSPARENT);
rDC.SetTextBackground(vColBack);
rDC.SetTextForeground(vColText);
rDC.SetBackgroundMode(wxTRANSPARENT);
+ vCbnd.lColor = vColText.GetPixel();
+ vCbnd.lBackColor = vColBack.GetPixel();
+ ::GpiSetAttrs( hPS
+ ,PRIM_CHAR
+ ,CBB_BACK_COLOR | CBB_COLOR
+ ,0
+ ,&vCbnd
+ );
+ ::GpiSetBackMix( hPS
+ ,BM_LEAVEALONE
+ );
//
// Paint the background
//
// Paint the background
@@
-261,19
+262,23
@@
bool wxOwnerDrawn::OnDrawItem(
//
// Draw the main item text sans the accel text
//
// Draw the main item text sans the accel text
- rDC.DrawText( sFullString
- ,nX
- ,rRect.y + 4
- );
+ //
+ POINTL vPntStart = {nX, rRect.y + 4};
+ ::GpiCharStringAt( rDC.GetHPS()
+ ,&vPntStart
+ ,sFullString.length()
+ ,(PCH)sFullString.c_str()
+ );
if (bFoundMneumonic)
{
//
// Underline the mneumonic -- still won't work, but at least it "looks" right
//
wxPen vPen;
if (bFoundMneumonic)
{
//
// Underline the mneumonic -- still won't work, but at least it "looks" right
//
wxPen vPen;
- POINTL vPntStart = {nX + nWidth - 1, rRect.y + 2}; // Make it look pretty!
POINTL vPntEnd = {nX + nWidth + nCharWidth - 3, rRect.y + 2}; //CharWidth is bit wide
POINTL vPntEnd = {nX + nWidth + nCharWidth - 3, rRect.y + 2}; //CharWidth is bit wide
+ vPntStart.x = nX + nWidth - 1;
+ vPntStart.y = rRect.y + 2; // Make it look pretty!
vPen = wxPen(vColText, 1, wxSOLID); // Assuming we are always black
rDC.SetPen(vPen);
::GpiMove(hPS, &vPntStart);
vPen = wxPen(vColText, 1, wxSOLID); // Assuming we are always black
rDC.SetPen(vPen);
::GpiMove(hPS, &vPntStart);
@@
-295,10
+300,13
@@
bool wxOwnerDrawn::OnDrawItem(
//
// Back off the starting position from the right edge
//
//
// Back off the starting position from the right edge
//
- rDC.DrawText( sAccel
- ,rRect.width - (nWidth + 7) // this seems to mimic the default OS/2 positioning
- ,rRect.y + 4
- );
+ vPntStart.x = rRect.width - (nWidth + 7);
+ vPntStart.y = rRect.y + 4;
+ ::GpiCharStringAt( rDC.GetHPS()
+ ,&vPntStart
+ ,sAccel.length()
+ ,(PCH)sAccel.c_str()
+ );
}
//
}
//
@@
-315,7
+323,7
@@
bool wxOwnerDrawn::OnDrawItem(
vRect.xLeft = rRect.x;
vRect.xRight = rRect.x + GetMarginWidth();
vRect.yBottom = rRect.y;
vRect.xLeft = rRect.x;
vRect.xRight = rRect.x + GetMarginWidth();
vRect.yBottom = rRect.y;
- vRect.yTop = rRect.y + m_nHeight;
+ vRect.yTop = rRect.y + m_nHeight
- 3
;
::WinDrawBitmap( hPS // PS for this menuitem
,hBmpCheck // system checkmark
::WinDrawBitmap( hPS // PS for this menuitem
,hBmpCheck // system checkmark
@@
-336,8
+344,14
@@
bool wxOwnerDrawn::OnDrawItem(
if (vBmp.Ok())
{
if (vBmp.Ok())
{
+
wxMemoryDC vDCMem(&rDC);
wxMemoryDC vDCMem(&rDC);
+ wxMemoryDC* pOldDC = (wxMemoryDC*)vBmp.GetSelectedInto();
+ if(pOldDC != NULL)
+ {
+ vBmp.SetSelectedInto(NULL);
+ }
vDCMem.SelectObject(vBmp);
//
vDCMem.SelectObject(vBmp);
//
@@
-372,6
+386,8
@@
bool wxOwnerDrawn::OnDrawItem(
,rRect.x + GetMarginWidth()
,rRect.y + m_nHeight
};
,rRect.x + GetMarginWidth()
,rRect.y + m_nHeight
};
+ POINTL vPnt1 = {2, 4}; // Leave a little background border
+ POINTL vPnt2 = {rRect.x + GetMarginWidth(), rRect.y + m_nHeight - 3};
LINEBUNDLE vLine;
vLine.lColor = vColBack.GetPixel();
LINEBUNDLE vLine;
vLine.lColor = vColBack.GetPixel();
@@
-381,13
+397,15
@@
bool wxOwnerDrawn::OnDrawItem(
,0
,&vLine
);
,0
,&vLine
);
+ ::GpiMove(hPS, &vPnt1);
::GpiBox( hPS
,DRO_OUTLINE
::GpiBox( hPS
,DRO_OUTLINE
- ,
(PPOINTL)&vRectBmp
+ ,
&vPnt2
,0L
,0L
);
}
,0L
,0L
);
}
+ vBmp.SetSelectedInto(NULL);
}
}
return TRUE;
}
}
return TRUE;