XMVACREATESIMPLEPOPUPMENU(3)

πŸ“¦
version 2.5.2 Β· 2 versions
, in alpine 3.24, arch rolling, centos-stream 9, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ‘‘ XmVaCreateSimplePopupMenu πŸ’–

okay bestie, so you know how we've been talking about XmVaCreateSimplePopupMenu? It lives in the library call section of the manual, and honestly? she's that girl. A RowColumn widget convenience creation function. periodt.


✨ NAME ✨

XmVaCreateSimplePopupMenu β€” A RowColumn widget convenience creation function πŸŽ€


🌸 SYNOPSIS 🌸

#include <Xm/RowColumn.h>
Widget XmVaCreateSimplePopupMenu(
Widget parent,
String name,
XtCallbackProc callback);

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so XmVaCreateSimplePopupMenu creates an instance of a RowColumn widget of type XmMENU_POPUP and hands you back the associated widget ID. and like. the way it does it? this routine uses the ANSI C variable-length argument list (varargs) calling convention. very demure, very varargs πŸ’…

This routine creates a Popup menu pane and its button children. and now for the naming lore, which is honestly so cute:

  • each button gets named button_n, where n is an integer from 0 (zero) up to the number of buttons in the menu minus 1
  • each separator gets named separator_n, where n is an integer from 0 (zero) up to the number of separators in the menu minus 1
  • each title gets named label_n, where n is an integer from 0 (zero) up to the number of titles in the menu minus 1

Buttons, separators, and titles are named and created in the order in which they are specified in the variable portion of the argument list. no skipping, no reordering, the order is the order fr fr ✨

the arguments, bestie:</purpose>

  • parent β€” Specifies the widget ID of the parent of the MenuShell
  • name β€” Specifies the name of the created widget
  • callback β€” Specifies a callback procedure to be called when a button is activated or when its value changes. This callback function is added to each button after creation. For a CascadeButtonGadget or a PushButtonGadget, the callback is added as the button's XmNactivateCallback, and it is called when the button is activated. For a ToggleButtonGadget, the callback is added as the button's XmNvalueChangedCallback, and it is called when the button's value changes. The button number is returned in the client_data field. πŸ‘‘

🧚 the varargs situation 🧚

The variable portion of the argument list is made up of groups of arguments. The first argument in each group is a constant or a string, and that's what determines which arguments follow in that group. The last argument in the list must be NULL. like, mandatory. do not forget it. πŸ™ˆ

The following list describes the possible first arguments in each group of varargs:

  • XmVaCASCADEBUTTON β€” This is followed by two additional arguments. The set specifies one button in the PopupMenu and some of its resource values. The button created is a CascadeButtonGadget. Following are the additional two arguments, in order:
    • label β€” The label string, of type XmString
    • mnemonic β€” The mnemonic, of type KeySym
  • XmVaPUSHBUTTON β€” This is followed by four additional arguments. The set specifies one button in the PopupMenu and some of its resource values. The button created is a PushButtonGadget. Following are the additional four arguments, in order:
    • label β€” The label string, of type XmString
    • mnemonic β€” The mnemonic, of type KeySym
    • accelerator β€” The accelerator, of type String
    • accelerator_text β€” The accelerator text, of type XmString
  • XmVaRADIOBUTTON β€” This is followed by four additional arguments. The set specifies one button in the PopupMenu and some of its resource values. The button created is a ToggleButtonGadget. Following are the additional four arguments, in order:
    • label β€” The label string, of type XmString
    • mnemonic β€” The mnemonic, of type KeySym
    • accelerator β€” The accelerator, of type String
    • accelerator_text β€” The accelerator text, of type XmString
  • XmVaCHECKBUTTON β€” This is followed by four additional arguments. The set specifies one button in the PopupMenu and some of its resource values. The button created is a ToggleButtonGadget. Following are the additional four arguments, in order:
    • label β€” The label string, of type XmString
    • mnemonic β€” The mnemonic, of type KeySym
    • accelerator β€” The accelerator, of type String
    • accelerator_text β€” The accelerator text, of type XmString
  • XmVaTITLE β€” This is followed by one additional argument. The pair specifies a title LabelGadget in the PopupMenu. Following is the additional argument:
    • title β€” The title string, of type XmString
  • XmVaSEPARATOR β€” This is followed by no additional arguments. It specifies one separator in the PopupMenu.
  • XmVaDOUBLE_SEPARATOR β€” This is followed by no additional arguments. It specifies one separator in the PopupMenu. The separator type is XmDOUBLE_LINE. (double the line, double the drama πŸ’…)
  • resource_name β€” This is followed by one additional argument, the value of the resource, of type XtArgVal. The pair specifies a resource and its value for the RowColumn widget.
  • XtVaTypedArg β€” This is followed by four additional arguments. The set specifies a resource and its value for the RowColumn widget. A resource type conversion is performed if necessary. Following are the additional four arguments, in order:
    • name β€” The resource name, of type String
    • type β€” The type of the resource value supplied, of type String
    • value β€” The resource value (or a pointer to the resource value, depending on the type and size of the value), of type XtArgVal
    • size β€” The size of the resource value in bytes, of type int
  • XtVaNestedList β€” This is followed by one additional argument of type XtVarArgsList. This argument is a nested list of varargs returned by XtVaCreateArgsList.

For more information on variable-length argument lists, see the X Toolkit Intrinsics documentation. πŸ“š

A number of resources exist specifically for use with this and other simple menu creation routines. For a complete definition of RowColumn and its associated resources, see XmRowColumn(3). iykyk 🫢


πŸ’œ RETURN πŸ’œ

Returns the RowColumn widget ID. that's it, that's the gift 🎁



and that's the whole page, bestie!! this one's from the library call manual, and the footer's just the page name again β€” XmVaCreateSimplePopupMenu(library call) β€” sitting there all iconic at the bottom. go build ur popup menu, ur gonna slay πŸ’–βœ¨πŸŽ€