mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-16 08:49:31 +02:00
Fixed codetools node cache and added icons
git-svn-id: trunk@3638 -
This commit is contained in:
parent
912fe26086
commit
bec5c13181
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -389,10 +389,12 @@ images/components/tsavepicturedialog.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tscrollbar.ico -text svneol=unset#image/x-icon
|
||||
images/components/tscrollbar.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tscrollbox.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tshape.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tspeedbutton.ico -text svneol=unset#image/x-icon
|
||||
images/components/tspeedbutton.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tspinedit.ico -text svneol=unset#image/x-icon
|
||||
images/components/tspinedit.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tstatictext.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tstatusbar.ico -text svneol=unset#image/x-icon
|
||||
images/components/tstatusbar.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/ttimer.ico -text svneol=unset#image/x-icon
|
||||
@ -404,6 +406,7 @@ images/components/ttoolbar.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/ttrackbar.ico -text svneol=unset#image/x-icon
|
||||
images/components/ttrackbar.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/ttreeview.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/tupdown.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components/unregisteredcomponent.xpm -text svneol=native#image/x-xpixmap
|
||||
images/components_images.lrs svneol=native#text/pascal
|
||||
images/downarrow.ico -text svneol=unset#image/x-icon
|
||||
|
@ -125,6 +125,8 @@ function FindCommentEnd(const ASource: string; StartPos: integer;
|
||||
NestedComments: boolean): integer;
|
||||
function FindNextCompilerDirective(const ASource: string; StartPos: integer;
|
||||
NestedComments: boolean): integer;
|
||||
function CleanCodeFromComments(const DirtyCode: string;
|
||||
NestedComments: boolean): string;
|
||||
|
||||
// line ranges and indent
|
||||
procedure GetLineStartEndAtPosition(const Source:string; Position:integer;
|
||||
@ -169,11 +171,15 @@ function CompareSubStrings(const Find, Txt: string;
|
||||
FindStartPos, TxtStartPos, Len: integer; CaseSensitive: boolean): integer;
|
||||
function CompareIdentifiers(Identifier1, Identifier2: PChar): integer;
|
||||
|
||||
//
|
||||
function CleanCodeFromComments(const DirtyCode: string;
|
||||
NestedComments: boolean): string;
|
||||
// space and special chars
|
||||
function TrimCodeSpace(const ACode: string): string;
|
||||
function CodeIsOnlySpace(const ACode: string; FromPos, ToPos: integer): boolean;
|
||||
function StringToPascalConst(const s: string): string;
|
||||
|
||||
// other useful stuff
|
||||
procedure RaiseCatchableException(const Msg: string);
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@ -1853,7 +1859,7 @@ begin
|
||||
ReadComment(DirtyPos);
|
||||
end;
|
||||
end;
|
||||
Result:=LeftStr(Result,CleanPos);
|
||||
SetLength(Result,CleanPos-1);
|
||||
end;
|
||||
|
||||
function CompareIdentifiers(Identifier1, Identifier2: PChar): integer;
|
||||
@ -1990,6 +1996,68 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function StringToPascalConst(const s: string): string;
|
||||
|
||||
function Convert(var DestStr: string): integer;
|
||||
var
|
||||
SrcLen, SrcPos, DestPos: integer;
|
||||
c: char;
|
||||
i: integer;
|
||||
begin
|
||||
SrcLen:=length(s);
|
||||
DestPos:=0;
|
||||
for SrcPos:=1 to SrcLen do begin
|
||||
inc(DestPos);
|
||||
c:=s[SrcPos];
|
||||
if c>=' ' then begin
|
||||
if DestStr<>'' then
|
||||
DestStr[DestPos]:=c;
|
||||
end else begin
|
||||
if DestStr<>'' then
|
||||
DestStr[DestPos]:='#';
|
||||
inc(DestPos);
|
||||
i:=ord(c);
|
||||
if i>=100 then begin
|
||||
if DestStr<>'' then
|
||||
DestStr[DestPos]:=chr((i div 100)+ord('0'));
|
||||
inc(DestPos);
|
||||
end;
|
||||
if i>=10 then begin
|
||||
if DestStr<>'' then
|
||||
DestStr[DestPos]:=chr(((i div 10) mod 10)+ord('0'));
|
||||
inc(DestPos);
|
||||
end;
|
||||
if DestStr<>'' then
|
||||
DestStr[DestPos]:=chr((i mod 10)+ord('0'));
|
||||
end;
|
||||
end;
|
||||
Result:=DestPos;
|
||||
end;
|
||||
|
||||
var
|
||||
NewLen: integer;
|
||||
begin
|
||||
Result:='';
|
||||
NewLen:=Convert(Result);
|
||||
if NewLen=length(s) then begin
|
||||
Result:=s;
|
||||
exit;
|
||||
end;
|
||||
SetLength(Result,NewLen);
|
||||
Convert(Result);
|
||||
end;
|
||||
|
||||
procedure RaiseCatchableException(const Msg: string);
|
||||
begin
|
||||
{ Raises an exception.
|
||||
gdb does not catch fpc Exception objects, therefore this procedure raises
|
||||
a standard AV which is catched by gdb. }
|
||||
writeln('ERROR in CodeTools: ',Msg);
|
||||
// creates an exception, that gdb catches:
|
||||
writeln('Creating gdb catchable error:');
|
||||
if (length(Msg) div (length(Msg) div 10000))=0 then ;
|
||||
end;
|
||||
|
||||
function CountNeededLineEndsToAddForward(const Src: string;
|
||||
StartPos, MinLineEnds: integer): integer;
|
||||
var c:char;
|
||||
|
@ -120,6 +120,7 @@ type
|
||||
function OnParserProgress(Tool: TCustomCodeTool): boolean;
|
||||
function OnScannerProgress(Sender: TLinkScanner): boolean;
|
||||
function GetResourceTool: TResourceCodeTool;
|
||||
function GetOwnerForCodeTreeNode(ANode: TCodeTreeNode): TObject;
|
||||
public
|
||||
DefinePool: TDefinePool; // definition templates (rules)
|
||||
DefineTree: TDefineTree; // cache for defines (e.g. initial compiler values)
|
||||
@ -352,6 +353,11 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function GetOwnerForCodeTreeNode(ANode: TCodeTreeNode): TObject;
|
||||
begin
|
||||
Result:=CodeToolBoss.GetOwnerForCodeTreeNode(ANode);
|
||||
end;
|
||||
|
||||
|
||||
{ TCodeToolManager }
|
||||
|
||||
@ -382,39 +388,39 @@ end;
|
||||
|
||||
destructor TCodeToolManager.Destroy;
|
||||
begin
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] A');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] A');
|
||||
{$ENDIF}
|
||||
GlobalValues.Free;
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] B');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] B');
|
||||
{$ENDIF}
|
||||
FSourceTools.FreeAndClear;
|
||||
FSourceTools.Free;
|
||||
FResourceTool.Free;
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] C');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] C');
|
||||
{$ENDIF}
|
||||
DefineTree.Free;
|
||||
DefinePool.Free;
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] D');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] D');
|
||||
{$ENDIF}
|
||||
SourceChangeCache.Free;
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] E');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] E');
|
||||
{$ENDIF}
|
||||
SourceCache.Free;
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] F');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] F');
|
||||
{$ENDIF}
|
||||
inherited Destroy;
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] END');
|
||||
{$ENDIF}
|
||||
{$IFDEF MEM_CHECK}
|
||||
CheckHeap('TCodeToolManager.Destroy END');
|
||||
{$ENDIF}
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('[TCodeToolManager.Destroy] END');
|
||||
{$ENDIF}
|
||||
{$IFDEF MEM_CHECK}
|
||||
CheckHeap('TCodeToolManager.Destroy END');
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure TCodeToolManager.BeginUpdate;
|
||||
@ -1805,6 +1811,27 @@ begin
|
||||
Result:=FResourceTool;
|
||||
end;
|
||||
|
||||
function TCodeToolManager.GetOwnerForCodeTreeNode(ANode: TCodeTreeNode
|
||||
): TObject;
|
||||
var
|
||||
AToolNode: TAVLTreeNode;
|
||||
CurTool: TCustomCodeTool;
|
||||
RootCodeTreeNode: TCodeTreeNode;
|
||||
begin
|
||||
Result:=nil;
|
||||
if ANode=nil then exit;
|
||||
RootCodeTreeNode:=ANode.GetRoot;
|
||||
AToolNode:=FSourceTools.FindLowest;
|
||||
while (AToolNode<>nil) do begin
|
||||
CurTool:=TCustomCodeTool(AToolNode.Data);
|
||||
if CurTool.Tree.Root=RootCodeTreeNode then begin
|
||||
Result:=CurTool;
|
||||
exit;
|
||||
end;
|
||||
AToolNode:=FSourceTools.FindSuccessor(AToolNode);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCodeToolManager.OnToolSetWriteLock(Lock: boolean);
|
||||
begin
|
||||
if Lock then ActivateWriteLock else DeactivateWriteLock;
|
||||
@ -1885,12 +1912,14 @@ end;
|
||||
|
||||
initialization
|
||||
CodeToolBoss:=TCodeToolManager.Create;
|
||||
OnFindOwnerOfCodeTreeNode:=@GetOwnerForCodeTreeNode;
|
||||
|
||||
|
||||
finalization
|
||||
{$IFDEF CTDEBUG}
|
||||
writeln('codetoolmanager.pas - finalization');
|
||||
{$ENDIF}
|
||||
OnFindOwnerOfCodeTreeNode:=nil;
|
||||
CodeToolBoss.Free;
|
||||
CodeToolBoss:=nil;
|
||||
{$IFDEF CTDEBUG}
|
||||
|
@ -180,6 +180,8 @@ type
|
||||
function GetNodeOfType(ADesc: TCodeTreeNodeDesc): TCodeTreeNode;
|
||||
function GetLevel: integer;
|
||||
function DescAsString: string;
|
||||
function GetRoot: TCodeTreeNode;
|
||||
function FindOwner: TObject;
|
||||
procedure Clear;
|
||||
constructor Create;
|
||||
function ConsistencyCheck: integer; // 0 = ok
|
||||
@ -248,6 +250,14 @@ function CompareCodeTreeNodeExtWithPos(NodeData1, NodeData2: pointer): integer;
|
||||
function CompareCodeTreeNodeExtWithNodeStartPos(
|
||||
NodeData1, NodeData2: pointer): integer;
|
||||
|
||||
type
|
||||
TOnFindOwnerOfCodeTreeNode = function (ANode: TCodeTreeNode): TObject;
|
||||
|
||||
var
|
||||
OnFindOwnerOfCodeTreeNode: TOnFindOwnerOfCodeTreeNode;
|
||||
|
||||
function FindOwnerOfCodeTreeNode(ANode: TCodeTreeNode): TObject;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
@ -353,6 +363,14 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function FindOwnerOfCodeTreeNode(ANode: TCodeTreeNode): TObject;
|
||||
begin
|
||||
if Assigned(OnFindOwnerOfCodeTreeNode) then
|
||||
Result:=OnFindOwnerOfCodeTreeNode(ANode)
|
||||
else
|
||||
Result:=nil;
|
||||
end;
|
||||
|
||||
{ TCodeTreeNode }
|
||||
|
||||
constructor TCodeTreeNode.Create;
|
||||
@ -475,6 +493,18 @@ begin
|
||||
Result:=NodeDescriptionAsString(Desc);
|
||||
end;
|
||||
|
||||
function TCodeTreeNode.GetRoot: TCodeTreeNode;
|
||||
begin
|
||||
Result:=Self;
|
||||
while (Result.Parent<>nil) do Result:=Result.Parent;
|
||||
while (Result.PriorBrother<>nil) do Result:=Result.PriorBrother;
|
||||
end;
|
||||
|
||||
function TCodeTreeNode.FindOwner: TObject;
|
||||
begin
|
||||
Result:=FindOwnerOfCodeTreeNode(Self);
|
||||
end;
|
||||
|
||||
{ TCodeTree }
|
||||
|
||||
constructor TCodeTree.Create;
|
||||
|
@ -635,28 +635,41 @@ var
|
||||
NewSearchRangeFlags: TNodeCacheEntryFlags;
|
||||
|
||||
procedure RaiseConflictException;
|
||||
var s: string;
|
||||
var
|
||||
s: string;
|
||||
begin
|
||||
s:='[TCodeTreeNodeCache.Add] internal error:'
|
||||
+' conflicting cache nodes: Ident='+GetIdentifier(Identifier);
|
||||
if Owner<>nil then
|
||||
s:=s+' Owner='+Owner.DescAsString;
|
||||
s:=s+' Old: Start='+IntToStr(OldEntry^.CleanStartPos)
|
||||
+' End='+IntToStr(OldEntry^.CleanEndPos);
|
||||
if OldEntry^.NewNode<>nil then
|
||||
s:=s+' OwnerPos='+IntToStr(Owner.StartPos);
|
||||
s:=s+' Old: Range='+IntToStr(OldEntry^.CleanStartPos)
|
||||
+'-'+IntToStr(OldEntry^.CleanEndPos);
|
||||
if OldEntry^.NewNode<>nil then begin
|
||||
s:=s+' Node='+OldEntry^.NewNode.DescAsString
|
||||
else
|
||||
+' Pos='+IntToStr(OldEntry^.NewNode.StartPos);
|
||||
end else
|
||||
s:=s+' Node=nil';
|
||||
if OldEntry^.NewTool<>nil then
|
||||
if OldEntry^.NewTool<>nil then begin
|
||||
s:=s+' Tool='+OldEntry^.NewTool.MainFilename;
|
||||
s:=s+' New: Start='+IntToStr(CleanStartPos)
|
||||
+' End='+IntToStr(CleanEndPos);
|
||||
if NewNode<>nil then
|
||||
if OldEntry^.NewNode<>nil then
|
||||
s:=s+' Src="'
|
||||
+StringToPascalConst(
|
||||
copy(OldEntry^.NewTool.Src,OldEntry^.NewNode.StartPos,50))+'"';
|
||||
end;
|
||||
s:=s+' New: Range='+IntToStr(CleanStartPos)
|
||||
+'-'+IntToStr(CleanEndPos);
|
||||
if NewNode<>nil then begin
|
||||
s:=s+' Node='+NewNode.DescAsString
|
||||
else
|
||||
+' Pos='+IntToStr(NewNode.StartPos);
|
||||
end else
|
||||
s:=s+' Node=nil';
|
||||
if NewTool<>nil then
|
||||
if NewTool<>nil then begin
|
||||
s:=s+' Tool='+NewTool.MainFilename;
|
||||
if NewNode<>nil then
|
||||
s:=s+' Src="'
|
||||
+StringToPascalConst(copy(NewTool.Src,NewNode.StartPos,50))+'"';
|
||||
end;
|
||||
raise Exception.Create(s);
|
||||
end;
|
||||
|
||||
|
@ -928,6 +928,18 @@ begin
|
||||
Result:=FindIdentifierInContext(Params);
|
||||
end;
|
||||
if Result then begin
|
||||
|
||||
// adjust result for nicer position
|
||||
NewNode:=Params.NewNode;
|
||||
if (NewNode<>nil) and (NewNode.Desc=ctnProcedure)
|
||||
and (NewNode.FirstChild<>nil)
|
||||
and (NewNode.FirstChild.Desc=ctnProcedureHead) then begin
|
||||
// Instead of jumping to the procedure keyword,
|
||||
// jump to the procedure name
|
||||
Params.NewNode:=NewNode.FirstChild;
|
||||
Params.NewCleanPos:=Params.NewNode.StartPos;
|
||||
end;
|
||||
|
||||
Params.ConvertResultCleanPosToCaretPos;
|
||||
NewNode:=Params.NewNode;
|
||||
NewTool:=Params.NewCodeTool;
|
||||
@ -1528,6 +1540,13 @@ var
|
||||
if Found and (not (fdfDoNotCache in Params.NewFlags))
|
||||
and (FirstSearchedNode<>nil) then begin
|
||||
// cache result
|
||||
if (Params.NewNode<>nil) and (Params.NewNode.Desc=ctnProcedure) then begin
|
||||
// ToDo:
|
||||
// The search range is from start to end of search.
|
||||
// This does not work for overloaded procs.
|
||||
// -> do not cache
|
||||
exit;
|
||||
end;
|
||||
AddResultToNodeCaches(FirstSearchedNode,ContextNode,
|
||||
fdfSearchForward in Params.Flags,Params,SearchRangeFlags);
|
||||
end;
|
||||
@ -1583,7 +1602,7 @@ var
|
||||
// unsuccessful
|
||||
// -> return the found proc
|
||||
Params.SetResult(Params.FoundProc^.Context.Tool,
|
||||
Params.FoundProc^.Context.Node.FirstChild);
|
||||
Params.FoundProc^.Context.Node);
|
||||
FindIdentifierInContext:=true;
|
||||
exit;
|
||||
end;
|
||||
@ -1794,12 +1813,12 @@ var
|
||||
ctnTypeSection, ctnVarSection, ctnConstSection, ctnResStrSection,
|
||||
ctnLabelSection,
|
||||
ctnInterface, ctnImplementation,
|
||||
ctnClassPublished,ctnClassPublic,ctnClassProtected, ctnClassPrivate,
|
||||
ctnClassPublished,ctnClassPublic,ctnClassProtected,ctnClassPrivate,
|
||||
ctnRecordCase, ctnRecordVariant,
|
||||
ctnProcedureHead, ctnParameterList:
|
||||
// these codetreenodes build a parent-child-relationship, but
|
||||
// for pascal it is only a range, hence after searching in the
|
||||
// childs of the last node, it must be searched next in the childs
|
||||
// childs of the last node, search must continue in the childs
|
||||
// of the prior node
|
||||
;
|
||||
|
||||
@ -2963,14 +2982,13 @@ begin
|
||||
end;
|
||||
// search the identifier in the interface of the used unit
|
||||
Params.Save(OldInput);
|
||||
try
|
||||
Params.Flags:=[fdfIgnoreUsedUnits]+(fdfGlobalsSameIdent*Params.Flags)
|
||||
-[fdfExceptionOnNotFound];
|
||||
Result:=NewCodeTool.FindIdentifierInInterface(Self,Params);
|
||||
if Result then exit;
|
||||
finally
|
||||
Params.Load(OldInput);
|
||||
end;
|
||||
Params.Flags:=[fdfIgnoreUsedUnits]+(fdfGlobalsSameIdent*Params.Flags)
|
||||
-[fdfExceptionOnNotFound];
|
||||
Result:=NewCodeTool.FindIdentifierInInterface(Self,Params);
|
||||
if Result and (Params.NewNode.Desc=ctnProcedureHead) then
|
||||
writeln('CCC1 TFindDeclarationTool.FindIdentifierInUsesSection');
|
||||
if Result then exit;
|
||||
Params.Load(OldInput);
|
||||
// restore the cursor
|
||||
MoveCursorToCleanPos(UnitNameAtom.StartPos);
|
||||
end;
|
||||
@ -3083,15 +3101,14 @@ begin
|
||||
if InterfaceNode=nil then
|
||||
RaiseException(ctsInterfaceSectionNotFound);
|
||||
Params.Save(OldInput);
|
||||
try
|
||||
Params.Flags:=(fdfGlobalsSameIdent*Params.Flags)
|
||||
-[fdfExceptionOnNotFound,fdfSearchInParentNodes];
|
||||
Params.ContextNode:=InterfaceNode;
|
||||
Result:=FindIdentifierInContext(Params);
|
||||
finally
|
||||
Params.Load(OldInput)
|
||||
end;
|
||||
|
||||
Params.Flags:=(fdfGlobalsSameIdent*Params.Flags)
|
||||
-[fdfExceptionOnNotFound,fdfSearchInParentNodes];
|
||||
Params.ContextNode:=InterfaceNode;
|
||||
Result:=FindIdentifierInContext(Params);
|
||||
if Result and (Params.NewNode.Desc=ctnProcedureHead) then
|
||||
writeln('DDD1 ',MainFilename);
|
||||
Params.Load(OldInput);
|
||||
|
||||
// save result in cache
|
||||
if FInterfaceIdentifierCache=nil then
|
||||
FInterfaceIdentifierCache:=TInterfaceIdentifierCache.Create(Self);
|
||||
@ -5589,6 +5606,13 @@ begin
|
||||
NewFlags:=[];
|
||||
end;
|
||||
|
||||
procedure TFindDeclarationParams.SetResult(AFindContext: TFindContext);
|
||||
begin
|
||||
ClearResult;
|
||||
NewCodeTool:=AFindContext.Tool;
|
||||
NewNode:=AFindContext.Node;
|
||||
end;
|
||||
|
||||
procedure TFindDeclarationParams.SetResult(ANewCodeTool: TFindDeclarationTool;
|
||||
ANewNode: TCodeTreeNode);
|
||||
begin
|
||||
@ -5643,13 +5667,6 @@ begin
|
||||
FoundProc:=nil;
|
||||
end;
|
||||
|
||||
procedure TFindDeclarationParams.SetResult(AFindContext: TFindContext);
|
||||
begin
|
||||
ClearResult;
|
||||
NewCodeTool:=AFindContext.Tool;
|
||||
NewNode:=AFindContext.Node;
|
||||
end;
|
||||
|
||||
procedure TFindDeclarationParams.SetIdentifier(
|
||||
NewIdentifierTool: TFindDeclarationTool; NewIdentifier: PChar;
|
||||
NewOnIdentifierFound: TOnIdentifierFound);
|
||||
|
22
images/components/tshape.xpm
Normal file
22
images/components/tshape.xpm
Normal file
@ -0,0 +1,22 @@
|
||||
/* XPM */
|
||||
static char * tshape_xpm[] = {
|
||||
"15 15 4 1",
|
||||
" c None",
|
||||
". c #D5D6D5",
|
||||
"+ c #000000",
|
||||
"@ c #FFFFFF",
|
||||
"...............",
|
||||
"..+++++++++++..",
|
||||
".++@@@@@@@@@++.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".+@@@@@@@@@@@+.",
|
||||
".++@@@@@@@@@++.",
|
||||
"..+++++++++++..",
|
||||
"..............."};
|
163
images/components/tstatictext.xpm
Normal file
163
images/components/tstatictext.xpm
Normal file
@ -0,0 +1,163 @@
|
||||
/* XPM */
|
||||
static char * tstatictext_xpm[] = {
|
||||
"23 16 144 2",
|
||||
" c None",
|
||||
". c #929292",
|
||||
"+ c #747474",
|
||||
"@ c #818181",
|
||||
"# c #7C7C7C",
|
||||
"$ c #7D7D7D",
|
||||
"% c #777777",
|
||||
"& c #7E7E7E",
|
||||
"* c #878787",
|
||||
"= c #888888",
|
||||
"- c #7A7A7A",
|
||||
"; c #858585",
|
||||
"> c #7B7B7B",
|
||||
", c #8A8A8A",
|
||||
"' c #868686",
|
||||
") c #787878",
|
||||
"! c #727272",
|
||||
"~ c #0B0B0B",
|
||||
"{ c #000000",
|
||||
"] c #030303",
|
||||
"^ c #050505",
|
||||
"/ c #0A0A0A",
|
||||
"( c #040404",
|
||||
"_ c #FFFFFF",
|
||||
": c #F9F9F9",
|
||||
"< c #FCFCFC",
|
||||
"[ c #FDFDFD",
|
||||
"} c #BEBEBE",
|
||||
"| c #FFFDFF",
|
||||
"1 c #FEFEFE",
|
||||
"2 c #FDFFFE",
|
||||
"3 c #FDFEFF",
|
||||
"4 c #FDFDFF",
|
||||
"5 c #FDFBFF",
|
||||
"6 c #FEFCFF",
|
||||
"7 c #FEFEFF",
|
||||
"8 c #FFFFFD",
|
||||
"9 c #FFFEFF",
|
||||
"0 c #C2C2C2",
|
||||
"a c #020003",
|
||||
"b c #FFFAFF",
|
||||
"c c #FEFCFD",
|
||||
"d c #FBFBFB",
|
||||
"e c #FEFFFF",
|
||||
"f c #FCFFFF",
|
||||
"g c #F8F8FF",
|
||||
"h c #AA4747",
|
||||
"i c #FCFDFF",
|
||||
"j c #FEFFFD",
|
||||
"k c #FAFBF3",
|
||||
"l c #FFFFFA",
|
||||
"m c #010103",
|
||||
"n c #FFFBFF",
|
||||
"o c #FBFAFF",
|
||||
"p c #F6F9FF",
|
||||
"q c #FBFEFF",
|
||||
"r c #F9FAFF",
|
||||
"s c #FBF9FF",
|
||||
"t c #F6F8FF",
|
||||
"u c #FCFBF6",
|
||||
"v c #FAF5F9",
|
||||
"w c #EEECF9",
|
||||
"x c #FEFDFF",
|
||||
"y c #F8FBFF",
|
||||
"z c #F2F2FF",
|
||||
"A c #F4F6FF",
|
||||
"B c #F5F5FD",
|
||||
"C c #FCFBFF",
|
||||
"D c #F1EFFF",
|
||||
"E c #F5F1FF",
|
||||
"F c #F5F7FF",
|
||||
"G c #F8F2FF",
|
||||
"H c #000105",
|
||||
"I c #F7FBFF",
|
||||
"J c #F4F3FF",
|
||||
"K c #F1F4FF",
|
||||
"L c #F5F3FF",
|
||||
"M c #F9FBFF",
|
||||
"N c #F2F5FF",
|
||||
"O c #000103",
|
||||
"P c #FBFFFF",
|
||||
"Q c #F4F8FF",
|
||||
"R c #F3EFFF",
|
||||
"S c #F3F6FF",
|
||||
"T c #F5F2FF",
|
||||
"U c #F8FAFF",
|
||||
"V c #F0F6FF",
|
||||
"W c #F9FEFF",
|
||||
"X c #F8F1FF",
|
||||
"Y c #F1F1FF",
|
||||
"Z c #F7F1FF",
|
||||
"` c #F7F9FF",
|
||||
" . c #000201",
|
||||
".. c #FAFAFF",
|
||||
"+. c #F7F6FF",
|
||||
"@. c #050503",
|
||||
"#. c #FEFFFB",
|
||||
"$. c #FCFCFF",
|
||||
"%. c #FBFDFF",
|
||||
"&. c #FBFCFF",
|
||||
"*. c #F5F8FF",
|
||||
"=. c #FEFFF4",
|
||||
"-. c #C5C5C5",
|
||||
";. c #F8F8F8",
|
||||
">. c #8D8D8D",
|
||||
",. c #FDFEF9",
|
||||
"'. c #FCFEF9",
|
||||
"). c #FDFDFB",
|
||||
"!. c #FCFEFD",
|
||||
"~. c #FCFEFB",
|
||||
"{. c #FCFFF2",
|
||||
"]. c #FCFFF4",
|
||||
"^. c #F9FAFE",
|
||||
"/. c #FCFFF6",
|
||||
"(. c #FFFFF3",
|
||||
"_. c #FEFFF5",
|
||||
":. c #FFFFFB",
|
||||
"<. c #BCBCBC",
|
||||
"[. c #C2C2C0",
|
||||
"}. c #C3C0C7",
|
||||
"|. c #C2C1C6",
|
||||
"1. c #C2C0CB",
|
||||
"2. c #C2BFD0",
|
||||
"3. c #C3C1CE",
|
||||
"4. c #BEBFBA",
|
||||
"5. c #C9CBC0",
|
||||
"6. c #BBBCB7",
|
||||
"7. c #BEBEBC",
|
||||
"8. c #B9B8B4",
|
||||
"9. c #C2C3BE",
|
||||
"0. c #B7B7B5",
|
||||
"a. c #CACACA",
|
||||
"b. c #B5B5B5",
|
||||
"c. c #BBBBBB",
|
||||
"d. c #FAFAFC",
|
||||
"e. c #FDFAFF",
|
||||
"f. c #FDFCFA",
|
||||
"g. c #FDFBFC",
|
||||
"h. c #FDF9FF",
|
||||
"i. c #FCF8FF",
|
||||
"j. c #FEFDF9",
|
||||
"k. c #F8F8F0",
|
||||
"l. c #FFFEFC",
|
||||
"m. c #FAF7FE",
|
||||
". + @ @ @ @ @ @ @ @ # # $ % & * = - ; > , ' ) ",
|
||||
"! ~ { { { { { { { { ] ^ { / { { { ] { ( { { _ ",
|
||||
"@ { _ _ _ _ _ _ _ _ _ : _ < _ < _ [ < _ _ } _ ",
|
||||
"@ { | | 1 1 1 2 3 4 5 6 7 : 8 _ _ 9 _ _ [ 0 _ ",
|
||||
"& a b | c d e f f g h h i j k l 9 _ 9 _ _ _ ",
|
||||
"& m | n | o i p q r h h s t 8 u v _ 9 _ _ _ ",
|
||||
"& m 9 w x h h h y z h h h h A e 9 _ _ _ _ _ ",
|
||||
"& m B i C D E h h F h h G h h p f _ _ _ _ _ ",
|
||||
"& H f I J h h h h K h h L h h M N _ _ _ _ _ ",
|
||||
"& O P Q h h R h h S h h T h h U V _ e _ _ _ ",
|
||||
"& O q W h h X h h Y h h Z h h ` P _ e _ _ _ ",
|
||||
"& .f I ..h h h h g h h h h +.q _ _ j _ _ _ ",
|
||||
"+ @.#.f f i $.%.P P M &.%.*.f _ _ =._ _ [ -.;.",
|
||||
">.{ ,.'.).!.i ~.{.].e ^.#./.=.{.(._.:.;._ <._ ",
|
||||
", { [.0 }.|.[.[.|.1.2.3.4.5.6.7.8.9.0.a.b.c._ ",
|
||||
"# d.e.e.e.5 f.g.e.h.i.e.j.k.l.9 | m._ _ _ _ [ "};
|
83
images/components/tupdown.xpm
Normal file
83
images/components/tupdown.xpm
Normal file
@ -0,0 +1,83 @@
|
||||
/* XPM */
|
||||
static char * tupdown_xpm[] = {
|
||||
"21 21 59 1",
|
||||
" c None",
|
||||
". c #D5D6D5",
|
||||
"+ c #FFFFFF",
|
||||
"@ c #CBCBCB",
|
||||
"# c #101010",
|
||||
"$ c #D8D9D8",
|
||||
"% c #D3D4D3",
|
||||
"& c #D4D5D4",
|
||||
"* c #DCDDDC",
|
||||
"= c #A7A8A7",
|
||||
"- c #000000",
|
||||
"; c #D9DAD9",
|
||||
"> c #C5C6C5",
|
||||
", c #6F706F",
|
||||
"' c #C6C7C6",
|
||||
") c #727272",
|
||||
"! c #D6D7D6",
|
||||
"~ c #D7D8D7",
|
||||
"{ c #DBDCDB",
|
||||
"] c #C8C9C8",
|
||||
"^ c #717271",
|
||||
"/ c #E3E4E3",
|
||||
"( c #C9CAC9",
|
||||
"_ c #C4C5C4",
|
||||
": c #BEBFBE",
|
||||
"< c #787978",
|
||||
"[ c #8B8B8B",
|
||||
"} c #777777",
|
||||
"| c #4E4F4E",
|
||||
"1 c #454645",
|
||||
"2 c #474747",
|
||||
"3 c #4B4C4B",
|
||||
"4 c #3C3D3C",
|
||||
"5 c #666666",
|
||||
"6 c #6B6B6B",
|
||||
"7 c #6F6F6F",
|
||||
"8 c #707070",
|
||||
"9 c #747474",
|
||||
"0 c #595959",
|
||||
"a c #FAFBFA",
|
||||
"b c #F7F8F7",
|
||||
"c c #F8F8F8",
|
||||
"d c #C9C9C9",
|
||||
"e c #D2D3D2",
|
||||
"f c #CDCECD",
|
||||
"g c #868786",
|
||||
"h c #DDDEDD",
|
||||
"i c #E5E6E5",
|
||||
"j c #AAABAA",
|
||||
"k c #9C9D9C",
|
||||
"l c #9FA09F",
|
||||
"m c #A3A5A3",
|
||||
"n c #7B7B7B",
|
||||
"o c #080808",
|
||||
"p c #070707",
|
||||
"q c #050505",
|
||||
"r c #040404",
|
||||
"s c #030403",
|
||||
"t c #0B0B0B",
|
||||
".....................",
|
||||
"..+++++++++++++++@#..",
|
||||
"..+$%&&&&&&&&&&&*=-..",
|
||||
"..+;&.....-....;>,#..",
|
||||
"..+;&....---...;')#..",
|
||||
"..+;&...-----..;')#..",
|
||||
"..+;&..-------.;')#..",
|
||||
"..+;!~~~~~~~~~~{]^#..",
|
||||
"..+/(_>>>>>>>>>]:<#..",
|
||||
"..[}|1222222222234#..",
|
||||
"..5678888888888890-..",
|
||||
"..+abccccccccccb+d#..",
|
||||
"..+~e%%%%%%%%%%.fg#..",
|
||||
"..+;&..-------.;>,#..",
|
||||
"..+;&...-----..;')#..",
|
||||
"..+;&....---...;')#..",
|
||||
"..+;&.....-....;')#..",
|
||||
"..+;~;;;;;;;;;;h(^#..",
|
||||
"..+ijkllllllllllmn-..",
|
||||
"..opqrrrrrrrrrrrqst..",
|
||||
"....................."};
|
@ -1245,6 +1245,15 @@ LazarusResources.Add('tscrollbox','XPM',[
|
||||
+'.+@+@+@+.+.@.@@@@.",'#10'".@@#.@+@+@+@.@@#.@@@@.",'#10'"...................'
|
||||
+'..."};'#10
|
||||
]);
|
||||
LazarusResources.Add('tshape','XPM',[
|
||||
'/* XPM */'#10'static char * tshape_xpm[] = {'#10'"15 15 4 1",'#10'" '#9'c No'
|
||||
+'ne",'#10'".'#9'c #D5D6D5",'#10'"+'#9'c #000000",'#10'"@'#9'c #FFFFFF",'#10
|
||||
+'"...............",'#10'"..+++++++++++..",'#10'".++@@@@@@@@@++.",'#10'".+@@@'
|
||||
+'@@@@@@@@+.",'#10'".+@@@@@@@@@@@+.",'#10'".+@@@@@@@@@@@+.",'#10'".+@@@@@@@@@'
|
||||
+'@@+.",'#10'".+@@@@@@@@@@@+.",'#10'".+@@@@@@@@@@@+.",'#10'".+@@@@@@@@@@@+.",'
|
||||
+#10'".+@@@@@@@@@@@+.",'#10'".+@@@@@@@@@@@+.",'#10'".++@@@@@@@@@++.",'#10'"..'
|
||||
+'+++++++++++..",'#10'"..............."};'#10
|
||||
]);
|
||||
LazarusResources.Add('tspeedbutton','XPM',[
|
||||
'/* XPM */'#10'static char * tspeedbutton_xpm[] = {'#10'"19 17 7 1",'#10'" '#9
|
||||
+'c None",'#10'".'#9'c #FFFFFF",'#10'"+'#9'c #BEBEBE",'#10'"@'#9'c #000000",'
|
||||
@ -1302,6 +1311,65 @@ LazarusResources.Add('tspinedit','XPM',[
|
||||
+','#10'", { H 6 I J H H J K L M N O P Q R S T U V W _ ",'#10'"# X Y Y Y Z ` '
|
||||
+' .Y ..+.Y @.#.$.b | %._ _ _ _ [ "};'#10
|
||||
]);
|
||||
LazarusResources.Add('tstatictext','XPM',[
|
||||
'/* XPM */'#10'static char * tstatictext_xpm[] = {'#10'"23 16 144 2",'#10'" '
|
||||
+#9'c None",'#10'". '#9'c #929292",'#10'"+ '#9'c #747474",'#10'"@ '#9'c #8181'
|
||||
+'81",'#10'"# '#9'c #7C7C7C",'#10'"$ '#9'c #7D7D7D",'#10'"% '#9'c #777777",'
|
||||
+#10'"& '#9'c #7E7E7E",'#10'"* '#9'c #878787",'#10'"= '#9'c #888888",'#10'"- '
|
||||
+#9'c #7A7A7A",'#10'"; '#9'c #858585",'#10'"> '#9'c #7B7B7B",'#10'", '#9'c #8'
|
||||
+'A8A8A",'#10'"'' '#9'c #868686",'#10'") '#9'c #787878",'#10'"! '#9'c #727272'
|
||||
+'",'#10'"~ '#9'c #0B0B0B",'#10'"{ '#9'c #000000",'#10'"] '#9'c #030303",'#10
|
||||
+'"^ '#9'c #050505",'#10'"/ '#9'c #0A0A0A",'#10'"( '#9'c #040404",'#10'"_ '#9
|
||||
+'c #FFFFFF",'#10'": '#9'c #F9F9F9",'#10'"< '#9'c #FCFCFC",'#10'"[ '#9'c #FDF'
|
||||
+'DFD",'#10'"} '#9'c #BEBEBE",'#10'"| '#9'c #FFFDFF",'#10'"1 '#9'c #FEFEFE",'
|
||||
+#10'"2 '#9'c #FDFFFE",'#10'"3 '#9'c #FDFEFF",'#10'"4 '#9'c #FDFDFF",'#10'"5 '
|
||||
+#9'c #FDFBFF",'#10'"6 '#9'c #FEFCFF",'#10'"7 '#9'c #FEFEFF",'#10'"8 '#9'c #F'
|
||||
+'FFFFD",'#10'"9 '#9'c #FFFEFF",'#10'"0 '#9'c #C2C2C2",'#10'"a '#9'c #020003"'
|
||||
+','#10'"b '#9'c #FFFAFF",'#10'"c '#9'c #FEFCFD",'#10'"d '#9'c #FBFBFB",'#10
|
||||
+'"e '#9'c #FEFFFF",'#10'"f '#9'c #FCFFFF",'#10'"g '#9'c #F8F8FF",'#10'"h '#9
|
||||
+'c #AA4747",'#10'"i '#9'c #FCFDFF",'#10'"j '#9'c #FEFFFD",'#10'"k '#9'c #FAF'
|
||||
+'BF3",'#10'"l '#9'c #FFFFFA",'#10'"m '#9'c #010103",'#10'"n '#9'c #FFFBFF",'
|
||||
+#10'"o '#9'c #FBFAFF",'#10'"p '#9'c #F6F9FF",'#10'"q '#9'c #FBFEFF",'#10'"r '
|
||||
+#9'c #F9FAFF",'#10'"s '#9'c #FBF9FF",'#10'"t '#9'c #F6F8FF",'#10'"u '#9'c #F'
|
||||
+'CFBF6",'#10'"v '#9'c #FAF5F9",'#10'"w '#9'c #EEECF9",'#10'"x '#9'c #FEFDFF"'
|
||||
+','#10'"y '#9'c #F8FBFF",'#10'"z '#9'c #F2F2FF",'#10'"A '#9'c #F4F6FF",'#10
|
||||
+'"B '#9'c #F5F5FD",'#10'"C '#9'c #FCFBFF",'#10'"D '#9'c #F1EFFF",'#10'"E '#9
|
||||
+'c #F5F1FF",'#10'"F '#9'c #F5F7FF",'#10'"G '#9'c #F8F2FF",'#10'"H '#9'c #000'
|
||||
+'105",'#10'"I '#9'c #F7FBFF",'#10'"J '#9'c #F4F3FF",'#10'"K '#9'c #F1F4FF",'
|
||||
+#10'"L '#9'c #F5F3FF",'#10'"M '#9'c #F9FBFF",'#10'"N '#9'c #F2F5FF",'#10'"O '
|
||||
+#9'c #000103",'#10'"P '#9'c #FBFFFF",'#10'"Q '#9'c #F4F8FF",'#10'"R '#9'c #F'
|
||||
+'3EFFF",'#10'"S '#9'c #F3F6FF",'#10'"T '#9'c #F5F2FF",'#10'"U '#9'c #F8FAFF"'
|
||||
+','#10'"V '#9'c #F0F6FF",'#10'"W '#9'c #F9FEFF",'#10'"X '#9'c #F8F1FF",'#10
|
||||
+'"Y '#9'c #F1F1FF",'#10'"Z '#9'c #F7F1FF",'#10'"` '#9'c #F7F9FF",'#10'" .'#9
|
||||
+'c #000201",'#10'"..'#9'c #FAFAFF",'#10'"+.'#9'c #F7F6FF",'#10'"@.'#9'c #050'
|
||||
+'503",'#10'"#.'#9'c #FEFFFB",'#10'"$.'#9'c #FCFCFF",'#10'"%.'#9'c #FBFDFF",'
|
||||
+#10'"&.'#9'c #FBFCFF",'#10'"*.'#9'c #F5F8FF",'#10'"=.'#9'c #FEFFF4",'#10'"-.'
|
||||
+#9'c #C5C5C5",'#10'";.'#9'c #F8F8F8",'#10'">.'#9'c #8D8D8D",'#10'",.'#9'c #F'
|
||||
+'DFEF9",'#10'"''.'#9'c #FCFEF9",'#10'").'#9'c #FDFDFB",'#10'"!.'#9'c #FCFEFD'
|
||||
+'",'#10'"~.'#9'c #FCFEFB",'#10'"{.'#9'c #FCFFF2",'#10'"].'#9'c #FCFFF4",'#10
|
||||
+'"^.'#9'c #F9FAFE",'#10'"/.'#9'c #FCFFF6",'#10'"(.'#9'c #FFFFF3",'#10'"_.'#9
|
||||
+'c #FEFFF5",'#10'":.'#9'c #FFFFFB",'#10'"<.'#9'c #BCBCBC",'#10'"[.'#9'c #C2C'
|
||||
+'2C0",'#10'"}.'#9'c #C3C0C7",'#10'"|.'#9'c #C2C1C6",'#10'"1.'#9'c #C2C0CB",'
|
||||
+#10'"2.'#9'c #C2BFD0",'#10'"3.'#9'c #C3C1CE",'#10'"4.'#9'c #BEBFBA",'#10'"5.'
|
||||
+#9'c #C9CBC0",'#10'"6.'#9'c #BBBCB7",'#10'"7.'#9'c #BEBEBC",'#10'"8.'#9'c #B'
|
||||
+'9B8B4",'#10'"9.'#9'c #C2C3BE",'#10'"0.'#9'c #B7B7B5",'#10'"a.'#9'c #CACACA"'
|
||||
+','#10'"b.'#9'c #B5B5B5",'#10'"c.'#9'c #BBBBBB",'#10'"d.'#9'c #FAFAFC",'#10
|
||||
+'"e.'#9'c #FDFAFF",'#10'"f.'#9'c #FDFCFA",'#10'"g.'#9'c #FDFBFC",'#10'"h.'#9
|
||||
+'c #FDF9FF",'#10'"i.'#9'c #FCF8FF",'#10'"j.'#9'c #FEFDF9",'#10'"k.'#9'c #F8F'
|
||||
+'8F0",'#10'"l.'#9'c #FFFEFC",'#10'"m.'#9'c #FAF7FE",'#10'". + @ @ @ @ @ @ @ '
|
||||
+'@ # # $ % & * = - ; > , '' ) ",'#10'"! ~ { { { { { { { { ] ^ { / { { { ] { '
|
||||
+'( { { _ ",'#10'"@ { _ _ _ _ _ _ _ _ _ : _ < _ < _ [ < _ _ } _ ",'#10'"@ { |'
|
||||
+' | 1 1 1 2 3 4 5 6 7 : 8 _ _ 9 _ _ [ 0 _ ",'#10'"& a b | c d e f f g h h i '
|
||||
+'j k l 9 _ 9 _ _ _ ",'#10'"& m | n | o i p q r h h s t 8 u v _ 9 _ _ _ "'
|
||||
+','#10'"& m 9 w x h h h y z h h h h A e 9 _ _ _ _ _ ",'#10'"& m B i C D E '
|
||||
+'h h F h h G h h p f _ _ _ _ _ ",'#10'"& H f I J h h h h K h h L h h M N _'
|
||||
+' _ _ _ _ ",'#10'"& O P Q h h R h h S h h T h h U V _ e _ _ _ ",'#10'"& '
|
||||
+'O q W h h X h h Y h h Z h h ` P _ e _ _ _ ",'#10'"& .f I ..h h h h g h h'
|
||||
+' h h +.q _ _ j _ _ _ ",'#10'"+ @.#.f f i $.%.P P M &.%.*.f _ _ =._ _ [ -.'
|
||||
+';.",'#10'">.{ ,.''.).!.i ~.{.].e ^.#./.=.{.(._.:.;._ <._ ",'#10'", { [.0 }.'
|
||||
+'|.[.[.|.1.2.3.4.5.6.7.8.9.0.a.b.c._ ",'#10'"# d.e.e.e.5 f.g.e.h.i.e.j.k.l.9'
|
||||
+' | m._ _ _ _ [ "};'#10
|
||||
]);
|
||||
LazarusResources.Add('tstatusbar','XPM',[
|
||||
'/* XPM */'#10'static char * tstatusbar_xpm[] = {'#10'"21 13 5 1",'#10'" '#9
|
||||
+'c None",'#10'".'#9'c #000000",'#10'"+'#9'c #FFFFFF",'#10'"@'#9'c #C0C0C0",'
|
||||
@ -1365,3 +1433,32 @@ LazarusResources.Add('ttreeview','XPM',[
|
||||
+#10'".+@@@@@@@@@@@@@@@@@#@",'#10'".+@@@@@@@@@@@@@@@@@#@",'#10'".+###########'
|
||||
+'#######@",'#10'".@@@@@@@@@@@@@@@@@@@@"};'#10
|
||||
]);
|
||||
LazarusResources.Add('tupdown','XPM',[
|
||||
'/* XPM */'#10'static char * tupdown_xpm[] = {'#10'"21 21 59 1",'#10'" '#9'c '
|
||||
+'None",'#10'".'#9'c #D5D6D5",'#10'"+'#9'c #FFFFFF",'#10'"@'#9'c #CBCBCB",'#10
|
||||
+'"#'#9'c #101010",'#10'"$'#9'c #D8D9D8",'#10'"%'#9'c #D3D4D3",'#10'"&'#9'c #'
|
||||
+'D4D5D4",'#10'"*'#9'c #DCDDDC",'#10'"='#9'c #A7A8A7",'#10'"-'#9'c #000000",'
|
||||
+#10'";'#9'c #D9DAD9",'#10'">'#9'c #C5C6C5",'#10'",'#9'c #6F706F",'#10'"'''#9
|
||||
+'c #C6C7C6",'#10'")'#9'c #727272",'#10'"!'#9'c #D6D7D6",'#10'"~'#9'c #D7D8D7'
|
||||
+'",'#10'"{'#9'c #DBDCDB",'#10'"]'#9'c #C8C9C8",'#10'"^'#9'c #717271",'#10'"/'
|
||||
+#9'c #E3E4E3",'#10'"('#9'c #C9CAC9",'#10'"_'#9'c #C4C5C4",'#10'":'#9'c #BEBF'
|
||||
+'BE",'#10'"<'#9'c #787978",'#10'"['#9'c #8B8B8B",'#10'"}'#9'c #777777",'#10
|
||||
+'"|'#9'c #4E4F4E",'#10'"1'#9'c #454645",'#10'"2'#9'c #474747",'#10'"3'#9'c #'
|
||||
+'4B4C4B",'#10'"4'#9'c #3C3D3C",'#10'"5'#9'c #666666",'#10'"6'#9'c #6B6B6B",'
|
||||
+#10'"7'#9'c #6F6F6F",'#10'"8'#9'c #707070",'#10'"9'#9'c #747474",'#10'"0'#9
|
||||
+'c #595959",'#10'"a'#9'c #FAFBFA",'#10'"b'#9'c #F7F8F7",'#10'"c'#9'c #F8F8F8'
|
||||
+'",'#10'"d'#9'c #C9C9C9",'#10'"e'#9'c #D2D3D2",'#10'"f'#9'c #CDCECD",'#10'"g'
|
||||
+#9'c #868786",'#10'"h'#9'c #DDDEDD",'#10'"i'#9'c #E5E6E5",'#10'"j'#9'c #AAAB'
|
||||
+'AA",'#10'"k'#9'c #9C9D9C",'#10'"l'#9'c #9FA09F",'#10'"m'#9'c #A3A5A3",'#10
|
||||
+'"n'#9'c #7B7B7B",'#10'"o'#9'c #080808",'#10'"p'#9'c #070707",'#10'"q'#9'c #'
|
||||
+'050505",'#10'"r'#9'c #040404",'#10'"s'#9'c #030403",'#10'"t'#9'c #0B0B0B",'
|
||||
+#10'".....................",'#10'"..+++++++++++++++@#..",'#10'"..+$%&&&&&&&&'
|
||||
+'&&&*=-..",'#10'"..+;&.....-....;>,#..",'#10'"..+;&....---...;'')#..",'#10'"'
|
||||
+'..+;&...-----..;'')#..",'#10'"..+;&..-------.;'')#..",'#10'"..+;!~~~~~~~~~~'
|
||||
+'{]^#..",'#10'"..+/(_>>>>>>>>>]:<#..",'#10'"..[}|1222222222234#..",'#10'"..5'
|
||||
+'678888888888890-..",'#10'"..+abccccccccccb+d#..",'#10'"..+~e%%%%%%%%%%.fg#.'
|
||||
+'.",'#10'"..+;&..-------.;>,#..",'#10'"..+;&...-----..;'')#..",'#10'"..+;&..'
|
||||
+'..---...;'')#..",'#10'"..+;&.....-....;'')#..",'#10'"..+;~;;;;;;;;;;h(^#.."'
|
||||
+','#10'"..+ijkllllllllllmn-..",'#10'"..opqrrrrrrrrrrrqst..",'#10'"..........'
|
||||
+'..........."};'#10
|
||||
]);
|
||||
|
Loading…
Reference in New Issue
Block a user