1 /*
2  * Copyright (c) Tony Bybell 1999-2011.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  */
9 
10 #include "globals.h"
11 
12 #ifndef WAVE_COLOR_H
13 #define WAVE_COLOR_H
14 
15 #include <stdlib.h>
16 #include <gtk/gtk.h>
17 
18 #define WAVE_COLOR_CYCLE (-1)
19 #define WAVE_COLOR_NORMAL (0)
20 #define WAVE_COLOR_RED (1)
21 #define WAVE_COLOR_ORANGE (2)
22 #define WAVE_COLOR_YELLOW (3)
23 #define WAVE_COLOR_GREEN (4)
24 #define WAVE_COLOR_BLUE (5)
25 #define WAVE_COLOR_INDIGO (6)
26 #define WAVE_COLOR_VIOLET (7)
27 
28 #define WAVE_NUM_RAINBOW (7)
29 
30 #define WAVE_RAINBOW_RGB {0xFF0000, 0xFF7F00, 0xFFFF00, 0x00FF00, 0x0000FF, 0x6600FF, 0x9B00FF}
31 #define WAVE_RAINBOW_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
32 
33 struct wave_gcmaster_t
34 {
35 GdkGC *gc_ltgray;
36 GdkGC *gc_normal;
37 GdkGC *gc_mdgray;
38 GdkGC *gc_dkgray;
39 GdkGC *gc_dkblue;
40 GdkGC *gc_brkred;
41 GdkGC *gc_ltblue;
42 GdkGC *gc_gmstrd;
43 GdkGC *gc_back_wavewindow_c_1;
44 GdkGC *gc_baseline_wavewindow_c_1;
45 GdkGC *gc_grid_wavewindow_c_1;
46 GdkGC *gc_grid2_wavewindow_c_1;
47 GdkGC *gc_time_wavewindow_c_1;
48 GdkGC *gc_timeb_wavewindow_c_1;
49 GdkGC *gc_value_wavewindow_c_1;
50 GdkGC *gc_low_wavewindow_c_1;
51 GdkGC *gc_highfill_wavewindow_c_1;
52 GdkGC *gc_high_wavewindow_c_1;
53 GdkGC *gc_trans_wavewindow_c_1;
54 GdkGC *gc_mid_wavewindow_c_1;
55 GdkGC *gc_xfill_wavewindow_c_1;
56 GdkGC *gc_x_wavewindow_c_1;
57 GdkGC *gc_vbox_wavewindow_c_1;
58 GdkGC *gc_vtrans_wavewindow_c_1;
59 GdkGC *gc_mark_wavewindow_c_1;
60 GdkGC *gc_umark_wavewindow_c_1;
61 GdkGC *gc_0_wavewindow_c_1;
62 GdkGC *gc_1fill_wavewindow_c_1;
63 GdkGC *gc_1_wavewindow_c_1;
64 GdkGC *gc_ufill_wavewindow_c_1;
65 GdkGC *gc_u_wavewindow_c_1;
66 GdkGC *gc_wfill_wavewindow_c_1;
67 GdkGC *gc_w_wavewindow_c_1;
68 GdkGC *gc_dashfill_wavewindow_c_1;
69 GdkGC *gc_dash_wavewindow_c_1;
70 };
71 
72 
73 struct wave_gcchain_t
74 {
75 struct wave_gcchain_t*next;
76 GdkGC *gc;
77 };
78 
79 
80 GdkGC *alloc_color(GtkWidget *widget, int tuple, GdkGC *fallback);	/* tuple is encoded as 32bit: --RRGGBB (>=0 is valid) */
81 void dealloc_all_gcs(void); /* when tab is destroyed */
82 void set_alternate_gcs(GdkGC *ctx, GdkGC *ctx_fill); /* when another t_color is encountered */
83 
84 #endif
85 
86