TOPLEVELSHELL(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

πŸ’– TopLevelShell β€” the TopLevelShell widget class πŸ’–

so this is a library call from the X/Motif girlies, and bestie, it's literally the blueprint for every normal top-level window you're ever gonna pop open. Let's get into it 🫢


✨ NAME ✨

TopLevelShell β€” the TopLevelShell widget class πŸ‘‘


✨ SYNOPSIS ✨

#include <Xm/Xm.h>
#include <X11/Shell.h>

✨ DESCRIPTION ✨

Okay so TopLevelShell is the widget you reach for when you need normal top-level windows β€” like, any extra top-level widgets your app needs beyond the main one. It's giving "yes I'm a whole window, and I'm thriving" 🌈

πŸ¦‹ Classes πŸ¦‹

TopLevelShell inherits all its behavior and resources from Core, Composite, Shell, WMShell, and VendorShell. Family tree ate, no cap πŸ’…

  • The class pointer is topLevelShellWidgetClass.
  • The class name is TopLevelShell.

🌸 New Resources 🌸

So here's the thing β€” these are the widget resources the programmer uses to specify data. You can also set the resource values for the inherited classes to set attributes for this widget, iconic behavior fr fr.

To reference a resource by name or by class in a .Xdefaults file, remove the XmN or XmC prefix and use the remaining letters. To specify one of the defined values for a resource in a .Xdefaults file, remove the Xm prefix and use the remaining letters (either lowercase or uppercase, but include any underscores between words).

The codes in the access column tell you what you can do with each resource:

  • C β€” can be set at creation time
  • S β€” can be set by using XtSetValues
  • G β€” can be retrieved by using XtGetValues
  • N/A β€” not applicable

πŸ‘‘ TopLevelShell Resource Set πŸ‘‘

  • XmNiconic β€” Class: XmCIconic Β· Type: Boolean Β· Default: False Β· Access: CSG
  • XmNiconName β€” Class: XmCIconName Β· Type: String Β· Default: NULL Β· Access: CSG
  • XmNiconNameEncoding β€” Class: XmCIconNameEncoding Β· Type: Atom Β· Default: dynamic Β· Access: CSG

πŸŽ€ the resource tea, one by one πŸŽ€

  • XmNiconic β€” if this is True when the widget is created, it specifies that the widget should start as an icon when it is realized. A value of False means the widget is not to be realized as an icon. Heads up bestie: this resource will only override the XmNinitialState resource when it's specified in the call that creates the widget. iykyk ✨
  • XmNiconName β€” specifies the short form of the application name that the window manager displays when the application is iconified. When XtGetValues is called on this resource, the returned value is a pointer to the actual resource value and should not be freed β€” do NOT touch it, hands off 🫢
  • XmNiconNameEncoding β€” specifies a property type that represents the encoding of the XmNiconName string. If a language procedure has been set, the default is None; otherwise, the default is XA_STRING. When the widget is realized, if the value is None, the corresponding name is assumed to be in the current locale. The name is passed to XmbTextListToTextProperty with an encoding style of XStdICCTextStyle. The resulting encoding is STRING if the name is fully convertible to STRING, otherwise COMPOUND_TEXT. And plot twist β€” the values of the encoding resources are not changed; they remain None. πŸ’€

πŸ’œ Inherited Resources πŸ’œ

TopLevelShell inherits behavior and resources from the following superclasses. For a complete description of each resource, refer to the reference page for that superclass. (yes, go read those too, don't be shy πŸ’–)


to be continued… part 2 incoming, don't go anywhere bestie πŸ¦‹

✨ VendorShell Resource Set ✨

okay bestie, here's the whole VendorShell resource set β€” every single one, no skips, no cap. the columns are Name, Class, Type, Default, and Access, and I'm keeping them exactly as they are πŸ’…

  • XmNaudibleWarning β€” Class: XmCAudibleWarning, Type: unsigned char, Default: XmBELL, Access: CSG πŸ¦‹
  • XmNbuttonFontList β€” Class: XmCButtonFontList, Type: XmFontList, Default: dynamic, Access: CSG πŸŽ€
  • XmNbuttonRenderTable β€” Class: XmCButtonRenderTable, Type: XmRenderTable, Default: dynamic, Access: CSG ✨
  • XmNdefaultFontList β€” Class: XmCDefaultFontList, Type: XmFontList, Default: dynamic, Access: CG 🌸
  • XmNdeleteResponse β€” Class: XmCDeleteResponse, Type: unsigned char, Default: XmDESTROY, Access: CSG πŸ’–
  • XmNinputMethod β€” Class: XmCInputMethod, Type: String, Default: NULL, Access: CSG 🧚
  • XmNinputPolicy β€” Class: XmCInputPolicy, Type: XmInputPolicy, Default: XmPER_SHELL, Access: CSG πŸ”₯
  • XmNkeyboardFocusPolicy β€” Class: XmCKeyboardFocusPolicy, Type: unsigned char, Default: XmEXPLICIT, Access: CSG πŸ‘‘
  • XmNlabelFontList β€” Class: XmCLabelFontList, Type: XmFontList, Default: dynamic, Access: CSG πŸ“
  • XmNlabelRenderTable β€” Class: XmCLabelRenderTabel, Type: XmRenderTable, Default: dynamic, Access: CSG 🫢
  • XmNlayoutDirection β€” Class: XmCLayoutDirection, Type: XmDirection, Default: XmLEFT_TO_RIGHT, Access: CG 🌈
  • XmNmwmDecorations β€” Class: XmCMwmDecorations, Type: int, Default: -1, Access: CG πŸ’œ
  • XmNmwmFunctions β€” Class: XmCMwmFunctions, Type: int, Default: -1, Access: CG ⭐
  • XmNmwmInputMode β€” Class: XmCMwmInputMode, Type: int, Default: -1, Access: CG πŸ’«
  • XmNmwmMenu β€” Class: XmCMwmMenu, Type: String, Default: NULL, Access: CG πŸŽ€
  • XmNpreeditType β€” Class: XmCPreeditType, Type: String, Default: dynamic, Access: CSG 🌸
  • XmNshellUnitType β€” Class: XmCShellUnitType, Type: unsigned char, Default: XmPIXELS, Access: CSG πŸ¦‹
  • XmNtextFontList β€” Class: XmCTextFontList, Type: XmFontList, Default: dynamic, Access: CSG πŸ’–
  • XmNtextRenderTable β€” Class: XmCTextRenderTable, Type: XmRenderTable, Default: dynamic, Access: CSG ✨
  • XmNunitType β€” Class: XmCUnitType, Type: unsigned char, Default: XmPIXELS, Access: CSG πŸ”₯
  • XmNuseAsyncGeometry β€” Class: XmCUseAsyncGeometry, Type: Boolean, Default: False, Access: CSG πŸ‘‘

WMShell Resource Set πŸ’–βœ¨

okay bestie, here's the entire resource lineup for the WMShell class β€” every name, every class, every type, every default, every access code. nothing skipped, nothing summarised, no cap 🫢 and yes, literally every single one of them is access CSG, so she's serving full create-set-get energy the whole way down πŸ’…

  • XmNbaseHeight β€” class XmCBaseHeight, type int, default XtUnspecifiedShellInt, access CSG β€” base height, the name really said it all πŸ’–
  • XmNbaseWidth β€” class XmCBaseWidth, type int, default XtUnspecifiedShellInt, access CSG β€” and her twin sister, base width, matching energy 🌸
  • XmNheightInc β€” class XmCHeightInc, type int, default XtUnspecifiedShellInt, access CSG β€” height increment, the little steps, obsessed
  • XmNiconMask β€” class XmCIconMask, type Pixmap, default NULL, access CSG β€” a mask?? a pixmap?? default NULL?? mysterious main character behaviour πŸ™ˆ
  • XmNiconPixmap β€” class XmCIconPixmap, type Pixmap, default NULL, access CSG β€” the icon pixmap herself, also starting out as NULL πŸ’œ
  • XmNiconWindow β€” class XmCIconWindow, type Window, default NULL, access CSG β€” icon window, NULL default, living her unset era ✨
  • XmNiconX β€” class XmCIconX, type int, default XtUnspecifiedShellInt, access CSG β€” icon x, lowkey iconic πŸŽ€
  • XmNiconY β€” class XmCIconY, type int, default XtUnspecifiedShellInt, access CSG β€” icon y, and together they're the coordinate duo fr fr
  • XmNinitialState β€” class XmCInitialState, type int, default NormalState, access CSG β€” starts out NormalState, which is so real of her 😌
  • XmNinput β€” class XmCInput, type Boolean, default True, access CSG β€” True by default, she came ready to receive input bestie πŸ’…
  • XmNmaxAspectX β€” class XmCMaxAspectX, type int, default XtUnspecifiedShellInt, access CSG β€” max aspect x, part one of the aspect girlies
  • XmNmaxAspectY β€” class XmCMaxAspectY, type int, default XtUnspecifiedShellInt, access CSG β€” max aspect y, part two πŸ¦‹
  • XmNmaxHeight β€” class XmCMaxHeight, type int, default XtUnspecifiedShellInt, access CSG β€” max height, she's got limits (literally)
  • XmNmaxWidth β€” class XmCMaxWidth, type int, default XtUnspecifiedShellInt, access CSG β€” max width, same vibe, different axis ✨
  • XmNminAspectX β€” class XmCMinAspectX, type int, default XtUnspecifiedShellInt, access CSG β€” min aspect x, the floor of the aspect situation
  • XmNminAspectY β€” class XmCMinAspectY, type int, default XtUnspecifiedShellInt, access CSG β€” min aspect y, keeping it symmetrical 🌈
  • XmNminHeight β€” class XmCMinHeight, type int, default XtUnspecifiedShellInt, access CSG β€” min height, the smallest she's willing to go
  • XmNminWidth β€” class XmCMinWidth, type int, default XtUnspecifiedShellInt, access CSG β€” min width, and that's the whole min/max arc complete πŸ’–
  • XmNtitle β€” class XmCTitle, type String, default dynamic, access CSG β€” title, and her default is literally dynamic, she keeps it moving 😭
  • XmNtitleEncoding β€” class XmCTitleEncoding, type Atom, default dynamic, access CSG β€” title encoding, an Atom, also dynamic, the encoding girlies ate
  • XmNtransient β€” class XmCTransient, type Boolean, default False, access CSG β€” False by default, she's not transient unless you say so πŸ’…
  • XmNwaitForWm β€” class XmCWaitForWm, type Boolean, default True, access CSG β€” waits for the window manager, True default, patient queen πŸ‘‘
  • XmNwidthInc β€” class XmCWidthInc, type int, default XtUnspecifiedShellInt, access CSG β€” width increment, the horizontal sibling of XmNheightInc πŸŽ€
  • XmNwindowGroup β€” class XmCWindowGroup, type Window, default dynamic, access CSG β€” window group, dynamic default, she rolls with her people 🫢
  • XmNwinGravity β€” class XmCWinGravity, type int, default dynamic, access CSG β€” win gravity, dynamic, she's got her own pull fr fr ✨
  • XmNwmTimeout β€” class XmCWmTimeout, type int, default 5000 ms, access CSG β€” wm timeout, 5000 ms, that's the clock bestie ⏳πŸ”₯

and yeah β€” every single row up there is CSG on access, no exceptions, no cap πŸ’–

🌸 Shell Resource Set 🌸

okay bestie, here's the whole resource glow-up for the Shell widget class. every single one, no skips, no crumbs πŸ’…

  • XmNallowShellResize β€” Class: XmCAllowShellResize, Type: Boolean, Default: False, Access: CG
  • XmNcreatePopupChildProc β€” Class: XmCCreatePopupChildProc, Type: XtCreatePopupChildProc, Default: NULL, Access: CSG
  • XmNgeometry β€” Class: XmCGeometry, Type: String, Default: NULL, Access: CSG
  • XmNoverrideRedirect β€” Class: XmCOverrideRedirect, Type: Boolean, Default: False, Access: CSG
  • XmNpopdownCallback β€” Class: XmCCallback, Type: XtCallbackList, Default: NULL, Access: C
  • XmNpopupCallback β€” Class: XmCCallback, Type: XtCallbackList, Default: NULL, Access: C
  • XmNsaveUnder β€” Class: XmCSaveUnder, Type: Boolean, Default: False, Access: CSG
  • XmNvisual β€” Class: XmCVisual, Type: Visual *, Default: CopyFromParent, Access: CSG
ngl, that little Access column is doing so much work for us β€” C means you can set it at creation, G means you can get it, and S means you can set it later with XtSetValues. iykyk ✨

πŸ¦‹ Composite Resource Set πŸ¦‹

and these? these are the ones the Composite class is bringing to the function, periodt. inheriting from Shell, but with its own whole vibe πŸŽ€

  • XmNchildren β€” Class: XmCReadOnly, Type: WidgetList, Default: NULL, Access: G
  • XmNinsertPosition β€” Class: XmCInsertPosition, Type: XtOrderProc, Default: NULL, Access: CSG
  • XmNnumChildren β€” Class: XmCReadOnly, Type: Cardinal, Default: 0, Access: G
not XmNchildren and XmNnumChildren both being read-only... the way they just sit there being a whole list and a whole count and you can't even touch them 😭 it's giving "look but don't touch" fr fr

✨ Core Resource Set ✨

okay bestie, here's the whole roster, every single one of them, no skips πŸ’…

  • XmNaccelerators β€” class XmCAccelerators, type XtAccelerators, default dynamic, access CSG.
  • XmNancestorSensitive β€” class XmCSensitive, type Boolean, default dynamic, access G.
  • XmNbackground β€” class XmCBackground, type Pixel, default dynamic, access CSG.
  • XmNbackgroundPixmap β€” class XmCPixmap, type Pixmap, default XmUNSPECIFIED_PIXMAP, access CSG.
  • XmNborderColor β€” class XmCBorderColor, type Pixel, default XtDefaultForeground, access CSG.
  • XmNborderPixmap β€” class XmCPixmap, type Pixmap, default XmUNSPECIFIED_PIXMAP, access CSG.
  • XmNborderWidth β€” class XmCBorderWidth, type Dimension, default 0, access CSG.
  • XmNcolormap β€” class XmCColormap, type Colormap, default dynamic, access CG.
  • XmNdepth β€” class XmCDepth, type int, default dynamic, access CG.
  • XmNdestroyCallback β€” class XmCCallback, type XtCallbackList, default NULL, access C.
  • XmNheight β€” class XmCHeight, type Dimension, default dynamic, access CSG.
  • XmNinitialResourcesPersistent β€” class XmCInitialResourcesPersistent, type Boolean, default True, access C.
  • XmNmappedWhenManaged β€” class XmCMappedWhenManaged, type Boolean, default True, access CSG.
  • XmNscreen β€” class XmCScreen, type Screen *, default dynamic, access CG.
  • XmNsensitive β€” class XmCSensitive, type Boolean, default True, access CSG.
  • XmNtranslations β€” class XmCTranslations, type XtTranslations, default dynamic, access CSG.
  • XmNwidth β€” class XmCWidth, type Dimension, default dynamic, access CSG.
  • XmNx β€” class XmCPosition, type Position, default 0, access CSG.
  • XmNy β€” class XmCPosition, type Position, default 0, access CSG.

Translations πŸ¦‹

There are no translations for TopLevelShell. literally none. the void. empty. not a single one, and that's just how it is πŸ’€


go read these next, bestie, they're the whole friend group:


and that's the whole page, we did it πŸŽ€ this was TopLevelShell, straight out of the library call manual, and yes the date/version lives down in the footer like always β€” consider yourself thoroughly read to filth and fully caught up. slay, go build something iconic with it πŸ‘‘βœ¨πŸ’–