summaryrefslogtreecommitdiff
path: root/doc/libwnck-docs.sgml
blob: 3f2b5b31405fe0a2f3140848232cfd8855b77e3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">

  <bookinfo>
    <title>Libwnck Reference Manual</title>
  </bookinfo>

  <part id="intro">
   <title>Libwnck Overview</title>
   <partintro>
    <para>
     libwnck is the Window Navigator Construction Kit, a library for use in writing pagers, tasklists, and more generally applications that are dealing with window management. It tries hard to respect the <ulink url="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html">Extended Window Manager Hints specification</ulink> (EWMH). The <ulink url="http://tronche.com/gui/x/icccm/">Inter-Client Communication Conventions Manual</ulink> (ICCCM) is also a useful resource.
    </para>
    <para>
     libwnck depends on the following libraries:
     <variablelist>
      <varlistentry>
       <term>GTK+</term>
       <listitem><para>
        The GTK+ GUI library.
       </para></listitem>
      </varlistentry>
      <varlistentry>
       <term>libstartupnotification</term>
       <listitem><para>
        A library which allows providing visual feedback to the user that an application or operation is being launched (typically through a "busy" cursor).
       </para></listitem>
      </varlistentry>
     </variablelist>
    </para>
   </partintro>
  </part>
  <!-- TODO
  tell that wnck_set_client_type() should be used for pagers-like users
  mention that the window/classgroup/application/workspace/screen are owned by libwnck and should not be ref'ed/unref'ed.
  mention wnck_screen_force_update()

Comment from Havoc:
One thing you might emphasize is that libwnck is a very expensive
library in some sense; every app using it is going to ask for a bunch of
info from the X server, then use substantial resources continuing to
mirror that info as it changes - pretty much every time anything changes
on the display, every libwnck app will wake up.

All panel applets share the same copy of libwnck so it isn't so bad in
that case.
  -->

  <part id="core">
    <title>Libwnck Core Window Management Support</title>
    <xi:include href="xml/window.xml"/>
    <xi:include href="xml/class-group.xml"/>
    <xi:include href="xml/application.xml"/>
    <xi:include href="xml/workspace.xml"/>
    <xi:include href="xml/screen.xml"/>
  </part>

  <part id="widgets">
    <title>Libwnck Widgets</title>
    <xi:include href="xml/pager.xml"/>
    <xi:include href="xml/selector.xml"/>
    <xi:include href="xml/tasklist.xml"/>
  </part>

  <part id="utils">
    <title>Libwnck Utilities</title>
    <xi:include href="xml/window-action-menu.xml"/>
    <xi:include href="xml/util.xml"/>
  </part>

</book>