cancoon.h

Go to the documentation of this file.
00001 
00002 /*  $Id: cancoon.h 355 2005-01-11 22:48:55Z andreradke $    */
00003 
00004 /******************************************************************************
00005 
00006     UserLand Frontier(tm) -- High performance Web content management,
00007     object database, system-level and Internet scripting environment,
00008     including source code editing and debugging.
00009 
00010     Copyright (C) 1992-2004 UserLand Software, Inc.
00011 
00012     This program is free software; you can redistribute it and/or modify
00013     it under the terms of the GNU General Public License as published by
00014     the Free Software Foundation; either version 2 of the License, or
00015     (at your option) any later version.
00016 
00017     This program is distributed in the hope that it will be useful,
00018     but WITHOUT ANY WARRANTY; without even the implied warranty of
00019     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020     GNU General Public License for more details.
00021 
00022     You should have received a copy of the GNU General Public License
00023     along with this program; if not, write to the Free Software
00024     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00025 
00026 ******************************************************************************/
00027 
00028 #define cancooninclude /*so other guys can tell if we've been included*/
00029 
00030 
00031 #ifndef dbinclude
00032 
00033 #include "db.h"
00034 
00035 #endif
00036 
00037 
00038 #ifndef langinclude
00039 
00040 #include "lang.h"
00041 
00042 #endif
00043 
00044 
00045 #ifndef processinclude
00046 
00047 #include "process.h"
00048 
00049 #endif
00050 
00051 
00052 #ifndef menueditorinclude
00053 
00054 #include "menueditor.h"
00055 
00056 #endif  
00057 
00058 
00059 
00060 #define ctwindowinfo 6 /*number of windowinfo records saved in each cancoon record*/
00061 
00062 #define ixcancooninfo 0
00063 #define ixmsginfo 1
00064 #define ixlangerrorinfo 2
00065 #define ixcommandinfo 3
00066 #define ixaboutinfo 4 
00067 #define ixpaletteinfo 5 
00068 
00069  
00070 typedef struct tycancoonwindowinfo { /*lives both in memory and on disk*/   
00071     
00072     diskrect windowrect;
00073     
00074     diskfontstring fontname; /*only maintained on disk*/
00075     
00076     short fontnum; /*only valid when it's in memory*/
00077     
00078     short fontsize, fontstyle;
00079     
00080     WindowPtr w; /*only valid when it's in memory*/
00081     
00082     boolean flhidden; /*6.23.97 dmb*/
00083 
00084     boolean flunused;
00085 
00086     char waste [8];
00087     } tycancoonwindowinfo;
00088 
00089 
00090 typedef struct tycancoonrecord { /*one of these for every cancoon file that's open*/
00091 
00092     hdldatabaserecord hdatabase; /*db.c's record*/
00093     
00094     hdlhashtable hroottable; /*the root symbol table for this file*/
00095     
00096     Handle hrootvariable; /*the variable record for the root symbol table*/
00097     
00098     #if !flruntime
00099     
00100     hdlmenubarlist hmenubarlist; /*the menubar values that are active in this cancoon file*/
00101     
00102     hdlprocesslist hprocesslist; /*background processes attached to us*/
00103     
00104     Handle hscriptstring; /*appears in the quickscript dialog, if nil use empty string*/
00105     
00106     tycancoonwindowinfo windowinfo [ctwindowinfo];
00107     
00108     hdlstring hprimarymsg; /*the message being displayed in home window*/
00109     
00110     hdlstring hsecondarymsg; /*the message waiting to be displayed, nil if none*/
00111     
00112     hdltreenode hprimaryagent; /*code of agent selected with popup*/
00113     
00114     short oldwidth; /*used in the flagflip routine*/
00115     
00116     #ifdef version5orgreater
00117         
00118         Rect messagearea;
00119         
00120         Rect aboutarea;
00121         
00122         boolean flguestroot; // are we mounted into a host root?
00123 
00124     #else
00125         
00126         short buttoncursor; /*you can move the cursor with tab and back-tab*/
00127         
00128     #endif
00129     
00130     boolean fldirty; /*anyone who changes the record should set this true*/
00131     
00132     boolean flbigwindow; /*true if flag icon is down*/
00133     
00134     boolean flbackgroundmsgblocked; /*true until user clicks in window*/
00135     
00136     boolean flflagdisabled; /*hide the flag?*/
00137     
00138     boolean flpopupdisabled; /*hide the agents popup menu?*/
00139     
00140     #endif
00141     } tycancoonrecord, *ptrcancoonrecord, **hdlcancoonrecord;
00142 
00143 
00144 /*the one "superglobal" variable*/
00145 
00146 extern hdlcancoonrecord cancoonglobals;
00147 
00148 
00149 /*prototypes*/
00150 
00151 extern boolean ccnewfilewindow (tyexternalid, WindowPtr *, boolean);
00152 
00153 extern boolean ccdisposefilerecord (void);
00154 
00155 extern boolean ccsavespecialfile (ptrfilespec, hdlfilenum, short, boolean, boolean);
00156 
00157 extern boolean ccgetwindowrect (short, Rect *);
00158 
00159 extern boolean ccnewsubwindow (hdlwindowinfo, short);
00160 
00161 extern boolean ccsubwindowclose (hdlwindowinfo, short);
00162 
00163 extern boolean cccopywindowinfo (hdlwindowinfo, short);
00164 
00165 extern void setcancoonglobals (hdlcancoonrecord);
00166 
00167 extern boolean ccinexpertmode (void);
00168 
00169 extern boolean ccfindrootwindow (hdlwindowinfo *);
00170 
00171 extern hdldatabaserecord ccwindowgetdatabase (WindowPtr);
00172 
00173 extern boolean ccstart (void);
00174 
00175 
00176 

Generated on Wed May 31 18:19:44 2006 for frontierkernel 10.1.10a by  doxygen 1.4.6