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

Require a styles list for creation

parent abcb96d8
No related branches found
No related tags found
No related merge requests found
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
* *
* Exported functions: See XXXXXXXXXXXXX.h * Exported functions: See XXXXXXXXXXXXX.h
* HISTORY: * HISTORY:
* Last edited: Apr 16 11:15 2009 (rds) * Last edited: Apr 20 11:59 2009 (rds)
* Created: Mon Jul 30 13:09:33 2007 (rds) * Created: Mon Jul 30 13:09:33 2007 (rds)
* CVS info: $Id: zmapWindowItemFeatureSet.c,v 1.10 2009-04-16 14:37:37 rds Exp $ * CVS info: $Id: zmapWindowItemFeatureSet.c,v 1.11 2009-04-20 11:05:49 rds Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
#include <string.h> /* memset */ #include <string.h> /* memset */
...@@ -132,21 +132,40 @@ GType zmapWindowItemFeatureSetGetType(void) ...@@ -132,21 +132,40 @@ GType zmapWindowItemFeatureSetGetType(void)
ZMapWindowItemFeatureSetData zmapWindowItemFeatureSetCreate(ZMapWindow window, ZMapWindowItemFeatureSetData zmapWindowItemFeatureSetCreate(ZMapWindow window,
FooCanvasGroup *column_container, FooCanvasGroup *column_container,
ZMapFeatureTypeStyle style, GQuark feature_set_unique_id,
GQuark feature_set_original_id, /* unused! */
GList *style_list,
ZMapStrand strand, ZMapStrand strand,
ZMapFrame frame) ZMapFrame frame)
{ {
ZMapWindowItemFeatureSetData set_data; ZMapWindowItemFeatureSetData set_data = NULL;
g_return_val_if_fail(window != NULL, set_data);
g_return_val_if_fail(column_container != NULL, set_data);
g_return_val_if_fail(feature_set_unique_id != 0, set_data);
if((set_data = g_object_new(zmapWindowItemFeatureSetGetType(), NULL))) if((set_data = g_object_new(zmapWindowItemFeatureSetGetType(), NULL)))
{ {
GList *list;
set_data->window = window; set_data->window = window;
set_data->strand = strand; set_data->strand = strand;
set_data->frame = frame; set_data->frame = frame;
set_data->style_id = zMapStyleGetID(style); /* set_data->style_id = 0; /* feature_set_original_id */
set_data->unique_id = zMapStyleGetUniqueID(style); set_data->unique_id = feature_set_unique_id;
if((list = g_list_first(style_list)))
{
do
{
ZMapFeatureTypeStyle style;
style = (ZMapFeatureTypeStyle)(list->data);
zmapWindowItemFeatureSetStyleFromStyle(set_data, style); zmapWindowItemFeatureSetStyleFromStyle(set_data, style);
}
while((list = g_list_next(list)));
}
set_data->column_container = column_container; set_data->column_container = column_container;
...@@ -263,6 +282,19 @@ ZMapFeatureTypeStyle zmapWindowItemFeatureSetStyleFromID(ZMapWindowItemFeatureSe ...@@ -263,6 +282,19 @@ ZMapFeatureTypeStyle zmapWindowItemFeatureSetStyleFromID(ZMapWindowItemFeatureSe
return duplicated; return duplicated;
} }
/* Warning! This is dynamic and will pick the original id over unique id */
GQuark zmapWindowItemFeatureSetColumnDisplayName(ZMapWindowItemFeatureSetData set_data)
{
ZMapFeatureSet feature_set;
GQuark display_id = 0;
if((feature_set = zmapWindowItemFeatureSetRecoverFeatureSet(set_data)))
display_id = feature_set->original_id;
else
display_id = set_data->unique_id;
return display_id;
}
ZMapWindow zmapWindowItemFeatureSetGetWindow(ZMapWindowItemFeatureSetData set_data) ZMapWindow zmapWindowItemFeatureSetGetWindow(ZMapWindowItemFeatureSetData set_data)
{ {
...@@ -439,7 +471,7 @@ gboolean zmapWindowItemFeatureSetIsFrameSpecific(ZMapWindowItemFeatureSetData se ...@@ -439,7 +471,7 @@ gboolean zmapWindowItemFeatureSetIsFrameSpecific(ZMapWindowItemFeatureSetData se
if(frame_mode == ZMAPSTYLE_3_FRAME_INVALID) if(frame_mode == ZMAPSTYLE_3_FRAME_INVALID)
{ {
zMapLogWarning("Frame mode for column %s is invalid.", g_quark_to_string(set_data->style_id)); zMapLogWarning("Frame mode for column %s is invalid.", g_quark_to_string(set_data->unique_id));
set_data->settings.frame_specific = FALSE; set_data->settings.frame_specific = FALSE;
} }
} }
...@@ -757,6 +789,7 @@ static void extract_value_from_style_table(gpointer key, gpointer value, gpointe ...@@ -757,6 +789,7 @@ static void extract_value_from_style_table(gpointer key, gpointer value, gpointe
g_value_set_double(value_data->gvalue, style_width); g_value_set_double(value_data->gvalue, style_width);
} }
break; break;
case ITEM_FEATURE_SET_STRAND_SPECIFIC:
case ITEM_FEATURE_SET_SHOW_WHEN_EMPTY: case ITEM_FEATURE_SET_SHOW_WHEN_EMPTY:
case ITEM_FEATURE_SET_DEFERRED: case ITEM_FEATURE_SET_DEFERRED:
{ {
...@@ -777,6 +810,8 @@ static void extract_value_from_style_table(gpointer key, gpointer value, gpointe ...@@ -777,6 +810,8 @@ static void extract_value_from_style_table(gpointer key, gpointer value, gpointe
break; break;
case ITEM_FEATURE_SET_FRAME_MODE: case ITEM_FEATURE_SET_FRAME_MODE:
case ITEM_FEATURE_SET_VISIBLE: case ITEM_FEATURE_SET_VISIBLE:
case ITEM_FEATURE_SET_OVERLAP_MODE:
case ITEM_FEATURE_SET_DEFAULT_OVERLAP_MODE:
{ {
guint style_version = 0, current; guint style_version = 0, current;
......
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
* *
* Exported functions: See XXXXXXXXXXXXX.h * Exported functions: See XXXXXXXXXXXXX.h
* HISTORY: * HISTORY:
* Last edited: Apr 16 11:17 2009 (rds) * Last edited: Apr 17 16:32 2009 (rds)
* Created: Fri Feb 6 15:32:46 2009 (rds) * Created: Fri Feb 6 15:32:46 2009 (rds)
* CVS info: $Id: zmapWindowItemFeatureSet.h,v 1.5 2009-04-16 14:37:46 rds Exp $ * CVS info: $Id: zmapWindowItemFeatureSet.h,v 1.6 2009-04-20 11:06:03 rds Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
...@@ -64,7 +64,9 @@ GType zmapWindowItemFeatureSetGetType(void); ...@@ -64,7 +64,9 @@ GType zmapWindowItemFeatureSetGetType(void);
ZMapWindowItemFeatureSetData zmapWindowItemFeatureSetCreate(ZMapWindow window, ZMapWindowItemFeatureSetData zmapWindowItemFeatureSetCreate(ZMapWindow window,
FooCanvasGroup *column_container, FooCanvasGroup *column_container,
ZMapFeatureTypeStyle style, GQuark feature_set_unique_id,
GQuark feature_set_original_id,
GList *style_list,
ZMapStrand strand, ZMapStrand strand,
ZMapFrame frame); ZMapFrame frame);
...@@ -76,7 +78,7 @@ ZMapFeatureTypeStyle zmapWindowItemFeatureSetStyleFromStyle(ZMapWindowItemFeatur ...@@ -76,7 +78,7 @@ ZMapFeatureTypeStyle zmapWindowItemFeatureSetStyleFromStyle(ZMapWindowItemFeatur
ZMapFeatureTypeStyle style2copy); ZMapFeatureTypeStyle style2copy);
ZMapFeatureTypeStyle zmapWindowItemFeatureSetStyleFromID(ZMapWindowItemFeatureSetData set_data, ZMapFeatureTypeStyle zmapWindowItemFeatureSetStyleFromID(ZMapWindowItemFeatureSetData set_data,
GQuark style_unique_id); GQuark style_unique_id);
GQuark zmapWindowItemFeatureSetColumnDisplayName(ZMapWindowItemFeatureSetData set_data);
ZMapWindow zmapWindowItemFeatureSetGetWindow(ZMapWindowItemFeatureSetData set_data); ZMapWindow zmapWindowItemFeatureSetGetWindow(ZMapWindowItemFeatureSetData set_data);
ZMapStrand zmapWindowItemFeatureSetGetStrand(ZMapWindowItemFeatureSetData set_data); ZMapStrand zmapWindowItemFeatureSetGetStrand(ZMapWindowItemFeatureSetData set_data);
ZMapFrame zmapWindowItemFeatureSetGetFrame (ZMapWindowItemFeatureSetData set_data); ZMapFrame zmapWindowItemFeatureSetGetFrame (ZMapWindowItemFeatureSetData set_data);
...@@ -97,9 +99,10 @@ ZMapStyleColumnDisplayState zmapWindowItemFeatureSetGetDisplay(ZMapWindowItemFea ...@@ -97,9 +99,10 @@ ZMapStyleColumnDisplayState zmapWindowItemFeatureSetGetDisplay(ZMapWindowItemFea
void zmapWindowItemFeatureSetDisplay(ZMapWindowItemFeatureSetData set_data, ZMapStyleColumnDisplayState state); void zmapWindowItemFeatureSetDisplay(ZMapWindowItemFeatureSetData set_data, ZMapStyleColumnDisplayState state);
gboolean zmapWindowItemFeatureSetShowWhenEmpty(ZMapWindowItemFeatureSetData set_data); gboolean zmapWindowItemFeatureSetShowWhenEmpty(ZMapWindowItemFeatureSetData set_data);
ZMapStyle3FrameMode zmapWindowItemFeatureSetGetFrameMode(ZMapWindowItemFeatureSetData set_data);
gboolean zmapWindowItemFeatureSetIsFrameSpecific(ZMapWindowItemFeatureSetData set_data, gboolean zmapWindowItemFeatureSetIsFrameSpecific(ZMapWindowItemFeatureSetData set_data,
ZMapStyle3FrameMode *frame_mode_out); ZMapStyle3FrameMode *frame_mode_out);
ZMapStyle3FrameMode zmapWindowItemFeatureSetGetFrameMode(ZMapWindowItemFeatureSetData set_data); gboolean zmapWindowItemFeatureSetIsStrandSpecific(ZMapWindowItemFeatureSetData set_data);
ZMapStyleOverlapMode zmapWindowItemFeatureSetGetOverlapMode(ZMapWindowItemFeatureSetData set_data); ZMapStyleOverlapMode zmapWindowItemFeatureSetGetOverlapMode(ZMapWindowItemFeatureSetData set_data);
ZMapStyleOverlapMode zmapWindowItemFeatureSetGetDefaultOverlapMode(ZMapWindowItemFeatureSetData set_data); ZMapStyleOverlapMode zmapWindowItemFeatureSetGetDefaultOverlapMode(ZMapWindowItemFeatureSetData set_data);
gboolean zmapWindowItemFeatureSetGetDeferred(ZMapWindowItemFeatureSetData set_data); gboolean zmapWindowItemFeatureSetGetDeferred(ZMapWindowItemFeatureSetData set_data);
......
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
* *
* Exported functions: See XXXXXXXXXXXXX.h * Exported functions: See XXXXXXXXXXXXX.h
* HISTORY: * HISTORY:
* Last edited: Apr 16 11:15 2009 (rds) * Last edited: Apr 17 16:21 2009 (rds)
* Created: Fri Feb 6 11:49:03 2009 (rds) * Created: Fri Feb 6 11:49:03 2009 (rds)
* CVS info: $Id: zmapWindowItemFeatureSet_I.h,v 1.5 2009-04-16 14:37:59 rds Exp $ * CVS info: $Id: zmapWindowItemFeatureSet_I.h,v 1.6 2009-04-20 11:06:08 rds Exp $
*------------------------------------------------------------------- *-------------------------------------------------------------------
*/ */
...@@ -57,7 +57,8 @@ typedef struct _zmapWindowItemFeatureSetDataStruct ...@@ -57,7 +57,8 @@ typedef struct _zmapWindowItemFeatureSetDataStruct
FooCanvasGroup *column_container; FooCanvasGroup *column_container;
GQuark style_id, unique_id; //GQuark style_id;
GQuark unique_id;
/* We keep the features sorted by position and size so we can cursor through them... */ /* We keep the features sorted by position and size so we can cursor through them... */
gboolean sorted ; gboolean sorted ;
......
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