mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 11:25:08 +00:00
Add preset color schemes and ability to create user defined schemes.
This commit is contained in:
parent
9eb7c14c38
commit
3045f6d7f5
4 changed files with 335 additions and 27 deletions
|
@ -325,6 +325,7 @@ IF LoadedIDESettings = 0 THEN
|
||||||
IF INSTR(_OS$, "WIN") THEN WriteConfigSetting "'[GENERAL SETTINGS]", "AllowIndependentSettings", "FALSE"
|
IF INSTR(_OS$, "WIN") THEN WriteConfigSetting "'[GENERAL SETTINGS]", "AllowIndependentSettings", "FALSE"
|
||||||
WriteConfigSetting "'[GENERAL SETTINGS]", "BackupSize", "100 'in MB"
|
WriteConfigSetting "'[GENERAL SETTINGS]", "BackupSize", "100 'in MB"
|
||||||
WriteConfigSetting "'[GENERAL SETTINGS]", "DebugInfo", "FALSE 'INTERNAL VARIABLE USE ONLY!! DO NOT MANUALLY CHANGE!"
|
WriteConfigSetting "'[GENERAL SETTINGS]", "DebugInfo", "FALSE 'INTERNAL VARIABLE USE ONLY!! DO NOT MANUALLY CHANGE!"
|
||||||
|
WriteConfigSetting "'[IDE COLOR SETTINGS]", "SchemeID", "1"
|
||||||
WriteConfigSetting "'[IDE COLOR SETTINGS]", "BackgroundColor", "_RGB32(0,0,170)"
|
WriteConfigSetting "'[IDE COLOR SETTINGS]", "BackgroundColor", "_RGB32(0,0,170)"
|
||||||
WriteConfigSetting "'[IDE COLOR SETTINGS]", "CommentColor", "_RGB32(85,255,255)"
|
WriteConfigSetting "'[IDE COLOR SETTINGS]", "CommentColor", "_RGB32(85,255,255)"
|
||||||
WriteConfigSetting "'[IDE COLOR SETTINGS]", "MetaCommandColor", "_RGB32(85,255,85)"
|
WriteConfigSetting "'[IDE COLOR SETTINGS]", "MetaCommandColor", "_RGB32(85,255,85)"
|
||||||
|
|
|
@ -3,5 +3,5 @@ DIM SHARED BuildNum AS STRING
|
||||||
Version$ = "1.000"
|
Version$ = "1.000"
|
||||||
'BuildNum format is YYYYMMDD/id, where id is a ever-increasing
|
'BuildNum format is YYYYMMDD/id, where id is a ever-increasing
|
||||||
'integer. If you make a change, update the date and increase the id!
|
'integer. If you make a change, update the date and increase the id!
|
||||||
BuildNum$ = "20160731/38"
|
BuildNum$ = "20160802/39"
|
||||||
|
|
||||||
|
|
|
@ -196,6 +196,8 @@ DIM SHARED menus AS INTEGER, idecontextualmenuID AS INTEGER
|
||||||
DIM SHARED ideeditmenuID AS INTEGER
|
DIM SHARED ideeditmenuID AS INTEGER
|
||||||
DIM SHARED OptionsMenuID AS INTEGER, OptionsMenuSwapMouse AS INTEGER, OptionsMenuPasteCursor AS INTEGER
|
DIM SHARED OptionsMenuID AS INTEGER, OptionsMenuSwapMouse AS INTEGER, OptionsMenuPasteCursor AS INTEGER
|
||||||
DIM SHARED RunMenuID AS INTEGER, RunMenuSaveExeWithSource AS INTEGER, brackethighlight AS INTEGER
|
DIM SHARED RunMenuID AS INTEGER, RunMenuSaveExeWithSource AS INTEGER, brackethighlight AS INTEGER
|
||||||
|
DIM SHARED PresetColorSchemes AS INTEGER, TotalColorSchemes AS INTEGER, ColorSchemes$(0)
|
||||||
|
DIM SHARED LastValidColorScheme AS INTEGER
|
||||||
DIM SHARED menubar$, idecontextualSearch$
|
DIM SHARED menubar$, idecontextualSearch$
|
||||||
DIM SHARED ideundocombo, ideundocombochr, idenoundo, idemergeundo
|
DIM SHARED ideundocombo, ideundocombochr, idenoundo, idemergeundo
|
||||||
DIM SHARED idealthighlight, ideentermenu
|
DIM SHARED idealthighlight, ideentermenu
|
||||||
|
|
|
@ -10964,10 +10964,11 @@ FUNCTION idechoosecolorsbox
|
||||||
'-------- end of generic dialog box header --------
|
'-------- end of generic dialog box header --------
|
||||||
|
|
||||||
'-------- init --------
|
'-------- init --------
|
||||||
|
LoadColorSchemes
|
||||||
_PALETTECOLOR 5, &HFF00A800, 0 'Original green may have been changed by the Help System, so 5 is now green
|
_PALETTECOLOR 5, &HFF00A800, 0 'Original green may have been changed by the Help System, so 5 is now green
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
idepar p, 70, 14, "IDE Colors"
|
idepar p, 70, 17, "IDE Colors"
|
||||||
|
|
||||||
l$ = CHR$(16) + "Normal Text"
|
l$ = CHR$(16) + "Normal Text"
|
||||||
l$ = l$ + sep + " Strings"
|
l$ = l$ + sep + " Strings"
|
||||||
|
@ -10975,10 +10976,9 @@ FUNCTION idechoosecolorsbox
|
||||||
l$ = l$ + sep + " Comments"
|
l$ = l$ + sep + " Comments"
|
||||||
l$ = l$ + sep + " Background"
|
l$ = l$ + sep + " Background"
|
||||||
l$ = l$ + sep + " Current line background"
|
l$ = l$ + sep + " Current line background"
|
||||||
|
|
||||||
i = i + 1
|
i = i + 1
|
||||||
o(i).typ = 2
|
o(i).typ = 2
|
||||||
o(i).y = 1
|
o(i).y = 4
|
||||||
o(i).w = 27: o(i).h = 7
|
o(i).w = 27: o(i).h = 7
|
||||||
o(i).txt = idenewtxt(l$)
|
o(i).txt = idenewtxt(l$)
|
||||||
o(i).sel = 1
|
o(i).sel = 1
|
||||||
|
@ -10990,7 +10990,7 @@ FUNCTION idechoosecolorsbox
|
||||||
i = i + 1
|
i = i + 1
|
||||||
o(i).typ = 1
|
o(i).typ = 1
|
||||||
o(i).x = 63
|
o(i).x = 63
|
||||||
o(i).y = 2
|
o(i).y = 5
|
||||||
o(i).txt = idenewtxt(a2$)
|
o(i).txt = idenewtxt(a2$)
|
||||||
o(i).v1 = LEN(a2$)
|
o(i).v1 = LEN(a2$)
|
||||||
o(i).issel = -1
|
o(i).issel = -1
|
||||||
|
@ -11000,7 +11000,7 @@ FUNCTION idechoosecolorsbox
|
||||||
i = i + 1
|
i = i + 1
|
||||||
o(i).typ = 1
|
o(i).typ = 1
|
||||||
o(i).x = 63
|
o(i).x = 63
|
||||||
o(i).y = 5
|
o(i).y = 8
|
||||||
o(i).txt = idenewtxt(a2$)
|
o(i).txt = idenewtxt(a2$)
|
||||||
o(i).v1 = LEN(a2$)
|
o(i).v1 = LEN(a2$)
|
||||||
o(i).issel = -1
|
o(i).issel = -1
|
||||||
|
@ -11010,7 +11010,7 @@ FUNCTION idechoosecolorsbox
|
||||||
i = i + 1
|
i = i + 1
|
||||||
o(i).typ = 1
|
o(i).typ = 1
|
||||||
o(i).x = 63
|
o(i).x = 63
|
||||||
o(i).y = 8
|
o(i).y = 11
|
||||||
o(i).txt = idenewtxt(a2$)
|
o(i).txt = idenewtxt(a2$)
|
||||||
o(i).v1 = LEN(a2$)
|
o(i).v1 = LEN(a2$)
|
||||||
o(i).issel = -1
|
o(i).issel = -1
|
||||||
|
@ -11018,15 +11018,46 @@ FUNCTION idechoosecolorsbox
|
||||||
|
|
||||||
i = i + 1
|
i = i + 1
|
||||||
o(i).typ = 4 'check box
|
o(i).typ = 4 'check box
|
||||||
o(i).y = 11
|
o(i).y = 14
|
||||||
o(i).nam = idenewtxt("#Highlight brackets")
|
o(i).nam = idenewtxt("#Highlight brackets")
|
||||||
IF brackethighlight THEN o(i).sel = 1
|
IF brackethighlight THEN o(i).sel = 1
|
||||||
|
|
||||||
i = i + 1
|
i = i + 1
|
||||||
o(i).typ = 3
|
o(i).typ = 3
|
||||||
o(i).y = 14
|
o(i).y = 17
|
||||||
o(i).txt = idenewtxt("#OK" + sep + "Restore #defaults" + sep + "#Cancel")
|
o(i).txt = idenewtxt("#OK" + sep + "Restore #defaults" + sep + "#Cancel")
|
||||||
o(i).dft = 1
|
o(i).dft = 1
|
||||||
|
|
||||||
|
result = ReadConfigSetting("SchemeID", value$)
|
||||||
|
SchemeID = VAL(value$)
|
||||||
|
IF SchemeID > TotalColorSchemes THEN SchemeID = 0
|
||||||
|
|
||||||
|
IF SchemeID = 0 THEN
|
||||||
|
a2$ = "User-defined"
|
||||||
|
ELSE
|
||||||
|
'Validate this scheme first
|
||||||
|
FoundPipe = INSTR(ColorSchemes$(SchemeID), "|")
|
||||||
|
IF FoundPipe > 0 THEN
|
||||||
|
IF LEN(MID$(ColorSchemes$(SchemeID), FoundPipe + 1)) = 54 THEN
|
||||||
|
a2$ = LEFT$(ColorSchemes$(SchemeID), FoundPipe - 1)
|
||||||
|
ELSE
|
||||||
|
SchemeID = 0
|
||||||
|
a2$ = "User-defined"
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
SchemeID = 0
|
||||||
|
a2$ = "User-defined"
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
i = i + 1
|
||||||
|
o(i).typ = 1
|
||||||
|
o(i).x = 9
|
||||||
|
o(i).y = 2
|
||||||
|
o(i).w = 35
|
||||||
|
o(i).nam = idenewtxt("#Scheme")
|
||||||
|
o(i).txt = idenewtxt(a2$)
|
||||||
|
o(i).v1 = LEN(a2$)
|
||||||
|
|
||||||
'-------- end of init --------
|
'-------- end of init --------
|
||||||
|
|
||||||
'-------- generic init --------
|
'-------- generic init --------
|
||||||
|
@ -11052,6 +11083,26 @@ FUNCTION idechoosecolorsbox
|
||||||
'-------- end of generic display dialog box & objects --------
|
'-------- end of generic display dialog box & objects --------
|
||||||
|
|
||||||
'-------- custom display changes --------
|
'-------- custom display changes --------
|
||||||
|
'Color scheme selection arrows:
|
||||||
|
LOCATE p.y + 2, p.x + 2
|
||||||
|
IF mY = p.y + 2 AND mX >= p.x + 2 AND mX <= p.x + 4 THEN COLOR 15, 8 ELSE COLOR 0, 7
|
||||||
|
IF SchemeID <= 1 THEN COLOR 8, 7
|
||||||
|
PRINT " " + CHR$(17) + " ";
|
||||||
|
IF mY = p.y + 2 AND mX >= p.x + 5 AND mX <= p.x + 7 THEN COLOR 15, 8 ELSE COLOR 0, 7
|
||||||
|
IF SchemeID = LastValidColorScheme THEN COLOR 8, 7
|
||||||
|
PRINT " " + CHR$(16) + " ";
|
||||||
|
|
||||||
|
'Color scheme Save and Erase buttons:
|
||||||
|
LOCATE p.y + 2, p.x + 57
|
||||||
|
IF mY = p.y + 2 AND mX >= p.x + 57 AND mX <= p.x + 62 THEN COLOR 15, 8 ELSE COLOR 0, 7
|
||||||
|
IF SchemeID > 0 AND SchemeID <= PresetColorSchemes THEN COLOR 8, 7 'Disable if preset scheme
|
||||||
|
PRINT " Save ";
|
||||||
|
IF mY = p.y + 2 AND mX >= p.x + 63 AND mX <= p.x + 67 THEN COLOR 15, 8 ELSE COLOR 0, 7
|
||||||
|
IF SchemeID <= PresetColorSchemes THEN COLOR 8, 7 'Disable if preset scheme or unsaved user-defined
|
||||||
|
PRINT " Erase ";
|
||||||
|
|
||||||
|
COLOR , 7
|
||||||
|
|
||||||
_PALETTECOLOR 1, IDEBackgroundColor, 0
|
_PALETTECOLOR 1, IDEBackgroundColor, 0
|
||||||
_PALETTECOLOR 6, IDEBackgroundColor2, 0
|
_PALETTECOLOR 6, IDEBackgroundColor2, 0
|
||||||
_PALETTECOLOR 11, IDECommentColor, 0
|
_PALETTECOLOR 11, IDECommentColor, 0
|
||||||
|
@ -11059,34 +11110,34 @@ FUNCTION idechoosecolorsbox
|
||||||
_PALETTECOLOR 14, IDEQuoteColor, 0
|
_PALETTECOLOR 14, IDEQuoteColor, 0
|
||||||
_PALETTECOLOR 13, IDETextColor, 0
|
_PALETTECOLOR 13, IDETextColor, 0
|
||||||
|
|
||||||
LOCATE p.y + 2, p.x + 33: PRINT "R: ";
|
COLOR 0: LOCATE p.y + 5, p.x + 33: PRINT "R: ";
|
||||||
COLOR 4: PRINT STRING$(26, 196);
|
COLOR 4: PRINT STRING$(26, 196);
|
||||||
slider$ = CHR$(197)
|
slider$ = CHR$(197)
|
||||||
T = VAL(idetxt(o(2).txt)): r = ((T / 255) * 26)
|
T = VAL(idetxt(o(2).txt)): r = ((T / 255) * 26)
|
||||||
IF T = 0 THEN slider$ = CHR$(195)
|
IF T = 0 THEN slider$ = CHR$(195)
|
||||||
IF T = 255 THEN slider$ = CHR$(180)
|
IF T = 255 THEN slider$ = CHR$(180)
|
||||||
LOCATE p.y + 2, p.x + 35 + r: PRINT slider$;
|
LOCATE p.y + 5, p.x + 35 + r: PRINT slider$;
|
||||||
|
|
||||||
COLOR 0: LOCATE p.y + 5, p.x + 33: PRINT "G: ";
|
COLOR 0: LOCATE p.y + 8, p.x + 33: PRINT "G: ";
|
||||||
COLOR 5: PRINT STRING$(26, 196);
|
COLOR 5: PRINT STRING$(26, 196);
|
||||||
slider$ = CHR$(197)
|
slider$ = CHR$(197)
|
||||||
T = VAL(idetxt(o(3).txt)): r = ((T / 255) * 26)
|
T = VAL(idetxt(o(3).txt)): r = ((T / 255) * 26)
|
||||||
IF T = 0 THEN slider$ = CHR$(195)
|
IF T = 0 THEN slider$ = CHR$(195)
|
||||||
IF T = 255 THEN slider$ = CHR$(180)
|
IF T = 255 THEN slider$ = CHR$(180)
|
||||||
LOCATE p.y + 5, p.x + 35 + r: PRINT slider$;
|
LOCATE p.y + 8, p.x + 35 + r: PRINT slider$;
|
||||||
|
|
||||||
COLOR 0: LOCATE p.y + 8, p.x + 33: PRINT "B: ";
|
COLOR 0: LOCATE p.y + 11, p.x + 33: PRINT "B: ";
|
||||||
COLOR 9: PRINT STRING$(26, 196);
|
COLOR 9: PRINT STRING$(26, 196);
|
||||||
slider$ = CHR$(197)
|
slider$ = CHR$(197)
|
||||||
T = VAL(idetxt(o(4).txt)): r = ((T / 255) * 26)
|
T = VAL(idetxt(o(4).txt)): r = ((T / 255) * 26)
|
||||||
IF T = 0 THEN slider$ = CHR$(195)
|
IF T = 0 THEN slider$ = CHR$(195)
|
||||||
IF T = 255 THEN slider$ = CHR$(180)
|
IF T = 255 THEN slider$ = CHR$(180)
|
||||||
LOCATE p.y + 8, p.x + 35 + r: PRINT slider$;
|
LOCATE p.y + 11, p.x + 35 + r: PRINT slider$;
|
||||||
|
|
||||||
COLOR 7, 1
|
COLOR 7, 1
|
||||||
LOCATE p.y + 10, p.x + 36: PRINT CHR$(218); STRING$(25, 196);
|
LOCATE p.y + 13, p.x + 36: PRINT CHR$(218); STRING$(25, 196);
|
||||||
LOCATE p.y + 11, p.x + 36: PRINT CHR$(179); SPACE$(25);
|
LOCATE p.y + 14, p.x + 36: PRINT CHR$(179); SPACE$(25);
|
||||||
LOCATE p.y + 12, p.x + 36: PRINT CHR$(179); SPACE$(25);
|
LOCATE p.y + 15, p.x + 36: PRINT CHR$(179); SPACE$(25);
|
||||||
|
|
||||||
SELECT CASE SelectedITEM
|
SELECT CASE SelectedITEM
|
||||||
CASE 1: COLOR 13, 1: SampleText$ = "CLS: PRINT a$" 'Normal text
|
CASE 1: COLOR 13, 1: SampleText$ = "CLS: PRINT a$" 'Normal text
|
||||||
|
@ -11097,10 +11148,10 @@ FUNCTION idechoosecolorsbox
|
||||||
CASE 6: COLOR 6, 6: SampleText$ = SPACE$(25) 'Current line background
|
CASE 6: COLOR 6, 6: SampleText$ = SPACE$(25) 'Current line background
|
||||||
END SELECT
|
END SELECT
|
||||||
|
|
||||||
LOCATE p.y + 11, p.x + 37: PRINT SampleText$;
|
LOCATE p.y + 14, p.x + 37: PRINT SampleText$;
|
||||||
IF SelectedITEM = 2 THEN
|
IF SelectedITEM = 2 THEN
|
||||||
COLOR 13, 1
|
COLOR 13, 1
|
||||||
LOCATE p.y + 11, p.x + 37: PRINT "PRINT";
|
LOCATE p.y + 14, p.x + 37: PRINT "PRINT";
|
||||||
END IF
|
END IF
|
||||||
'-------- end of custom display changes --------
|
'-------- end of custom display changes --------
|
||||||
|
|
||||||
|
@ -11117,6 +11168,7 @@ FUNCTION idechoosecolorsbox
|
||||||
IF mCLICK THEN mousedown = 1: change = 1
|
IF mCLICK THEN mousedown = 1: change = 1
|
||||||
IF mRELEASE THEN mouseup = 1: change = 1
|
IF mRELEASE THEN mouseup = 1: change = 1
|
||||||
IF mB THEN change = 1
|
IF mB THEN change = 1
|
||||||
|
IF mX <> prev.mX OR mY <> prev.mY THEN change = 1: prev.mX = mX: prev.mY = mY
|
||||||
alt = KALT: IF alt <> oldalt THEN change = 1
|
alt = KALT: IF alt <> oldalt THEN change = 1
|
||||||
oldalt = alt
|
oldalt = alt
|
||||||
|
|
||||||
|
@ -11196,40 +11248,212 @@ FUNCTION idechoosecolorsbox
|
||||||
|
|
||||||
'specific post controls
|
'specific post controls
|
||||||
IF focus <> PrevFocus THEN
|
IF focus <> PrevFocus THEN
|
||||||
'Always start with RGB values selected upon getting focus
|
'Always start with RGB values AND scheme name selected upon getting focus
|
||||||
PrevFocus = focus
|
PrevFocus = focus
|
||||||
|
IF (focus >= 2 AND focus <= 4) OR focus = 9 THEN
|
||||||
|
IF focus = 9 THEN tfocus = 7 ELSE tfocus = focus
|
||||||
|
o(tfocus).v1 = LEN(idetxt(o(tfocus).txt))
|
||||||
|
IF o(tfocus).v1 > 0 THEN o(tfocus).issel = -1
|
||||||
|
o(tfocus).sx1 = 0
|
||||||
|
IF (tfocus >= 2 AND tfocus <= 4) THEN prevTB.value$ = idetxt(o(tfocus).txt)
|
||||||
|
END IF
|
||||||
|
ELSEIF focus = PrevFocus THEN
|
||||||
|
'Check if new values have been entered into textboxes
|
||||||
IF focus >= 2 AND focus <= 4 THEN
|
IF focus >= 2 AND focus <= 4 THEN
|
||||||
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
IF prevTB.value$ <> idetxt(o(focus).txt) THEN
|
||||||
IF o(focus).v1 > 0 THEN o(focus).issel = -1
|
GOSUB NewUserScheme
|
||||||
o(focus).sx1 = 0
|
prevTB.value$ = idetxt(o(focus).txt)
|
||||||
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mB AND mY = p.y + 2 AND mX >= p.x + 35 AND mX <= p.x + 35 + 26 THEN
|
'Save and Erase color scheme (Buttons):
|
||||||
|
IF (SchemeID = 0 OR SchemeID > PresetColorSchemes) AND mB THEN
|
||||||
|
IF mY = p.y + 2 AND mX >= p.x + 57 AND mX <= p.x + 62 THEN
|
||||||
|
'Save
|
||||||
|
IF SchemeID = 0 THEN
|
||||||
|
SaveNew:
|
||||||
|
SchemeString$ = LTRIM$(RTRIM$(idetxt(o(7).txt)))
|
||||||
|
IF LEN(SchemeString$) = 0 THEN SchemeString$ = "User-defined"
|
||||||
|
'Find the next free scheme index
|
||||||
|
i = 0
|
||||||
|
DO
|
||||||
|
i = i + 1
|
||||||
|
result = ReadConfigSetting("Scheme" + str2$(i) + "$", value$)
|
||||||
|
IF value$ = "" OR value$ = "0" THEN EXIT DO
|
||||||
|
LOOP
|
||||||
|
|
||||||
|
'Build scheme string
|
||||||
|
SchemeString$ = SchemeString$ + "|"
|
||||||
|
FOR j = 1 to 6
|
||||||
|
SELECT CASE j
|
||||||
|
CASE 1: CurrentColor~& = IDETextColor
|
||||||
|
CASE 2: CurrentColor~& = IDEQuoteColor
|
||||||
|
CASE 3: CurrentColor~& = IDEMetaCommandColor
|
||||||
|
CASE 4: CurrentColor~& = IDECommentColor
|
||||||
|
CASE 5: CurrentColor~& = IDEBackgroundColor
|
||||||
|
CASE 6: CurrentColor~& = IDEBackgroundColor2
|
||||||
|
END SELECT
|
||||||
|
|
||||||
|
r$ = str2$(_RED32(CurrentColor~&)): r$ = STRING$(3 - LEN(r$), "0") + r$
|
||||||
|
g$ = str2$(_GREEN32(CurrentColor~&)): g$ = STRING$(3 - LEN(g$), "0") + g$
|
||||||
|
b$ = str2$(_BLUE32(CurrentColor~&)): b$ = STRING$(3 - LEN(b$), "0") + b$
|
||||||
|
SchemeString$ = SchemeString$ + r$ + g$ + b$
|
||||||
|
NEXT j
|
||||||
|
|
||||||
|
'Save user scheme
|
||||||
|
WriteConfigSetting "'[IDE COLOR SCHEMES]", "Scheme" + str2$(i) + "$", SchemeString$
|
||||||
|
LoadColorSchemes
|
||||||
|
SchemeID = PresetColorSchemes + i
|
||||||
|
ChangedScheme = -1
|
||||||
|
GOTO ApplyScheme
|
||||||
|
ELSE
|
||||||
|
FoundPipe = INSTR(ColorSchemes$(SchemeID), "|")
|
||||||
|
SchemeString$ = LEFT$(ColorSchemes$(SchemeID), FoundPipe - 1)
|
||||||
|
|
||||||
|
IF SchemeString$ <> LTRIM$(RTRIM$(idetxt(o(7).txt))) THEN
|
||||||
|
'User wants to save the current SchemeID under a different name
|
||||||
|
GOTO SaveNew
|
||||||
|
END IF
|
||||||
|
|
||||||
|
i = SchemeID - PresetColorSchemes
|
||||||
|
SchemeString$ = SchemeString$ + "|"
|
||||||
|
|
||||||
|
'Build scheme string
|
||||||
|
FOR j = 1 to 6
|
||||||
|
SELECT CASE j
|
||||||
|
CASE 1: CurrentColor~& = IDETextColor
|
||||||
|
CASE 2: CurrentColor~& = IDEQuoteColor
|
||||||
|
CASE 3: CurrentColor~& = IDEMetaCommandColor
|
||||||
|
CASE 4: CurrentColor~& = IDECommentColor
|
||||||
|
CASE 5: CurrentColor~& = IDEBackgroundColor
|
||||||
|
CASE 6: CurrentColor~& = IDEBackgroundColor2
|
||||||
|
END SELECT
|
||||||
|
|
||||||
|
r$ = str2$(_RED32(CurrentColor~&)): r$ = STRING$(3 - LEN(r$), "0") + r$
|
||||||
|
g$ = str2$(_GREEN32(CurrentColor~&)): g$ = STRING$(3 - LEN(g$), "0") + g$
|
||||||
|
b$ = str2$(_BLUE32(CurrentColor~&)): b$ = STRING$(3 - LEN(b$), "0") + b$
|
||||||
|
SchemeString$ = SchemeString$ + r$ + g$ + b$
|
||||||
|
NEXT j
|
||||||
|
|
||||||
|
'Save user scheme
|
||||||
|
WriteConfigSetting "'[IDE COLOR SCHEMES]", "Scheme" + str2$(i) + "$", SchemeString$
|
||||||
|
LoadColorSchemes
|
||||||
|
SchemeID = PresetColorSchemes + i
|
||||||
|
ChangedScheme = -1
|
||||||
|
GOTO ApplyScheme
|
||||||
|
END IF
|
||||||
|
o(7).v1 = LEN(idetxt(o(7).txt))
|
||||||
|
o(7).issel = -1
|
||||||
|
o(7).sx1 = 0
|
||||||
|
ELSEIF mY = p.y + 2 AND mX >= p.x + 63 AND mX <= p.x + 67 THEN
|
||||||
|
'Erase
|
||||||
|
IF SchemeID > PresetColorSchemes THEN
|
||||||
|
'No confirmation will be asked;
|
||||||
|
i = SchemeID - PresetColorSchemes
|
||||||
|
WriteConfigSetting "'[IDE COLOR SCHEMES]", "Scheme" + str2$(i) + "$", "0"
|
||||||
|
LoadColorSchemes
|
||||||
|
SchemeID = SchemeID - 1
|
||||||
|
ChangedScheme = -1
|
||||||
|
SchemeArrow = -1
|
||||||
|
GOTO ValidateScheme
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
|
'Scheme selection arrows:
|
||||||
|
ChangedScheme = 0
|
||||||
|
SchemeArrow = 0
|
||||||
|
IF mB AND mY = p.y + 2 AND mX >= p.x + 2 AND mX <= p.x + 4 THEN
|
||||||
|
SchemeArrow = -1
|
||||||
|
IF SchemeID = 0 THEN
|
||||||
|
ChangedScheme = -1
|
||||||
|
GOTO LoadDefaultScheme
|
||||||
|
ELSE
|
||||||
|
IF SchemeID > 1 THEN SchemeID = SchemeID - 1: ChangedScheme = -1
|
||||||
|
END IF
|
||||||
|
ELSEIF mB AND mY = p.y + 2 AND mX >= p.x + 5 AND mX <= p.x + 7 THEN
|
||||||
|
SchemeArrow = 1
|
||||||
|
IF SchemeID = 0 THEN
|
||||||
|
ChangedScheme = -1
|
||||||
|
GOTO LoadDefaultScheme
|
||||||
|
ELSE
|
||||||
|
IF SchemeID < TotalColorSchemes THEN SchemeID = SchemeID + 1: ChangedScheme = -1
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF ChangedScheme THEN
|
||||||
|
'Validate this scheme first
|
||||||
|
IF SchemeArrow = 0 THEN SchemeArrow = 1
|
||||||
|
ValidateScheme:
|
||||||
|
FoundPipe = INSTR(ColorSchemes$(SchemeID), "|")
|
||||||
|
IF FoundPipe > 0 THEN
|
||||||
|
IF LEN(MID$(ColorSchemes$(SchemeID), FoundPipe + 1)) = 54 THEN
|
||||||
|
a2$ = LEFT$(ColorSchemes$(SchemeID), FoundPipe - 1)
|
||||||
|
ELSE
|
||||||
|
SchemeID = SchemeID + SchemeArrow
|
||||||
|
IF SchemeID > TotalColorSchemes THEN SchemeID = TotalColorSchemes: SchemeArrow = -1
|
||||||
|
IF SchemeID < 1 THEN SchemeID = 1
|
||||||
|
GOTO ValidateScheme
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
SchemeID = SchemeID + SchemeArrow
|
||||||
|
IF SchemeID > TotalColorSchemes THEN SchemeID = TotalColorSchemes: SchemeArrow = -1
|
||||||
|
IF SchemeID < 1 THEN SchemeID = 1
|
||||||
|
GOTO ValidateScheme
|
||||||
|
END IF
|
||||||
|
ApplyScheme:
|
||||||
|
FoundPipe = INSTR(ColorSchemes$(SchemeID), "|")
|
||||||
|
idetxt(o(7).txt) = LEFT$(ColorSchemes$(SchemeID), FoundPipe - 1)
|
||||||
|
o(7).v1 = LEN(idetxt(o(7).txt))
|
||||||
|
o(7).issel = -1
|
||||||
|
o(7).sx1 = 0
|
||||||
|
ColorData$ = RIGHT$(ColorSchemes$(SchemeID), 54)
|
||||||
|
i = 1
|
||||||
|
r$ = MID$(ColorData$, i, 3): i = i + 3: g$ = MID$(ColorData$, i, 3): i = i + 3: b$ = MID$(ColorData$, i, 3): i = i + 3
|
||||||
|
IDETextColor = _RGB32(VAL(r$), VAL(g$), VAL(b$))
|
||||||
|
r$ = MID$(ColorData$, i, 3): i = i + 3: g$ = MID$(ColorData$, i, 3): i = i + 3: b$ = MID$(ColorData$, i, 3): i = i + 3
|
||||||
|
IDEQuoteColor = _RGB32(VAL(r$), VAL(g$), VAL(b$))
|
||||||
|
r$ = MID$(ColorData$, i, 3): i = i + 3: g$ = MID$(ColorData$, i, 3): i = i + 3: b$ = MID$(ColorData$, i, 3): i = i + 3
|
||||||
|
IDEMetaCommandColor = _RGB32(VAL(r$), VAL(g$), VAL(b$))
|
||||||
|
r$ = MID$(ColorData$, i, 3): i = i + 3: g$ = MID$(ColorData$, i, 3): i = i + 3: b$ = MID$(ColorData$, i, 3): i = i + 3
|
||||||
|
IDECommentColor = _RGB32(VAL(r$), VAL(g$), VAL(b$))
|
||||||
|
r$ = MID$(ColorData$, i, 3): i = i + 3: g$ = MID$(ColorData$, i, 3): i = i + 3: b$ = MID$(ColorData$, i, 3): i = i + 3
|
||||||
|
IDEBackgroundColor = _RGB32(VAL(r$), VAL(g$), VAL(b$))
|
||||||
|
r$ = MID$(ColorData$, i, 3): i = i + 3: g$ = MID$(ColorData$, i, 3): i = i + 3: b$ = MID$(ColorData$, i, 3): i = i + 3
|
||||||
|
IDEBackgroundColor2 = _RGB32(VAL(r$), VAL(g$), VAL(b$))
|
||||||
|
_DELAY .2
|
||||||
|
GOTO ChangeTextBoxes
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF mB AND mY = p.y + 5 AND mX >= p.x + 35 AND mX <= p.x + 35 + 26 THEN
|
||||||
newValue = (mX - p.x - 35) * (255 / 26)
|
newValue = (mX - p.x - 35) * (255 / 26)
|
||||||
idetxt(o(2).txt) = str2$(newValue)
|
idetxt(o(2).txt) = str2$(newValue)
|
||||||
focus = 2
|
focus = 2
|
||||||
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
||||||
o(focus).issel = -1
|
o(focus).issel = -1
|
||||||
o(focus).sx1 = 0
|
o(focus).sx1 = 0
|
||||||
|
GOSUB NewUserScheme
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mB AND mY = p.y + 5 AND mX >= p.x + 35 AND mX <= p.x + 35 + 26 THEN
|
IF mB AND mY = p.y + 8 AND mX >= p.x + 35 AND mX <= p.x + 35 + 26 THEN
|
||||||
newValue = (mX - p.x - 35) * (255 / 26)
|
newValue = (mX - p.x - 35) * (255 / 26)
|
||||||
idetxt(o(3).txt) = str2$(newValue)
|
idetxt(o(3).txt) = str2$(newValue)
|
||||||
focus = 3
|
focus = 3
|
||||||
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
||||||
o(focus).issel = -1
|
o(focus).issel = -1
|
||||||
o(focus).sx1 = 0
|
o(focus).sx1 = 0
|
||||||
|
GOSUB NewUserScheme
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF mB AND mY = p.y + 8 AND mX >= p.x + 35 AND mX <= p.x + 35 + 26 THEN
|
IF mB AND mY = p.y + 11 AND mX >= p.x + 35 AND mX <= p.x + 35 + 26 THEN
|
||||||
newValue = (mX - p.x - 35) * (255 / 26)
|
newValue = (mX - p.x - 35) * (255 / 26)
|
||||||
idetxt(o(4).txt) = str2$(newValue)
|
idetxt(o(4).txt) = str2$(newValue)
|
||||||
focus = 4
|
focus = 4
|
||||||
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
o(focus).v1 = LEN(idetxt(o(focus).txt))
|
||||||
o(focus).issel = -1
|
o(focus).issel = -1
|
||||||
o(focus).sx1 = 0
|
o(focus).sx1 = 0
|
||||||
|
GOSUB NewUserScheme
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
ChangedWithKeys = 0
|
ChangedWithKeys = 0
|
||||||
|
@ -11237,12 +11461,14 @@ FUNCTION idechoosecolorsbox
|
||||||
idetxt(o(focus).txt) = str2$(VAL(idetxt(o(focus).txt)) + 1)
|
idetxt(o(focus).txt) = str2$(VAL(idetxt(o(focus).txt)) + 1)
|
||||||
o(focus).issel = -1: o(focus).sx1 = 0: o(focus).v1 = LEN(idetxt(o(focus).txt))
|
o(focus).issel = -1: o(focus).sx1 = 0: o(focus).v1 = LEN(idetxt(o(focus).txt))
|
||||||
ChangedWithKeys = -1
|
ChangedWithKeys = -1
|
||||||
|
GOSUB NewUserScheme
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF K$ = CHR$(0) + CHR$(80) AND (focus = 2 OR focus = 3 OR focus = 4) THEN 'Down
|
IF K$ = CHR$(0) + CHR$(80) AND (focus = 2 OR focus = 3 OR focus = 4) THEN 'Down
|
||||||
idetxt(o(focus).txt) = str2$(VAL(idetxt(o(focus).txt)) - 1)
|
idetxt(o(focus).txt) = str2$(VAL(idetxt(o(focus).txt)) - 1)
|
||||||
o(focus).issel = -1: o(focus).sx1 = 0: o(focus).v1 = LEN(idetxt(o(focus).txt))
|
o(focus).issel = -1: o(focus).sx1 = 0: o(focus).v1 = LEN(idetxt(o(focus).txt))
|
||||||
ChangedWithKeys = -1
|
ChangedWithKeys = -1
|
||||||
|
GOSUB NewUserScheme
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF SelectedITEM <> o(1).sel AND o(1).sel > 0 THEN
|
IF SelectedITEM <> o(1).sel AND o(1).sel > 0 THEN
|
||||||
|
@ -11271,6 +11497,9 @@ FUNCTION idechoosecolorsbox
|
||||||
idetxt(o(2).txt) = str2$(_RED32(CurrentColor~&))
|
idetxt(o(2).txt) = str2$(_RED32(CurrentColor~&))
|
||||||
idetxt(o(3).txt) = str2$(_GREEN32(CurrentColor~&))
|
idetxt(o(3).txt) = str2$(_GREEN32(CurrentColor~&))
|
||||||
idetxt(o(4).txt) = str2$(_BLUE32(CurrentColor~&))
|
idetxt(o(4).txt) = str2$(_BLUE32(CurrentColor~&))
|
||||||
|
IF focus >= 2 AND focus <= 4 AND ChangedScheme THEN
|
||||||
|
prevTB.value$ = idetxt(o(focus).txt)
|
||||||
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
'Check RGB values range (0-255)
|
'Check RGB values range (0-255)
|
||||||
|
@ -11292,6 +11521,22 @@ FUNCTION idechoosecolorsbox
|
||||||
idetxt(o(checkRGB).txt) = a$
|
idetxt(o(checkRGB).txt) = a$
|
||||||
NEXT checkRGB
|
NEXT checkRGB
|
||||||
|
|
||||||
|
'Check for valid scheme name
|
||||||
|
FoundPipe = INSTR(idetxt(o(7).txt), "|")
|
||||||
|
IF FoundPipe > 0 THEN
|
||||||
|
a2$ = LEFT$(idetxt(o(7).txt), FoundPipe - 1) + MID$(idetxt(o(7).txt), FoundPipe + 1)
|
||||||
|
idetxt(o(7).txt) = a2$
|
||||||
|
IF o(7).v1 >= FoundPipe THEN o(7).v1 = o(7).v1 - 1
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF SchemeID > 0 THEN
|
||||||
|
FoundPipe = INSTR(ColorSchemes$(SchemeID), "|")
|
||||||
|
IF RTRIM$(LTRIM$(idetxt(o(7).txt))) <> LEFT$(ColorSchemes$(SchemeID), FoundPipe - 1) THEN
|
||||||
|
'A different scheme name is the beginning of editing a new one
|
||||||
|
SchemeID = 0
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
|
||||||
CurrentColor~& = _RGB32(VAL(idetxt(o(2).txt)), VAL(idetxt(o(3).txt)), VAL(idetxt(o(4).txt)))
|
CurrentColor~& = _RGB32(VAL(idetxt(o(2).txt)), VAL(idetxt(o(3).txt)), VAL(idetxt(o(4).txt)))
|
||||||
SELECT CASE SelectedITEM
|
SELECT CASE SelectedITEM
|
||||||
CASE 1: IDETextColor = CurrentColor~& 'Normal text
|
CASE 1: IDETextColor = CurrentColor~& 'Normal text
|
||||||
|
@ -11313,12 +11558,17 @@ FUNCTION idechoosecolorsbox
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF (focus = 7 AND info <> 0) THEN
|
IF (focus = 7 AND info <> 0) THEN
|
||||||
|
LoadDefaultScheme:
|
||||||
IDECommentColor = _RGB32(85, 255, 255)
|
IDECommentColor = _RGB32(85, 255, 255)
|
||||||
IDEMetaCommandColor = _RGB32(85, 255, 85)
|
IDEMetaCommandColor = _RGB32(85, 255, 85)
|
||||||
IDEQuoteColor = _RGB32(255, 255, 85)
|
IDEQuoteColor = _RGB32(255, 255, 85)
|
||||||
IDETextColor = _RGB32(255, 255, 255)
|
IDETextColor = _RGB32(255, 255, 255)
|
||||||
IDEBackgroundColor = _RGB32(0, 0, 170)
|
IDEBackgroundColor = _RGB32(0, 0, 170)
|
||||||
IDEBackgroundColor2 = _RGB32(0, 108, 177)
|
IDEBackgroundColor2 = _RGB32(0, 108, 177)
|
||||||
|
SchemeID = 1
|
||||||
|
FoundPipe = INSTR(ColorSchemes$(SchemeID), "|")
|
||||||
|
idetxt(o(7).txt) = LEFT$(ColorSchemes$(SchemeID), FoundPipe - 1)
|
||||||
|
IF ChangedScheme THEN _DELAY .2
|
||||||
info = 0
|
info = 0
|
||||||
GOTO ChangeTextBoxes
|
GOTO ChangeTextBoxes
|
||||||
END IF
|
END IF
|
||||||
|
@ -11331,6 +11581,7 @@ FUNCTION idechoosecolorsbox
|
||||||
(focus = 5 AND K$ = CHR$(13)) OR _
|
(focus = 5 AND K$ = CHR$(13)) OR _
|
||||||
(focus = 6 AND K$ = CHR$(13)) THEN
|
(focus = 6 AND K$ = CHR$(13)) THEN
|
||||||
'save changes
|
'save changes
|
||||||
|
WriteConfigSetting "'[IDE COLOR SETTINGS]", "SchemeID", str2$(SchemeID)
|
||||||
FOR i = 1 TO 6
|
FOR i = 1 TO 6
|
||||||
SELECT CASE i
|
SELECT CASE i
|
||||||
CASE 1: CurrentColor~& = IDETextColor: colorid$ = "TextColor"
|
CASE 1: CurrentColor~& = IDETextColor: colorid$ = "TextColor"
|
||||||
|
@ -11366,6 +11617,16 @@ FUNCTION idechoosecolorsbox
|
||||||
mousedown = 0
|
mousedown = 0
|
||||||
mouseup = 0
|
mouseup = 0
|
||||||
LOOP
|
LOOP
|
||||||
|
EXIT FUNCTION
|
||||||
|
NewUserScheme:
|
||||||
|
IF SchemeID > 0 AND SchemeID <= PresetColorSchemes THEN
|
||||||
|
'If one of the preset schemes is currently selected,
|
||||||
|
'create a new one. User-defined types can be freely
|
||||||
|
'edited.
|
||||||
|
SchemeID = 0
|
||||||
|
idetxt(o(7).txt) = "User-defined"
|
||||||
|
END IF
|
||||||
|
RETURN
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
|
||||||
|
@ -13754,5 +14015,49 @@ SUB HideBracketHighlight
|
||||||
END IF
|
END IF
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
|
SUB LoadColorSchemes
|
||||||
|
'Preset built-in schemes
|
||||||
|
PresetColorSchemes = 6
|
||||||
|
REDIM ColorSchemes$(1 TO PresetColorSchemes)
|
||||||
|
ColorSchemes$(1) = "QB64 Default|255255255255255085085255085085255255000000170000108177"
|
||||||
|
ColorSchemes$(2) = "Dark blue|255255255255177000085255085085255255000000069000088128"
|
||||||
|
ColorSchemes$(3) = "Camouflage|255255255255177000085255085029098020000039029098069020"
|
||||||
|
ColorSchemes$(4) = "Classic QB4.5|177177177177177177177177177177177177000000170000000170"
|
||||||
|
ColorSchemes$(5) = "Light green|051051051000134179167029093098147098234255234206255206"
|
||||||
|
ColorSchemes$(6) = "Plum|255255255255108000085186078085128255059000059088088128"
|
||||||
|
TotalColorSchemes = PresetColorSchemes
|
||||||
|
LastValidColorScheme = TotalColorSchemes
|
||||||
|
|
||||||
|
'Load user color schemes
|
||||||
|
i = 0
|
||||||
|
DO
|
||||||
|
i = i + 1
|
||||||
|
result = ReadConfigSetting("Scheme" + str2$(i) + "$", value$)
|
||||||
|
IF result THEN
|
||||||
|
TotalColorSchemes = TotalColorSchemes + 1
|
||||||
|
IF TotalColorSchemes > UBOUND(ColorSchemes$) THEN
|
||||||
|
REDIM _PRESERVE ColorSchemes$(1 TO UBOUND(ColorSchemes$) + 10)
|
||||||
|
END IF
|
||||||
|
ColorSchemes$(TotalColorSchemes) = value$
|
||||||
|
FoundPipe = INSTR(value$, "|")
|
||||||
|
IF FoundPipe > 0 THEN
|
||||||
|
IF LEN(MID$(value$, FoundPipe + 1)) = 54 THEN
|
||||||
|
LastValidColorScheme = TotalColorSchemes
|
||||||
|
ELSE
|
||||||
|
GOTO DiscardInvalid
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
DiscardInvalid:
|
||||||
|
ColorSchemes$(TotalColorSchemes) = "0"
|
||||||
|
WriteConfigSetting "'[IDE COLOR SCHEMES]", "Scheme" + str2$(i) + "$", "0"
|
||||||
|
END IF
|
||||||
|
ELSE
|
||||||
|
'No more schemes found
|
||||||
|
EXIT DO
|
||||||
|
END IF
|
||||||
|
LOOP
|
||||||
|
'End of color schemes
|
||||||
|
END SUB
|
||||||
|
|
||||||
'$INCLUDE:'wiki\wiki_methods.bas'
|
'$INCLUDE:'wiki\wiki_methods.bas'
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue