#include <stdlib.h>
#include <time.h>
+#ifndef WIN32
#include <gconf/gconf-client.h>
+#endif
#include "dive.h"
#include "divelist.h"
#define DIVELIST_DEFAULT_FONT "Sans 8"
const char *divelist_font;
+#ifndef WIN32
GConfClient *gconf;
-struct units output_units;
-
#define GCONF_NAME(x) "/apps/subsurface/" #x
+#endif
+
+struct units output_units;
static GtkWidget *dive_profile;
update_dive_list_units();
repaint_dive();
update_dive_list_col_visibility();
+#ifndef WIN32
gconf_client_set_bool(gconf, GCONF_NAME(feet), output_units.length == FEET, NULL);
gconf_client_set_bool(gconf, GCONF_NAME(psi), output_units.pressure == PSI, NULL);
gconf_client_set_bool(gconf, GCONF_NAME(cuft), output_units.volume == CUFT, NULL);
gconf_client_set_bool(gconf, GCONF_NAME(SAC), visible_cols.sac, NULL);
gconf_client_set_bool(gconf, GCONF_NAME(OTU), visible_cols.otu, NULL);
gconf_client_set_string(gconf, GCONF_NAME(divelist_font), divelist_font, NULL);
+#endif
}
gtk_widget_destroy(dialog);
}
static void create_toggle(const char* label, int *on, void *_data)
{
- GtkWidget *button, *box = _data;
-
+ GtkWidget *button, *table = _data;
+ int rows, cols, x, y;
+ static int count;
+
+ if (table == NULL) {
+ /* magic way to reset the number of toggle buttons
+ * that we have already added - call this before you
+ * create the dialog */
+ count = 0;
+ return;
+ }
+ g_object_get(G_OBJECT(table), "n-columns", &cols, "n-rows", &rows, NULL);
+ if (count > rows * cols) {
+ gtk_table_resize(GTK_TABLE(table),rows+1,cols);
+ rows++;
+ }
+ x = count % cols;
+ y = count / cols;
button = gtk_check_button_new_with_label(label);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), *on);
- gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 6);
+ gtk_table_attach_defaults(GTK_TABLE(table), button, x, x+1, y, y+1);
g_signal_connect(G_OBJECT(button), "toggled", G_CALLBACK(event_toggle), on);
+ count++;
}
static void selectevents_dialog(GtkWidget *w, gpointer data)
{
int result;
- GtkWidget *dialog, *frame, *vbox, *hbox;
+ GtkWidget *dialog, *frame, *vbox, *table;
dialog = gtk_dialog_new_with_buttons("SelectEvents",
GTK_WINDOW(main_window),
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
NULL);
+ /* initialize the function that fills the table */
+ create_toggle(NULL, NULL, NULL);
frame = gtk_frame_new("Enable / Disable Events");
vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
- hbox = gtk_hbox_new(FALSE, 6);
- gtk_container_add(GTK_CONTAINER(frame), hbox);
+ table = gtk_table_new(1, 4, TRUE);
+ gtk_container_add(GTK_CONTAINER(frame), table);
- evn_foreach(&create_toggle, hbox);
+ evn_foreach(&create_toggle, table);
gtk_widget_show_all(dialog);
result = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_settings_set_long_property(settings, "gtk_tooltip_timeout", 10, "subsurface setting");
g_type_init();
+
+#ifndef WIN32
gconf = gconf_client_get_default();
if (gconf_client_get_bool(gconf, GCONF_NAME(feet), NULL))
visible_cols.sac = gconf_client_get_bool(gconf, GCONF_NAME(SAC), NULL);
divelist_font = gconf_client_get_string(gconf, GCONF_NAME(divelist_font), NULL);
+#endif
if (!divelist_font)
divelist_font = DIVELIST_DEFAULT_FONT;