1 The Environment.- An Overview of the Environment.- Using the Class Hierarchy Browser.- Templates in the CHB.- Removing Classes via the CHB.- The Smalltalk/V Image.- Using the Disk Browser.- Using the Other Browsers.
- Using Inspectors.- Using Workspaces.- Using the Debugger.- 2 The Smalltalk/V Language.- Review of Basic Smalltalk Syntax.- Message-Passing Syntax.- Method-Definition Syntax.- Summary of Syntax.
- The Essential Classes.- Object.- BitBlt.- CharacterScanner.- Pen.- The Collection Classes.- Dispatcher.- Form.
- DisplayScreen.- Magnitude Classes.- Menu.- The Pane Classes.- Point.- Prompter.- Rectangle.- Stream.
- StringModel.- TextSelection.- 3 The First Project: A Prioritizer.- Project Overview.- Designing the Project.- Building the Project.- Class Prompter.- Creating a Prompter.
- Sorting the User''s List.- Displaying the Result.- The Finished Prioritizer Method.- Adding Prioritizer to the Menus.- Demo Menu Modification.- System Menu Modification.- Sprucing Up the Application.- Changing the Prompter.
- Consolidating the Code.- Using the Debugger, Part 2.- 4 Programming Techniques.- Why Smalltalk/V Feels Different.- Peeling the Onion.- Where to Begin?.- What Should the Application Do?.- Objects and Their Responsibilities.
- What Do Objects Need to Know?.- How Do Objects Collaborate?.- Starting With Class Diagrams.- Creating Objects.- Subclassing the Class Object.- Subclassing Other Classes.- The Subclassing Process.- Modifying Behavior of Chosen Class.
- Creating and Using Abstract Classes.- The Purpose of Do-Nothing Methods.- Identifying the Right Class.- Adding Methods.- The Process of Adding a Method.- Avoid Adding Methods to System Classes.- 5 The Second Project: A Simple Counter.- Project Overview.
- A Quick Overview of Model-Pane-Dispatcher.- The Model.- The Pane.- The Dispatcher.- What''s Really Going on Here?.- Designing the Project.- Dividing the Responsibilities.- Defining the Class.
- Defining the Main Window.- Defining the Subpanes.- Displaying the Window.- Creating a Single Method for Window Definition.- Writing the Methods for SubPane Interaction.- Methods to Create a Counter.- Testing the Counter.- Making the Window Smaller.
- Inspecting a Running Counter.- Removing the Counter Class.- The Complete Counter Project Listing.- 6 The World of MPD.- There''s So Much Going on Here!.- TopPane Methods You''ll Need.- The new Method.- The label: Method.
- The addSubpane: Method.- The minimumSize: Method.- The initWindowSize Method.- The rightIcons: and leftIcons: Methods.- SubPane Methods You''ll Need.- The model: Method.- The name: Method.- The change: Method.
- The framingBlock: and framingRatio: Methods.- Creating Rectangles.- Rectangles and Subpanes.- Pane Menus.- Obtaining a TextPane''s Contents.- The Only Model Method You''ll Need.- Dispatcher Methods You''ll Need.- The scheduleWindow Method.
- The open Method.- Standard Use of Dispatcher Methods.- 7 The Third Project: Creating a New Pane Type.- Designing the Project.- Problems Addressed by ListPane.- Responsibilities of ListPane.- Problems to be Addressed by MListPane.- Responsibilities of MListPane.
- A Note About Responsibilities.- Building the Test Application.- Defining and Initializing Instance Variables.- Opening the Application Window.- Connecting the Two Panes.- Creating and Constructing MListPane.- Building MListPane.- Relevant MListPane Responsibilities.
- Clearing selection and selections as Needed.- Formatting and Unformatting Selections.- Adding and Removing Elements of selections.- Preserving the Original List.- Interpreting User Input for Selecting and De-Selecting Elements.- Providing the Model With User''s Selections.- The Complete Listing.- An Alternative Approach.
- 8 The Graphic World.- Basic Graphic Concepts.- The Class Point.- The Class Rectangle.- The Class Form.- Drawing in Smalltalk/V.- The Class BitBlt.- The Class Pen.
- The direction: Method.- The turn: Method.- The place: Method.- The home Method.- The go: Method.- The goto: Method.- Class GraphPane.- 9 The Fourth Project: A Graphing Application.
- Designing the Application.- The Subpanes.- The Class PlotWindow.- Building the Application: Stage One.- The open Method.- The initWindowSize Method.- Methods for the Text Pane.- Methods for the Graphing Pane.
- Demonstrating the First Version.- Building the Application: Stage Two.- Plotting the Plots'' Arguments.- The initialize Method.- Drawing the Bars.- Defining Graph Selection Methods.- The clearPlot Method.- The string:from: Method.
- Demonstrating the Second Version.- The Complete Listing of Second Version.- Building the Application: Stage Three.- User Selection of Graph Arguments.- Changing the plotMenu.- The optionPicker Method.- The barFill Method.- The barSpacing, barWidth, and factor Methods.
- The promptFor:default:validateWith: Method.- File-Based Data Retrieval and Storage.- The Modified dataMenu Method.- The fileIn Method.- The fileOut Method.- Redrawing the Plot on User Demand.- The Complete Listing.- 10 The Text World.
- Behind the Text in Smalltalk.- The Class TextPane.- Methods for Appending Text.- Methods for Scrolling the Text.- Methods Related to Selection of Text.- The Class Text Editor.- Tracking the Status of Text.- Putting Special Characters in Text.
- Zooming the Pane.- The Class StringModel.- Information-Gathering Methods.- Searching Methods.- Editing Methods.- The Class CharacterScanner.- Methods to Control Appearance.- Methods to Display Text.
- Methods to Blank Portions of the Pane.- 11 The Fifth Project: A Form Designer.- Project Overview.- Designing the Project.- Statement of Purpose.- Defining the Objects.- Object Responsibilities.- General Approach.
- Knowledge Needed.- Building the Project.- Creating the New Classes.- Skeletal Interaction Methods.- Building the Test Application.- Writing Methods to Place Sub-Panes.- Installing the Text Panes for Each Editable Field.- Modifying Undesirable Behavior in the Superclasses.
- Adding Menu Capabilities.- Formatting the Name Fields.- Creating a More Complex Test Application.- Disabling Scrolling in the GraphPane.- An Alternative Approach.- Complete Source Code.