AmendHub

Download:

jcs

/

amend

/

amendments

/

157

browser+committer: Set TextView tabstop to calculated width


jcs made amendment 157 9 months ago
--- browser.c Fri Oct 25 13:28:38 2024 +++ browser.c Fri Nov 15 14:21:56 2024 @@ -142,6 +142,7 @@ browser_init(struct repo *repo) justfilename++; snprintf(title, sizeof(title), "%s: %s", PROGRAM_NAME, justfilename); CtoPstr(title); + browser->win = NewWindow(0L, &bounds, title, false, noGrowDocProc, (WindowPtr)-1L, true, 0); if (!browser->win) @@ -197,7 +198,11 @@ browser_init(struct repo *repo) SetRect(&padding, 2, 2, 2, 2); browser->diff_tv = TVNew(&bounds, &padding); TVLineWrap(browser->diff_tv, false); - TVTabStop(browser->diff_tv, settings.tabstop); + TextFont(DIFF_FONT); + TextFace(0); + TextSize(DIFF_FONT_SIZE); + TVTabStop(browser->diff_tv, (short)settings.tabstop * CharWidth(' ')); + EraseRect(&bounds); /* scrollbar for diff text */ bounds.right = browser->win->portRect.right - PADDING; @@ -397,8 +402,6 @@ void browser_show_amendment(struct browser *browser, struct repo_amendment *amendment) { - TVTabStop(browser->diff_tv, settings.tabstop); - TVClear(browser->diff_tv); TVUpdateScrollbar(browser->diff_tv, browser->diff_scroller); @@ -583,6 +586,7 @@ browser_update(struct focusable *focusable, EventRecor HLock(browser->diff_tv); r = (*(browser->diff_tv))->view; HUnlock(browser->diff_tv); + EraseRect(&r); TVUpdate(browser->diff_tv); InsetRect(&r, -1, -1); FrameRect(&r); --- committer.c Fri Oct 25 20:21:01 2024 +++ committer.c Thu Aug 14 17:00:11 2025 @@ -124,7 +124,10 @@ committer_init(struct browser *browser) SetRect(&padding, 2, 2, 2, 2); committer->diff_tv = TVNew(&bounds, &padding); TVLineWrap(committer->diff_tv, false); - TVTabStop(committer->diff_tv, settings.tabstop); + TextFont(DIFF_FONT); + TextFace(0); + TextSize(DIFF_FONT_SIZE); + TVTabStop(committer->diff_tv, (short)settings.tabstop * CharWidth(' ')); TVAutoCalc(committer->diff_tv, false); /* scrollbar for diff */ @@ -660,7 +663,7 @@ diff_output(const char *format, ...) void diff_append_line(char *str, size_t len) { - struct TVStyle style; + struct TVStyle style = { 0 }; if (committer_diffing == NULL) panic("diff_append_line without committer_diffing"); --- settings.c Thu Oct 24 10:53:50 2024 +++ settings.c Thu Oct 24 21:39:09 2024 @@ -26,7 +26,6 @@ #include "amend.h" #include "settings.h" -#include "tetab.h" #include "util.h" enum { @@ -58,10 +57,10 @@ struct setting { 1, 0, "unknown", SETTINGS_AUTHOR_ID, offsetof(struct settings, author), member_size(struct settings, author) }, - { "Tab Width", SETTING_USHORT, 0, + { "Tab Stop Width", SETTING_USHORT, 0, 1, 32, "4", - SETTINGS_TABWIDTH_ID, offsetof(struct settings, tabwidth), - member_size(struct settings, tabwidth) }, + SETTINGS_TABSTOP_ID, offsetof(struct settings, tabstop), + member_size(struct settings, tabstop) }, { "Max Amendments to Load", SETTING_USHORT, 0, 1, 65535, "100", SETTINGS_MAX_AMENDMENTS_ID, offsetof(struct settings, max_amendments), @@ -123,7 +122,6 @@ settings_load(void) FSClose(pb.ioParam.ioRefNum); settings = tsettings; - TETabWidth = settings.tabwidth; } void @@ -175,8 +173,6 @@ settings_save(struct settings *tsettings) tsettings->version = SETTINGS_VERSION; FSWrite(pb.ioParam.ioRefNum, &len, tsettings); FSClose(pb.ioParam.ioRefNum); - - TETabWidth = tsettings->tabwidth; return; --- settings.h Thu Oct 24 10:54:10 2024 +++ settings.h Thu Oct 24 21:38:41 2024 @@ -25,7 +25,7 @@ struct settings { short version; #define SETTINGS_VERSION 1 char author[32]; - short tabwidth; + short tabstop; short max_amendments; };