Skip to content

Releases: jovibor/HexCtrl

HexCtrl 3.6

15 Mar 01:05
Compare
Choose a tag to compare
  • New interface methods:
    • GetScrollRatio
    • IsInfoBar
    • GetDlgItemHandle, to retrieve HWNDs of dialogs' items.
  • New EHexDataType enum added
  • New Sample Dialog DLL project added, for showing HexCtrl work as a DLL
  • New UnitTest project added
  • New HEXCTRL_FLAG_DLG_NOESC flag added, common for all dialogs
  • New IHexTemplates::AddTemplate(PCHEXTEMPLATE pTemplate) method added
  • GetColors() interface method now returns a const reference
  • Two new members added to the HEXCOLORS struct: clrBkBkm, clrFontBkm (Bk/Font colors for bookmarks)
  • HEXBKM struct: new member added HEXCOLOR stClr, instead of two COLORREFs to be consistent with the rest of codebase
  • HEXTEMPLATEFIELD struct: new HEXCOLOR stClr instead of two COLORREFs
  • GetWindowHandle renamed to GetWndHandle, and now takes second argument bool fCreate
  • Static IHexTemplates::LoadFromFile function added, to be able to load templates once upfront and then add to many HexCtrls
  • HEXTEMPLATEFIELD->HEXTEMPLFIELD
  • Operations dialog redesigned
    • Description added for every operation
    • SSE intrinsics added for most of the Operations
    • OPER_ASSIGN speed increased drastically
    • Speed of some operations has increased up to 15x times
    • OPER_CEIL/OPER_FLOOR renamed to OPER_MAX/OPER_MIN
  • CreateHexCtrl now takes HINSTANCE arg defaulted to nullptr
  • Data Interpreter binary property now shows binary representation of the selected data type, previously it was limited to just one byte
  • Search dialog redesigned
    • Added range start/end fields
    • Find All/Replace All speed increased drastically
    • Found/Replaced amount is now shown in the search Callback's dialog
    • SSE intrinsics added for 1, 2, 4 bytes data size, search speed has increased significantly
  • Go to... dialog redesigned
  • CreateRawHexCtrl factory function removed
  • GetDlgData method removed. All HEXCTRL_FLAG_* removed
  • SetDlgData -> SetDlgProperties
  • Minor fixes and improvements

HexCtrl 3.5

05 Jan 00:45
Compare
Choose a tag to compare
  • Partially modularized
  • "End offset" field added to the Search dialog
  • HEXCREATE::stColor member changed to pColors pointer
  • HEXCREATE fields: dbWheelRatio->flScrollRatio, fPageLines->fScrollLines to avoid confusion with the term "Page" from the SetPageSize method
  • SetWheelRatio renamed to SetScrollRatio
  • (Set/Get)GroupMode renamed to (Set/Get)GroupSize and can now be used with arbitrary [1..64] size number
  • EHexCmd new members: CMD_GROUPDATA_INC, CMD_GROUPDATA_DEC
  • New mouse_wheel_up, mouse_wheel_down command names for setting in config file
  • New SetCharsExtraSpace interface method, to set extra space in pixels between adjacent chars
  • New members added to the HEXCREATE struct: dwCapacity, dwGroupSize, fOffsetHex
  • New HEXCTRL_FLAG_TEMPLMGR_NOESC, HEXCTRL_FLAG_DATAINTERP_NOESC, HEXCTRL_FLAG_BKMMGR_NOESC dialog flags added, to prevent dialogs from closing on Esc key
  • Overall search speed has been increased by 10-20%
  • Many internal fixes and improvements

HexCtrl 3.4

12 Aug 03:35
Compare
Choose a tag to compare

Breaking changes:

  • GetHexCtrlInfo method and HEXCTRLINFO struct have been removed
  • GetEncoding method renamed to GetCodepage
  • SetEncoding method renamed to SetCodepage.
  • EHexWnd::DLG_ENCODING -> DLG_CODEPAGE
  • EHexCmd::CMD_ENCODING_DLG -> CMD_CODEPAGE_DLG
  • EHexWnd::DLG_BKMMANAGER -> DLG_BKMMGR
  • HEXCOLORINFO struct and IHexVirtColors interface are slightly changed
  • CMD_CLPBRD_COPY_TEXTUTF16 -> CMD_CLPBRD_COPY_TEXTCP
  • CMD_APPEAR_FONTCHOOSE -> CMD_APPEAR_FONT_DLG
  • Renamed codes:
    • HEXCTRL_MSG_CARETCHANGE to HEXCTRL_MSG_SETCARET
    • HEXCTRL_MSG_SELECTION to HEXCTRL_MSG_SETSELECTION

