annotate src/iris/theme.c @ 184:8e77ac977ca1 trunk

[svn] - so like, when will somebody else make some presets for this thing?
author nenolod
date Wed, 01 Nov 2006 22:28:54 -0800
parents a578bf9b2851
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
1 /* Iris - visualization plugin for XMMS
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
2 * Copyright (C) 2000-2002 Cédric DELFOSSE (cdelfosse@free.fr)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
3 *
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
7 * (at your option) any later version.
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
8 *
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful,
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
12 * GNU General Public License for more details.
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
13 *
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
15 * along with this program; if not, write to the Free Software
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
17 */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
18
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
19 #include <stdlib.h>
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
20 #include "iris.h"
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
21
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
22 /* declaration of all the themes start here */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
23 extern iris_theme theme_original;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
24 extern iris_theme theme_spectrum;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
25 extern iris_theme theme_spectrotoy;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
26 extern iris_theme theme_squarefield;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
27 extern iris_theme theme_waves;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
28 extern iris_theme theme_pyramid;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
29 extern iris_theme theme_knot;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
30 extern iris_theme theme_pinwheel;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
31 extern iris_theme theme_pipes;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
32 extern iris_theme theme_float;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
33 extern iris_theme theme_fountain;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
34 extern iris_theme theme_flash;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
35
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
36 /* this is the array where all the themes are */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
37 iris_theme theme[THEME_NUMBER];
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
38
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
39
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
40 /* this initialize the theme registry */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
41 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
42 theme_register (void)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
43 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
44 theme[0] = theme_original;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
45 theme[1] = theme_spectrum;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
46 theme[2] = theme_spectrotoy;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
47 theme[3] = theme_squarefield;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
48 theme[4] = theme_waves;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
49 theme[5] = theme_pyramid;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
50 theme[6] = theme_knot;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
51 theme[7] = theme_pinwheel;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
52 theme[8] = theme_pipes;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
53 theme[9] = theme_float;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
54 theme[10] = theme_fountain;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
55 theme[11] = theme_flash;}
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
56
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
57
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
58 /* allocate memory for the config struct of the themes */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
59 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
60 theme_config_init (void)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
61 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
62 int i;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
63
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
64 for (i = 0; i < THEME_NUMBER; i++)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
65 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
66 theme[i].config->global = g_malloc (sizeof (config_global));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
67 theme[i].config_new->global = g_malloc (sizeof (config_global));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
68 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
69 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
70
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
71
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
72 /* set the default global config of a theme */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
73 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
74 theme_config_global_default (int num)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
75 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
76 theme[num].config->global->priority = 1.0; /* priority set to max */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
77 theme[num].config->global->transparency = -1; /* transparency random */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
78 theme[num].config->global->wireframe = 0; /* wireframe off */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
79 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
80
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
81
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
82 /* read the global config of a theme
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
83 (priority, transparency, wireframe) */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
84 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
85 theme_config_global_read (ConfigDb * db, char *section_name, int num)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
86 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
87 char *string;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
88
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
89 string = g_strconcat (theme[num].key, "_", "priority", NULL);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
90 bmp_cfg_db_get_float (db, section_name, string, &theme[num].config->global->priority);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
91 g_free (string);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
92
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
93 string = g_strconcat (theme[num].key, "_", "transparency", NULL);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
94 bmp_cfg_db_get_int (db, section_name, string, &theme[num].config->global->transparency);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
95 g_free (string);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
96
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
97 string = g_strconcat (theme[num].key, "_", "wireframe", NULL);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
98 bmp_cfg_db_get_int (db, section_name, string, &theme[num].config->global->wireframe);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
99 g_free (string);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
100 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
101
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
102
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
103 /* write the global config of a theme */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
104 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
105 theme_config_global_write (ConfigDb * db, char *section_name, int num)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
106 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
107 char *string;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
108
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
109 string = g_strconcat (theme[num].key, "_", "priority", NULL);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
110 bmp_cfg_db_set_float (db, section_name, string, theme[num].config->global->priority);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
111 g_free (string);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
112
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
113 string = g_strconcat (theme[num].key, "_", "transparency", NULL);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
114 bmp_cfg_db_set_int (db, section_name, string, theme[num].config->global->transparency);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
115 g_free (string);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
116
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
117 string = g_strconcat (theme[num].key, "_", "wireframe", NULL);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
118 bmp_cfg_db_set_int (db, section_name, string, theme[num].config->global->wireframe);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
119 g_free (string);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
120 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
121
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
122
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
123 /* the following 6 functions are callbacks for the theme_config_global_widgets function */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
124 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
125 on_rb_transparency_random (GtkWidget * widget, gpointer data)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
126 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
127 theme[(int) data].config_new->global->transparency = -1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
128 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
129
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
130
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
131 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
132 on_rb_transparency_on (GtkWidget * widget, gpointer data)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
133 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
134 theme[(int) data].config_new->global->transparency = 1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
135 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
136
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
137
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
138 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
139 on_rb_transparency_off (GtkWidget * widget, gpointer data)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
140 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
141 theme[(int) data].config_new->global->transparency = 0;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
142 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
143
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
144
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
145 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
146 on_rb_wireframe_random (GtkWidget * widget, gpointer data)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
147 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
148 theme[(int) data].config_new->global->wireframe = -1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
149 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
150
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
151
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
152 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
153 on_rb_wireframe_on (GtkWidget * widget, gpointer data)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
154 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
155 theme[(int) data].config_new->global->wireframe = 1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
156 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
157
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
158
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
159 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
160 on_rb_wireframe_off (GtkWidget * widget, gpointer data)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
161 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
162 theme[(int) data].config_new->global->wireframe = 0;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
163 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
164
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
165
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
166 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
167 theme_config_apply (int num)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
168 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
169 memcpy (theme[num].config->private, theme[num].config_new->private,
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
170 theme[num].config_private_size);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
171 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
172
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
173
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
174 /* create the config widgets of all the themes */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
175 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
176 theme_config_global_widgets (GtkWidget * vbox, int num)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
177 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
178 GtkWidget *hbox;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
179 GtkWidget *label;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
180 GtkWidget *radio_button_on1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
181 GtkWidget *radio_button_off1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
182 GtkWidget *radio_button_random1;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
183 GSList *group;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
184
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
185 memcpy (theme[num].config_new->global, theme[num].config->global,
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
186 sizeof (config_global));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
187
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
188 /* transparency mode */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
189 hbox = gtk_hbox_new (FALSE, 2);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
190 gtk_widget_show (hbox);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
191 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
192
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
193 label = gtk_label_new ("Transparency");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
194 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
195 radio_button_random1 = gtk_radio_button_new_with_label (NULL, "Random");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
196 gtk_box_pack_start (GTK_BOX (hbox), radio_button_random1, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
197
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
198 group = gtk_radio_button_group (GTK_RADIO_BUTTON (radio_button_random1));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
199 radio_button_on1 = gtk_radio_button_new_with_label (group, "On");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
200 gtk_box_pack_start (GTK_BOX (hbox), radio_button_on1, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
201
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
202 group = gtk_radio_button_group (GTK_RADIO_BUTTON (radio_button_on1));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
203 radio_button_off1 = gtk_radio_button_new_with_label (group, "Off");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
204 gtk_box_pack_start (GTK_BOX (hbox), radio_button_off1, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
205
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
206 switch (theme[num].config->global->transparency)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
207 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
208 case -1:
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
209 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
210 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
211 (radio_button_random1), TRUE);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
212 break;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
213 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
214 case 0:
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
215 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
216 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
217 (radio_button_off1), TRUE);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
218 break;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
219 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
220 case 1:
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
221 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
222 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
223 (radio_button_on1), TRUE);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
224 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
225 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
226
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
227 gtk_signal_connect (GTK_OBJECT (radio_button_random1), "toggled",
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
228 GTK_SIGNAL_FUNC (on_rb_transparency_random),
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
229 (gpointer) num);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
230 gtk_signal_connect (GTK_OBJECT (radio_button_off1), "toggled",
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
231 GTK_SIGNAL_FUNC (on_rb_transparency_off),
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
232 (gpointer) num);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
233 gtk_signal_connect (GTK_OBJECT (radio_button_on1), "toggled",
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
234 GTK_SIGNAL_FUNC (on_rb_transparency_on),
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
235 (gpointer) num);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
236
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
237 /* wireframe mode */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
238 hbox = gtk_hbox_new (FALSE, 2);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
239 gtk_widget_show (hbox);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
240 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
241
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
242 label = gtk_label_new ("Wireframe");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
243 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
244 radio_button_random1 = gtk_radio_button_new_with_label (NULL, "Random");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
245 gtk_box_pack_start (GTK_BOX (hbox), radio_button_random1, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
246
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
247 group = gtk_radio_button_group (GTK_RADIO_BUTTON (radio_button_random1));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
248 radio_button_on1 = gtk_radio_button_new_with_label (group, "On");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
249 gtk_box_pack_start (GTK_BOX (hbox), radio_button_on1, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
250
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
251 group = gtk_radio_button_group (GTK_RADIO_BUTTON (radio_button_on1));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
252 radio_button_off1 = gtk_radio_button_new_with_label (group, "Off");
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
253 gtk_box_pack_start (GTK_BOX (hbox), radio_button_off1, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
254
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
255 switch (theme[num].config->global->wireframe)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
256 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
257 case -1:
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
258 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
259 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
260 (radio_button_random1), TRUE);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
261 break;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
262 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
263 case 0:
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
264 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
265 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
266 (radio_button_off1), TRUE);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
267 break;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
268 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
269 case 1:
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
270 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
271 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
272 (radio_button_on1), TRUE);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
273 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
274 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
275
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
276 gtk_signal_connect (GTK_OBJECT (radio_button_random1), "toggled",
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
277 GTK_SIGNAL_FUNC (on_rb_wireframe_random),
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
278 (gpointer) num);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
279 gtk_signal_connect (GTK_OBJECT (radio_button_off1), "toggled",
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
280 GTK_SIGNAL_FUNC (on_rb_wireframe_off), (gpointer) num);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
281 gtk_signal_connect (GTK_OBJECT (radio_button_on1), "toggled",
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
282 GTK_SIGNAL_FUNC (on_rb_wireframe_on), (gpointer) num);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
283
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
284 }
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
285
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
286
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
287 /* create the theme about vbox */
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
288 void
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
289 theme_about (GtkWidget * vbox_about, int num)
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
290 {
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
291 GtkWidget *label;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
292 GtkWidget *vbox;
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
293
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
294 vbox = gtk_vbox_new (FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
295 label = gtk_label_new (g_strconcat ("Theme name: ", theme[num].name, NULL));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
296 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
297
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
298 label =
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
299 gtk_label_new (g_strconcat ("Theme author: ", theme[num].author, NULL));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
300 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
301
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
302 label =
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
303 gtk_label_new (g_strconcat
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
304 ("Theme description: ", theme[num].description, NULL));
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
305 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
306
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
307 gtk_box_pack_start (GTK_BOX (vbox_about), vbox, FALSE, FALSE, 4);
a578bf9b2851 [svn] - iris vis plugin port
nenolod
parents:
diff changeset
308 }