M_COLUMN

Place, remove, and delete menu columns

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET
xcall M_COLUMN([col_operation,] col_id[, ...])

col_operation

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

D_PLACE

Place menu column. (default)

D_REMOVE

Remove menu column.

D_DELETE

Delete menu column.

col_id

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

D_ALL

All placed columns.

D_GLOBAL

All placed global columns.

D_LOCAL

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.”

Note

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)