diff --git a/src/zmapWindow/zmapWindow.c b/src/zmapWindow/zmapWindow.c index dacd9cf5a6c02ec942a3b2b01bc238c1adfacf97..15ade4213c5a971c1bbc5af4b2ba2883785126f5 100755 --- a/src/zmapWindow/zmapWindow.c +++ b/src/zmapWindow/zmapWindow.c @@ -26,9 +26,9 @@ * * Exported functions: See ZMap/zmapWindow.h * HISTORY: - * Last edited: Oct 11 10:16 2006 (edgrif) + * Last edited: Oct 16 12:01 2006 (rds) * Created: Thu Jul 24 14:36:27 2003 (edgrif) - * CVS info: $Id: zmapWindow.c,v 1.144 2006-10-11 09:46:43 edgrif Exp $ + * CVS info: $Id: zmapWindow.c,v 1.145 2006-10-18 15:24:10 rds Exp $ *------------------------------------------------------------------- */ @@ -79,8 +79,11 @@ typedef struct _RealiseDataStruct } RealiseDataStruct, *RealiseData ; -static ZMapWindow myWindowCreate(GtkWidget *parent_widget, char *sequence, void *app_data, - GtkAdjustment *hadjustment, GtkAdjustment *vadjustment) ; +static ZMapWindow myWindowCreate(GtkWidget *parent_widget, + char *sequence, void *app_data, + GList *feature_set_names, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment) ; static void myWindowZoom(ZMapWindow window, double zoom_factor, double curr_pos) ; static void myWindowMove(ZMapWindow window, double start, double end) ; @@ -179,11 +182,15 @@ void zMapWindowInit(ZMapWindowCallbacks callbacks) } -ZMapWindow zMapWindowCreate(GtkWidget *parent_widget, char *sequence, void *app_data) +ZMapWindow zMapWindowCreate(GtkWidget *parent_widget, + char *sequence, void *app_data, + GList *feature_set_names) { ZMapWindow window ; - window = myWindowCreate(parent_widget, sequence, app_data, NULL, NULL) ; + window = myWindowCreate(parent_widget, sequence, app_data, + feature_set_names, + NULL, NULL) ; return window ; } @@ -214,7 +221,9 @@ ZMapWindow zMapWindowCopy(GtkWidget *parent_widget, char *sequence, * reset the scroll to where it should be. */ foo_canvas_get_scroll_offsets(original_window->canvas, &x, &y) ; - new_window = myWindowCreate(parent_widget, sequence, app_data, hadjustment, vadjustment) ; + new_window = myWindowCreate(parent_widget, sequence, app_data, + original_window->feature_set_names, + hadjustment, vadjustment) ; zMapAssert(new_window) ; /* Lock windows together for scrolling/zooming if requested. */ @@ -699,6 +708,15 @@ void zMapWindowScrollToWindowPos(ZMapWindow window, int window_y_pos) return ; } +void zMapWindowMergeInFeatureSetNames(ZMapWindow window, GList *feature_set_names) +{ + /* This needs to do more that just concat!! ha, it'll break something down the line ... column ordering at least */ + feature_set_names = g_list_copy(feature_set_names); + window->feature_set_names = g_list_concat(window->feature_set_names, feature_set_names); + + return ; +} + void zMapWindowDestroy(ZMapWindow window) { @@ -783,7 +801,7 @@ void zmapWindowScrollRegionTool(ZMapWindow window, double *x1_inout, double *y1_inout, double *x2_inout, double *y2_inout) { - ZMapWindowClampType clamp = ZMAP_WINDOW_CLAMP_INIT; + ZMapGUIClampType clamp = ZMAPGUI_CLAMP_INIT; double x1, x2, y1, y2; /* New region coordinates */ double wx1, wx2, wy1, wy2; /* Current world coordinates */ @@ -843,8 +861,8 @@ void zmapWindowScrollRegionTool(ZMapWindow window, zmapWindowLongItemCrop(window->long_items, x1, y1, x2, y2); clamp = zmapWindowClampedAtStartEnd(window, &y1, &y2); - y1 -= (tmp_top = ((clamp & ZMAP_WINDOW_CLAMP_START) ? border : 0.0)); - y2 += (tmp_bot = ((clamp & ZMAP_WINDOW_CLAMP_END) ? border : 0.0)); + y1 -= (tmp_top = ((clamp & ZMAPGUI_CLAMP_START) ? border : 0.0)); + y2 += (tmp_bot = ((clamp & ZMAPGUI_CLAMP_END) ? border : 0.0)); /* -----> and finally set the scroll region */ foo_canvas_set_scroll_region(FOO_CANVAS(window->canvas), /* OK */ @@ -1116,8 +1134,11 @@ static void panedResizeCB(gpointer data, gpointer userdata) /* I think probably we should insist on being supplied with a sequence.... */ /* NOTE that not all fields are initialised here as some need to be done when we draw * the actual features. */ -static ZMapWindow myWindowCreate(GtkWidget *parent_widget, char *sequence, void *app_data, - GtkAdjustment *hadjustment, GtkAdjustment *vadjustment) +static ZMapWindow myWindowCreate(GtkWidget *parent_widget, + char *sequence, void *app_data, + GList *feature_set_names, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment) { ZMapWindow window ; GtkWidget *canvas, *eventbox ; @@ -1147,6 +1168,8 @@ static ZMapWindow myWindowCreate(GtkWidget *parent_widget, char *sequence, void window->display_forward_coords = TRUE ; window->origin = 1 ; + window->feature_set_names = g_list_copy(feature_set_names); + window->toplevel = eventbox = gtk_event_box_new(); window->pane = gtk_hpaned_new();