2009-03-15 16:42 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* harbour/contrib/gtwvg/hbgtwvg.ch
    + #define HB_GTI_SETPOSANDSIZE
    + #define HB_GTI_HB_GTI_REFRESH
      + Two more events to manage new CUI-GUI objects.

    + #define GOBJ_OBJSTATE_*
    + #define GOBJ_OBJDATA_*
    + #define GOBJ_IMAGESOURCE_*
      + Constants to manage CUI=GUI objects.

  * harbour/contrib/gtwvg/gtwvg.h
  * harbour/contrib/gtwvg/wvggui.h
    ! Updated to be compilable for WinCE builds.

  * harbour/contrib/gtwvg/gtwvg.c
    ! Updated to honor WinCE builds.
    ! Implemented double-buffering of console. Now flickering
      should be the topic of the past.

  * harbour/contrib/gtwvg/wvggui.c
    ! Updated to honor WinCE builds.

  * harbour/contrib/gtwvg/wvgcuig.c
    + Implemented a highly optimized GUI controls for CUI consoles.
      Implementation includes auto-destruction, data-substitution,
      enable/disable feast, etc. These controls are almost identical
      which are available with Wvt_Draw*() namespace but with a 
      great difference that these are tied to the urrent GT and 
      are handelled transparently by the GT itself. Developer 
      has only to define it. The only requirement is that 
      SaveScreen()/RestScreen() needs to be changed to new 
      Modal GT window. Appln screens will never get blurred. It 
      also employs optimized double-buffering and hence almost 
      eliminates screen flickering. 

  * harbour/contrib/gtwvg/wvgcore.c
  * harbour/contrib/gtwvg/wvgsink.c
  * harbour/contrib/gtwvg/wvgutils.c
  * harbour/contrib/gtwvg/wvgwin.c
    ! Updated to honor WinCE builds.

  * harbour/contrib/gtwvg/wvgcrt.prg
    ! A couple of methods fine-tuned.
    ! Modal GT's more responsive to user needs.

  * harbour/contrib/gtwvg/tests/demowvg.prg
    ! Demonstrated the latest implemention of CUI-GUI controls. See below.
      Please try <Traditional><WVG Console with CGUI> option in the main menu.
      Also note the usage of Modal GT to simulate Alert() in new window.
      Every GUI object returns a handle to it which may be used to 
      change its parameters.

    ; TOFIX( WINCE BUILDS ) - GetSystemDirectory()


    /*    IMPLEMENTATION OF CUI-GUI CONTROLS - A CODE PREVIEW



         #xTranslate Alert( => MyAlert(

         PROCEDURE GCUIConsole( oCrt )
            LOCAL dDate      := date()
            LOCAL cName      := pad( 'Some Usefule Name'   , 35 )
            LOCAL cAdd1      := pad( 'Linda Goldman Avenue', 35 )
            LOCAL cAdd2      := pad( 'Excellent Street'    , 35 )
            LOCAL cAdd3      := pad( 'Suit #415'           , 35 )
            LOCAL nSlry      := 9000
            LOCAL nColGet    := 8
            LOCAL GetList    := {}
            LOCAL cLabel     := "VOUCH, that GROWS with you"
            LOCAL oTab, oStat, hBoxR, hTxt

            SET SCOREBOARD OFF

            SetColor( "N/W,N/GR*,,,N/W*" )
            CLS
            hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified yet Powerful CUI-GUI Console!" )

            @ MaxRow(), 0 SAY PadC( "Navigate the Gets", maxcol()+1 ) COLOR "W+/B"

            @  2, nColGet SAY "< Date >"
            @  5, nColGet SAY "<" + PadC( "Name"   , 33 ) + ">"
            @  8, nColGet SAY "<" + PadC( "Address", 33 ) + ">"
            @ 15, nColGet SAY "< Salary >"

            @  3, nColGet GET dDate  ;
                                     WHEN  {|| Wvg_SetGObjData( hTxt, 1, FetchText( 1 ) ) } ;
                                     Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,0 ) ), .t. }
            @  6, nColGet GET cName  ;
                                     WHEN  {|| Wvg_SetGObjData( hTxt, 1, FetchText( 2 ) ) } ;
                                     Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,0 ) ), ;
                                                           Wvg_SetGObjState( hBoxR, 3 ), .t. }
            @  9, nColGet GET cAdd1  ;
                                     WHEN  {|| Wvg_SetGObjData( hTxt, 1, FetchText( 3 ) ) } ;
                                     Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,255 ) ), .t. }
            @ 11, nColGet GET cAdd2  ;
                                     WHEN  {|| Wvg_SetGObjData( hTxt, 1, FetchText( 4 ) ) } ;
                                     Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,255 ) ), ;
                                                           Wvg_SetGObjState( hBoxR, 1 ), .t. }
            @ 13, nColGet GET cAdd3  ;
                                     WHEN  {|| Wvg_SetGObjData( hTxt, 6, RGB( 198,21,140 ) ), .t. }
            @ 16, nColGet GET nSlry PICTURE "@Z 9999999.99" ;
                                     WHEN  {|| Wvg_SetGObjData( hTxt, 6, RGB( 0,0,0 ) ), .t. }

            // The only additional calls to render your console GUI
            //
            // The GETLIST  : This can be embedded via  @ GET preprocessor command
            aEval( GetList, {|oGet| Wvg_BoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } )
            //
            hBoxR := Wvg_BoxRaised( 1,2,18,49, {-5,-5,5,5} )
            //
            Wvg_BoxRecessed( 1,2,18,49 )
            //
            // Wvg_BoxGroup( 2,4,17,47 )
            //
            Wvg_BoxGroupRaised( 2,4,17,47, {-7,-7,7,7} )
            //
            hTxt := Wvg_TextBox( 3,57,16,75, {10,10,-10,-10}, 'This is first TextBox Line!', 2, 2 )
            //
            Wvg_Image( 15,36,16,42, {-3,-3,3,3}, GOBJ_IMAGESOURCE_FILE, 'Vouch1.bmp' )
            //
            Wvg_BoxRaised( 15,36,16,42,{-2,-2,2,2} )
            //
            Wvg_ShadedRect( 1,54,18,79, { -5,-5,5,5 }, 0, {65000,21000,7000,56000}, {255,32255,16000,32500} )
            //
            Wvg_BoxRaised( 1,54,18,79, {-5,-5,5,5} )

            // Instruct GT to Repaint the Screen with GUI elements.
            oCrt:refresh()

            // Issue the read
            READ

            Alert( 'How did you like the "Alert" replacement?', { 'WOW','OK','OOps'} )

            RETURN
         /*----------------------------------------------------------------------*/
         #xUntranslate alert( =>

         FUNCTION MyAlert( cMsg, aOpt )
            LOCAL nSel, oCrt

            oCrt := WvgCrt():New( , , { -1,-1 }, { 9, MaxCol()-6 }, , .t. )
            oCrt:lModal := .t.
            oCrt:icon   := "dia_excl.ico"
            oCrt:create()
            oCrt:resizable := .t.

            SetColor( 'N/W' )
            CLS
            hb_gtInfo( HB_GTI_WINTITLE, cMsg )

            nSel := Alert( cMsg, aOpt )

            oCrt:destroy()

            RETURN nSel

         #xTranslate Alert( => MyAlert(
         /*----------------------------------------------------------------------*/
         STATIC FUNCTION FetchText( nMode )
            LOCAL cText

            DO CASE
            CASE nMode == 1
               cText := 'Do you know Harbour is gaining a popularity what Clipper enjoyed at one time! '
               cText += 'Enjoy it.'
            CASE nMode == 2
               cText := 'Do you know Harbour can host pure console, cui+gui console, pure gui consoles applications? '
               cText += 'This demonstration is a proof of that.'
            CASE nMode == 3
               cText := 'Do you know Harbour is a multi-gt, multi-window, multi-thread compiler far superior than others in the market! '
               cText += 'And is FREE.'
            CASE nMode == 4
               cText := 'Enjoy and contribute to the project any way you can. Develop, Debug, Support, and spread a word of mouth!'
            ENDCASE

            RETURN cText
         /*----------------------------------------------------------------------*/
    */

    ;TODO - Write a comprehensive help to exploit CUI-GUI functionality.
            Will do in a few days.
This commit is contained in:
Pritpal Bedi
2009-03-15 23:55:29 +00:00
parent a6569d6ef9
commit e07462e564
13 changed files with 2172 additions and 702 deletions

View File

@@ -8,6 +8,194 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-03-15 16:42 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* harbour/contrib/gtwvg/hbgtwvg.ch
+ #define HB_GTI_SETPOSANDSIZE
+ #define HB_GTI_HB_GTI_REFRESH
+ Two more events to manage new CUI-GUI objects.
+ #define GOBJ_OBJSTATE_*
+ #define GOBJ_OBJDATA_*
+ #define GOBJ_IMAGESOURCE_*
+ Constants to manage CUI=GUI objects.
* harbour/contrib/gtwvg/gtwvg.h
* harbour/contrib/gtwvg/wvggui.h
! Updated to be compilable for WinCE builds.
* harbour/contrib/gtwvg/gtwvg.c
! Updated to honor WinCE builds.
! Implemented double-buffering of console. Now flickering
should be the topic of the past.
* harbour/contrib/gtwvg/wvggui.c
! Updated to honor WinCE builds.
* harbour/contrib/gtwvg/wvgcuig.c
+ Implemented a highly optimized GUI controls for CUI consoles.
Implementation includes auto-destruction, data-substitution,
enable/disable feast, etc. These controls are almost identical
which are available with Wvt_Draw*() namespace but with a
great difference that these are tied to the urrent GT and
are handelled transparently by the GT itself. Developer
has only to define it. The only requirement is that
SaveScreen()/RestScreen() needs to be changed to new
Modal GT window. Appln screens will never get blurred. It
also employs optimized double-buffering and hence almost
eliminates screen flickering.
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgsink.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgwin.c
! Updated to honor WinCE builds.
* harbour/contrib/gtwvg/wvgcrt.prg
! A couple of methods fine-tuned.
! Modal GT's more responsive to user needs.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Demonstrated the latest implemention of CUI-GUI controls. See below.
Please try <Traditional><WVG Console with CGUI> option in the main menu.
Also note the usage of Modal GT to simulate Alert() in new window.
Every GUI object returns a handle to it which may be used to
change its parameters.
; TOFIX( WINCE BUILDS ) - GetSystemDirectory()
/* IMPLEMENTATION OF CUI-GUI CONTROLS - A CODE PREVIEW
#xTranslate Alert( => MyAlert(
PROCEDURE GCUIConsole( oCrt )
LOCAL dDate := date()
LOCAL cName := pad( 'Some Usefule Name' , 35 )
LOCAL cAdd1 := pad( 'Linda Goldman Avenue', 35 )
LOCAL cAdd2 := pad( 'Excellent Street' , 35 )
LOCAL cAdd3 := pad( 'Suit #415' , 35 )
LOCAL nSlry := 9000
LOCAL nColGet := 8
LOCAL GetList := {}
LOCAL cLabel := "VOUCH, that GROWS with you"
LOCAL oTab, oStat, hBoxR, hTxt
SET SCOREBOARD OFF
SetColor( "N/W,N/GR*,,,N/W*" )
CLS
hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified yet Powerful CUI-GUI Console!" )
@ MaxRow(), 0 SAY PadC( "Navigate the Gets", maxcol()+1 ) COLOR "W+/B"
@ 2, nColGet SAY "< Date >"
@ 5, nColGet SAY "<" + PadC( "Name" , 33 ) + ">"
@ 8, nColGet SAY "<" + PadC( "Address", 33 ) + ">"
@ 15, nColGet SAY "< Salary >"
@ 3, nColGet GET dDate ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 1 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,0 ) ), .t. }
@ 6, nColGet GET cName ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 2 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,0 ) ), ;
Wvg_SetGObjState( hBoxR, 3 ), .t. }
@ 9, nColGet GET cAdd1 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 3 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,255 ) ), .t. }
@ 11, nColGet GET cAdd2 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 4 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,255 ) ), ;
Wvg_SetGObjState( hBoxR, 1 ), .t. }
@ 13, nColGet GET cAdd3 ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 198,21,140 ) ), .t. }
@ 16, nColGet GET nSlry PICTURE "@Z 9999999.99" ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 0,0,0 ) ), .t. }
// The only additional calls to render your console GUI
//
// The GETLIST : This can be embedded via @ GET preprocessor command
aEval( GetList, {|oGet| Wvg_BoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } )
//
hBoxR := Wvg_BoxRaised( 1,2,18,49, {-5,-5,5,5} )
//
Wvg_BoxRecessed( 1,2,18,49 )
//
// Wvg_BoxGroup( 2,4,17,47 )
//
Wvg_BoxGroupRaised( 2,4,17,47, {-7,-7,7,7} )
//
hTxt := Wvg_TextBox( 3,57,16,75, {10,10,-10,-10}, 'This is first TextBox Line!', 2, 2 )
//
Wvg_Image( 15,36,16,42, {-3,-3,3,3}, GOBJ_IMAGESOURCE_FILE, 'Vouch1.bmp' )
//
Wvg_BoxRaised( 15,36,16,42,{-2,-2,2,2} )
//
Wvg_ShadedRect( 1,54,18,79, { -5,-5,5,5 }, 0, {65000,21000,7000,56000}, {255,32255,16000,32500} )
//
Wvg_BoxRaised( 1,54,18,79, {-5,-5,5,5} )
// Instruct GT to Repaint the Screen with GUI elements.
oCrt:refresh()
// Issue the read
READ
Alert( 'How did you like the "Alert" replacement?', { 'WOW','OK','OOps'} )
RETURN
/*----------------------------------------------------------------------*/
#xUntranslate alert( =>
FUNCTION MyAlert( cMsg, aOpt )
LOCAL nSel, oCrt
oCrt := WvgCrt():New( , , { -1,-1 }, { 9, MaxCol()-6 }, , .t. )
oCrt:lModal := .t.
oCrt:icon := "dia_excl.ico"
oCrt:create()
oCrt:resizable := .t.
SetColor( 'N/W' )
CLS
hb_gtInfo( HB_GTI_WINTITLE, cMsg )
nSel := Alert( cMsg, aOpt )
oCrt:destroy()
RETURN nSel
#xTranslate Alert( => MyAlert(
/*----------------------------------------------------------------------*/
STATIC FUNCTION FetchText( nMode )
LOCAL cText
DO CASE
CASE nMode == 1
cText := 'Do you know Harbour is gaining a popularity what Clipper enjoyed at one time! '
cText += 'Enjoy it.'
CASE nMode == 2
cText := 'Do you know Harbour can host pure console, cui+gui console, pure gui consoles applications? '
cText += 'This demonstration is a proof of that.'
CASE nMode == 3
cText := 'Do you know Harbour is a multi-gt, multi-window, multi-thread compiler far superior than others in the market! '
cText += 'And is FREE.'
CASE nMode == 4
cText := 'Enjoy and contribute to the project any way you can. Develop, Debug, Support, and spread a word of mouth!'
ENDCASE
RETURN cText
/*----------------------------------------------------------------------*/
*/
;TODO - Write a comprehensive help to exploit CUI-GUI functionality.
Will do in a few days.
2009-03-16 00:38 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/postinst.bat
+ Added owatcom and pocc support for implib generation.

View File

