Skip to content
Snippets Groups Projects
Commit 7c9c2c5a authored by rds's avatar rds
Browse files

implementing feature in RT ticket #95467

parent 230b5d9e
No related branches found
No related tags found
No related merge requests found
......@@ -26,9 +26,9 @@
*
* Exported functions: See ZMap/zmapWindow.h
* HISTORY:
* Last edited: Feb 12 16:13 2009 (edgrif)
* Last edited: Feb 13 10:19 2009 (rds)
* Created: Thu Jul 24 14:36:27 2003 (edgrif)
* CVS info: $Id: zmapWindow.c,v 1.270 2009-02-12 16:14:01 edgrif Exp $
* CVS info: $Id: zmapWindow.c,v 1.271 2009-02-13 10:39:21 rds Exp $
*-------------------------------------------------------------------
*/
......@@ -3692,7 +3692,54 @@ static gboolean keyboardEvent(ZMapWindow window, GdkEventKey *key_event)
break ;
}
case GDK_a:
case GDK_A:
{
ZMapWindowCallbackCommandAlignStruct align;
ZMapWindowCallbacks window_callbacks_G = zmapWindowGetCBs();
ZMapFeature feature;
gboolean column = FALSE;
FooCanvasItem *focus_item ;
if ((focus_item = zmapWindowFocusGetHotItem(window->focus)))
focus_item = zmapWindowItemGetTrueItem(focus_item) ;
else
focus_item = FOO_CANVAS_ITEM(zmapWindowFocusGetHotColumn(window->focus)) ;
feature = g_object_get_data(G_OBJECT(focus_item), ITEM_FEATURE_DATA) ;
zMapAssert(feature) ; /* something badly wrong if no feature. */
if(feature->struct_type == ZMAPFEATURE_STRUCT_FEATURESET)
{
/* need to fix implicit dec here! */
feature = zMap_g_hash_table_nth(((ZMapFeatureSet)feature)->features, 0);
column = TRUE;
}
if(feature->type == ZMAPSTYLE_MODE_ALIGNMENT)
{
align.cmd = ZMAPWINDOW_CMD_SHOWALIGN ;
align.feature = feature ;
align.obey_protein_featuresets = FALSE;
align.obey_dna_featuresets = FALSE;
align.single_feature = FALSE;
if(key_event->keyval == GDK_A)
{
if(feature->feature.homol.type == ZMAPHOMOL_X_HOMOL ||
feature->feature.homol.type == ZMAPHOMOL_TX_HOMOL)
align.obey_protein_featuresets = TRUE;
else if(feature->feature.homol.type == ZMAPHOMOL_N_HOMOL)
align.obey_dna_featuresets = TRUE;
}
if((!column) && (key_event->state & GDK_CONTROL_MASK))
align.single_feature = TRUE;
(*(window_callbacks_G->command))(window, window->app_data, &align) ;
}
}
break;
case GDK_b:
case GDK_B:
{
......
......@@ -28,9 +28,9 @@
*
* Exported functions: See zmapWindow_P.h
* HISTORY:
* Last edited: Feb 11 11:41 2009 (rds)
* Last edited: Feb 13 09:23 2009 (rds)
* Created: Mon Jan 9 10:25:40 2006 (edgrif)
* CVS info: $Id: zmapWindowFeature.c,v 1.154 2009-02-11 15:14:38 rds Exp $
* CVS info: $Id: zmapWindowFeature.c,v 1.155 2009-02-13 10:39:21 rds Exp $
*-------------------------------------------------------------------
*/
......@@ -1690,9 +1690,15 @@ void zmapMakeItemMenu(GdkEventButton *button_event, ZMapWindow window, FooCanvas
menu_sets = g_list_append(menu_sets, makeMenuPfetchOps(NULL, NULL, menu_data)) ;
if (feature->feature.homol.type == ZMAPHOMOL_X_HOMOL)
menu_sets = g_list_append(menu_sets, zmapWindowMakeMenuProteinHomol(NULL, NULL, menu_data)) ;
{
menu_sets = g_list_append(menu_sets, zmapWindowMakeMenuProteinHomolFeature(NULL, NULL, menu_data)) ;
menu_sets = g_list_append(menu_sets, zmapWindowMakeMenuProteinHomol(NULL, NULL, menu_data)) ;
}
else
menu_sets = g_list_append(menu_sets, zmapWindowMakeMenuDNAHomol(NULL, NULL, menu_data)) ;
{
menu_sets = g_list_append(menu_sets, zmapWindowMakeMenuDNAHomolFeature(NULL, NULL, menu_data)) ;
menu_sets = g_list_append(menu_sets, zmapWindowMakeMenuDNAHomol(NULL, NULL, menu_data)) ;
}
}
/* DNA/Peptide ops. */
......
......@@ -27,9 +27,9 @@
* Exported functions: ZMap/zmapWindows.h
*
* HISTORY:
* Last edited: Feb 9 12:27 2009 (rds)
* Last edited: Feb 13 10:35 2009 (rds)
* Created: Thu Mar 10 07:56:27 2005 (edgrif)
* CVS info: $Id: zmapWindowMenus.c,v 1.55 2009-02-09 14:55:08 rds Exp $
* CVS info: $Id: zmapWindowMenus.c,v 1.56 2009-02-13 10:39:21 rds Exp $
*-------------------------------------------------------------------
*/
......@@ -64,6 +64,12 @@
#define DEVELOPER_STR "Developer"
#define BLIXEM_MENU_STR "Blixem "
#define BLIXEM_DNA_STR "DNA Alignment"
#define BLIXEM_DNAS_STR BLIXEM_DNA_STR "s"
#define BLIXEM_AA_STR "Protein Alignment"
#define BLIXEM_AAS_STR BLIXEM_AA_STR "s"
/* Choose which way a transcripts dna is dumped... */
enum
......@@ -986,7 +992,6 @@ static void developerMenuCB(int menu_item_id, gpointer callback_data)
}
/* 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,
......@@ -995,9 +1000,9 @@ ZMapGUIMenuItem zmapWindowMakeMenuDNAHomol(int *start_index_inout,
{
static ZMapGUIMenuItemStruct menu[] =
{
{ZMAPGUI_MENU_NORMAL, "Blixem (DNA alignments) [this column]", 2, blixemMenuCB, NULL},
{ZMAPGUI_MENU_NORMAL, "Blixem (DNA alignments) [all columns]", 1, blixemMenuCB, NULL},
{ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL}
{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}
} ;
......@@ -1006,15 +1011,46 @@ ZMapGUIMenuItem zmapWindowMakeMenuDNAHomol(int *start_index_inout,
return menu ;
}
ZMapGUIMenuItem zmapWindowMakeMenuDNAHomolFeature(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}
} ;
zMapGUIPopulateMenu(menu, start_index_inout, callback_func, callback_data) ;
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_NONE, NULL, 0, NULL, NULL}
} ;
zMapGUIPopulateMenu(menu, start_index_inout, callback_func, callback_data) ;
return menu ;
}
ZMapGUIMenuItem zmapWindowMakeMenuProteinHomol(int *start_index_inout,
ZMapGUIMenuItemCallbackFunc callback_func,
gpointer callback_data)
{
static ZMapGUIMenuItemStruct menu[] =
{
{ZMAPGUI_MENU_NORMAL, "Blixem (Protein alignments) [this column]", 4, blixemMenuCB, NULL},
{ZMAPGUI_MENU_NORMAL, "Blixem (Protein alignments) [all columns]", 3, blixemMenuCB, NULL},
{ZMAPGUI_MENU_NONE, NULL, 0, NULL, NULL}
{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_NONE, NULL, 0, NULL, NULL}
} ;
zMapGUIPopulateMenu(menu, start_index_inout, callback_func, callback_data) ;
......@@ -1044,15 +1080,19 @@ static void blixemMenuCB(int menu_item_id, gpointer callback_data)
align.feature = feature ;
align.obey_protein_featuresets = FALSE;
align.obey_dna_featuresets = FALSE;
align.single_feature = FALSE;
switch(menu_item_id)
{
case 1:
case 2:
align.obey_dna_featuresets = TRUE;
break;
case 3:
case 5:
align.obey_protein_featuresets = TRUE;
break;
case 3:
align.single_feature = TRUE;
break;
default:
break;
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment