summaryrefslogtreecommitdiff
path: root/Build/source/texk/xdvik/x_util.h
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
committerKarl Berry <karl@freefriends.org>2006-01-17 21:41:51 +0000
commit487ca4806cc046076293cf6cc5fbba0db282bac7 (patch)
tree847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/xdvik/x_util.h
parenta3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff)
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/xdvik/x_util.h')
-rw-r--r--Build/source/texk/xdvik/x_util.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/Build/source/texk/xdvik/x_util.h b/Build/source/texk/xdvik/x_util.h
new file mode 100644
index 00000000000..8ea92be5d29
--- /dev/null
+++ b/Build/source/texk/xdvik/x_util.h
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2002-2004 the xdvik development team
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PAUL VOJTA OR ANY OTHER AUTHOR OF THIS SOFTWARE BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef X_UTIL_H_
+#define X_UTIL_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/StringDefs.h>
+#include <X11/Shell.h>
+#include "xdvi.h"
+
+/* nasty globals */
+/*
+ Whether program should autoscroll to make href target marker or
+ forward search marker visible.
+ This is disabled by ordinary user scrolling (otherwise xdvi would
+ jump back to the old place, undoing the user scroll), so we need
+ global access to it.
+ */
+extern Boolean do_autoscroll;
+
+
+extern void center_window(Widget w1, Widget w2);
+extern void position_window(Widget w, Position x, Position y);
+extern void scroll_page_if_needed(int x_min, int x_max, int y_min, int y_max);
+extern void adjust_width(Widget a, Widget b);
+extern GC set_or_make_gc(GC gc, int function, Pixel fg, Pixel bg);
+
+extern size_t property_get_data(Window, Atom, char **,
+ int (*x_get_property) (Display *, Window, Atom, long,
+ long, Bool, Atom, Atom *, int *, unsigned long *,
+ unsigned long *, unsigned char **));
+
+extern size_t property_get_window_list(char **window_list);
+extern void set_dvi_property(void);
+extern void set_window_id(Window w, unsigned char *data);
+extern Window get_window_id(char *window_p);
+extern void update_window_property(Window w, Boolean prepend);
+extern void update_dvi_property(void);
+extern void property_initialize(void);
+
+/*
+ * atom_xdvi_windows() is attached to the root window of the default
+ * screen of the display; it contains a list of (hopefully active)
+ * xdvi windows.
+ */
+Atom atom_xdvi_windows(void);
+
+/*
+ * atom_dvi_file() is attached to the main xdvi window; it tells the
+ * world what dvi file is being viewed. It is set by that copy of
+ * xdvi and read by this routine. The first 8 bytes are the inode
+ * number, and the rest is the file name. We use 8 instead of
+ * sizeof(ino_t) because the latter may vary from machine to machine,
+ * and the format needs to be machine independent.
+ */
+Atom atom_dvi_file(void);
+
+/* Atoms attached to the main xdvi window */
+
+/* instruct the current instance to do a forward search
+ * on the source string encoded in the property */
+Atom atom_src_goto(void);
+
+/* instruct the current instance to do a string search
+ * on the string encoded in the property */
+Atom atom_find_string(void);
+
+/* instruct the current instance to reload the current file */
+Atom atom_reload(void);
+
+/* instruct the current instance to load the new file contained in the property */
+Atom atom_newdoc(void);
+
+/* instruct the current instance to go to the page encoded in the property */
+Atom atom_newpage(void);
+
+/* instruct the current instance to raise its window */
+Atom atom_raise(void);
+
+/* instruct the current instance to reread preferences from ~/.xdvirc.tmp */
+Atom atom_reread_prefs(void);
+
+extern void synthetisize_event(XEvent *ev, Widget button);
+
+#ifdef MOTIF
+extern int xm_get_height(Widget w);
+extern int xm_get_width(Widget w);
+extern void str_to_pixel(Widget w, const char *colorname, Pixel *ret);
+extern void pixel_to_str(Widget w, Pixel pix, char *str, size_t len);
+extern void pixel_to_color(Pixel pix, XColor *color, Display *display, Colormap colormap);
+#endif
+
+extern Widget get_matching_parent(Widget w, Widget p, const char *fmt, ...);
+extern Boolean widget_is_parent(Widget w, Widget p, Widget s);
+
+extern void adjust_vertically(Widget w1, Widget w2, int default_dist);
+extern void adjust_heights(Widget w1, ...);
+extern void adjust_heights_min(Widget w1, ...);
+/* extern void adjust_widths(Widget w1, ...); */
+
+void block_event_callback(Widget w, XtPointer client_data,
+ XEvent *ev, Boolean *cont);
+
+extern void unexpected_widget_in_callback(Widget w, const char *callback);
+extern Boolean get_widget_by_name(Widget *ret, Widget parent, const char *name, Boolean report_error);
+
+extern void merge_into_user_db(XrmDatabase db);
+extern void store_user_preference(const char *name, const char *fmt, ...);
+extern void store_preference(XrmDatabase *db, const char *name, const char *fmt, ...);
+extern Boolean save_user_preferences(Boolean full_save);
+extern void read_user_preferences(Widget toplevel, const char *filename);
+
+/* property related routines */
+typedef void (*property_cbT)(Window w);
+extern Window get_xdvi_window_id(Boolean same_file, property_cbT callback);
+extern void set_string_property(const char *str, Atom prop, Window win);
+
+extern Boolean clip_region(int *x, int *y, int *w, int *h);
+extern Boolean clip_region_to_rect(XRectangle *rect);
+
+#endif