4coder/4ed_style.cpp

60 lines
1.1 KiB
C++

/*
* Mr. 4th Dimention - Allen Webster
*
* 28.08.2015
*
* Styles for 4coder
*
*/
// TOP
struct Style_Font{
Face_ID font_id;
};
struct Style{
char name_[24];
String name;
Style_Main_Data main;
};
internal void
style_copy(Style *dst, Style *src){
*dst = *src;
dst->name.str = dst->name_;
}
internal void
style_set_name(Style *style, String name){
i32 count = ArrayCount(style->name_);
style->name = make_string_cap(style->name_, 0, count - 1);
copy_ss(&style->name, name);
terminate_with_null(&style->name);
}
struct Style_Library{
Style styles[64];
i32 count, max;
};
internal void
style_set_colors(Style *style, Theme *theme){
for (u32 i = 0; i < Stag_COUNT; ++i){
u32 *color_ptr = style_index_by_tag(&style->main, i);
*color_ptr = theme->colors[i];
}
}
internal void
style_add(Style_Library *library, Theme *theme, String name){
if (library->count < library->max){
Style *style = &library->styles[library->count++];
style_set_colors(style, theme);
style_set_name(style, name);
}
}
// BOTTOM