OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [mw/] [src/] [demos/] [nanowm/] [nanowm.h] - Rev 673

Go to most recent revision | Compare with Previous | Blame | View Log

/*
 * NanoWM- the NanoGUI window manager.
 * Copyright (C) 2000 Alex Holden <alex@linuxhacker.org>
 */
 
#ifndef __NANOWM_H
#define __NANOWM_H
 
#ifdef DEBUG
#define Dprintf printf
#else
#define Dprintf(ignore...)
#endif
 
/* Where to place the first window on the screen */
#define FIRST_WINDOW_LOCATION 2
 
/* The distance to leave between windows when deciding where to place */
#define WINDOW_STEP 20
 
/* The different window types which can be used in windowlist->type */
enum {
	WINDOW_TYPE_ROOT,
	WINDOW_TYPE_CONTAINER,
	WINDOW_TYPE_CLIENT
	/***WINDOW_TYPE_TOPBAR,
	WINDOW_TYPE_LEFTBAR,
	WINDOW_TYPE_RIGHTBAR,
	WINDOW_TYPE_BOTTOMBAR,
	WINDOW_TYPE_LEFTRESIZE,
	WINDOW_TYPE_RIGHTRESIZE,
	WINDOW_TYPE_CLOSEBUTTON,
	WINDOW_TYPE_MAXIMISEBUTTON,
	WINDOW_TYPE_RESTOREBUTTON,
	WINDOW_TYPE_ICONISEBUTTON,
	WINDOW_TYPE_ICON,
	WINDOW_TYPE_UTILITYBUTTON,
	WINDOW_TYPE_UTILITYMENU,
	WINDOW_TYPE_UTILITYMENUENTRY,
	WINDOW_TYPE_ROOTMENU,
	WINDOW_TYPE_ROOTMENUENTRY**/
};
 
/* 
 * Used to keep a list of all the windows we know about so we can quickly
 * find out whether a window is "one of ours", and if it is, what kind of
 * window it is (title bar, side bar, button, icon, root menu, etc.), who
 * it's a child of, and any special data associated with it (the title
 * used in the title, the text of a root menu entry, the pixmap of an
 * icon, etc.).
 */
struct windowlist {
	GR_WINDOW_ID wid;	/* The ID of this window */
	GR_WINDOW_ID pid;	/* The ID of this window's parent */
	GR_WINDOW_ID clientid;	/* clientid for container window*/
	int type;		/* What kind of window this is */
  int sizing;                   /* True if in the middle of a sizing request */
  int active;		/* Whether this window is active or not */
	void *data;		/* Data associated with this window */
	struct windowlist *next; /* The next window in the list */
};
typedef struct windowlist win;
 
/*
 * Used to record the offset position when performing a move.
 */
struct position {
	GR_COORD x;
	GR_COORD y;
};
 
/*
 * Used to record the original position, original size, and offset position
 * when performing a resize.
 */
struct pos_size {
	GR_COORD xoff;
	GR_COORD yoff;
	GR_COORD xorig;
	GR_COORD yorig;
	GR_SIZE width;
	GR_SIZE height;
};
 
#if 0000
/*
 * Used to record some general information about the client.
 */
struct clientinfo {
	GR_WINDOW_ID cid;
};
#endif
 
