diff options
Diffstat (limited to 'src/data.h')
-rw-r--r-- | src/data.h | 392 |
1 files changed, 0 insertions, 392 deletions
diff --git a/src/data.h b/src/data.h deleted file mode 100644 index 2be9a98..0000000 --- a/src/data.h +++ /dev/null @@ -1,392 +0,0 @@ -/* our datatypes and global variables - * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> - * - * This file is part of ratpoison. - * - * ratpoison 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, or (at your option) - * any later version. - * - * ratpoison 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 software; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, - * Boston, MA 02111-1307 USA - */ - -#ifndef _RATPOISON_DATA_H -#define _RATPOISON_DATA_H - -#include "linkedlist.h" -#include "number.h" - -#include <X11/X.h> -#include <X11/Xlib.h> -#include <X11/Xutil.h> - -#ifdef USE_XFT_FONT -#include <X11/Xft/Xft.h> -#endif - -typedef struct rp_window rp_window; -typedef struct rp_screen rp_screen; -typedef struct rp_action rp_action; -typedef struct rp_keymap rp_keymap; -typedef struct rp_frame rp_frame; -typedef struct rp_child_info rp_child_info; -typedef struct rp_group rp_group; -typedef struct rp_window_elem rp_window_elem; -typedef struct rp_completions rp_completions; -typedef struct rp_input_line rp_input_line; - -struct rp_frame -{ - int number; - int x, y, width, height; - - /* The number of the window that is focused in this frame. */ - int win_number; - - /* For determining the last frame. */ - int last_access; - - /* Boolean that is set when a frame is - `dedicated' (a.k.a. glued) to one window. */ - unsigned int dedicated; - - struct list_head node; -}; - -struct rp_window -{ - rp_screen *scr; - Window w; - int state; - int last_access; - int named; - - /* A number uniquely identifying this window. This is a different - number than the one given to it by the group it is in. This - number is used for internal purposes, whereas the group number is - what the user sees. */ - int number; - - /* Window name hints. */ - char *user_name; - char *wm_name; - char *res_name; - char *res_class; - - /* Dimensions */ - int x, y, width, height, border; - - /* WM Hints */ - XSizeHints *hints; - - /* Colormap */ - Colormap colormap; - - /* Is this a transient window? */ - int transient; - Window transient_for; - - /* Saved mouse position */ - int mouse_x, mouse_y; - - /* The alignment of the window. Decides to what side or corner the - window sticks to. */ - int gravity; - - /* A window can be visible inside a frame but not the frame's - current window. This keeps track of what frame the window was - mapped into. */ - int frame_number; - - /* Sometimes a window is intended for a certain frame. When a window - is mapped and this is >0 then use the frame (if it exists). */ - int intended_frame_number; - - struct list_head node; -}; - -struct rp_window_elem -{ - rp_window *win; - int number; - struct list_head node; -}; - -/* An rp_group is a group of windows. By default all windows are added - to the same group. But a new group can be created. All new windows - will be part of this new current group. The windows of any other - group may be visible in another frame, but will not show up in the - window list and will not be accessible with select, next, or - prev. These window navigation commands only navigate the current - group. */ -struct rp_group -{ - /* The name and number of this group. This is to allow the user to - quickly jump to the desired group. */ - char *name; - int number; - - /* For determining the last group. */ - int last_access; - - /* The list of windows participating in this group. */ - struct list_head mapped_windows, unmapped_windows; - - /* This numset is responsible for giving out numbers for each window - in the group. */ - struct numset *numset; - - /* This structure can exist in a list. */ - struct list_head node; -}; - -struct rp_screen -{ - GC normal_gc, inverse_gc; - Window root, bar_window, key_window, input_window, frame_window, help_window; - int bar_is_raised; - int screen_num; /* Our screen number as dictated my X */ - int xine_screen_num; /* Our screen number for the Xinerama extension */ - Colormap def_cmap; - Cursor rat; - unsigned long fg_color, bg_color, fw_color, bw_color; /* The pixel color. */ - - /* Here to abstract over the Xinerama vs X screens difference */ - int left, top, width, height; - - char *display_string; - - /* A list of frames that may or may not contain windows. There should - always be one in the list. */ - struct list_head frames; - - /* Keep track of which numbers have been given to frames. */ - struct numset *frames_numset; - - /* The number of the currently focused frame. One for each screen so - when you switch screens the focus doesn't get frobbed. */ - int current_frame; - -#ifdef USE_XFT_FONT - XftFont *xft_font; - XftColor xft_fg_color, xft_bg_color; -#endif -}; - -struct rp_action -{ - KeySym key; - unsigned int state; - char *data; /* misc data to be passed to the function */ -/* void (*func)(void *); */ -}; - -struct rp_keymap -{ - char *name; - rp_action *actions; - int actions_last; - int actions_size; - - /* This structure can be part of a list. */ - struct list_head node; -}; - -struct rp_key -{ - KeySym sym; - unsigned int state; -}; - -struct rp_defaults -{ - /* Default positions for new normal windows, transient windows, and - normal windows with maxsize hints. */ - int win_gravity; - int trans_gravity; - int maxsize_gravity; - - int input_window_size; - int window_border_width; - - int bar_x_padding; - int bar_y_padding; - int bar_location; - int bar_timeout; - int bar_border_width; - int bar_in_padding; - - int frame_indicator_timeout; - int frame_resize_unit; - - int padding_left; - int padding_right; - int padding_top; - int padding_bottom; - - XFontSet font; - char *font_string; - int utf8_locale; - - char *fgcolor_string; - char *bgcolor_string; - char *fwcolor_string; - char *bwcolor_string; - - int wait_for_key_cursor; - - char *window_fmt; - char *info_fmt; - - /* Which name to use: wm_name, res_name, res_class. */ - int win_name; - - int startup_message; - - /* Decides whether the window list is displayed in a row or a - column. */ - int window_list_style; - - /* Pointer warping toggle. */ - int warp; - - int history_size; - /* remove older history when adding the same again */ - int history_compaction; - /* expand ! when compiled with libhistory */ - int history_expansion; - - char *frame_selectors; - - /* How many frame sets to remember when undoing. */ - int maxundos; - - /* The name of the top level keymap */ - char *top_kmap; - - /* Frame indicator format */ - char *frame_fmt; -}; - -/* Information about a child process. */ -struct rp_child_info -{ - /* The command that was executed. */ - char *cmd; - - /* PID of the process. */ - int pid; - - /* Return status when the child process finished. */ - int status; - - /* When this is != 0 then the process finished. */ - int terminated; - - /* what was current when it was launched? */ - rp_group *group; - rp_frame *frame; - rp_screen *screen; - - /* Non-zero when the pid has mapped a window. This is to prevent - every window the program opens from getting mapped in the frame - it was launched from. Only the first window should do this. */ - int window_mapped; - - /* This structure can exist in a list. */ - struct list_head node; -}; - -/* These defines should be used to specify the modifier mask for keys - and they are translated into the X11 modifier mask when the time - comes to compare modifier masks. */ -#define RP_SHIFT_MASK 1 -#define RP_CONTROL_MASK 2 -#define RP_META_MASK 4 -#define RP_ALT_MASK 8 -#define RP_SUPER_MASK 16 -#define RP_HYPER_MASK 32 - -struct modifier_info -{ -/* unsigned int mode_switch_mask; */ - unsigned int meta_mod_mask; - unsigned int alt_mod_mask; - unsigned int super_mod_mask; - unsigned int hyper_mod_mask; - - /* Keep track of these because they mess up the grab and should be - ignored. */ - unsigned int num_lock_mask; - unsigned int scroll_lock_mask; -}; - -typedef struct list_head *(*completion_fn)(char *string); - -struct rp_completions -{ - /* A pointer to the partial string that is being completed. We need - to store this so that the user can cycle through all possible - completions. */ - char *partial; - - /* A pointer to the string that was last matched string. Used to - keep track of where we are in the completion list. */ - struct sbuf *last_match; - - /* A list of sbuf's which are possible completions. */ - struct list_head completion_list; - - /* The function that generates the completions. */ - completion_fn complete_fn; - - /* virgin = 1 means no completions have been attempted on the input - string. */ - unsigned short int virgin; -}; - -struct rp_input_line -{ - char *buffer; - char *prompt; - char *saved; - int position; - int length; - int size; - rp_completions *compl; - Atom selection; - int history_id; -}; - -/* The hook dictionary. */ -struct rp_hook_db_entry -{ - char *name; - struct list_head *hook; -}; - -typedef struct rp_frame_undo rp_frame_undo; -struct rp_frame_undo -{ - char *frames; - rp_screen *screen; - struct list_head node; -}; - -typedef struct rp_xselection rp_xselection; -struct rp_xselection -{ - char *text; - int len; -}; - -#endif /* _RATPOISON_DATA_H */ |