-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