/* Function prototypes */
win *find_window(GR_WINDOW_ID wid);
int add_window(win *window);
int remove_window(win *window);
int remove_window_and_children(win *window);
int new_client_window(GR_WINDOW_ID wid);
void client_window_destroy(win *window);
void redraw_ncarea(win *window);
void do_exposure(GR_EVENT_EXPOSURE *event);
void do_button_down(GR_EVENT_BUTTON *event);
void do_button_up(GR_EVENT_BUTTON *event);
void do_mouse_enter(GR_EVENT_GENERAL *event);
void do_mouse_exit(GR_EVENT_GENERAL *event);
void do_mouse_moved(GR_EVENT_MOUSE *event);
void do_focus_in(GR_EVENT_GENERAL *event);
void do_key_down(GR_EVENT_KEYSTROKE *event);
void do_key_up(GR_EVENT_KEYSTROKE *event);
void do_focus_in(GR_EVENT_GENERAL *event);
void do_focus_out(GR_EVENT_GENERAL *event);
void do_update(GR_EVENT_UPDATE *event);
void do_chld_update(GR_EVENT_UPDATE *event);
void rootwindow_exposure(win *window, GR_EVENT_EXPOSURE *event);
void container_exposure(win *window, GR_EVENT_EXPOSURE *event);
void topbar_exposure(win *window, GR_EVENT_EXPOSURE *event);
void closebutton_exposure(win *window, GR_EVENT_EXPOSURE *event);
void maximisebutton_exposure(win *window, GR_EVENT_EXPOSURE *event);
void restorebutton_exposure(win *window, GR_EVENT_EXPOSURE *event);
void iconisebutton_exposure(win *window, GR_EVENT_EXPOSURE *event);
void utilitybutton_exposure(win *window, GR_EVENT_EXPOSURE *event);
void utilitymenu_exposure(win *window, GR_EVENT_EXPOSURE *event);
void utilitymenuentry_exposure(win *window, GR_EVENT_EXPOSURE *event);
void rootmenu_exposure(win *window, GR_EVENT_EXPOSURE *event);
void rootmenuentry_exposure(win *window, GR_EVENT_EXPOSURE *event);
void icon_exposure(win *window, GR_EVENT_EXPOSURE *event);
void rootwindow_buttondown(win *window, GR_EVENT_BUTTON *event);
void container_buttondown(win *window, GR_EVENT_BUTTON *event);
void topbar_buttondown(win *window, GR_EVENT_BUTTON *event);
void resizebar_buttondown(win *window, GR_EVENT_BUTTON *event);
void closebutton_buttondown(win *window, GR_EVENT_BUTTON *event);
void maximisebutton_buttondown(win *window, GR_EVENT_BUTTON *event);
void restorebutton_buttondown(win *window, GR_EVENT_BUTTON *event);
void iconisebutton_buttondown(win *window, GR_EVENT_BUTTON *event);
void utilitybutton_buttondown(win *window, GR_EVENT_BUTTON *event);
void icon_buttondown(win *window, GR_EVENT_BUTTON *event);
void rootwindow_buttonup(win *window, GR_EVENT_BUTTON *event);
void container_buttonup(win *window, GR_EVENT_BUTTON *event);
void topbar_buttonup(win *window, GR_EVENT_BUTTON *event);
void resizebar_buttonup(win *window, GR_EVENT_BUTTON *event);
void closebutton_buttonup(win *window, GR_EVENT_BUTTON *event);
void maximisebutton_buttonup(win *window, GR_EVENT_BUTTON *event);
void restorebutton_buttonup(win *window, GR_EVENT_BUTTON *event);
void iconisebutton_buttonup(win *window, GR_EVENT_BUTTON *event);
void utilitybutton_buttonup(win *window, GR_EVENT_BUTTON *event);
void icon_buttonup(win *window, GR_EVENT_BUTTON *event);
void utilitymenuentry_buttonup(win *window, GR_EVENT_BUTTON *event);
void rootmenuentry_buttonup(win *window, GR_EVENT_BUTTON *event);
void closebutton_mouseexit(win *window, GR_EVENT_GENERAL *event);
void maximisebutton_mouseexit(win *window, GR_EVENT_GENERAL *event);
void restorebutton_mouseexit(win *window, GR_EVENT_GENERAL *event);
void iconisebutton_mouseexit(win *window, GR_EVENT_GENERAL *event);
void utilitybutton_mouseexit(win *window, GR_EVENT_GENERAL *event);
void utilitymenu_mouseexit(win *window, GR_EVENT_GENERAL *event);
void utilitymenuentry_mouseexit(win *window, GR_EVENT_GENERAL *event);
void rootmenu_mouseexit(win *window, GR_EVENT_GENERAL *event);
void rootmenuentry_mouseexit(win *window, GR_EVENT_GENERAL *event);
void container_mousemoved(win *window, GR_EVENT_MOUSE *event);
void topbar_mousemoved(win *window, GR_EVENT_MOUSE *event);
void leftbar_mousemoved(win *window, GR_EVENT_MOUSE *event);
void leftresize_mousemoved(win *window, GR_EVENT_MOUSE *event);
void bottombar_mousemoved(win *window, GR_EVENT_MOUSE *event);
void rightresize_mousemoved(win *window, GR_EVENT_MOUSE *event);
void rightbar_mousemoved(win *window, GR_EVENT_MOUSE *event);
 
extern GR_SCREEN_INFO si;
extern win *windows;
extern GR_BITMAP utilitybutton_notpressed[];
extern GR_BITMAP utilitybutton_pressed[];
extern GR_BITMAP maximisebutton_notpressed[];
extern GR_BITMAP maximisebutton_pressed[];
extern GR_BITMAP iconisebutton_notpressed[];
extern GR_BITMAP iconisebutton_pressed[];
extern GR_BITMAP closebutton_notpressed[];
extern GR_BITMAP closebutton_pressed[];
extern GR_BITMAP restorebutton_notpressed[];
extern GR_BITMAP restorebutton_pressed[];
extern GR_BITMAP horizontal_resize_fg[];
extern GR_BITMAP horizontal_resize_bg[];
extern GR_BITMAP vertical_resize_fg[];
extern GR_BITMAP vertical_resize_bg[];
extern GR_BITMAP righthand_resize_fg[];
extern GR_BITMAP righthand_resize_bg[];
extern GR_BITMAP lefthand_resize_fg[];
extern GR_BITMAP lefthand_resize_bg[];
extern int horizontal_resize_columns, horizontal_resize_rows;
extern int horizontal_resize_hotx, horizontal_resize_hoty;
extern int vertical_resize_columns, vertical_resize_rows;
extern int vertical_resize_hotx, vertical_resize_hoty;
extern int lefthand_resize_columns, lefthand_resize_rows;
extern int lefthand_resize_hotx, lefthand_resize_hoty;
extern int righthand_resize_columns, righthand_resize_rows;
extern int righthand_resize_hotx, righthand_resize_hoty;
 
#endif
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.