Expand/Shrink

pGUI.js

[DEV] deprecated. There is now an xpGUI.js, might deserve a separate/replacement page (probably not).

The file pwa/pGUI.js along with pwa/pGUI.css and pwa/builtins/opengl.js is a laboriously hand-crafted drop-in replacement for pGUI.e which is handled automatically for you by pwa/p2js, and obviously does not need any dlls.

Various attributes and callbacks in the documentation for pGUI have been/are slowly being marked with:
+ when supported (and working on at least one control),
x when not supported (and unlikely to ever be), and
? when there is some doubt or caveat.
The latter two should link directly to any relevant notes below. I have deliberately elected to go for something a bit subtle and therefore potentially hard to read, over being big, bold, brash, and beligerently bothersome. Should it incite/encourage navigation via searching, that’s probably a good thing.

You can of course inspect the source of pGUI.js, for instance since IupButton() in that source invokes ih.setAttribute('class', 'button');, then you’ll want to search for something like store_attrs(["button"],...) to find the attributes it actually handles, and how.
(Of course there is no guarantee of [in]consistant use of single/double quotes, or that "button" will be the first element of the first argument to store_attrs, however a search for store_attrs in pGUI.js currently yields just 22 results, so that’d be the list you should scan.)

Note there has been no real attempt to list "all" attributes here, these are just the ones for which I have put in a temporary display as a work around. In time I hope to start marking more items as "complete", like I have for IupGraph and IupTable (below, and that may mean deprecating a few desktop capabilities).

Also note it is not the intent to perfectly match the desktop in the browser, or at least it is just as important to make the desktop more compatible with the box model as it is the other way round, and within reason to do so with as few things as possible. Ultimately it is a fools errand to strive for anything beyond a reasonable match, since the real goal is to get it recognisable, then tweak until they look good and are useable on both 27 and 5 inch screens, via platform() and other appropriate/available tests, from simple manual resizing to some as yet undiscovered hardware capability functions, as needed. Besides, it’s not like HTML/CSS/JavaScript works magically across 5 and 27 inch screens, that needs to be earnt with them too.

IupButton(GAP, IMAGE, IMPRESS, BGCOLOR): currently just displays a message

IupCanvas(BORDER, DRAWFONT, DRAWSTYLE, DRAWTEXTORIENTATION, DX, DY, EXPAND, FONT, SCROLLBAR): currently just displays a message

IupCells(): see IupTable() instead.

IupClipboard(<most>): currently just displays an error

IupDatePick(ACTIVE, MONTHSHORTNAMES, ZEROPRECED): currently just displays a message

IupDialog(MINBOX, MAXBOX): currently just displays a message

IupDraw - several routines have simply not even been attempted

IupFrame(ACTIVE, FGCOLOR, VISIBLE): currently just displays a message

IupGraph(): fully supported

IupH/Vbox(GAP, NMARGIN, NORMALIZESIZE): currently just displays a message

IupImage("0","1",etc): ignored/too late (must use IupImageRGB[A]() instead)

IupLabel(VISIBLE): currently just displays a message

IupList(APPENDITEM, CANFOCUS, DROPDOWN, EDITBOX, NAME, REMOVEITEM, SHOWDROPDOWN, TIP, VALUE, VISIBLE, VISIBLECOLUMNS, VISIBLEITEMS, VISIBLELINES): currently just displays a message

IupMenu(): does not currently allow any attributes to be set

IupMenuItem(ACTIVE, AUTOTOGGLE, VALUE): currently just displays a message

IupMultiBox(GAPHORIZ, GAPVERT, MARGIN, NMARGIN): currently just displays a message

IupProgressBar(EXPAND, MAX, MIN, ORIENTATION): currently just displays a message

IupSetGlobal(SINGLEINSTANCE, INPUTCALLBACKS): currently just displays a message

IupRadio(<all>): currently just displays an error

IupSplit(MINMAX): currently just displays a message

IupSubMenu(): does not currently allow any attributes to be set

IupTable(): fully supported (though it may yet get a complete rewrite)

IupTabs(TABTYPE): currently just displays a message

IupText(APPEND, BGCOLOR, CUEBANNER, FILTER, FORMATTING, INSERT, MULTILINE, NAME, READONLY, SCROLLBAR, TIP, VISIBLECOLUMNS, WORDWRAP): currently just displays a message

IupToggle(CANFOCUS,TIP): currently just displays a message

IupValuator(CANFOCUS, EXPAND, PAGESTEP, TIP): currently just displays a message

LINEBREAK (on children of IupMultiBox): currently just displays a message