+ // cerr << "label: " << label << " sim: " << fixed << setprecision(3) << similarity_scores[i] << " num: " << numbers_in_labels[i] << endl;
+ previous_label = label;
+ }
+
+
+ // cerr << "most similar: " << most_similar << ", least similar: " << least_similar << endl;
+ float similarity_threshold;
+
+ if (most_similar > 1.0) {
+ similarity_threshold = default_similarity_threshold;
+ } else {
+ similarity_threshold = most_similar - (1 - default_similarity_threshold);
+ }
+
+ // Now iterate over the list of controls to display them, placing an
+ // HSeparator between controls of less than a certain similarity, and
+ // starting a new column when necessary.
+
+ i = 0;
+ for (vector<ControlUI*>::iterator cuip = cui_controls_list.begin(); cuip != cui_controls_list.end(); ++cuip, ++i) {
+
+ ControlUI* cui = *cuip;
+
+ if (!is_scrollable) {
+ x++;
+ }
+
+ if (x > max_controls_per_column || similarity_scores[i] <= similarity_threshold) {
+ if (x > min_controls_per_column) {
+ frame = manage (new Frame);
+ frame->set_name ("BaseFrame");
+ frame->set_label (_("Controls"));
+ box = manage (new VBox);
+ box->set_border_width (5);
+ box->set_spacing (1);
+ frame->add (*box);
+ hpacker.pack_start(*frame, true, true);
+ x = 0;
+ } else {
+ HSeparator *split = new HSeparator();
+ split->set_size_request(-1, 5);
+ box->pack_start(*split, false, false, 0);
+ }
+
+ }
+ box->pack_start (*cui, false, false);
+ }
+
+ if (is_scrollable) {
+ prefheight = 30 * i;