diff --git a/source/global/version.bas b/source/global/version.bas index ccd0585bb..d268370ab 100644 --- a/source/global/version.bas +++ b/source/global/version.bas @@ -8,6 +8,8 @@ IF _FILEEXISTS("internal/version.txt") THEN versionfile = FREEFILE OPEN "internal/version.txt" FOR INPUT AS #versionfile LINE INPUT #versionfile, AutoBuildMsg + AutoBuildMsg = _TRIM$(AutoBuildMsg) + IF LEFT$(AutoBuildMsg, 9) <> "From git " THEN AutoBuildMsg = "" CLOSE #versionfile END IF diff --git a/source/ide/ide_global.bas b/source/ide/ide_global.bas index e1c27f980..204a7e1e4 100644 --- a/source/ide/ide_global.bas +++ b/source/ide/ide_global.bas @@ -159,6 +159,7 @@ DIM SHARED ActiveINCLUDELinkFile AS STRING DIM SHARED HideCurrentLineHighlight AS _BYTE, ShowLineNumbers AS _BYTE DIM SHARED SearchMenuEnableQuickNav AS INTEGER DIM SHARED idegotobox_LastLineNum AS LONG, maxLineNumberLength AS LONG +DIM SHARED versionStringStatus$, lineNumberStatus$ '-------------------------------------------------------------------------------- TYPE idedbptype diff --git a/source/ide/ide_methods.bas b/source/ide/ide_methods.bas index 72ba8304e..5bf9e6cd4 100644 --- a/source/ide/ide_methods.bas +++ b/source/ide/ide_methods.bas @@ -132,6 +132,7 @@ FUNCTION ide2 (ignore) STATIC wholeword.selecty1, wholeword.idecy STATIC ForceResize, IDECompilationRequested AS _BYTE STATIC QuickNavHover AS _BYTE, FindFieldHover AS _BYTE + STATIC VersionInfoHover AS _BYTE, LineNumberHover AS _BYTE ignore = ignore 'just to clear warnings of unused variables @@ -789,6 +790,7 @@ FUNCTION ide2 (ignore) 'status bar COLOR 0, 3: LOCATE idewy + idesubwindow, 1: PRINT SPACE$(idewx); + UpdateIdeInfo q = idevbar(idewx, idewy - 3, 3, 1, 1) q = idevbar(idewx, 3, idewy - 8, 1, 1) q = idehbar(2, idewy - 5, idewx - 2, 1, 1) @@ -1308,11 +1310,10 @@ FUNCTION ide2 (ignore) PCOPY 3, 0 - IF mB THEN + IF mCLICK THEN ideselect = 0 idecy = QuickNavHistory(QuickNavTotal) QuickNavTotal = QuickNavTotal - 1 - _DELAY .2 GOTO waitforinput END IF ELSE @@ -1358,6 +1359,51 @@ FUNCTION ide2 (ignore) END IF END IF + IF mY = idewy + idesubwindow AND mX >= idewx - 22 - LEN(versionStringStatus$) AND mX < idewx - 22 THEN + 'Highlight Version Number + IF VersionInfoHover = 0 THEN + LOCATE idewy + idesubwindow, idewx - 22 - LEN(versionStringStatus$) + COLOR 13, 6 + PRINT versionStringStatus$; + PCOPY 3, 0 + VersionInfoHover = -1 + END IF + IF mCLICK THEN PCOPY 0, 2: GOTO helpabout + ELSE + IF VersionInfoHover = -1 THEN + 'Restore "Find" bg + VersionInfoHover = 0 + LOCATE idewy + idesubwindow, idewx - 22 - LEN(versionStringStatus$) + COLOR 2, 3 + PRINT versionStringStatus$; + PCOPY 3, 0 + END IF + END IF + + IF mY = idewy + idesubwindow AND mX >= idewx - 20 AND mX =< idewx THEN + 'Highlight line number + IF LineNumberHover = 0 THEN + COLOR 13, 6 + LOCATE idewy + idesubwindow, idewx - 20: PRINT lineNumberStatus$; + PCOPY 3, 0 + LineNumberHover = -1 + END IF + IF mCLICK THEN + PCOPY 0, 2 + idegotobox + PCOPY 3, 0: SCREEN , , 3, 0: idewait4mous: idewait4alt + GOTO ideloop + END IF + ELSE + IF LineNumberHover = -1 THEN + 'Restore "Find" bg + LineNumberHover = 0 + COLOR 0, 3 + LOCATE idewy + idesubwindow, idewx - 20: PRINT lineNumberStatus$; + PCOPY 3, 0 + END IF + END IF + IF os$ = "WIN" OR MacOSX = 1 THEN IF _WINDOWHASFOCUS THEN @@ -5013,6 +5059,7 @@ FUNCTION ide2 (ignore) END IF IF menu$(m, s) = "#About..." THEN + helpabout: PCOPY 2, 0 m$ = "QB64 Version " + Version$ + CHR$(10) + BuildNum$ IF LEN(AutoBuildMsg$) THEN m$ = m$ + CHR$(10) + AutoBuildMsg$ @@ -5997,6 +6044,8 @@ FUNCTION ide2 (ignore) q = idevbar(idewx, 3, idewy - 8, 1, 1) q = idehbar(2, idewy - 5, idewx - 2, 1, 1) + UpdateIdeInfo + GOSUB UpdateTitleOfMainWindow DEF SEG = 0 @@ -8710,16 +8759,17 @@ SUB ideshowtext 'update cursor pos in status bar COLOR 0, 3 - LOCATE idewy + idesubwindow, idewx - 20: PRINT " : "; + a$ = SPACE$(10) + b$ = "" + RSET a$ = LTRIM$(STR$(idecy)) IF idecx < 100000 THEN - LOCATE idewy + idesubwindow, idewx - 9 - a$ = LTRIM$(STR$(idecx)) - PRINT a$; - IF cc <> -1 THEN PRINT "(" + str2$(cc) + ")"; + b$ = SPACE$(10) + c$ = LTRIM$(STR$(idecx)) + IF cc <> -1 THEN c$ = c$ + "(" + str2$(cc) + ")" + LSET b$ = c$ END IF - a$ = LTRIM$(STR$(idecy)) - LOCATE idewy + idesubwindow, (idewx - 10) - LEN(a$) - PRINT a$; + lineNumberStatus$ = a$ + ":" + b$ + LOCATE idewy + idesubwindow, idewx - 20: PRINT lineNumberStatus$; SCREEN , , 0, 0: LOCATE idecy - idesy + 3, maxLineNumberLength + idecx - idesx + 2: SCREEN , , 3, 0 @@ -14581,6 +14631,15 @@ SUB UpdateIdeInfo IF LEN(a$) < (idewx - 20) THEN a$ = a$ + SPACE$((idewx - 20) - LEN(a$)) COLOR 0, 3: LOCATE idewy + idesubwindow, 2 PRINT a$; + + COLOR 2, 3 + IF LEN(versionStringStatus$) = 0 THEN + versionStringStatus$ = "v" + Version$ + IF LEN(AutoBuildMsg$) THEN versionStringStatus$ = versionStringStatus$ + MID$(AutoBuildMsg$, _INSTRREV(AutoBuildMsg$, " ")) + END IF + LOCATE idewy + idesubwindow, idewx - 22 - LEN(versionStringStatus$) + PRINT versionStringStatus$; + PCOPY 3, 0 END SUB