+void BC_Theme::add_image_set(BC_ThemeSet *image_set)
+{
+ image_sets.append(image_set);
+ if( image_sets_start >= 0 ) {
+ printf("BC_Theme::add_image_set image_sets unsorted, lookups degraded\n");
+ image_sets_start = -1;
+ }
+}
+
+int BC_Theme::image_set_cmpr(const void *ap, const void *bp)
+{
+ BC_ThemeSet*a = *(BC_ThemeSet**)ap, *b = *(BC_ThemeSet**)bp;
+ return strcmp(a->title, b->title);
+}
+
+void BC_Theme::sort_image_sets()
+{
+ if( image_sets_start >= 0 ) return;
+ qsort(&image_sets[0], image_sets.size(), sizeof(image_sets[0]), image_set_cmpr);
+// skip over un-titled image sets
+ int i = 0, n = image_sets.size();
+ while( i<n && !image_sets[i]->title[0] ) ++i;
+ image_sets_start = i;
+}
+