<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <TITLE> Preferences </TITLE> <META NAME="keywords" CONTENT="processing.app.Preferences class"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"> <SCRIPT type="text/javascript"> function windowTitle() { parent.document.title="Preferences"; } </SCRIPT> <NOSCRIPT> </NOSCRIPT> </HEAD> <BODY BGCOLOR="white" onload="windowTitle();"> <!-- ========= START OF TOP NAVBAR ======= --> <A NAME="navbar_top"><!-- --></A> <A HREF="#skip-navbar_top" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_top_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../processing/app/Platform.html" title="class in processing.app"><B>PREV CLASS</B></A> <A HREF="../../processing/app/PresentMode.html" title="class in processing.app"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../index.html?processing/app/Preferences.html" target="_top"><B>FRAMES</B></A> <A HREF="Preferences.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> <TR> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_top"></A> <!-- ========= END OF TOP NAVBAR ========= --> <HR> <!-- ======== START OF CLASS DATA ======== --> <H2> <FONT SIZE="-1"> processing.app</FONT> <BR> Class Preferences</H2> <PRE> java.lang.Object <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>processing.app.Preferences</B> </PRE> <HR> <DL> <DT><PRE>public class <B>Preferences</B><DT>extends java.lang.Object</DL> </PRE> <P> Storage class for user preferences and environment settings. <P> This class no longer uses the Properties class, since properties files are iso8859-1, which is highly likely to be a problem when trying to save sketch folders and locations. <p> The GUI portion in here is really ugly, as it uses exact layout. This was done in frustration one evening (and pre-Swing), but that's long since past, and it should all be moved to a proper swing layout like BoxLayout. <p> This is very poorly put together, that the preferences panel and the actual preferences i/o is part of the same code. But there hasn't yet been a compelling reason to bother with the separation aside from concern about being lectured by strangers who feel that it doesn't look like what they learned in CS class. <p> Would also be possible to change this to use the Java Preferences API. Some useful articles <a href="http://www.onjava.com/pub/a/onjava/synd/2001/10/17/j2se.html">here</a> and <a href="http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter10/Preferences.html">here</a>. However, haven't implemented this yet for lack of time, but more importantly, because it would entail writing to the registry (on Windows), or an obscure file location (on Mac OS X) and make it far more difficult to find the preferences to tweak them by hand (no! stay out of regedit!) or to reset the preferences by simply deleting the preferences.txt file. <P> <P> <HR> <P> <!-- =========== FIELD SUMMARY =========== --> <A NAME="field_summary"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Field Summary</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#BUTTON_HEIGHT">BUTTON_HEIGHT</A></B></CODE> <BR> Standardized button height.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#BUTTON_WIDTH">BUTTON_WIDTH</A></B></CODE> <BR> Standardized width for buttons.</TD> </TR> </TABLE> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <A NAME="constructor_summary"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Constructor Summary</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#Preferences()">Preferences</A></B>()</CODE> <BR> </TD> </TR> </TABLE> <!-- ========== METHOD SUMMARY =========== --> <A NAME="method_summary"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Method Summary</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static java.lang.String</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#get(java.lang.String)">get</A></B>(java.lang.String attribute)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static boolean</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getBoolean(java.lang.String)">getBoolean</A></B>(java.lang.String attribute)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static java.awt.Color</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getColor(java.lang.String)">getColor</A></B>(java.lang.String name)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static java.lang.String</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getDefault(java.lang.String)">getDefault</A></B>(java.lang.String attribute)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static java.awt.Font</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getFont(java.lang.String)">getFont</A></B>(java.lang.String attr)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getInteger(java.lang.String)">getInteger</A></B>(java.lang.String attribute)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE> java.awt.Dimension</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getPreferredSize()">getPreferredSize</A></B>()</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static <A HREF="../../processing/app/syntax/SyntaxStyle.html" title="class in processing.app.syntax">SyntaxStyle</A></CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#getStyle(java.lang.String)">getStyle</A></B>(java.lang.String what)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static void</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#set(java.lang.String, java.lang.String)">set</A></B>(java.lang.String attribute, java.lang.String value)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static void</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#setBoolean(java.lang.String, boolean)">setBoolean</A></B>(java.lang.String attribute, boolean value)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static void</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#setColor(java.lang.String, java.awt.Color)">setColor</A></B>(java.lang.String attr, java.awt.Color what)</CODE> <BR> </TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static void</CODE></FONT></TD> <TD><CODE><B><A HREF="../../processing/app/Preferences.html#setInteger(java.lang.String, int)">setInteger</A></B>(java.lang.String key, int value)</CODE> <BR> </TD> </TR> </TABLE> <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> <TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD> </TR> </TABLE> <P> <!-- ============ FIELD DETAIL =========== --> <A NAME="field_detail"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> <B>Field Detail</B></FONT></TH> </TR> </TABLE> <A NAME="BUTTON_WIDTH"><!-- --></A><H3> BUTTON_WIDTH</H3> <PRE> public static int <B>BUTTON_WIDTH</B></PRE> <DL> <DD>Standardized width for buttons. Mac OS X 10.3 wants 70 as its default, Windows XP needs 66, and my Ubuntu machine needs 80+, so 80 seems proper. <P> <DL> </DL> </DL> <HR> <A NAME="BUTTON_HEIGHT"><!-- --></A><H3> BUTTON_HEIGHT</H3> <PRE> public static int <B>BUTTON_HEIGHT</B></PRE> <DL> <DD>Standardized button height. Mac OS X 10.3 (Java 1.4) wants 29, presumably because it now includes the blue border, where it didn't in Java 1.3. Windows XP only wants 23 (not sure what default Linux would be). Because of the disparity, on Mac OS X, it will be set inside a static block. <P> <DL> </DL> </DL> <!-- ========= CONSTRUCTOR DETAIL ======== --> <A NAME="constructor_detail"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> <B>Constructor Detail</B></FONT></TH> </TR> </TABLE> <A NAME="Preferences()"><!-- --></A><H3> Preferences</H3> <PRE> public <B>Preferences</B>()</PRE> <DL> </DL> <!-- ============ METHOD DETAIL ========== --> <A NAME="method_detail"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> <B>Method Detail</B></FONT></TH> </TR> </TABLE> <A NAME="getPreferredSize()"><!-- --></A><H3> getPreferredSize</H3> <PRE> public java.awt.Dimension <B>getPreferredSize</B>()</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="get(java.lang.String)"><!-- --></A><H3> get</H3> <PRE> public static java.lang.String <B>get</B>(java.lang.String attribute)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getDefault(java.lang.String)"><!-- --></A><H3> getDefault</H3> <PRE> public static java.lang.String <B>getDefault</B>(java.lang.String attribute)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="set(java.lang.String, java.lang.String)"><!-- --></A><H3> set</H3> <PRE> public static void <B>set</B>(java.lang.String attribute, java.lang.String value)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getBoolean(java.lang.String)"><!-- --></A><H3> getBoolean</H3> <PRE> public static boolean <B>getBoolean</B>(java.lang.String attribute)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="setBoolean(java.lang.String, boolean)"><!-- --></A><H3> setBoolean</H3> <PRE> public static void <B>setBoolean</B>(java.lang.String attribute, boolean value)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getInteger(java.lang.String)"><!-- --></A><H3> getInteger</H3> <PRE> public static int <B>getInteger</B>(java.lang.String attribute)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="setInteger(java.lang.String, int)"><!-- --></A><H3> setInteger</H3> <PRE> public static void <B>setInteger</B>(java.lang.String key, int value)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getColor(java.lang.String)"><!-- --></A><H3> getColor</H3> <PRE> public static java.awt.Color <B>getColor</B>(java.lang.String name)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="setColor(java.lang.String, java.awt.Color)"><!-- --></A><H3> setColor</H3> <PRE> public static void <B>setColor</B>(java.lang.String attr, java.awt.Color what)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getFont(java.lang.String)"><!-- --></A><H3> getFont</H3> <PRE> public static java.awt.Font <B>getFont</B>(java.lang.String attr)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getStyle(java.lang.String)"><!-- --></A><H3> getStyle</H3> <PRE> public static <A HREF="../../processing/app/syntax/SyntaxStyle.html" title="class in processing.app.syntax">SyntaxStyle</A> <B>getStyle</B>(java.lang.String what)</PRE> <DL> <DD><DL> </DL> </DD> </DL> <!-- ========= END OF CLASS DATA ========= --> <HR> <!-- ======= START OF BOTTOM NAVBAR ====== --> <A NAME="navbar_bottom"><!-- --></A> <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> <TR> <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_bottom_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../processing/app/Platform.html" title="class in processing.app"><B>PREV CLASS</B></A> <A HREF="../../processing/app/PresentMode.html" title="class in processing.app"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../index.html?processing/app/Preferences.html" target="_top"><B>FRAMES</B></A> <A HREF="Preferences.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A> </NOSCRIPT> </FONT></TD> </TR> <TR> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_bottom"></A> <!-- ======== END OF BOTTOM NAVBAR ======= --> <HR> </BODY> </HTML>