diff --git a/ogl_editor/src/Editor.c b/ogl_editor/src/Editor.c index d23cac1..b0477a3 100644 --- a/ogl_editor/src/Editor.c +++ b/ogl_editor/src/Editor.c @@ -260,6 +260,7 @@ void Editor_create() s_editorData.trackViewInfo.smallFontId = id; s_editorData.trackData.startRow = 0; s_editorData.trackData.endRow = 10000; + s_editorData.trackData.highlightRowStep = 8; Emgui_setDefaultFont(); } @@ -1363,6 +1364,8 @@ static void onTab() void Editor_menuEvent(int menuItem) { + int highlightRowStep = getTrackData()->highlightRowStep; + switch (menuItem) { case EDITOR_MENU_ENTER_CURRENT_V : @@ -1438,8 +1441,8 @@ void Editor_menuEvent(int menuItem) // View case EDITOR_MENU_PLAY : onPlay(); break; - case EDITOR_MENU_ROWS_UP : onRowStep(-8, NO_SELECTION); break; - case EDITOR_MENU_ROWS_DOWN : onRowStep(8, NO_SELECTION); break; + case EDITOR_MENU_ROWS_UP : onRowStep(-highlightRowStep , NO_SELECTION); break; + case EDITOR_MENU_ROWS_DOWN : onRowStep(highlightRowStep , NO_SELECTION); break; case EDITOR_MENU_PREV_BOOKMARK : onBookmarkDir(ARROW_UP, NO_SELECTION); break; case EDITOR_MENU_NEXT_BOOKMARK : onBookmarkDir(ARROW_DOWN, NO_SELECTION); break; case EDITOR_MENU_FIRST_TRACK : onTrackSide(ARROW_LEFT, true, NO_SELECTION); break; @@ -1505,6 +1508,7 @@ static bool doEditing(int key) bool Editor_keyDown(int key, int keyCode, int modifiers) { enum Selection selection = modifiers & EMGUI_KEY_SHIFT ? DO_SELECTION : NO_SELECTION; + int highlightRowStep = getTrackData()->highlightRowStep; if (Emgui_hasKeyboardFocus()) { @@ -1556,7 +1560,7 @@ bool Editor_keyDown(int key, int keyCode, int modifiers) else if (modifiers & EMGUI_KEY_COMMAND) onBookmarkDir(ARROW_UP, selection); else if (modifiers & EMGUI_KEY_ALT) - onRowStep(-8, selection); + onRowStep(-highlightRowStep , selection); else onRowStep(-1, selection); @@ -1570,7 +1574,7 @@ bool Editor_keyDown(int key, int keyCode, int modifiers) else if (modifiers & EMGUI_KEY_COMMAND) onBookmarkDir(ARROW_DOWN, selection); else if (modifiers & EMGUI_KEY_ALT) - onRowStep(8, selection); + onRowStep(highlightRowStep, selection); else onRowStep(1, selection); break; diff --git a/ogl_editor/src/TrackData.h b/ogl_editor/src/TrackData.h index 4471df1..bd2c4da 100644 --- a/ogl_editor/src/TrackData.h +++ b/ogl_editor/src/TrackData.h @@ -73,6 +73,7 @@ typedef struct TrackData int trackCount; int startRow; int endRow; + int highlightRowStep; char* editText; } TrackData; diff --git a/ogl_editor/src/TrackView.c b/ogl_editor/src/TrackView.c index 4fe1a04..1668861 100644 --- a/ogl_editor/src/TrackView.c +++ b/ogl_editor/src/TrackView.c @@ -598,7 +598,7 @@ bool TrackView_render(TrackViewInfo* viewInfo, TrackData* trackData) x_pos = TrackView_getStartOffset() + -viewInfo->startPixel; - printRowNumbers(2, adjust_top_size, end_row, y_pos_row, font_size, 8, y_end_border); + printRowNumbers(2, adjust_top_size, end_row, y_pos_row, font_size, trackData->highlightRowStep, y_end_border); Emgui_drawBorder(border_color, border_color, 48, info.startY - font_size * 4, viewInfo->windowSizeX - 80, (info.endSizeY - info.startY) + 40); Emgui_setLayer(1); diff --git a/ogl_editor/src/loadsave.c b/ogl_editor/src/loadsave.c index 19fb4d9..91fc899 100644 --- a/ogl_editor/src/loadsave.c +++ b/ogl_editor/src/loadsave.c @@ -22,6 +22,7 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) free(trackData->bookmarks); trackData->bookmarkCount = 0; + trackData->highlightRowStep = 8; // Traverse the tracks node data @@ -55,12 +56,16 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) { const char* start_row = mxmlElementGetAttr(node, "startRow"); const char* end_row = mxmlElementGetAttr(node, "endRow"); + const char* hlrow_step = mxmlElementGetAttr(node, "highlightRowStep"); if (start_row) trackData->startRow = atoi(start_row); if (end_row) trackData->endRow = atoi(end_row); + + if (hlrow_step) + trackData->highlightRowStep = atoi(hlrow_step); } if (!strcmp("track", element_name)) @@ -312,6 +317,7 @@ int LoadSave_saveRocketXML(const text_t* path, TrackData* trackData) mxmlElementSetAttr(tracks, "rows", "10000"); setElementInt(tracks, "startRow", "%d", trackData->startRow); setElementInt(tracks, "endRow", "%d", trackData->endRow); + setElementInt(tracks, "highlightRowStep", "%d", trackData->highlightRowStep); for (p = 0; p < sync_data->num_tracks; ++p) {