-void wxDrawBorder(
- HPS hPS
-, RECTL& rRect
-, WXDWORD dwStyle
-)
-{
- POINTL vPoint[2];
-
- vPoint[0].x = rRect.xLeft;
- vPoint[0].y = rRect.yBottom;
- ::GpiMove(hPS, &vPoint[0]);
- if (dwStyle & wxSIMPLE_BORDER ||
- dwStyle & wxSTATIC_BORDER)
- {
- vPoint[1].x = rRect.xRight - 1;
- vPoint[1].y = rRect.yTop - 1;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
- }
- if (dwStyle & wxSUNKEN_BORDER)
- {
- LINEBUNDLE vLineBundle;
-
- vLineBundle.lColor = 0x00FFFFFF; // WHITE
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[1].x = rRect.xRight - 1;
- vPoint[1].y = rRect.yTop - 1;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
- vPoint[0].x = rRect.xLeft + 1;
- vPoint[0].y = rRect.yBottom + 1;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xRight - 2;
- vPoint[1].y = rRect.yTop - 2;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
-
- vLineBundle.lColor = 0x00000000; // BLACK
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[0].x = rRect.xLeft + 2;
- vPoint[0].y = rRect.yBottom + 2;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xLeft + 2;
- vPoint[1].y = rRect.yTop - 3;
- ::GpiLine(hPS, &vPoint[1]);
- vPoint[1].x = rRect.xRight - 3;
- vPoint[1].y = rRect.yTop - 3;
- ::GpiLine(hPS, &vPoint[1]);
-
- vPoint[0].x = rRect.xLeft + 3;
- vPoint[0].y = rRect.yBottom + 3;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xLeft + 3;
- vPoint[1].y = rRect.yTop - 4;
- ::GpiLine(hPS, &vPoint[1]);
- vPoint[1].x = rRect.xRight - 4;
- vPoint[1].y = rRect.yTop - 4;
- ::GpiLine(hPS, &vPoint[1]);
- }
- if (dwStyle & wxDOUBLE_BORDER)
- {
- LINEBUNDLE vLineBundle;
-
- vLineBundle.lColor = 0x00FFFFFF; // WHITE
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[1].x = rRect.xRight - 1;
- vPoint[1].y = rRect.yTop - 1;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
- vLineBundle.lColor = 0x00000000; // WHITE
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[0].x = rRect.xLeft + 2;
- vPoint[0].y = rRect.yBottom + 2;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xRight - 2;
- vPoint[1].y = rRect.yTop - 2;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
- vLineBundle.lColor = 0x00FFFFFF; // BLACK
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[0].x = rRect.xLeft + 3;
- vPoint[0].y = rRect.yBottom + 3;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xRight - 3;
- vPoint[1].y = rRect.yTop - 3;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
- }
- if (dwStyle & wxRAISED_BORDER)
- {
- LINEBUNDLE vLineBundle;
-
- vLineBundle.lColor = 0x00000000; // BLACK
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[1].x = rRect.xRight - 1;
- vPoint[1].y = rRect.yTop - 1;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
- vPoint[0].x = rRect.xLeft + 1;
- vPoint[0].y = rRect.yBottom + 1;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xRight - 2;
- vPoint[1].y = rRect.yTop - 2;
- ::GpiBox( hPS
- ,DRO_OUTLINE
- ,&vPoint[1]
- ,0L
- ,0L
- );
-
- vLineBundle.lColor = 0x00FFFFFF; // WHITE
- vLineBundle.usMixMode = FM_OVERPAINT;
- vLineBundle.fxWidth = 2;
- vLineBundle.lGeomWidth = 2;
- vLineBundle.usType = LINETYPE_SOLID;
- vLineBundle.usEnd = 0;
- vLineBundle.usJoin = 0;
- ::GpiSetAttrs( hPS
- ,PRIM_LINE
- ,LBB_COLOR | LBB_MIX_MODE | LBB_WIDTH | LBB_GEOM_WIDTH | LBB_TYPE
- ,0L
- ,&vLineBundle
- );
- vPoint[0].x = rRect.xLeft + 2;
- vPoint[0].y = rRect.yBottom + 2;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xLeft + 2;
- vPoint[1].y = rRect.yTop - 3;
- ::GpiLine(hPS, &vPoint[1]);
- vPoint[1].x = rRect.xRight - 3;
- vPoint[1].y = rRect.yTop - 3;
- ::GpiLine(hPS, &vPoint[1]);
-
- vPoint[0].x = rRect.xLeft + 3;
- vPoint[0].y = rRect.yBottom + 3;
- ::GpiMove(hPS, &vPoint[0]);
- vPoint[1].x = rRect.xLeft + 3;
- vPoint[1].y = rRect.yTop - 4;
- ::GpiLine(hPS, &vPoint[1]);
- vPoint[1].x = rRect.xRight - 4;
- vPoint[1].y = rRect.yTop - 4;
- ::GpiLine(hPS, &vPoint[1]);
- }
-} // end of wxDrawBorder
-
-void wxOS2SetFont(
- HWND hWnd
-, const wxFont& rFont
-)
-{
- char zFont[128];
- char zFacename[30];
- char zWeight[30];
- char zStyle[30];
-
- if (hWnd == NULLHANDLE)
- return;
-
- //
- // The fonts available for Presentation Params are just a few
- // outline fonts, the rest are available to the GPI, so we must
- // map the families to one of these three
- //
- switch(rFont.GetFamily())
- {
- case wxSCRIPT:
- strcpy(zFacename, "Script");
- break;
-
- case wxDECORATIVE:
- strcpy(zFacename, "WarpSans");
- break;
-
- case wxROMAN:
- strcpy(zFacename,"Times New Roman");
- break;
-
- case wxTELETYPE:
- strcpy(zFacename, "Courier New");
- break;
-
- case wxMODERN:
- strcpy(zFacename, "Courier New");
- break;
-
- case wxDEFAULT:
- default:
- case wxSWISS:
- strcpy(zFacename, "Helvetica");
- break;
- }
-
- switch(rFont.GetWeight())
- {
- default:
- case wxNORMAL:
- case wxLIGHT:
- zWeight[0] = '\0';
- break;
-
- case wxBOLD:
- case wxFONTWEIGHT_MAX:
- strcpy(zWeight, "Bold");
- break;
- }
-
- switch(rFont.GetStyle())
- {
- case wxITALIC:
- case wxSLANT:
- strcpy(zStyle, "Italic");
- break;
-
- default:
- zStyle[0] = '\0';
- break;
- }
- sprintf(zFont, "%d.%s", rFont.GetPointSize(), zFacename);
- if (zWeight[0] != '\0')
- {
- strcat(zFont, " ");
- strcat(zFont, zWeight);
- }
- if (zStyle[0] != '\0')
- {
- strcat(zFont, " ");
- strcat(zFont, zStyle);
- }
- ::WinSetPresParam(hWnd, PP_FONTNAMESIZE, strlen(zFont) + 1, (PVOID)zFont);
-} // end of wxOS2SetFont