#include <stdarg.h>
class BC_ThemeSet;
+class BC_ImageData;
+class BC_ImageData {
+public:
+ char *name;
+ unsigned char *data;
+ int used;
+ BC_ImageData(char *nm, unsigned char *dp) {
+ name = nm; data = dp; used = 0;
+ }
+};
class BC_Theme
const char *up_path,
const char *hi_path,
const char *dn_path,
- const char *title = 0);
+ const char *title);
VFrame** new_button4(const char *overlay_path,
const char *up_path,
const char *hi_path,
const char *dn_path,
const char *disabled_path,
- const char *title = 0);
+ const char *title);
VFrame** new_button(const char *overlay_path,
VFrame *up,
VFrame *hi,
VFrame *dn,
- const char *title = 0);
+ const char *title);
VFrame** new_toggle(const char *overlay_path,
const char *up_path,
const char *hi_path,
const char *checked_path,
const char *dn_path,
const char *checkedhi_path,
- const char *title = 0);
+ const char *title);
VFrame** new_toggle(const char *overlay_path,
VFrame *up,
VFrame *hi,
VFrame *checked,
VFrame *dn,
VFrame *checkedhi,
- const char *title = 0);
+ const char *title);
// The two main routines for creating images are new_image_set and new_image.
BC_ThemeSet* get_image_set_object(const char *title);
// Loads compressed data into temporary
- unsigned char* get_image_data(const char *title);
+ unsigned char* get_image_data(const char *title, int log_errs=1);
// Verify all images have been used after initialization.
void check_used();
-
-
-
+ void sort_image_sets();
void dump();
BC_Resources* get_resources();
// Decompressed image storage.
// Sets of images.
ArrayList<BC_ThemeSet*> image_sets;
+ BC_ThemeSet *last_image_set;
+ int image_sets_start;
+ static int image_set_cmpr(const void *ap, const void *bp);
+ void add_image_set(BC_ThemeSet *image_set);
// Compressed images are loaded in here.
- char *data_ptr;
- char *contents_ptr;
- ArrayList<char*> contents;
- ArrayList<unsigned char*> pointers;
- ArrayList<int> used;
- char *last_image;
- unsigned char *last_pointer;
+ ArrayList<int> data_items;
+ ArrayList<BC_ImageData *> images;
+ BC_ImageData *last_image_data;
+ static int images_cmpr(const void *ap, const void *bp);
};
class BC_ThemeSet