Add:Core:Possibility to set layout by name
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Mon, 14 Dec 2009 20:03:59 +0000 (20:03 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Mon, 14 Dec 2009 20:03:59 +0000 (20:03 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@2868 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/attr_def.h
navit/navit.c

index d2ee03e..cd9ca4b 100644 (file)
@@ -270,6 +270,7 @@ ATTR(filter)
 ATTR(daylayout)
 ATTR(nightlayout)
 ATTR(xml_text)
+ATTR(layout_name)
 ATTR2(0x0003ffff,type_string_end)
 ATTR2(0x00040000,type_special_begin)
 ATTR(order)
index 7266c32..73975b4 100644 (file)
@@ -1630,6 +1630,7 @@ navit_set_attr_do(struct navit *this_, struct attr *attr, int init)
        GList *l;
        struct navit_vehicle *nv;
        struct attr active=(struct attr){attr_active,{(void *)0}};
+       struct layout *lay;
 
        switch (attr->type) {
        case attr_autozoom:
@@ -1669,6 +1670,19 @@ navit_set_attr_do(struct navit *this_, struct attr *attr, int init)
                        attr_updated=1;
                }
                break;
+       case attr_layout_name:
+               l=this_->layouts;
+               while (l) {
+                       lay=l->data;
+                       if (!strcmp(lay->name,attr->u.str)) {
+                               struct attr attr;
+                               attr.type=attr_layout;
+                               attr.u.layout=lay;
+                               return navit_set_attr_do(this_, &attr, init);
+                       }
+                       l=g_list_next(l);
+               }               
+               return 0;
        case attr_orientation:
                orient_old=this_->orientation;
                this_->orientation=attr->u.num;