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