generator: _c_accessor_get_length: remove buggy special case
[free-sw/xcb/libxcb] / doc / tutorial / index.html
index ac173a0..ea08337 100644 (file)
             <li><a class="subsection" href="#DoesBackingStore">DoesBackingStore</a>
             <li><a class="subsection" href="#EventMaskOfScreen">EventMaskOfScreen</a>
           </ol>
-        <li><a class="subsection" href="#misc">Miscellaneaous macros</a>
+        <li><a class="subsection" href="#misc">Miscellaneous macros</a>
           <ol>
             <li><a class="subsection" href="#DisplayOfScreen">DisplayOfScreen</a>
             <li><a class="subsection" href="#DisplayCells">DisplayCells / CellsOfScreen</a>
       with the <a href="http://xcb.freedesktop.org">XCB</a>
       library. keep in mind that XCB, like the
       <a href="http://tronche.com/gui/x/xlib/introduction">Xlib</a>
-      library, isn't what post programmers wanting to write X
+      library, isn't what most programmers wanting to write X
       applications are looking for. They should use a much higher
       level GUI toolkit like Motif,
       <a href="http://www.lesstif.org">LessTiff</a>,
       <a href="http://www.gtk.org">GTK</a>,
-      <a href="http://www.trolltech.com">QT</a> or
-      <a href="http://www.enlightenment.org">EWL</a>, or use
+      <a href="http://www.trolltech.com">QT</a>,
+      <a href="http://www.enlightenment.org">EWL</a>,
+      <a href="http://www.enlightenment.org">ETK</a>, or use
       <a href="http://cairographics.org">Cairo</a>.
       However,
       we need to start somewhere. More than this, knowing how things
@@ -470,8 +471,6 @@ main ()
   diff = end - start;
 
   /* free var */
-  for (i = 0; i &lt; count; ++i)
-    free (names[i]);
   free (atoms);
   free (cs);
 
@@ -493,6 +492,8 @@ main ()
   printf ("ratio         : %f\n", diff_x / diff);
 
   free (atoms_x);
+  for (i = 0; i &lt; count; ++i)
+    free (names[i]);
   free (names);
 
   XCloseDisplay (disp);
@@ -1330,7 +1331,7 @@ main ()
       /* We draw the polygonal line */
       xcb_poly_line (c, XCB_COORD_MODE_PREVIOUS, win, foreground, 4, polyline);
 
-      /* We draw the segements */
+      /* We draw the segments */
       xcb_poly_segment (c, win, foreground, 2, segments);
 
       /* We draw the rectangles */
