GNUstep Tutorial

Yen-Ju Chen

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.


Table of Contents

Preface
I. GNUstep Introduction
II. Installation and Usage
1. Installing GNUstep
2. User Defaults
3. Languages Setup
III. Applications
4. Preferences
5. Terminal
6. ImageViewer
7. TalkSoup
IV. Objective-C Programming
V. Basic GNUstep Programming
8. Developement Tools & Resources
9. HelloWorld and Basic Classes
10. First Window Application
11. Memory Management
12. TimeMachine
Single Window Application
Outlet and Action
Custom View
Drawing
Panel
Notification
13. Money
Document-base application
Table
Load and Save
Drag and drop in table
14. Overview
15. LunarCalendar
16. NSLookupService
17. Regular Expression
18. Localization
19. Non-blocking I/O
VI. Advanced GNUstep Programming
VII. Additional Frameworks and Libraries
20. GNUstep Renaissance
21. GSXML
22. Netclasses
23. StepTalk

List of Figures

4.1. Defaults Preferences
4.2. Defaults Preferences: Add/Remove domain
4.3. Defaults Preferences: Add/Remove entry
4.4. Font Preferences
4.5. Font Preferences: Set font
4.6. Modifier Key Preferences
4.7. Time & Date Preferences
4.8. Preferences Clock
4.9. Preferences Clock: 24-hour style
4.10. Preferences Clock: Analog clock
5.1. Terminal
5.2. Terminal: Font Preference
5.3. Terminal: Shell Preference
5.4. Terminal: Keyboard Preference
5.5. Terminal: Window Preference
5.6. Terminal: Service Preference
5.7. Terminal: Linux Parser Preference
6.1. ImageViewer
6.2. ImageViewer: Preferences
6.3. ImageViewer: Inspector
7.1. TalkSoup: Preferences
7.2. TalkSoup: Connection to server
7.3. TalkSoup
10.1. HelloWorld Window
10.2. Gorm main window
10.3. Gorm palettes
10.4. Gorm inspector
10.5. Add title into window
10.6. Change title
10.7. Add menu
10.8. Change file owner
10.9. Connect menu action
10.10. Choose action
10.11. Connect action for "Hide" menu
12.1. Simple TimeMachine
12.2. Interface of simple TimeMachine
12.3. Change title of button
12.4. Classes in Gorm
12.5. Create subclass of NSObject
12.6. Change class name
12.7. Add outlet
12.8. Add action
12.9. NSOwner
12.10. Connect outlet
12.11. Connect action
12.12. TimeMachine with custom view
12.13. NSControl in Gorm
12.14. Add subclass of NSControl
12.15. Interface with custom view
12.16. Change class of custom view
12.17. Custom view with TimeView class
12.18. Add outlet
12.19. Add action
12.20. Connect outlet
12.21. Custom view with analog clock
12.22. Panel in Gorm
12.23. Interface of time zone panel
12.24. Panel attributes
12.25. Outlets for time zone panel
12.26. Actions for time zone panel
12.27. Set NSOwner to TimeView class
12.28. Connect outlet
12.29. Connection NSTextField action
12.30. Connect nextKeyView
12.31. Connect menu action
13.1. Menu of document-base application
13.2. Create instance of NSDocumentController
13.3. Create NSDocument subclass
13.4. Set document as NSOwner of window
13.5. Connect NSOwner to window
13.6. Connect delegate to NSOwner
13.7. Add table into window
13.8. Attributes of NSTableView
13.9. Set resize attribute of table view
13.10. Add outlet for table view
13.11. Connect data source and delegate of table view
13.12. Connect outlet to table view
14.1. Interface of Overview
14.2. Autoresizing attribute of NSOutlineView
14.3. Select column in NSOutlineView
14.4. Change attribute of NSTableColumn
14.5. Create subclass in Gorm
14.6. Create outlet
14.7. Connect outlet to NSOutlineView
14.8. Connect data source of NSOutlineView
14.9. Assign delegate of NSApp
14.10. Overview
15.1. CalendarView
15.2. Interface of LunarCalendar
15.3. Add outlet
15.4. Connect outlet
16.1. Interface of NSLookupService
16.2. Connect outlet
16.3. Connect action.
16.4. Connect delegate of NSApp
18.1. Interface of Localization example
19.1. Interface of Search

List of Tables

13.1. Methods for loading and saving files