Foreword | p. 1 |
Introduction to Curl Technology | p. 3 |
The Development of the Client-Side Web | p. 3 |
The Curl Content Language | p. 5 |
Presentation Level | p. 5 |
Scripting Level | p. 5 |
Object-Oriented Programming | p. 5 |
Packaging and Security of Curl Content | p. 6 |
Creating and Running Your First Curl Applet | p. 6 |
Curl and Other Languages | p. 7 |
Curl and HTML/CSS | p. 7 |
Curl and JavaScript/VBScript/JScript | p. 7 |
Curl and Java/C++ | p. 8 |
Curl and Server-Side Languages (ASP, PHP, JSP) | p. 9 |
What makes Curl Different? | p. 10 |
What Can I do with Curl? | p. 10 |
Applets - Full-Page and Embedded | p. 11 |
Pre-Processed Curl | p. 11 |
Future Plans | p. 11 |
Licensing Curl Technology | p. 12 |
Curl Logging | p. 12 |
A Tour of Surge Lab v1.0 | p. 15 |
Is It Working? | p. 16 |
Logging Commercial Applets | p. 16 |
Surge Lab | p. 17 |
Documentation | p. 17 |
The Developer's Guide | p. 17 |
The Developer's Reference | p. 18 |
Writing and Debugging Code | p. 18 |
The Project Pane - Creating a Project File | p. 19 |
The Editor Pane - Using the Editor | p. 19 |
Debugging Code | p. 21 |
The Output Pane | p. 23 |
The Inspector | p. 23 |
Deploying Your Project | p. 24 |
The Curl Control Panel | p. 24 |
Privileged Locations | p. 24 |
Preferences | p. 25 |
Debugging Options | p. 25 |
Summary | p. 25 |
Curl as HTML/CSS | p. 27 |
Curl Expressions | p. 27 |
Displaying Text | p. 28 |
Core Formats | p. 29 |
Reserved Characters | p. 30 |
Comments | p. 30 |
Verbatim Strings | p. 31 |
Text Formatting | p. 32 |
Character Options | p. 32 |
Character Formats | p. 33 |
Special Characters | p. 35 |
Line Breaks | p. 35 |
Paragraph Formatting | p. 36 |
Paragraph Options | p. 36 |
Paragraph Formats | p. 37 |
Table Text Formats | p. 45 |
Table Text Options | p. 47 |
Special Text Formats | p. 48 |
Title | p. 48 |
Image | p. 49 |
Link and Destination | p. 50 |
The H-rule Format | p. 52 |
HTML-Like Layout Items | p. 53 |
Frames | p. 53 |
The Frame Object | p. 53 |
Forms | p. 55 |
List Controls | p. 55 |
ListBox | p. 55 |
Button Controls | p. 57 |
Text Controls | p. 57 |
Defining Your Own Styles | p. 57 |
Defining Text Formats | p. 57 |
Separating Code from Content | p. 59 |
Defining Text Procedures | p. 60 |
Summary | p. 61 |
Curl Syntax | p. 63 |
What We Know So Far | p. 63 |
Types | p. 65 |
Primitive Types | p. 65 |
Operators | p. 65 |
Variable Creation and Initialization | p. 67 |
The any Type | p. 68 |
Assigning New Values to Variables | p. 69 |
Quantities | p. 71 |
Quantities and Operators | p. 72 |
Characters are in Unicode | p. 73 |
Constants | p. 74 |
Is Everything an Object Really? | p. 75 |
Memory Management | p. 75 |
Top-level Expressions vs. Code Blocks | p. 75 |
Program Control | p. 77 |
The if Expression | p. 77 |
The unless Expression | p. 78 |
The switch Expression | p. 79 |
The type-switch Expression | p. 80 |
The for Expression | p. 80 |
Iterating Over Ranges | p. 80 |
Iterating Over Collections | p. 81 |
The while Expression | p. 82 |
The until Expression | p. 82 |
The break and continue Expressions | p. 82 |
Using Tagged Loops | p. 83 |
Calling Procedures | p. 84 |
Top-Level Procedures | p. 84 |
Anonymous Procedures | p. 86 |
Packages | p. 87 |
Subsidiary Files | p. 89 |
Super Packages | p. 89 |
Using Packages | p. 89 |
Summary | p. 91 |
Object-Oriented Programming | p. 93 |
Enumerations | p. 93 |
Classes | p. 94 |
Accessors | p. 96 |
The self Reference | p. 97 |
Options | p. 97 |
Constructors | p. 98 |
Class Variables and Procedures | p. 99 |
Factories | p. 101 |
Inheritance | p. 102 |
Multiple Inheritance and Shared Classes | p. 103 |
Secondary Constructors | p. 103 |
Using Superclass References | p. 104 |
Accessing Superclass Members | p. 104 |
Calling Superclass Constructors | p. 105 |
Protected Access | p. 106 |
Casting | p. 106 |
Overriding Superclass Methods | p. 107 |
Abstract Classes and Methods | p. 108 |
Preventing Derivation | p. 109 |
Parameterized Classes | p. 109 |
The Object Class | p. 110 |
Collections | p. 110 |
Sets | p. 111 |
Hash Tables | p. 112 |
Arrays | p. 113 |
Fast Arrays | p. 115 |
Multidimensional Arrays | p. 115 |
Handling Errors | p. 115 |
Built-in Exceptions Classes | p. 117 |
Creating Your Own Exception Classes | p. 118 |
Errors | p. 118 |
Summary | p. 118 |
Curl's "Scripting Objects" | p. 121 |
Security Issues | p. 121 |
Privileged Applets | p. 122 |
URIs and Resources | p. 122 |
Granting Privileged Applets Permission | p. 123 |
Unprivileged Applets | p. 124 |
The Curl Access File | p. 125 |
Applet Restrictions | p. 126 |
System Restrictions | p. 127 |
Network Access Restrictions | p. 127 |
File Access Restrictions | p. 127 |
User Interface Restrictions | p. 127 |
Persisting Data on the Client | p. 128 |
Private Persistent Data | p. 129 |
Storing Private Persistent Data | p. 129 |
Retrieving Persistent Data | p. 130 |
Shared Persistent Data | p. 131 |
PDI Files | p. 131 |
Repositories | p. 132 |
Applet Suspension | p. 134 |
Working with the Local File System | p. 134 |
The TextInputStream and TextOutputStream Objects | p. 135 |
Reading from a File | p. 135 |
Writing to a File | p. 138 |
Files and Directories | p. 141 |
The File Class | p. 142 |
The Directory Class | p. 146 |
Streams | p. 150 |
Stream Buffering | p. 151 |
Seekable Streams | p. 151 |
Summary | p. 151 |
Dynamic Layout and Interaction | p. 155 |
Overview | p. 155 |
Document Style | p. 156 |
Applet Content | p. 157 |
The Visual Class and its Subclasses | p. 158 |
Graphical Containers | p. 159 |
Properties = Fields + Options | p. 161 |
Commonly Used Options | p. 162 |
Colors, FillPattern, and Background | p. 164 |
Putting It All Together: A Simple Applet | p. 166 |
A Different User Interface | p. 169 |
Types of Box | p. 171 |
Layout | p. 172 |
How Elastic Compression Works | p. 173 |
How Elastic Stretch Works | p. 175 |
Using Elastic | p. 176 |
Proportional Sizing | p. 178 |
Events | p. 179 |
Event Delivery | p. 180 |
Types of Events | p. 180 |
Pointer Events | p. 180 |
Keyboard and Focus Events | p. 181 |
Controls | p. 181 |
Buttons | p. 182 |
CheckButtons, RadioButtons, and RadioFrames | p. 183 |
Text Fields | p. 184 |
List Controls | p. 184 |
Dialogs | p. 185 |
Menus | p. 187 |
Conclusion and Further Reading | p. 189 |
Dynamic 2D Graphics | p. 191 |
Architectural Overview of Curl Graphics | p. 191 |
Immediate Mode verses Retained Mode | p. 192 |
Immediate Mode 2D Graphics | p. 192 |
Procedural Images | p. 193 |
Renderer2d Methods | p. 197 |
Manipulating Renderer2d Properties | p. 198 |
Creating Custom Widgets | p. 201 |
Graphical Shapes | p. 204 |
Creating Custom Graphical Shapes | p. 204 |
Image Filters | p. 208 |
Accessing Pixels | p. 209 |
Mutating Images | p. 213 |
The DisplacementMesh Class | p. 215 |
Summary | p. 217 |
Dynamic 3D Graphics | p. 219 |
3D Graphics | p. 219 |
Retained-Mode 3D Graphics | p. 220 |
Interactive 3D Graphics | p. 223 |
Lighting Effects | p. 224 |
Extensibility | p. 229 |
Immediate-Mode 3D Graphics | p. 229 |
Texture Mapping | p. 233 |
Obtaining a Drawing Surface | p. 235 |
Animation | p. 237 |
Advanced Topics | p. 238 |
Antialiasing | p. 239 |
Summary | p. 241 |
Audio and Input Devices | p. 243 |
Audio | p. 243 |
Basic Sound Playback | p. 244 |
Programmatic Control | p. 244 |
Asynchronous Playback | p. 246 |
Generating Sound with Curl | p. 248 |
Audio Filters | p. 251 |
Input Devices | p. 252 |
Joystick | p. 252 |
Raw Keyboard Access | p. 254 |
Summary | p. 254 |
Beyond This Book | p. 257 |
Additional Features of Curl Technology | p. 257 |
Networking and Client-Server Support | p. 257 |
Integrated XML and SOAP Connectivity | p. 258 |
Memory Management | p. 261 |
Applying Curl Technology to Real-World Problems | p. 263 |
Interactive Content and Premium Services | p. 263 |
Distributed User Interface for Enterprise Systems | p. 263 |
Data Visualization and Analysis | p. 264 |
Future Enhancements to Curl Technology | p. 264 |
Dynamic Component Retrieval | p. 264 |
Enhanced 2D Rendering and SVG Support | p. 265 |
Customizing the GUI Toolkit | p. 265 |
Additional GUI Components Encapsulating Complex Graphics Capabilities | p. 266 |
Third-Party Tools Support | p. 266 |
Internationalization | p. 266 |
Multi-Platform and Handheld Computing | p. 267 |
Curl Technology and the Software Industry | p. 267 |
Web Services | p. 267 |
Pervasive Computing | p. 268 |
Pay-for-Use Billing | p. 268 |
Summary | p. 269 |
A Tour of Surge Lab Beta 5 | p. 271 |
The Surge Lab IDE | p. 271 |
The Windows List | p. 272 |
The Source Editor | p. 272 |
Surge Console | p. 274 |
Summary | p. 274 |
Useful Online Resources | p. 277 |
Wrox Sites | p. 277 |
Curl Corporation Sites | p. 277 |
Independent Curl Sites | p. 278 |
Curl Mailing Lists | p. 278 |
Table of Contents provided by Syndetics. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.