@@ -1452,7 +1453,7 @@ typedef enum {
 </pre>
         <p>
         If the window has already been created, we can use the
-        <span class="code">xcb_configure_window()</span> function to set
+        <span class="code">xcb_change_window_attributes()</span> function to set
         the events that the window will receive. The subsection
         <a href="#winconf">Configuring a window</a> shows its
         prototype. As an example, here is a piece of code that
@@ -1465,14 +1466,14 @@ const static uint32_t values[] = { XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTT
 
 /* The connection c and the window win are supposed to be defined */
 
-xcb_configure_window (c, win, XCB_CW_EVENT_MASK, values);
+xcb_change_window_attributes (c, win, XCB_CW_EVENT_MASK, values);
 </pre>
         <div class="emph">
         <p>
-        Note: A common bug programmers do is adding code to handle new
+        Note: A common bug programmers have is adding code to handle new
         event types in their program, while forgetting to add the
         masks for these events in the creation of the window. Such a
-        programmer then should sit down for hours debugging his
+        programmer would then sit there for hours debugging their
         program, wondering "Why doesn't my program notice that I
         released the button?", only to find that they registered for
         button press events but not for button release events.
@@ -1829,7 +1830,7 @@ typedef xcb_enter_notify_event_t xcb_leave_notify_event_t;
           keyboard focus using the window manager (often by clicking
           on the title bar of the desired window). Once our window
           has the keyboard focus, every key press or key release will
-          cause an event to be sent to our program (if it regsitered
+          cause an event to be sent to our program (if it registered
           for these event types...).
           </p>
           <li class="subsubtitle"><a name="keypress">Keyboard press and release events</a>
@@ -2063,7 +2064,7 @@ typedef uint32_t xcb_font_t;
         <pre class="code">
 xcb_font_t xcb_generate_id (xcb_connection_t *c);
 </pre>
-        <p>
+        <br>
         <li class="subtitle"><a name="openingfont">Opening a Font</a>
         <p>
         To open a font, we use the following function:
@@ -2089,7 +2090,7 @@ xcb_void_cookie_t xcb_open_font (xcb_connection_t *c,
         Once a font is opened, you have to create a Graphic Context
         that will contain the informations about the color of the
         foreground and the background used when you draw a text in a
-        Drawable. Here is an exemple of a Graphic Context that will
+        Drawable. Here is an example of a Graphic Context that will
         allow us to draw an opened font with a black foreground and a
         white background:
         </p>
@@ -2140,11 +2141,12 @@ xcb_void_cookie_t xcb_image_text_8 (xcb_connection_t *c,
         This example draw a text at 10 pixels (for the base line) of
         the bottom of a window. Pressing the Esc key exits the program.
         </p>
-        <pre class="code">#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
+        <pre class="code">
+#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
 
-#include <xcb/xcb.h>
+#include &lt;xcb/xcb.h&gt;
 
 #define WIDTH 300
 #define HEIGHT 100
@@ -2266,7 +2268,7 @@ int main ()
   int                   screen_number;
 
   /* getting the connection */
-  c = xcb_connect (NULL, &screen_number);
+  c = xcb_connect (NULL, &amp;screen_number);
   if (!c) {
     fprintf (stderr, "ERROR: can't connect to an X server\n");
     return -1;
@@ -2277,7 +2279,7 @@ int main ()
 
   screen = NULL;
   screen_iter = xcb_setup_roots_iterator (setup);
-  for (; screen_iter.rem != 0; --screen_number, xcb_screen_next (&screen_iter))
+  for (; screen_iter.rem != 0; --screen_number, xcb_screen_next (&amp;screen_iter))
     if (screen_number == 0)
       {
         screen = screen_iter.data;
@@ -2326,7 +2328,7 @@ int main ()
   while (1) {
     e = xcb_poll_for_event(c);
     if (e) {
-      switch (e->response_type) {
+      switch (e->response_type &amp; ~0x80) {
       case XCB_EXPOSE: {
         char *text;
 
@@ -2402,7 +2404,7 @@ xcb_void_cookie_t xcb_change_property (xcb_connection_t *c,       /* Connection
                                        const void      *data);    /* Data */
 </pre>
         <p>
-        The <span class="code">mode</span> parameter coud be one of
+        The <span class="code">mode</span> parameter could be one of
         the following values (defined in enumeration xcb_prop_mode_t in
         the xproto.h header file):
         </p>
@@ -2937,7 +2939,7 @@ xcb_get_window_attributes_reply_t *xcb_get_window_attributes_reply (xcb_connecti
         latter case, each time the mouse moves onto your window, the
         screen color map will be replaced by your window's color map,
         and you'll see all the other windows on screen change their
-        colors into something quite bizzare. In fact, this is the
+        colors into something quite bizarre. In fact, this is the
         effect you get with X applications that use the "-install"
         command line option.
         </p>
@@ -3300,10 +3302,10 @@ xcb_void_cookie_t xcb_free_pixmap (xcb_connection_t *c,        /* Pointer to the
       <li class="title"><a name="mousecursor">Messing with the mouse cursor</a>
       <p>
       It it possible to modify the shape of the mouse pointer (also
-      called the X pointer) when in certain states, as we otfen see in
+      called the X pointer) when in certain states, as we often see in
       programs. For example, a busy application would often display
-      the sand clock over its main window, to give the user a visual
-      hint that he should wait. Let's see how we can change the mouse
+      the hourglass cursor over its main window, to give the user a visual
+      hint that they should wait. Let's see how we can change the mouse
       cursor of our windows.
       </p>
       <ol>
@@ -3339,7 +3341,7 @@ xcb_void_cookie_t xcb_create_glyph_cursor (xcb_connection_t *c,
         </p>
         <p>
         So we first open that font (see <a href="#loadfont">Loading a Font</a>)
-        and create the new cursor. As for every X ressource, we have to
+        and create the new cursor. As for every X resource, we have to
         ask for an X id with <span class="code">xcb_generate_id</span>
         first:
         </p>
@@ -3739,7 +3741,7 @@ int main ()
   while (1) {
     e = xcb_poll_for_event(c);
     if (e) {
-      switch (e->response_type) {
+      switch (e->response_type &amp; ~0x80) {
       case XCB_EXPOSE: {
         char *text;