Annotation of mstools/samples/gridfont/box.cxx, revision 1.1.1.1

1.1       root        1: #include <windows.h>
                      2: #include <windowsx.h>
                      3: #include "app.h"
                      4: #include "box.hxx"
                      5: 
                      6: CTextField::CTextField(TCHAR *sz)
                      7: {
                      8:     _sz = sz;
                      9: }
                     10: 
                     11: void CTextField::Paint(CCanvas &canvas, int x, int y)
                     12: {
                     13:     SetTextAlign(canvas, TA_LEFT | TA_BASELINE );
                     14:     CFontSelect fs(canvas, _font);
                     15:     canvas.Text(x, y, _sz, lstrlen(_sz) );
                     16: }
                     17: 
                     18: void CTextField::GetExtent(CCanvas &canvas, SIZE *pSize)
                     19: {
                     20:     GetTextExtentPoint(canvas, _sz, lstrlen(_sz), pSize);
                     21: }
                     22: 
                     23: void CTextField::SetFont(HFONT hfont)
                     24: {
                     25:     _font = hfont;      
                     26: }
                     27: 
                     28: //-----------------------------------------------
                     29: CBoxFormat::CBoxFormat(SIZE sizeChar) :
                     30:         _fontAlias(TEXT("Arial Narrow"), -10, FALSE),
                     31:         _fontCtype(TEXT("Arial"), 12, TRUE, FALSE, TRUE)
                     32: {
                     33:         _size = sizeChar;
                     34: }
                     35: 
                     36: //-----------------------------------------------
                     37: CBox::CBox( CBoxFormat &bxf, UINT iChar, HFONT hfont ) :
                     38:         _fontBlock( hfont ),
                     39:         _Block(1, 1, iChar, bxf ),
                     40:         _bxf(bxf),
                     41:         _Alias(TEXT("Character Type Bits:"))
                     42: {
                     43:     
                     44:     _fontBlock.Update( -40, TRUE);
                     45:     _Block.SetFont(_fontBlock); 
                     46: 
                     47:     _sizeBox.cx = bxf._size.cx+100; // shadow 100/20 poitns
                     48:     _sizeBox.cy = bxf._size.cy+100;
                     49: 
                     50: #ifdef UNICODE
                     51:     _sizeBox.cx += INCH4;
                     52:     _sizeBox.cy += INCH4;
                     53: #endif
                     54: 
                     55: 
                     56:     _Alias.SetFont(bxf._fontAlias);
                     57:     _iChar = iChar;
                     58: }
                     59:         
                     60: 
                     61: void CBox::Paint(CCanvas &canvas, POINT pt, RECT rc)
                     62: {
                     63:     int x = pt.x;
                     64:     int y = pt.y;
                     65: 
                     66: #ifdef UNICODE
                     67:     // adjust to length of header
                     68: 
                     69:     SIZE size;
                     70:     _Alias.GetExtent(canvas, &size);
                     71:     _sizeBox.cx += size.cx;
                     72: #endif
                     73:     // make rc large enough
                     74:     rc.left = pt.x;
                     75:     rc.top = pt.y;
                     76:     rc.right = pt.x+_sizeBox.cx-100;
                     77:     rc.bottom = pt.y+_sizeBox.cy-100;
                     78: 
                     79:     OffsetRect( &rc, 100, 100 );
                     80:     FillRect(canvas, &rc, GetStockBrush(GRAY_BRUSH));
                     81:     OffsetRect( &rc, -100, -100 );
                     82:     FillRect(canvas, &rc, GetStockBrush(WHITE_BRUSH));
                     83: 
                     84: #ifdef UNICODE
                     85:     CBlackPen pen(canvas, PS_SOLID, 20);
                     86:     Rectangle(canvas, rc.left, rc.top, rc.right, rc.bottom);
                     87: 
                     88:     pt.x += INCH8;
                     89:     pt.y += INCH8;
                     90: #endif
                     91: 
                     92:     _Block.Paint(canvas, rc, pt);
                     93: 
                     94: #ifdef UNICODE
                     95:     _Alias.Paint(canvas, x+=INCH1, y+= INCH4);
                     96:     _Alias.GetExtent(canvas, &size);
                     97: 
                     98:     pt.x = x;
                     99:     pt.y = y+INCH10;
                    100: 
                    101:     USHORT uTemp[2]={_iChar, 0};
                    102:     USHORT uType[2];
                    103: 
                    104:     SetTextColor(canvas, RGB(0,128,0));
                    105:     for( int i = 0; i < 3; i++ )
                    106:     {
                    107:         pt.y += size.cy;
                    108: 
                    109:         GetStringTypeW(1<<i, uTemp, 2, uType );
                    110:         CCodeGrid Ctype(1,1, size, uType[0]);
                    111:         Ctype.SetFont(_bxf._fontCtype);
                    112:         Ctype.SetFormat(HEXADECIMAL,4);
                    113:         Ctype.Paint(canvas, rc, pt);
                    114:     }
                    115:     SetTextColor(canvas, RGB(0,0,0));
                    116: #endif
                    117: }
                    118: 
                    119: UINT CBox::Hittest(CCanvas &canvas, POINT pt)
                    120: {
                    121:      return 0x00C5;
                    122: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.