Add:Core:osd_get and set_attr functions based on patch by dandor
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 31 Jul 2011 21:30:22 +0000 (21:30 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 31 Jul 2011 21:30:22 +0000 (21:30 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4668 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/osd.c
navit/navit/osd.h

index 9766f09..ec38b99 100644 (file)
@@ -33,6 +33,7 @@
 struct osd {
        struct osd_methods meth;
        struct osd_priv *priv;
+       struct attr** osd_attrs;
 };
 
 static GHashTable *osd_hash = NULL;
@@ -61,10 +62,17 @@ osd_new(struct attr *parent, struct attr **attrs)
                g_hash_table_insert(osd_hash, g_strdup(attr->u.str), o);
        }
 
+       o->osd_attrs = attr_list_dup(attrs);
 
         return o;
 }
 
+int
+osd_get_attr(struct osd *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter)
+{
+       return attr_generic_get_attr(this_->osd_attrs, NULL, type, attr, NULL);
+}
+
 struct osd*
 osd_get_osd_by_name(char *name)
 {
@@ -74,6 +82,7 @@ osd_get_osd_by_name(char *name)
 int
 osd_set_attr(struct osd *osd, struct attr* attr)
 {
+       osd->osd_attrs=attr_generic_set_attr(osd->osd_attrs,attr);
        if(osd && osd->meth.set_attr) {
                osd->meth.set_attr(osd->priv, attr);
        }
index 65ea1e6..5696f4a 100644 (file)
@@ -70,6 +70,7 @@ void osd_std_resize(struct osd_item *item);
 void osd_std_draw(struct osd_item *item);
 struct osd* osd_get_osd_by_name(char *name);
 int osd_set_attr(struct osd *osd, struct attr* attr);
+int osd_get_attr(struct osd *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter);
 /* end of prototypes */
 
 #endif