/*
* Copyright (C) 1999,2000,2001 Frank Hale
* frankhale@yahoo.com
* http://sapphire.sourceforge.net/
*
* Updated: 3 Nov 2001
*
* 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 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 _SAPPHIRE_HH_
#define _SAPPHIRE_HH_
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <stdarg.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <X11/Xlib.h>
#include <X11/Xos.h>
#include <X11/Xutil.h>
#include <X11/Xproto.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/cursorfont.h>
#include <X11/Xresource.h>
#include <X11/extensions/shape.h>
extern char* windowmanager_author;
extern char* windowmanager_author_email;
extern char* windowmanager_name;
extern char* windowmanager_version;
extern char* windowmanager_usage;
extern char* windowmanager_exit_message;
// If you change the following you must change ./data.inst so that
// the configuration files get put into the same directory. At the
// current time Sapphire will crash if it cannot find its config
// files. This will be fixed in the future.
extern char* configuration_home;
extern char* HOME;
/* default settings */
#define DEFAULT_FOREGROUND_COLOR "black"
#define DEFAULT_BACKGROUND_COLOR "lightgray"
#define DEFAULT_BORDER_COLOR "black"
#define DEFAULT_BORDER_SIZE 1
#define DEFAULT_SPACE 3
#define DEFAULT_MARGIN 6
#define DEFAULT_MINIMUM_SIZE 10
// MOTIF hints
#define MwmHintsFunctions (1l << 0)
#define MwmHintsDecorations (1l << 1)
#define MwmFuncAll (1l << 0)
#define MwmFuncResize (1l << 1)
#define MwmFuncMove (1l << 2)
#define MwmFuncIconify (1l << 3)
#define MwmFuncMaximize (1l << 4)
#define MwmFuncClose (1l << 5)
#define MwmDecorAll (1l << 0)
#define MwmDecorBorder (1l << 1)
#define MwmDecorHandle (1l << 2)
#define MwmDecorTitle (1l << 3)
#define MwmDecorMenu (1l << 4)
#define MwmDecorIconify (1l << 5)
#define MwmDecorMaximize (1l << 6)
#define PropMwmHintsElements 3
typedef struct MwmHints {
unsigned long flags, functions, decorations;
} MwmHints;
struct Widget
{
Window window;
int x,y;
int width,height;
bool pressed;
};
extern int handle_xerror(Display *dpy, XErrorEvent *e);
extern void err(char *fmt, ...);
extern void show_event(XEvent e);
extern void signalhandler(int i);
// Forward declarations for all the classes in Sapphire
class BImageControl;
class BImage;
class WindowManager;
class Client;
class BaseMenuItem;
class BaseMenu;
class RootMenu;
class IconMenu;
class Toolbar;
class Theme;
class Scanner;
class MenuLex;
// Include all of the header files
#include "linkedlist.hh"
#include "image.hh"
#include "theme.hh"
#include "basemenuitem.hh"
#include "basemenu.hh"
#include "client.hh"
#include "toolbar.hh"
#include "rootmenu.hh"
#include "iconmenu.hh"
#include "scanner.hh"
#include "menulex.hh"
#include "windowmanager.hh"
#endif
syntax highlighted by Code2HTML, v. 0.9.1