It provides an easy way to add the commands Copy, Cut, Paste, Duplicate, Delete, Move, Drag, Undo and Redo.
- Edit functions: Copy, Cut, Paste, Duplicate, Delete, Move, Drag, CopyTo and MoveTo.
- History functions: Add, Undo and Redo.
- Group functions: EnableGroups, InsertGroup, RemoveGroup, InsertAtGroup, RemoveAtGroup, SetGroups, GetGroups, SetGroupCollapisable, RemoveAllGroups, CollapseAll and RefreshGroups.
- Copy, cut and paste between different ListViews.
- Keep history of individual ListViews to be used with Undo and Redo.
- Drag-and-Drop shows a destination bar to indicate where selected rows will be moved to.
- Auto-Scrolls ListViews when dragging above or below them.
- Easily add and manage ListView Groups.
- Supports Right-Click drag.
- Supports Checked ListViews.
- Supports ListViews with Icons.
- Customize Auto-Scroll delay, thickness and color of destination bar.
- They all operate on the active ListView control, like AHK built-in functions.
- Edit functions can be called directly as easy as
^c::LV_Rows.Copy()(except CopyTo and MoveTo that need to be initialized with a HWND).
- History and Group functions must be initialized via
Handle := New LV_Rows().
- To keep original icons you must initialize it passing the ListView's HWND, e.g.
Handle := New LV_Rows(Hwnd).
- The Drag function must be called from the LV G-Label when the Drag event occurs.
- You can manage multiple listviews with the same Handle.
- Pass the HWND's in inialization, e.g.
Handle := New LV_Rows(Hwnd1, Hwnd2, Hwnd3...)and use
SetHwnd()to select them.
InsertHwnd()to add more HWND's to the Handle.
Sources, documentation and examples on GitHub
Special thanks to Micahs for the base code for the Drag function and to just me for the LV_EX library used for the Group functions.