What is Space Between?
Space Between is a macro that can distribute selected objects such that the objects have a specified distance (horizontal or vertical) between them.
It can also - by specifying a negative value for distance - distribute selected objects such that adjacent objects overlap each other by a specified distance.
See Space Between in use:
Screenshot:
Using the macro.
One or both of the Apply buttons are enabled depending on the nature of the current selection. The selection must include two or more objects, and they cannot be locked. If the selection consists of guidelines, then they must either all be horizontal (to enable vertical spacing) or all be vertical (to enable horizontal spacing).
When Use True Size of Objects is checked, the macro uses the "true size" of objects (including outline width, corner styles, line caps, etc.) rather than "wireframe" size when determining how to position the objects.
Negative distance values are used to specify overlap between adjacent objects. The macro will not use an overlap that is equal to or larger than the associated size of the smallest object. The macro evaluates the selection to see if the specified overlap is valid, and will show a warning message if it is not valid. These additional operations cost some time, and that cost is higher if True Size of Objects is being used. This may be completely unnoticeable in many situations, but be aware that it may come into play if you are using overlap AND using "true size" AND working with a large number of objects.
Clicking on the Horizontal or Vertical label sets the value for the associated combobox to zero.
Using the Comboboxes.
The boxes for numeric entry are comboboxes. The drop-down list for a combobox can contain values stored for convenient access. If a combobox is not locked, then when a value in thatcombobox is used by the macro, that value is added to the top of the list. If an existing value is used from the list, then that value is moved to the top of the list. Values can also be manually added to the list.
Ctrl+clicking on a combobox sets that combobox to its default value.
Right-clicking on a combobox brings up a menu of options for managing it.
These options may include:
Units of Distance.
For a combobox that represent a distance, values are applied by the macro in whatever units (inches, millimeters, etc.) are shown beside the combobox. Those units can be specified by the user through the right-click context menu.
If “Follow Horizontal Ruler Units” is chosen, then the units for the combobox are the same units that are in use in the document for the horizontal ruler. If those units are changed in the document, then the macro automatically changes the units in the combobox to match.
Although this documentation makes references to “the list” for the combobox, there is not necessarily only one list. The combobox maintains a separate list for any unit that is used in it. When units for the combobox are changed, then the list associated with those units is loaded. The number of decimal places, and also whether a list is locked or not, are things that are handled independently for each list.
A Video Describing and Demonstrating the Special Features of My ComboBoxes:
Space Between Subs in the Macro Manager.
Compatibility.
Space Between was put together in a CorelDRAW X7 environment, and should work in versions X7-2020.
OK, where's the macro?
JQ_Space_Between_Current.zip (most recently updated 2021-07-17).
That includes the .GMS file and a simple icon that can be used on a CorelDRAW Toolbar.
Please note that, starting with the version released on 2020-05-09, this macro uses a different scheme for storing combobox value lists and some preferences in the Registry. If you have been using an older version of this macro, those "old" value lists and preferences will not be there when you use the newer version. If you want to "clean out" those old entries that are not used by the newer version of the macro, the best way to do so is to run the Remove_Space_Between_Registry_Entries sub, which will set the macro back to its default values.
Would it be possible to make this macro usable in X4?
I appreciate your interest, but I am probably not going to do that.
It would require me (1) being aware of any relevant differences in the CorelDRAW object model and API between X7 and X4 and then (2) rewriting a number of my functions and subroutines, if necessary, to account for those differences.
It would also require me to have X4 installed on a computer for testing.
Ok, I can understand that. Thanks for the reply and for all the Macro work you do for all of us!!