You replace the theme ID in the main function...
Code: Select all
Procedure Main()
Protected.s XML
Protected.l Theme = 21, File
It will dump a .pref file in the same folder as the source that you can import into the PB IDE to try new color themes.
Note: You will have to tweak the NewTheme map to fit your liking.
Code: Select all
; --------------------------------------------------
; Eclipse 2 PB By Opcode
; --------------------------------------------------
InitNetwork()
Procedure.s RGBString(Color.s)
Protected Value.l
Color = ReplaceString(Color, "#", "$")
Value = Val(Color)
ProcedureReturn "RGB(" + Blue(Value) + "," + Green(Value) + "," + Red(Value) + ")"
EndProcedure
Procedure.s GetThemeXML(ID)
Protected.l Request
Protected.s Result
Request = HTTPRequestMemory(#PB_HTTP_Get, "http://www.eclipsecolorthemes.org/?view=empty&action=download&theme=" + Str(ID) + "&type=xml")
If Request
Result = HTTPInfo(Request, #PB_HTTP_Response)
EndIf
FinishHTTP(Request)
ProcedureReturn Result
EndProcedure
Procedure Main()
Protected.s XML
Protected.l Theme = 21, File
Protected NewMap ThemeData.s()
XML = GetThemeXML(Theme)
If ParseXML(0, XML) And XMLStatus(0) = #PB_XML_Success
Node = MainXMLNode(0)
Node = ChildXMLNode(Node)
While Node
ThemeData(GetXMLNodeName(Node)) = GetXMLAttribute(Node, "color")
Node = NextXMLNode(Node)
Wend
Protected NewMap NewTheme.s()
NewTheme("ASMKeywordColor") = RGBString(ThemeData("commentTaskTag"))
NewTheme("BackgroundColor") = RGBString(ThemeData("background"))
NewTheme("BasicKeywordColor") = RGBString(ThemeData("keyword"))
NewTheme("CommentColor") = RGBString(ThemeData("singleLineComment"))
NewTheme("ConstantColor") = RGBString(ThemeData("constant"))
NewTheme("LabelColor") = RGBString(ThemeData("methodDeclaration"))
NewTheme("NormalTextColor") = RGBString(ThemeData("localVariable"))
NewTheme("NumberColor") = RGBString(ThemeData("number"))
NewTheme("OperatorColor") = RGBString(ThemeData("operator"))
NewTheme("PointerColor") = RGBString(ThemeData("methodDeclaration"))
NewTheme("PureKeywordColor") = RGBString(ThemeData("class"))
NewTheme("SeparatorColor") = RGBString(ThemeData("bracket"))
NewTheme("StringColor") = RGBString(ThemeData("string"))
NewTheme("StructureColor") = RGBString(ThemeData("enum"))
NewTheme("LineNumberColor") = RGBString(ThemeData("lineNumber"))
NewTheme("LineNumberBackColor") = RGBString(ThemeData("background"))
NewTheme("MarkerColor") = RGBString(ThemeData("annotation"))
NewTheme("CurrentLineColor") = RGBString(ThemeData("currentLine"))
NewTheme("SelectionColor") = RGBString(ThemeData("selectionBackground"))
NewTheme("SelectionFrontColor") = RGBString(ThemeData("selectionForeground"))
NewTheme("CursorColor") = RGBString(ThemeData("foreground"))
NewTheme("Debugger_LineColor") = RGBString(ThemeData(""))
NewTheme("Debugger_LineSymbolColor") = RGBString(ThemeData(""))
NewTheme("Debugger_ErrorColor") = RGBString(ThemeData(""))
NewTheme("Debugger_ErrorSymbolColor") = RGBString(ThemeData(""))
NewTheme("Debugger_BreakPointColor") = RGBString(ThemeData(""))
NewTheme("Debugger_BreakpoinSymbolColor") = RGBString(ThemeData(""))
NewTheme("DisabledBackColor") = RGBString(ThemeData("background"))
NewTheme("GoodBraceColor") = RGBString(ThemeData("bracket"))
NewTheme("BadBraceColor") = RGBString(ThemeData("bracket"))
NewTheme("ProcedureBackColor") = RGBString(ThemeData("background"))
NewTheme("CustomKeywordColor") = RGBString(ThemeData("keyword"))
NewTheme("Debugger_WarningColor") = RGBString(ThemeData(""))
NewTheme("Debugger_WarningSymbolColor") = RGBString(ThemeData(""))
NewTheme("IndentColor") = RGBString(ThemeData("background"))
NewTheme("ModuleColor") = RGBString(ThemeData("methodDeclaration"))
NewTheme("SelectionRepeatColor") = RGBString(ThemeData("occurrenceIndication"))
NewTheme("PlainBackground") = RGBString(ThemeData("background"))
NewTheme("ToolsPanel_FrontColor") = RGBString(ThemeData("foreground"))
NewTheme("ToolsPanel_BackColor") = RGBString(ThemeData("background"))
If CreateFile(0, Str(Theme) + ".prefs")
WriteStringN(0, "[Sections]")
WriteStringN(0, "IncludeColors = 1" + #CRLF$)
WriteStringN(0, "[Colors]")
ForEach NewTheme()
WriteStringN(0, MapKey(NewTheme()) + " = " + NewTheme())
WriteStringN(0, MapKey(NewTheme()) + "_Used = 1")
Next
FlushFileBuffers(0)
CloseFile(0)
EndIf
FreeXML(0)
EndIf
EndProcedure
Main()