[Main]
Name=push_setmode
Type=Function
Subtype=ROM Call
Header Files=basfunc.h
Definition=void push_setmode (CESI ModeNameStringOrList, CESI SettingString);
MinAMS=1.01

[ROM Call]
Index=$323

[Description]
Executes TI-Basic 'setMode' function.

[Explanation]
push_setmode assumes that <I>ModeNameStringOrList</I> points to the tag of a string expression
(usually to <A HREF="$$LINK(estack.h/Tags)">STR_TAG</A>), or to a list expression (usually to
<A HREF="$$LINK(estack.h/Tags)">LIST_TAG</A>). If it points to a string,
push_setmode sets the appropriate mode to the new string pointed to by <I>SettingString</I> (it should
also point to the string tag), and pushes the previous setting string of that mode to the
expression stack. Possible mode strings and settings strings are listed in the table below:
<BR><BR>
<TABLE BORDER CELLPADDING="4">
<TR><TD>Mode name</TD><TD>Possible settings</TD></TR>
<TR><TD VALIGN="TOP">"Graph"</TD><TD>"FUNCTION", "PARAMETRIC", "POLAR", "SEQUENCE", "3D", "DIFF EQUATIONS"</TD></TR>
<TR><TD VALIGN="TOP">"Display Digits"</TD><TD>"FIX 0", "FIX 1", ..., "FIX 12", "FLOAT 1", "FLOAT 2", ..., "FLOAT 12"</TD></TR>
<TR><TD VALIGN="TOP">"Angle"</TD><TD>"RADIAN", "DEGREE"</TD></TR>
<TR><TD VALIGN="TOP">"Exponential&nbsp;Format"</TD><TD>"NORMAL", "SCIENTIFIC", "ENGINEERING"</TD></TR>
<TR><TD VALIGN="TOP">"Complex Format"</TD><TD>"REAL", "RECTANGULAR", "POLAR"</TD></TR>
<TR><TD VALIGN="TOP">"Vector Format"</TD><TD>"RECTANGULAR", "CYLINDRICAL", "SPHERICAL"</TD></TR>
<TR><TD VALIGN="TOP">"Pretty Print"</TD><TD>"OFF", "ON"</TD></TR>
<TR><TD VALIGN="TOP">"Split Screen"</TD><TD>"FULL", "TOP-BOTTOM", "LEFT-RIGHT"</TD></TR>
<TR><TD VALIGN="TOP">"Split 1 App"</TD><TD>"Home", "Y=Editor", "Window Editor", "Graph", "Table", "Data/Matrix Editor", "Program Editor", "Text Editor", "Numeric Solver"</TD></TR>
<TR><TD VALIGN="TOP">"Split 2 App"</TD><TD>"Home", "Y=Editor", "Window Editor", "Graph", "Table", "Data/Matrix Editor", "Program Editor", "Text Editor", "Numeric Solver"</TD></TR>
<TR><TD VALIGN="TOP">"Number of Graphs"</TD><TD>"1", "2"</TD></TR>
<TR><TD VALIGN="TOP">"Graph2"</TD><TD>"FUNCTION", "PARAMETRIC", "POLAR", "SEQUENCE", "3D", "DIFF EQUATIONS"</TD></TR>
<TR><TD VALIGN="TOP">"Exact/Approx"</TD><TD>"AUTO", "EXACT", "APPROXIMATE"</TD></TR>
<TR><TD VALIGN="TOP">"Base"</TD><TD>"DEC", "HEX", "BIN"</TD></TR>
</TABLE>
<BR>
If <I>ModeNameStringOrList</I> points to a list, this list is assumed to contain pairs of keyword
strings. push_setmode will then set them all at once (<I>SettingString</I> is ignored in this
case). This is recommended for multiple mode changes.
<BR><BR>
<B>Note:</B> push_setmode may cause switching of the current application. See the <A HREF="$$LINK(events.h/)">events.h</A>
header file for more info.

[References]
Out=estack.h/push_END_TAG, estack.h/push_LIST_TAG, estack.h/push_zstr, events.h/MO_currentOptions, events.h/MO_digestOptions
Out_EV_eventLoop=1
