From b883f6e8e8042d89ef1e97bdf609640b1636f32c Mon Sep 17 00:00:00 2001 From: Daniel Collin Date: Sat, 3 Nov 2012 22:28:13 +0100 Subject: [PATCH] Implemented new font for track names and also adjusting the track width if the names are too long and center the text if less than min track size Closes #9 --- ogl_editor/src/Editor.c | 73 +++++++++++------ ogl_editor/src/MinecraftiaFont.c | 172 +++++++++++++++++++++++++++++++++++++++ ogl_editor/src/MinecraftiaFont.h | 8 ++ ogl_editor/src/TrackView.c | 44 ++++++++-- ogl_editor/src/TrackView.h | 1 + 5 files changed, 266 insertions(+), 32 deletions(-) create mode 100644 ogl_editor/src/MinecraftiaFont.c create mode 100644 ogl_editor/src/MinecraftiaFont.h diff --git a/ogl_editor/src/Editor.c b/ogl_editor/src/Editor.c index 8c40fde..c449bd4 100644 --- a/ogl_editor/src/Editor.c +++ b/ogl_editor/src/Editor.c @@ -10,6 +10,7 @@ #include "rlog.h" #include "TrackData.h" #include "RemoteConnection.h" +#include "MinecraftiaFont.h" #include "../../sync/sync.h" #include "../../sync/base.h" #include "../../sync/data.h" @@ -62,22 +63,21 @@ static inline int getTrackCount() return s_editorData.trackData.syncData.num_tracks; } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -//static uint64_t fontIds[2]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Editor_create() { + int id; Emgui_create("foo"); - //fontIds[0] = Emgui_loadFont("/Users/daniel/Library/Fonts/MicroKnight_v1.0.ttf", 11.0f); - //fontIds[0] = Emgui_loadFont(FONT_PATH "Arial.ttf", 11.0f); - Emgui_setDefaultFont(); - + id = Emgui_loadFontBitmap(g_minecraftiaFont, g_minecraftiaFontSize, EMGUI_FONT_MEMORY, 32, 128, g_minecraftiaFontLayout); memset(&s_editorData, 0, sizeof(s_editorData)); RemoteConnection_createListner(); + + s_editorData.trackViewInfo.smallFontId = id; + + Emgui_setDefaultFont(); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -173,15 +173,10 @@ bool Editor_keyDown(int key, int modifiers) { int row = row_pos; - if (modifiers & EDITOR_KEY_ALT) - row += 8; - else - row++; - + row += modifiers & EDITOR_KEY_ALT ? 8 : 1; s_editorData.trackViewInfo.rowPos = row; RemoteConnection_sendSetRowCommand(row); - handled_key = true; break; } @@ -190,15 +185,9 @@ bool Editor_keyDown(int key, int modifiers) { int row = row_pos; - if (modifiers & EDITOR_KEY_ALT) - row -= 8; - else - row--; + row -= modifiers & EDITOR_KEY_ALT ? 8 : 1; - if (row < 0) - row = 0; - - if (modifiers & EDITOR_KEY_COMMAND) + if ((modifiers & EDITOR_KEY_COMMAND) || row < 0) row = 0; s_editorData.trackViewInfo.rowPos = row; @@ -211,7 +200,7 @@ bool Editor_keyDown(int key, int modifiers) case EMGUI_ARROW_LEFT: { - int track = getActiveTrack(); track--; + int track = getActiveTrack() - 1; if (modifiers & EDITOR_KEY_COMMAND) track = 0; @@ -244,7 +233,45 @@ bool Editor_keyDown(int key, int modifiers) default : handled_key = false; break; } - // do edit here + // Handle biasing of values + + if ((key >= '1' && key <= '9') && ((modifiers & EDITOR_KEY_CTRL) || (modifiers & EDITOR_KEY_ALT))) + { + struct sync_track* track = tracks[active_track]; + int row = s_editorData.trackViewInfo.rowPos; + + float bias_value = 0.0f; + + switch (key) + { + case '1' : bias_value = 0.01f; break; + case '2' : bias_value = 0.1f; break; + case '3' : bias_value = 1.0f; break; + case '4' : bias_value = 10.f; break; + case '5' : bias_value = 100.0f; break; + case '6' : bias_value = 1000.0f; break; + case '7' : bias_value = 10000.0f; break; + } + + bias_value = modifiers & EDITOR_KEY_ALT ? -bias_value : bias_value; + + int idx = key_idx_floor(track, row); + if (idx < 0) + return false; + + // copy and modify + struct track_key newKey = track->keys[idx]; + newKey.value += bias_value; + + sync_set_key(track, &newKey); + + RemoteConnection_sendSetKeyCommand(track->name, &newKey); + + Editor_update(); + return true; + } + + // do edit here and biasing here if ((key >= '0' && key <= '9') || key == '.' || key == '-') { diff --git a/ogl_editor/src/MinecraftiaFont.c b/ogl_editor/src/MinecraftiaFont.c new file mode 100644 index 0000000..8fb1d41 --- /dev/null +++ b/ogl_editor/src/MinecraftiaFont.c @@ -0,0 +1,172 @@ +#include +#include "MinecraftiaFont.h" + +int g_minecraftiaFontSize = 713; + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +char g_minecraftiaFont[] = +{ + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x02, 0x2e, 0x02, 0x00, 0x00, 0x02, + 0x90, 0x49, 0x44, 0x41, 0x54, 0x58, 0x85, 0xe5, 0x57, 0xc7, 0x76, 0x03, + 0x21, 0x0c, 0x1c, 0xed, 0xe3, 0xff, 0x7f, 0x79, 0x72, 0x40, 0x65, 0x44, + 0xb1, 0x9d, 0x72, 0x8b, 0x9c, 0xec, 0x62, 0x10, 0x6a, 0x23, 0x09, 0x0c, + 0x00, 0x20, 0x40, 0x92, 0x00, 0x40, 0x1f, 0x13, 0xf4, 0x05, 0xd0, 0x59, + 0x0e, 0xff, 0x04, 0x06, 0x00, 0x18, 0x68, 0x00, 0xe8, 0x6f, 0x73, 0x06, + 0x21, 0x82, 0x70, 0x16, 0xd0, 0x68, 0xb5, 0x32, 0x10, 0xd3, 0xb0, 0x39, + 0x40, 0xcc, 0xe4, 0xce, 0xd8, 0xe1, 0x73, 0x6d, 0x3f, 0x9e, 0x45, 0x93, + 0x3b, 0x92, 0x2c, 0x36, 0x3f, 0x3a, 0xcf, 0xcd, 0xbe, 0xa9, 0xa6, 0xf9, + 0x1d, 0x93, 0x1e, 0x0f, 0xf4, 0xf9, 0x0c, 0x00, 0x81, 0x11, 0xca, 0xc4, + 0x2c, 0x9f, 0xa2, 0x11, 0x30, 0x1a, 0x0d, 0x4c, 0x06, 0x1a, 0x60, 0xcd, + 0x80, 0x50, 0x3a, 0x15, 0xf1, 0x03, 0x14, 0x6a, 0x6d, 0x46, 0x8e, 0x4d, + 0xfb, 0xb7, 0xc9, 0xd4, 0xea, 0x09, 0xd2, 0x14, 0xc9, 0xb9, 0x4a, 0xb8, + 0xc9, 0xe9, 0x96, 0xec, 0x98, 0xba, 0xdd, 0xf6, 0xb2, 0x73, 0xcd, 0x17, + 0xa8, 0xc5, 0x01, 0x00, 0xe3, 0xfb, 0xa0, 0xc2, 0xbf, 0x1b, 0xe8, 0x4a, + 0xd4, 0x4d, 0x42, 0x03, 0x39, 0x5c, 0xb8, 0x5d, 0x84, 0x4c, 0xf1, 0x96, + 0xee, 0x55, 0xbe, 0x3a, 0x3d, 0xa1, 0xbf, 0x63, 0x73, 0xa4, 0x96, 0x8f, + 0x25, 0xe0, 0x6e, 0x3f, 0xf6, 0x94, 0xdb, 0x69, 0xa4, 0x44, 0xa3, 0x4d, + 0x8f, 0x4d, 0x3c, 0xd6, 0x71, 0xe4, 0x97, 0x83, 0x43, 0x18, 0x41, 0xfb, + 0xab, 0x3c, 0x48, 0x31, 0xf4, 0x60, 0x6c, 0xd9, 0x60, 0xa5, 0xbb, 0x72, + 0xa2, 0xf2, 0x40, 0x7b, 0x84, 0x62, 0x7f, 0x7b, 0x22, 0xc7, 0x9e, 0x07, + 0x3d, 0x21, 0x25, 0x06, 0xbb, 0xcd, 0x61, 0x8d, 0x2f, 0x8d, 0xf2, 0xc1, + 0x04, 0x27, 0x81, 0x86, 0x11, 0x56, 0x07, 0x3a, 0x7a, 0x92, 0x03, 0x34, + 0x42, 0x98, 0xa1, 0x26, 0x9b, 0xc2, 0x4a, 0x22, 0x6b, 0xb0, 0xba, 0xbc, + 0x91, 0xe9, 0x15, 0xba, 0x0f, 0x7d, 0xad, 0x49, 0x5b, 0xc8, 0xb4, 0x02, + 0x9d, 0x27, 0xbd, 0xac, 0xf4, 0x2d, 0xbf, 0x1d, 0x85, 0xa8, 0x52, 0x0b, + 0xd0, 0x7e, 0x4c, 0x11, 0x7e, 0x14, 0xd2, 0xbb, 0x35, 0x73, 0x95, 0xe5, + 0x79, 0x4e, 0x59, 0x61, 0x7a, 0x47, 0x5a, 0x9f, 0x68, 0xcf, 0x3c, 0x58, + 0xc2, 0xcb, 0x6b, 0x45, 0x07, 0x8f, 0xe5, 0x13, 0xc4, 0xac, 0x85, 0x80, + 0x51, 0x23, 0x7f, 0x2b, 0x41, 0x53, 0x79, 0xe6, 0x51, 0x1e, 0xbd, 0x41, + 0xc4, 0xd1, 0xf6, 0xbe, 0x8c, 0x83, 0x9e, 0x6e, 0xb7, 0x36, 0xae, 0x7d, + 0x74, 0xa2, 0xd1, 0xbf, 0xca, 0x99, 0xa6, 0xbd, 0x81, 0x90, 0x14, 0xa8, + 0x55, 0x44, 0x4a, 0x7f, 0x6e, 0xf0, 0x95, 0x56, 0xa0, 0x8e, 0x85, 0xec, + 0xcb, 0x79, 0x72, 0x22, 0xfb, 0x7c, 0x1c, 0x94, 0xc9, 0x31, 0xff, 0xc0, + 0x2e, 0xa3, 0x9f, 0x14, 0x8b, 0x00, 0xea, 0x62, 0x7d, 0xb6, 0xc4, 0x69, + 0x27, 0x0d, 0x41, 0x0c, 0x44, 0x95, 0x4b, 0xa5, 0x59, 0x06, 0x6a, 0xb9, + 0x8e, 0x84, 0xc3, 0x75, 0x52, 0xe3, 0x81, 0x99, 0xf0, 0x37, 0xb2, 0xec, + 0x26, 0xeb, 0x02, 0x4b, 0xcc, 0xb3, 0xad, 0xbe, 0xa0, 0x14, 0x67, 0x59, + 0xcd, 0x8b, 0x80, 0xbc, 0x8e, 0x1c, 0xb7, 0xcf, 0x34, 0x65, 0x6c, 0x86, + 0xb1, 0x82, 0xf8, 0x27, 0x54, 0x38, 0xcf, 0x0b, 0xca, 0x94, 0xef, 0x63, + 0xfa, 0x8a, 0xc0, 0xce, 0xc4, 0x92, 0x85, 0xd2, 0xa5, 0x13, 0x30, 0x37, + 0xe5, 0x7c, 0xbc, 0x1f, 0xd0, 0xce, 0x91, 0x6e, 0x1d, 0x78, 0x79, 0xd7, + 0xc5, 0x24, 0xaf, 0x2f, 0x71, 0xc7, 0x11, 0x88, 0xa3, 0x9d, 0x16, 0x4f, + 0xca, 0x6d, 0x97, 0x92, 0xc5, 0xfc, 0x9e, 0x8d, 0xe5, 0x8e, 0x32, 0x57, + 0x74, 0xa4, 0xa5, 0x9d, 0xdb, 0x99, 0x54, 0xf0, 0x3a, 0xd3, 0x2d, 0xf0, + 0x20, 0x03, 0x2b, 0x0a, 0x2f, 0xa9, 0x15, 0xc6, 0x9d, 0x65, 0xe9, 0xd6, + 0xcb, 0x5d, 0x74, 0xe1, 0x8f, 0xd5, 0xf3, 0x56, 0x8d, 0xd7, 0x52, 0xaa, + 0x59, 0xff, 0x47, 0xad, 0xad, 0xb4, 0xa9, 0xa5, 0x5f, 0x1b, 0x28, 0xe6, + 0xa9, 0x67, 0x8c, 0x47, 0x8d, 0xa5, 0xf7, 0x20, 0x8f, 0x2a, 0x6d, 0xec, + 0xf5, 0xab, 0x64, 0xc9, 0x86, 0x3c, 0x86, 0x21, 0x27, 0xaa, 0xb2, 0x65, + 0x8e, 0xac, 0x3d, 0xf8, 0x0d, 0xbd, 0x82, 0x81, 0xea, 0x47, 0xd6, 0x84, + 0x63, 0x40, 0x92, 0x18, 0xf0, 0xfb, 0x49, 0xf0, 0xe7, 0xcd, 0x2c, 0x7e, + 0x5b, 0xb4, 0xcb, 0x0e, 0x85, 0x3b, 0xf6, 0x48, 0x5e, 0x36, 0x5b, 0x28, + 0xea, 0x79, 0xb7, 0xb1, 0x81, 0xa4, 0x02, 0x3e, 0x6d, 0x34, 0x63, 0x9f, + 0x9a, 0x2e, 0x88, 0x63, 0xef, 0x04, 0x48, 0x3b, 0xe7, 0xfd, 0x96, 0xf0, + 0x99, 0x05, 0xbf, 0xb9, 0x34, 0xff, 0x63, 0xfa, 0x02, 0x69, 0x60, 0x73, + 0x1f, 0x6d, 0x77, 0x33, 0x94, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82 +}; + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BMFont was used to generate the data (and regexp magic to generate the C layout) + +EmguiFontLayout g_minecraftiaFontLayout[] = +{ + { 32, 60, 50, 3, 1, -1, 11, 5 }, + { 33, 62, 32, 1, 7, 0, 3, 2 }, + { 34, 35, 53, 4, 3, 0, 3, 5 }, + { 35, 31, 0, 5, 7, 0, 3, 6 }, + { 36, 37, 0, 5, 7, 0, 3, 6 }, + { 37, 43, 0, 5, 7, 0, 3, 6 }, + { 38, 49, 0, 5, 7, 0, 3, 6 }, + { 39, 40, 53, 2, 3, 0, 3, 3 }, + { 40, 47, 32, 4, 7, 0, 3, 5 }, + { 41, 42, 32, 4, 7, 0, 3, 5 }, + { 42, 30, 53, 4, 3, 0, 5, 5 }, + { 43, 0, 49, 5, 5, 0, 4, 6 }, + { 44, 62, 40, 1, 3, 0, 8, 2 }, + { 45, 58, 53, 5, 1, 0, 6, 6 }, + { 46, 50, 53, 1, 2, 0, 8, 2 }, + { 47, 42, 8, 5, 7, 0, 3, 6 }, + { 48, 0, 9, 5, 7, 0, 3, 6 }, + { 49, 54, 8, 5, 7, 0, 3, 6 }, + { 50, 0, 17, 5, 7, 0, 3, 6 }, + { 51, 6, 16, 5, 7, 0, 3, 6 }, + { 52, 12, 16, 5, 7, 0, 3, 6 }, + { 53, 18, 16, 5, 7, 0, 3, 6 }, + { 54, 13, 0, 5, 7, 0, 3, 6 }, + { 55, 30, 16, 5, 7, 0, 3, 6 }, + { 56, 36, 16, 5, 7, 0, 3, 6 }, + { 57, 42, 16, 5, 7, 0, 3, 6 }, + { 58, 54, 40, 1, 6, 0, 4, 2 }, + { 59, 24, 40, 1, 7, 0, 4, 2 }, + { 60, 52, 32, 4, 7, 0, 3, 5 }, + { 61, 18, 54, 5, 4, 0, 5, 6 }, + { 62, 5, 41, 4, 7, 0, 3, 5 }, + { 63, 12, 24, 5, 7, 0, 3, 6 }, + { 64, 6, 0, 6, 7, 0, 3, 7 }, + { 65, 18, 24, 5, 7, 0, 3, 6 }, + { 66, 48, 16, 5, 7, 0, 3, 6 }, + { 67, 30, 24, 5, 7, 0, 3, 6 }, + { 68, 36, 24, 5, 7, 0, 3, 6 }, + { 69, 42, 24, 5, 7, 0, 3, 6 }, + { 70, 48, 24, 5, 7, 0, 3, 6 }, + { 71, 54, 24, 5, 7, 0, 3, 6 }, + { 72, 0, 33, 5, 7, 0, 3, 6 }, + { 73, 60, 8, 3, 7, 0, 3, 4 }, + { 74, 24, 24, 5, 7, 0, 3, 6 }, + { 75, 6, 32, 5, 7, 0, 3, 6 }, + { 76, 12, 32, 5, 7, 0, 3, 6 }, + { 77, 18, 32, 5, 7, 0, 3, 6 }, + { 78, 24, 32, 5, 7, 0, 3, 6 }, + { 79, 18, 8, 5, 7, 0, 3, 6 }, + { 80, 6, 24, 5, 7, 0, 3, 6 }, + { 81, 24, 16, 5, 7, 0, 3, 6 }, + { 82, 36, 8, 5, 7, 0, 3, 6 }, + { 83, 30, 8, 5, 7, 0, 3, 6 }, + { 84, 24, 8, 5, 7, 0, 3, 6 }, + { 85, 12, 8, 5, 7, 0, 3, 6 }, + { 86, 55, 0, 5, 7, 0, 3, 6 }, + { 87, 25, 0, 5, 7, 0, 3, 6 }, + { 88, 30, 32, 5, 7, 0, 3, 6 }, + { 89, 36, 32, 5, 7, 0, 3, 6 }, + { 90, 19, 0, 5, 7, 0, 3, 6 }, + { 91, 60, 16, 3, 7, 0, 3, 4 }, + { 92, 6, 8, 5, 7, 0, 3, 6 }, + { 93, 20, 40, 3, 7, 0, 3, 4 }, + { 94, 24, 54, 5, 3, 0, 3, 6 }, + { 95, 52, 53, 5, 1, 0, 9, 6 }, + { 96, 60, 46, 2, 3, 0, 3, 3 }, + { 97, 48, 47, 5, 5, 0, 5, 6 }, + { 98, 48, 8, 5, 7, 0, 3, 6 }, + { 99, 18, 48, 5, 5, 0, 5, 6 }, + { 100, 54, 16, 5, 7, 0, 3, 6 }, + { 101, 56, 40, 5, 5, 0, 5, 6 }, + { 102, 0, 41, 4, 7, 0, 3, 5 }, + { 103, 30, 40, 5, 6, 0, 5, 6 }, + { 104, 0, 25, 5, 7, 0, 3, 6 }, + { 105, 26, 40, 1, 7, 0, 3, 2 }, + { 106, 0, 0, 5, 8, 0, 3, 6 }, + { 107, 57, 32, 4, 7, 0, 3, 5 }, + { 108, 61, 0, 2, 7, 0, 3, 3 }, + { 109, 0, 55, 5, 5, 0, 5, 6 }, + { 110, 6, 55, 5, 5, 0, 5, 6 }, + { 111, 12, 54, 5, 5, 0, 5, 6 }, + { 112, 36, 40, 5, 6, 0, 5, 6 }, + { 113, 42, 40, 5, 6, 0, 5, 6 }, + { 114, 6, 49, 5, 5, 0, 5, 6 }, + { 115, 12, 48, 5, 5, 0, 5, 6 }, + { 116, 60, 24, 3, 7, 0, 3, 4 }, + { 117, 24, 48, 5, 5, 0, 5, 6 }, + { 118, 30, 47, 5, 5, 0, 5, 6 }, + { 119, 36, 47, 5, 5, 0, 5, 6 }, + { 120, 42, 47, 5, 5, 0, 5, 6 }, + { 121, 48, 40, 5, 6, 0, 5, 6 }, + { 122, 54, 47, 5, 5, 0, 5, 6 }, + { 123, 15, 40, 4, 7, 0, 3, 5 }, + { 124, 28, 40, 1, 7, 0, 3, 2 }, + { 125, 10, 40, 4, 7, 0, 3, 5 }, + { 126, 43, 53, 6, 2, 0, 3, 7 }, +}; diff --git a/ogl_editor/src/MinecraftiaFont.h b/ogl_editor/src/MinecraftiaFont.h new file mode 100644 index 0000000..72258ae --- /dev/null +++ b/ogl_editor/src/MinecraftiaFont.h @@ -0,0 +1,8 @@ +#pragma once + +#include + +extern EmguiFontLayout g_minecraftiaFontLayout[]; +extern char g_minecraftiaFont[]; +extern int g_minecraftiaFontSize; + diff --git a/ogl_editor/src/TrackView.c b/ogl_editor/src/TrackView.c index 6983e86..4a2efaf 100644 --- a/ogl_editor/src/TrackView.c +++ b/ogl_editor/src/TrackView.c @@ -10,6 +10,7 @@ #include "../../sync/track.h" const int font_size = 8; +const int min_track_size = 100; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -50,15 +51,38 @@ static void printRowNumbers(int x, int y, int rowCount, int rowOffset, int rowSp /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -static void renderChannel(struct sync_track* track, int startX, int startY, int startPos, int endPos, int endSizeY) +static int renderChannel(const TrackViewInfo* viewInfo, struct sync_track* track, + int startX, int startY, int startPos, int endPos, int endSizeY) { uint y; - - uint32_t color = Emgui_color32(40, 40, 40, 255); - Emgui_drawBorder(color, color, startX, startY - font_size * 2, 160, endSizeY); + int size = min_track_size; if (track) - Emgui_drawText(track->name, startX + 4, startY - font_size, Emgui_color32(0xff, 0xff, 0xff, 0xff)); + { + int text_size; + int x_adjust = 0; + + Emgui_setFont(viewInfo->smallFontId); + + text_size = Emgui_getTextSize(track->name) + 4; + + rlog(R_INFO, "t %s size %d\n", track->name, text_size); + + // if text is smaller than min size we center the text + + if (text_size < min_track_size) + x_adjust = (min_track_size - text_size) / 2; + else + size = text_size + 1; + + rlog(R_INFO, "t %s size %d adjust %d\n", track->name, text_size, x_adjust); + + Emgui_drawText(track->name, (startX + 3) + x_adjust, startY - 12, Emgui_color32(0xff, 0xff, 0xff, 0xff)); + Emgui_setDefaultFont(); + } + + uint32_t color = Emgui_color32(40, 40, 40, 255); + Emgui_drawBorder(color, color, startX, startY - font_size * 2, size, endSizeY); int y_offset = startY; @@ -105,6 +129,8 @@ static void renderChannel(struct sync_track* track, int startX, int startY, int if (y_offset > (endSizeY + font_size/2)) break; } + + return size; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -151,7 +177,7 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData) if (syncData->num_tracks == 0) { - renderChannel(0, 40 + (i * 64), adjust_top_size, y_pos_row, y_pos_row + end_row, y_end_border); + renderChannel(0, 0, 40 + (i * 64), adjust_top_size, y_pos_row, y_pos_row + end_row, y_end_border); uint32_t color = Emgui_color32(127, 127, 127, 56); Emgui_fill(color, 0, mid_screen_y + adjust_top_size, viewInfo->windowSizeX, font_size + 2); return; @@ -175,17 +201,17 @@ void TrackView_render(const TrackViewInfo* viewInfo, TrackData* trackData) for (i = start_track; i < end_track; ++i) { - renderChannel(syncData->tracks[i], x_pos, adjust_top_size, y_pos_row, y_pos_row + end_row, y_end_border); + int size = renderChannel(viewInfo, syncData->tracks[i], x_pos, adjust_top_size, y_pos_row, y_pos_row + end_row, y_end_border); if (sel_track == i) { - Emgui_fill(Emgui_color32(0xff, 0xff, 0x00, 0x80), x_pos, mid_screen_y + adjust_top_size, 160, font_size + 1); + Emgui_fill(Emgui_color32(0xff, 0xff, 0x00, 0x80), x_pos, mid_screen_y + adjust_top_size, size, font_size + 1); if (trackData->editText) Emgui_drawText(trackData->editText, x_pos, mid_screen_y + adjust_top_size, Emgui_color32(255, 255, 255, 255)); } - x_pos += 160; + x_pos += size; } uint32_t color = Emgui_color32(127, 127, 127, 56); diff --git a/ogl_editor/src/TrackView.h b/ogl_editor/src/TrackView.h index 1a0cb21..7b8cee0 100644 --- a/ogl_editor/src/TrackView.h +++ b/ogl_editor/src/TrackView.h @@ -11,6 +11,7 @@ typedef struct TrackViewInfo int windowSizeX; int windowSizeY; int rowPos; + int smallFontId; } TrackViewInfo;