60 lines
1.1 KiB
C++
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
|
|
|