SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

BotDetect - Real-Time Bot Detection API
 
 

MAN page from Other AfterStep-2.2.2-20060804.i386.rpm

common

Section: AfterStep X11 window manager (1)
Updated: AfterStep v.2.2.2
Index 

NAME

common - common functions used in other examples libAfterImage/tutorials/common.h 

SYNOPSIS

Generic Xlib related functionality, common for all the tutorials.
 

SEE ALSO

libAfterImage,ASView, ASScale, ASTile, ASMerge, ASGrad, ASFlip, ASText
 

NAME_XA_WM_DELETE_WINDOW

 

SYNOPSIS

_XA_WM_DELETE_WINDOW - stores value of X Atom "WM_DELETE_WINDOW".
 

DESCRIPTION

In X all client's top level windows are managed by window manager.That includes moving, resizing, decorating, focusing and closing ofwindows. Interactions between window manager and client window aregoverned by ICCCM specification.All the parts of this specification are completely optional, but itis recommended that the following minimum set of hints be suppliedfor any client window:Window's title(WM_NAME), iconified window title(WM_ICON_NAME), classhint (WM_CLASS) and supported protocols (WM_PROTOCOLS). It isrecommended also that WM_DELETE_WINDOW protocol be supported, asotherwise there are no way to safely close client window, but tokill it.All of the above mentioned hints are identified by atoms that havestandard preset values, except for WM_DELETE_WINDOW. As the result weneed to obtain WM_DELETE_WINDOW atoms ID explicitly. We use_XA_WM_DELETE_WINDOW to store the ID of that atom, so it is accessibleanywhere from our application.
 

SOURCE

Source :
Atom _XA_WM_DELETE_WINDOW = None;
 

NAMEcreate_top_level_window()

 

SYNOPSIS

Window create_top_level_window( ASVisual *asv, Window root,                                int x, int y,                                unsigned int width,                                unsigned int height,                                unsigned int border_width,                                unsigned long attr_mask,                                XSetWindowAttributes *attr,                                char *app_class );
 

INPUTS

asv
- pointer to valid preinitialized ASVisual structure.
root
- root window of the screen on which to create window.
x,
y - desired position of the window
width,
height - desired window size.
border_width
- desired initial border width of the window (may not have any effect due to Window Manager intervention.
attr_mask
- mask of the attributes that has to be set on the window
attr
- values of the attributes to be set.
app_class
- title of the application to be used as its window Title and resources class.

 

RETURN VALUE

ID of the created window.
 

DESCRIPTION

create_top_level_window() is autyomating process of creating toplevel application window. It creates window for specified ASVisual,and then sets up basic ICCCM hints for that window, such as WM_NAME,WM_ICON_NAME, WM_CLASS and WM_PROTOCOLS.
 

SOURCE

Source :
Windowcreate_top_level_window( ASVisual *asv, Window root, int x, int y,                         unsigned int width, unsigned int height,                         unsigned int border_width,                          unsigned long attr_mask,                         XSetWindowAttributes *attr,                          const char *app_class, const char *app_name ){    Window w = None;#ifndef X_DISPLAY_MISSING    char *tmp ;    XTextProperty name;    XClassHint class1;    w = create_visual_window(asv, root, x, y, width, height, border_width,                              InputOutput, attr_mask, attr );    tmp = (app_name==NULL)?(char*)get_application_name():(char*)app_name;    XStringListToTextProperty (&tmp, 1, &name);    class1.res_name = tmp;  /* for future use */    class1.res_class = (char*)app_class;    XSetWMProtocols (dpy, w, &_XA_WM_DELETE_WINDOW, 1);    XSetWMProperties (dpy, w, &name, &name, NULL, 0, NULL, NULL, &class1);    /* final cleanup */    XFree ((char *) name.value);#endif /* X_DISPLAY_MISSING */    return w;}
 

NAMEset_window_background_and_free()

 

SYNOPSIS

Pixmap set_window_background_and_free( Window w, Pixmap p );
 

INPUTS

w
- ID of the window background of which we need to set.
p
- Pixmap to set background to.

 

RETURN VALUE

None on success. Pixmap ID of original Pixmap on failure.
 

DESCRIPTION

set_window_background_and_free() will set window's background tospecified Pixmap, Then refresh window contents so that backgroundis drawn by the server, flush all the requests to force it to be sentto server to be processed as fast as possible.
 

NOTES

After Window's background has been set to Pixmap - X server makeshidden copy of this Pixmap for later window refreshing. As the resultoriginal Pixmap is no longer needed and can be freed to conserveresources.
 

SOURCE

Source :
Pixmapset_window_background_and_free( Window w, Pixmap p ){#ifndef X_DISPLAY_MISSING    if( p != None && w != None )    {        XSetWindowBackgroundPixmap( dpy, w, p );        XClearWindow( dpy, w );        XFlush( dpy );        XFreePixmap( dpy, p );        p = None ;    }#endif /* X_DISPLAY_MISSING */    return p ;}
 

NAMEwait_closedown()

 

SYNOPSIS

void wait_closedown( Window w );
 

INPUTS

w
- ID of the window from which to wait for events.

 

DESCRIPTION

User action requesting window to be closed is generally receivedfirst by Window Manager. Window Manager is then handles it down tothe window by sending it ClientMessage event with first 32 bit wordof data set to the value of WM_DELETE_WINDOW Atom.Accordingly, all client has to do is wait for such event from X serverand, when received, it should destroy its window and generally exit.
 

NOTES

It is recommended that XFlush() is issued right after XDestroyWindow()as Window Manager itself may attempt to do something with the windowuntil it receives DestroyNotify event.
 

SEE ALSO

ICCCM, Window
 

SOURCE

Source :
voidwait_closedown( Window w ){#ifndef X_DISPLAY_MISSING    if( dpy == NULL || w == None )        return ;    XSelectInput (dpy, w, ( StructureNotifyMask |                             ButtonPressMask|                            ButtonReleaseMask));    while(w != None)    {        XEvent event ;        XNextEvent (dpy, &event);        switch(event.type)        {            case ClientMessage:                if ((event.xclient.format != 32) ||                    (event.xclient.data.l[0] != _XA_WM_DELETE_WINDOW))                    break ;            case ButtonPress:                XDestroyWindow( dpy, w );                XFlush( dpy );                w = None ;                break ;        }    }    XCloseDisplay (dpy);    dpy = NULL ;#endif}


 

Index

NAME
SYNOPSIS
SEE ALSO
NAME_XA_WM_DELETE_WINDOW
SYNOPSIS
DESCRIPTION
SOURCE
NAMEcreate_top_level_window()
SYNOPSIS
INPUTS
RETURN VALUE
DESCRIPTION
SOURCE
NAMEset_window_background_and_free()
SYNOPSIS
INPUTS
RETURN VALUE
DESCRIPTION
NOTES
SOURCE
NAMEwait_closedown()
SYNOPSIS
INPUTS
DESCRIPTION
NOTES
SEE ALSO
SOURCE

This document was created byman2html,using the manual pages.
 
ICM Bot detect detector