From bba4e36e0915fcd520b357443dd07a28902323e7 Mon Sep 17 00:00:00 2001 From: Lorenzo Fiorini Date: Mon, 16 Apr 2007 19:26:59 +0000 Subject: [PATCH] 2007-04-16 21:25 UTC+0200 Lorenzo Fiorini (lorenzo.fiorini/at/gmail.com) * harbour/source/rtl/tget.prg * harbour/source/rtl/tgetlist.prg * fixed ::UpdateBuffer() * source/codepage/uc88591b.c * source/rtl/gtxwc/gtxwc.c * added support for Euro sign --- harbour/ChangeLog | 8 +++++ harbour/source/codepage/uc88591b.c | 6 ++-- harbour/source/rtl/gtxwc/gtxwc.c | 5 +++ harbour/source/rtl/tget.prg | 52 +++++++++++++++++------------- harbour/source/rtl/tgetlist.prg | 2 +- 5 files changed, 47 insertions(+), 26 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 772fc5972d..49c2ba3401 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,14 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2007-04-16 21:25 UTC+0200 Lorenzo Fiorini (lorenzo.fiorini/at/gmail.com) + * harbour/source/rtl/tget.prg + * harbour/source/rtl/tgetlist.prg + * fixed ::UpdateBuffer() + * source/codepage/uc88591b.c + * source/rtl/gtxwc/gtxwc.c + * added support for Euro sign + 2007-04-16 11:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/compiler/hbmain.c * harbour/source/compiler/ppcomp.c diff --git a/harbour/source/codepage/uc88591b.c b/harbour/source/codepage/uc88591b.c index 74b7442ef2..bc4aed1aa1 100644 --- a/harbour/source/codepage/uc88591b.c +++ b/harbour/source/codepage/uc88591b.c @@ -71,14 +71,14 @@ static USHORT uniCodes[NUMBER_OF_CHARS] = { 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, + 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x2302, + 0x20ac, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F, 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x00B0, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, diff --git a/harbour/source/rtl/gtxwc/gtxwc.c b/harbour/source/rtl/gtxwc/gtxwc.c index f2e5cd497f..7e8286bac3 100644 --- a/harbour/source/rtl/gtxwc/gtxwc.c +++ b/harbour/source/rtl/gtxwc/gtxwc.c @@ -1846,6 +1846,11 @@ static void hb_gt_xwc_ProcessKey( PXWND_DEF wnd, XKeyEvent *evt) buf[0] = (BYTE) (outISO & 0xff); n = 1; } + if ( outISO == 0x20ac ) + { + buf[0] = (BYTE) 0x80; + n = 1; + } } if( n > 0 ) { diff --git a/harbour/source/rtl/tget.prg b/harbour/source/rtl/tget.prg index 96bf3249d3..8a5b719f16 100644 --- a/harbour/source/rtl/tget.prg +++ b/harbour/source/rtl/tget.prg @@ -113,7 +113,7 @@ CLASS Get DATA cPicMask, cPicFunc, nMaxLen, lEdit, lDecRev, lPicComplex DATA nDispLen, nDispPos, nOldPos, lCleanZero, cDelimit, nMaxEdit - DATA lMinusPrinted + DATA lMinusPrinted, xVarGet METHOD New( nRow, nCol, bVarBlock, cVarName, cPicture, cColorSpec ) @@ -286,7 +286,7 @@ METHOD ParsePict( cPicture ) CLASS Get endif if ::cType == nil - ::Original := ::VarGet() + ::Original := ::xVarGet ::cType := ValType( ::Original ) endif @@ -315,7 +315,7 @@ METHOD ParsePict( cPicture ) CLASS Get case ::cType == "N" - cNum := Str( ::VarGet() ) + cNum := Str( ::xVarGet ) if ( nAt := At( iif( ::lDecRev, ",", "." ), cNum ) ) > 0 ::cPicMask := Replicate( "9", nAt - 1 ) + iif( ::lDecRev, ",", "." ) ::cPicMask += Replicate( "9", Len( cNum ) - Len( ::cPicMask ) ) @@ -324,7 +324,7 @@ METHOD ParsePict( cPicture ) CLASS Get endif case ::cType == "C" .and. ::cPicFunc == "@9" - ::cPicMask := Replicate( "9", Len( ::VarGet() ) ) + ::cPicMask := Replicate( "9", Len( ::xVarGet ) ) ::cPicFunc := "" endcase @@ -371,8 +371,11 @@ return Self METHOD UpdateBuffer() CLASS Get if ::hasFocus - ::buffer := ::PutMask() + + ::buffer := ::PutMask( ::VarGet() ) + ::Display() + endif return Self @@ -392,7 +395,7 @@ METHOD Display( lForced ) CLASS Get // to force that in Harbour. [vszakats] if ::buffer == nil - ::Original := ::VarGet() + ::Original := ::xVarGet ::cType := ValType( ::Original ) ::picture := ::cPicture //this sets also ::buffer // else @@ -503,15 +506,16 @@ return Self METHOD SetFocus() CLASS Get local lWasNil := ::buffer == NIL + local xVarGet := ::VarGet() ::hasfocus := .t. ::rejected := .f. ::TypeOut := .f. - ::Original := ::VarGet() - ::cType := ValType( ::Original ) + ::Original := xVarGet + ::cType := ValType( xVarGet ) ::Picture := ::cPicture - ::buffer := ::PutMask( ::Original, .f. ) + ::buffer := ::PutMask( xVarGet, .f. ) ::changed := .f. ::clear := ( "K" $ ::cPicFunc .or. ::cType == "N") // ::nMaxLen := iif( ::buffer == NIL, 0, Len( ::buffer ) ) @@ -520,13 +524,13 @@ METHOD SetFocus() CLASS Get ::pos := ::FirstEditable() - if ::pos = 0 - ::TypeOut = .t. - endif + if ::pos = 0 + ::TypeOut = .t. + endif if ::cType == "N" ::decpos := At( iif( ::lDecRev .or. "E" $ ::cPicFunc, ",", "." ), ::buffer ) - ::minus := ( ::VarGet() < 0 ) + ::minus := ( xVarGet < 0 ) else ::decpos := NIL ::minus := .f. @@ -564,6 +568,7 @@ METHOD KillFocus() CLASS Get ::pos := NIL ::Display() + ::xVarGet := NIL return Self @@ -594,6 +599,7 @@ METHOD VarPut( xValue, lReFormat ) CLASS Get ::Original := xValue endif ::cType := ValType( xValue ) + ::xVarGet := xValue ::lEdit := .f. ::Picture( ::cPicture ) endif @@ -625,6 +631,8 @@ METHOD VarGet() CLASS Get xValue := NIL ENDIF + ::xVarGet := xValue + return xValue //---------------------------------------------------------------------------// @@ -776,7 +784,7 @@ METHOD overstrike( cChar ) CLASS Get if ! ::lEdit ::lEdit := .t. - ::buffer := ::PutMask( ::VarGet(), .t. ) +// ::buffer := ::PutMask( ::xVarGet, .t. ) endif if ::pos == 0 @@ -799,7 +807,7 @@ METHOD overstrike( cChar ) CLASS Get // accepted. // ::Changed := ValType( ::Original ) != ValType( ::unTransform() ) .or.; // !( ::unTransform() == ::Original ) - ::Assign() + // ::Assign() ::Right( .f. ) if ::cType == "D" @@ -845,7 +853,7 @@ METHOD Insert( cChar ) CLASS Get if ! ::lEdit ::lEdit := .t. - ::buffer := ::PutMask( ::VarGet(), .t. ) + // ::buffer := ::PutMask( ::VarGet(), .t. ) endif if ::pos == 0 @@ -883,7 +891,7 @@ METHOD Insert( cChar ) CLASS Get // accepted. // ::Changed := ValType( ::Original ) != ValType( ::unTransform() ) .or.; // !( ::unTransform() == ::Original ) - ::Assign() + // ::Assign() ::Right( .f. ) if ::cType == "D" @@ -1348,7 +1356,7 @@ METHOD BackSpace( lDisplay ) CLASS Get SubStr( ::buffer, nMinus + 1 ) ::Changed = .t. - ::Assign() + // ::Assign() if lDisplay ::Display() @@ -1404,7 +1412,7 @@ METHOD _Delete( lDisplay ) CLASS Get endif ::Changed = .t. - ::Assign() + // ::Assign() if lDisplay ::Display() @@ -1435,7 +1443,7 @@ METHOD DeleteAll() CLASS Get ::buffer := ::PutMask( xValue, .t. ) ::Pos := ::FirstEditable( ) - ::Assign() + // ::Assign() return Self @@ -1600,7 +1608,7 @@ return ::cPicture METHOD Type() CLASS Get if ::cType == NIL - ::Original := ::VarGet() + ::Original := ::xVarGet ::cType := ValType( ::Original ) endif @@ -1622,7 +1630,7 @@ METHOD Block( bBlock ) CLASS Get if bBlock != NIL .AND. !::HasFocus ::bBlock := bBlock - ::Original := ::VarGet() + ::Original := ::xVarGet ::cType := ValType( ::Original ) ::Picture( ::Picture ) diff --git a/harbour/source/rtl/tgetlist.prg b/harbour/source/rtl/tgetlist.prg index b5feeb0c69..1d7b63c5d6 100644 --- a/harbour/source/rtl/tgetlist.prg +++ b/harbour/source/rtl/tgetlist.prg @@ -418,7 +418,7 @@ METHOD GetPostValidate() CLASS HBGetList endif if oGet:Changed - oGet:UpdateBuffer() + oGet:Assign() ::lUpdated := .t. endif