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
diff = end - start;
/* free var */
- for (i = 0; i < count; ++i)
- free (names[i]);
free (atoms);
free (cs);
printf ("ratio : %f\n", diff_x / diff);
free (atoms_x);
+ for (i = 0; i < count; ++i)
+ free (names[i]);
free (names);
XCloseDisplay (disp);
</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
/* 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>
<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:
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 <stdlib.h>
+#include <stdio.h>
+#include <string.h>
-#include <xcb/xcb.h>
+#include <xcb/xcb.h>
#define WIDTH 300
#define HEIGHT 100
int screen_number;
/* getting the connection */
- c = xcb_connect (NULL, &screen_number);
+ c = xcb_connect (NULL, &screen_number);
if (!c) {
fprintf (stderr, "ERROR: can't connect to an X server\n");
return -1;
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 (&screen_iter))
if (screen_number == 0)
{
screen = screen_iter.data;
while (1) {
e = xcb_poll_for_event(c);
if (e) {
- switch (e->response_type) {
+ switch (e->response_type & ~0x80) {
case XCB_EXPOSE: {
char *text;
while (1) {
e = xcb_poll_for_event(c);
if (e) {
- switch (e->response_type) {
+ switch (e->response_type & ~0x80) {
case XCB_EXPOSE: {
char *text;