/usr/include/plplot/gcw.h is in libplplot-dev 5.10.0+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | // gcw - PLplot Gnome Canvas Widget device driver.
//
// Copyright (C) 2004, 2005 Thomas J. Duck
// Copyright (C) 2004 Rafael Laboissiere
// All rights reserved.
//
// NOTICE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library 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
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
// USA
//
#ifndef __GCW_H__
#define __GCW_H__
#include "plDevs.h"
#include "plplotP.h"
#include "drivers.h"
#include <math.h>
#include <stdio.h>
#include <sys/stat.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <libgnomecanvas/libgnomecanvas.h>
#include <libart_lgpl/libart.h>
#include <libgnomeprint/gnome-print.h>
// #define DEBUG_GCW_1
// #define DEBUG_GCW_2
// #define ASSERT_GCW
//--------------------------------------------------------------------------
// GcwPLdev - the PLplot device structure for the GCW driver
typedef struct
{
GnomeCanvas * canvas; // The canvas to draw on
GdkPixmap * background; // The background
GdkGC * gc; // A graphics context for the pixmap
GnomeCanvasGroup* group_visible; // Visible group, removed at next eop
GnomeCanvasGroup* group_hidden; // Hidden group --> visible at eop
GnomeCanvasGroup* group_persistent; // Persistent group, at from and never erased
gboolean use_persistence; // Flags the persistent group should be used,
// and that it and the background should not be
// erased when the page is advanced.
//
GtkWidget * window; // A window used in standalone mode
GtkWidget * notebook; // A notebook pager in the window
GtkWidget * statusbar; // A statusbar for the window
GtkWidget * filew; // A file widget chooser when Save is pressed
guint32 color; // Current pen color
GdkColor bgcolor; // Background color (shouldn't change)
GdkColormap* colormap; // The gdk colormap for the canvas
PLINT width; // Width of the canvas in device pixels
PLINT height; // Height of the canvas in device pixels
PLINT pen_color; // Current pen color
PLINT pen_width; // Current pen width
gboolean use_pixmap; // Flags pixmap use for lines and fills
gboolean pixmap_has_data; // Flags that the pixmap has data
gboolean plstate_width; // Flags indicating change of state before
gboolean plstate_color0; // device is fully initialized
gboolean plstate_color1;
gboolean allow_resize; // Flags whether device resizing is allowed
} GcwPLdev;
//--------------------------------------------------------------------------
// Physical dimension constants used by the driver
// Virtual coordinate scaling parameter, used to do calculations at
// higher resolution. Chosen to be 32 for consistency with the PLplot
// metafile (see plplotP.h).
//
// The trick here is to do everything in device coordinates on the driver
// side, but report/receive everything in virtual coordinates to/from the
// PLplot core.
//
#define VSCALE ( 32. )
// pixels per mm
#define DEVICE_PIXELS_PER_MM ( 3.4 )
#define VIRTUAL_PIXELS_PER_MM ( DEVICE_PIXELS_PER_MM * VSCALE )
// mm per inch
#define MM_PER_IN ( 25.4 )
// pixels per inch
#define DEVICE_PIXELS_PER_IN ( DEVICE_PIXELS_PER_MM * MM_PER_IN )
#define VIRTUAL_PIXELS_PER_IN ( VIRTUAL_PIXELS_PER_MM * MM_PER_IN )
// Default dimensions of the canvas (in inches)
#define CANVAS_WIDTH ( 10. )
#define CANVAS_HEIGHT ( 7.5 )
// The zoom factor for 100% zoom in
#define ZOOM100 ( 1.0 )
#define ZOOMSTEP ( 1.25 )
//--------------------------------------------------------------------------
// GCW "Gnome Canvas Widget" Library prototypes (see gcw-lib.c)
// Public_functions
void gcw_use_text( PLINT use_text );
void gcw_use_pixmap( PLINT use_pixmap );
void gcw_use_hrshsym( PLINT use_hrshsym );
// Private functions
void gcw_debug( char* msg );
PLDLLIMPEXP_GNOME2 void gcw_set_gdk_color();
PLDLLIMPEXP_GNOME2 void gcw_clear_background();
PLDLLIMPEXP_GNOME2 void gcw_init_canvas( GnomeCanvas* canvas );
PLDLLIMPEXP_GNOME2 void gcw_install_canvas( GnomeCanvas *canvas );
PLDLLIMPEXP_GNOME2 void gcw_set_device_size( PLINT width, PLINT height );
void gcw_set_canvas_size( GnomeCanvas* canvas, PLINT width, PLINT height );
void gcw_set_canvas_zoom( GnomeCanvas* canvas, PLFLT magnification );
void gcw_use_persistence( PLINT use_persistence );
#endif // __GCW_H__
|