@@ -127,6 +127,7 @@ static void hb_wvt_gtCreateToolTipWindow( PHB_GTWVT pWVT );
static void hb_wvt_gtHandleMenuSelection( PHB_GTWVT pWVT, int );
static void hb_wvt_gtSaveGuiState( PHB_GTWVT pWVT );
static void hb_wvt_gtRestGuiState( PHB_GTWVT pWVT, LPRECT rect );
static void hb_wvt_gtRestScreen( PHB_GTWVT pWVT );
static void hb_wvt_gtLoadGuiData( void );
static void hb_wvt_gtReleaseGuiData( void );
@@ -243,8 +244,8 @@ static void hb_gt_wvt_Free( PHB_GTWVT pWVT )
if( pWVT->hFontBox && pWVT->hFontBox != pWVT->hFont )
DeleteObject( pWVT->hFontBox );
#endif
if( pWVT->hFont )
DeleteObject( pWVT->hFont );
//if( pWVT->hFont )
//DeleteObject( pWVT->hFont );
// Detach PRG callback
pWVT->pSymWVT_PAINT = NULL;
@@ -270,10 +271,7 @@ static void hb_gt_wvt_Free( PHB_GTWVT pWVT )
hb_itemRelease( pWVT->pPP->pParentGT );
hb_xfree( pWVT->pPP );
if( pWVT->hWnd )
DestroyWindow( pWVT->hWnd );
if( pWVT->hIcon && pWVT->bIconToFree )
if( pWVT->hIcon )
DestroyIcon( pWVT->hIcon );
if( pWVT->gObjs )
@@ -283,11 +281,31 @@ static void hb_gt_wvt_Free( PHB_GTWVT pWVT )
while( pWVT->gObjs )
{
gObj = pWVT->gObjs->gObjNext;
if( pWVT->gObjs->lpText != NULL )
HB_TCHAR_FREE( pWVT->gObjs->lpText );
if( pWVT->gObjs->hFont )
if( pWVT->gObjs->bDestroyFont )
DeleteObject( pWVT->gObjs->hFont );
if( pWVT->gObjs->hPen )
if( pWVT->gObjs->bDestroyPen )
DeleteObject( pWVT->gObjs->hPen );
if( pWVT->gObjs->hBrush )
if( pWVT->gObjs->bDestroyBrush )
DeleteObject( pWVT->gObjs->hBrush );
#if ! defined( HB_OS_WIN_CE )
if( pWVT->gObjs->iPicture )
if( pWVT->gObjs->bDestroyPicture )
pWVT->gObjs->iPicture->lpVtbl->Release( pWVT->gObjs->iPicture );
#endif
hb_xfree( pWVT->gObjs );
pWVT->gObjs = gObj;
}
}
if( pWVT->hWnd )
DestroyWindow( pWVT->hWnd );
hb_xfree( pWVT );
}
@@ -411,6 +429,7 @@ static PHB_GTWVT hb_gt_wvt_New( PHB_GT pGT, HINSTANCE hInstance, int iCmdShow )
pWVT->pGUI = s_guiData;
pWVT->gObjs = NULL;
pWVT->hWndParent = NULL;
return pWVT;
}
@@ -1293,12 +1312,14 @@ static void hb_gt_wvt_MouseEvent( PHB_GTWVT pWVT, UINT message, WPARAM wParam, L
}
if( !pWVT->bTracking )
{
#if ! defined( HB_OS_WIN_CE )
TRACKMOUSEEVENT tmi;
tmi.cbSize = sizeof( TRACKMOUSEEVENT );
tmi.dwFlags = TME_LEAVE | TME_HOVER ;
tmi.hwndTrack = pWVT->hWnd;
tmi.dwHoverTime = 1;
pWVT->bTracking = _TrackMouseEvent( &tmi );
#endif
}
break;
}
@@ -1735,13 +1756,6 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
return;
}
hdc = BeginPaint( pWVT->hWnd, &ps );
SelectObject( hdc, pWVT->hFont );
if( pWVT->bGui )
{
SelectObject( pWVT->hGuiDC, pWVT->hFont );
}
rcRect = hb_gt_wvt_GetColRowFromXYRect( pWVT, updateRect );
/* Required, GUI Paint mechanism is based on it */
pWVT->rowStart = rcRect.top ;
@@ -1749,6 +1763,10 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
pWVT->colStart = rcRect.left ;
pWVT->colStop = rcRect.right ;
BeginPaint( pWVT->hWnd, &ps );
hdc = pWVT->hGuiDC;
SelectObject( hdc, pWVT->hFont );
for( iRow = rcRect.top; iRow <= rcRect.bottom; ++iRow )
{
iCol = startCol = rcRect.left;
@@ -1759,7 +1777,7 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
if( !HB_GTSELF_GETSCRCHAR( pWVT->pGT, iRow, iCol, &bColor, &bAttr, &usChar ) )
break;
#if defined( UNICODE )
#if defined( UNICODE )
usChar = hb_cdpGetU16( bAttr & HB_GT_ATTR_BOX ? pWVT->boxCDP : pWVT->hostCDP, TRUE, ( BYTE ) usChar );
if( len == 0 )
{
@@ -1772,7 +1790,7 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
startCol = iCol;
len = 0;
}
#else
#else
usChar = pWVT->chrTransTbl[ usChar & 0xFF ];
if( len == 0 )
{
@@ -1783,10 +1801,6 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
else if( bColor != bOldColor || bAttr != bOldAttr )
{
hb_gt_wvt_TextOut( pWVT, hdc, ( USHORT ) startCol, ( USHORT ) iRow, bOldColor, text, ( USHORT ) len );
if( pWVT->bGui )
{
hb_gt_wvt_TextOut( pWVT, pWVT->hGuiDC, ( USHORT ) startCol, ( USHORT ) iRow, bOldColor, text, ( USHORT ) len );
}
if( bAttr != bOldAttr )
{
SelectObject( hdc, ( bAttr & HB_GT_ATTR_BOX ) ? pWVT->hFontBox : pWVT->hFont );
@@ -1796,25 +1810,23 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
startCol = iCol;
len = 0;
}
#endif
#endif
text[ len++ ] = ( TCHAR ) usChar;
iCol++;
}
if( len > 0 )
{
hb_gt_wvt_TextOut( pWVT, hdc, ( USHORT ) startCol, ( USHORT ) iRow, bOldColor, text, ( USHORT ) len );
if( pWVT->bGui )
{
hb_gt_wvt_TextOut( pWVT, pWVT->hGuiDC, ( USHORT ) startCol, ( USHORT ) iRow, bOldColor, text, ( USHORT ) len );
}
}
}
/* Transfer on screen from bitmap */
BitBlt( pWVT->hdc, updateRect.left, updateRect.top,
updateRect.right - updateRect.left, updateRect.bottom - updateRect.top,
pWVT->hGuiDC, updateRect.left, updateRect.top, SRCCOPY );
/* Paint Graphic Objects Supporting CUI Elements */
hb_gt_wvt_PaintGObjects( pWVT, &updateRect );
EndPaint( pWVT->hWnd, &ps );
/* Tell PRG code to execute paint objects - Wvt_Draw*() */
if( pWVT->bPaint )
{
if( pWVT->pSymWVT_PAINT )
@@ -1832,6 +1844,8 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
{
pWVT->bPaint = TRUE;
}
EndPaint( pWVT->hWnd, &ps );
}
static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
@@ -1912,11 +1926,9 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
case WM_SETFOCUS:
hb_gt_wvt_UpdateCaret( pWVT );
if( pWVT->bGui )
{
pWVT->bSetFocus = TRUE;
pWVT->bKillFocus = FALSE;
}
pWVT->bSetFocus = TRUE;
pWVT->bKillFocus = FALSE;
if( pWVT->bGetFocus )
{
if( pWVT->pSymWVT_SETFOCUS )
@@ -1949,10 +1961,8 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
case WM_KILLFOCUS:
hb_gt_wvt_KillCaret( pWVT );
if( pWVT->bGui )
{
pWVT->bKillFocus = TRUE;
}
pWVT->bKillFocus = TRUE;
if( pWVT->pSymWVT_KILLFOCUS )
{
if( hb_vmRequestReenter() )
@@ -2154,6 +2164,7 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
hb_gt_wvt_FireMenuEvent( pWVT, 2, ( int ) wParam );
return 0;
}
#if ! defined( HB_OS_WIN_CE )
case WM_MOUSEHOVER:
{
PHB_ITEM pEvParams = hb_itemNew( NULL );
@@ -2180,6 +2191,7 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
pWVT->bTracking = FALSE;
return DefWindowProc( hWnd, message, wParam, lParam );;
}
#endif
case WM_NOTIFY:
{
PHB_ITEM pEvParams = hb_itemNew( NULL );
@@ -2311,6 +2323,21 @@ static HWND hb_gt_wvt_CreateWindow( PHB_GTWVT pWVT, BOOL bResizable )
RECT rc;
POINT pt;
pWVT->hWndParent = hWndParent;
// Inherit attributes from parent
//
pWVT->PTEXTSIZE.x = pWVTp->PTEXTSIZE.x;
pWVT->PTEXTSIZE.y = pWVTp->PTEXTSIZE.y;
pWVT->fontWidth = pWVTp->fontWidth;
pWVT->fontHeight = pWVTp->fontHeight;
pWVT->fontWeight = pWVTp->fontWeight;
pWVT->fontQuality = pWVTp->fontQuality;
pWVT->CodePage = pWVTp->CodePage;
hb_strncpy( pWVT->fontFace, pWVTp->fontFace, sizeof( pWVTp->fontFace ) - 1 );
pWVT->hFont = hb_gt_wvt_GetFont( pWVT->fontFace, pWVT->fontHeight,
pWVT->fontWidth, pWVT->fontWeight, pWVT->fontQuality, pWVT->CodePage );
if( pWVT->pPP->y < 0 )
{
GetClientRect( hWndParent, &rc );
@@ -2319,8 +2346,8 @@ static HWND hb_gt_wvt_CreateWindow( PHB_GTWVT pWVT, BOOL bResizable )
pWVT->ROWS = pWVT->pPP->width;
pWVT->COLS = pWVT->pPP->height;
pt.x = ( rc.right-rc.left + 1 - ( pWVT->PTEXTSIZE.x * pWVT->COLS ) ) / 2;
pt.y = ( rc.bottom-rc.top + 1 - ( pWVT->PTEXTSIZE.y * pWVT->ROWS ) ) / 2;
pt.x = ( rc.right-rc.left + 1 - ( pWVTp->PTEXTSIZE.x * pWVT->COLS ) ) / 2;
pt.y = ( rc.bottom-rc.top + 1 - ( pWVTp->PTEXTSIZE.y * pWVT->ROWS ) ) / 2;
}
else
{
@@ -2330,17 +2357,17 @@ static HWND hb_gt_wvt_CreateWindow( PHB_GTWVT pWVT, BOOL bResizable )
}
else
{
GetClientRect( hWndParent, &rc );
if( pWVT->pPP->bRowCols )
{
pWVT->ROWS = pWVT->pPP->width;
pWVT->COLS = pWVT->pPP->height;
pt.x = rc.left + ( pWVTp->PTEXTSIZE.x * pWVT->pPP->y );
pt.y = rc.top + ( pWVTp->PTEXTSIZE.y * pWVT->pPP->x );
pt.x = ( pWVTp->PTEXTSIZE.x * pWVT->pPP->y );
pt.y = ( pWVTp->PTEXTSIZE.y * pWVT->pPP->x );
}
else
{
GetWindowRect( hWndParent, &rc );
pt.x = rc.left + pWVT->pPP->x;
pt.y = rc.top + pWVT->pPP->y;
}
@@ -2443,7 +2470,9 @@ static BOOL hb_gt_wvt_CreateConsoleWindow( PHB_GTWVT pWVT )
}
}
#endif
hb_gt_wvt_InitWindow( pWVT, pWVT->ROWS, pWVT->COLS );
/* Set icon */
if( pWVT->hIcon )
{
@@ -2995,7 +3024,8 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
if( ( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING ) )
{
HICON hIconToFree = ( pWVT->hIcon && pWVT->bIconToFree ) ? pWVT->hIcon : NULL;
//HICON hIconToFree = ( pWVT->hIcon && pWVT->bIconToFree ) ? pWVT->hIcon : NULL;
HICON hIconToFree = pWVT->hIcon;
LPTSTR lpImage;
lpImage = HB_TCHAR_CONVTO( hb_itemGetCPtr( pInfo->pNewVal ) );
@@ -3020,7 +3050,8 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )
{
HICON hIconToFree = ( pWVT->hIcon && pWVT->bIconToFree ) ? pWVT->hIcon : NULL;
//HICON hIconToFree = ( pWVT->hIcon && pWVT->bIconToFree ) ? pWVT->hIcon : NULL;
HICON hIconToFree = pWVT->hIcon;
LPTSTR lpIcon;
lpIcon = HB_TCHAR_CONVTO( hb_itemGetCPtr( pInfo->pNewVal ) );
@@ -3129,6 +3160,23 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
}
break;
}
case HB_GTI_SETPOSANDSIZE:
{
int iX, iY, iW, iH;
iX = hb_arrayGetNI( pInfo->pNewVal,1 );
iY = hb_arrayGetNI( pInfo->pNewVal,2 );
iW = hb_arrayGetNI( pInfo->pNewVal2,1 );
iH = hb_arrayGetNI( pInfo->pNewVal2,2 );
SetWindowPos( pWVT->hWnd, NULL, iX, iY, iW, iH, SWP_NOACTIVATE | SWP_DRAWFRAME | SWP_NOZORDER );
hb_gt_wvt_FitSize( pWVT );
hb_wvt_gtSaveGuiState( pWVT );
break;
}
case HB_GTI_RESIZABLE:
pInfo->pResult = hb_itemPutL( pInfo->pResult, pWVT->bResizable );
if( pInfo->pNewVal )
@@ -3471,7 +3519,9 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
}
case HB_GTS_WS_MINIMIZED:
#if ! defined( HB_OS_WIN_CE )
SendNotifyMessage( pWVT->hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0 );
#endif
break;
case HB_GTS_WS_MAXIMIZED:
@@ -3496,7 +3546,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
if( pWVT->hWnd )
{
#if ( _WIN32_WINNT >= 0x0500 )
#if ( _WIN32_WINNT >= 0x0500 ) && ! defined( HB_OS_WIN_CE )
if ( s_guiData->pfnLayered )
{
SetWindowLong( pWVT->hWnd,
@@ -3631,6 +3681,12 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
pWVT->bBeginMarked = TRUE;
}
break;
}
case HB_GTI_REFRESH:
{
if( pWVT->hWnd )
InvalidateRect( pWVT->hWnd, NULL, FALSE );
}
default:
return HB_GTSUPER_INFO( pGT, iType, pInfo );
@@ -3817,7 +3873,7 @@ static void hb_gt_wvt_Redraw( PHB_GT pGT, int iRow, int iCol, int iSize )
if( pWVT->hWnd )
{
RECT rect;
//hb_ToOutDebug( "hb_gt_wvt_Redraw( PHB_GT pGT, iRow=%i, iCol=%i, iSize=%i)", iRow,iCol, iSize );
rect.top = rect.bottom = ( SHORT ) iRow;
rect.left = ( SHORT ) iCol;
rect.right = ( SHORT ) ( iCol + iSize - 1 );
@@ -4055,7 +4111,11 @@ static void hb_wvt_gtLoadGuiData( void )
s_guiData->penGray = CreatePen( PS_SOLID, 0, ( COLORREF ) RGB( 198,198,198 ) );
s_guiData->penNull = CreatePen( PS_NULL , 0, ( COLORREF ) RGB( 198,198,198 ) );
#if ! defined( HB_OS_WIN_CE )
s_guiData->diagonalBrush = CreateHatchBrush( HS_DIAGCROSS, RGB( 210,210,210 ) );
#else
s_guiData->diagonalBrush = CreateSolidBrush( RGB( 210,210,210 ) );
#endif
s_guiData->solidBrush = CreateSolidBrush( RGB( 0,0,0 ) );
s_guiData->whiteBrush = CreateSolidBrush( RGB( 198,198,198 ) );
@@ -4114,7 +4174,7 @@ static void hb_wvt_gtReleaseGuiData( void )
FreeLibrary( s_guiData->hUser32 );
s_guiData->hUser32 = NULL;
}
#if ! defined( HB_OS_WIN_CE )
for( i = 0; i < WVT_PICTURES_MAX; i++ )
{
if( s_guiData->iPicture[ i ] )
@@ -4123,7 +4183,7 @@ static void hb_wvt_gtReleaseGuiData( void )
s_guiData->iPicture[ i ] = NULL;
}
}
#endif
for( i = 0; i < WVT_FONTS_MAX; i++ )
{
if( s_guiData->hUserFonts[ i ] )
@@ -4148,7 +4208,6 @@ static void hb_wvt_gtReleaseGuiData( void )
static void hb_wvt_gtCreateObjects( PHB_GTWVT pWVT )
{
LOGBRUSH lb;
int iIndex;
pWVT->bDeferPaint = FALSE;
@@ -4156,11 +4215,17 @@ static void hb_wvt_gtCreateObjects( PHB_GTWVT pWVT )
pWVT->currentPen = CreatePen( PS_SOLID, 0, ( COLORREF ) RGB( 0, 0, 0 ) );
//
lb.lbStyle = BS_NULL;
lb.lbColor = RGB( 198,198,198 );
lb.lbHatch = 0;
pWVT->currentBrush = CreateBrushIndirect( &lb );
#if ! defined( HB_OS_WIN_CE )
{
LOGBRUSH lb;
lb.lbStyle = BS_NULL;
lb.lbColor = RGB( 198,198,198 );
lb.lbHatch = 0;
pWVT->currentBrush = CreateBrushIndirect( &lb );
}
#else
pWVT->currentBrush = GetStockObject( NULL_BRUSH );
#endif
/* GUI members of global structure */
pWVT->LastMenuEvent = 0;
pWVT->MenuKeyEvent = 1024;
@@ -4194,6 +4259,7 @@ static void hb_wvt_gtCreateObjects( PHB_GTWVT pWVT )
}
pWVT->bGui = FALSE;
pWVT->bPaint = FALSE;
pWVT->bGetFocus = FALSE;
pWVT->bSetFocus = FALSE;
@@ -4203,14 +4269,13 @@ static void hb_wvt_gtCreateObjects( PHB_GTWVT pWVT )
static void hb_wvt_gtExitGui( PHB_GTWVT pWVT )
{
int i;
HMENU hMenu;
hMenu = GetMenu( pWVT->hWnd );
#if ! defined( HB_OS_WIN_CE )
HMENU hMenu = GetMenu( pWVT->hWnd );
if( hMenu )
{
DestroyMenu( hMenu );
}
#endif
for( i = 0; i < WVT_DLGML_MAX; i++ )
{
if( pWVT->hDlgModeless[ i ] )
@@ -4259,9 +4324,7 @@ static void hb_wvt_gtInitGui( PHB_GTWVT pWVT )
pWVT->iGuiHeight = pWVT->ROWS * pWVT->PTEXTSIZE.y;
if( pWVT->hGuiDC )
{
DeleteDC( pWVT->hGuiDC );
}
pWVT->hGuiDC = CreateCompatibleDC( pWVT->hdc );
if( pWVT->hGuiBmp )
@@ -4277,43 +4340,29 @@ static void hb_wvt_gtInitGui( PHB_GTWVT pWVT )
static void hb_wvt_gtRestGuiState( PHB_GTWVT pWVT, LPRECT rect )
{
if( pWVT->bGui )
{
BitBlt( pWVT->hdc, rect->left, rect->top,
rect->right - rect->left, rect->bottom - rect->top,
pWVT->hGuiDC, rect->left, rect->top, SRCCOPY );
}
BitBlt( pWVT->hdc, rect->left, rect->top,
rect->right - rect->left, rect->bottom - rect->top,
pWVT->hGuiDC, rect->left, rect->top, SRCCOPY );
}
static void hb_wvt_gtSaveGuiState( PHB_GTWVT pWVT )
{
if( pWVT->bGui )
{
RECT rc = { 0, 0, 0, 0 };
RECT rc = { 0, 0, 0, 0 };
GetClientRect( pWVT->hWnd, &rc );
GetClientRect( pWVT->hWnd, &rc );
pWVT->iGuiWidth = rc.right - rc.left;
pWVT->iGuiHeight = rc.bottom - rc.top;
pWVT->iGuiWidth = rc.right - rc.left;
pWVT->iGuiHeight = rc.bottom - rc.top;
if( pWVT->hGuiDC )
{
DeleteDC( pWVT->hGuiDC );
}
pWVT->hGuiDC = CreateCompatibleDC( pWVT->hdc );
if( pWVT->hGuiBmp )
DeleteObject( pWVT->hGuiBmp );
pWVT->hGuiBmp = CreateCompatibleBitmap( pWVT->hdc, pWVT->iGuiWidth, pWVT->iGuiHeight );
SelectObject( pWVT->hGuiDC, pWVT->hGuiBmp );
if( pWVT->hGuiBmp )
{
DeleteObject( pWVT->hGuiBmp );
}
pWVT->hGuiBmp = CreateCompatibleBitmap( pWVT->hdc, pWVT->iGuiWidth, pWVT->iGuiHeight );
SelectObject( pWVT->hGuiDC, pWVT->hGuiBmp );
BitBlt( pWVT->hGuiDC, 0, 0, pWVT->iGuiWidth, pWVT->iGuiHeight, pWVT->hdc, 0, 0, SRCCOPY );
BitBlt( pWVT->hGuiDC, 0, 0, pWVT->iGuiWidth, pWVT->iGuiHeight, pWVT->hdc, 0, 0, SRCCOPY );
SetTextCharacterExtra( pWVT->hGuiDC,0 );
SelectObject( pWVT->hGuiDC, pWVT->hFont );
}
SetTextCharacterExtra( pWVT->hGuiDC,0 );
SelectObject( pWVT->hGuiDC, pWVT->hFont );
}
static void hb_wvt_gtHandleMenuSelection( PHB_GTWVT pWVT, int menuIndex )

View File

@@ -75,7 +75,9 @@
#include <commctrl.h>
#include <ole2.h>
#include <oleauto.h>
#if ! defined( HB_OS_WIN_CE )
#include <olectl.h>
#endif
#include <commdlg.h>
#include <shlobj.h>
@@ -217,9 +219,11 @@ HB_EXTERN_BEGIN
#ifdef __cplusplus
extern "C" { STDAPI OleLoadPicture(LPSTREAM,LONG,BOOL,REFIID,PVOID*); }
#else
#if ! defined( HB_OS_WIN_CE )
STDAPI OleLoadPicture(LPSTREAM,LONG,BOOL,REFIID,PVOID*);
#endif
#endif
#endif
#endif /* __BORLANDC__ */
//-------------------------------------------------------------------//
@@ -253,23 +257,56 @@ typedef struct
#define GOBJ_OBJTYPE_BOXGET 3
#define GOBJ_OBJTYPE_BOXGROUP 4
#define GOBJ_OBJTYPE_BOXGROUPRAISED 5
#define GOBJ_OBJTYPE_PICTURE 6
#define GOBJ_OBJTYPE_LINE 7
#define GOBJ_OBJTYPE_LINEEX 8
#define GOBJ_OBJTYPE_LABEL 9
#define GOBJ_OBJTYPE_LABELEX 10
#define GOBJ_OBJTYPE_OUTLINE 11
#define GOBJ_OBJTYPE_ELLIPSE 12
#define GOBJ_OBJTYPE_RECTANGLE 13
#define GOBJ_OBJTYPE_ROUNDRECT 14
#define GOBJ_OBJTYPE_COLORRECT 15
#define GOBJ_OBJTYPE_SHADEDRECT 16
#define GOBJ_OBJTYPE_TEXTBOX 17
#define GOBJ_OBJTYPE_OUTLINEEX 18
typedef struct _tag_GOBJS
{
int iObjType ;
int iTop ;
int iLeft ;
int iBottom ;
int iRight ;
int iHeight ;
int iWidth ; // iThick
int iOrient ;
int iFormat ;
int iStyle ; // iShape
HB_GOBJ_OFFSET aOffset ;
COLORREF crRGB ;
int iObjType ;
int iHandle ;
int iState ;
int iTop ;
int iLeft ;
int iBottom ;
int iRight ;
HB_GOBJ_OFFSET aOffset ;
int iHeight ;
int iWidth ; // iThick
int iOrient ;
int iAlign ;
int iAlignVert ;
int iFormat ;
int iStyle ; // iShape
int iData ; // iSlot, etc
COLORREF crRGB ;
COLORREF crRGBText ;
COLORREF crRGBBk ;
HFONT hFont ;
HPEN hPen ;
HBRUSH hBrush ;
#if ! defined( HB_OS_WIN_CE )
IPicture * iPicture ;
#endif
BOOL bDestroyFont ;
BOOL bDestroyPen ;
BOOL bDestroyBrush ;
BOOL bDestroyPicture ;
TRIVERTEX vert[ 2 ] ;
LPTSTR lpText ;
struct _tag_GOBJS * gObjNext ;
} HB_GOBJS, * PHB_GOBJS ;
} HB_GOBJS, * PHB_GOBJS ;
typedef struct
{
@@ -297,7 +334,9 @@ typedef struct
HBRUSH diagonalBrush; // Handle to diaoganl brush to draw scrollbars
HBRUSH solidBrush; // Handle to solid brush
HBRUSH whiteBrush; // Wvt specific White colored brush
#if ! defined( HB_OS_WIN_CE )
IPicture *iPicture[ WVT_PICTURES_MAX ]; // Array to hold the Picture Streams to avoid recurring loading and unloading
#endif
HFONT hUserFonts[ WVT_FONTS_MAX ] ; // User defined font handles
HPEN hUserPens[ WVT_PENS_MAX ]; // User defined pens
HINSTANCE hMSImg32; // Handle to the loaded library msimg32.dll
@@ -397,6 +436,7 @@ typedef struct
HDC hdc; // Handle to Windows Device Context
HDC hCompDC; // Compatible DC to _s.hdc
HDC hWndDC;
int LastMenuEvent; // Last menu item selected
int MenuKeyEvent; // User definable event number for windows menu command
@@ -451,6 +491,8 @@ typedef struct
PHB_GOBJS gObjs; // Graphic Objects
HWND hWndParent; // Parent Window Handle, if any
} HB_GTWVT, * PHB_GTWVT;
//----------------------------------------------------------------------//
@@ -559,11 +601,21 @@ typedef struct _tag_HB_GT_COLDEF
# define SC_MAXIMIZE 0xF030
#endif
#if defined( HB_OS_WIN_CE )
BOOL SetMenu( HWND hWnd, HMENU hMenu );
HMENU GetMenu( HWND hWnd );
#define LR_LOADMAP3DCOLORS 0
#define SWP_NOREDRAW 0
#endif
POINT HB_EXPORT hb_wvt_gtGetXYFromColRow( USHORT col, USHORT row );
#if ! defined( HB_OS_WIN_CE )
IPicture HB_EXPORT * hb_wvt_gtLoadPicture( char * image );
IPicture HB_EXPORT * hb_wvt_gtLoadPictureFromResource( LPCSTR cResource, LPCSTR cSection );
BOOL HB_EXPORT hb_wvt_gtRenderPicture( int x1, int y1, int wd, int ht, IPicture * iPicture );
BOOL HB_EXPORT hb_wvt_gtDestroyPicture( IPicture * iPicture );
#endif
BOOL HB_EXPORT hb_wvt_DrawImage( HDC hdc, int x1, int y1, int wd, int ht, char * image );
LPWORD HB_EXPORT lpwAlign( LPWORD lpIn );
@@ -578,7 +630,8 @@ PHB_GTWVT HB_EXPORT hb_wvt_gtGetWVT( void );
void HB_EXPORT hb_ToOutDebug( const char * sTraceMsg, ... );
void hb_gt_wvt_PaintGObjects( PHB_GTWVT pWVT, RECT *uRect );
void HB_EXPORT hb_gt_wvt_PaintGObjects( PHB_GTWVT pWVT, RECT *uRect );
//----------------------------------------------------------------------//
extern BOOL wvt_Array2Rect(PHB_ITEM aRect, RECT *rc );

View File

@@ -82,6 +82,8 @@
#define HB_GTI_SETFOCUS 75
#define HB_GTI_DEFERPAINT 76
#define HB_GTI_ACTIVATESELECTCOPY 77
#define HB_GTI_SETPOSANDSIZE 78
#define HB_GTI_REFRESH 79
/* Presentation Parameters | HB_GTI_PRESPARAMS */
#define HB_GTI_PP_EXSTYLE 1
@@ -140,6 +142,25 @@
#define HB_GTI_GUI 1001
/* Constants to manage CUI-GUI objects */
#define GOBJ_OBJSTATE_ENABLED 1
#define GOBJ_OBJSTATE_DISABLED 2
#define GOBJ_OBJSTATE_HIDDEN 3
#define GOBJ_OBJSTATE_HILIGHTED 4
#define GOBJ_OBJDATA_TEXT 1
#define GOBJ_OBJDATA_PICTURE 2
#define GOBJ_OBJDATA_HFONT 3
#define GOBJ_OBJDATA_HPEN 4
#define GOBJ_OBJDATA_HBRUSH 5
#define GOBJ_OBJDATA_COLORTEXT 6
#define GOBJ_OBJDATA_COLORBK 7
#define GOBJ_OBJDATA_IMAGE 8
#define GOBJ_IMAGESOURCE_SLOT 1
#define GOBJ_IMAGESOURCE_RESOURCE 2
#define GOBJ_IMAGESOURCE_FILE 3
/*----------------------------------------------------------------------*/
#endif /* _HBGTWVG_CH */

View File

@@ -172,7 +172,9 @@ PROCEDURE Main()
CLS
Wvt_ShowWindow( SW_RESTORE )
//smain()
// EditMemo()
// smain()
SetKey( K_F12 , {|| hb_gtInfo( HB_GTI_ACTIVATESELECTCOPY ) } )
SetKey( K_CTRL_V , {|| __KeyBoard( hb_gtInfo( HB_GTI_CLIPBOARDDATA ) ) } )
@@ -774,14 +776,18 @@ FUNCTION WvtMyBrowse_X( oCrt )
LOCAL nRow := row()
LOCAL nCol := col()
LOCAL cColor := SetColor( "N/W*,N/GR*,,,N/W*" )
LOCAL cScr := SaveScreen( 0,0,maxrow(),maxcol() )
LOCAL aObjects:= WvtSetObjects( {} )
LOCAL hPopup := Wvt_SetPopupMenu()
LOCAL stru_:={}, cFileIndex, cFileDbf, cRDD, nIndex, oTBar
LOCAL cScr
STATIC nStyle := 0
THREAD STATIC nFactor := 200
IF oCrt == NIL
cScr := SaveScreen( 0,0,maxrow(),maxcol() )
ENDIF
BrwBuildMenu( oCrt )
oTBar := ActiveXBuildToolBar( oCrt )
@@ -908,7 +914,9 @@ FUNCTION WvtMyBrowse_X( oCrt )
SetCursor( nCursor )
DBCloseArea()
RestScreen( 0, 0, maxrow(), maxcol(), cScr )
IF oCrt == NIL
RestScreen( 0, 0, maxrow(), maxcol(), cScr )
ENDIF
Wvt_setPopupMenu( hPopup )
s_pGT_[ 2 ] := NIL
@@ -3437,7 +3445,7 @@ STATIC FUNCTION ExeFontDialog( oCrt )
#if 1
// Every 2nd FontDialog will be MODAL
oWvgFont := oFontDlg:display( ++nMode % 2 )
hb_ToOutDebug( '%s %i', oWvgFont:compoundName, oWvgFont:nominalPointSize )
// hb_ToOutDebug( '%s %i', oWvgFont:compoundName, oWvgFont:nominalPointSize )
#endif
oFontDlg:destroy()
@@ -3861,6 +3869,7 @@ PROCEDURE ExecGCUI()
IF hb_mtvm()
Hb_ThreadStart( {|oCrt| oCrt := WvgCrt():New( , , { 2,4 }, { 20,81 }, , .t. ) , ;
oCrt:icon := "dia_excl.ico",;
oCrt:create(), ;
GCUIConsole( oCrt ) , ;
oCrt:destroy() } )
@@ -3872,67 +3881,79 @@ PROCEDURE ExecGCUI()
#xTranslate Alert( => MyAlert(
PROCEDURE GCUIConsole( oCrt )
LOCAL dDate := ctod( "" )
LOCAL cName := Space( 35 )
LOCAL cAdd1 := Space( 35 )
LOCAL cAdd2 := Space( 35 )
LOCAL cAdd3 := Space( 35 )
LOCAL nSlry := 0
LOCAL dDate := date()
LOCAL cName := pad( 'Some Usefule Name' , 35 )
LOCAL cAdd1 := pad( 'Linda Goldman Avenue', 35 )
LOCAL cAdd2 := pad( 'Excellent Street' , 35 )
LOCAL cAdd3 := pad( 'Suit #415' , 35 )
LOCAL nSlry := 9000
LOCAL nColGet := 8
LOCAL GetList := {}
LOCAL cLabel := "VOUCH, that GROWS with you"
LOCAL oTab, oStat
LOCAL oTab, oStat, hBoxR, hTxt
SET SCOREBOARD OFF
SetColor( "N/W,N/GR*,,,N/W*" )
CLS
hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified GUI Console" )
hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified yet Powerful CUI-GUI Console!" )
oTab := WvgTabPage():New( oCrt, , { 430, 9 }, { 210, 301 }, , .t. )
oTab:caption := 'First'
oTab:minimized := .f.
oTab:create()
oTab:tabActivate := {|mp1,mp2,oTab| oTab:Show() }
oStat := WvgStatic():New( oTab, , { 10, 30 }, { 190, 50 }, , .t. )
oStat:type := WVGSTATIC_TYPE_TEXT
oStat:options := WVGSTATIC_TEXT_CENTER
oStat:caption := 'This is first caption'
oStat:create()
oStat:setColorBG( RGB( 240, 255, 0 ) )
@ MaxRow(), 0 SAY PadC( "GTWVG Simplified GUI Console", maxcol()+1 ) COLOR "W+/B*"
@ MaxRow(), 0 SAY PadC( "Navigate the Gets", maxcol()+1 ) COLOR "W+/B"
@ 2, nColGet SAY "< Date >"
@ 5, nColGet SAY "<" + PadC( "Name" , 33 ) + ">"
@ 8, nColGet SAY "<" + PadC( "Address", 33 ) + ">"
@ 15, nColGet SAY "< Salary >"
@ 3, nColGet GET dDate Valid {|| Alert( 'How did you like the "Alert" replacement?', { 'WOW','OK','OOps'} ) == 1 }
@ 6, nColGet GET cName Valid {|| oTab:hide(), .t. }
@ 9, nColGet GET cAdd1 Valid {|| oTab:show(), .t. }
@ 11, nColGet GET cAdd2 Valid {|| oTab:hide(), .t. }
@ 13, nColGet GET cAdd3 Valid {|| oTab:show(), .t. }
@ 16, nColGet GET nSlry PICTURE "@Z 9999999.99"
@ 3, nColGet GET dDate ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 1 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,0 ) ), .t. }
@ 6, nColGet GET cName ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 2 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,0 ) ), ;
Wvg_SetGObjState( hBoxR, 3 ), .t. }
@ 9, nColGet GET cAdd1 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 3 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,255 ) ), .t. }
@ 11, nColGet GET cAdd2 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 4 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,255 ) ), ;
Wvg_SetGObjState( hBoxR, 1 ), .t. }
@ 13, nColGet GET cAdd3 ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 198,21,140 ) ), .t. }
@ 16, nColGet GET nSlry PICTURE "@Z 9999999.99" ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 0,0,0 ) ), .t. }
// The only additional calls to render your console GUI
//
// The GETLIST : This can be embedded via @ GET preprocessor command
aEval( GetList, {|oGet| Wvg_BoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } )
//
Wvg_BoxRaised( 1, 2, 18, 49, { -5,-5,5,5 } )
hBoxR := Wvg_BoxRaised( 1,2,18,49, {-5,-5,5,5} )
//
Wvg_BoxRecessed( 1, 2, 18, 49 )
Wvg_BoxRecessed( 1,2,18,49 )
//
// Wvg_BoxGroup( 2, 4, 17, 47 )
// Wvg_BoxGroup( 2,4,17,47 )
//
Wvg_BoxGroupRaised( 2, 4, 17, 47, { -7,-7,7,7 } )
Wvg_BoxGroupRaised( 2,4,17,47, {-7,-7,7,7} )
//
hTxt := Wvg_TextBox( 3,57,16,75, {10,10,-10,-10}, 'This is first TextBox Line!', 2, 2 )
//
Wvg_Image( 15,36,16,42, {-3,-3,3,3}, GOBJ_IMAGESOURCE_FILE, 'Vouch1.bmp' )
Wvg_BoxRaised( 15,36,16,42,{-2,-2,2,2} )
//
Wvg_ShadedRect( 1,54,18,79, { -5,-5,5,5 }, 0, {65000,21000,7000,56000}, {255,32255,16000,32500} )
//
Wvg_BoxRaised( 1,54,18,79, {-5,-5,5,5} )
// Instruct GT to Repaint the Screen with GUI elements.
Wvt_InvalidateRect( 0, 0, maxrow(), maxcol() )
oCrt:refresh()
// Issue the read
READ
Alert( 'How did you like the "Alert" replacement?', { 'WOW','OK','OOps'} )
RETURN
/*----------------------------------------------------------------------*/
#xUntranslate alert( =>
@@ -3940,7 +3961,7 @@ PROCEDURE GCUIConsole( oCrt )
FUNCTION MyAlert( cMsg, aOpt )
LOCAL nSel, oCrt
oCrt := WvgCrt():New( , , { -1,-1 }, { 9, MaxCol()-4 }, , .t. )
oCrt := WvgCrt():New( , , { -1,-1 }, { 9, MaxCol()-6 }, , .t. )
oCrt:lModal := .t.
oCrt:icon := "dia_excl.ico"
oCrt:create()
@@ -3958,4 +3979,82 @@ FUNCTION MyAlert( cMsg, aOpt )
#xTranslate Alert( => MyAlert(
/*----------------------------------------------------------------------*/
STATIC FUNCTION FetchText( nMode )
LOCAL cText
DO CASE
CASE nMode == 1
cText := 'Do you know Harbour is gaining a popularity what Clipper enjoyed at one time! '
cText += 'Enjoy it.'
CASE nMode == 2
cText := 'Do you know Harbour can host pure console, cui+gui console, pure gui consoles applications? '
cText += 'This demonstration is a proof of that.'
CASE nMode == 3
cText := 'Do you know Harbour is a multi-gt, multi-window, multi-thread compiler far superior than others in the market! '
cText += 'And is FREE.'
CASE nMode == 4
cText := 'Enjoy and contribute to the project any way you can. Develop, Debug, Support, and spread a word of mouth!'
ENDCASE
RETURN cText
/*----------------------------------------------------------------------*/
#if 0
#include 'memoedit.ch'
#include 'setcurs.ch'
#include 'inkey.ch'
Function Editmemo()
Local cText := 'This is initial text'
Local lEditMode := .f.
DO WHILE .T.
cText := MEMOEDIT( cText, 3,6,20,76, lEditMode, "EditFunc", 50 )
if lastkey() == 27
exit
endif
ENDDO
Return nil
//----------------------------------------------------------------------//
Function EditFunc( nMode, nRow, nCol )
Local nKey := Lastkey()
STATIC nLoop := 0
nLoop++
DO CASE
CASE nMode == ME_INIT
DO CASE
CASE nLoop == 1 // Set insert mode
SetCursor( SC_SPECIAL1 )
hb_ToOutDebug( 'nLoop %i %s', nLoop, 'ME_INIT:K_INS' )
RETURN K_INS
OTHERWISE
hb_ToOutDebug( 'nLoop %i %s', nLoop, 'ME_INIT:OTHERWISE' )
RETURN ME_DEFAULT
ENDCASE
CASE nMode == ME_IDLE
hb_ToOutDebug( 'nLoop %i %s', nLoop, 'ME_IDLE' )
OTHERWISE
IF nKey == K_INS
IF ReadInsert()
SetCursor(SC_NORMAL)
ELSE
SetCursor(SC_SPECIAL1)
ENDIF
ENDIF
hb_ToOutDebug( 'nLoop %i %s %i %i', nLoop, 'OTHERWISE', nKey, nMode )
ENDCASE
RETURN ME_DEFAULT
#endif
//----------------------------------------------------------------------//

View File

@@ -80,6 +80,8 @@
#include "gtwvg.h"
#define __SETGUI__
static void hb_wvt_DrawBoxRaised ( HDC hdc, int iTop, int iLeft, int iBottom, int iRight );
static void hb_wvt_DrawBoxRecessed ( HDC hdc, int iTop, int iLeft, int iBottom, int iRight );
static void hb_wvt_DrawOutline ( HDC hdc, int iTop, int iLeft, int iBottom, int iRight );
@@ -147,6 +149,7 @@ void hb_wvt_PutStringAttrib( USHORT top, USHORT left, USHORT bottom, USHORT righ
//
// Courtesy - Augusto Infante - Thanks
//
#if ! defined( HB_OS_WIN_CE )
IPicture * hb_wvt_gtLoadPictureFromResource( LPCSTR cResource, LPCSTR cSection )
{
HRSRC res = 0;
@@ -333,7 +336,7 @@ BOOL hb_wvt_gtDestroyPicture( IPicture * iPicture )
return bResult;
}
#endif //#if ! defined( HB_OS_WIN_CE )
//-------------------------------------------------------------------//
POINT hb_wvt_gtGetXYFromColRow( USHORT col, USHORT row )
@@ -442,8 +445,11 @@ BOOL CALLBACK hb_wvt_gtDlgProcMLess( HWND hDlg, UINT message, WPARAM wParam, LPA
DestroyWindow( hDlg );
lReturn = 0;
break;
#if ! defined( HB_OS_WIN_CE )
case WM_NCDESTROY:
#else
case WM_DESTROY:
#endif
if ( _s->pFunc[ iIndex ] != NULL && _s->iType[ iIndex ] == 2 )
{
hb_itemRelease( ( PHB_ITEM ) _s->pFunc[ iIndex ] );
@@ -557,7 +563,11 @@ BOOL CALLBACK hb_wvt_gtDlgProcModal( HWND hDlg, UINT message, WPARAM wParam, LPA
lReturn = 0;
break;
#if ! defined( HB_OS_WIN_CE )
case WM_NCDESTROY:
#else
case WM_DESTROY:
#endif
if ( _s->pFuncModal[ iIndex ] != NULL && _s->iTypeModal[ iIndex ] == 2 )
{
hb_itemRelease( ( PHB_ITEM ) _s->pFuncModal[ iIndex ] );
@@ -576,6 +586,7 @@ BOOL CALLBACK hb_wvt_gtDlgProcModal( HWND hDlg, UINT message, WPARAM wParam, LPA
BOOL hb_wvt_DrawImage( HDC hdc, int x1, int y1, int wd, int ht, char * image )
{
#if ! defined( HB_OS_WIN_CE )
HGLOBAL hGlobal;
HANDLE hFile;
DWORD nFileSize;
@@ -672,6 +683,9 @@ BOOL hb_wvt_DrawImage( HDC hdc, int x1, int y1, int wd, int ht, char * image )
CloseHandle( hFile );
}
return( bResult );
#else
return( FALSE );
#endif
}
//-------------------------------------------------------------------//
@@ -887,7 +901,7 @@ static void hb_wvt_DrawToolButtonUp( HDC hdc, int iTop, int iLeft, int iBottom,
LineTo( hdc, iRight, iTop );
}
//-------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
static void hb_wvt_DrawToolButtonDown( HDC hdc, int iTop, int iLeft, int iBottom, int iRight )
{
@@ -910,6 +924,8 @@ static void hb_wvt_DrawToolButtonDown( HDC hdc, int iTop, int iLeft, int iBottom
LineTo( hdc, iRight, iTop );
}
/*----------------------------------------------------------------------*/
static COLORREF hb_wvt_BgColorParam( int iParam )
{
PHB_GTWVT _s = hb_wvt_gtGetWVT();
@@ -929,6 +945,8 @@ static COLORREF hb_wvt_BgColorParam( int iParam )
return color;
}
/*----------------------------------------------------------------------*/
static COLORREF hb_wvt_FgColorParam( int iParam )
{
PHB_GTWVT _s = hb_wvt_gtGetWVT();
@@ -948,7 +966,7 @@ static COLORREF hb_wvt_FgColorParam( int iParam )
return color;
}
//-------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
//
// Wvt_SetPen( nPenStyle, nWidth, nColor )
//
@@ -987,7 +1005,7 @@ HB_FUNC( WVT_SETPEN )
}
}
//-------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
//
// Wvt_SetBrush( nStyle, nColor, [ nHatch ] )
//
@@ -1006,9 +1024,11 @@ HB_FUNC( WVT_SETBRUSH )
lb.lbStyle = hb_parnl( 1 );
lb.lbColor = ISNIL( 2 ) ? RGB( 0,0,0 ) : ( COLORREF ) hb_parnl( 2 ) ;
lb.lbHatch = ISNIL( 3 ) ? 0 : hb_parnl( 3 );
#if ! defined( HB_OS_WIN_CE )
hBrush = CreateBrushIndirect( &lb );
#else
hBrush = CreateSolidBrush( lb.lbColor );
#endif
if ( hBrush )
{
if ( _s->currentBrush )
@@ -1025,7 +1045,7 @@ HB_FUNC( WVT_SETBRUSH )
}
}
//-------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
//
// Wvt_DrawBoxGet( nRow, nCol, nWidth )
//
@@ -1040,13 +1060,15 @@ HB_FUNC( WVT_DRAWBOXGET )
yz = hb_wvt_gtGetXYFromColRow( ( USHORT ) ( hb_parni( 2 ) + hb_parni( 3 ) ), ( USHORT ) hb_parni( 1 ) + 1 );
hb_wvt_DrawBoxGet( _s->hdc, xy.y, xy.x, yz.y, yz.x );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxGet( _s->hGuiDC, xy.y, xy.x, yz.y, yz.x );
}
#endif
}
//-------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
//
// Wvt_DrawBoxRaised( nTop, nLeft, nBottom, nRight, aPxlOff )
//
@@ -1060,10 +1082,12 @@ HB_FUNC( WVT_DRAWBOXRAISED )
int iRight = ( _s->PTEXTSIZE.x * ( hb_parni( 4 ) + 1 ) ) - 1 + hb_parni( 5,4 );
hb_wvt_DrawBoxRaised( _s->hdc, iTop-1, iLeft-1, iBottom+1, iRight+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxRaised( _s->hGuiDC, iTop-1, iLeft-1, iBottom+1, iRight+1 );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1080,10 +1104,12 @@ HB_FUNC( WVT_DRAWBOXRECESSED )
int iRight = ( _s->PTEXTSIZE.x * ( hb_parni( 4 ) + 1 ) ) - 1 + hb_parni( 5,4 );
hb_wvt_DrawBoxRecessed( _s->hdc, iTop-1, iLeft-1, iBottom+1, iRight+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxRecessed( _s->hGuiDC, iTop-1, iLeft-1, iBottom+1, iRight+1 );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1100,10 +1126,12 @@ HB_FUNC( WVT_DRAWBOXGROUP )
int iRight = ( _s->PTEXTSIZE.x * ( hb_parni( 4 ) + 1 ) ) - 1 + hb_parni( 5,4 );
hb_wvt_DrawBoxGroup( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxGroup( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1120,10 +1148,12 @@ HB_FUNC( WVT_DRAWBOXGROUPRAISED )
int iRight = ( _s->PTEXTSIZE.x * ( hb_parni( 4 ) + 1 ) ) - 1 + hb_parni( 5,4 );
hb_wvt_DrawBoxGroupRaised( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxGroupRaised( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1132,6 +1162,7 @@ HB_FUNC( WVT_DRAWBOXGROUPRAISED )
//
HB_FUNC( WVT_DRAWIMAGE )
{
#if ! defined( HB_OS_WIN_CE )
PHB_GTWVT _s = hb_wvt_gtGetWVT();
POINT xy = { 0,0 };
@@ -1152,13 +1183,18 @@ HB_FUNC( WVT_DRAWIMAGE )
else
{
hb_wvt_DrawImage( _s->hdc, iLeft, iTop, ( iRight - iLeft ) + 1, ( iBottom - iTop ) + 1, hb_parcx( 5 ) ) ;
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawImage( _s->hGuiDC, iLeft, iTop, ( iRight - iLeft ) + 1, ( iBottom - iTop ) + 1, hb_parcx( 5 ) ) ;
}
#endif
}
hb_retl( TRUE );
#else
hb_retl( FALSE );
#endif
}
//-------------------------------------------------------------------//
@@ -1212,7 +1248,7 @@ HB_FUNC( WVT_DRAWLABEL )
ExtTextOut( _s->hdc, xy.x, xy.y, 0, NULL, text, lstrlen( text ), NULL );
SelectObject( _s->hdc, hOldFont );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SetBkColor( _s->hGuiDC, bgClr );
@@ -1224,6 +1260,7 @@ HB_FUNC( WVT_DRAWLABEL )
ExtTextOut( _s->hGuiDC, xy.x, xy.y, 0, NULL, text, lstrlen( text ), NULL );
SelectObject( _s->hGuiDC, hOldFontGui );
}
#endif
HB_TCHAR_FREE( text );
DeleteObject( hFont );
hb_retl( TRUE );
@@ -1268,6 +1305,7 @@ HB_FUNC( WVT_DRAWOUTLINE )
}
hb_wvt_DrawOutline( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
if ( hPen )
@@ -1280,6 +1318,7 @@ HB_FUNC( WVT_DRAWOUTLINE )
hb_wvt_DrawOutline( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
}
#endif
if ( hPen )
{
@@ -1381,7 +1420,7 @@ HB_FUNC( WVT_DRAWLINE )
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x, y+1, NULL );
LineTo( _s->hdc, iRight, y+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->penWhite );
@@ -1391,6 +1430,7 @@ HB_FUNC( WVT_DRAWLINE )
MoveToEx( _s->hGuiDC, x, y+1, NULL );
LineTo( _s->hGuiDC, iRight, y+1 );
}
#endif
}
else // Vertical
{
@@ -1400,6 +1440,7 @@ HB_FUNC( WVT_DRAWLINE )
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x+1, y, NULL );
LineTo( _s->hdc, x+1, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->penWhite );
@@ -1409,6 +1450,7 @@ HB_FUNC( WVT_DRAWLINE )
MoveToEx( _s->hGuiDC, x+1, y, NULL );
LineTo( _s->hGuiDC, x+1, iBottom );
}
#endif
}
}
break;
@@ -1423,6 +1465,7 @@ HB_FUNC( WVT_DRAWLINE )
SelectObject( _s->hdc, _s->pGUI->penWhite );
MoveToEx( _s->hdc, x, y+1, NULL );
LineTo( _s->hdc, iRight, y+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
@@ -1432,6 +1475,7 @@ HB_FUNC( WVT_DRAWLINE )
MoveToEx( _s->hGuiDC, x, y+1, NULL );
LineTo( _s->hGuiDC, iRight, y+1 );
}
#endif
}
else // Vertical
{
@@ -1441,6 +1485,7 @@ HB_FUNC( WVT_DRAWLINE )
SelectObject( _s->hdc, _s->pGUI->penWhite );
MoveToEx( _s->hdc, x+1, y, NULL );
LineTo( _s->hdc, x+1, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
@@ -1450,6 +1495,7 @@ HB_FUNC( WVT_DRAWLINE )
MoveToEx( _s->hGuiDC, x+1, y, NULL );
LineTo( _s->hGuiDC, x+1, iBottom );
}
#endif
}
}
break;
@@ -1461,24 +1507,28 @@ HB_FUNC( WVT_DRAWLINE )
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x, y, NULL );
LineTo( _s->hdc, iRight, y );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
MoveToEx( _s->hGuiDC, x, y, NULL );
LineTo( _s->hGuiDC, iRight, y );
}
#endif
}
else // Vertical
{
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x, y, NULL );
LineTo( _s->hdc, x, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
MoveToEx( _s->hGuiDC, x, y, NULL );
LineTo( _s->hGuiDC, x, iBottom );
}
#endif
}
}
break;
@@ -1511,10 +1561,12 @@ HB_FUNC( WVT_DRAWELLIPSE )
SelectObject( _s->hdc, _s->currentPen );
hb_retl( Ellipse( _s->hdc, iLeft, iTop, iRight, iBottom ) );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_retl( Ellipse( _s->hGuiDC, iLeft, iTop, iRight, iBottom ) );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1534,10 +1586,12 @@ HB_FUNC( WVT_DRAWRECTANGLE )
SelectObject( _s->hdc, _s->currentPen );
hb_retl( Rectangle( _s->hdc, iLeft, iTop, iRight, iBottom ) );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_retl( Rectangle( _s->hGuiDC, iLeft, iTop, iRight, iBottom ) );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1561,10 +1615,12 @@ HB_FUNC( WVT_DRAWROUNDRECT )
SelectObject( _s->hdc, _s->currentPen );
hb_retl( RoundRect( _s->hdc, iLeft, iTop, iRight, iBottom, iWd, iHt ) );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_retl( RoundRect( _s->hGuiDC, iLeft, iTop, iRight, iBottom, iWd, iHt ) );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1587,10 +1643,12 @@ HB_FUNC( WVT_DRAWFOCUSRECT )
rc.bottom = iBottom;
hb_retl( DrawFocusRect( _s->hdc, &rc ) );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_retl( DrawFocusRect( _s->hGuiDC, &rc ) );
}
#endif
}
//-------------------------------------------------------------------//
@@ -1618,11 +1676,12 @@ HB_FUNC( WVT_DRAWCOLORRECT )
rc.bottom = iBottom;
hb_retl( FillRect( _s->hdc, &rc, hBrush ) );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_retl( FillRect( _s->hGuiDC, &rc, hBrush ) );
}
#endif
DeleteObject( hBrush );
}
}
@@ -1657,7 +1716,7 @@ HB_FUNC( WVT_DRAWGRIDHORZ )
iAtRow++;
}
#if defined(__SETGUI__)
if ( _s->bGui )
{
iAtRow = hb_parni( 1 );
@@ -1674,6 +1733,7 @@ HB_FUNC( WVT_DRAWGRIDHORZ )
iAtRow++;
}
}
#endif
hb_retl( TRUE );
}
@@ -1711,7 +1771,7 @@ HB_FUNC( WVT_DRAWGRIDVERT )
MoveToEx( _s->hdc, x, iTop, NULL );
LineTo( _s->hdc, x, iBottom );
}
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->currentPen );
@@ -1723,7 +1783,7 @@ HB_FUNC( WVT_DRAWGRIDVERT )
LineTo( _s->hGuiDC, x, iBottom );
}
}
#endif
hb_retl( TRUE );
}
@@ -1742,10 +1802,8 @@ HB_FUNC( WVT_DRAWBUTTON )
int iTop, iLeft, iBottom, iRight;
int iAlign;
int iTextHeight /*, iTextWidth */ ;
int iImageWidth, iImageHeight;
LOGBRUSH lb = { 0,0,0 };
HBRUSH hBrush;
IPicture *iPicture;
BOOL bText = ISCHAR( 5 );
BOOL bImage = !( ISNIL( 6 ) );
@@ -1764,19 +1822,23 @@ HB_FUNC( WVT_DRAWBUTTON )
lb.lbStyle = BS_SOLID;
lb.lbColor = bkColor;
lb.lbHatch = 0;
#if ! defined( HB_OS_WIN_CE )
hBrush = CreateBrushIndirect( &lb );
#else
hBrush = CreateSolidBrush( lb.lbColor );
#endif
rc.left = iLeft ;
rc.top = iTop ;
rc.right = iRight + 1;
rc.bottom = iBottom + 1;
FillRect( _s->hdc, &rc, hBrush );
#if defined(__SETGUI__)
if ( _s->bGui )
{
FillRect( _s->hGuiDC, &rc, hBrush );
}
#endif
DeleteObject( hBrush );
switch ( iFormat )
@@ -1811,10 +1873,11 @@ HB_FUNC( WVT_DRAWBUTTON )
if ( bText )
{
LPTSTR text = HB_TCHAR_CONVTO( hb_parc( 5 ) );
#if ! defined( HB_OS_WIN_CE )
SelectObject( _s->hdc, GetStockObject( DEFAULT_GUI_FONT ) );
//GetTextExtentPoint32( _s->hdc, hb_parcx( 5 ), strlen( hb_parcx( 5 ) ), &sz );
#else
SelectObject( _s->hdc, GetStockObject( OEM_FIXED_FONT ) );
#endif
GetTextExtentPoint32( _s->hdc, text, lstrlen( text ), &sz );
// iTextWidth = sz.cx;
@@ -1847,7 +1910,11 @@ HB_FUNC( WVT_DRAWBUTTON )
ExtTextOut( _s->hdc, xy.x, xy.y, 0, NULL, text, lstrlen( text ), NULL );
if ( _s->bGui )
{
#if ! defined( HB_OS_WIN_CE )
SelectObject( _s->hGuiDC, GetStockObject( DEFAULT_GUI_FONT ) );
#else
SelectObject( _s->hGuiDC, GetStockObject( OEM_FIXED_FONT ) );
#endif
SetTextAlign( _s->hGuiDC, iAlign );
SetBkMode( _s->hGuiDC, TRANSPARENT );
SetTextColor( _s->hGuiDC, textColor );
@@ -1864,12 +1931,13 @@ HB_FUNC( WVT_DRAWBUTTON )
if ( bImage )
{
iImageWidth = ( iRight - iLeft + 1 - 8 );
iImageHeight = ( iBottom - iTop + 1 - 8 - iTextHeight );
#if ! defined( HB_OS_WIN_CE )
int iImageWidth = ( iRight - iLeft + 1 - 8 );
int iImageHeight = ( iBottom - iTop + 1 - 8 - iTextHeight );
if ( ISNUM( 6 ) )
{
iPicture = _s->pGUI->iPicture[ hb_parni( 6 ) - 1 ];
IPicture *iPicture = _s->pGUI->iPicture[ hb_parni( 6 ) - 1 ];
hb_wvt_gtRenderPicture( iLeft+4, iTop+4, iImageWidth, iImageHeight, iPicture );
}
else
@@ -1880,6 +1948,7 @@ HB_FUNC( WVT_DRAWBUTTON )
hb_wvt_DrawImage( _s->hGuiDC, iLeft+4, iTop+4, iImageWidth, iImageHeight, hb_parcx( 6 ) );
}
}
#endif
}
hb_retl( TRUE );
@@ -1961,6 +2030,7 @@ HB_FUNC( WVT_DRAWSTATUSBAR )
//
HB_FUNC( WVT_DRAWPICTURE )
{
#if ! defined( HB_OS_WIN_CE )
PHB_GTWVT _s = hb_wvt_gtGetWVT();
POINT xy = { 0,0 };
@@ -1982,6 +2052,7 @@ HB_FUNC( WVT_DRAWPICTURE )
hb_retl( hb_wvt_gtRenderPicture( iLeft, iTop, iRight - iLeft + 1, iBottom - iTop + 1, _s->pGUI->iPicture[ iSlot ] ) );
}
}
#endif
}
//-------------------------------------------------------------------//
@@ -2012,6 +2083,7 @@ HB_FUNC( WVT_DRAWLABELEX )
//ExtTextOut( _s->hdc, xy.x, xy.y, 0, NULL, hb_parcx( 3 ), strlen( hb_parcx( 3 ) ), NULL );
ExtTextOut( _s->hdc, xy.x, xy.y, 0, NULL, text, lstrlen( text ), NULL );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SetBkColor( _s->hGuiDC, bgClr );
@@ -2022,6 +2094,7 @@ HB_FUNC( WVT_DRAWLABELEX )
//ExtTextOut( _s->hGuiDC, xy.x, xy.y, 0, NULL, hb_parcx( 3 ), strlen( hb_parcx( 3 ) ), NULL );
ExtTextOut( _s->hGuiDC, xy.x, xy.y, 0, NULL, text, lstrlen( text ), NULL );
}
#endif
HB_TCHAR_FREE( text );
hb_retl( TRUE );
}
@@ -2124,6 +2197,7 @@ HB_FUNC( WVT_DRAWLINEEX )
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x, y+1, NULL );
LineTo( _s->hdc, iRight, y+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->penWhite );
@@ -2133,6 +2207,7 @@ HB_FUNC( WVT_DRAWLINEEX )
MoveToEx( _s->hGuiDC, x, y+1, NULL );
LineTo( _s->hGuiDC, iRight, y+1 );
}
#endif
}
else // Vertical
{
@@ -2142,6 +2217,7 @@ HB_FUNC( WVT_DRAWLINEEX )
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x+1, y, NULL );
LineTo( _s->hdc, x+1, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->penWhite );
@@ -2151,6 +2227,7 @@ HB_FUNC( WVT_DRAWLINEEX )
MoveToEx( _s->hGuiDC, x+1, y, NULL );
LineTo( _s->hGuiDC, x+1, iBottom );
}
#endif
}
}
break;
@@ -2165,6 +2242,7 @@ HB_FUNC( WVT_DRAWLINEEX )
SelectObject( _s->hdc, _s->pGUI->penWhite );
MoveToEx( _s->hdc, x, y+1, NULL );
LineTo( _s->hdc, iRight, y+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
@@ -2174,6 +2252,7 @@ HB_FUNC( WVT_DRAWLINEEX )
MoveToEx( _s->hGuiDC, x, y+1, NULL );
LineTo( _s->hGuiDC, iRight, y+1 );
}
#endif
}
else // Vertical
{
@@ -2183,6 +2262,7 @@ HB_FUNC( WVT_DRAWLINEEX )
SelectObject( _s->hdc, _s->pGUI->penWhite );
MoveToEx( _s->hdc, x+1, y, NULL );
LineTo( _s->hdc, x+1, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
@@ -2192,6 +2272,7 @@ HB_FUNC( WVT_DRAWLINEEX )
MoveToEx( _s->hGuiDC, x+1, y, NULL );
LineTo( _s->hGuiDC, x+1, iBottom );
}
#endif
}
}
break;
@@ -2203,24 +2284,28 @@ HB_FUNC( WVT_DRAWLINEEX )
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x, y, NULL );
LineTo( _s->hdc, iRight, y );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
MoveToEx( _s->hGuiDC, x, y, NULL );
LineTo( _s->hGuiDC, iRight, y );
}
#endif
}
else // Vertical
{
SelectObject( _s->hdc, hPen );
MoveToEx( _s->hdc, x, y, NULL );
LineTo( _s->hdc, x, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, hPen );
MoveToEx( _s->hGuiDC, x, y, NULL );
LineTo( _s->hGuiDC, x, iBottom );
}
#endif
}
}
break;
@@ -2258,10 +2343,12 @@ HB_FUNC( WVT_DRAWOUTLINEEX )
}
hb_wvt_DrawOutline( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawOutline( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
#endif
}
//----------------------------------------------------------------------//
@@ -2348,6 +2435,7 @@ HB_FUNC( WVT_DRAWLABELOBJ )
//
//ExtTextOut( _s->hdc, x, y, uiOptions, &rect, hb_parcx( 5 ), strlen( hb_parcx( 5 ) ), NULL );
ExtTextOut( _s->hdc, x, y, uiOptions, &rect, text, lstrlen( text ), NULL );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SetTextColor( _s->hGuiDC, fgClr );
@@ -2358,6 +2446,7 @@ HB_FUNC( WVT_DRAWLABELOBJ )
//ExtTextOut( _s->hGuiDC, x, y, uiOptions, &rect, hb_parcx( 5 ), strlen( hb_parcx( 5 ) ), NULL );
ExtTextOut( _s->hGuiDC, x, y, uiOptions, &rect, text, lstrlen( text ), NULL );
}
#endif
HB_TCHAR_FREE( text );
hb_retl( TRUE );
}
@@ -2380,30 +2469,36 @@ HB_FUNC( WVT_DRAWTOOLBUTTONSTATE )
case 0: // Flat
{
hb_wvt_DrawToolButtonFlat( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawToolButtonFlat( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
#endif
}
break;
case 1: // Raised
{
hb_wvt_DrawToolButtonUp( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawToolButtonUp( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
#endif
}
break;
case 2: // Recessed
{
hb_wvt_DrawToolButtonDown( _s->hdc, iTop, iLeft, iBottom, iRight );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawToolButtonDown( _s->hGuiDC, iTop, iLeft, iBottom, iRight );
}
#endif
}
break;
}
@@ -2436,18 +2531,22 @@ HB_FUNC( WVT_DRAWSCROLLBUTTON )
if ( bDepressed )
{
hb_wvt_DrawBoxRecessed( _s->hdc, iTop+1, iLeft+1, iBottom-2, iRight-2 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxRecessed( _s->hGuiDC, iTop+1, iLeft+1, iBottom-2, iRight-2 );
}
#endif
}
else
{
hb_wvt_DrawBoxRaised( _s->hdc, iTop+1, iLeft+1, iBottom-2, iRight-2 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxRaised( _s->hGuiDC, iTop+1, iLeft+1, iBottom-2, iRight-2 );
}
#endif
}
switch ( hb_parni( 6 ) )
@@ -2507,12 +2606,13 @@ HB_FUNC( WVT_DRAWSCROLLBUTTON )
SelectObject( _s->hdc, _s->pGUI->solidBrush );
Polygon( _s->hdc, Point, 3 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->solidBrush );
Polygon( _s->hGuiDC, Point, 3 );
}
#endif
hb_xfree( Point );
}
@@ -2537,6 +2637,7 @@ HB_FUNC( WVT_DRAWSCROLLTHUMBVERT )
SelectObject( _s->hdc, _s->pGUI->diagonalBrush );
SelectObject( _s->hdc, _s->pGUI->penNull );
Rectangle( _s->hdc, iLeft, iTop, iRight+1, iBottom+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SetBkMode( _s->hGuiDC, OPAQUE );
@@ -2545,7 +2646,7 @@ HB_FUNC( WVT_DRAWSCROLLTHUMBVERT )
SelectObject( _s->hGuiDC, _s->pGUI->penNull );
Rectangle( _s->hGuiDC, iLeft, iTop, iRight+1, iBottom+1 );
}
#endif
// Thumb
//
iTabTop = _s->PTEXTSIZE.y * hb_parni( 6 );
@@ -2556,18 +2657,21 @@ HB_FUNC( WVT_DRAWSCROLLTHUMBVERT )
SelectObject( _s->hdc, _s->pGUI->whiteBrush );
SelectObject( _s->hdc, _s->pGUI->penGray );
Rectangle( _s->hdc, iTabLft, iTabTop, iTabRgt+1, iTabBtm );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->whiteBrush );
SelectObject( _s->hGuiDC, _s->pGUI->penGray );
Rectangle( _s->hGuiDC, iTabLft, iTabTop, iTabRgt+1, iTabBtm );
}
#endif
hb_wvt_DrawBoxRaised( _s->hdc, iTabTop+1, iTabLft+1, iTabBtm-2, iTabRgt-2 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxRaised( _s->hGuiDC, iTabTop+1, iTabLft+1, iTabBtm-2, iTabRgt-2 );
}
#endif
}
//-------------------------------------------------------------------//
@@ -2594,6 +2698,7 @@ HB_FUNC( WVT_DRAWSCROLLTHUMBHORZ )
SelectObject( _s->hdc, _s->pGUI->diagonalBrush );
SelectObject( _s->hdc, _s->pGUI->penNull );
Rectangle( _s->hdc, iLeft, iTop, iRight+1, iBottom+1 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SetBkMode( _s->hGuiDC, OPAQUE );
@@ -2602,24 +2707,27 @@ HB_FUNC( WVT_DRAWSCROLLTHUMBHORZ )
SelectObject( _s->hGuiDC, _s->pGUI->penNull );
Rectangle( _s->hGuiDC, iLeft, iTop, iRight+1, iBottom+1 );
}
#endif
// Thumb
//
SelectObject( _s->hdc, _s->pGUI->whiteBrush );
SelectObject( _s->hdc, _s->pGUI->penGray );
Rectangle( _s->hdc, iThumbLeft, iTop, iThumbRight, iBottom );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SelectObject( _s->hGuiDC, _s->pGUI->whiteBrush );
SelectObject( _s->hGuiDC, _s->pGUI->penGray );
Rectangle( _s->hGuiDC, iThumbLeft, iTop, iThumbRight, iBottom );
}
#endif
hb_wvt_DrawBoxRaised( _s->hdc, iTop+1, iThumbLeft+1, iBottom-2, iThumbRight-2 );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawBoxRaised( _s->hGuiDC, iTop+1, iThumbLeft+1, iBottom-2, iThumbRight-2 );
}
#endif
}
//#if WINVER > 0x500
@@ -2663,10 +2771,12 @@ HB_FUNC( WVT_DRAWSHADEDRECT )
gRect.LowerRight= 1;
bGF = ( BOOL ) _s->pGUI->pfnGF( _s->hdc, vert, 2, &gRect, 1, iMode );
#if defined(__SETGUI__)
if ( _s->bGui )
{
bGF = ( BOOL ) _s->pGUI->pfnGF( _s->hGuiDC, vert, 2, &gRect, 1, iMode );
}
#endif
}
hb_retl( bGF );
}
@@ -2723,6 +2833,7 @@ HB_FUNC( WVT_DRAWTEXTBOX )
//DrawText( _s->hdc, hb_parcx( 6 ), strlen( hb_parcx( 6 ) ), &rc, iAlignH | DT_WORDBREAK | DT_TOP );
DrawText( _s->hdc, text, lstrlen( text ), &rc, iAlignH | DT_WORDBREAK | DT_TOP );
#if defined(__SETGUI__)
if ( _s->bGui )
{
SetTextAlign( _s->hGuiDC, TA_TOP | TA_LEFT | TA_NOUPDATECP );
@@ -2734,6 +2845,7 @@ HB_FUNC( WVT_DRAWTEXTBOX )
//DrawText( _s->hGuiDC, hb_parcx( 6 ), strlen( hb_parcx( 6 ) ), &rc, iAlignH | DT_WORDBREAK | DT_TOP );
DrawText( _s->hGuiDC, text, lstrlen( text ), &rc, iAlignH | DT_WORDBREAK | DT_TOP );
}
#endif
HB_TCHAR_FREE( text );
}
@@ -2804,10 +2916,12 @@ HB_FUNC( WVT_DRAWPROGRESSBAR )
if ( bImage )
{
hb_wvt_DrawImage( _s->hdc, rc.left, rc.top, rc.right-rc.left+1, rc.bottom-rc.top+1, hb_parc( 9 ) );
#if defined(__SETGUI__)
if ( _s->bGui )
{
hb_wvt_DrawImage( _s->hGuiDC, rc.left, rc.top, rc.right-rc.left+1, rc.bottom-rc.top+1, hb_parc( 9 ) );
}
#endif
}
else
{
@@ -2816,17 +2930,21 @@ HB_FUNC( WVT_DRAWPROGRESSBAR )
lb.lbStyle = BS_SOLID;
lb.lbColor = crBarColor;
lb.lbHatch = 0;
#if ! defined( HB_OS_WIN_CE )
hBrush = CreateBrushIndirect( &lb );
#else
hBrush = CreateSolidBrush( lb.lbColor );
#endif
rc.bottom++;
rc.right++;
FillRect( _s->hdc, &rc, hBrush );
#if defined(__SETGUI__)
if ( _s->bGui )
{
FillRect( _s->hGuiDC, &rc, hBrush );
}
#endif
DeleteObject( hBrush );
}
}
@@ -2868,10 +2986,11 @@ HB_FUNC( WVT_CREATEFONT )
//
HB_FUNC( WVT_LOADPICTURE )
{
BOOL bResult = FALSE;
#if ! defined( HB_OS_WIN_CE )
PHB_GTWVT _s = hb_wvt_gtGetWVT();
IPicture * iPicture = hb_wvt_gtLoadPicture( hb_parcx( 2 ) );
BOOL bResult = FALSE;
int iSlot = hb_parni( 1 ) - 1 ;
if ( iPicture )
@@ -2884,6 +3003,7 @@ HB_FUNC( WVT_LOADPICTURE )
_s->pGUI->iPicture[ iSlot ] = iPicture;
bResult = TRUE;
}
#endif
hb_retl( bResult );
}
@@ -2891,10 +3011,11 @@ HB_FUNC( WVT_LOADPICTURE )
HB_FUNC( WVT_LOADPICTUREFROMRESOURCE )
{
BOOL bResult = FALSE;
#if ! defined( HB_OS_WIN_CE )
PHB_GTWVT _s = hb_wvt_gtGetWVT();
IPicture * iPicture = hb_wvt_gtLoadPictureFromResource( hb_parcx( 2 ),hb_parcx( 3 ) );
BOOL bResult = FALSE;
int iSlot = hb_parni( 1 ) - 1 ;
if ( iPicture )
@@ -2907,6 +3028,7 @@ HB_FUNC( WVT_LOADPICTUREFROMRESOURCE )
_s->pGUI->iPicture[ iSlot ] = iPicture;
bResult = TRUE;
}
#endif
hb_retl( bResult );
}

