1 /*[
2  * Copyright 1986 - 1993, 1998, 2004   Thomas Williams, Colin Kelley
3  *
4  * Permission to use, copy, and distribute this software and its
5  * documentation for any purpose with or without fee is hereby granted,
6  * provided that the above copyright notice appear in all copies and
7  * that both that copyright notice and this permission notice appear
8  * in supporting documentation.
9  *
10  * Permission to modify the software is granted, but not the right to
11  * distribute the complete modified source code.  Modifications are to
12  * be distributed as patches to the released version.  Permission to
13  * distribute binaries produced by compiling modified sources is granted,
14  * provided you
15  *   1. distribute the corresponding source modifications from the
16  *    released version in the form of a patch file along with the binaries,
17  *   2. add special version identification to distinguish your version
18  *    in addition to the base release version number,
19  *   3. provide your name and address as the primary contact for the
20  *    support of your modified version, and
21  *   4. retain our contact information in regard to use of the base
22  *    software.
23  * Permission to distribute the released version of the source code along
24  * with corresponding source modifications in the form of a patch file is
25  * granted with same provisions 2 through 4 for binary distributions.
26  *
27  * This software is provided "as is" without express or implied warranty
28  * to the extent permitted by applicable law.
29 ]*/
30 
31 #ifndef __GNUPLOTAPP_H__
32 #define __GNUPLOTAPP_H__
33 
34 extern const char *APP_SIGNATURE;
35 
36 #define  MAX_WINDOWS	10
37 
38 typedef struct plot_struct {
39 	BWindow *window;
40 //	GPBixmap *pixmap;
41 	unsigned int posn_flags;
42 	int x, y;
43 	unsigned int width, height;	/* window size */
44 	unsigned int px, py;	/* pointsize */
45 	int ncommands, max_commands;
46 	char **commands;
47 } plot_struct;
48 
49 class GPApp : public BApplication {
50 	public:
51 						GPApp();
52 		virtual void	ReadyToRun(void);
53 		virtual void	MessageReceived(BMessage *message);
54 		virtual void	RefsReceived(BMessage *message);
55 
56 	private:
57 		int32			window_count;
58 		int32			next_untitled_number;
59 		void 			prepare_plot(plot_struct *plot, int term_number);
60 		void 			store_command(char *buffer, plot_struct *plot);
61 		void 			display(plot_struct *plot);
62 		int32			io_task(plot_struct *data);
63 		int32			io_loop(void *data);
64 		thread_id 		io_thread;
65 //		BFilePanel		*openPanel;
66 };
67 #endif
68