HMG 3.4.0 Announce

( Post by Rathinagiri )
Dear XBasers,

I am glad to release the new HMG 3.4.0 version. I hope you will be enjoying the new features of HMG.

With the updated MingW compiler the size of the HMG setup file is now 84 MB. We have plans to reduce this size considerably in the future versions.

As usual you can download the setup file from SourceForge site from here.

Change Log:

HMG 3.4.0 (Test) 2015/01/18

  • Updated to latest Harbour Nightly Build (2015-01-14)
  • Updated to latest MingW Compiler
  • New HMG IDE version 1.0.8
    • now stops build app if app is running
    • if not specified text editor, search for text editor associate with PRG files
  • New in Grid control (see samples in grid samples folder)
    Note:

        Grid Group is not available when application is running on Windows versions of 32-bits
        You can check if your application is running on Win32 with the function HMG_IsRunAppInWin32()
      In Win32 GroupEnabled := .T. is ignored whitout needs to change the code.
    • <ParentWindowName>.<GridControlName>.PaintDoubleBuffer [ := | –>] lBoolean // Paints via double-buffering, which reduces flicker
    • New Groups in Grid (see samples in grid samples folder)
      • <ParentWindowName>.<GridControlName>.GroupEnabled [ := | –>] lBoolean
      • <ParentWindowName>.<GridControlName>.GroupDeleteAll
      • <ParentWindowName>.<GridControlName>.GroupDelete ( nGroupID )
      • <ParentWindowName>.<GridControlName>.GroupExpand ( nGroupID )
      • <ParentWindowName>.<GridControlName>.GroupCollapsed ( nGroupID )
      • <ParentWindowName>.<GridControlName>.GroupAdd ( nGroupID [, nPosition ] )
      • <ParentWindowName>.<GridControlName>.GroupInfo ( nGroupID ) [ := | –>] { [ cHeader ] , [ nAlignHeader ] , [ cFooter ] , [ nAlingFooter ] , [ nState ] }
      • <ParentWindowName>.<GridControlName>.GroupItemID ( nItem ) [ := | –>] nGroupID
        • nAlignHeader and nAlingFooter –> GRID_GROUP_LEFT | GRID_GROUP_CENTER | GRID_GROUP_RIGHT
        • nState –> GRID_GROUP_NORMAL | GRID_GROUP_COLLAPSED
      • <ParentWindowName>.<GridControlName>.GroupDeleteAllItems ( nGroupID )
      • <ParentWindowName>.<GridControlName>.GroupGetAllItemIndex ( nGroupID ) –> anItemIndex
      • <ParentWindowName>.<GridControlName>.GroupCheckBoxAllItems ( nGroupID ) := lCheck
      • <ParentWindowName>.<GridControlName>.GroupExist ( nGroupID ) –> lBoolean
    • New CheckBox to select item(s) in Grid (see samples in grid samples folder)
      • <ParentWindowName>.<GridControlName>.CheckBoxEnabled [ := | –>] lBoolean
      • <ParentWindowName>.<GridControlName>.CheckBoxItem ( nRow ) [ := | –>] lBoolean
      • <ParentWindowName>.<GridControlName>.CheckBoxAllItems := lCheck
      • Method ON CHECKBOXCLICKED()
    • New DynamicFont property to have any text font and style in any cell/header.
      • <ParentWindowName>.<GridControlName>.HeaderDYNAMICFONT ( nCol ) := {|| {cFontName, nFontSize, [ lBold, lItalic, lUnderline, lStrikeOut ]} }
    • New HeaderDynamicForeColor and HeaderDynamicBackColor
      • <ParentWindowName>.<GridControlName>.HeaderDYNAMICFORECOLOR ( nCol ) := {|| aColor }
      • <ParentWindowName>.<GridControlName>.HeaderDYNAMICBACKCOLOR ( nCol ) := {|| aColor }
    • Miscellaneous Features
      • <ParentWindowName>.<GridControlName>.Image ( lTransparent ) := { “image1.png”, “image2.bmp”, … }
      • <ParentWindowName>.<GridControlName>.ImageIndex ( nRow , nCol ) [ := | –>] nIndex
      • <ParentWindowName>.<GridControlName>.ImageList [ := | –>] hImageList
      • <ParentWindowName>.<GridControlName>.ColumnDYNAMICFONT ( nCol ) := {|| {cFontName, nFontSize, [ lBold, lItalic, lUnderline, lStrikeOut ]} }
      • <ParentWindowName>.<GridControlName>.HeaderImageIndex ( nCol ) [ := | –>] nIndex
      • <ParentWindowName>.<GridControlName>.ChangeFontSize := nSize | NIL // Useful for use Dynamic Font with more (less) Height than the size of font the Grid control
  • New Dynamic Font (in Grid and Tree controls see respective samples in Grid and Tree sample folders )
  • New ToolTip Menu
    • SET TOOLTIPMENU ON|OFF –> For default ToolTip MENU is ON
    • SET TOOLTIPMENU TO <lOn>
    • ToolTipMenuIsActive ()
  • New ToolTip Custom Draw (see DOC\Misc. Commands\Set ToolTipCustomDraw)
  • New Method ON ENTER in CheckBox and CheckButton
  • New concept of Array Font for various uses described elsewhere below.
    • aFont := ARRAY FONT <cFontName> SIZE <nFontSize> [ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ] –> { cFontName, nFontSize, lBold, lItalic, lUnderline, lStrikeout }
    • aFont := CREATE ARRAY FONT <cFontName> SIZE <nFontSize> [ BOLD <lBold> ] [ ITALIC <lItalic> ] [ UNDERLINE <lUnderline> ] [ STRIKEOUT <lStrikeout> ] –> { cFontName, nFontSize, lBold, lIitalic, lUnderline, lStrikeout }
  • New Functions:
    • FindFirstChangeNotification()
    • FindNextChangeNotification()
    • FindCloseChangeNotification()
    • WaitForSingleObject()
    • WaitForMultipleObjects()
    • SetCursorSystem()
    • SetWindowTheme (hWnd, cSubAppName, cSubIdList)
    • HMG_StrCmp ( Text1 , Text2 , [ lCaseSensitive ] ) –> CmpValue
    • HMG_IsValidFileName ( cFileName ) // cFileName –> ONLY FILE NAME without Path
    • HMG_GetFileAssociatedWithExtension ( cExt ) –> return the full file name associated with extension (extension with point, e.g. “.TXT”)
    • HMG_IsRunAppInWin32() –> lBoolean
    • HMG_IsWinVistaOrLater() –> lBoolean
    • HMG_GetCompileVersion32 ( HMG_cPath ) –> cVersion
    • HMG_GetCompileVersion64 ( HMG_cPath ) –> cVersion
    • HMG_GetCompileVersionRaw ( HMG_cPath ) –> acVersion
    • Enhanced HMGVersion(), no longer depends on the version.txt and version64.txt files
            Constants _HMG_VERSION_NUMBER_ and _HMG_VERSION_PATCH_ now are strings in MiniGUI.CH file
    • HMG_GetPrivateProfileSectionNames ( cFileName ) —> return array { “SectionName1”, “SectionName2”, … }
    • HMG_GetPrivateProfileSection ( cFileName, cSectionName ) —> return array { “Key1=string1”, “Key2=string2”, … }
    • HMG_CREATEFILE_UTF16LE_BOM
    • Low Level Macro ( C level ) for you easily call functions from a DLL:
      HMG_DEFINE_DLL_FUNC ( win_Shell_GetImageLists, // user function name
                                 “Shell32.dll”, // dll name
                                 BOOL, // function return type
                                 WINAPI, // function type
                                 “Shell_GetImageLists”, // dll function name
                                 (HIMAGELIST *phimlLarge, HIMAGELIST *phimlSmall), // dll function parameters (types and names)
                                 (phimlLarge, phimlSmall), // function parameters (only names)
                                 FALSE ) // return value if fail call function of dll
      ( see sample at SOURCE\c_winapimisc.c and SOURCE\c_BosTaurus.c )
  • New in SPLITBOX functions:
    • REBAR_GETHEIGHT()
    • REBAR_GETBANDCOUNT()
    • REBAR_GETBARRECT()
    • REBAR_GETBANDBORDERS()
    • REBAR_SETMINCHILDSIZE()
    • REBAR_GETBANDINFO()
  • New Set icon of StatusBar item
    • <ParentWindowName>.StatusBar.IconHandle (nItem) := hIcon
  • New Addition of 455 new colors definitions, see INCLUDE\i_color.ch (contrib by Grigory Filatov)
  • New GetFile() and PutFile() functions support parameter nFilterIndex, this is an index of the filter array (based upon a contribution of Kevin Carmody)
  • New in PLAYER control:
    • Volume (Set/Get)
    • Seek (Set)
  • New in Tree Control
    • New Events
      • ON EXPAND
      • ON COLLAPSE
      • This.TreeItemValue // available for OnExpand and OnCollapse events and DynamicForeColor, DynamicBackColor and DynamicFont properties.
    • New DynamicFont, DynamicForeColor and DynamicBackColor
      • <ParentWindowName>.<TreeControlName>.DynamicForeColor := {|| aColor }
      • <ParentWindowName>.<TreeControlName>.DynamicBackColor := {|| aColor }
      • <ParentWindowName>.<TreeControlName>.DynamicFont := {|| {cFontName, nFontSize, [ lBold, lItalic, lUnderline, lStrikeOut ]} }
      • <ParentWindowName>.<TreeControlName>.ChangeFontSize := nSize | NIL // Useful for use Dynamic Font with more (less) Height than the size of font the Tree control
    • New properties
      • <ParentWindowName>.<TreeControlName>.IsExpand ( nValue ) –> lBoolean
      • <ParentWindowName>.<TreeControlName>.ImageList [ := | –> ] hImageList
      • <ParentWindowName>.<TreeControlName>.HasLines [ := | –> ] lBoolean
      • <ParentWindowName>.<TreeControlName>.FullRowSelect [ := | –> ] lBoolean
      • <ParentWindowName>.<TreeControlName>.HasButton ( nValue ) [ := | –> ] lBoolean
      • <ParentWindowName>.<TreeControlName>.Cargo ( nValue ) [ := | –> ] xData
      • <ParentWindowName>.<TreeControlName>.CargoScan ( xData ) –> nValue | NIL
      • <ParentWindowName>.<TreeControlName>.GetPathValue ( nValue ) –> anPathValue | NIL
      • <ParentWindowName>.<TreeControlName>.GetPathName ( nValue ) –> acPathName | NIL
      • <ParentWindowName>.<TreeControlName>.GetDisplayLevel ( nValue ) –> nDisplayColumn | NIL
  • New Printer Features
    • Select Printer PDF (Directly print to a pdf file)
    • Select Printer DialogFileName and SaveAs
      • SELECT PRINTER <cPrinter> [ PREVIEW ] [ NOSAVEBUTTON ] [ DIALOGFILENAME <cDialogFileName> ] [ SAVEAS <cFullFileName> ]
        • cDialogFileName –> [ cPath\ ] cFileName + [ cExt ] –> “.PDF” | “.BMP” | “.JPG” | “.GIF” | “.TIF” |”.PNG” | “.EMF”
        • cFullFileName –> [ cPath\ ] cFileName + cExt –> “.PDF” | “.BMP” | “.JPG” | “.GIF” | “.TIF” |”.PNG” | “.EMF”
    • New property ANGLE <nAngle> in PRINT DATA (nAngle: are in degrees and counterclockwise)
  • New BosTaurus Functions (Undocumented)
    • BT_ToolBarBottomHeight (Win)
    • BT_ToolBarBottomWidth (Win)
    • BT_ToolBarTopHeight (Win)
    • BT_ToolBarTopWidth (Win)
    • BT_MathPI ()
    • BT_MathSIN ( AngleInDegrees )
    • BT_MathCOS ( AngleInDegrees )
    • BT_MathTAN ( AngleInDegrees )
    • BT_MathCircumferenceY ( Radius, AngleInDegrees ) –> nRow
    • BT_MathCircumferenceX ( Radius, AngleInDegrees ) –> nCol
    • BT_MathCircumferenceArcAngle ( Radius, Arc ) –> AngleInDegrees
    • BT_SelectObject (hDC, hGDIobj)
    • BT_DeleteObject (hGDIobj)
    • BT_DrawTextSize (hDC, cText, cFontName, nFontSize, nTypeText) –> { w , h , ABC of first character }
    • BT_RegionCreateElliptic (nCol1, nRow1, nCol2, nRow2)
    • BT_RegionCombine ( @hRgnDest, hRgnSrc1, hRgnSrc2, nCombineMode ) –> nResult
    • BT_RegionFrame (hDC, hRgn, aColor, nWidth, nHeight)
    • BT_ImageListGetSystemIcon ( [ lLargeIcon ] ) –> hImageList ( You NEVER add, remove or delete icons from the System Imagelist )
    • BT_ImageListExtractIcon (hImageList, nIndex) –> hIcon
    • BT_DirectoryInfo ( [nCSIDL | cPath] , [nTypeList] , @nIndexRoot, @CSIDL_Name ) –> { { Data1, Data2, Data3, … } , … }
  • New Demos
    • MiniWriter – RichEditBox demo in applications (contrib by Eduardo L. Azar)
    • New folder ..\SAMPLES\Miscellaneous\Colors
    • New folder ..\SAMPLES\Controls\ToolTip with:
      • ToolTip_CustomDraw
      • ToolTip_Menu
  • Fixed bug in RichEdit Control Justify text and in ParaNumberingStyle constants (contrib by Kevin Carmody)
  • Enanced icons at ToolButtons in _HMG_PRINTER_SHOWPREVIEW (contrib by Renegado)
  • Fixed decimals convertion and new functions: HMG_GetPrivateProfileSectionNames and HMG_GetPrivateProfileSection for INI files

Note: New Items in blue color to differentiate from previous HMG 3.4.0 (Retired) version.