860 lines
29 KiB
Plaintext
860 lines
29 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
/*
|
|
* whatsnew.txt
|
|
* This doc used to contain what's new in GTWVW since the last release.
|
|
* Now it serves as a change log. Any changes to GTWVW should be listed
|
|
* in this doc.
|
|
*
|
|
* NOTES:
|
|
* Dates in this doc are dates of changes, not CVS commit dates.
|
|
* For some reasons the date of changes are sometimes [largely] different
|
|
* with the date of commiting to CVS.
|
|
*
|
|
* Budyanto Dj. <budyanto@centrin.net.id>
|
|
*/
|
|
|
|
2007-09-21 23:30 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
! WM_HSCROLL and WM_VSCROLL should be controlled by bTopMost || s_bAllowNonTop,
|
|
not by hb_wvw_gtAcceptingInput(). This may cause problem if WVW_SETFOCUS interferes.
|
|
Fixed.
|
|
! wvw_ebcreate() :: do NOT use ES_OEMCONVERT by default
|
|
|
|
2007-05-29 09:45 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/samples/wvwtest9.prg
|
|
Replace some typo wvt_* with wvw_*.
|
|
|
|
2007-05-25 23:00 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
+ contrib/gtwvw/samples/ebtest7.prg
|
|
* sample on how to organize editboxes in commands similar to @..GET
|
|
This sample uses some code from Minigui for masking input in editbox.
|
|
* contrib/gtwvw/doc/whatsnew.txt
|
|
* note this change
|
|
|
|
2007-05-24 10:00 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/hbgtwvw.h
|
|
+ uiBusy in control_data to keep track on how many times a codeblock
|
|
is executed recursively.
|
|
+ some constants for EDITBOX
|
|
|
|
* contrib/gtwvw/gtwvw.c
|
|
! Fix wrong handling of HB_ITEM causing memory leak, for the following functions:
|
|
HB_FUNC( WVW_CLIENTTOSCREEN )
|
|
HB_FUNC( WVW_GETXYFROMROWCOL )
|
|
HB_FUNC( WVW_GETROWCOLFROMXY )
|
|
HB_FUNC( WVW_GETFONTINFO )
|
|
HB_FUNC( WVW_GETPALETTE )
|
|
HB_FUNC( WVW_SAVESCREEN )
|
|
HB_FUNC( WVW_GETCURSORPOS )
|
|
HB_FUNC( WVW_GETPAINTRECT )
|
|
HB_FUNC( WVW_XBINFO )
|
|
HB_FUNC( WIN_GETCLIENTRECT )
|
|
Thanks to Pritpal Bedi for noticing these errors.
|
|
|
|
+ support native EDITBOX
|
|
wvw_EBcreate()
|
|
wvw_EBdestroy()
|
|
wvw_EBsetfocus()
|
|
wvw_EBisfocused()
|
|
wvw_EBenable()
|
|
wvw_EBeditable()
|
|
wvw_EBsetcodeblock()
|
|
wvw_EBsetfont()
|
|
wvw_EBismultiline()
|
|
wvw_EBgettext()
|
|
wvw_EBsettext()
|
|
wvw_EBgetsel()
|
|
wvw_EBsetsel()
|
|
Note that SETKEY is still in effect during editbox editing,
|
|
thus this editbox is expected to be able to replace standard @..GET
|
|
(or memoline() if it is multiline editbox).
|
|
I have also tested that a proper editbox callback can be written to
|
|
handle masked input as in @...GET..PICTURE..
|
|
|
|
+ wvw_pbisfocused()
|
|
|
|
+ wvw_allowNonTopEvent()
|
|
To set whether control's codeblock is allowed to be executed from
|
|
non topmost window.
|
|
(default is FALSE, the old behaviour)
|
|
|
|
+ wvw_recursecBlock()
|
|
To set whether control's codeblock is allowed to do recursive action.
|
|
(default is FALSE, the old behaviour)
|
|
|
|
* contrib/gtwvw/doc/whatsnew.txt
|
|
* notes on changes applied.
|
|
|
|
|
|
2006-07-25 18:15 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/hbgtwvw.h
|
|
* contrib/gtwvw/gtwvw.c
|
|
* Revert Fransesco's last change, restore the old behaviour of ALT+C.
|
|
This is a temporary solution until hb_gtHandleClose() is fixed.
|
|
Fransesco, I hope you don't mind.
|
|
* hb_wvw_gtDrawImage()
|
|
Rewritten. Now supports displaying transparent image if
|
|
bTransp parameter is TRUE.
|
|
* hb_wvw_gtRenderPicture()
|
|
Modified to support displaying transparent image if
|
|
bTransp parameter is TRUE.
|
|
* HB_FUNC( WVW_DRAWIMAGE )
|
|
Added lTransp optional parameter.
|
|
Supports displaying images with proportional height/width ratio.
|
|
+ .PRG callable wvw_SetMaxBMcache()
|
|
This is to get/set maximum number of bitmap cache for WVW_DRAWIMAGE.
|
|
+ .PRG callable wvw_NumBMcache()
|
|
This is to get current number of bitmap cached by WVW_DRAWIMAGE.
|
|
* contrib/gtwvw/doc/whatsnew.txt
|
|
* notes about this change.
|
|
+ contrib/gtwvw/samples/drawimg.prg
|
|
+ contrib/gtwvw/samples/wutil.prg
|
|
+ contrib/gtwvw/samples/wutil.ch
|
|
* A sample about this new feature.
|
|
|
|
Notes on WVW_DRAWIMAGE()
|
|
/*
|
|
(1) Transparency
|
|
if bTransparent is .t., top-left pixel is used as the transparent color,
|
|
|
|
(2) Image dimension
|
|
if nBottom is NIL, then image height will be proportional to original image.
|
|
if nRight is NIL, then image width will be proportional to original image.
|
|
if nBottom and nRight are BOTH NIL then original image dimension is used
|
|
|
|
(3) Caching
|
|
This function will now CACHE the image.
|
|
See also wvw_SetMaxBMcache() and wvw_NumBMcache()
|
|
*/
|
|
|
|
|
|
2006-06-16 23:20 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
* Added the long forgotten sixth parameter of WVW_DRAWBOXRAISED().
|
|
|
|
2006-01-19 23:25 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
* contrib/gtwvw/doc/whatsnew.txt
|
|
* contrib/wvtgui/wvtcore.c
|
|
! Fixed resources leak in wv*_drawline() and wv*_drawoutline().
|
|
Reported and tested by Lajos Mihalffy on gtwvw.
|
|
|
|
2005-10-31 23:55 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
* wvw_pbcreate() now support bitmap on buttons.
|
|
! wvw_pbsetfocus() and wvw_cbsetfocus() was always returning .f., fixed.
|
|
|
|
2005-10-19 18:00 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/hbgtwvw.h
|
|
+ include "hbstack.h"
|
|
|
|
* contrib/gtwvw/gtwvw.c
|
|
+ #define HB_NO_DEFAULT_API_MACROS
|
|
! replace &HB_VM_STACK.Return with hb_stackReturnItem()
|
|
|
|
|
|
2005-10-18 09:55 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
! Typo fixed in gt_VertLine() causing incorrect dispbox() in MainCoord mode
|
|
* contrib/gtwvw/doc/whatsnew.txt
|
|
* change recorded
|
|
|
|
2005-10-06 09:20 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/hbgtwvw.h
|
|
* contrib/gtwvw/gtwvw.c
|
|
! Fixed all callback calls to use hb_vmPushState()/hb_vmPopState().
|
|
* Applying the proper codeblock handling, as suggested by Przemek.
|
|
As a side effect, I rename GLOBAL_DATA member cbFunc/cbFuncModal
|
|
into pcbFunc/pcbFuncModal. They now store pointer to codeblock,
|
|
not the codeblock itself.
|
|
The same thing with CONTROL_DATA's hiCodeBlock --> phiCodeBlock.
|
|
|
|
=========================================================================
|
|
2005-08-30 23:45 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id> :: BEGIN
|
|
|
|
=============
|
|
MAXIMIZE MODE
|
|
=============
|
|
Gtwvw now allows its`windows to be in MAXIMIZED mode.
|
|
Please notice, however, that there are some things need to be addressed when
|
|
implementing this mode.
|
|
|
|
To implement this mode, app should have a special callback function WVW_SIZE.
|
|
This function is called by Gtwvw AFTER a window size is changed, as when the
|
|
window is maximized or restored.
|
|
|
|
See the sample prog doc/maximize.prg on how to apply a simple WVW_SIZE function.
|
|
|
|
Some new/modified supporting functions in this area of interest:
|
|
|
|
+ WVW_UNREACHEDBR( [nWinNum], [nBottomPixels], [nRightPixels] )
|
|
get unreached pixels below maxrow() to nBottomPixels
|
|
and on the right of maxcols() to nRightPixels.
|
|
|
|
+ WVW_MAXMAXROW() : returns maximum possible maxrow()
|
|
|
|
+ WVW_MAXMAXCOL() : returns maximum possible maxcol()
|
|
|
|
* WVW_MAXIMIZE()
|
|
! This function now really maximizes the window, provided
|
|
user has the WVW_SIZE function.
|
|
(This is different with gtwvt's WVT_MAXIMIZE which really does a RESTORE).
|
|
|
|
+ WVW_RESTORE()
|
|
* Restores a window
|
|
|
|
+ WVW_ENABLEMAXIMIZE()
|
|
* Enables the Maximize/Restore button.
|
|
|
|
|
|
==================
|
|
WINDOW POSITIONING
|
|
==================
|
|
|
|
Some new functions regarding window positioning:
|
|
|
|
+ WVW_SETDEFCENTREWINDOW() to change default CentreWindow setting.
|
|
CentreWindow==.t. will cause subsequent opened windows be centered vertically and horizontally.
|
|
|
|
+ WVW_SETDEFHCENTREWINDOW() to change default HCentreWindow setting.
|
|
HCentreWindow==.t. will cause subsequent opened windows be centered horizontally.
|
|
|
|
+ WVW_SETDEFVCENTREWINDOW() to change default VCentreWindow setting.
|
|
VCentreWindow==.t. will cause subsequent opened windows be centered vertically.
|
|
|
|
* WVW_XREPOSWINDOW() now has an optional param lAnchored (default is .t.).
|
|
If it's .f. then subwindows will be positioned according to each CentreWindow setting.
|
|
|
|
/*
|
|
DefCentreWindow, DefHCentreWindow, DefVCentreWindow are default setting used when opening a new subwindow.
|
|
if DefCentreWindow == .t.
|
|
newly open subwindow will be placed centered both vertically and horizontally in respect to Main Window
|
|
else
|
|
if DefHCentreWindow == .t.
|
|
newly open subwindow will be horizontally centered in respect to Main Window
|
|
endif
|
|
if DefVCentreWindow == .t.
|
|
newly open subwindow will be vertically centered in respect to Main Window
|
|
endif
|
|
endif
|
|
*/
|
|
|
|
|
|
=========
|
|
SCROLLBAR
|
|
=========
|
|
|
|
Some changes regarding scrollbar:
|
|
! fix problem of missed WM_LBUTTONUP causing "sticky" scrollbar
|
|
! if "sticky" scrollbar still occurs, WM_CHAR will stop it
|
|
! etc.
|
|
|
|
+ WVW_XBinfo( [nWinNum], XBid )
|
|
return an array {nMin, nMax, nPageSize, nPos, nTrackPos } of scrollbar XBid
|
|
return an empty array {} if invalid parameter passed.
|
|
|
|
* WM_RBUTTON* on scrollbar is now disabled.
|
|
|
|
|
|
========
|
|
COMBOBOX
|
|
========
|
|
|
|
* all arrow keys are now passed to parent window,
|
|
regardless of Ctrl, Alt, and Shift states.
|
|
(only in WVW_CB_KBD_CLIPPER)
|
|
|
|
|
|
=============
|
|
MISCELLANEOUS
|
|
=============
|
|
|
|
* WVW_DRAWLABELOBJ() added aOffset optional parm
|
|
|
|
* gtWndProc handles unreached area "better"
|
|
will repaint it on maxcol()/maxrow() event
|
|
|
|
* WM_CLOSE on Main Window is now followed by K_ESC,
|
|
thus in a case where SETCANCEL() is .f. an app can still handle this event.
|
|
|
|
2005-08-30 23:45 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id> :: END
|
|
=========================================================================
|
|
|
|
2005-08-01 23:15 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
* source/rtl/gtwvt/gtwvt.c
|
|
! Fix resource leak in gtResetWindowSize(). A severe bug for Win98.
|
|
|
|
2005-07-22 14:20 UTC-0300 Luiz Rafael Culik<culikr at uol.com.br>
|
|
* source/rtl/gtwvt/gtwvt.c
|
|
contrib/gtwvw/gtwvt.c
|
|
contrib/wvtwin/wvtcore.c
|
|
contrib/wvtwin/wvtutils.c
|
|
! all Windows structures like RECT/POINT/LOGFONT/LOGBRUSH now are initialized to an empty structure.
|
|
|
|
2005-06-30 23:10 UTC+0700 Budyanto Dj. <budyanto@centrin.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
! Fix calculation of iNextPos in hb_wvw_gtAddCharToInputQueue()
|
|
and hb_wvw_gtGetCharFromInputQueue(). Resolves problem
|
|
reported of lost input characters.
|
|
Many Thanks to Peter Rees.
|
|
|
|
2005/06/19
|
|
* gtwvw.c
|
|
+ wvw_xbshow() to show/hide scrollbar, code by Julio Cesar Cantillo Molina.
|
|
|
|
2005/04/27
|
|
* hbgtwvw.h
|
|
* gtwvw.c
|
|
+ hb_wvw_gtSetLastMenuEvent()
|
|
+ WVW_SETLASTMENUEVENT() callable from .prg
|
|
|
|
2005/04/18:
|
|
* gtwvw.c
|
|
! hb_wvw_gtSetFont() gave wrong return value when it failed.
|
|
|
|
2005/04/07:
|
|
* gtwvw.c
|
|
! bugfix:: gt_Puts(): truncate a too long string in case of MainCoord Mode.
|
|
|
|
2005-03-31 04:10 UTC+0700 Andi Jahja <xharbour@cbn.net.id>
|
|
* contrib/gtwvw/hbgtwvw.h
|
|
! minor modification for __DMC__
|
|
|
|
2005-02-27 21:10 UTC+0700 Andi Jahja <xharbour@cbn.net.id>
|
|
* contrib/gtwvw/gtwvw.c
|
|
* some files i overlooked for the recent changes
|
|
(
|
|
* move initialization for __DMC__ to hbinit.h
|
|
+ HB_CPP_STARTUP, to write initialization of CPP the common way
|
|
+ HB_MSC_STARTUP, to write initialization of MSVC the current way
|
|
)
|
|
|
|
2005/02/24:
|
|
* contrib/gtwvw/hbgtwvw.h
|
|
* contrib/gtwvw/gtwvw.c
|
|
* changes to enable compilation with DigitalMars C++ (aka
|
|
Symantec C++ : http://www.digitalmars.com). Was abandoned
|
|
by Symantec some time ago and enjoy further development
|
|
from DigitalMars. It is another speedy compiler for xHarbour.
|
|
|
|
2005/02/22:
|
|
Changes by Andi Jahja:
|
|
* gtwvw.c
|
|
* initialization in var declaration, to avoid warnings.
|
|
|
|
2005/02/20:
|
|
Changes by Andi Jahja:
|
|
* gtwvw.c
|
|
+ #include <conio.h> for WATCOMC compiler
|
|
- PackedDibGetColorTablePtr , unused function
|
|
- PackedDibGetColorTableEntry, unused function
|
|
- gt_xPutch, unused function
|
|
* hb_Inp9x, hb_Outp9x: XCC, WATCOMC, MINGW32 compiler support
|
|
* gt_Tone: WATCOMC, MINGW32 compiler support
|
|
* hbgtwvw.h:
|
|
* changes required by some C compilers
|
|
|
|
2005/01/14
|
|
+ contrib/gtwvw/samples/cbtest1.prg
|
|
+ contrib/gtwvw/samples/cbtest2.prg
|
|
* Samples on how to use GTWVW combobox.
|
|
|
|
2005/01/13:
|
|
* gtwvw.c
|
|
+ WVW_CBisDropped() new function
|
|
! hb_wvw_gtCBProc(): Handle ALT-F4 to avoid GPF if it is pressed when CB on focus
|
|
|
|
2005/01/13:
|
|
* gtwvw.c
|
|
! Fixed a hidden bug:
|
|
HB_GT_FUNC( mouse_SetPos ) was using X for row, and Y for col (!).
|
|
|
|
2005/01/12:
|
|
* gtwvw.c
|
|
* hbgtwvw.h
|
|
* Many type castings by Andi Jahja to allow GTWVW to be compiled in
|
|
MSVC/OW/PellesC/XCC/MinGW32. Thanks!!!
|
|
|
|
2004/12/31:
|
|
* gtwvw.c
|
|
Sync with =Id: gtwvt.c,v 1.140 2004/12/28 20:32:33 ptsarenko Exp =
|
|
* use CF_OEMTEXT parameter for clipboard functions for OEM charsets
|
|
by Pavel Tsarenko.
|
|
|
|
2004/12/23:
|
|
* gtwvw.c
|
|
! HB_FUNC( WVW_SETICON ) should pass hb_parc(3) instead of hb_parcx(3) to
|
|
hb_wvw_gtSetWindowIcon() in order to allow proper NULL checking there.
|
|
(hb_parcx(3) never returns NULL, even if param 3 is NIL.
|
|
|
|
2004/12/22:
|
|
Combobox (dropdown listbox) is introduced.
|
|
This feature is accessible throug the WVW_CB* functions.
|
|
(See IMPORTANT NOTES below regarding WVW_CBADDSTRING() and WVW_CBSETCURSEL())
|
|
|
|
Side Effects:
|
|
* WVW_ID_BASE_PUSHBUTTON is now 64000 (was 65000).
|
|
It means we may not have Menu Id >= 64000 now.
|
|
|
|
New .PRG callable Functions: (combobox functions):
|
|
+ WVW_CBcreate( [nWinNum], nTop, nLeft, nWidth, aText, bBlock, nListLines, ;
|
|
nReserved, nKbdType, aOffset)
|
|
+ WVW_CBdestroy( [nWinNum], nCBid )
|
|
+ WVW_CBsetFocus( [nWinNum], nComboId )
|
|
+ WVW_CBisFocused( [nWinNum], nComboId )
|
|
+ WVW_CBenable( [nWinNum], nComboId, [lEnable] )
|
|
+ WVW_CBsetcodeblock( [nWinNum], nCBid, bBlock )
|
|
+ WVW_CBSetFont([nWinNum], cFontFace, nHeight, nWidth, nWeight, nQUality,;
|
|
lItalic, lUnderline, lStrikeout
|
|
+ WVW_CBsetIndex( [nWinNum], nCBid, nIndex )
|
|
+ WVW_CBgetIndex( [nWinNum], nCBid )
|
|
+ WVW_CBfindString( [nWinNum], nCBid, cString )
|
|
+ WVW_CBGetCurText( [nWinNum], nCBid )
|
|
|
|
IMPORTANT NOTICE:
|
|
* WVW_CBADDSTRING() and WVW_CBSETCURSEL() are NOT part of the above WVW_CB* functions family.
|
|
These two functions are adopted from gtwvt (long time ago), and I keep these names to
|
|
keep gtwvw's "historical links" to gtwvt unbroken.
|
|
|
|
TODO:
|
|
Create a sample of how to integrate combobox into regular GET system.
|
|
|
|
2004/11/25:
|
|
Synchronizing with:
|
|
=Id: hbgtwvt.h,v 1.32 2004/11/23 17:04:20 lf_sfnet Exp =
|
|
=Id: gtwvt.c,v 1.138 2004/11/25 01:54:13 guerra000 Exp =
|
|
=Id: wvtutils.c,v 1.19 2004/11/23 17:04:23 lf_sfnet Exp =
|
|
(wvtcore.c is not changed since last sync:
|
|
=Id: wvtcore.c,v 1.10 2004/08/30 14:10:20 vouchcac Exp =
|
|
)
|
|
|
|
------------------
|
|
Summary of changes
|
|
------------------
|
|
Applying the following change from gtwvt by Lorenzo Fiorini:
|
|
* hbgtwvw.ch
|
|
* wvtutils.c
|
|
* gtwvt.c
|
|
* added support for named icons in the resources
|
|
|
|
-------
|
|
Details
|
|
-------
|
|
* hbgtwvw.ch
|
|
* change in hb_wvw_gtSetWindowIcon() prototype (added lpicon parm)
|
|
|
|
* gtwvw.c
|
|
* hb_wvw_gtSetWindowIcon() added one optional parm
|
|
* WVW_SETICON() added one optional parm
|
|
|
|
|
|
2004/11/23:
|
|
* gtwvw.c:
|
|
+ HB_GT_FUNC( gt_ProcessMessages )
|
|
|
|
2004/11/23:
|
|
* gtwvw.c:
|
|
* FlashWindowEx is replaced with FlashWindow to make gtwvw
|
|
work in Win95
|
|
|
|
2004/11/14:
|
|
* hbgtwvw.h
|
|
* WIN_DATA:
|
|
+ int iLSpaceColor; /* line space color */
|
|
* gtwvw.c:
|
|
+ static int s_iDefLSpaceColor = -1;
|
|
* hb_wvw_gtFillLineSpace(): use pWindowData->iLSpaceColor, or not
|
|
+ WVW_SetDefLSpaceColor()
|
|
+ WVW_SetLSpaceColor()
|
|
|
|
/**************************** BETA1-3 published at this point **/
|
|
|
|
2004/11/01:
|
|
* gtwvw.c
|
|
! WVW_DRAWLABELOBJ(): bottom point +1, right point +1
|
|
|
|
2004/10/26:
|
|
Synchronizing with:
|
|
=Id: gtwvt.c,v 1.135 2004/10/24 09:43:45 oh1 Exp =
|
|
|
|
* gtwvw.c
|
|
* blank char for screen ' ' --> hb_ctGetClearB()
|
|
+ GTI_VIEWMAXWIDTH
|
|
+ GTI_VIEWMAXHEIGHT
|
|
These don't seem to be correctly implemented.
|
|
See gtwin about what they should do.
|
|
|
|
/****************************************************************
|
|
* Release Date: 2004/10/25 (CVS contrib)
|
|
* Prev Release: 2004/09/26
|
|
****************************************************************/
|
|
|
|
2004/10/25:
|
|
* hbgtwvw.h
|
|
* lpwAlign() and nCopyAnsiToWideChar() are now static
|
|
* gtwvw.c
|
|
* lpwAlign() and nCopyAnsiToWideChar() are now static
|
|
+ some #define by Lorenzo Fiorini
|
|
- some unused functions and variables
|
|
- some castings
|
|
This is to get rid of warnings in mingw32 as reported by Lorenzo Fiorini.
|
|
|
|
|
|
2004/10/18:
|
|
Synchronizing with: (Beta1-2)
|
|
=Id: hbgtwvt.h,v 1.31 2004/09/28 03:25:07 vouchcac Exp =
|
|
=Id: gtwvt.c,v 1.133 2004/09/28 03:25:17 vouchcac Exp =
|
|
=Id: wvtutils.c,v 1.18 2004/09/28 03:25:18 vouchcac Exp =
|
|
(wvtcore.c is not changed since last sync:
|
|
=Id: wvtcore.c,v 1.10 2004/08/30 14:10:20 vouchcac Exp =
|
|
)
|
|
|
|
------------------
|
|
Summary of changes
|
|
------------------
|
|
|
|
Adopting Modal Dialog, original work of Pritpal Bedi in gtwvt.
|
|
Like Modeless Dialog, this is attached to Main Window (by default).
|
|
There is an option, however, to attach it to other window by specifying
|
|
the window's handle.
|
|
|
|
* gtwvw.c
|
|
+ HB_FUNC( WVW_CREATEDIALOGMODAL )
|
|
|
|
|
|
2004/10/14:
|
|
* gtwvw.c:
|
|
! wvw_pbenable(): after wvw_pbenable(..., ..., .f.) focus should be
|
|
set to parent window, otherwise no input is accepted. Fixed.
|
|
Thanks to Fabio for reporting it.
|
|
|
|
|
|
2004/09/30:
|
|
* gtwvw.c:
|
|
* WVW_TBAddButton() new parm lMap3Dcolors
|
|
This is to support transparent toolbar button
|
|
(applicable to 256 color bitmap only).
|
|
|
|
|
|
/****************************************************************
|
|
* Release Date: 2004/09/26
|
|
* Prev Release: 2004/07/25
|
|
****************************************************************/
|
|
|
|
Contents
|
|
|
|
- WARNING: Your program may need to change!
|
|
|
|
- New Native Controls
|
|
= Push Buttons
|
|
= Progress Bar
|
|
|
|
- New Callback Functions
|
|
|
|
- New/Revised Functions
|
|
|
|
- Bugfix and Enhancements
|
|
|
|
- Adopted (and Adapted) Features from GTWVT
|
|
|
|
- Epilogue
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
/* */
|
|
/* WARNING: Your program may need to change! */
|
|
/* */
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
-------------------
|
|
WVW_DrawRoundRect()
|
|
-------------------
|
|
|
|
If you use this function, you may need to make a change:
|
|
|
|
Previously:
|
|
|
|
Wvw_DrawRoundRect( nWinNum, nTop, nLeft, nBottom, nRight, ;
|
|
nRoundHeight, nRoundWidth )
|
|
|
|
Now:
|
|
|
|
Wvw_DrawRoundRect( nWinNum, nTop, nLeft, nBottom, nRight, ;
|
|
aOffset, ; <-- new optional parm following GTWVT's
|
|
nRoundHeight, nRoundWidth )
|
|
|
|
|
|
----------------------------------------
|
|
Toolbar, Menu Command Id vs Push Buttons
|
|
----------------------------------------
|
|
|
|
This release introduces native push buttons. Internally pushbuttons use
|
|
command id 65000 and above. Therefore, do NOT use menu/toolbar commands
|
|
with id >= 65000.
|
|
|
|
You are further recommended not to use high numbered id (say >= 40000),
|
|
because future GTWVW may need that for its internal use.
|
|
|
|
|
|
-------------------------------
|
|
WVW_SetPen() and WVW_SetBrush()
|
|
-------------------------------
|
|
|
|
First parameter of WVW_SetPen() and WVW_SetBrush() are nWinNum.
|
|
This is still true in current release. However, it is now ignored,
|
|
because now the same PENs and BRUSHes are now used by all window.
|
|
There is no more specific PENs and BRUSHes for specific window.
|
|
|
|
I have to do this change, because previous release of GTWVW causes
|
|
GDI leak because of this PENs and BRUSHes stuff...
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
/* */
|
|
/* New Native Controls */
|
|
/* */
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
------------
|
|
Push Buttons
|
|
------------
|
|
|
|
You can now create pushbutton very easily. Simply define where do you
|
|
want it to sit, and what action do you want it to do when it's clicked
|
|
by means of a codeblock.
|
|
|
|
In previous version, we had to use WVWMOUSE.PRG to simulate pushbuttons
|
|
using wvw_DrawBoxRaised(). We also had to handle 'OnMouseHover', 'OnMouseOut',
|
|
'OnPressed', etc, to simulate the pressed/released state of the button.
|
|
By using native push buttons, we don't have to worry about all that anymore.
|
|
Windows will take care about it.
|
|
|
|
If we are using Windows XP style, pushbuttons will automatically behave
|
|
as they should in Windows XP: round shaped, hot when mouse hovers, etc.
|
|
|
|
Push button functions are prefixed with wvw_pb*, for example:
|
|
wvw_pbCreate()
|
|
wvw_pbDestroy()
|
|
wvw_pbSetFont()
|
|
etc
|
|
|
|
------------
|
|
Progress Bar
|
|
------------
|
|
|
|
Progress Bar is one of the simplest controls. Gtwvw now uses native
|
|
progress bar. It is a preferred method instead of the simulated one
|
|
using wvw_DrawProgressBar().
|
|
|
|
Progress bar functions are prefixed with wvw_pg*, for example:
|
|
wvw_pgCreate()
|
|
wvw_pgDestroy()
|
|
wvw_pgSetRange()
|
|
wvw_pgSetPos()
|
|
etc.
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
/* */
|
|
/* New Callback Functions */
|
|
/* */
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
----------------
|
|
WVW_INPUTFOCUS()
|
|
----------------
|
|
|
|
If exists, this function is called by GTWVW whenever input occurs on
|
|
non topmost window. (Currently GTWVW allows only topmost window, that
|
|
is the last window opened, to accept input.)
|
|
|
|
For example, assume your program is displaying Main Window and another
|
|
window. If at this point the user click the Main Window and select
|
|
some menu item, GTWVW will reject to handle this event because Main
|
|
Window is not currently topmost.
|
|
|
|
Typically GTWVW will produce an asterisk sound and flash the topmost
|
|
window to tell user which window is expecting input.
|
|
|
|
In current GTWVW, prior to do that GTWVW will call WVW_INPUTFOCUS()
|
|
function, if exists, and inspect its return value. If it returns .t.,
|
|
then GTWVW do nothing, assuming the event has been handled properly
|
|
by WVW_INPUTFOCUS().
|
|
|
|
If no WVW_INPUTFOCUS() exists, or if it returns .f., GTWVW will do
|
|
the usual response: asterisk sound and flashing window.
|
|
|
|
See INPFOCUS.PRG sample program demonstrating this feature.
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
/* */
|
|
/* New/Revised Functions */
|
|
/* */
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
+ WVW_SETWINSTYLE(): get/set window style
|
|
|
|
* WVW_DrawBoxRecessed(): optional parm lTight can now be passed as aOffset
|
|
|
|
+ WVW_NoStartupSubWindow(): disable/enabling displaying window when we open it.
|
|
(this is the adaptation of Main Window's
|
|
ANNOUNCE NOSTARTUPWINDOW
|
|
adopted from GTWVT)
|
|
|
|
+ WVW_ShowWindow(): show/hide a window.
|
|
|
|
* WVW_nOpenWindow(): has new optional parms allowing prg to define prefered
|
|
window style and parent window.
|
|
|
|
+ WVW_NOCLOSE(): disable CLOSE 'X' button
|
|
|
|
! WVW_SBAddPart(): now more accurate when measuring expected panel width.
|
|
|
|
+ WVW_TBIndex2Cmd(): convert toolbar button's index to command id.
|
|
+ WVW_TBCmd2Index(): and vice versa.
|
|
|
|
+ WVW_PB* : pushbutton functions
|
|
|
|
+ WVW_PG* : progress bar functions
|
|
|
|
- WVW_DeleteObject(): removed as GTWVT's. See also WIN_DeleteObject()
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
/* */
|
|
/* Bugfix and Enhancements */
|
|
/* */
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
---------------
|
|
Windows 98's DC
|
|
---------------
|
|
|
|
Thanks to Anatole Kolotovkin who reported this bug in Win98, where
|
|
GDI objects are display incorrectly after opening some 5 windows or
|
|
more. (In WinXP this bug doesn't occur.)
|
|
|
|
This bug has now been fixed in current release.
|
|
|
|
|
|
--------
|
|
GDI Leak
|
|
--------
|
|
|
|
Some GDI objects (PENs and BRUSHes) mysteriously persist, even after
|
|
the objects are successfully deleted.
|
|
|
|
This has now been fixed. But as a side effect, GTWVW does not support
|
|
specific window's PENs and BRUSHes anymore. PENs and BRUSHes are now
|
|
application-wide.
|
|
|
|
|
|
-------------------------------
|
|
Other bugfixes and enhancements
|
|
-------------------------------
|
|
|
|
There are also many other minor bugfixes and enhancements.
|
|
Some of the enhancements are additional aOffset parameter to
|
|
WVW_Draw* functions.
|
|
|
|
|
|
/*-------------------------------------------------------------------*/
|
|
/* */
|
|
/* Adopted (and Adapted) Features from GTWVT */
|
|
/* */
|
|
/*-------------------------------------------------------------------*/
|
|
|
|
======================================================================
|
|
Synchronizing with: (xHarbour Beta1-1 aka 0.99.1)
|
|
=Id: hbgtwvt.h,v 1.30 2004/09/15 03:52:49 bdj Exp =
|
|
=Id: gtwvt.c,v 1.132 2004/09/21 04:04:58 peterrees Exp =
|
|
=Id: wvtutils.c,v 1.17 2004/09/15 03:52:49 bdj Exp =
|
|
(wvtcore.c is not changed since last sync)
|
|
======================================================================
|
|
|
|
------------------
|
|
Summary of changes
|
|
------------------
|
|
|
|
* handling of ANSI to OEM conversion (and vice versa)
|
|
* new gt_info() set/get: GTI_MOUSESTATUS and GTI_FONTNAME
|
|
! fix handling of codeblock as wndproc of DlgProcMLess
|
|
! fix inkey code for K_SH_BS
|
|
* some changes in defaults:
|
|
* font height: 20 (was 12)
|
|
* font width : 10 (was 8)
|
|
* font face : Courier New (was Terminal)
|
|
* some castings
|
|
|
|
These are based on revisions by Lorenzo Fiorini, Peter Rees, Paul Tucker
|
|
and myself in GTWVT.
|
|
|
|
|
|
======================================================================
|
|
Synchronizing with:
|
|
=Id: gtwvt.c,v 1.127 2004/08/31 12:57:28 vouchcac Exp =
|
|
=Id: wvtcore.c,v 1.10 2004/08/30 14:10:20 vouchcac Exp =
|
|
=Id: wvtutils.c,v 1.13 2004/08/30 14:10:20 vouchcac Exp =
|
|
Changelog:
|
|
=Id: ChangeLog,v 1.3412 2004/09/06 20:01:01 druzus Exp =
|
|
Last Entry:
|
|
2004-09-06 22:00 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
======================================================================
|
|
|
|
-----------------------------------
|
|
APPLIED CHANGES ADOPTED FROM GTWVT:
|
|
-----------------------------------
|
|
+ Support Modeless Dialog (attached to Main Window).
|
|
This is adopted from original work of Pritpal Bedi on GTWVT.
|
|
! Bugfix in Clipboard function, copied from the fix by Pritpal Bedi on GTWVT.
|
|
+ some new GTI_ functions, adopted from Lorenzo Fiorini's work on GTWVT.
|
|
+ gt_gfxPrimitive() function, adopted from original work of Mauricio Abre
|
|
on GTWVT
|
|
! Improvement in internal point to char conversion, adopted from
|
|
Peter Rees' work on GTWVT
|
|
* If app has ANNOUNCE HB_NOSTARTUPWINDOW Main Window is not displayed
|
|
until after the app ready and call WVW_SHOWWINDOW(0).
|
|
This may result in a better visual effect as opposed to watching
|
|
the window resized or prepared during window initialization.
|
|
(Some app may also choose to never show the Main Window.)
|
|
This is adopted from original idea of Pritpal Bedi on GTWVT.
|
|
+ New Function WVW_NoStartupSubWindow() to get similar feature on subwindows.
|
|
If this feature is used, app must call WVW_ShowWindow([nWinNum], 1)
|
|
or simply WVW_ShowWindow([nWinNum]) to display the previously opened
|
|
window.
|
|
* Some castings and optimizations.
|
|
* Some changes in some EXPORTed C functions.
|
|
(All .PRG / HB_FUNC functions are not affected)
|
|
* aOffset parameter to more primitive GUI drawing functions
|
|
(following the changes on GTWVT by Pritpal Bedi)
|
|
|
|
*****************************************************************
|
|
WARNING!!!
|
|
WVW_DRAWROUNDRECT() parameter is shifted because of insertion of
|
|
a new parameter aOffset.
|
|
*****************************************************************
|
|
|
|
* Some changes to Tooltip functions
|
|
(adopted from Pritpal Bedi's work on GTWVT)
|
|
|
|
+ New .PRG / HB_FUNC functions: (adopted from Pritpal Bedi's on GTWVT)
|
|
+ HB_FUNC( WVW_UPDATEWINDOW )
|
|
+ HB_FUNC( WVW_DRAWCOLORRECT ) (similar to WVW_FillRectangle)
|
|
+ DlgModeless functions
|
|
+ many WIN_* functions, general window API wrapper functions
|
|
|
|
- Removed .PRG / HB_FUNC functions:
|
|
- WVW_DeleteObject()
|
|
(following GTWVT. Use WIN_DeleteObject() instead)
|
|
|
|
-----------------------------------------------
|
|
CHANGES ON GTWVT THAT ARE NOT ADOPTED ON GTWVW:
|
|
-----------------------------------------------
|
|
* "second layer of GUI"
|