Page 1 of 1

New FTDN November/Noviembre 2009 (9.11)

Posted: Sun Nov 22, 2009 10:02 am
by Antonio Linares
November 2009
=============

* Fix: Class TBtnBmp Method Paint(), the bitmap and the text were not properly painted.

* Enhancement: Class TGet Method LButtonDown(), ::bLClicked now receives three parameters
when it gets evaluated: nRow, nCol, nFlags, Self. Same as in Class TWindow. Thanks to Frank
Demont!

* Fix: Class TTitle DATA nAtImgPress was not properly initialized in Method New. Now it is ok.

* Fix: Class TXBrwose: In method ToExcel, Call to ToCalc method when excel is not installed is passing
parameters wrongly in some circumstances. Now fixed.

* Enhancement: TXBrowse FastEdit: Now fast edit works even when Marquee Style is in now mode, if
bClrRowFocus is assigned.

* TXBrowse new DATA bOnSwapCol: If assigned this code block is evaluated with BrowseObject, nFromCol, nToCol
as paramters after columns are dragged with mouse.

* Fix: TXBrowse Freezed columns, When some columns are freezed, it was possible for the user to drag freezed
columns out and viceversa with mouse drag. Now that is prevented. Now columns can be dragged within freezed
columns or unfreezed columns. Freezed columns can not be dragged into unfreezed area and unfreezed columns
can not be dragged into freezed area.

* Fix: TXBrowse Painting Footers: When XBrowse window style does not have WS_BORDER, the footer is painted 2
pixels above, leaving an unpainted space of 2 pixels below. This problem is experienced when Xbrowse is
defined in resources without WS_BORDER.Fixed.

* Enhancement: TXBrowse Sorting columns: Now it is possible to toggle ascending and descending sort order even
for Database Objects, if the database class implements method by name "OrdDescend" with the same syntax as
the OrdDescend function of RDD.

* Fix: function RegOpenKey() was not properly working fine after recent changes. Now it is ok.

* Fix: Class TTitle, added missing call to Super:Destroy() from Method Destroy()

* Fix: Class TBtnBmp: PopUp menu attached to the first button of buttonbar is displayed at wrong coordinates when
the windows are maximized. Fixed now.

* Enhancement: Class TBtnBmp: oPopUp data can be assigned with a codeblock which returns a PopupMenu object. This enables the button's popup menu to be dynamically changed at runtime.

* Fix: Class TBitmap Method ScrollRight(), minor fix when ::oVScroll is nil.

* Fix: XBrowse: Placement of footers was wrong when WS_BORDER style is not used. Now fixed.

* Fix: XBrowse: Fix in Calculation of stretched Column's width.

* Fix: XBrowse: Fixed incorrect dimensions of footer in the record selector area.

* Fix: XBrowse: Fixed (a) Wrong painting of header in the record selector area and (b) painting gray color
instead of 2007 color right of the last column.

* Enhancement: XBrowse: If DATA lTransparent is set to .t., browse is painted transparently over the container
window/dialog's like any other control. ( Works only for Browse created by code ). New clause TRANSPRARENT is
added to XBROWSE command

* Enhancement: XBrowse: Now size of the Browse can be defined relative to the size of the container
window / dialog. New DATAS nRightMargin and nBottomMargin can be assigned margin from Right and/or Bottom of the container Window/Dialog. When window is resized, browse also is resized keeping the right and bottom
margins if assigned.

Margins, instead of absolute size can be defined while creating browse by speicifying zero or negative values
for width and height values.

Example: @ 10,10 XBROWSE oBrw OF oDlg SIZE -10,-10 PIXEL .... sets the browse area leaving 10 pixels to the
right and 10 pixels to the bottom.

* Enhancement: NOBORDER clause added to @ r,c XBROWSE command. By default XBrowse is created with WS_BORDER style.
If NOBORDER clause is used, the browse is created without border. For browse created from resource this style
is to be set in the resouce.

* New: Class TODBC Method IndexKey( cTable, nOrder ), returns the fields that are used from an index
or a primary key. Thanks to Juan Navas!

* New: Class TODBC Method IsIndex( cTable, cIndex ), checks if an index exists for a given table. Thanks
to Juan Navas!

* Enhancement: FWH own RibbonBar, example in FWH\samples\Ribbon.prg, shows how to place a SAY alike control on alike RibbonBar Group.

* Fix: Class TCBrowse, there was an error with the kinetic scrolling implementation and the mouse upwards movement (draging with the mouse "hand"). Now it is ok.

* Fix: Class TTitle had a GDI memory leak in Method LoadBitmaps(). Now it is ok. Many thanks to Uwe for his
feedback!

* Fix: Class TBitmap was using swapped ::nX and ::nY values when calling TransBmp(). Now it is ok.

* Fix: Class TBitmap was not properly painting in transparent mode if themes were used. Now it is ok.

* Fix: Class TRBtn Method SetFile() was not properly changing the bitmaps in the RibbonBar buttons, now it
is ok. Please review FWH\samples\Ribbon.prg to see how to easily implement a checkbox :-)

* Enhancement: include\fwharb.h has been modified to make FWH work fine with the most recent CVS xHarbour.

* Fix: XBrowse: bDragBegin was not working after introduction of bToolTip for showing tooltips for individual
cells. Now Fixed. When bDragBegin is assigned with codeblock, this takes precedence over cell tooltips and
lKinetic setting. In other words, both cell tooltips and kinetic scrolling work if bDragBegin is nil.

* Enhancement: TXBrowse: When bPaintText is evaluated, the color pair being used is passed as array in the fifth
parameter.

* Enhancement: SetMinMax() function in WndMove.C. SetMinMax function now resets only numeric values in the
oWnd:aMinMaxInfo array. It is possible to specify only those values that need to be reset in the aMinMaxInfo
array leaving other items as nil. For example, to set minimum size of window, oWnd:aMinMaxInfo can be assigned as { nil, nil, nil, nil, 400, 300, nil, nil }.

* Enhancement: function cWinVersion() properly detects Windows 7 and returns "7". Please review samples\winver.prg

* New: function IsWin7(), returns a logical value lYesNo. Thanks to Ruediger!

* New: Added two sample programs xbrswap1.prg and xbrswap2.prg to demonstrate how to swap browses on the fly at runtime.

* Enhancement: FWH\samples\Ribbon.prg has been improved to show top buttons above the RibbonBar tabs.

* Fix: BtnBmp: Transparent btnbmp paints correctly even if the brush or color of the container dialog is changed
at runtime.

* Fix: Class TDialog Method End() was wrongly setting DATA hWnd to zero, so Method Destroy() was not getting
properly processed. Now it is ok.

* Enhancement: Class TPop3 DATA lHeaderOnly allows to download just the headers of the emails and not the whole emails. Thanks to Anser!

* Fix: Class TXBrowse kinetic scrolling implementation was generating division by zero errors under some
circumstances. Now it is ok.