atoms.cpp

00001 /*****************************************************************
00002  KWin - the KDE window manager
00003  This file is part of the KDE project.
00004 
00005 Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org>
00006 Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
00007 
00008 You can Freely distribute this program under the GNU General Public
00009 License. See the file "COPYING" for the exact licensing terms.
00010 ******************************************************************/
00011 
00012 
00013 #include <qapplication.h>
00014 #include "atoms.h"
00015 #include <assert.h>
00016 
00017 namespace KWinInternal
00018 {
00019 
00020 Atoms::Atoms()
00021     {
00022 
00023     const int max = 50;
00024     Atom* atoms[max];
00025     char* names[max];
00026     Atom atoms_return[max];
00027     int n = 0;
00028 
00029     atoms[n] = &kwin_running;
00030     names[n++] = (char *) "KWIN_RUNNING";
00031 
00032     atoms[n] = &wm_protocols;
00033     names[n++] = (char *) "WM_PROTOCOLS";
00034 
00035     atoms[n] = &wm_delete_window;
00036     names[n++] = (char *) "WM_DELETE_WINDOW";
00037 
00038     atoms[n] = &wm_take_focus;
00039     names[n++] = (char *) "WM_TAKE_FOCUS";
00040 
00041     atoms[n] = &wm_change_state;
00042     names[n++] = (char *) "WM_CHANGE_STATE";
00043 
00044     atoms[n] = &wm_client_leader;
00045     names[n++] = (char *) "WM_CLIENT_LEADER";
00046 
00047     atoms[n] = &motif_wm_hints;
00048     names[n++] = (char *) "_MOTIF_WM_HINTS";
00049 
00050     atoms[n] = &net_wm_context_help;
00051     names[n++] = (char *) "_NET_WM_CONTEXT_HELP";
00052 
00053     atoms[n] = &net_wm_ping;
00054     names[n++] = (char *) "_NET_WM_PING";
00055 
00056     atoms[n] = &kde_wm_change_state;
00057     names[n++] = (char *) "_KDE_WM_CHANGE_STATE";
00058 
00059     atoms[n] = &net_wm_user_time;
00060     names[n++] = (char *) "_NET_WM_USER_TIME";
00061     atoms[n] = &kde_net_wm_user_creation_time;
00062     names[n++] = (char *) "_KDE_NET_WM_USER_CREATION_TIME";
00063 
00064     atoms[n] = &kde_system_tray_embedding;
00065     names[n++] = (char*) "_KDE_SYSTEM_TRAY_EMBEDDING";
00066     
00067     atoms[n] = &net_wm_take_activity;
00068     names[n++] = (char*) "_NET_WM_TAKE_ACTIVITY";
00069     
00070     atoms[n] = &net_wm_window_opacity;
00071     names[n++] = (char*) "_KDE_WM_WINDOW_OPACITY";
00072 
00073     atoms[n] = &net_wm_window_shadow;
00074     names[n++] = (char*) "_KDE_WM_WINDOW_SHADOW";
00075 
00076     atoms[n] = &net_wm_window_shade;
00077     names[n++] = (char*) "_KDE_WM_WINDOW_SHADE";
00078     
00079     atoms[n] = &net_wm_window_shapable;
00080     names[n++] = (char*) "_KDE_WM_WINDOW_SHAPABLE";
00081     
00082     atoms[n] = &net_wm_window_decohash;
00083     names[n++] = (char*) "_KDE_WM_WINDOW_DECOHASH";
00084         
00085     Atom fake;
00086     atoms[n] = &fake;
00087     names[n++] = (char *) "_DT_SM_WINDOW_INFO";
00088     
00089     atoms[n] = &xdnd_aware;
00090     names[n++] = (char*) "XdndAware";
00091     atoms[n] = &xdnd_position;
00092     names[n++] = (char*) "XdndPosition";
00093     
00094     atoms[n] = &net_frame_extents;
00095     names[n++] = (char*) "_NET_FRAME_EXTENTS";
00096     atoms[n] = &kde_net_wm_frame_strut;
00097     names[n++] = (char*) "_KDE_NET_WM_FRAME_STRUT";
00098     
00099     assert( n <= max );
00100 
00101     XInternAtoms( qt_xdisplay(), names, n, FALSE, atoms_return );
00102     for (int i = 0; i < n; i++ )
00103         *atoms[i] = atoms_return[i];
00104     }
00105 
00106 } // namespace
KDE Home | KDE Accessibility Home | Description of Access Keys