New:

  • New "Reverse Bits" Operation added
  • New SetDlgData and GetDlgData interface methods added.
  • New notification codes added:
    • HEXCTRL_MSG_SETCAPACITY, HEXCTRL_MSG_SETCODEPAGE, HEXCTRL_MSG_SETFONT, HEXCTRL_MSG_SETGROUPMODE,
    • HEXCTRL_MSG_DLGBKMMGR, HEXCTRL_MSG_DLGCODEPAGE, HEXCTRL_MSG_DLGDATAINTERP, HEXCTRL_MSG_DLGGOTO,
    • HEXCTRL_MSG_DLGMODIFY, HEXCTRL_MSG_DLGSEARCH, HEXCTRL_MSG_DLGTEMPLMGR
  • New Flags added:
    • HEXCTRL_FLAG_TEMPLMGR_MINIMIZED, HEXCTRL_FLAG_TEMPLMGR_HEXNUM,
    • HEXCTRL_FLAG_TEMPLMGR_SHOWTT, HEXCTRL_FLAG_TEMPLMGR_HGLSEL, HEXCTRL_FLAG_TEMPLMGR_SWAPENDIAN,
    • HEXCTRL_FLAG_DATAINTERP_HEXNUM, HEXCTRL_FLAG_DATAINTERP_BE, HEXCTRL_FLAG_BKMMGR_HEXNUM

Other:

  • All the HEXCTRL_VERSION_*** constants are moved to the HexCtrl.h and now available for the client code

HexCtrl 3.3

15 Feb 00:08
Compare
Choose a tag to compare
  • Drag-n-drop for any files added to the Sample Dialog
  • Interface method GetFont(LOGFONTW& lf) signature was changed to auto GetFont()->LOGFONTW
  • Template Manager dialog redesigned a bit
  • Bookmark Manager dialog redesigned
  • Some EHexCmd entities were renamed to follow one common pattern:
    • CMD_BKM_DLG_MANAGER->CMD_BKM_DLG_MGR, CMD_DLG_TEMPLMGR->CMD_TEMPL_DLG_MGR, etc...
  • Renamed IHexBookmarks::ClearAll->RemoveAll
  • HexCtrlDef.h was removed
  • bool fShow member added to the HEXMENUINFO struct, to allow parent window disabling context menu showing up in response to the HEXCTRL_MSG_CONTEXTMENU message
  • Latest Rapidjson
  • Latest StrToNum
  • Minor bugs fixes

HexCtrl 3.2.1

13 Dec 05:52
Compare
Choose a tag to compare
  • Big improvement in HexCtrl's creation speed
  • GetHexCtrlInfo now returns HEXCTRLINFO instead of pointer
  • Further Templates improvements
    • array property added
    • CustomTypes, for user created types
  • Tree iteration in Templates manager is now much faster, and some other small improvements/fixes

HexCtrl 3.2

19 Nov 02:52
Compare
Choose a tag to compare

New

  • Template manager
  • Ability to set mouse scroll to exact amount of lines, SetWheelRatio now has second argument.

Misc

  • Fixed many inconsistencies in Data Interpreter with big-endian

HexCtrl 3.1.2

08 Oct 00:58
Compare
Choose a tag to compare
  • Sample dialog window's title now shows opened file name
  • Bugs fixes

HexCtrl 3.1.1

01 Aug 02:38
Compare
Choose a tag to compare

New:
InfoBar is now togglable, it can be hided/showed.

  • ShowInfoBar interface method
  • HEXCREATE::fInfoBar flag
  • HEXCOLORS::clrFontInfoParam, HEXCOLORS::clrFontInfoData colors for infobar

Other:
Many internal improvements/bug fixes.

HexCtrl 3.1.0

03 Jan 09:28
Compare
Choose a tag to compare

New

  • Paste as Text UTF-16 and Paste as Text Codepage (to paste text in currently displaying CP) menu
  • UTF-16 codepage in encodings dialog list
  • GetActualWidth, GetBookmarks, SetVirtualBkm interface methods
  • IHexBookmarks interface which is now the main housekeeper for both - internal and Virtual bookmarks.
  • New icons added to the context menu.

Changes

  • EHexCreateMode enum removed
  • All the Bkm* family functions have been removed along with the IHexVirtBkm interface

HexCtrl 3.0.0

18 Nov 01:46
Compare
Choose a tag to compare

HexCtrl now requires a C++20 compliant compiler, i.e. MSVS 2019 or 2022.

New:

  • HexCtrl is now High DPI aware. All bitmaps changed to high-res for HighDPI compatibility
  • Experimental support for all encodings, with max chars greater than one
  • Appearance->Choose font dialog to set desirable font
  • Pseudo Random Data option in Fill with Data... dialog, for fast random data filling
  • Text UTF-8 search option
  • Shift + LeftMouseDblClick now selects whole row
  • Search and Fill with Data... routines now show current speed in MB/s
  • Double clicking on the text caption area now pops up encodings dialog
  • GetFont, GetDateInfo, SetDateInfo, GetUnprintableChar, SetUnprintableChar, SetRedraw interface methods

Improvements and changes:

  • Significantly improved search speed
  • Significantly improved Fill with Data... routines speed
  • Rendering speed has improved, less GDI system calls
  • swprintf functions have been superceded by a C++20 std::format facility
  • HEXDATA, HEXDATAINFO, HEXMODIFY structs now use std::span, as well as GetData method
  • Data Interpreter now correctly displays negative signed integral types
  • Lots of other internal changes, fixes and improvements