Place, remove, and delete menu columns

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
xcall M_COLUMN([col_operation,] col_id[, ...])



(optional) One of the following column operations to perform: (n)


Place menu column. (default)


Remove menu column.


Delete menu column.


One or more column IDs on which to operate, or one of the following: (n)


All placed columns.


All placed global columns.


All placed local columns.


M_COLUMN adds, removes, or deletes a menu column.

You can specify more than one col_operation in the same M_COLUMN call by specifying multiple col_operation, col_id pairs. See Examples below.

The maximum number of placed primary menu columns is nine.

Col_id can either be a column ID (returned by M_LDCOL or MB_END) or one of the qualifiers listed above. Note the following:

D_REMOVE cannot remove an unplaced column. If you use D_REMOVE, you must make sure the columns you want to remove have been placed. If the column isn’t placed, Toolkit will do nothing, and there will be no indication that the remove operation failed for this reason.

D_REMOVE used with D_LOCAL removes all columns that are not global (including those belonging to any previous environment level).

D_DELETE can delete any local columns or it can delete any global columns that are unplaced in a prior environment level. If the column is placed at a prior environment level and you use D_DELETE to try to delete it, UI Toolkit will issue a fatal error: “Cannot delete window; window placed at environment level n.”


The maximum available memory for all loaded columns (including columns created with MB_COLUMN) is 65,565 bytes. If your application exceeds this, Toolkit will generate an error. Note that this limit includes all information about the columns: information you’ve specified and internal information. If you get this error, you must reduce the amount of information in the columns. For example, you might be able to reduce user text or shortcuts associated with the menu entries. (If you’ve defined your menu columns in a script file and there’s a lot of column information, test your program by accessing all the column menus, including subcolumns.)


The following example places the column whose ID is stored in util.

xcall m_column(D_PLACE, util)

The next example removes all local columns and deletes the column whose ID is stored in main.

xcall m_column(D_REMOVE, D_LOCAL, D_DELETE, main)