diff --git a/src/zmapWindow/zmapWindow.c b/src/zmapWindow/zmapWindow.c index b5329ddd7b4cf73ef98f51d6d8bc8c15c115c6b1..c4fb580bf362b0d3964fd116efbd7e20cb4e364f 100755 --- a/src/zmapWindow/zmapWindow.c +++ b/src/zmapWindow/zmapWindow.c @@ -26,9 +26,9 @@ * * Exported functions: See ZMap/zmapWindow.h * HISTORY: - * Last edited: May 5 12:37 2009 (rds) + * Last edited: May 5 20:29 2009 (rds) * Created: Thu Jul 24 14:36:27 2003 (edgrif) - * CVS info: $Id: zmapWindow.c,v 1.280 2009-05-05 11:38:06 rds Exp $ + * CVS info: $Id: zmapWindow.c,v 1.281 2009-05-06 08:59:22 rds Exp $ *------------------------------------------------------------------- */ @@ -3533,22 +3533,8 @@ void zmapWindowFetchData(ZMapWindow window, ZMapFeatureBlock block, fetch_data->end = block->block_to_sequence.q2 ; } else if (zmapWindowMarkIsSet(window->mark) && - zmapWindowMarkGetSequenceRange(window->mark, &start, &end)) + zmapWindowGetMarkedSequenceRangeFwd(window, block, &start, &end)) { - if(window->revcomped_features) - { - int tmp; - /* Need to reverse complement the mark here... */ - /* swop */ - tmp = start; - start = end; - end = tmp; - /* invert */ - start = block->block_to_sequence.q2 - start + 1; - /* invert */ - end = block->block_to_sequence.q2 - end + 1; - } - fetch_data->start = start ; fetch_data->end = end ; } diff --git a/src/zmapWindow/zmapWindowColConfig.c b/src/zmapWindow/zmapWindowColConfig.c index ef3e9060f6ab454ed387c13aa0ddf571cd17c0bf..b482f959ae0fb89c3c2670b97e718e5953bb13a7 100755 --- a/src/zmapWindow/zmapWindowColConfig.c +++ b/src/zmapWindow/zmapWindowColConfig.c @@ -26,9 +26,9 @@ * * Exported functions: See ZMap/zmapWindow.h * HISTORY: - * Last edited: Apr 17 16:31 2009 (rds) + * Last edited: May 6 09:58 2009 (rds) * Created: Thu Mar 2 09:07:44 2006 (edgrif) - * CVS info: $Id: zmapWindowColConfig.c,v 1.29 2009-04-20 14:34:09 rds Exp $ + * CVS info: $Id: zmapWindowColConfig.c,v 1.30 2009-05-06 08:59:22 rds Exp $ *------------------------------------------------------------------- */ @@ -497,25 +497,25 @@ static void configure_get_column_lists(ColConfigure configure_data, { ForwardReverseColumnListsStruct forward_reverse_lists = {NULL}; FooCanvasGroup *block_group; + ZMapFeatureBlock block; gboolean use_mark_if_marked = FALSE; /* get block */ block_group = configure_get_point_block_container(configure_data, column_group); + + block = g_object_get_data(G_OBJECT(block_group), ITEM_FEATURE_DATA); forward_reverse_lists.loaded_or_deferred = deferred_or_loaded; forward_reverse_lists.block_data = g_object_get_data(G_OBJECT(block_group), ITEM_FEATURE_BLOCK_DATA); if(use_mark_if_marked && window->mark && zmapWindowMarkIsSet(window->mark)) { - double x1, x2, y1, y2; - zmapWindowMarkGetWorldRange(window->mark, &x1, &y1, &x2, &y2); - forward_reverse_lists.mark1 = y1; - forward_reverse_lists.mark2 = y2; + zmapWindowGetMarkedSequenceRangeFwd(window, block, + &(forward_reverse_lists.mark1), + &(forward_reverse_lists.mark2)); } else { - ZMapFeatureBlock block; - block = g_object_get_data(G_OBJECT(block_group), ITEM_FEATURE_DATA); forward_reverse_lists.mark1 = block->block_to_sequence.q1; forward_reverse_lists.mark2 = block->block_to_sequence.q2; } @@ -1025,11 +1025,9 @@ static GtkWidget *deferred_cols_panel(NotebookPage notebook_page, window = notebook_page->configure_data->window; if((mark_set = zmapWindowMarkIsSet(window->mark))) - { - double x1, x2, y1, y2; - zmapWindowMarkGetWorldRange(window->mark, &x1, &y1, &x2, &y2); - mark1 = y1; - mark2 = y2; + { + zmapWindowGetMarkedSequenceRangeFwd(window, deferred_page_data->block, + &mark1, &mark2); } frame = gtk_frame_new("Available Columns"); @@ -1241,15 +1239,19 @@ static void deferred_page_populate(NotebookPage notebook_page, FooCanvasGroup *c GList *all_deferred_columns = NULL; GtkWidget *hbox, *frame; FooCanvasGroup *point_block = NULL; - + DeferredPageData page_data; + point_block = configure_get_point_block_container(notebook_page->configure_data, column_group); + page_data = (DeferredPageData)notebook_page->page_data; + + page_data->block = g_object_get_data(G_OBJECT(point_block), ITEM_FEATURE_DATA);; configure_get_column_lists(notebook_page->configure_data, NULL, TRUE, &all_deferred_columns, NULL); hbox = notebook_page->page_container; - + if((frame = deferred_cols_panel(notebook_page, all_deferred_columns))) { gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); @@ -1855,9 +1857,9 @@ static void loaded_show_button_cb(GtkToggleButton *togglebutton, gpointer user_d frame_column = zmapWindowFToIFindSetItem(window->context_to_item, feature_set, set_data->strand, frame); - if(frame_column && zmapWindowContainerHasFeatures(frame_column)) + if(frame_column && zmapWindowContainerHasFeatures(FOO_CANVAS_GROUP(frame_column))) zmapWindowColumnSetState(window, - frame_column, + FOO_CANVAS_GROUP(frame_column), button_data->show_hide_state, FALSE) ; } diff --git a/src/zmapWindow/zmapWindowUtils.c b/src/zmapWindow/zmapWindowUtils.c index fe42f329a554f79d21917bc84b567a7232de16d5..f5bf3c4acb74cb2da8b1658d43c9f7e96e11b1d1 100755 --- a/src/zmapWindow/zmapWindowUtils.c +++ b/src/zmapWindow/zmapWindowUtils.c @@ -26,9 +26,9 @@ * * Exported functions: See ZMap/zmapWindow.h * HISTORY: - * Last edited: Apr 22 17:29 2009 (edgrif) + * Last edited: May 5 20:43 2009 (rds) * Created: Thu Jan 20 14:43:12 2005 (edgrif) - * CVS info: $Id: zmapWindowUtils.c,v 1.49 2009-04-22 16:30:27 edgrif Exp $ + * CVS info: $Id: zmapWindowUtils.c,v 1.50 2009-05-06 08:59:22 rds Exp $ *------------------------------------------------------------------- */ @@ -306,6 +306,40 @@ gboolean zmapWindowUpdateStyles(ZMapWindow window, GData **read_only_styles, GDa } +gboolean zmapWindowGetMarkedSequenceRangeFwd(ZMapWindow window, + ZMapFeatureBlock block, + int *start, int *end) +{ + gboolean result = FALSE ; + + result = zmapWindowMarkGetSequenceRange(window->mark, start, end); + + if(result && window->revcomped_features && start && end) + { + int seq_end, x, y, z; + + /* Need to reverse complement the mark here... */ + seq_end = block->block_to_sequence.q2; + x = *start; + y = *end; + + /* swop */ + z = x; + x = y; + y = z; + + /* invert */ + x = seq_end - x + 1; + + /* invert */ + y = seq_end - y + 1; + + *start = x; + *end = y; + } + + return result ; +} diff --git a/src/zmapWindow/zmapWindow_P.h b/src/zmapWindow/zmapWindow_P.h index 602a054e3887cac204b8b09fc70cb884f42394eb..1649fdda5346a73d5b79fa608ada9e5be829aa54 100755 --- a/src/zmapWindow/zmapWindow_P.h +++ b/src/zmapWindow/zmapWindow_P.h @@ -25,9 +25,9 @@ * Description: Defines internal interfaces/data structures of zMapWindow. * * HISTORY: - * Last edited: Apr 27 11:56 2009 (edgrif) + * Last edited: May 6 09:50 2009 (rds) * Created: Fri Aug 1 16:45:58 2003 (edgrif) - * CVS info: $Id: zmapWindow_P.h,v 1.240 2009-04-28 14:35:39 edgrif Exp $ + * CVS info: $Id: zmapWindow_P.h,v 1.241 2009-05-06 08:59:23 rds Exp $ *------------------------------------------------------------------- */ #ifndef ZMAP_WINDOW_P_H @@ -1314,6 +1314,9 @@ void zmapWindowDrawSeparatorFeatures(ZMapWindow window, ZMapFeatureTypeStyle style); gboolean zmapWindowUpdateStyles(ZMapWindow window, GData **read_only_styles, GData **display_styles) ; +gboolean zmapWindowGetMarkedSequenceRangeFwd(ZMapWindow window, + ZMapFeatureBlock block, + int *start, int *end); GHashTable *zmapWindowStyleTableCreate(void) ; ZMapFeatureTypeStyle zmapWindowStyleTableAddCopy(GHashTable *style_table, ZMapFeatureTypeStyle new_style) ;