View File

@@ -260,6 +260,8 @@ EXPORTED:
DATA lHasInputFocus INIT .F.
DATA nFrameState INIT 0 // normal
METHOD showWindow() INLINE ::show()
METHOD refresh() INLINE ::invalidateRect()
ENDCLASS
//----------------------------------------------------------------------//
@@ -268,7 +270,6 @@ EXPORTED:
METHOD init( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) CLASS WvgCrt
//::WvgPartHandler:init( oParent, oOwner )
::WvgWindow:init( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
if hb_isArray( aPos )
@@ -310,7 +311,6 @@ METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) CLASS WvgCr
::maxRow := ::aSize[ 1 ]
::maxCol := ::aSize[ 2 ]
//::WvgPartHandler:Create( oParent, oOwner )
::WvgWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
if ::lModal
@@ -333,6 +333,16 @@ METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) CLASS WvgCr
::maxRow+1, ::maxCol+1, ::pGTp, .F., lRowCol, HB_WNDTYPE_CRT } )
hb_gtInfo( HB_GTI_SETFONT, { ::fontName, ::fontHeight, ::fontWidth } )
IF hb_isNumeric( ::icon )
hb_gtInfo( HB_GTI_ICONRES, ::icon )
ELSE
IF ( '.ico' $ lower( ::icon ) )
hb_gtInfo( HB_GTI_ICONFILE, ::icon )
ELSE
hb_gtInfo( HB_GTI_ICONRES, ::icon )
ENDIF
ENDIF
/* CreateWindow() be forced to execute */
? ' '
::hWnd := hb_gtInfo( HB_GTI_SPEC, HB_GTS_WINDOWHANDLE )
@@ -342,24 +352,15 @@ METHOD create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) CLASS WvgCr
hb_gtInfo( HB_GTI_WINTITLE , ::title )
hb_gtInfo( HB_GTI_RESIZEMODE, if( ::resizeMode == HB_GTI_RESIZEMODE_ROWS, HB_GTI_RESIZEMODE_ROWS, HB_GTI_RESIZEMODE_FONT ) )
if !empty( ::icon )
if hb_isNumeric( ::icon )
hb_gtInfo( HB_GTI_ICONRES, ::icon )
elseif hb_isChar( ::icon )
hb_gtInfo( HB_GTI_ICONFILE, ::icon )
endif
endif
if ::lModal
IF ::lModal
hb_gtInfo( HB_GTI_DISABLE, ::pGTp )
endif
ENDIF
if ::visible
IF ::visible
Hb_GtInfo( HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
::lHasInputFocus := .t.
endif
ENDIF
// Drawing Area of oCrt will point to itself
//
@@ -495,7 +496,14 @@ METHOD hide() CLASS WvgCrt
//----------------------------------------------------------------------//
METHOD invalidateRect() CLASS WvgCrt
METHOD invalidateRect( nTop, nLeft, nBottom, nRight ) CLASS WvgCrt
DEFAULT nTop TO 0
DEFAULT nLeft TO 0
DEFAULT nBottom TO maxrow()
DEFAULT nRight TO maxcol()
Wvt_InvalidateRect( nTop, nLeft, nBottom, nRight )
RETURN Self
@@ -649,8 +657,8 @@ METHOD toBack() CLASS WvgCrt
//----------------------------------------------------------------------//
METHOD toFront() CLASS WvgCrt
RETURN Self
//RETURN Self
RETURN Win_SetWindowPosToTop( ::hWnd )
//----------------------------------------------------------------------//
@@ -1056,10 +1064,13 @@ METHOD quit( xParam, xParam1 ) CLASS WvgCrt
METHOD resize( xParam ) CLASS WvgCrt
if hb_isBlock( xParam ) .or. hb_isNil( xParam )
if hb_isBlock( xParam )// .or. hb_isNil( xParam )
::sl_resize := xParam
RETURN NIL
endif
IF empty( xParam )
::sendMessage( WM_SIZE, 0, 0 )
ENDIF
RETURN Self
@@ -1162,9 +1173,10 @@ METHOD dragDrop( xParam, xParam1 ) CLASS WvgCrt
//----------------------------------------------------------------------//
// HARBOUR SPECIFIC
//----------------------------------------------------------------------//
METHOD setFocus() CLASS WvgCrt
METHOD SetFocus() CLASS WvgCrt
::sendMessage( WM_ACTIVATE, 1, 0 )
//::sendMessage( WM_SETFOCUS, 0, 0 )
RETURN Self
//----------------------------------------------------------------------//

File diff suppressed because it is too large Load Diff

View File

@@ -1045,13 +1045,16 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
SendMessage( hWnd, WM_SIZE, 0, 0 );
return 0;
}
#if ! defined( HB_OS_WIN_CE )
case WM_SIZING:
#endif
case WM_SIZE:
{
return hb_gt_wvt_SizeChanged( pWVT );
}
case WM_SYSCOMMAND:
{
#if ! defined( HB_OS_WIN_CE )
switch( wParam )
{
case SC_MAXIMIZE:
@@ -1059,6 +1062,7 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
// TODO
}
}
#endif
break;
}
case WM_TIMER:
@@ -1093,6 +1097,7 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
hb_gt_wvt_FireMenuEvent( pWVT, 2, ( int ) wParam );
return 0;
}
#if ! defined( HB_OS_WIN_CE )
case WM_MOUSEHOVER:
{
PHB_ITEM pEvParams = hb_itemNew( NULL );
@@ -1119,6 +1124,7 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
pWVT->bTracking = FALSE;
break;
}
#endif
case WM_COMMAND:
{
if( ( int ) lParam == 0 )
@@ -1294,7 +1300,7 @@ static HWND hb_gt_wvt_CreateWindow( PHB_GTWVT pWVT )
HB_TCHAR_FREE( szAppName );
ShowWindow( pWVT->hWnd, pWVT->pPP->bVisible ? SW_NORMAL : SW_HIDE );
ShowWindow( pWVT->hWnd, pWVT->pPP->bVisible ? SW_SHOWNORMAL : SW_HIDE );
UpdateWindow( pWVT->hWnd );
return hWnd;
@@ -1806,11 +1812,14 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
SetWindowLong( pWVT->hWnd, GWL_STYLE, style );
#else
SetWindowLongPtr( pWVT->hWnd, GWL_STYLE, style );
#endif
#if defined( HB_OS_WIN_CE )
#define SWP_DEFERERASE 0
#endif
SetWindowPos( pWVT->hWnd, NULL, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DEFERERASE );
ShowWindow( pWVT->hWnd, SW_HIDE );
ShowWindow( pWVT->hWnd, SW_NORMAL );
ShowWindow( pWVT->hWnd, SW_SHOWNORMAL );
}
}
}
@@ -2058,12 +2067,18 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
}
case HB_GTS_WS_MINIMIZED:
#if ! defined( HB_OS_WIN_CE )
SendNotifyMessage( pWVT->hWnd, WM_SYSCOMMAND, SC_MINIMIZE, 0 );
#endif
break;
case HB_GTS_WS_MAXIMIZED:
if( pWVT->bResizable )
{
#if ! defined( HB_OS_WIN_CE )
SendNotifyMessage( pWVT->hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0 );
#endif
}
else
ShowWindow( pWVT->hWnd, SW_RESTORE );
break;

View File

@@ -73,7 +73,9 @@
#include <commctrl.h>
#include <ole2.h>
#include <oleauto.h>
#if ! defined( HB_OS_WIN_CE )
#include <olectl.h>
#endif
#include <commdlg.h>
#include <shlobj.h>

View File

@@ -80,6 +80,8 @@
*/
//----------------------------------------------------------------------//
#define HB_OS_WIN_USED
#ifndef CINTERFACE
#define CINTERFACE 1
#endif
@@ -90,7 +92,7 @@
#include "hbvmint.h"
#endif
#include <windows.h>
//#include <windows.h>
#include <oaidl.h>
#include "hbapi.h"
#include "item.api"
@@ -103,7 +105,9 @@
#include <shlobj.h>
#include <objbase.h>
#include <ocidl.h>
#if ! defined( HB_OS_WIN_CE )
#include <olectl.h>
#endif
#include <ole2.h>
#include <oleauto.h>
@@ -828,8 +832,11 @@ HB_FUNC( HB_AX_ATLAXCREATECONTROL )
if( hContainer )
{
LPARAM lParam = MAKELPARAM( FALSE, 0 );
#if ! defined( HB_OS_WIN_CE )
SendMessage( ( HWND ) hContainer, ( UINT ) WM_SETFONT, ( WPARAM ) GetStockObject( DEFAULT_GUI_FONT ), lParam );
#else
SendMessage( ( HWND ) hContainer, ( UINT ) WM_SETFONT, ( WPARAM ) GetStockObject( OEM_FIXED_FONT ), lParam );
#endif
uLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, Caption, strlen( Caption )+1, NULL, 0 );
wString = ( BSTR ) malloc( uLen * sizeof( WCHAR ) );
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, Caption, strlen( Caption )+1, wString, uLen );
@@ -935,11 +942,17 @@ HB_FUNC( HB_AX_ATLAXGETCONTROL ) // HWND hWnd = handle of control container wind
if( hWnd )
{
#if ! defined( HB_OS_WIN_CE )
SendMessage( hWnd,
( ( UINT ) WM_SETFONT ),
( ( WPARAM ) GetStockObject( DEFAULT_GUI_FONT ) ),
( ( LPARAM ) ( MAKELPARAM( FALSE, 0 ) ) ) );
#else
SendMessage( hWnd,
( ( UINT ) WM_SETFONT ),
( ( WPARAM ) GetStockObject( OEM_FIXED_FONT ) ),
( ( LPARAM ) ( MAKELPARAM( FALSE, 0 ) ) ) );
#endif
( AtlAxGetControl )( hWnd, &pUnk );
if( pUnk )

View File

@@ -133,8 +133,8 @@ HB_FUNC( WVT_UTILS )
//
HB_FUNC( WVT_CHOOSEFONT )
{
#if ! defined( HB_OS_WIN_CE )
PHB_GTWVT _s = hb_wvt_gtGetWVT();
CHOOSEFONT cf;// = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
LOGFONT lf;// = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
LONG PointSize = 0;
@@ -207,6 +207,7 @@ HB_FUNC( WVT_CHOOSEFONT )
}
return ;
#endif
}
//-------------------------------------------------------------------//

