---input--- namespace gui; import "Window" public struct AnchorValue { AnchorValueType type; union { int distance; float percent; }; property int { set { distance = value; type = offset; } get { return distance; } } property double { set { percent = (float) value; type = relative; } get { return (double) percent; } } char * OnGetString(char * stringOutput, void * fieldData, bool * needClass) { if(type == offset) { sprintf(stringOutput, "%d", distance); } else if(type == relative) { int c; int last = 0; sprintf(stringOutput, "%f", percent); c = strlen(stringOutput)-1; for( ; c >= 0; c--) { if(stringOutput[c] != '0') last = Max(last, c); if(stringOutput[c] == '.') { if(last == c) { stringOutput[c+1] = '0'; stringOutput[c+2] = 0; } else stringOutput[last+1] = 0; break; } } } if(needClass) *needClass = false; return stringOutput; } bool OnGetDataFromString(char * stringOutput) { char * end; if(strchr(stringOutput, '.')) { float percent = (float)strtod(stringOutput, &end); if(end != stringOutput) { this.percent = percent; type = relative; return true; } } else if(stringOutput[0]) { int distance = strtol(stringOutput, &end, 0); if(end != stringOutput) { this.distance = distance; type = offset; return true; } } else { distance = 0; type = 0; } return false; } }; public struct MiddleAnchorValue { AnchorValueType type; union { int distance; float percent; }; property int { set { distance = value; type = none; } get { return distance; } } property double { set { percent = (float) value; type = middleRelative; } get { return (double) percent; } } char * OnGetString(char * stringOutput, void * fieldData, bool * needClass) { if(type == middleRelative) { int c; int last = 0; sprintf(stringOutput, "%f", percent); c = strlen(stringOutput)-1; for( ; c >= 0; c--) { if(stringOutput[c] != '0') last = Max(last, c); if(stringOutput[c] == '.') { if(last == c) { stringOutput[c+1] = '0'; stringOutput[c+2] = 0; } else stringOutput[last+1] = 0; break; } } } else if(type == none && distance) { sprintf(stringOutput, "%d", distance); } if(needClass) *needClass = false; return stringOutput; } bool OnGetDataFromString(char * stringOutput) { if(strchr(stringOutput, '.')) { percent = (float)strtod(stringOutput, null); type = middleRelative; } else { distance = strtol(stringOutput, null, 0); type = none; } return true; } }; public enum AnchorValueType { none, offset, relative, middleRelative, cascade, vTiled, hTiled }; public struct Anchor { union { AnchorValue left; MiddleAnchorValue horz; }; union { AnchorValue top; MiddleAnchorValue vert; }; AnchorValue right, bottom; char * OnGetString(char * stringOutput, void * fieldData, bool * needClass) { char tempString[256]; char * anchorValue; bool subNeedClass; tempString[0] = '\0'; anchorValue = left.OnGetString(tempString, null, &subNeedClass); if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "left = "); strcat(stringOutput, anchorValue); } //if(((!left.type && !right.type) && horz.distance) || horz.type == middleRelative) if(!right.type && ((!left.type && horz.distance) || horz.type == middleRelative)) { tempString[0] = '\0'; anchorValue = horz.OnGetString(tempString, null, &subNeedClass); if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "horz = "); strcat(stringOutput, anchorValue); } } tempString[0] = '\0'; anchorValue = top.OnGetString(tempString, null, &subNeedClass); if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "top = "); strcat(stringOutput, anchorValue); } tempString[0] = '\0'; anchorValue = right.OnGetString(tempString, null, &subNeedClass); if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "right = "); strcat(stringOutput, anchorValue); } // if(((!top.type && !bottom.type) && vert.distance) || vert.type == middleRelative) if(!bottom.type && ((!top.type && vert.distance) || vert.type == middleRelative)) { tempString[0] = '\0'; anchorValue = vert.OnGetString(tempString, null, &subNeedClass); if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "vert = "); strcat(stringOutput, anchorValue); } } tempString[0] = '\0'; anchorValue = bottom.OnGetString(tempString, null, &subNeedClass); if(anchorValue[0]) { if(stringOutput[0]) strcat(stringOutput, ", "); strcat(stringOutput, "bottom = "); strcat(stringOutput, anchorValue); } return stringOutput; } bool OnGetDataFromString(char * string) { this = Anchor {}; return class::OnGetDataFromString(string); } bool OnSaveEdit(DropBox dropBox, void * object) { return dropBox.Save(); } Window OnEdit(Window listBox, Window master, int x, int y, int w, int h, Window control) { char * string = ""; AnchorDropBox comboBox { editText = true; parent = listBox; master = master; position = Point { x, y }; //clientSize = Size { h = h }; //size.w = w; size = { w, h }; anchorValue = this; control = control; borderStyle = 0; }; comboBox.Create(); { char tempString[MAX_F_STRING] = ""; bool needClass = false; char * result = OnGetString(tempString, null, &needClass); if(result) string = result; } comboBox.contents = string; return comboBox; } }; private class AnchorButton : Button { toggle = true, bevel = false; void OnRedraw(Surface surface) { int cw = clientSize.w; int ch = clientSize.h; surface.SetForeground(black); if(checked) { surface.SetBackground(Color { 85,85,85 }); surface.Area(0,0, cw-1, ch-1); } else surface.LineStipple(0xAAAA); surface.Rectangle(0,0,cw-1,ch-1); if(active) { surface.LineStipple(0xAAAA); surface.Rectangle(2,2,cw-3,ch-3); } } bool AnchorEditor::NotifyClicked(Button button, int x, int y, Modifiers mods) { AnchorDropBox anchorDropBox = (AnchorDropBox)master; Anchor anchor = anchorDropBox.anchorValue; Window control = anchorDropBox.control; DataBox dropMaster = (DataBox)anchorDropBox.master; int id = button.id; switch(id) { case 0: anchor.left.type = button.checked ? offset : none; break; case 1: anchor.top.type = button.checked ? offset : none; break; case 2: anchor.right.type = button.checked ? offset : none; break; case 3: anchor.bottom.type = button.checked ? offset : none; break; } if(anchor.horz.type == middleRelative && (id == 0 || id == 2)) { anchorDropBox.relButtons[0].checked = false; anchorDropBox.relButtons[2].checked = false; } if(anchor.vert.type == middleRelative && (id == 1 || id == 3)) { anchorDropBox.relButtons[1].checked = false; anchorDropBox.relButtons[3].checked = false; } anchorDropBox.relButtons[id].checked = false; //anchor.horz.type = none; //anchor.vert.type = none; { int vpw, vph; int x,y,w,h; Window parent = control.parent; // Fix Anchor x = control.position.x; y = control.position.y; w = control.size.w; h = control.size.h; vpw = parent.clientSize.w; vph = parent.clientSize.h; if(control.nonClient) { vpw = parent.size.w; vph = parent.size.h; } else if(((BorderBits)control.borderStyle).fixed) { if(!control.dontScrollHorz && parent.scrollArea.w) vpw = parent.scrollArea.w; if(!control.dontScrollVert && parent.scrollArea.h) vph = parent.scrollArea.h; } if(anchor.left.type == offset) anchor.left.distance = x; else if(anchor.left.type == relative) anchor.left.percent = (float)x / vpw; if(anchor.top.type == offset) anchor.top.distance = y; else if(anchor.top.type == relative) anchor.top.percent = (float)y / vph; if(anchor.right.type == offset) anchor.right.distance = vpw - (x + w); //else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw; else if(anchor.right.type == relative) anchor.right.percent = (float) (vpw - (x + w)) / vpw; if(anchor.bottom.type == offset) anchor.bottom.distance = vph - (y + h); //else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph; else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (vph - (y + h)) / vph; if(!anchor.left.type && !anchor.right.type) { anchor.horz.distance = (x + w / 2) - (vpw / 2); //anchor.horz.type = anchor.horz.distance ? offset : 0; } else if(anchor.horz.type == middleRelative) anchor.horz.percent = (float) ((x + w / 2) - (vpw / 2)) / vpw; if(!anchor.top.type && !anchor.bottom.type) { anchor.vert.distance = (y + h / 2) - (vph / 2); //anchor.vert.type = anchor.vert.distance ? offset : 0; } else if(anchor.vert.type == middleRelative) anchor.vert.percent = (float)((y + h / 2) - (vph / 2)) / vph; } { char tempString[1024] = ""; bool needClass = false; char * string = anchor.OnGetString(tempString, null, &needClass); anchorDropBox.contents = string; } dropMaster.SetData(&anchor, false); anchorDropBox.anchorValue = anchor; return true; } } private class AnchorRelButton : Button { toggle = true; bevel = false; text = "%"; //bevelOver = true; void OnRedraw(Surface surface) { int cw = clientSize.w; int ch = clientSize.h; if(checked) { surface.SetForeground(black); } else { surface.SetForeground(Color{170,170,170}); } surface.WriteText(5,2, "%", 1); if(active) { surface.LineStipple(0xAAAA); surface.Rectangle(3,3,cw-4,ch-4); } } bool AnchorEditor::NotifyClicked(Button button, int x, int y, Modifiers mods) { AnchorDropBox anchorDropBox = (AnchorDropBox)master; Anchor anchor = anchorDropBox.anchorValue; Window control = anchorDropBox.control; DataBox dropMaster = (DataBox)anchorDropBox.master; int id = button.id; if((id == 0 || id == 2) && ((!anchor.left.type && !anchor.right.type) || anchor.left.type == middleRelative)) { if(button.checked) anchor.horz.type = middleRelative; else anchor.horz.type = none; anchorDropBox.relButtons[(id + 2)%4].checked = button.checked; } else if((id == 1 || id == 3) && ((!anchor.top.type && !anchor.bottom.type) || anchor.top.type == middleRelative)) { if(button.checked) anchor.vert.type = middleRelative; else anchor.vert.type = none; anchorDropBox.relButtons[(id + 2)%4].checked = button.checked; } else { switch(id) { case 0: anchor.left.type = button.checked ? relative : (anchor.left.type ? offset : none); break; case 1: anchor.top.type = button.checked ? relative : (anchor.top.type ? offset : none); break; case 2: anchor.right.type = button.checked ? relative : (anchor.right.type ? offset : none); break; case 3: anchor.bottom.type = button.checked ? relative : (anchor.bottom.type ? offset : none); break; } anchorDropBox.buttons[id].checked = true; if(anchor.horz.type == middleRelative) anchor.horz.type = none; if(anchor.vert.type == middleRelative) anchor.vert.type = none; } { int vpw, vph; int x,y,w,h; Window parent = control.parent; // Fix Anchor x = control.position.x; y = control.position.y; w = control.size.w; h = control.size.h; vpw = parent.clientSize.w; vph = parent.clientSize.h; if(control.nonClient) { vpw = parent.size.w; vph = parent.size.h; } else if(((BorderBits)control.borderStyle).fixed) { if(!control.dontScrollHorz && parent.scrollArea.w) vpw = parent.scrollArea.w; if(!control.dontScrollVert && parent.scrollArea.h) vph = parent.scrollArea.h; } if(anchor.left.type == offset) anchor.left.distance = x; else if(anchor.left.type == relative) anchor.left.percent = (float)x / vpw; if(anchor.top.type == offset) anchor.top.distance = y; else if(anchor.top.type == relative) anchor.top.percent = (float)y / vph; if(anchor.right.type == offset) anchor.right.distance = vpw - (x + w); //else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw; else if(anchor.right.type == relative) anchor.right.percent = (float) (vpw - (x + w)) / vpw; if(anchor.bottom.type == offset) anchor.bottom.distance = vph - (y + h); //else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph; else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (vph - (y + h)) / vph; if(!anchor.left.type && !anchor.right.type) { anchor.horz.distance = (x + w / 2) - (vpw / 2); //anchor.horz.type = anchor.horz.distance ? offset : none; } else if(anchor.horz.type == middleRelative) anchor.horz.percent = (float) ((x + w / 2) - (vpw / 2)) / vpw; if(!anchor.top.type && !anchor.bottom.type) { anchor.vert.distance = (y + h / 2) - (vph / 2); //anchor.vert.type = anchor.vert.distance ? offset : none; } else if(anchor.vert.type == middleRelative) anchor.vert.percent = (float)((y + h / 2) - (vph / 2)) / vph; } { char tempString[1024] = ""; bool needClass = false; char * string = anchor.OnGetString(tempString, null, &needClass); anchorDropBox.contents = string; } dropMaster.SetData(&anchor, false); anchorDropBox.anchorValue = anchor; return true; } } private class AnchorEditor : Window { interim = true; borderStyle = deepContour; size.h = 92; bool OnKeyDown(Key key, unichar ch) { if(key == escape) return master.OnKeyDown(key, ch); return true; } } private class AnchorDropBox : DropBox { Anchor anchorValue; Window control; Button relButtons[4], buttons[4]; AnchorEditor anchorEditor { master = this; autoCreate = false; }; Window OnDropDown() { int c; Button { anchorEditor, anchor = Anchor { left = 28, top = 28, right = 28, bottom = 28 }, inactive = true, disabled = true }; for(c = 0; c<4; c++) { Button button = buttons[c] = AnchorButton { anchorEditor, id = c, size = Size { (c%2)?10:28, (c%2)?28:10 } }; Button relButton = relButtons[c] = AnchorRelButton { anchorEditor, id = c; }; switch(c) { case 0: if(anchorValue.left.type && anchorValue.left.type != middleRelative) button.checked = true; if(anchorValue.left.type == relative || anchorValue.horz.type == middleRelative) relButton.checked = true; button.anchor = Anchor { left = 0 }; relButton.anchor = Anchor { left = 5, vert = 16 }; break; case 1: if(anchorValue.top.type && anchorValue.top.type != middleRelative) button.checked = true; if(anchorValue.top.type == relative || anchorValue.vert.type == middleRelative) relButton.checked = true; button.anchor = Anchor { top = 0 }; relButton.anchor = Anchor { top = 5, horz = 16 }; break; case 2: if(anchorValue.right.type && anchorValue.right.type != middleRelative) button.checked = true; if(anchorValue.right.type == relative || anchorValue.horz.type == middleRelative) relButton.checked = true; button.anchor = Anchor { right = 0 }; relButton.anchor = Anchor { right = 5, vert = 16 }; break; case 3: if(anchorValue.bottom.type && anchorValue.bottom.type != middleRelative) button.checked = true; if(anchorValue.bottom.type == relative || anchorValue.vert.type == middleRelative) relButton.checked = true; button.anchor = Anchor { bottom = 0 }; relButton.anchor = Anchor { bottom = 5, horz = 16 }; break; } } anchorEditor.Create(); return anchorEditor; } void OnCloseDropDown(Window anchorEditor) { // TOFIX: Patch for update bug master.Update(null); anchorEditor.Destroy(0); } bool DataBox::NotifyTextEntry(AnchorDropBox dropBox, char * string, bool save) { Anchor anchor = dropBox.anchorValue; Window control = dropBox.control; if(save) { if(anchor.OnGetDataFromString(string)) { SetData(&anchor, false); dropBox.anchorValue = anchor; } } else { char tempString[1024] = ""; bool needClass = false; char * string = anchor.OnGetString(tempString, null, &needClass); dropBox.contents = string; } return true; } } ---tokens--- 'namespace' Keyword ' ' Text 'gui' Name ';' Punctuation '\n' Text '\n' Text 'import' Keyword ' ' Text '"' Literal.String 'Window' Literal.String '"' Literal.String '\n' Text '\n' Text 'public' Keyword ' ' Text 'struct' Keyword ' ' Text 'AnchorValue' Name.Class '\n' Text '{' Punctuation '\n' Text ' ' Text 'AnchorValueType' Name ' ' Text 'type' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'union' Keyword '\n ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'distance' Name ';' Punctuation '\n' Text ' ' Text 'float' Keyword.Type ' ' Text 'percent' Name ';' Punctuation ' \n ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'property' Keyword ' ' Text 'int' Keyword.Type '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'set' Keyword ' ' Text '{' Punctuation ' ' Text 'distance' Name ' ' Text '=' Operator ' ' Text 'value' Name.Builtin ';' Punctuation ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'offset' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text 'get' Keyword ' ' Text '{' Punctuation ' ' Text 'return' Keyword ' ' Text 'distance' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'property' Keyword ' ' Text 'double' Keyword.Type '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'set' Keyword ' ' Text '{' Punctuation ' ' Text 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text 'value' Name.Builtin ';' Punctuation ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'relative' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text 'get' Keyword ' ' Text '{' Punctuation ' ' Text 'return' Keyword ' ' Text '(' Punctuation 'double' Keyword.Type ')' Punctuation ' ' Text 'percent' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'OnGetString' Name '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'stringOutput' Name ',' Punctuation ' ' Text 'void' Keyword.Type ' ' Text '*' Operator ' ' Text 'fieldData' Name ',' Punctuation ' ' Text 'bool' Keyword.Type ' ' Text '*' Operator ' ' Text 'needClass' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'sprintf' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String '%d' Literal.String '"' Literal.String ',' Punctuation ' ' Text 'distance' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'c' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'last' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'sprintf' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String '%f' Literal.String '"' Literal.String ',' Punctuation ' ' Text 'percent' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'c' Name ' ' Text '=' Operator ' ' Text 'strlen' Name '(' Punctuation 'stringOutput' Name ')' Punctuation '-1' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'for' Keyword '(' Punctuation ' ' Text ';' Punctuation ' ' Text 'c' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ' ' Text 'c' Name '-' Operator '-' Operator ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation 'c' Name ']' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text "'" Literal.String.Char '0' Literal.String.Char "'" Literal.String.Char ')' Punctuation ' \n ' Text 'last' Name ' ' Text '=' Operator ' ' Text 'Max' Name '(' Punctuation 'last' Name ',' Punctuation ' ' Text 'c' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation 'c' Name ']' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text "'" Literal.String.Char '.' Literal.String.Char "'" Literal.String.Char ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'last' Name ' ' Text '=' Operator '=' Operator ' ' Text 'c' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'stringOutput' Name '[' Punctuation 'c' Name '+' Operator '1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'stringOutput' Name '[' Punctuation 'c' Name '+' Operator '2' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text 'stringOutput' Name '[' Punctuation 'last' Name '+' Operator '1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'needClass' Name ')' Punctuation ' ' Text '*' Operator 'needClass' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'stringOutput' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'OnGetDataFromString' Name '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'stringOutput' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'end' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'strchr' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text "'" Literal.String.Char '.' Literal.String.Char "'" Literal.String.Char ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'float' Keyword.Type ' ' Text 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation 'strtod' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '&' Operator 'end' Name ')' Punctuation ';' Punctuation '\n' Text ' \n ' Text 'if' Keyword '(' Punctuation 'end' Name ' ' Text '!' Operator '=' Operator ' ' Text 'stringOutput' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'this' Name.Builtin '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text 'percent' Name ';' Punctuation '\n' Text ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'relative' Name ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'distance' Name ' ' Text '=' Operator ' ' Text 'strtol' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '&' Operator 'end' Name ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'end' Name ' ' Text '!' Operator '=' Operator ' ' Text 'stringOutput' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'this' Name.Builtin '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'distance' Name ';' Punctuation '\n' Text ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'offset' Name ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'distance' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text 'public' Keyword ' ' Text 'struct' Keyword ' ' Text 'MiddleAnchorValue' Name.Class '\n' Text '{' Punctuation '\n' Text ' ' Text 'AnchorValueType' Name ' ' Text 'type' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'union' Keyword '\n ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'distance' Name ';' Punctuation '\n' Text ' ' Text 'float' Keyword.Type ' ' Text 'percent' Name ';' Punctuation ' \n ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'property' Keyword ' ' Text 'int' Keyword.Type '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'set' Keyword ' ' Text '{' Punctuation ' ' Text 'distance' Name ' ' Text '=' Operator ' ' Text 'value' Name.Builtin ';' Punctuation ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'none' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text 'get' Keyword ' ' Text '{' Punctuation ' ' Text 'return' Keyword ' ' Text 'distance' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'property' Keyword ' ' Text 'double' Keyword.Type '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'set' Keyword ' ' Text '{' Punctuation ' ' Text 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text 'value' Name.Builtin ';' Punctuation ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'middleRelative' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text 'get' Keyword ' ' Text '{' Punctuation ' ' Text 'return' Keyword ' ' Text '(' Punctuation 'double' Keyword.Type ')' Punctuation ' ' Text 'percent' Name ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'OnGetString' Name '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'stringOutput' Name ',' Punctuation ' ' Text 'void' Keyword.Type ' ' Text '*' Operator ' ' Text 'fieldData' Name ',' Punctuation ' ' Text 'bool' Keyword.Type ' ' Text '*' Operator ' ' Text 'needClass' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'c' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'last' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'sprintf' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String '%f' Literal.String '"' Literal.String ',' Punctuation ' ' Text 'percent' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'c' Name ' ' Text '=' Operator ' ' Text 'strlen' Name '(' Punctuation 'stringOutput' Name ')' Punctuation '-1' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'for' Keyword '(' Punctuation ' ' Text ';' Punctuation ' ' Text 'c' Name ' ' Text '>' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ' ' Text 'c' Name '-' Operator '-' Operator ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation 'c' Name ']' Punctuation ' ' Text '!' Operator '=' Operator ' ' Text "'" Literal.String.Char '0' Literal.String.Char "'" Literal.String.Char ')' Punctuation ' \n ' Text 'last' Name ' ' Text '=' Operator ' ' Text 'Max' Name '(' Punctuation 'last' Name ',' Punctuation ' ' Text 'c' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation 'c' Name ']' Punctuation ' ' Text '=' Operator '=' Operator ' ' Text "'" Literal.String.Char '.' Literal.String.Char "'" Literal.String.Char ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'last' Name ' ' Text '=' Operator '=' Operator ' ' Text 'c' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'stringOutput' Name '[' Punctuation 'c' Name '+' Operator '1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'stringOutput' Name '[' Punctuation 'c' Name '+' Operator '2' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text 'stringOutput' Name '[' Punctuation 'last' Name '+' Operator '1' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'none' Name ' ' Text '&' Operator '&' Operator ' ' Text 'distance' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'sprintf' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String '%d' Literal.String '"' Literal.String ',' Punctuation ' ' Text 'distance' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'needClass' Name ')' Punctuation ' ' Text '*' Operator 'needClass' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'stringOutput' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'OnGetDataFromString' Name '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'stringOutput' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'strchr' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text "'" Literal.String.Char '.' Literal.String.Char "'" Literal.String.Char ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation 'strtod' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'null' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'middleRelative' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'distance' Name ' ' Text '=' Operator ' ' Text 'strtol' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'type' Name ' ' Text '=' Operator ' ' Text 'none' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text 'public' Keyword ' ' Text 'enum' Keyword ' ' Text 'AnchorValueType' Name ' ' Text '{' Punctuation ' ' Text 'none' Name ',' Punctuation ' ' Text 'offset' Name ',' Punctuation ' ' Text 'relative' Name ',' Punctuation ' ' Text 'middleRelative' Name ',' Punctuation ' ' Text 'cascade' Name ',' Punctuation ' ' Text 'vTiled' Name ',' Punctuation ' ' Text 'hTiled' Name ' ' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text 'public' Keyword ' ' Text 'struct' Keyword ' ' Text 'Anchor' Name.Class '\n' Text '{' Punctuation '\n' Text ' ' Text 'union' Keyword ' ' Text '{' Punctuation ' ' Text 'AnchorValue' Name ' ' Text 'left' Name ';' Punctuation ' ' Text 'MiddleAnchorValue' Name ' ' Text 'horz' Name ';' Punctuation ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'union' Keyword ' ' Text '{' Punctuation ' ' Text 'AnchorValue' Name ' ' Text 'top' Name ';' Punctuation ' ' Text 'MiddleAnchorValue' Name ' ' Text 'vert' Name ';' Punctuation ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'AnchorValue' Name ' ' Text 'right' Name ',' Punctuation ' ' Text 'bottom' Name ';' Punctuation ' \n\n ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'OnGetString' Name.Function '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'stringOutput' Name ',' Punctuation ' ' Text 'void' Keyword.Type ' ' Text '*' Operator ' ' Text 'fieldData' Name ',' Punctuation ' ' Text 'bool' Keyword.Type ' ' Text '*' Operator ' ' Text 'needClass' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text 'tempString' Name '[' Punctuation '256' Literal.Number.Integer ']' Punctuation ';' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'anchorValue' Name ';' Punctuation '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'subNeedClass' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'tempString' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '\\0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'left' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'subNeedClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String ', ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String 'left = ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'anchorValue' Name ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' \n ' Text '//if(((!left.type && !right.type) && horz.distance) || horz.type == middleRelative)\n' Comment.Single ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'right' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation '(' Punctuation '!' Operator 'left' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text 'horz' Name '.' Punctuation 'distance' Name ')' Punctuation ' ' Text '|' Operator '|' Operator ' ' Text 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'tempString' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '\\0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'horz' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'subNeedClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String ', ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String 'horz = ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'anchorValue' Name ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' \n ' Text 'tempString' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '\\0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'top' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'subNeedClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String ', ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String 'top = ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'anchorValue' Name ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' \n ' Text 'tempString' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '\\0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'right' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'subNeedClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String ', ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String 'right = ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'anchorValue' Name ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text '// if(((!top.type && !bottom.type) && vert.distance) || vert.type == middleRelative)\n' Comment.Single ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'bottom' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation '(' Punctuation '!' Operator 'top' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text 'vert' Name '.' Punctuation 'distance' Name ')' Punctuation ' ' Text '|' Operator '|' Operator ' ' Text 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'tempString' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '\\0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'vert' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'subNeedClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String ', ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String 'vert = ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'anchorValue' Name ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' \n ' Text 'tempString' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text "'" Literal.String.Char '\\0' Literal.String.Char "'" Literal.String.Char ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'bottom' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'subNeedClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text '{' Punctuation ' ' Text 'if' Keyword '(' Punctuation 'stringOutput' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation ')' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String ', ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text '"' Literal.String 'bottom = ' Literal.String '"' Literal.String ')' Punctuation ';' Punctuation ' ' Text 'strcat' Name '(' Punctuation 'stringOutput' Name ',' Punctuation ' ' Text 'anchorValue' Name ')' Punctuation ';' Punctuation ' ' Text '}' Punctuation '\n' Text ' \n ' Text 'return' Keyword ' ' Text 'stringOutput' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'OnGetDataFromString' Name.Function '(' Punctuation 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'string' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'this' Name.Builtin ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'class' Keyword ':' Operator ':' Operator 'OnGetDataFromString' Name '(' Punctuation 'string' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'OnSaveEdit' Name.Function '(' Punctuation 'DropBox' Name ' ' Text 'dropBox' Name ',' Punctuation ' ' Text 'void' Keyword.Type ' ' Text '*' Operator ' ' Text 'object' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'dropBox' Name '.' Punctuation 'Save' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'Window' Name ' ' Text 'OnEdit' Name.Function '(' Punctuation 'Window' Name ' ' Text 'listBox' Name ',' Punctuation ' ' Text 'Window' Name ' ' Text 'master' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'x' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'y' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'w' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'h' Name ',' Punctuation ' ' Text 'Window' Name ' ' Text 'control' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'string' Name ' ' Text '=' Operator ' ' Text '"' Literal.String '"' Literal.String ';' Punctuation '\n' Text ' ' Text 'AnchorDropBox' Name ' ' Text 'comboBox' Name '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'editText' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'parent' Name ' ' Text '=' Operator ' ' Text 'listBox' Name ';' Punctuation '\n' Text ' ' Text 'master' Name ' ' Text '=' Operator ' ' Text 'master' Name ';' Punctuation '\n' Text ' ' Text 'position' Name ' ' Text '=' Operator ' ' Text 'Point' Name ' ' Text '{' Punctuation ' ' Text 'x' Name ',' Punctuation ' ' Text 'y' Name ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text '//clientSize = Size { h = h };\n' Comment.Single ' ' Text '//size.w = w;\n' Comment.Single ' ' Text 'size' Name ' ' Text '=' Operator ' ' Text '{' Punctuation ' ' Text 'w' Name ',' Punctuation ' ' Text 'h' Name ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'this' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'control' Name ' ' Text '=' Operator ' ' Text 'control' Name ';' Punctuation '\n' Text ' ' Text 'borderStyle' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation '\n' Text ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' \n ' Text 'comboBox' Name '.' Punctuation 'Create' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text 'tempString' Name '[' Punctuation 'MAX_F_STRING' Name ']' Punctuation ' ' Text '=' Operator ' ' Text '"' Literal.String '"' Literal.String ';' Punctuation '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'needClass' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'result' Name ' ' Text '=' Operator ' ' Text 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'needClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'result' Name ')' Punctuation ' ' Text 'string' Name ' ' Text '=' Operator ' ' Text 'result' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'comboBox' Name '.' Punctuation 'contents' Name ' ' Text '=' Operator ' ' Text 'string' Name ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'comboBox' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text 'private' Keyword ' ' Text 'class' Keyword ' ' Text 'AnchorButton' Name.Label ' ' Text ':' Punctuation ' ' Text 'Button' Name '\n' Text '{' Punctuation '\n' Text ' ' Text 'toggle' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ',' Punctuation ' ' Text 'bevel' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text '\n' Text ' ' Text 'void' Keyword.Type ' ' Text 'OnRedraw' Name.Function '(' Punctuation 'Surface' Name ' ' Text 'surface' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'cw' Name ' ' Text '=' Operator ' ' Text 'clientSize' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'ch' Name ' ' Text '=' Operator ' ' Text 'clientSize' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'surface' Name '.' Punctuation 'SetForeground' Name '(' Punctuation 'black' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'checked' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'SetBackground' Name '(' Punctuation 'Color' Name ' ' Text '{' Punctuation ' ' Text '85' Literal.Number.Integer ',' Punctuation '85' Literal.Number.Integer ',' Punctuation '85' Literal.Number.Integer ' ' Text '}' Punctuation ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'Area' Name '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ',' Punctuation ' ' Text 'cw' Name '-1' Literal.Number.Integer ',' Punctuation ' ' Text 'ch' Name '-1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text 'surface' Name '.' Punctuation 'LineStipple' Name '(' Punctuation '0xAAAA' Literal.Number.Hex ')' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'surface' Name '.' Punctuation 'Rectangle' Name '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ',' Punctuation 'cw' Name '-1' Literal.Number.Integer ',' Punctuation 'ch' Name '-1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'active' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'LineStipple' Name '(' Punctuation '0xAAAA' Literal.Number.Hex ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'Rectangle' Name '(' Punctuation '2' Literal.Number.Integer ',' Punctuation '2' Literal.Number.Integer ',' Punctuation 'cw' Name '-3' Literal.Number.Integer ',' Punctuation 'ch' Name '-3' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'AnchorEditor' Name ':' Operator ':' Operator 'NotifyClicked' Name '(' Punctuation 'Button' Name ' ' Text 'button' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'x' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'y' Name ',' Punctuation ' ' Text 'Modifiers' Name ' ' Text 'mods' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'AnchorDropBox' Name ' ' Text 'anchorDropBox' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'AnchorDropBox' Name ')' Punctuation 'master' Name ';' Punctuation '\n' Text ' ' Text 'Anchor' Name ' ' Text 'anchor' Name ' ' Text '=' Operator ' ' Text 'anchorDropBox' Name '.' Punctuation 'anchorValue' Name ';' Punctuation '\n' Text ' ' Text 'Window' Name ' ' Text 'control' Name ' ' Text '=' Operator ' ' Text 'anchorDropBox' Name '.' Punctuation 'control' Name ';' Punctuation '\n' Text ' ' Text 'DataBox' Name ' ' Text 'dropMaster' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'DataBox' Name ')' Punctuation 'anchorDropBox' Name '.' Punctuation 'master' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'id' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'id' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'switch' Keyword '(' Punctuation 'id' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '0' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '1' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '2' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '3' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '|' Operator '|' Operator ' ' Text 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation '0' Literal.Number.Integer ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '1' Literal.Number.Integer ' ' Text '|' Operator '|' Operator ' ' Text 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '3' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation '3' Literal.Number.Integer ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation 'id' Name ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text '\n' Text ' ' Text '//anchor.horz.type = none;\n' Comment.Single ' ' Text '//anchor.vert.type = none;\n' Comment.Single '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'vpw' Name ',' Punctuation ' ' Text 'vph' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'w' Name ',' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text 'Window' Name ' ' Text 'parent' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'parent' Name ';' Punctuation '\n' Text '\n' Text ' ' Text '// Fix Anchor\n' Comment.Single ' ' Text 'x' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'position' Name '.' Punctuation 'x' Name ';' Punctuation '\n' Text ' ' Text 'y' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'position' Name '.' Punctuation 'y' Name ';' Punctuation '\n' Text ' ' Text 'w' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'size' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'h' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'size' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'vpw' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'clientSize' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'vph' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'clientSize' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'control' Name '.' Punctuation 'nonClient' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'vpw' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'size' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'vph' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'size' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation '(' Punctuation '(' Punctuation 'BorderBits' Name ')' Punctuation 'control' Name '.' Punctuation 'borderStyle' Name ')' Punctuation '.' Punctuation 'fixed' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'control' Name '.' Punctuation 'dontScrollHorz' Name ' ' Text '&' Operator '&' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'w' Name ')' Punctuation ' ' Text 'vpw' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'control' Name '.' Punctuation 'dontScrollVert' Name ' ' Text '&' Operator '&' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'h' Name ')' Punctuation ' ' Text 'vph' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'x' Name ';' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation 'x' Name ' ' Text '/' Operator ' ' Text 'vpw' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'y' Name ';' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation 'y' Name ' ' Text '/' Operator ' ' Text 'vph' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'vpw' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;\n' Comment.Single ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation 'vpw' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vpw' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'vph' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;\n' Comment.Single ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation 'vph' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vph' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vpw' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//anchor.horz.type = anchor.horz.distance ? offset : 0;\n' Comment.Single ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vpw' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vpw' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vph' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//anchor.vert.type = anchor.vert.distance ? offset : 0;\n' Comment.Single ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation '(' Punctuation '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vph' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vph' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text 'tempString' Name '[' Punctuation '1024' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '"' Literal.String '"' Literal.String ';' Punctuation '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'needClass' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'string' Name ' ' Text '=' Operator ' ' Text 'anchor' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'needClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'contents' Name ' ' Text '=' Operator ' ' Text 'string' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'dropMaster' Name '.' Punctuation 'SetData' Name '(' Punctuation '&' Operator 'anchor' Name ',' Punctuation ' ' Text 'false' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'anchor' Name ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'private' Keyword ' ' Text 'class' Keyword ' ' Text 'AnchorRelButton' Name.Label ' ' Text ':' Punctuation ' ' Text 'Button' Name '\n' Text '{' Punctuation '\n' Text ' ' Text 'toggle' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'bevel' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'text' Name ' ' Text '=' Operator ' ' Text '"' Literal.String '%' Literal.String '"' Literal.String ';' Punctuation '\n' Text ' ' Text '//bevelOver = true;\n' Comment.Single '\n' Text ' ' Text 'void' Keyword.Type ' ' Text 'OnRedraw' Name.Function '(' Punctuation 'Surface' Name ' ' Text 'surface' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'cw' Name ' ' Text '=' Operator ' ' Text 'clientSize' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'ch' Name ' ' Text '=' Operator ' ' Text 'clientSize' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' \n ' Text 'if' Keyword '(' Punctuation 'checked' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'SetForeground' Name '(' Punctuation 'black' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'SetForeground' Name '(' Punctuation 'Color' Name '{' Punctuation '170' Literal.Number.Integer ',' Punctuation '170' Literal.Number.Integer ',' Punctuation '170' Literal.Number.Integer '}' Punctuation ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'WriteText' Name '(' Punctuation '5' Literal.Number.Integer ',' Punctuation '2' Literal.Number.Integer ',' Punctuation ' ' Text '"' Literal.String '%' Literal.String '"' Literal.String ',' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'active' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'LineStipple' Name '(' Punctuation '0xAAAA' Literal.Number.Hex ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'surface' Name '.' Punctuation 'Rectangle' Name '(' Punctuation '3' Literal.Number.Integer ',' Punctuation '3' Literal.Number.Integer ',' Punctuation 'cw' Name '-4' Literal.Number.Integer ',' Punctuation 'ch' Name '-4' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'AnchorEditor' Name ':' Operator ':' Operator 'NotifyClicked' Name '(' Punctuation 'Button' Name ' ' Text 'button' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'x' Name ',' Punctuation ' ' Text 'int' Keyword.Type ' ' Text 'y' Name ',' Punctuation ' ' Text 'Modifiers' Name ' ' Text 'mods' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'AnchorDropBox' Name ' ' Text 'anchorDropBox' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'AnchorDropBox' Name ')' Punctuation 'master' Name ';' Punctuation '\n' Text ' ' Text 'Anchor' Name ' ' Text 'anchor' Name ' ' Text '=' Operator ' ' Text 'anchorDropBox' Name '.' Punctuation 'anchorValue' Name ';' Punctuation '\n' Text ' ' Text 'Window' Name ' ' Text 'control' Name ' ' Text '=' Operator ' ' Text 'anchorDropBox' Name '.' Punctuation 'control' Name ';' Punctuation '\n' Text ' ' Text 'DataBox' Name ' ' Text 'dropMaster' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'DataBox' Name ')' Punctuation 'anchorDropBox' Name '.' Punctuation 'master' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'id' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'id' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation '(' Punctuation 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '|' Operator '|' Operator ' ' Text 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation '(' Punctuation '!' Operator 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ')' Punctuation ' ' Text '|' Operator '|' Operator ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'button' Name '.' Punctuation 'checked' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'middleRelative' Name ';' Punctuation ' ' Text 'else' Keyword ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'none' Name ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation '(' Punctuation 'id' Name ' ' Text '+' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation '%' Operator '4' Literal.Number.Integer ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation '(' Punctuation 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '1' Literal.Number.Integer ' ' Text '|' Operator '|' Operator ' ' Text 'id' Name ' ' Text '=' Operator '=' Operator ' ' Text '3' Literal.Number.Integer ')' Punctuation ' ' Text '&' Operator '&' Operator ' ' Text '(' Punctuation '(' Punctuation '!' Operator 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ')' Punctuation ' ' Text '|' Operator '|' Operator ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'button' Name '.' Punctuation 'checked' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'middleRelative' Name ';' Punctuation ' ' Text 'else' Keyword ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'none' Name ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'relButtons' Name '[' Punctuation '(' Punctuation 'id' Name ' ' Text '+' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation '%' Operator '4' Literal.Number.Integer ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'switch' Keyword '(' Punctuation 'id' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '0' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'relative' Name.Label ' ' Text ':' Punctuation ' ' Text '(' Punctuation 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ')' Punctuation ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '1' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'relative' Name.Label ' ' Text ':' Punctuation ' ' Text '(' Punctuation 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ')' Punctuation ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '2' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'relative' Name.Label ' ' Text ':' Punctuation ' ' Text '(' Punctuation 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ')' Punctuation ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '3' Literal.Number.Integer ':' Operator ' ' Text 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '?' Operator ' ' Text 'relative' Name.Label ' ' Text ':' Punctuation ' ' Text '(' Punctuation 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '?' Operator ' ' Text 'offset' Name.Label ' ' Text ':' Punctuation ' ' Text 'none' Name ')' Punctuation ';' Punctuation ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'buttons' Name '[' Punctuation 'id' Name ']' Punctuation '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'none' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator ' ' Text 'none' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'vpw' Name ',' Punctuation ' ' Text 'vph' Name ';' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'x' Name ',' Punctuation 'y' Name ',' Punctuation 'w' Name ',' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text 'Window' Name ' ' Text 'parent' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'parent' Name ';' Punctuation '\n' Text '\n' Text ' ' Text '// Fix Anchor\n' Comment.Single ' ' Text 'x' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'position' Name '.' Punctuation 'x' Name ';' Punctuation '\n' Text ' ' Text 'y' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'position' Name '.' Punctuation 'y' Name ';' Punctuation '\n' Text ' ' Text 'w' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'size' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'h' Name ' ' Text '=' Operator ' ' Text 'control' Name '.' Punctuation 'size' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'vpw' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'clientSize' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'vph' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'clientSize' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'control' Name '.' Punctuation 'nonClient' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'vpw' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'size' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'vph' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'size' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation '(' Punctuation '(' Punctuation 'BorderBits' Name ')' Punctuation 'control' Name '.' Punctuation 'borderStyle' Name ')' Punctuation '.' Punctuation 'fixed' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'control' Name '.' Punctuation 'dontScrollHorz' Name ' ' Text '&' Operator '&' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'w' Name ')' Punctuation ' ' Text 'vpw' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'w' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'control' Name '.' Punctuation 'dontScrollVert' Name ' ' Text '&' Operator '&' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'h' Name ')' Punctuation ' ' Text 'vph' Name ' ' Text '=' Operator ' ' Text 'parent' Name '.' Punctuation 'scrollArea' Name '.' Punctuation 'h' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'x' Name ';' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation 'x' Name ' ' Text '/' Operator ' ' Text 'vpw' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'y' Name ';' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation 'y' Name ' ' Text '/' Operator ' ' Text 'vph' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'vpw' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//else if(anchor.right.type == relative) anchor.right.percent = (float) (x + w) / vpw;\n' Comment.Single ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation 'vpw' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vpw' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'offset' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text 'vph' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//else if(anchor.bottom.type == relative) anchor.bottom.percent = (float) (y + h) / vph;\n' Comment.Single ' ' Text 'else' Keyword ' ' Text 'if' Name.Function '(' Punctuation 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation 'vph' Name ' ' Text '-' Operator ' ' Text '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vph' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'anchor' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'anchor' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vpw' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//anchor.horz.type = anchor.horz.distance ? offset : none;\n' Comment.Single ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'horz' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation ' ' Text '(' Punctuation '(' Punctuation 'x' Name ' ' Text '+' Operator ' ' Text 'w' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vpw' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vpw' Name ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation '!' Operator 'anchor' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text '!' Operator 'anchor' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ')' Punctuation ' \n ' Text '{' Punctuation '\n' Text ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'distance' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vph' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '//anchor.vert.type = anchor.vert.distance ? offset : none;\n' Comment.Single ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'anchor' Name '.' Punctuation 'vert' Name '.' Punctuation 'percent' Name ' ' Text '=' Operator ' ' Text '(' Punctuation 'float' Keyword.Type ')' Punctuation '(' Punctuation '(' Punctuation 'y' Name ' ' Text '+' Operator ' ' Text 'h' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '-' Operator ' ' Text '(' Punctuation 'vph' Name ' ' Text '/' Operator ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation ' ' Text '/' Operator ' ' Text 'vph' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text 'tempString' Name '[' Punctuation '1024' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '"' Literal.String '"' Literal.String ';' Punctuation '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'needClass' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'string' Name ' ' Text '=' Operator ' ' Text 'anchor' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'needClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'contents' Name ' ' Text '=' Operator ' ' Text 'string' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'dropMaster' Name '.' Punctuation 'SetData' Name '(' Punctuation '&' Operator 'anchor' Name ',' Punctuation ' ' Text 'false' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'anchorDropBox' Name '.' Punctuation 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'anchor' Name ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'private' Keyword ' ' Text 'class' Keyword ' ' Text 'AnchorEditor' Name.Label ' ' Text ':' Punctuation ' ' Text 'Window' Name '\n' Text '{' Punctuation '\n' Text ' ' Text 'interim' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'borderStyle' Name ' ' Text '=' Operator ' ' Text 'deepContour' Name ';' Punctuation '\n' Text ' ' Text 'size' Name '.' Punctuation 'h' Name ' ' Text '=' Operator ' ' Text '92' Literal.Number.Integer ';' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'OnKeyDown' Name.Function '(' Punctuation 'Key' Name ' ' Text 'key' Name ',' Punctuation ' ' Text 'unichar' Keyword.Type ' ' Text 'ch' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'key' Name ' ' Text '=' Operator '=' Operator ' ' Text 'escape' Name ')' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'master' Name '.' Punctuation 'OnKeyDown' Name '(' Punctuation 'key' Name ',' Punctuation ' ' Text 'ch' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation '\n' Text '\n' Text 'private' Keyword ' ' Text 'class' Keyword ' ' Text 'AnchorDropBox' Name.Label ' ' Text ':' Punctuation ' ' Text 'DropBox' Name '\n' Text '{' Punctuation '\n' Text ' ' Text 'Anchor' Name ' ' Text 'anchorValue' Name ';' Punctuation '\n' Text ' ' Text 'Window' Name ' ' Text 'control' Name ';' Punctuation '\n' Text ' ' Text 'Button' Name ' ' Text 'relButtons' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text 'buttons' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'AnchorEditor' Name ' ' Text 'anchorEditor' Name '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'master' Name ' ' Text '=' Operator ' ' Text 'this' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'autoCreate' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'Window' Name ' ' Text 'OnDropDown' Name.Function '(' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'int' Keyword.Type ' ' Text 'c' Name ';' Punctuation '\n' Text ' ' Text 'Button' Name '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchorEditor' Name ',' Punctuation '\n' Text ' ' Text 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'left' Name ' ' Text '=' Operator ' ' Text '28' Literal.Number.Integer ',' Punctuation ' ' Text 'top' Name ' ' Text '=' Operator ' ' Text '28' Literal.Number.Integer ',' Punctuation ' ' Text 'right' Name ' ' Text '=' Operator ' ' Text '28' Literal.Number.Integer ',' Punctuation ' ' Text 'bottom' Name ' ' Text '=' Operator ' ' Text '28' Literal.Number.Integer ' ' Text '}' Punctuation ',' Punctuation '\n' Text ' ' Text 'inactive' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ',' Punctuation ' ' Text 'disabled' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin '\n' Text ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'for' Keyword '(' Punctuation 'c' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ';' Punctuation ' ' Text 'c' Name '<' Operator '4' Literal.Number.Integer ';' Punctuation ' ' Text 'c' Name '+' Operator '+' Operator ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'Button' Name ' ' Text 'button' Name ' ' Text '=' Operator ' ' Text 'buttons' Name '[' Punctuation 'c' Name ']' Punctuation ' ' Text '=' Operator ' ' Text 'AnchorButton' Name ' \n ' Text '{' Punctuation ' \n ' Text 'anchorEditor' Name ',' Punctuation ' ' Text 'id' Name ' ' Text '=' Operator ' ' Text 'c' Name ',' Punctuation '\n' Text ' ' Text 'size' Name ' ' Text '=' Operator ' ' Text 'Size' Name ' ' Text '{' Punctuation ' ' Text '(' Punctuation 'c' Name '%' Operator '2' Literal.Number.Integer ')' Punctuation '?' Operator '10' Literal.Number.Integer ':' Operator '28' Literal.Number.Integer ',' Punctuation ' ' Text '(' Punctuation 'c' Name '%' Operator '2' Literal.Number.Integer ')' Punctuation '?' Operator '28' Literal.Number.Integer ':' Operator '10' Literal.Number.Integer ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'Button' Name ' ' Text 'relButton' Name ' ' Text '=' Operator ' ' Text 'relButtons' Name '[' Punctuation 'c' Name ']' Punctuation ' ' Text '=' Operator ' ' Text 'AnchorRelButton' Name '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'anchorEditor' Name ',' Punctuation ' ' Text 'id' Name ' ' Text '=' Operator ' ' Text 'c' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation ';' Punctuation '\n' Text '\n' Text ' ' Text 'switch' Keyword '(' Punctuation 'c' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '0' Literal.Number.Integer ':' Operator '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '!' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'left' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ' ' Text '|' Operator '|' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'relButton' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' \n ' Text 'button' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'left' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'relButton' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'left' Name ' ' Text '=' Operator ' ' Text '5' Literal.Number.Integer ',' Punctuation ' ' Text 'vert' Name ' ' Text '=' Operator ' ' Text '16' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '1' Literal.Number.Integer ':' Operator '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '!' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'top' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ' ' Text '|' Operator '|' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'relButton' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text '\n' Text ' ' Text 'button' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'top' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'relButton' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'top' Name ' ' Text '=' Operator ' ' Text '5' Literal.Number.Integer ',' Punctuation ' ' Text 'horz' Name ' ' Text '=' Operator ' ' Text '16' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '2' Literal.Number.Integer ':' Operator ' \n ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '!' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'right' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ' ' Text '|' Operator '|' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'horz' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'relButton' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' \n ' Text 'button' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'right' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'relButton' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'right' Name ' ' Text '=' Operator ' ' Text '5' Literal.Number.Integer ',' Punctuation ' ' Text 'vert' Name ' ' Text '=' Operator ' ' Text '16' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text 'case' Keyword ' ' Text '3' Literal.Number.Integer ':' Operator ' \n ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '&' Operator '&' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '!' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'button' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchorValue' Name '.' Punctuation 'bottom' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'relative' Name ' ' Text '|' Operator '|' Operator ' ' Text 'anchorValue' Name '.' Punctuation 'vert' Name '.' Punctuation 'type' Name ' ' Text '=' Operator '=' Operator ' ' Text 'middleRelative' Name ')' Punctuation ' ' Text 'relButton' Name '.' Punctuation 'checked' Name ' ' Text '=' Operator ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text '\n' Text ' ' Text 'button' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'bottom' Name ' ' Text '=' Operator ' ' Text '0' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'relButton' Name '.' Punctuation 'anchor' Name ' ' Text '=' Operator ' ' Text 'Anchor' Name ' ' Text '{' Punctuation ' ' Text 'bottom' Name ' ' Text '=' Operator ' ' Text '5' Literal.Number.Integer ',' Punctuation ' ' Text 'horz' Name ' ' Text '=' Operator ' ' Text '16' Literal.Number.Integer ' ' Text '}' Punctuation ';' Punctuation '\n' Text ' ' Text 'break' Keyword ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'anchorEditor' Name '.' Punctuation 'Create' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'anchorEditor' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' \n ' Text 'void' Keyword.Type ' ' Text 'OnCloseDropDown' Name.Function '(' Punctuation 'Window' Name ' ' Text 'anchorEditor' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text '// TOFIX: Patch for update bug\n' Comment.Single ' ' Text 'master' Name '.' Punctuation 'Update' Name '(' Punctuation 'null' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'anchorEditor' Name '.' Punctuation 'Destroy' Name '(' Punctuation '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'DataBox' Name ':' Operator ':' Operator 'NotifyTextEntry' Name '(' Punctuation 'AnchorDropBox' Name ' ' Text 'dropBox' Name ',' Punctuation ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'string' Name ',' Punctuation ' ' Text 'bool' Keyword.Type ' ' Text 'save' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'Anchor' Name ' ' Text 'anchor' Name ' ' Text '=' Operator ' ' Text 'dropBox' Name '.' Punctuation 'anchorValue' Name ';' Punctuation '\n' Text ' ' Text 'Window' Name ' ' Text 'control' Name ' ' Text '=' Operator ' ' Text 'dropBox' Name '.' Punctuation 'control' Name ';' Punctuation '\n' Text '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'save' Name ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'if' Keyword '(' Punctuation 'anchor' Name '.' Punctuation 'OnGetDataFromString' Name '(' Punctuation 'string' Name ')' Punctuation ')' Punctuation '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'SetData' Name '(' Punctuation '&' Operator 'anchor' Name ',' Punctuation ' ' Text 'false' Name.Builtin ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'dropBox' Name '.' Punctuation 'anchorValue' Name ' ' Text '=' Operator ' ' Text 'anchor' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'else' Keyword '\n' Text ' ' Text '{' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text 'tempString' Name '[' Punctuation '1024' Literal.Number.Integer ']' Punctuation ' ' Text '=' Operator ' ' Text '"' Literal.String '"' Literal.String ';' Punctuation '\n' Text ' ' Text 'bool' Keyword.Type ' ' Text 'needClass' Name ' ' Text '=' Operator ' ' Text 'false' Name.Builtin ';' Punctuation '\n' Text ' ' Text 'char' Keyword.Type ' ' Text '*' Operator ' ' Text 'string' Name ' ' Text '=' Operator ' ' Text 'anchor' Name '.' Punctuation 'OnGetString' Name '(' Punctuation 'tempString' Name ',' Punctuation ' ' Text 'null' Name.Builtin ',' Punctuation ' ' Text '&' Operator 'needClass' Name ')' Punctuation ';' Punctuation '\n' Text ' ' Text 'dropBox' Name '.' Punctuation 'contents' Name ' ' Text '=' Operator ' ' Text 'string' Name ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text ' ' Text 'return' Keyword ' ' Text 'true' Name.Builtin ';' Punctuation '\n' Text ' ' Text '}' Punctuation '\n' Text '}' Punctuation '\n' Text