Hello All I am about to introduce Active-X controls in GTWVG with EVENTS management. The first results are very encouraging. The basic code is contributed by Andy Wos which I have tuned-up a little to adopt to GTWVG/GTWVT. Our beloved console window is now able to host any Active-X control like Internet Explorer, Acrobat, Excel, Shell Explorer, etc. and has the capabilities to respond to events fired by the control and manage its methods and properties as usual Harbour objects.
Here is a executable and sources. Just copy files in the zip to harbour/contrib/gtwvg/tests and run the demowvg.exe. Click <Modeless Dialogs><Active-X ...> prompts. Just do not give attention to screen refresh glitches. To close the window, press ESC. If ESC does not work, then click on taskbar to minimize and then maximize then press ESC. Sometimes focus is not moved back to console even you click on the title bar. http://www.vouch.info/downloads/demowvg_ax.zip As these type of functionality is always a pain if done via function calls only, I intend to introduce class framework to manage these components properly. To begin with I have in mind a Dialog class and an Active-X class. Dialog class will be a wrapper to existing pre called functions to configure a console window like: [SEC 1] hb_gtReload( 'WVG' ) hb_gtInfo( HB_GTI_PRESPARAMS, { , , 10, 10, 400, 400, , .F., .F. } ) SetColor( 'N/W' ) CLS SetMode( 30,60 ) SetCursor( 0 ) Wvt_ShowWindow( 1 ) hb_gtInfo( HB_GTI_CLOSABLE, .F. ) after which the actual console code becomes eligible for rendering [SEC 2] Alert( 'I am in the child window!' ) and then the cleanup ( if it is a window in same thread ) [SEC 3] pGT1 := NIL hb_gtSelect( pGT ) hb_gtInfo( HB_GTI_ENABLE, pGT ) hb_gtInfo( HB_GTI_SETFOCUS, pGT ) Now to the real point of discussion: As this effort may lead to building a GUI framework, as I think positively, I want to start it on the firm grounds from the base itself. There are a lot many object modals are in usage in Harbour, or say, Clipper world, viz., FWH, XAILER, VXH, HWGUI, MINIGUI, etc., and XBASE++. For me Xbase++ modal stands best of all and has a clear implementation details in place. Now the namespace issue. I propose to have all classes same names as Xbase++ and same number of parameter passing and same life cycle. The only difference will be "Hb" as prefix instrad of "Xbp". thus XbpActiveXControl() => HbActiveXControl(). Source file naming may also follow a standard rule. I need your opinions on the topic before I start writing something. Regards Pritpal Bedi -- View this message in context: http://www.nabble.com/Higher-Level-Classes-to-Manage-Consoles-tp20315173p20315173.html Sent from the Harbour - Dev mailing list archive at Nabble.com. _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour