VENDORSHELL(3)
π VendorShell β the VendorShell widget class π
okay bestie, pull up a chair, we're doing a Motif widget class today and honestly? she's kind of a big deal. This is VendorShell, straight outta the library-call section of the manual (VendorShell(library call), if you're keeping receipts). She's the supporting superclass energy behind a whole family of shell widgets, and she has opinions about window managers.
β¨ SYNOPSIS β¨
#include <Xm/Xm.h>
#include <X11/Shell.h>
two includes, that's it, that's the whole vibe check.
πΈ DESCRIPTION πΈ
VendorShell is a Motif widget class, and her whole job is being the supporting superclass for every shell class that's visible to the window manager and that is not override redirect. Like, she's the mom friend holding the group together. She contains the resources that describe the MWM-specific look and feel, and she also manages all the MWM-specific communication that every single VendorShell subclass needs. Want more on that? Go read the mwm reference page, bestie, it's all there.
She is also the one responsible for managing toolTips. And not in a subtle way β this is her whole side quest:
- All
XmPrimitiveandXmGadgetsubclasses have anXmNtoolTipStringresource. - If
XmNtoolTipEnableisTrue, and the pointer enters a Primitive or Gadget that has traversal enabled, and theXmNtoolTipStringis notNULLβ then theXmNtoolTipStringgets displayed, according to theVendorShellresources that control toolTips.
and the way she displays it?? iconic, honestly. VendorShell displays the XmNtooTipString inside an XmLabel that is a child of a transientShell. The name of that transientShell is TipShell, and the name of the XmLabel is TipLabel. So if you want to style the tip's appearance, you go specify resources on those two widgets. That's the move. slay π
heads up bestie: if your app uses theXmNmwmDecorations,XmNmwmFunctions, orXmNmwmInputModeresource, you should include the fileXm/MwmUtil.h. Don't skip this, fr fr. π«Ά
now the sizing lore, because this part is lowkey important π
Setting XmNheight, XmNwidth, or XmNborderWidth for either a VendorShell or its managed child usually sets that resource to the same value in both the parent and the child. Cute, right?
BUT. when an off-the-spot input method exists, the height and width of the shell may be greater than those of the managed child, because the shell is making room to accommodate the input method. In that case:
- setting
XmNheightorXmNwidthfor the shell does not necessarily set that resource to the same value in the managed child, and - setting
XmNheightorXmNwidthfor the child does not necessarily set that resource to the same value in the shell.
so no, they're not just magically synced. the input method said "excuse me, I need space." π
Now for the managed child of a VendorShell β and this one's the classic gotcha β regardless of the value of the shell's XmNallowShellResize, setting XmNx or XmNy sets the corresponding resource of the parent, but it does not change the child's position relative to the parent.
And if you do XtGetValues for the child's XmNx or XmNy? You get the value of the corresponding resource in the parent. Not the child. The parent. don't say I didn't warn you π
The x and y coordinates of the child's upper left outside corner relative to the parent's upper left inside corner are both 0 (zero) minus the value of XmNborderWidth.
β οΈ caveat alert β οΈ Note that the Inter-Client Communication Conventions Manual (ICCCM) allows a window manager to change or control the border width of a reparented top-level window. So your border width is not always yours to command. the WM has main character energy and there's nothing you can do about it. π
and one lil flex to round it out: VendorShell holds the XmQTspecifyRenderTable trait. β¨
π¦ Classes π¦
VendorShell inherits her behavior, resources, and traits from the Core, Composite, Shell, and WMShell classes. a whole lineage, a whole dynasty, we love a girl with roots.
- The class pointer is
vendorShellWidgetClass. - The class name is
VendorShell.
memorize those two, bestie, they come up. iykyk π
β¨ New Resources β¨
So the widget hands you a whole lil' set of widget resources β these are the knobs the programmer gets to turn to say what the data should actually look like π . You can also set resource values on the inherited classes if you wanna set attributes for this widget, bestie, we don't gatekeep.
Wanna reference a subresource by name or by class inside a .Xdefaults file? Then:
- By name or by class β yeet the
XmNorXmCprefix and just use the letters that are left over. - To set one of the defined values for a subresource in a
.Xdefaultsfile β yeet theXmprefix and use the rest of the letters. Lowercase or uppercase, either is fine, but keep those underscores between the words or it's over for you. - The
Accesscodes β they tell you what you're allowed to do with the subresource:Cβ you can set it at creation time πSβ you can set it withXtSetValuesGβ you can get it withXtGetValuesN/Aβ not applicable, babes, move on
Here's the full VendorShell Resource Set β every single row, no skips, no cap π
The VendorShell Resource Set π¦
XmNaudibleWarningβ classXmCAudibleWarning, typeunsigned char, defaultXmBELL, accessCSGXmNbuttonFontListβ classXmCButtonFontList, typeXmFontList, defaultdynamic, accessCSGXmNbuttonRenderTableβ classXmCButtonRenderTable, typeXmRenderTable, defaultdynamic, accessCSGXmNdefaultFontListβ classXmCDefaultFontList, typeXmFontList, defaultdynamic, accessCGXmNdeleteResponseβ classXmCDeleteResponse, typeunsigned char, defaultXmDESTROY, accessCSGXmNinputMethodβ classXmCInputMethod, typestring, defaultNULL, accessCSGXmNinputPolicyβ classXmCInputPolicy, typeXmInputPolicy, defaultXmPER_SHELL, accessCSGXmNkeyboardFocusPolicyβ classXmCKeyboardFocusPolicy, typeunsigned char, defaultXmEXPLICIT, accessCSGXmNlabelFontListβ classXmCLabelFontList, typeXmFontList, defaultdynamic, accessCSGXmNlabelRenderTableβ classXmCLabelRenderTabel, typeXmRenderTable, defaultdynamic, accessCSGXmNlayoutDirectionβ classXmCLayoutDirection, typeXmDirection, defaultXmLEFT_TO_RIGHT, accessCGXmNmwmDecorationsβ classXmCMwmDecorations, typeint, default-1, accessCGXmNmwmFunctionsβ classXmCMwmFunctions, typeint, default-1, accessCGXmNmwmInputModeβ classXmCMwmInputMode, typeint, default-1, accessCGXmNmwmMenuβ classXmCMwmMenu, typeString, defaultNULL, accessCGXmNpreeditTypeβ classXmCPreeditType, typeString, defaultdynamic, accessCSGXmNverifyPreeditβ classXmCVerifyPreedit, typeBoolean, defaultFalse, accessCSGXmNshellUnitTypeβ classXmCShellUnitType, typeunsigned char, defaultXmPIXELS, accessCSGXmNtextFontListβ classXmCTextFontList, typeXmFontList, defaultdynamic, accessCSGXmNtextRenderTableβ classXmCTextRenderTable, typeXmRenderTable, defaultdynamic, accessCSGXmNtoolTipPostDelayβ classXmCToolTipPostDelay, typeint, default5000, accessCSGXmNtoolTipPostDurationβ classXmCToolTipPostDuration, typeint, default5000, accessCSGXmNtoolTipEnableβ classXmCToolTipEnable, typeBoolean, defaultFalse, accessCSGXmNunitTypeβ classXmCUnitType, typeunsigned char, defaultXmPIXELS, accessCSGXmNuseAsyncGeometryβ classXmCUseAsyncGeometry, typeBoolean, defaultFalse, accessCSG
Heads up bestie:XmCLabelRenderTabelis spelled exactly like that in here βTabel, notTableβ so copy it character for character when you use it or the resource lookup will ghost you π
XmNaudibleWarning
Tells ya whether an action also fires off its little beep-beep moment π. Possible values are XmBELL and XmNONE.
XmNbuttonFontList
The font list that gets used for button descendants. Peep the XmNbuttonRenderTable resource if you wanna know more.
XmNbuttonRenderTable
The render table used for VendorShell's button descendants. Here's the tea π« on how it gets picked: if this value is NULL at initialization and XmNdefaultFontList isn't NULL, then XmNbuttonRenderTable gets initialized to the value of XmNdefaultFontList. If XmNdefaultFontList is NULL, the widget's parent hierarchy gets searched for an ancestor holding the XmQTspecifyRenderTable trait. Find one? Then XmNbuttonRenderTable initializes to the XmBUTTON_RENDER_TABLE value of that ancestor widget. Find none? Then the default is implementation dependent, no cap. Go read XmRenderTable(3) for the full lore on creating and structuring a render table β¨.
XmNdefaultFontList
A default font list for VendorShell's descendants. Okay so bestie, heads up: this resource is obsolete and only hangs around for compatibility with earlier releases. It's been replaced by XmNbuttonFontList, XmNlabelFontList, and XmNtextFontList. Use those π
.
XmNdeleteResponse
Determines what the shell does when it catches a WM_DELETE_WINDOW message. Three possible settings, pick your fighter:
XmDESTROYXmUNMAPXmDO_NOTHING
The resource gets scanned, and the appropriate action happens after the WM_DELETE_WINDOW callback list (if there even is one) that's registered with the Protocol manager has been called. Order matters, iykyk.
XmNinputMethod
The string that sets the locale modifier for the input method. Important: when XtGetValues is called on this resource, what comes back is a pointer to the actual resource value β so do not free it π.
XmNinputPolicy
The policy for creating an Input Context (IC) for this shell. Values:
XmPER_SHELLβ only one XIC is created per shell.XmPER_WIDGETβ one XIC is created for each widget.
XmNkeyboardFocusPolicy
Decides how keyboard focus gets allocated inside the widget hierarchy rooted at this shell. For this client-side focus management to even kick in, the X keyboard focus has to be directed somewhere in that hierarchy. Possible values:
XmEXPLICITβ click-to-type policy.XmPOINTERβ pointer-driven policy.
XmNlabelFontList
The font list used for label descendants. See the XmNlabelRenderTable resource.
XmNlabelRenderTable
The font list used for VendorShell's label descendants (Labels and LabelGadgets). Okay same drill as the button one, but make it labels: if this value is NULL at initialization and XmNdefaultFontList isn't NULL, then XmNlabelFontList gets initialized to the value of XmNdefaultFontList. If XmNdefaultFontList is NULL, the widget's parent hierarchy gets searched for an ancestor holding the XmQTspecifyRenderTable trait. Find one? XmNlabelRenderTable initializes to the XmLABEL_RENDER_TABLE of that ancestor widget. Find none? Default is implementation dependent. XmRenderTable(3) has the rest of the story π.
XmNlayoutDirection
The direction the subwidgets, a widget's children, or other visual components get laid out in. This policy applies as the default layout policy for all descendants of this VendorShell. Queen sets the direction, everyone follows π.
XmNmwmDecorations
Specifies the decoration flags β like, the specific decorations to add or remove from the window manager frame β for the _MOTIF_WM_HINTS property. The rules, fr fr:
- If any decoration flags are specified by the
_MOTIF_WM_HINTSproperty, only decorations indicated by both that property and the MWMclientDecorationandtransientDecorationresources get displayed. - If no decoration flags are specified by the
_MOTIF_WM_HINTSproperty, decorations indicated by the MWMclientDecorationandtransientDecorationresources get displayed. - The default for the
XmNmwmDecorationsresource is to not specify any decoration flags for the_MOTIF_WM_HINTSproperty.
The value of this resource is the bitwise inclusive OR of one or more flag bits. The possible flag bit constants, defined in the include file Xm/MwmUtil.h, are:
MWM_DECOR_ALLβ all decorations except those specified by other flag bits that are set.MWM_DECOR_BORDERβ client window border.MWM_DECOR_RESIZEHβ resize frame handles.MWM_DECOR_TITLEβ title bar.MWM_DECOR_MENUβ window menu button.MWM_DECOR_MINIMIZEβ minimize window button.MWM_DECOR_MAXIMIZEβ maximize window button.
XmNmwmFunctions
Specifies the function flags β the specific window manager functions to apply or not apply to the client window β for the _MOTIF_WM_HINTS property. Same energy as above:
- If any function flags are specified by the
_MOTIF_WM_HINTSproperty, only functions indicated by both that property and the MWMclientFunctionsandtransientFunctionsresources get applied. - If no function flags are specified by the
_MOTIF_WM_HINTSproperty, functions indicated by the MWMclientFunctionsandtransientFunctionsresources get applied. - The default for the
XmNmwmFunctionsresource is to not specify any function flags for the_MOTIF_WM_HINTSproperty.
The value of this resource is the bitwise inclusive OR of one or more flag bits. The possible flag bit constants, defined in the include file Xm/MwmUtil.h, are:
MWM_FUNC_ALLβ all functions except those specified by other flag bits that are set.MWM_FUNC_RESIZEβf.resize.MWM_FUNC_MOVEβf.move.MWM_FUNC_MINIMIZEβf.minimize.MWM_FUNC_MAXIMIZEβf.maximize.MWM_FUNC_CLOSEβf.kill.
XmNmwmInputMode
Specifies the input mode flag β application modal or system modal input constraints β for the _MOTIF_WM_HINTS property. If no input mode flag is specified by the _MOTIF_WM_HINTS property, then no input constraints get applied and input goes to any window. The default for the XmNmwmInputMode resource is to not specify any input mode flag for the _MOTIF_WM_HINTS property.
Ngl, an application that sets input constraints on a dialog usually reaches for the BulletinBoard'sXmNdialogStyleresource instead of the parent DialogShell'sXmNmwmInputModeresource. Do with that what you will π
The possible values for this resource, defined in the include file Xm/MwmUtil.h, are:
MWM_INPUT_MODELESSβ input goes to any window.MWM_INPUT_PRIMARY_APPLICATION_MODALβ input does not go to ancestors of this window.MWM_INPUT_SYSTEM_MODALβ input goes only to this window.MWM_INPUT_FULL_APPLICATION_MODALβ input does not go to other windows in this application.
XmNmwmMenu
The menu items the Motif window manager should add to the end of the window menu πΈ. The string holds a list of items separated by 0fP, formatted like this:
label [mnemonic] [accelerator] function
If you're specifying more than one item, separate the items with a newline character.
And okay, important again: when XtGetValues is called on this resource, the value you get back is a pointer to the actual resource value, so do not free it π.
XmNpreeditTypeβ this one picks which input method style(s) the input manager is allowed to use. bestie it's not just one thing, it can be a comma-separated list of any of these cuties:OffTheSpotβXIMPreeditAreaRootβXIMPreeditNothingNoneβXIMPreeditNoneOverTheSpotβXIMPreeditPositionOnTheSpotβXIMPreeditCallbacks
ngl this is the part where you look closely π
β when XtGetValues is called on this resource, what comes back is a pointer to the actual resource value, and you should not free it. like. do not touch. hands off. periodt.
XmNshellUnitTypeβ okay so this one is obsolete π it's literally only hanging around for compatibility with earlier releases of Motif. use theXmNunitTyperesource instead, fr fr.XmNtextFontListβ specifies the font list used for text descendants. see theXmNtextRenderTableresource for the whole situation πXmNtextRenderTableβ specifies the render table used for VendorShell's Text and List descendants. and the way it initializes is a whole journey, so let's go:- if this value is
NULLat initialization and the value ofXmNdefaultFontListis notNULL, thenXmNtextRenderTablegets initialized to the value ofXmNdefaultFontList. - if the value of
XmNdefaultFontListisNULL, then the parent hierarchy of the widget gets searched for an ancestor that holds theXmQTspecifyRenderTabletrait. - if such an ancestor is found π,
XmNtextRenderTableis initialized to theXmTEXT_RENDER_TABLEvalue of that ancestor widget. - if no such ancestor is found, the default is implementation dependent.
- if this value is
refer to XmRenderTable(3) for more info on creating and structuring a render table, iykyk.
XmNtoolTipEnableβ specifies whether toolTips are enabled for this shell or not. yes or no, on or off, slay or nay π¦XmNtoolTipPostDelayβ specifies the time, in milliseconds, to wait after the pointer enters a widget before posting the toolTip associated with this widget. so like, the lil' anticipation moment β¨XmNtoolTipPostDurationβ specifies the time, in milliseconds, that the toolTip is displayed. a value of0will display the tip indefinitely β forever and ever, no cap πXmNunitTypeβ the moment we've all been waiting for π this resource provides the basic support for resolution independence. it defines the type of units a widget uses with sizing and positioning resources. the default unit type isXmPIXELS.
you can also set the unit type right in resource files, using this format:
<floating value><unit>
where:
unitis<" ", pixels, inches, centimeters, millimeters, points, font units>pixelsis<pix, pixel, pixels>inchesis<in, inch, inches>centimeteris<cm, centimeter, centimeters>millimetersis<mm, millimeter, millimeters>pointsis<pt, point, points>font unitsis<fu, font_unit, font_units>floatis{"+"|"-"}{{<"0"-"9">*}.}<"0"-"9">*
β οΈ note that the type Dimension must always be positive. no negative dimensions, bestie, that's not the vibe.
for example:
xmfonts*XmMainWindow.height: 10.4cm
*PostIn.width: 3inches
and XmNunitType can have the following values π
XmPIXELSβ all values provided to the widget are treated as normal pixel values.XmMILLIMETERSβ all values provided to the widget are treated as normal millimeter values.Xm100TH_MILLIMETERSβ all values provided to the widget are treated as1/100of a millimeter.XmCENTIMETERSβ all values provided to the widget are treated as normal centimeter values.XmINCHESβ all values provided to the widget are treated as normal inch values.Xm1000TH_INCHESβ all values provided to the widget are treated as1/1000of an inch.XmPOINTSβ all values provided to the widget are treated as normal point values. a point is a unit used in text processing applications and is defined as1/72of an inch.Xm100TH_POINTSβ all values provided to the widget are treated as1/100of a point. a point is a unit used in text processing applications and is defined as1/72of an inch.XmFONT_UNITSβ all values provided to the widget are treated as normal font units. a font unit has horizontal and vertical components. these are the values of theXmScreenresourcesXmNhorizontalFontUnitandXmNverticalFontUnit.Xm100TH_FONT_UNITSβ all values provided to the widget are treated as1/100of a font unit. a font unit has horizontal and vertical components. these are the values of theXmScreenresourcesXmNhorizontalFontUnitandXmNverticalFontUnit.
for more info about units, go peek at the XmConvertUnits reference page π
XmNuseAsyncGeometryβ specifies whether the geometry manager should wait for confirmation of a geometry request to the window manager. here's the tea:- when this resource is
True, the geometry manager forcesXmNwaitForWmtoFalseandXmNwmTimeoutto0, and it relies on asynchronous notification. - when this resource is
False,XmNwaitForWmandXmNwmTimeoutare unaffected. - the default is
False.
- when this resource is
β¨ Inherited Resources β¨
Okay so VendorShell did NOT come here to build everything from scratch β she inherits behavior and resources from her superclasses, and honestly? That's the nepo baby energy we respect. ππ«Ά The tables below are everything she gets handed down. For the full, complete deets on any individual resource, go read the reference page for that superclass β no gatekeeping here, bestie.
π WMShell Resource Set π
Every one of these comes from WMShell. Name, class, type, default, access β all of it, right here:
XmNbaseHeightβ classXmCBaseHeight, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNbaseWidthβ classXmCBaseWidth, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNheightIncβ classXmCHeightInc, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNiconMaskβ classXmCIconMask, typePixmap, defaultNULL, accessCSGXmNiconPixmapβ classXmCIconPixmap, typePixmap, defaultNULL, accessCSGXmNiconWindowβ classXmCIconWindow, typeWindow, defaultNULL, accessCSGXmNiconXβ classXmCIconX, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNiconYβ classXmCIconY, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNinitialStateβ classXmCInitialState, typeint, defaultNormalState, accessCSGXmNinputβ classXmCInput, typeBoolean, defaultTrue, accessCSGXmNmaxAspectXβ classXmCMaxAspectX, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNmaxAspectYβ classXmCMaxAspectY, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNmaxHeightβ classXmCMaxHeight, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNmaxWidthβ classXmCMaxWidth, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminAspectXβ classXmCMinAspectX, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminAspectYβ classXmCMinAspectY, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminHeightβ classXmCMinHeight, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminWidthβ classXmCMinWidth, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNtitleβ classXmCTitle, typeString, defaultdynamic, accessCSGXmNtitleEncodingβ classXmCTitleEncoding, typeAtom, defaultdynamic, accessCSGXmNtransientβ classXmCTransient, typeBoolean, defaultFalse, accessCSGXmNwaitForWmβ classXmCWaitForWm, typeBoolean, defaultTrue, accessCSGXmNwidthIncβ classXmCWidthInc, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNwindowGroupβ classXmCWindowGroup, typeWindow, defaultdynamic, accessCSGmNwinGravityβ classXmCWinGravity, typeint, defaultdynamic, accessCSGXmNwmTimeoutβ classXmCWmTimeout, typeint, default5000 ms, accessCSG
Not me noticing that one of them is literally spelledmNwinGravitywith no leadingXπ bestie I am copying it character for character, we do not fix what we did not write. Periodt.
πΈ Shell Resource Set πΈ
And from Shell, same deal β name, class, type, default, access:
XmNallowShellResizeβ classXmCAllowShellResize, typeBoolean, defaultFalse, accessCGXmNcreatePopupChildProcβ classXmCCreatePopupChildProc, typeXtCreatePopupChildProc, defaultNULL, accessCSG
and there's so much more coming, don't you dare close the tab yet π¦β¨
XmNgeometryβ classXmCGeometry, typeString, defaults toNULL, accessCSG. Bestie, it's giving "where do you want me to sit" energy.XmNoverrideRedirectβ classXmCOverrideRedirect, typeBoolean, defaults toFalse, accessCSG. Set it and the window manager stops playing hall monitor.XmNpopdownCallbackβ classXmCCallback, typeXtCallbackList, defaults toNULL, accessC. Fires when the shell pops down, no cap.XmNpopupCallbackβ classXmCCallback, typeXtCallbackList, defaults toNULL, accessC. Fires when it pops up. Iconic duo, honestly.XmNsaveUnderβ classXmCSaveUnder, typeBoolean, defaults toFalse, accessCSG. The classic "keep what was under me" vibe.XmNvisualβ classXmCVisual, typeVisual *, defaults toCopyFromParent, accessCSG. It literally copies from the parent, periodt.
β¨ Composite Resource Set β¨
Like, every Composite widget gets these three for free. Inheritance but make it fashion π
XmNchildrenβ classXmCReadOnly, typeWidgetList, defaults toNULL, accessG. Read-only bestie, you don't get to touch, you only get to look.XmNinsertPositionβ classXmCInsertPosition, typeXtOrderProc, defaults toNULL, accessCSG. Tells the widget where new children slot in. Lowkey the seating chart of the whole thing.XmNnumChildrenβ classXmCReadOnly, typeCardinal, defaults to0, accessG. Read-only, how many kids you got, that's it.
π Core Resource Set π
The OGs. Every single widget has these, fr fr. Core said "I'm the blueprint" and honestly, ate. π
XmNacceleratorsβ classXmCAccelerators, typeXtAccelerators, default isdynamic, accessCSG.XmNancestorSensitiveβ classXmCSensitive, typeBoolean, default isdynamic, accessG. Read-only, tracks whether an ancestor is sensitive. If your parent is in a mood, you feel it too. πXmNbackgroundβ classXmCBackground, typePixel, default isdynamic, accessCSG. The lewk. The base coat. πXmNbackgroundPixmapβ classXmCPixmap, typePixmap, defaults toXmUNSPECIFIED_PIXMAP, accessCSG.XmNborderColorβ classXmCBorderColor, typePixel, defaults toXtDefaultForeground, accessCSG.XmNborderPixmapβ classXmCPixmap, typePixmap, defaults toXmUNSPECIFIED_PIXMAP, accessCSG.XmNborderWidthβ classXmCBorderWidth, typeDimension, defaults to0, accessCSG. Zero. No border. Minimalist queen.XmNcolormapβ classXmCColormap, typeColormap, default isdynamic, accessCG. Note the access isCG, notCSGβ read and set, but no get-at-create. Copy that exactly, bestie.XmNdepthβ classXmCDepth, typeint, default isdynamic, accessCG. Same deal,CG, don't @ me.XmNdestroyCallbackβ classXmCCallback, typeXtCallbackList, defaults toNULL, accessC. Called when the widget gets destroyed. Rip bozo π«ΆXmNheightβ classXmCHeight, typeDimension, default isdynamic, accessCSG.XmNinitialResourcesPersistentβ classXmCInitialResourcesPersistent, typeBoolean, defaults toTrue, accessC.XmNmappedWhenManagedβ class isXmCMappedWhenManaged, typeBoolean, defaults toTrue, accessCSGβ¨XmNscreenβ class isXmCScreen, type isScreen *, default is dynamic, accessCGπ¦XmNsensitiveβ class isXmCSensitive, typeBoolean, defaults toTrue, accessCSGπXmNtranslationsβ class isXmCTranslations, typeXtTranslations, default is dynamic, accessCSGπXmNwidthβ class isXmCWidth, typeDimension, default is dynamic, accessCSGπΈXmNxβ class isXmCPosition, typePosition, defaults to0, accessCSGπXmNyβ class isXmCPosition, typePosition, defaults to0, accessCSGπ
π¦ Translations π¦
There are no translations for VendorShell. Like, none. Zero. The void. Bestie it's giving nothing to translate π periodt.
π RELATED π
okay so the whole friend group, alphabetically-ish, no cap:
Composite(3)Core(3)mwm(1)Shell(3)WMShell(3)XmActivateProtocol(3)XmActivateWMProtocol(3)XmAddProtocolCallback(3)XmAddWMProtocolCallback(3)XmAddProtocols(3)XmAddWMProtocols(3)XmDeactivateProtocol(3)XmDeactivateWMProtocol(3)XmGetAtomName(3)XmInternAtom(3)XmIsMotifWMRunning(3)XmRemoveProtocolCallback(3)XmRemoveWMProtocolCallback(3)XmRemoveProtocols(3)XmRemoveWMProtocols(3)XmScreen(3)XmSetProtocolHooks(3)XmSetWMProtocolHooks(3)
and that's the whole page bestie!! π«Ά this one's a library call, VendorShell(library call), and that's literally the footer right there β source, version and date all in one lil line π go forth and configure ur shells, u absolute icon πβ¨
π¦ where this page comes from
- arch rolling: openmotif 2.3.8-4 Β· LGPL-2.1-or-later
- centos-stream 9: motif-devel 2.3.4-32.el9 Β· LGPLv2+
- centos-stream 9: motif-devel 2.3.4-32.el9 Β· LGPLv2+
- epel 10: motif-devel 2.3.8-2.el10_2 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-1.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-1.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-2.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-2.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 44: motif-devel 2.3.8-3.fc44 Β· LicenseRef-Callaway-LGPLv2+
- fedora 44: motif-devel 2.3.8-3.fc44 Β· LicenseRef-Callaway-LGPLv2+
- nixos 26.05: motif 2.3.8
- nixpkgs unstable: motif 2.3.8
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms