- OK();
- {
- Array<Horizontal_align_item_content> content;
- for (int i =0; i < item_l_arr_.size(); i++)
- content.push (
- Horizontal_align_item_content (
- item_l_arr_[i], priority_i_arr_[i]));
- content.sort (Horizontal_align_item_content::compare);
- item_l_arr_.clear();
- priority_i_arr_.clear();
- for (int i =0; i < content.size(); i++)
- {
- item_l_arr_.push (content[i].item_l_);
- priority_i_arr_.push (content[i].priority_i_);
- }
- }
-
- Array<Interval> dims;
- Real total =0;
- for (int i =0; i < item_l_arr_.size(); i++)
- {
-
- Interval item_width= item_l_arr_[i]->width();
- if (item_width.empty_b())
- {
- item_width = Interval (0,0);
- }
- dims.push (item_width);
- total += item_width.length();
- }
-
- Real where_f= total * (align_i_-1.0)/2.0;
- Real center_dx_f = 0;
- for ( int i=0 ; i < item_l_arr_.size(); i++)
- {
- Real dx = where_f -dims[i][-1];
- item_l_arr_[i]->translate (dx , X_AXIS);
- if (item_l_arr_[i] == center_l_)
- center_dx_f = where_f;
- where_f += dims[i].length();
- }
- if (center_dx_f && !align_i_)
- for ( int i=0 ; i < item_l_arr_.size(); i++)
- item_l_arr_[i]->translate (- center_dx_f , X_AXIS);
-