]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/layout.cpp
Convert all list containers to vectors
[libs/gltk.git] / source / layout.cpp
index 7fcbf103b085808fe34fa0d45f67b54fd5442251..4d6b6643a3c630bb99e5c54a25c02e5eb30fff9d 100644 (file)
@@ -182,8 +182,8 @@ void Layout::remove_widget(Widget &wdg)
                {
                        for(auto k=s->constraints.begin(); k!=s->constraints.end(); )
                        {
-                               if(&k->target==*i)
-                                       s->constraints.erase(k++);
+                               if(k->target==*i)
+                                       k = s->constraints.erase(k);
                                else
                                        ++k;
                        }
@@ -225,7 +225,7 @@ void Layout::update_slot_indices()
                        }
 
                        for(const Constraint &c: s->constraints)
-                               if(c.target.index>s->index && (c.type&SLACK))
+                               if(c.target->index>s->index && (c.type&SLACK))
                                        ++n_slack_vars[c.type&1];
                }
 }
@@ -253,7 +253,7 @@ void Layout::create_constraint(Widget &src, ConstraintType type, Widget &tgt, in
        Slot &tgt_slot = get_slot_for_widget(tgt);
 
        for(const Constraint &c: src_slot.constraints)
-               if(c.type==type && &c.target==&tgt_slot)
+               if(c.type==type && c.target==&tgt_slot)
                        return;
 
        src_slot.constraints.push_back(Constraint(type, tgt_slot));
@@ -423,7 +423,7 @@ void Layout::solve_constraints(int dir, SolveMode mode)
                /* Add rows for user-defined constraints.  Constraints are always added
                in pairs, so it's only necessary to create a row for one half. */
                for(const Constraint &c: s->constraints)
-                       if(c.target.index>s->index && (c.type&1)==dir)
+                       if(c.target->index>s->index && (c.type&1)==dir)
                        {
                                LinearProgram::Row row = linprog.add_row();
                                float polarity = ((c.type&SELF_DIM) ? -1 : 1);
@@ -433,9 +433,9 @@ void Layout::solve_constraints(int dir, SolveMode mode)
                                if(c.type&SELF_DIM)
                                        row[s->index*5+1] = polarity*dim_weight;
                                if(c.type&TARGET_POS)
-                                       row[c.target.index*5] = -polarity;
+                                       row[c.target->index*5] = -polarity;
                                if(c.type&TARGET_DIM)
-                                       row[c.target.index*5+1] = -polarity*dim_weight;
+                                       row[c.target->index*5+1] = -polarity*dim_weight;
                                if(c.type&SPACING)
                                        row.back() = (c.spacing>=0 ? c.spacing : this->*(ptrs.spacing));
                                if(c.type&SLACK)
@@ -470,7 +470,7 @@ void Layout::solve_constraints(int dir, SolveMode mode)
 
 Layout::Constraint::Constraint(ConstraintType t, Slot &s):
        type(t),
-       target(s)
+       target(&s)
 { }