00001 // Copyright (c) 2003 - 2004 Anselm R. Garbe <anselmg at t-online.de> 00002 // See ../LICENSE.txt for license details. 00003 // 00004 // $Id: atoms.cpp 7 2007-05-24 11:03:53Z eg1981 $ 00005 00006 extern "C" { 00007 #include "X11/Xatom.h" 00008 } 00009 #include <sstream> 00010 00011 #include "atoms.h" 00012 00013 #include "logger.h" 00014 #include "kernel.h" 00015 #include "ncwm.h" 00016 #include "xcore.h" 00017 00018 Atom Atoms::WM_STATE = 0; 00019 Atom Atoms::WM_CHANGE_STATE = 0; 00020 Atom Atoms::WM_PROTOCOLS = 0; 00021 Atom Atoms::WM_DELETE = 0; 00022 Atom Atoms::WM_TAKE_FOCUS = 0; 00023 Atom Atoms::WM_COLORMAPS = 0; 00024 00025 Atom Atoms::MWM_HINTS = 0; 00026 00027 Atom Atoms::NET_WM_DESKTOP = 0; 00028 00029 Atom Atoms::NCWM_ACTIONCMD = 0; 00030 Atom Atoms::NCWM_STATUSTEXT = 0; 00031 Atom Atoms::NCWM_METERTEXT = 0; 00032 Atom Atoms::NCWM_PRETTYPRINT_REQUEST = 0; 00033 Atom Atoms::NCWM_PRETTYPRINT_RESPONSE = 0; 00034 00035 bool Atoms::initialized_ = false; 00036 00037 void Atoms::initAtoms() 00038 { 00039 if (initialized_) { 00040 return; 00041 } 00042 00043 ostringstream oss; 00044 00045 // ICCCM 00046 WM_STATE = XCORE->internAtom("WM_STATE"); 00047 oss << "WM_STATE: " << WM_STATE << endl; 00048 WM_CHANGE_STATE = XCORE->internAtom("WM_CHANGE_STATE"); 00049 oss << "WM_CHANGE_STATE: " << WM_CHANGE_STATE << endl; 00050 WM_PROTOCOLS = XCORE->internAtom("WM_PROTOCOLS"); 00051 oss << "WM_PROTOCOLS: " << WM_PROTOCOLS << endl; 00052 WM_DELETE = XCORE->internAtom("WM_DELETE_WINDOW"); 00053 oss << "WM_DELETE_WINDOW: " << WM_DELETE << endl; 00054 WM_TAKE_FOCUS = XCORE->internAtom("WM_TAKE_FOCUS"); 00055 oss << "WM_TAKE_FOCUS: " << WM_TAKE_FOCUS << endl; 00056 WM_COLORMAPS = XCORE->internAtom("WM_COLORMAP_WINDOWS"); 00057 oss << "WM_COLORMAP_WINDOWS: " << WM_COLORMAPS << endl; 00058 oss << "XA_WM_ICON_NAME: " << XA_WM_ICON_NAME << endl; 00059 oss << "XA_WM_NAME: " << XA_WM_NAME << endl; 00060 oss << "XA_WM_TRANSIENT_FOR: " << XA_WM_TRANSIENT_FOR; 00061 00062 LOGDEBUG(oss.str()); 00063 00064 // MOTIF 00065 MWM_HINTS = XCORE->internAtom("_MOTIF_WM_HINTS"); 00066 00067 // NETWM 00068 NET_WM_DESKTOP = XCORE->internAtom("_NET_WM_DESKTOP"); 00069 00070 // NCWM 00071 NCWM_ACTIONCMD = XCORE->internAtom("_NCWM_ACTIONCMD"); 00072 NCWM_STATUSTEXT = XCORE->internAtom("_NCWM_STATUSTEXT"); 00073 NCWM_METERTEXT = XCORE->internAtom("_NCWM_METERTEXT"); 00074 NCWM_PRETTYPRINT_REQUEST = 00075 XCORE->internAtom("_NCWM_PRETTYPRINT_REQUEST"); 00076 NCWM_PRETTYPRINT_RESPONSE = 00077 XCORE->internAtom("_NCWM_PRETTYPRINT_RESPONSE"); 00078 00079 initialized_ = true; 00080 }