Fix:Core:Made pitch configurable
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Wed, 25 Mar 2009 09:53:28 +0000 (09:53 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Wed, 25 Mar 2009 09:53:28 +0000 (09:53 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@2171 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/attr_def.h
navit/gui/internal/gui_internal.c
navit/navit.c

index f60d942..2476621 100644 (file)
@@ -105,6 +105,9 @@ ATTR(maxspeed)
 ATTR(cdf_histsize)
 ATTR(message_maxage)
 ATTR(message_maxnum)
+ATTR(pitch)
+ATTR(roll)
+ATTR(yaw)
 ATTR2(0x00028000,type_boolean_begin)
 /* boolean */
 ATTR(overwrite)
index b590cf7..8b6acfa 100644 (file)
@@ -253,6 +253,7 @@ struct gui_priv {
        int flags;
        int cols;
        struct attr osd_configuration;
+       int pitch;
 };
 
 
@@ -2799,7 +2800,7 @@ static void
 gui_internal_cmd_3d(struct gui_priv *this, struct widget *wm, void *data)
 {
        struct transformation *trans=navit_get_trans(this->nav);
-       transform_set_pitch(trans, 20);
+       transform_set_pitch(trans, this->pitch);
        this->redraw=1;
 }
 
@@ -3724,6 +3725,11 @@ static struct gui_priv * gui_internal_new(struct navit *nav, struct gui_methods
              this->cols=attr->u.num;
        if( (attr=attr_search(attrs,NULL,attr_osd_configuration)))
              this->osd_configuration=*attr;
+
+       if( (attr=attr_search(attrs,NULL,attr_pitch)))
+             this->pitch=attr->u.num;
+       else
+               this->pitch=20;
        this->data.priv=this;
        this->data.gui=&gui_internal_methods_ext;
        this->data.widget=&gui_internal_widget_methods;
index e6528bf..aaf17a3 100644 (file)
@@ -134,6 +134,7 @@ struct navit {
        int use_mousewheel;
        struct messagelist *messages;
        struct callback *resize_callback,*button_callback,*motion_callback;
+       int pitch;
 };
 
 struct gui *main_loop_gui;
@@ -1568,6 +1569,13 @@ navit_set_attr_do(struct navit *this_, struct attr *attr, int init)
                attr_updated=(this_->osd_configuration != attr->u.num);
                this_->osd_configuration=attr->u.num;
                break;
+       case attr_pitch:
+               attr_updated=(this_->pitch != attr->u.num);
+               this_->pitch=attr->u.num;
+               transform_set_pitch(this_->trans, this_->pitch);
+               if (!init && attr_updated && this_->ready == 3)
+                       navit_draw(this_);
+               break;
        case attr_projection:
                if(this_->trans && transform_get_projection(this_->trans) != attr->u.projection) {
                        navit_projection_set(this_, attr->u.projection);