Eclipse Color Themes To PB
Posted: Mon Mar 28, 2016 8:18 am
This converts the Eclipse Color Theme XML files over to PureBasic .prefs files.
You replace the theme ID in the main function...
...with the ID found in the address bar of your browser while on the eclipse color theme website.
Note: You will have to tweak the NewTheme map to fit your liking.
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()