FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour XBROWSE WINDOWS SEVEN LIKE
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
XBROWSE WINDOWS SEVEN LIKE
Posted: Fri Mar 11, 2011 10:36 AM
Nages,
Can I show
oBrw:nColDividerStyle :=LINESTYLE_BLACK

on Xbrowse like Windows Seven (oBrw:nMarqueeStyle = MARQSTYLE_HIGHLWIN7) ?

on old xbrowse I could make it and use also the subclass for windows seven




with old version of xbrowse there are problems to save the state and click with mouse on tree

with the last xbrowse we have correct theseproblems but we cannot show nColDividerStyle :=LINESTYLE_BLACK correctly



I have this class :
Code (fw): Select all Collapse
// Using Windows 7 row selection colors in xbrowse

#include 'fivewin.ch'
#include 'xbrowse.ch'

#define MARQSTYLE_HIGHLWIN7  7


//----------------------------------------------------------------------------//

CLASS TXbrWin7 FROM TXBrowse

   CLASSDATA lRegistered AS LOGICAL // This is compulsory for derived classes

   METHOD Adjust()
   METHOD FullPaint() INLINE ( ::lTransparent .or. ::lMergeVert .or. ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7 )
   METHOD DrawLine( lSelected, nRowSel )

ENDCLASS

//----------------------------------------------------------------------------//

METHOD Adjust() CLASS TXBrWin7

   if ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7
     // ::nRowDividerStyle   := LINESTYLE_NOLINES
     // ::nColDividerStyle   := LINESTYLE_NOLINES
    //  ::nColDividerStyle   := LINESTYLE_BLACK


      ::bClrSelFocus       := ;
      ::bClrSel            := { || { CLR_BLACK, ;
                                 { { 1, RGB( 220, 235, 252 ), ;
                                 RGB( 193, 219, 252 ) } } } }

   endif

return Super:Adjust()

//----------------------------------------------------------------------------//

METHOD DrawLine( lSelected, nRowSel ) CLASS TXBrWin7

   local hDC, nRow, nBrwWidth, nDataHeight

   Super:DrawLine( lSelected, nRowSel )

   DEFAULT lSelected := .f.

   if lSelected
      if ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7

         hDC         := ::GetDC()
         nRow        := ( ( ::nRowSel - 1 ) * ::nRowHeight ) + ::HeaderHeight()
         nBrwWidth   := ::BrwWidth()
         nDataHeight := ::DataHeight()

         RoundBox( hDC, 2, nRow - 1, nBrwWidth - 1, nRow + nDataHeight,     2, 2,;
                   RGB( 235, 244, 253 ), 1 )
         RoundBox( hDC, 1, nRow - 2, nBrwWidth,     nRow + nDataHeight + 1, 2, 2,;
                   RGB( 125, 162, 206 ), 1 )
      endif
   endif

return Self

//------------------------------------------------------------------//




I made

oApp():oGrid := TXBrWin7():New( oApp():oDlg )
oApp():nTop := 00
oApp():nLeft := nSplit+2
oApp():nBottom := ::nGridBottom
oApp():nRight := ::nGridRight

Ut_BrwRowConfig7( oApp():oGrid )


---------------------------------------------------
FUNCTION Ut_BrwRowConfig7( oBrw )

oBrw:lRecordSelector := .t. // .t.
oBrw:lAllowRowSizing := .t.
oBrw:lColDividerComplete := .t. // .f.
oBrw:lAllowColSwapping := .t.
oBrw:lAllowColHiding := .t.
oBrw:lFastEdit := .f.

oBrw:nRowSel := 1
oBrw:nColSel := 1
oBrw:nColOffset := 1
oBrw:nFreeze := 0
oBrw:nCaptured := 0
oBrw:nLastEditCol := 0

oBrw:nRowDividerStyle := LINESTYLE_NOLINES
oBrw:nColDividerStyle :=LINESTYLE_BLACK // LINESTYLE_NOLINES
oBrw:nMarqueeStyle = MARQSTYLE_HIGHLWIN7 // for Windows 7 style

RETURN nil
Best Regards, Saludos



Falconi Silvio

Continue the discussion