FDESIGN(1L)

πŸ’– FDESIGN(1L) β€” the Forms Library UI Designer, but make it bestie-coded πŸ’–

okay so real talk, this is fdesign from the Forms Library man pages (section 1L, iykyk), and it's genuinely one of those tools that ate. let me put you on. 🫢


✨ NAME ✨

fdesign β€” the Forms Library User Interface Designer. that's it, that's the name, she's iconic πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

fdesign [-xformoptions] [-options] [files]

🌸 DESCRIPTION 🌸

bestie. fdesign is a GUI builder. it helps you construct graphical user interfaces in a full WYSIWYG ("what you see is what you get") way β€” like, you literally just reach in and directly manipulate all the little objects yourself. buttons? sliders? menus? all of it, etc. you grab them, you move them, they do what you want. main character energy fr. πŸ’…

and once you've built a UI you're actually happy with, you can save that whole composed interface out into a set of external files. here's the breakdown:

  • files with the extension .fd hold all the information about the objects, and fdesign can read them right back in again. it's giving save file, it's giving persistence. ✨
  • the files with C code and header files? when you compile and link those against the Forms Library, they generate code that at run-time constructs the exact same interface as the one you were just staring at inside fdesign. no cap, exact same.

a whole variety of output languages is possible too, via external filters. as of this writing, the output filters known to exist are: C, perl, ada95, Fortran, pascal, and PostScript. so many options, we love a multilingual queen. 🌈


πŸ’… OPTIONS πŸ’…

fdesign accepts all standard Forms Library command line options as well as the following:

  • -help β€” prints a brief summary of all the command line options. and the slayest part? this option does not require a connection to the X server. so you can ask for help even when your display is being dramatic. πŸ™ˆ
  • -version β€” prints the current version of fdesign and then exits. short, sweet, gone. πŸ’¨
  • -geometry geom β€” specifies the prefered size and location of the main working area, aka the space where your UI is gonna get constructed. (yes, "prefered" β€” that's the original spelling, i don't make the rules, i just report them πŸ’€)
  • -convert fdfile-list β€” this one prevents fdesign from attempting to make a connection to the X server. the file list that follows this flag gets converted to C code directly. headless mode, we stan. ✨
  • -dir destdir β€” output any converted files in destdir.
  • -unit pixel|point|mm|cp|cmm β€” selects the unit of measure for object geometries. for non-pixel units, the interface you create is screen resolution independent, which may be desirable for many applications. ⚠️ but heads up: for typical screens, point (about 1/72 inch) and mm may be too coarse and subject to round-off errors. use cp (centi-point, 100th of a point) and cmm (centi-mm) instead. trust, the fine-grained ones are the move. πŸŽ€
  • -altformat β€” selects an alternative format for the generated C code, where global variables are used for the UI components.
  • -main β€” requests the output of main program template.
  • -callback β€” requests the output of callback function template.
  • -compensate β€” requests the emission of font/server resolution variation compensation code.
  • -I headerfile β€” uses an alternative header file instead of the default forms.h in the output C code.
  • -lax β€” requests relaxed C syntax checking. chill mode for the parser. 😌
  • -ps β€” this option specifies that instead of emitting the c code for the user interface, PostScript code should be emitted.
  • -ada β€” this option requests ada95 code output.
  • -perl β€” this option requests perl code output.
  • -fortran β€” this option requests Fortran code output.
  • -pascal β€” this option requests pascal code output.
  • -nocode β€” suppresses the output of UI code. only the .fd file is written. minimal queen behavior. πŸ’œ

🌟 the most useful Forms Library command line options 🌟

like i said, there are more, but these ones are the ones you'll actually reach for:

  • -display host:dpy β€” this option specifies the X server to connect.
  • -flversion β€” this option prints the version string of the Forms Library, with which fdesign was build. (again β€” "build", not "built". original text, bestie, i'm just the messenger πŸ’€)
  • -name appname β€” this option specifies the application name under which resources are to be obtained, instead of the executable name. ⚠️ important: appname should not contain . or *. and then the original just says fdesign. at the end there, which β€” yeah. that's what it says. i'm not touching it. πŸ™ˆ

πŸŽ€ RESOURCES πŸŽ€

the program understands all of the Forms Library's resource names and classes, plus these cuties:

  • control.geometry (class Control.Geometry) β€” specifies the geometry of the control panel. currently the size is ignored. 😭
  • unit (Unit) β€” specifies the default unit of measure. default is pixel.
  • attributes.geometry (class Attributes.Geometry) β€” specifies the geometry of the object attributes panel. currently the size is ignored.
  • align.geometry (class Align.Geometry) β€” specifies the geometry of the object align panel. currently the size is ignored.
  • xformsHeader (class XFormsHeader) β€” specifies the header filename generated in the output C code. default is forms.h.
  • filter (class Filter) β€” specifies post-processing filter (an external executable name).
  • language (class Language) β€” specifies target language name.

✨ among the standard Forms Library resources, these are the most useful ✨

  • xform.fontsize (class XFORM.FontSize) β€” specifies the font size used for most object labels.
  • xform.pupfontsize (class XFORM.PupFontSize) β€” specifies the font size used in pop-up menus.
  • xform.browserFontSize (class XFORM.BrowserFontSize) β€” specifies the font size used for the text inside a browser.

πŸ”₯ SEE ALSO πŸ”₯

xforms(5), fd2ps(1L)

like. go read those too. do it for me. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

Copyright (c) 1996-2002 T.C. Zhao <tc_zhao@yahoo.com> and Mark Overmars <markov@cs.ruu.nl>

Since 2002: GNU Lesser General Public License

Maintainers: Jean-Marc Lasgouttes, Angus Leeming and Jens Thoms Toerring <jt@toerring.de>

legends, all of them. absolute icons. πŸ’–


🌈 HOME PAGE 🌈


and that's the whole page bestie!! this one's Version 1.2.0, dated November 2013, and it's the FDESIGN(1L) of the Forms Library. go build something gorgeous with it. mwah. πŸ’…βœ¨πŸ¦‹πŸŽ€πŸ’–