View File

@@ -91,7 +91,13 @@
#define WIN_STATUSBAR_MAX_PARTS 256
//----------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
#define WM_CHOOSEFONT_GETLOGFONT (WM_USER + 1)
#define WM_CHOOSEFONT_SETLOGFONT (WM_USER + 101)
#define WM_CHOOSEFONT_SETFLAGS (WM_USER + 102)
/*----------------------------------------------------------------------*/
#define wvg_parwparam( n ) ( ( WPARAM ) ( HB_PTRDIFF ) hb_parnint( n ) )
#define wvg_parlparam( n ) ( ( LPARAM ) ( HB_PTRDIFF ) hb_parnint( n ) )
@@ -103,7 +109,7 @@
#define wvg_rethandle( n ) ( hb_retnint( ( HB_PTRDIFF ) n ) )
//----------------------------------------------------------------------//
/*----------------------------------------------------------------------*/
#if defined(__BORLANDC__) && !defined(HB_ARCH_64BIT)
#undef MAKELONG
@@ -459,21 +465,12 @@ HB_FUNC( WIN_GETDC )
{
hb_retnint( ( HB_PTRDIFF ) GetDC( ISNIL( 1 ) ? NULL : ( HWND ) ( HB_PTRDIFF ) hb_parnint( 1 ) ) );
}
//-------------------------------------------------------------------//
HB_FUNC( WIN_RELEASEDC )
{
hb_retl( ReleaseDC( ( HWND ) ( HB_PTRDIFF ) hb_parnint( 1 ), ( HDC ) ( HB_PTRDIFF ) hb_parnint( 2 ) ) );
}
//-------------------------------------------------------------------//
#if 0
HB_FUNC( WIN_RECTANGLE )
{
Rectangle( ( HDC ) ( HB_PTRDIFF ) hb_parnint( 1 ), hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ) );
}
#endif
//-------------------------------------------------------------------//
HB_FUNC( WIN_CREATEBRUSH )
@@ -483,10 +480,12 @@ HB_FUNC( WIN_CREATEBRUSH )
lb.lbStyle = hb_parni( 1 );
lb.lbColor = ISNIL( 2 ) ? RGB( 0, 0, 0 ) : ( COLORREF ) hb_parnl( 2 ) ;
lb.lbHatch = ISNIL( 3 ) ? 0 : hb_parni( 3 );
#if ! defined( HB_OS_WIN_CE )
hb_retnint( ( HB_PTRDIFF ) CreateBrushIndirect( &lb ) );
#else
hb_retnint( ( HB_PTRDIFF ) CreateSolidBrush( lb.lbColor ) );
#endif
}
//-------------------------------------------------------------------//
//
// Win_DrawText( hDC, cText, aRect, nFormat )
@@ -986,6 +985,7 @@ static BITMAPINFO * PackedDibLoad( PTSTR szFileName )
return pbmi ;
}
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetWidth( BITMAPINFO * pPackedDib )
{
if( pPackedDib->bmiHeader.biSize == sizeof( BITMAPCOREHEADER ) )
@@ -993,7 +993,9 @@ static int PackedDibGetWidth( BITMAPINFO * pPackedDib )
else
return pPackedDib->bmiHeader.biWidth ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetHeight( BITMAPINFO * pPackedDib )
{
if( pPackedDib->bmiHeader.biSize == sizeof( BITMAPCOREHEADER ) )
@@ -1001,7 +1003,9 @@ static int PackedDibGetHeight( BITMAPINFO * pPackedDib )
else
return abs( pPackedDib->bmiHeader.biHeight ) ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetBitCount( BITMAPINFO * pPackedDib )
{
if( pPackedDib->bmiHeader.biSize == sizeof( BITMAPCOREHEADER ) )
@@ -1009,7 +1013,9 @@ static int PackedDibGetBitCount( BITMAPINFO * pPackedDib )
else
return pPackedDib->bmiHeader.biBitCount ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetInfoHeaderSize( BITMAPINFO * pPackedDib )
{
if( pPackedDib->bmiHeader.biSize == sizeof( BITMAPCOREHEADER ) )
@@ -1021,7 +1027,9 @@ static int PackedDibGetInfoHeaderSize( BITMAPINFO * pPackedDib )
else return pPackedDib->bmiHeader.biSize ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetColorsUsed( BITMAPINFO * pPackedDib )
{
if( pPackedDib->bmiHeader.biSize == sizeof( BITMAPCOREHEADER ) )
@@ -1029,7 +1037,9 @@ static int PackedDibGetColorsUsed( BITMAPINFO * pPackedDib )
else
return pPackedDib->bmiHeader.biClrUsed ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetNumColors( BITMAPINFO * pPackedDib )
{
int iNumColors ;
@@ -1041,7 +1051,9 @@ static int PackedDibGetNumColors( BITMAPINFO * pPackedDib )
return iNumColors ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static int PackedDibGetColorTableSize( BITMAPINFO * pPackedDib )
{
if( pPackedDib->bmiHeader.biSize == sizeof( BITMAPCOREHEADER ) )
@@ -1049,6 +1061,7 @@ static int PackedDibGetColorTableSize( BITMAPINFO * pPackedDib )
else
return PackedDibGetNumColors( pPackedDib ) * sizeof( RGBQUAD ) ;
}
#endif
#if 0
static RGBQUAD * PackedDibGetColorTablePtr( BITMAPINFO * pPackedDib )
@@ -1070,13 +1083,13 @@ static RGBQUAD * PackedDibGetColorTableEntry( BITMAPINFO * pPackedDib, int i )
return PackedDibGetColorTablePtr( pPackedDib ) + i ;
}
#endif
#if ! defined( HB_OS_WIN_CE )
static BYTE * PackedDibGetBitsPtr( BITMAPINFO * pPackedDib )
{
return ( ( BYTE * ) pPackedDib ) + PackedDibGetInfoHeaderSize( pPackedDib ) +
PackedDibGetColorTableSize( pPackedDib ) ;
}
#endif
static HBITMAP hPrepareBitmap( char * szBitmapX, UINT uiBitmap,
int iExpWidth, int iExpHeight,
BOOL bMap3Dcolors,
@@ -1110,6 +1123,7 @@ static HBITMAP hPrepareBitmap( char * szBitmapX, UINT uiBitmap,
if( !bMap3Dcolors )
{
#if ! defined( HB_OS_WIN_CE )
hBitmap = CreateDIBitmap( hdc,
( PBITMAPINFOHEADER ) pPackedDib,
CBM_INIT,
@@ -1123,6 +1137,9 @@ static HBITMAP hPrepareBitmap( char * szBitmapX, UINT uiBitmap,
iWidth = PackedDibGetWidth( pPackedDib );
iHeight = PackedDibGetHeight( pPackedDib );
#else
return NULL;
#endif
}
else
{
@@ -1525,30 +1542,30 @@ HB_FUNC( WVG_GETNMTREEVIEWINFO )
HB_FUNC( WIN_TREEVIEW_SETTEXTCOLOR )
{
#if ! defined( HB_OS_WIN_CE )
hb_retl( TreeView_SetTextColor( wvg_parhwnd( 1 ), wvg_parcolor( 2 ) ) );
#endif
}
//----------------------------------------------------------------------//
HB_FUNC( WIN_TREEVIEW_SETBKCOLOR )
{
#if ! defined( HB_OS_WIN_CE )
hb_retl( TreeView_SetBkColor( wvg_parhwnd( 1 ), wvg_parcolor( 2 ) ) );
#endif
}
//----------------------------------------------------------------------//
HB_FUNC( WIN_TREEVIEW_SETLINECOLOR )
{
//hb_retl( TreeView_SetLineColor( wvg_parhwnd( 1 ), wvg_parcolor( 2 ) ) );
}
//----------------------------------------------------------------------//
HB_FUNC( WIN_TREEVIEW_SELECTITEM )
{
hb_retl( TreeView_SelectItem( wvg_parhwnd( 1 ), wvg_parhandle( 2 ) ) );
}
//----------------------------------------------------------------------//
// Wvg_TreeView_GetSelectionInfo( ::hWnd, nlParam, @cParent, @cText, @hParentOfSelected, @hItemSelected )
//
@@ -1724,21 +1741,26 @@ HB_FUNC( WIN_BUTTON_GETCHECK )
{
hb_retnl( Button_GetCheck( wvg_parhwnd( 1 ) ) );
}
//----------------------------------------------------------------------//
HB_FUNC( WIN_ISICONIC )
{
#if ! defined( HB_OS_WIN_CE )
hb_retl( IsIconic( wvg_parhwnd( 1 ) ) );
#else
hb_retl( FALSE );
#endif
}
//----------------------------------------------------------------------//
HB_FUNC( WIN_ISZOOMED )
{
#if ! defined( HB_OS_WIN_CE )
hb_retl( IsZoomed( wvg_parhwnd( 1 ) ) );
#else
hb_retl( TRUE );
#endif
}
//----------------------------------------------------------------------//
// Win_SetDCBrushColor( hDC, nRGB )
//
@@ -1750,7 +1772,6 @@ HB_FUNC( WIN_SETDCBRUSHCOLOR )
wvg_rethandle( NULL );
#endif
}
//----------------------------------------------------------------------//
// Win_SetDCPenColor( hDC, nRGB )
//
@@ -1825,7 +1846,7 @@ HB_FUNC( WIN_SETWINDOWPOSANDSIZE )
{
hb_retl( SetWindowPos( wvg_parhwnd( 1 ), NULL, hb_parni( 2 ), hb_parni( 3 ),
hb_parni( 4 ), hb_parni( 5 ),
hb_parl( 6 ) ? 0 : SWP_NOREDRAW | SWP_NOZORDER | SWP_NOACTIVATE ) );
( hb_parl( 6 ) ? 0 : SWP_NOREDRAW ) | SWP_NOZORDER | SWP_NOACTIVATE ) );
}
//----------------------------------------------------------------------//
@@ -1886,6 +1907,7 @@ PHB_ITEM wvg_logfontTOarray( LPLOGFONT lf, BOOL bEmpty )
//
HB_FUNC( WVG_CHOOSEFONT )
{
#if ! defined( HB_OS_WIN_CE )
CHOOSEFONT cf; // = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
LOGFONT lf; // = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
DWORD Flags;
@@ -1964,6 +1986,7 @@ HB_FUNC( WVG_CHOOSEFONT )
hb_itemReturnRelease( aFont );
hb_itemRelease( aInfo );
}
#endif
}
//----------------------------------------------------------------------//
@@ -2050,11 +2073,13 @@ HB_FUNC( WVG_HEIGHTTOPOINTSIZE )
//----------------------------------------------------------------------//
HB_FUNC( WVG_SETCURRENTBRUSH )
{
#if ! defined( HB_OS_WIN_CE )
#if (defined(_MSC_VER) && (_MSC_VER <= 1200 || defined(HB_OS_WIN_CE)) || defined(__DMC__)) && !defined(HB_ARCH_64BIT)
SetClassLong( wvg_parhwnd( 1 ), GCL_HBRBACKGROUND, ( DWORD ) hb_parnint( 2 ) );
#else
SetClassLongPtr( wvg_parhwnd( 1 ), GCLP_HBRBACKGROUND, ( LONG_PTR ) hb_parnint( 2 ) );
#endif
#endif
}
//----------------------------------------------------------------------//
// Win_SetLayeredWindowAttributes( hWnd, nRGB, nOpacityFactor [0-255] )
@@ -2140,9 +2165,9 @@ HB_FUNC( WVG_ADDTOOLBARBUTTON )
tbb.iString = iNewString;
bSuccess = ( BOOL ) SendMessage( hWndTB, TB_ADDBUTTONS, ( WPARAM ) 1, ( LPARAM ) ( LPTBBUTTON ) &tbb );
#if ! defined( HB_OS_WIN_CE )
SendMessage( hWndTB, TB_SETPADDING, ( WPARAM ) 0, ( LPARAM ) MAKELPARAM( 10,10 ) );
#endif
hb_retl( bSuccess );
return;
}
@@ -2169,10 +2194,10 @@ HB_FUNC( WVG_ADDTOOLBARBUTTON )
HB_FUNC( WIN_SENDTOOLBARMESSAGE )
{
//#if ! defined( HB_OS_WIN_CE )
HWND hTB = wapi_par_HWND( 1 );
int msg = wapi_par_INT( 2 );
switch( msg )
{
case TB_ADDBITMAP :
@@ -2186,8 +2211,8 @@ HB_FUNC( WIN_SENDTOOLBARMESSAGE )
tbab.nID = ( UINT ) wapi_par_HBITMAP( 3 );
#endif
wapi_ret_NI( ( int ) SendMessage( hTB, TB_ADDBITMAP, ( WPARAM ) 1, ( LPARAM ) &tbab ) );
break;
}
break;
case TB_ADDBUTTONS :
{
TBBUTTON tbb;
@@ -2200,8 +2225,8 @@ HB_FUNC( WIN_SENDTOOLBARMESSAGE )
tbb.iString = wapi_par_INT( 5 );
wapi_ret_L( ( BOOL ) SendMessage( hTB, TB_ADDBUTTONS, ( WPARAM ) 1, ( LPARAM ) ( LPTBBUTTON ) &tbb ) );
break;
}
break;
case TB_ADDSTRING :
{
int iString;
@@ -2212,402 +2237,134 @@ HB_FUNC( WIN_SENDTOOLBARMESSAGE )
HB_TCHAR_FREE( szCaption );
wapi_ret_NI( iString );
break;
}
break;
case TB_AUTOSIZE :
{
SendMessage( hTB, TB_AUTOSIZE, ( WPARAM ) 0, ( LPARAM ) 0 );
}
break;
break;
case TB_BUTTONCOUNT :
{
}
break;
break;
case TB_BUTTONSTRUCTSIZE :
{
SendMessage( hTB, TB_BUTTONSTRUCTSIZE, sizeof( TBBUTTON ), 0 );
}
break;
break;
case TB_CHANGEBITMAP :
{
}
break;
case TB_CHECKBUTTON :
{
}
break;
case TB_COMMANDTOINDEX :
{
}
break;
case TB_CUSTOMIZE :
{
}
break;
case TB_DELETEBUTTON :
{
}
break;
case TB_ENABLEBUTTON :
{
}
break;
case TB_GETANCHORHIGHLIGHT :
{
}
break;
case TB_GETBITMAP :
{
}
break;
case TB_GETBITMAPFLAGS :
{
}
break;
case TB_GETBUTTON :
{
}
break;
case TB_GETBUTTONINFO :
{
}
break;
case TB_GETBUTTONSIZE :
{
}
break;
case TB_GETBUTTONTEXT :
{
}
break;
case TB_GETCOLORSCHEME :
{
}
break;
case TB_GETDISABLEDIMAGELIST :
{
}
break;
case TB_GETEXTENDEDSTYLE :
{
}
break;
case TB_GETHOTIMAGELIST :
{
}
break;
case TB_GETHOTITEM :
{
}
break;
#if 0
case TB_GETIDEALSIZE :
{
}
break;
#endif
case TB_GETIMAGELIST :
{
}
break;
#if 0
case TB_GETIMAGELISTCOUNT :
{
}
break;
#endif
case TB_GETINSERTMARK :
{
}
break;
case TB_GETINSERTMARKCOLOR :
{
}
break;
#if 0
case TB_GETITEMDROPDOWNRECT :
{
}
break;
#endif
case TB_GETITEMRECT :
{
}
break;
case TB_GETMAXSIZE :
{
}
break;
#if 0
case TB_GETMETRICS :
{
}
break;
#endif
case TB_GETOBJECT :
{
}
break;
case TB_GETPADDING :
{
}
break;
#if 0
case TB_GETPRESSEDIMAGELIST :
{
}
break;
#endif
case TB_GETRECT :
{
}
break;
case TB_GETROWS :
{
}
break;
case TB_GETSTATE :
{
}
break;
#if 0
case TB_GETSTRING :
{
}
break;
#endif
case TB_GETSTYLE :
{
}
break;
case TB_GETTEXTROWS :
{
}
break;
case TB_GETTOOLTIPS :
{
}
break;
case TB_GETUNICODEFORMAT :
{
}
break;
case TB_HIDEBUTTON :
{
}
break;
case TB_HITTEST :
{
}
break;
case TB_INDETERMINATE :
{
}
break;
case TB_INSERTBUTTON :
{
}
break;
case TB_INSERTMARKHITTEST :
{
}
break;
case TB_ISBUTTONCHECKED :
{
}
break;
case TB_ISBUTTONENABLED :
{
}
break;
case TB_ISBUTTONHIDDEN :
{
}
break;
case TB_ISBUTTONHIGHLIGHTED :
{
}
break;
case TB_ISBUTTONINDETERMINATE:
{
}
break;
case TB_ISBUTTONPRESSED :
{
}
break;
case TB_LOADIMAGES :
{
}
break;
case TB_MAPACCELERATOR :
{
}
break;
case TB_MARKBUTTON :
{
SendMessage( hTB, TB_MARKBUTTON, ( WPARAM ) wapi_par_INT( 3 ), ( LPARAM ) MAKELONG( hb_parl( 4 ),0 ) );
}
break;
case TB_MOVEBUTTON :
{
}
break;
case TB_PRESSBUTTON :
{
}
break;
case TB_REPLACEBITMAP :
{
}
break;
case TB_SAVERESTORE :
{
}
break;
case TB_SETANCHORHIGHLIGHT :
{
}
break;
break;
case TB_SETBITMAPSIZE :
{
SendMessage( hTB, TB_SETBITMAPSIZE, ( WPARAM ) 0,
( LPARAM ) MAKELONG( wapi_par_INT( 3 ), wapi_par_INT( 4 ) ) );
}
break;
break;
case TB_SETBUTTONINFO :
{
}
break;
break;
case TB_SETBUTTONSIZE :
{
SendMessage( hTB, TB_SETBUTTONSIZE, ( WPARAM ) 0,
( LPARAM ) MAKELONG( wapi_par_INT( 3 ), wapi_par_INT( 4 ) ) );
}
break;
break;
case TB_SETBUTTONWIDTH :
{
SendMessage( hTB, TB_SETBUTTONWIDTH, ( WPARAM ) 0,
( LPARAM ) MAKELONG( wapi_par_INT( 3 ), wapi_par_INT( 4 ) ) );
}
break;
case TB_SETCMDID :
{
}
break;
case TB_SETCOLORSCHEME :
{
}
break;
case TB_SETDISABLEDIMAGELIST :
{
}
break;
case TB_SETDRAWTEXTFLAGS :
{
}
break;
case TB_SETEXTENDEDSTYLE :
{
}
break;
case TB_SETHOTIMAGELIST :
{
}
break;
case TB_SETHOTITEM :
{
}
break;
#if 0
case TB_SETHOTITEM2 :
{
}
break;
#endif
break;
case TB_SETIMAGELIST :
{
SendMessage( hTB, TB_SETIMAGELIST, ( WPARAM ) 0, ( LPARAM ) wapi_par_HIMAGELIST( 3 ) );
}
break;
break;
case TB_SETINDENT :
{
SendMessage( hTB, TB_SETINDENT, ( WPARAM ) wapi_par_INT( 3 ), ( LPARAM ) 0 );
}
break;
case TB_SETINSERTMARK :
{
}
break;
case TB_SETINSERTMARKCOLOR :
{
}
break;
#if 0
case TB_SETLISTGAP :
{
}
break;
#endif
break;
case TB_SETMAXTEXTROWS :
{
SendMessage( hTB, TB_SETMAXTEXTROWS, ( WPARAM ) wapi_par_INT( 2 ), ( LPARAM ) 0 );
}
break;
break;
case TB_SETPARENT :
case TB_SETROWS :
case TB_SETSTATE :
case TB_SETSTYLE :
case TB_SETTOOLTIPS :
case TB_SETCMDID :
case TB_SETDISABLEDIMAGELIST :
case TB_SETDRAWTEXTFLAGS :
break;
#if 0
case TB_TRANSLATEACCELERATOR :
case TB_SETPRESSEDIMAGELIST :
case TB_SETWINDOWTHEME :
case TB_GETIDEALSIZE :
case TB_GETIMAGELISTCOUNT :
case TB_GETMETRICS :
case TB_GETPRESSEDIMAGELIST :
case TB_GETSTRING :
case TB_SETLISTGAP :
case TB_GETITEMDROPDOWNRECT :
case TB_SETHOTITEM2 :
case TB_SETMETRICS :
{
}
break;
break;
#endif
#if ! defined( HB_OS_WIN_CE )
case TB_SETPADDING :
{
SendMessage( hTB, TB_SETPADDING, ( WPARAM ) 0,
( LPARAM ) MAKELPARAM( wapi_par_INT( 2 ), wapi_par_INT( 3 ) ) );
}
break;
case TB_SETPARENT :
{
}
break;
#if 0
case TB_SETPRESSEDIMAGELIST :
{
}
break;
#endif
case TB_SETROWS :
{
}
break;
case TB_SETSTATE :
{
}
break;
case TB_SETSTYLE :
{
}
break;
case TB_SETTOOLTIPS :
{
}
break;
break;
case TB_MARKBUTTON :
SendMessage( hTB, TB_MARKBUTTON, ( WPARAM ) wapi_par_INT( 3 ), ( LPARAM ) MAKELONG( hb_parl( 4 ),0 ) );
break;
case TB_SETINSERTMARK :
case TB_SETINSERTMARKCOLOR :
case TB_SETCOLORSCHEME :
case TB_SETEXTENDEDSTYLE :
case TB_SETHOTIMAGELIST :
case TB_SETHOTITEM :
case TB_INSERTMARKHITTEST :
case TB_MAPACCELERATOR :
case TB_MOVEBUTTON :
case TB_GETINSERTMARK :
case TB_GETCOLORSCHEME :
case TB_CUSTOMIZE :
case TB_GETANCHORHIGHLIGHT :
case TB_GETEXTENDEDSTYLE :
case TB_GETHOTIMAGELIST :
case TB_GETINSERTMARKCOLOR :
case TB_GETHOTITEM :
case TB_GETOBJECT :
case TB_GETUNICODEFORMAT :
case TB_GETMAXSIZE :
case TB_SAVERESTORE :
case TB_SETANCHORHIGHLIGHT :
case TB_SETUNICODEFORMAT :
{
}
break;
#if 0
case TB_SETWINDOWTHEME :
{
}
break;
case TB_TRANSLATEACCELERATOR :
{
}
break;
#endif
break;
#endif
}
//#endif
}
//----------------------------------------------------------------------//
@@ -2658,6 +2415,7 @@ HB_FUNC( WVG_FILLRECT )
HB_FUNC( WVG_BEGINMOUSETRACKING )
{
#if ! defined( HB_OS_WIN_CE )
TRACKMOUSEEVENT tmi;
tmi.cbSize = sizeof( TRACKMOUSEEVENT );
@@ -2665,6 +2423,9 @@ HB_FUNC( WVG_BEGINMOUSETRACKING )
tmi.hwndTrack = wapi_par_HWND( 1 );
tmi.dwHoverTime = 1;
wapi_ret_L( _TrackMouseEvent( &tmi ) );
#else
wapi_ret_L( FALSE );
#endif
}
/*----------------------------------------------------------------------*/