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 <tqapplication.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 atoms[n] = &net_wm_system_modal_notification; 00086 names[n++] = (char*) "_KDE_WM_MODAL_SYS_NOTIFICATION"; 00087 00088 Atom fake; 00089 atoms[n] = &fake; 00090 names[n++] = (char *) "_DT_SM_WINDOW_INFO"; 00091 atoms[n] = &fake; 00092 names[n++] = (char *) "_MOTIF_WM_INFO"; // #172028 00093 00094 atoms[n] = &xdnd_aware; 00095 names[n++] = (char*) "XdndAware"; 00096 atoms[n] = &xdnd_position; 00097 names[n++] = (char*) "XdndPosition"; 00098 00099 atoms[n] = &net_frame_extents; 00100 names[n++] = (char*) "_NET_FRAME_EXTENTS"; 00101 atoms[n] = &kde_net_wm_frame_strut; 00102 names[n++] = (char*) "_KDE_NET_WM_FRAME_STRUT"; 00103 00104 assert( n <= max ); 00105 00106 XInternAtoms( qt_xdisplay(), names, n, FALSE, atoms_return ); 00107 for (int i = 0; i < n; i++ ) 00108 *atoms[i] = atoms_return[i]; 00109 } 00110 00111 } // namespace