Hi Pritpal,

Thanks for the ground work. I will do the rest.

I plan to introduce:

typedef struct
{
   DWORD dwExStyle,    /* 0 */
   DWORD dwStyle,       /* WS_THICKFRAME|WS_OVERLAPPED|WS_CAPTION|

WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX */
   int        x,               /* 0 */
   int        y,               /* 0 */
   int        nWidth,       /* CW_USEDEFAULT */
   int        nHeight,      /* CW_USEDEFAULT */
   PHB_GT pGTParent,  /* NULL */
   int        iCmdShow,  /* SW_NORMAL */
   BOOL    bDefault,     /* TRUE */
} HB_WVTINIT, * PHB_WVTINIT;
and make it a member of HB_GTWVT structure.
Then if appln sends HB_GTI_WINPARAMS with corresponding array
then this structure is filled with new values and old values are returned.
This is only happen if pWVT->hWnd == NULL.
bDefault is set to FALSE and few actions are taken based on this flags,
for example, centering the window.

CreateWindow() function needs to be changed to CreateWindowEx().

I also plan to have something like HB_GTI_WINSTATE which may return
either a single value or an array of all values, i.e., x, y, width, height,
style,
current state == minimized, maximized, iconized, etc.

I know few of these values may be not useful in other GTs but for
sure GTWVT and GTWVG can exploit them in big way.

And because all is routed via Hb_GtInfo() gateway, I do not see any
portability issue. Mostly these feature are usable when
hb_gtReload()/hb_gtCreate() is called, so normal applications
may not even see any change.

Opinions?

But why do you need to add all these non console
related stuff to GTWVT??

You're again and again trying to add Windows
specific features to GTWVT, but such things
simply don't belong there. GTWVT is a console
emulation, and there is no need for any platform
specific whistles and bells there. Rather the main
point is that an application written for GTWVT can
be ported to GTWIN, GTXWC, GTTRM without
modification and with an equivalent feature set.

Moreover, now that the GT window isn't initially
popped up, most of these settings can be very well
made in app code, before touching the window, and
that's enough for anyone trying to use core GT
as flexible console windows.

I'd suggest to implement these in GTWVG, without
touching the core or core GTWVT. Also I think
there should be a range used by speciality
GTWVG HB_GTI_* defines, and these also should be
kept outside the core. This is the whole point
of the plugin nature of our GT system.

If there is something in GTWVG we opt to include
later in GTWVT, we can just easily take the code
and do this. But initially please do this job
in GTWVG.

Brgds,
Viktor

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to