diff --git a/src/documentation/haiku_book/Haiku_Book.xml b/src/documentation/haiku_book/Haiku_Book.xml
index f7921252db..e5593df5ec 100644
--- a/src/documentation/haiku_book/Haiku_Book.xml
+++ b/src/documentation/haiku_book/Haiku_Book.xml
@@ -25,56 +25,57 @@
-Haiku'>
+Haiku'>
]>
-
- Haiku Book
- 2005-05-16
-
- Jerome
- Duval
-
+
+ Haiku Book
+ 2005-05-16
+
+
+ Jerome
+ Duval
+
+
-
-
- This guide is the documentation for the C and C++ API of &haiku;.
-
-
+
+
+ This guide is the documentation for the C and C++ API of &haiku;.
+
+
-
-
- 1.0
- 2005-05-16
- kor
- Initial version.
-
-
-
+
+
+ 1.00
+ 2005-05-16
+ kor
+ Initial version.
+
+
+
-
-&appkit;
-&devicekit;
-&gamekit;
-&interfacekit;
-&kernelkit;
-&mailkit;
-&mediakit;
-&midikit;
-&networkkit;
-&openglkit;
-&storagekit;
-&supportkit;
-&translationkit;
-
-
-&license;
-
+
+ &appkit;
+ &devicekit;
+ &gamekit;
+ &interfacekit;
+ &kernelkit;
+ &mailkit;
+ &mediakit;
+ &midikit;
+ &networkkit;
+ &openglkit;
+ &storagekit;
+ &supportkit;
+ &translationkit;
+
+
+ &license;
diff --git a/src/documentation/haiku_book/Jamfile b/src/documentation/haiku_book/Jamfile
index c551644b8d..f177bc92fa 100644
--- a/src/documentation/haiku_book/Jamfile
+++ b/src/documentation/haiku_book/Jamfile
@@ -2,13 +2,24 @@ SubDir HAIKU_TOP src documentation haiku_book ;
Doc2HTML
Haiku_Book.xml
- :
- : http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
+ : index.html
+ : http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
: Haiku_Book
+ :
+ : -stringparam use.id.as.filename 1
;
+# Single most ugly string manipulation ever ...
rule FRelGristFiles
{
+ #local targets = $(1) ;
+
+ #local fallbackgrist = $(2:J=!) ;
+ #local gristval = $(SOURCE_GRIST:E=$(fallbackgrist)) ;
+
+ #local sourcegrist = $(targets:G=gristval) ;
+ #return $(targets:G=$(gristval)) ;
+
return $(<:G=$(SOURCE_GRIST:E)$(>:J=!)) ;
}
@@ -28,12 +39,56 @@ translationkit.xml ;
Includes [ FGristFiles Haiku_Book.xml ]
: [ FGristFiles $(chapter_files) ] license.xml ;
-SEARCH on [ FGristFiles $(chapter_files) ] = [ FDirName $(SUB_DIR) ] ;
+SEARCH on [ FGristFiles $(chapter_files) ] = [ FDirName $(SUBDIR) ] ;
local app_files = intro.xml messaging.xml scripting.xml Application.xml ;
Includes [ FGristFiles appkit.xml ] : [ FRelGristFiles $(app_files) : app ] ;
-SEARCH on [ FRelGristFiles $(app_files) : app ] = [ FDirName $(SUB_DIR) app ] ;
+SEARCH on [ FRelGristFiles $(app_files) : app ] = [ FDirName $(SUBDIR) app ] ;
+
+local device_files = intro.xml Joystick.xml SerialPort.xml ;
+Includes [ FGristFiles devicekit.xml ] : [ FRelGristFiles $(device_files) : device ] ;
+SEARCH on [ FRelGristFiles $(device_files) : device ] = [ FDirName $(SUBDIR) device ] ;
+
+local game_files = intro.xml ;
+Includes [ FGristFiles gamekit.xml ] : [ FRelGristFiles $(game_files) : game ] ;
+SEARCH on [ FRelGristFiles $(game_files) : game ] = [ FDirName $(SUBDIR) game ] ;
+
+local interface_files = intro.xml ;
+Includes [ FGristFiles interfacekit.xml ] : [ FRelGristFiles $(interface_files) : interface ] ;
+SEARCH on [ FRelGristFiles $(interface_files) : interface ] = [ FDirName $(SUBDIR) interface ] ;
local kern_files = intro.xml threads.xml ports.xml sems.xml ;
Includes [ FGristFiles kernelkit.xml ] : [ FRelGristFiles $(kern_files) : kernel ] ;
-SEARCH on [ FRelGristFiles $(kern_files) : kernel ] = [ FDirName $(SUB_DIR) kernel ] ;
+SEARCH on [ FRelGristFiles $(kern_files) : kernel ] = [ FDirName $(SUBDIR) kernel ] ;
+
+local mail_files = intro.xml ;
+Includes [ FGristFiles mailkit.xml ] : [ FRelGristFiles $(mail_files) : mail ] ;
+SEARCH on [ FRelGristFiles $(mail_files) : mail ] = [ FDirName $(SUBDIR) mail ] ;
+
+local media_files = intro.xml ;
+Includes [ FGristFiles mediakit.xml ] : [ FRelGristFiles $(media_files) : media ] ;
+SEARCH on [ FRelGristFiles $(media_files) : media ] = [ FDirName $(SUBDIR) media ] ;
+
+local midi_files = intro.xml ;
+Includes [ FGristFiles midikit.xml ] : [ FRelGristFiles $(midi_files) : midi ] ;
+SEARCH on [ FRelGristFiles $(midi_files) : midi ] = [ FDirName $(SUBDIR) midi ] ;
+
+local network_files = intro.xml ;
+Includes [ FGristFiles networkkit.xml ] : [ FRelGristFiles $(network_files) : network ] ;
+SEARCH on [ FRelGristFiles $(network_files) : network ] = [ FDirName $(SUBDIR) network ] ;
+
+local opengl_files = intro.xml ;
+Includes [ FGristFiles openglkit.xml ] : [ FRelGristFiles $(opengl_files) : opengl ] ;
+SEARCH on [ FRelGristFiles $(opengl_files) : opengl ] = [ FDirName $(SUBDIR) opengl ] ;
+
+local storage_files = intro.xml ;
+Includes [ FGristFiles storagekit.xml ] : [ FRelGristFiles $(storage_files) : storage ] ;
+SEARCH on [ FRelGristFiles $(storage_files) : storage ] = [ FDirName $(SUBDIR) storage ] ;
+
+local support_files = intro.xml ;
+Includes [ FGristFiles supportkit.xml ] : [ FRelGristFiles $(support_files) : support ] ;
+SEARCH on [ FRelGristFiles $(support_files) : support ] = [ FDirName $(SUBDIR) support ] ;
+
+local translation_files = intro.xml ;
+Includes [ FGristFiles translationkit.xml ] : [ FRelGristFiles $(translation_files) : translation ] ;
+SEARCH on [ FRelGristFiles $(translation_files) : translation ] = [ FDirName $(SUBDIR) translation ] ;
diff --git a/src/documentation/haiku_book/app/Application.xml b/src/documentation/haiku_book/app/Application.xml
index 5d9213e728..7019f9c69c 100644
--- a/src/documentation/haiku_book/app/Application.xml
+++ b/src/documentation/haiku_book/app/Application.xml
@@ -5,6 +5,5 @@
]>
-BApplication
-
+ BApplication
diff --git a/src/documentation/haiku_book/app/intro.xml b/src/documentation/haiku_book/app/intro.xml
index 2a23025dd7..683a16d935 100644
--- a/src/documentation/haiku_book/app/intro.xml
+++ b/src/documentation/haiku_book/app/intro.xml
@@ -5,21 +5,21 @@
]>
-Introduction
+ Introduction
-
-Application Kit is about classes needed to interact with other applications or the screen. Information about it is available in several topics :
-
-
-
- helps to send and receive data from other processes.
-
-
- helps to operate by program on other applications.
-
-
- describes an application object. Each application creates one instance to register with the system.
-
-
+
+ Application Kit is about classes needed to interact with other applications or the screen. Information about it is available in several topics :
+
+
+
+ helps to send and receive data from other processes.
+
+
+ helps to operate by program on other applications.
+
+
+ describes an application object. Each application creates one instance to register with the system.
+
+
diff --git a/src/documentation/haiku_book/appkit.xml b/src/documentation/haiku_book/appkit.xml
index b274c1f25d..8ca835a5c6 100644
--- a/src/documentation/haiku_book/appkit.xml
+++ b/src/documentation/haiku_book/appkit.xml
@@ -1,12 +1,11 @@
-The Application Kit
-
-
-
-
-
+ The Application Kit
+
+
+
+
diff --git a/src/documentation/haiku_book/device/Joystick.xml b/src/documentation/haiku_book/device/Joystick.xml
new file mode 100644
index 0000000000..7e566a1f8d
--- /dev/null
+++ b/src/documentation/haiku_book/device/Joystick.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ BJoystick
+
diff --git a/src/documentation/haiku_book/device/SerialPort.xml b/src/documentation/haiku_book/device/SerialPort.xml
new file mode 100644
index 0000000000..5f78727ea5
--- /dev/null
+++ b/src/documentation/haiku_book/device/SerialPort.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ BSerialPort
+
diff --git a/src/documentation/haiku_book/device/intro.xml b/src/documentation/haiku_book/device/intro.xml
new file mode 100644
index 0000000000..31b03432a7
--- /dev/null
+++ b/src/documentation/haiku_book/device/intro.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ Introduction
+
+
+ The Device Kit provides a collection of classes which provide a programmer a convenient interface with hardware devices attached to the computer. These classes free one from dealing with extraneous details, instead focusing on the device itself.
+
+
+
+
+ facilitates usage of an RS-232 port.
+
+
+ allows polling of any joystick or gamepad.
+
+
+
+
diff --git a/src/documentation/haiku_book/devicekit.xml b/src/documentation/haiku_book/devicekit.xml
index 15b230fbb8..2a4cc63f85 100644
--- a/src/documentation/haiku_book/devicekit.xml
+++ b/src/documentation/haiku_book/devicekit.xml
@@ -1,7 +1,11 @@
-The Device Kit
+ The Device Kit
+
+
+
+
diff --git a/src/documentation/haiku_book/game/intro.xml b/src/documentation/haiku_book/game/intro.xml
new file mode 100644
index 0000000000..ded076f84e
--- /dev/null
+++ b/src/documentation/haiku_book/game/intro.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ Introduction
+
+
+ The Game Kit consists of a number of classes which provide:
+
+ Fast, but low level, 2D graphics functionality
+ Convenient sound effect loading, management and playback
+
+
+
diff --git a/src/documentation/haiku_book/gamekit.xml b/src/documentation/haiku_book/gamekit.xml
index 97933595c5..6e25b276a1 100644
--- a/src/documentation/haiku_book/gamekit.xml
+++ b/src/documentation/haiku_book/gamekit.xml
@@ -1,7 +1,7 @@
-The Game Kit
-
+ The Game Kit
+
diff --git a/src/documentation/haiku_book/interface/intro.xml b/src/documentation/haiku_book/interface/intro.xml
new file mode 100644
index 0000000000..8a0c37a96c
--- /dev/null
+++ b/src/documentation/haiku_book/interface/intro.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ Introduction
+
+
+ The Interface Kit is the core of the window drawing, clicking-dragging, typing, scrolling, GUI world of Haiku. Any application which wants to use any widget will use this set of classes to manage their windows and respond to user/system feedback.
+
+
diff --git a/src/documentation/haiku_book/interfacekit.xml b/src/documentation/haiku_book/interfacekit.xml
index 567796dc06..fc06a4bf36 100644
--- a/src/documentation/haiku_book/interfacekit.xml
+++ b/src/documentation/haiku_book/interfacekit.xml
@@ -1,7 +1,7 @@
-The Interface Kit
-
+ The Interface Kit
+
diff --git a/src/documentation/haiku_book/kernel/intro.xml b/src/documentation/haiku_book/kernel/intro.xml
index d25b52cbfc..26f668f4b1 100644
--- a/src/documentation/haiku_book/kernel/intro.xml
+++ b/src/documentation/haiku_book/kernel/intro.xml
@@ -5,21 +5,21 @@
]>
-Introduction
+ Introduction
-
-Kernel Kit is about classes needed to interact with the kernel. Information about it is available in several topics :
-
-
-
- helps to perform tasks.
-
-
- helps to communicate between threads.
-
-
- helps to synchronize threads.
-
-
+
+ Kernel Kit is about classes needed to interact with the kernel. Information about it is available in several topics :
+
+
+
+ helps to perform tasks.
+
+
+ helps to communicate between threads.
+
+
+ helps to synchronize threads.
+
+
diff --git a/src/documentation/haiku_book/mail/intro.xml b/src/documentation/haiku_book/mail/intro.xml
new file mode 100644
index 0000000000..1023c719bf
--- /dev/null
+++ b/src/documentation/haiku_book/mail/intro.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ Introduction
+
+ The Mail Kit encompasses all email activities on Haiku, providing means for, but not limited to:
+
+ Sending and receiving of email
+ Interfacing for the manipulation of email messages and attachments
+ Manipulating email account information
+
+
+
+
diff --git a/src/documentation/haiku_book/mailkit.xml b/src/documentation/haiku_book/mailkit.xml
index 3f771736e4..18b23e5c3f 100644
--- a/src/documentation/haiku_book/mailkit.xml
+++ b/src/documentation/haiku_book/mailkit.xml
@@ -3,5 +3,6 @@
The Mail Kit
-
+
+
diff --git a/src/documentation/haiku_book/media/intro.xml b/src/documentation/haiku_book/media/intro.xml
new file mode 100644
index 0000000000..8bf240dd63
--- /dev/null
+++ b/src/documentation/haiku_book/media/intro.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ Introduction
+
+
+ The Media Kit controls the heart of the Haiku media playback, recording and transformation. It contains classes in two main areas:
+
+ Application: The consumption and production of media. Encoding, decoding and playback.
+ Node: Direct manipulation of media nodes which process the media
+
+
+
diff --git a/src/documentation/haiku_book/mediakit.xml b/src/documentation/haiku_book/mediakit.xml
index ff7767566d..2bb7d4fd96 100644
--- a/src/documentation/haiku_book/mediakit.xml
+++ b/src/documentation/haiku_book/mediakit.xml
@@ -1,7 +1,8 @@
-The Media Kit
+ The Media Kit
+
diff --git a/src/documentation/haiku_book/midi/intro.xml b/src/documentation/haiku_book/midi/intro.xml
new file mode 100644
index 0000000000..a8c2415c76
--- /dev/null
+++ b/src/documentation/haiku_book/midi/intro.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Introduction
+
+
+ The Midi Kit provides classes capable of understanding the MIDI file format and synthesising the sounds described within. Furthermore, it also provides mechanisms for communicating with MIDI compliant hardware via messages.
+
+ There are two versions of the Midi Kit, the latter reportedly much more up-to-date and more compatible with other applications. Though sadly it is undocumented. For more information consult the headers (At least until such time as this document is further updated).
+
+
+
diff --git a/src/documentation/haiku_book/midikit.xml b/src/documentation/haiku_book/midikit.xml
index 7b0bff0223..6176effe54 100644
--- a/src/documentation/haiku_book/midikit.xml
+++ b/src/documentation/haiku_book/midikit.xml
@@ -1,7 +1,8 @@
-The Midi Kit
-
+ The Midi Kit
+
+
diff --git a/src/documentation/haiku_book/network/intro.xml b/src/documentation/haiku_book/network/intro.xml
new file mode 100644
index 0000000000..048b947841
--- /dev/null
+++ b/src/documentation/haiku_book/network/intro.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ Introduction
+
+ The Network Kit encompasses all user network functionality in Haiku, providing both the standard UNIX/POSIX socket implementation along with a number of convenience classes for simple buffering, address operations and endpoint manipulation.
+
+
+
diff --git a/src/documentation/haiku_book/networkkit.xml b/src/documentation/haiku_book/networkkit.xml
index 6f5d85c3d3..00fc46f79c 100644
--- a/src/documentation/haiku_book/networkkit.xml
+++ b/src/documentation/haiku_book/networkkit.xml
@@ -1,7 +1,8 @@
-The Network Kit
+ The Network Kit
+
diff --git a/src/documentation/haiku_book/opengl/intro.xml b/src/documentation/haiku_book/opengl/intro.xml
new file mode 100644
index 0000000000..281e060aaf
--- /dev/null
+++ b/src/documentation/haiku_book/opengl/intro.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ Introduction
+
+
+ The OpenGL Kit contains the Haiku OpenGL bindings and the BView subclass BGLView which manages the hardware interface and GL contexts.
+
+
+
diff --git a/src/documentation/haiku_book/openglkit.xml b/src/documentation/haiku_book/openglkit.xml
index 4021d01201..ef414aa23b 100644
--- a/src/documentation/haiku_book/openglkit.xml
+++ b/src/documentation/haiku_book/openglkit.xml
@@ -1,7 +1,8 @@
-The OpenGL Kit
+ The OpenGL Kit
+
diff --git a/src/documentation/haiku_book/storage/intro.xml b/src/documentation/haiku_book/storage/intro.xml
new file mode 100644
index 0000000000..8083e05c92
--- /dev/null
+++ b/src/documentation/haiku_book/storage/intro.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ Introduction
+
+
+ The Storage Kit deals with the manipulation, retrieval and creation of filesystem objects. This is enabled by the Haiku implementation of the POSIX filesystem functions (written in C) and a collection of C++ classes which are concerned with areas such as:
+
+ Entries/nodes
+ Volumes
+ Queries/Indices
+ Utility classes
+
+
+
diff --git a/src/documentation/haiku_book/storagekit.xml b/src/documentation/haiku_book/storagekit.xml
index 3cb8f8570d..04a15f320e 100644
--- a/src/documentation/haiku_book/storagekit.xml
+++ b/src/documentation/haiku_book/storagekit.xml
@@ -1,7 +1,8 @@
-The Storage Kit
+ The Storage Kit
+
diff --git a/src/documentation/haiku_book/support/intro.xml b/src/documentation/haiku_book/support/intro.xml
new file mode 100644
index 0000000000..9a3a061b7c
--- /dev/null
+++ b/src/documentation/haiku_book/support/intro.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ Introduction
+
+
+ The Support Kit is an assortment of easy to use classes which allow a programmer to quickly extend their applications without re-writing much common functionality. Many benefits can arrise from using these classes when one starts to extend an application in the future. Functionality includes:
+
+
+ Threading utility classes:
+
+ BLocker and BAutoLock
+ "Thread Local Storage"
+
+
+
+ Archiving and IO:
+
+ BArchivable
+ BFlattenable
+ BDataIO and BPositionIO
+ BMemoryIO and BMallocIO
+
+
+ BBlockCache
+ BList
+ BString
+ BStopWatch
+ Common types and constants
+ Error codes for all kits
+
+
+
diff --git a/src/documentation/haiku_book/supportkit.xml b/src/documentation/haiku_book/supportkit.xml
index a68b5994d4..7d922c005b 100644
--- a/src/documentation/haiku_book/supportkit.xml
+++ b/src/documentation/haiku_book/supportkit.xml
@@ -1,7 +1,8 @@
-The Support Kit
+ The Support Kit
+
diff --git a/src/documentation/haiku_book/translation/intro.xml b/src/documentation/haiku_book/translation/intro.xml
new file mode 100644
index 0000000000..d964250cf3
--- /dev/null
+++ b/src/documentation/haiku_book/translation/intro.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ Introduction
+
+
+ The Translation Kit gives the user the ability to convert media from one format into a number of target formats. To accomplish this it provides functionality in the form of BTranslatorRoster for the act, management and configuration of the translation and BTranslator for the creation of new translators between additional formats.
+
+
diff --git a/src/documentation/haiku_book/translationkit.xml b/src/documentation/haiku_book/translationkit.xml
index 2a1944cfcd..ced2736d13 100644
--- a/src/documentation/haiku_book/translationkit.xml
+++ b/src/documentation/haiku_book/translationkit.xml
@@ -1,7 +1,8 @@
-The Translation Kit
+ The Translation Kit
+