diff --git a/src/zmapWindow/zmapWindowMenus.c b/src/zmapWindow/zmapWindowMenus.c index d03b8d2028ab10b506af01f15525078bda5427ab..80b405e0ebb7f7ab8e96894c15526273ce3e15b3 100755 --- a/src/zmapWindow/zmapWindowMenus.c +++ b/src/zmapWindow/zmapWindowMenus.c @@ -27,9 +27,9 @@ * Exported functions: ZMap/zmapWindows.h * * HISTORY: - * Last edited: Nov 18 16:17 2009 (edgrif) + * Last edited: Dec 16 10:32 2009 (edgrif) * Created: Thu Mar 10 07:56:27 2005 (edgrif) - * CVS info: $Id: zmapWindowMenus.c,v 1.63 2009-11-18 16:30:02 edgrif Exp $ + * CVS info: $Id: zmapWindowMenus.c,v 1.64 2009-12-16 11:10:45 edgrif Exp $ *------------------------------------------------------------------- */ @@ -64,13 +64,18 @@ #define DEVELOPER_STR "Developer" +/* Strings/enums for invoking blixem. */ #define BLIXEM_MENU_STR "Blixem " -#define BLIXEM_DNA_STR "DNA Alignment" +#define BLIXEM_DNA_STR "DNA" #define BLIXEM_DNAS_STR BLIXEM_DNA_STR "s" -#define BLIXEM_AA_STR "Protein Alignment" +#define BLIXEM_AA_STR "Protein" #define BLIXEM_AAS_STR BLIXEM_AA_STR "s" +enum {BLIX_MATCH, BLIX_FEATURE, BLIX_SET, BLIX_MULTI_SETS, BLIX_ALL_SETS} ; + + + /* Choose which way a transcripts dna is dumped... */ enum { @@ -994,18 +999,18 @@ static void developerMenuCB(int menu_item_id, gpointer callback_data) return ; } - -/* JAMES HAS MADE THE POINT THAT ANNOTATORS ONLY EVER USE THE "JUST THIS TYPE" OPTION, SO - * I'VE COMMENTED OUT THE TWO MENU OPTIONS AND REPLACED THEM WITH ONE.... */ -ZMapGUIMenuItem zmapWindowMakeMenuDNAHomol(int *start_index_inout, - ZMapGUIMenuItemCallbackFunc callback_func, - gpointer callback_data) +/* Clicked on a dna homol feature... */ +ZMapGUIMenuItem zmapWindowMakeMenuDNAHomolFeature(int *start_index_inout, + ZMapGUIMenuItemCallbackFunc callback_func, + gpointer callback_data) { static ZMapGUIMenuItemStruct menu[] = { - {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNAS_STR, 1, blixemMenuCB, NULL, "a"}, - {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNAS_STR " - All Columns", 2, blixemMenuCB, NULL, "<shift>A"}, - {ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL} + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNA_STR " - just this match", + BLIX_MATCH, blixemMenuCB, NULL, NULL}, + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNA_STR " - all matches for this feature", + BLIX_FEATURE, blixemMenuCB, NULL, "A"}, + {ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL} } ; @@ -1014,14 +1019,24 @@ ZMapGUIMenuItem zmapWindowMakeMenuDNAHomol(int *start_index_inout, return menu ; } -ZMapGUIMenuItem zmapWindowMakeMenuDNAHomolFeature(int *start_index_inout, - ZMapGUIMenuItemCallbackFunc callback_func, - gpointer callback_data) +/* Clicked on a dna homol column... */ +ZMapGUIMenuItem zmapWindowMakeMenuDNAHomol(int *start_index_inout, + ZMapGUIMenuItemCallbackFunc callback_func, + gpointer callback_data) { static ZMapGUIMenuItemStruct menu[] = { - {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNA_STR " - Feature", 3, blixemMenuCB, NULL, "<Ctrl>A"}, - {ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL} + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNAS_STR " - all matches for this column", + BLIX_SET, blixemMenuCB, NULL, "<shift>A"}, + +#ifdef ED_G_NEVER_INCLUDE_THIS_CODE + /* NOT SUPPORTED CURRENTLY..... */ + + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_DNAS_STR " - all matches for associated columns", + BLIX_MULTI_SETS, blixemMenuCB, NULL, "<Ctrl>A"}, +#endif /* ED_G_NEVER_INCLUDE_THIS_CODE */ + + {ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL} } ; @@ -1030,13 +1045,15 @@ ZMapGUIMenuItem zmapWindowMakeMenuDNAHomolFeature(int *start_index_inout, return menu ; } + ZMapGUIMenuItem zmapWindowMakeMenuProteinHomolFeature(int *start_index_inout, ZMapGUIMenuItemCallbackFunc callback_func, gpointer callback_data) { static ZMapGUIMenuItemStruct menu[] = { - {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_AA_STR "", 3, blixemMenuCB, NULL, "<Ctrl>A"}, + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_AA_STR " - all matches for this feature", + BLIX_FEATURE, blixemMenuCB, NULL, "A"}, {ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL} } ; @@ -1051,8 +1068,16 @@ ZMapGUIMenuItem zmapWindowMakeMenuProteinHomol(int *start_index_inout, { static ZMapGUIMenuItemStruct menu[] = { - {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_AAS_STR, 4, blixemMenuCB, NULL, "a"}, - {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_AAS_STR " - All Columns", 5, blixemMenuCB, NULL, "<shift>A"}, + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_AAS_STR " - all matches for this column", + BLIX_SET, blixemMenuCB, NULL, "<shift>A"}, + +#ifdef ED_G_NEVER_INCLUDE_THIS_CODE + /* NOT SUPPORTED CURRENTLY..... */ + + {ZMAPGUI_MENU_NORMAL, BLIXEM_MENU_STR BLIXEM_AAS_STR " - all matches for associated columns", + BLIX_MULTI_SETS, blixemMenuCB, NULL, "<Ctrl>A"}, +#endif /* ED_G_NEVER_INCLUDE_THIS_CODE */ + {ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL} } ; @@ -1066,7 +1091,7 @@ ZMapGUIMenuItem zmapWindowMakeMenuProteinHomol(int *start_index_inout, static void blixemMenuCB(int menu_item_id, gpointer callback_data) { ItemMenuCBData menu_data = (ItemMenuCBData)callback_data ; - ZMapWindowCallbackCommandAlignStruct align ; + ZMapWindowCallbackCommandAlignStruct align = {ZMAPWINDOW_CMD_INVALID} ; ZMapFeatureAny feature_any; ZMapFeature feature ; ZMapWindowCallbacks window_cbs_G = zmapWindowGetCBs() ; @@ -1080,11 +1105,12 @@ static void blixemMenuCB(int menu_item_id, gpointer callback_data) case ZMAPFEATURE_STRUCT_FEATURESET: { ZMapFeatureSet feature_set; + feature_set = (ZMapFeatureSet)feature_any; - /* need to fix implicit dec here! */ feature = zMap_g_hash_table_nth(feature_set->features, 0); + + break; } - break; case ZMAPFEATURE_STRUCT_FEATURE: feature = (ZMapFeature)feature_any; break; @@ -1094,26 +1120,23 @@ static void blixemMenuCB(int menu_item_id, gpointer callback_data) align.cmd = ZMAPWINDOW_CMD_SHOWALIGN ; align.feature = feature ; - align.obey_protein_featuresets = FALSE; - align.obey_dna_featuresets = FALSE; - align.single_feature = FALSE; switch(menu_item_id) { - case 2: - align.obey_dna_featuresets = TRUE; - break; - case 5: - align.obey_protein_featuresets = TRUE; + case BLIX_MATCH: + align.single_match = TRUE; break; - case 3: + case BLIX_FEATURE: align.single_feature = TRUE; break; + case BLIX_SET: + align.feature_set = TRUE; + break; default: break; } - (*(window_cbs_G->command))(menu_data->window, menu_data->window->app_data, &align) ; + (*(window_cbs_G->command))(menu_data->window, menu_data->window->app_data, &align) ; g_free(menu_data) ;