/** * \file xclass.h * * \brief Drei Klassen für die zentralen XWindows Objekte. * * Verpackt die drei zentralen Elemente für ein XWindows Programm * in drei Klassen. * * Dabei ist die Struktur so das zu ein display aus 1-n screens bestehen * In denen dann wiederum jeweils 1-n windows existieren. Es existiert * mindestens das rootwindow. * Alle in dieser Datei definierten Klassen arbeiten sehr eng zusammen, * daher ist jede friend der aller anderen. * * \author Georg Steffers * * \date 04.12.2003 * * \version ..2001 (Georg Steffers): erste implementation * \version 2001-2003 (Georg Steffers): diverse Modifikationen * \version 05.12.2003 (Georg Steffers): beginn der Dokumentation via doxygen */ /* * Copyright (C)2003 Georg Steffers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __xclass_h__ #define __xclass_h__ #include #include #include #include #include #include class xscreen; class xwindow; /** * \brief Das Display ist die Verbindung zum X-Server * * Verbindung zum X-Server, entwerder über TCP/IP oder * Unix Domain Sockets. Je nach Server und Hardware auf der dieser * läft kann dieser 1-n screens zur verfügung stellen. * Es existiert zumindest der \ref default_screen. */ class xdisplay { friend class xscreen; //!< Da ein xscreen sehr eng mit einem xdisplay //! zusammenarbeitet friend class xwindow; //!< Da ein xwindow sehr eng mit einem xdisplay //! zusammenarbeitet private: // Exceptionklassen class noconnect_exception {}; //!< no connection to display class nofont_exception {}; //!< no font-file to load Display* display; //!< \brief Der Descriptor für die eigentliche //! Verbindung zum X-Server char* display_name; //!< \brief Hardwarename des Displays //! //! Wenn display_name NULL ist, so wird für //! den Hardwarenamen der Wert der in der //! Environmentvariable \$DISPLAY steht genommen. int screen_anz; //x_disp->display, window); } xwindow& operator=(const xwindow&); xscreen* getxscr(void) { return screen; } Window getwindow(void) { return window; } void initWM(void); void map(void) { XMapWindow(screen->x_disp->display, window); } }; #endif // __xclass_h__