Changeset 315
- Timestamp:
- Jun 19, 2024, 11:15:44 PM (5 months ago)
- Location:
- trunk
- Files:
-
- 27 added
- 6 deleted
- 18 edited
- 1 copied
- 46 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormClient.pas
r304 r315 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, 9 9 UGame, LCLType, Menus, ActnList, ComCtrls, dateutils, XMLConf, DOM, Math, 10 UGeometry, UGameClient, UGameProtocol, UThreading, UPlayer, UClientGUI, UFormMain;10 UGeometry, UGameClient, UGameProtocol, Threading, UPlayer, UClientGUI, UFormMain; 11 11 12 12 const -
trunk/Forms/UFormPlayersStats.pas
r243 r315 7 7 uses 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 9 Menus, ActnList, UGame, UListViewSort;9 Menus, ActnList, UGame, ListViewSort; 10 10 11 11 type -
trunk/Forms/UFormSettings.pas
r243 r315 55 55 56 56 uses 57 UCore, ULanguages, UTheme;57 UCore, Languages, Theme; 58 58 59 59 { TFormSettings } -
trunk/Packages/Common/ApplicationInfo.pas
r314 r315 1 unit UApplicationInfo; 2 3 {$mode delphi} 1 unit ApplicationInfo; 4 2 5 3 interface 6 4 7 5 uses 8 SysUtils, Classes, Forms, URegistry, Controls, Graphics, LCLType;6 SysUtils, Classes, Forms, RegistryEx, Controls, Graphics, LCLType; 9 7 10 8 type … … 59 57 procedure Register; 60 58 59 61 60 implementation 62 61 -
trunk/Packages/Common/Common.Delay.pas
r314 r315 1 unit UDelay; 2 3 {$mode delphi} 1 unit Common.Delay; 4 2 5 3 interface … … 73 71 74 72 end. 75 -
trunk/Packages/Common/Common.lpk
r313 r315 11 11 <PathDelim Value="\"/> 12 12 <SearchPaths> 13 <OtherUnitFiles Value="Forms"/> 13 14 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 14 15 </SearchPaths> … … 33 34 <Other> 34 35 <CompilerMessages> 35 <IgnoredMessages idx6058="True" idx50 24="True" idx3124="True" idx3123="True"/>36 <IgnoredMessages idx6058="True" idx5071="True" idx5024="True" idx3124="True" idx3123="True"/> 36 37 </CompilerMessages> 37 38 </Other> … … 41 42 Source: https://svn.zdechov.net/PascalClassLibrary/Common/"/> 42 43 <License Value="Copy left."/> 43 <Version Minor=" 9"/>44 <Files Count=" 29">44 <Version Minor="12"/> 45 <Files Count="36"> 45 46 <Item1> 46 47 <Filename Value="StopWatch.pas"/> … … 48 49 </Item1> 49 50 <Item2> 50 <Filename Value=" UCommon.pas"/>51 <UnitName Value=" UCommon"/>51 <Filename Value="Common.pas"/> 52 <UnitName Value="Common"/> 52 53 </Item2> 53 54 <Item3> 54 <Filename Value=" UDebugLog.pas"/>55 <HasRegisterProc Value="True"/> 56 <UnitName Value=" UDebugLog"/>55 <Filename Value="DebugLog.pas"/> 56 <HasRegisterProc Value="True"/> 57 <UnitName Value="DebugLog"/> 57 58 </Item3> 58 59 <Item4> 59 <Filename Value=" UDelay.pas"/>60 <UnitName Value=" UDelay"/>60 <Filename Value="Common.Delay.pas"/> 61 <UnitName Value="Common.Delay"/> 61 62 </Item4> 62 63 <Item5> 63 <Filename Value=" UPrefixMultiplier.pas"/>64 <HasRegisterProc Value="True"/> 65 <UnitName Value=" UPrefixMultiplier"/>64 <Filename Value="PrefixMultiplier.pas"/> 65 <HasRegisterProc Value="True"/> 66 <UnitName Value="PrefixMultiplier"/> 66 67 </Item5> 67 68 <Item6> 68 <Filename Value="U URI.pas"/>69 <UnitName Value="U URI"/>69 <Filename Value="URI.pas"/> 70 <UnitName Value="URI"/> 70 71 </Item6> 71 72 <Item7> 72 <Filename Value=" UThreading.pas"/>73 <UnitName Value=" UThreading"/>73 <Filename Value="Threading.pas"/> 74 <UnitName Value="Threading"/> 74 75 </Item7> 75 76 <Item8> 76 <Filename Value=" UMemory.pas"/>77 <UnitName Value=" UMemory"/>77 <Filename Value="Memory.pas"/> 78 <UnitName Value="Memory"/> 78 79 </Item8> 79 80 <Item9> 80 <Filename Value=" UResetableThread.pas"/>81 <UnitName Value=" UResetableThread"/>81 <Filename Value="ResetableThread.pas"/> 82 <UnitName Value="ResetableThread"/> 82 83 </Item9> 83 84 <Item10> 84 <Filename Value=" UPool.pas"/>85 <UnitName Value=" UPool"/>85 <Filename Value="Pool.pas"/> 86 <UnitName Value="Pool"/> 86 87 </Item10> 87 88 <Item11> 88 <Filename Value=" ULastOpenedList.pas"/>89 <HasRegisterProc Value="True"/> 90 <UnitName Value=" ULastOpenedList"/>89 <Filename Value="LastOpenedList.pas"/> 90 <HasRegisterProc Value="True"/> 91 <UnitName Value="LastOpenedList"/> 91 92 </Item11> 92 93 <Item12> 93 <Filename Value=" URegistry.pas"/>94 <UnitName Value=" URegistry"/>94 <Filename Value="RegistryEx.pas"/> 95 <UnitName Value="RegistryEx"/> 95 96 </Item12> 96 97 <Item13> 97 <Filename Value=" UJobProgressView.pas"/>98 <HasRegisterProc Value="True"/> 99 <UnitName Value=" UJobProgressView"/>98 <Filename Value="JobProgressView.pas"/> 99 <HasRegisterProc Value="True"/> 100 <UnitName Value="JobProgressView"/> 100 101 </Item13> 101 102 <Item14> 102 <Filename Value=" UXMLUtils.pas"/>103 <UnitName Value=" UXMLUtils"/>103 <Filename Value="XML.pas"/> 104 <UnitName Value="XML"/> 104 105 </Item14> 105 106 <Item15> 106 <Filename Value=" UApplicationInfo.pas"/>107 <HasRegisterProc Value="True"/> 108 <UnitName Value=" UApplicationInfo"/>107 <Filename Value="ApplicationInfo.pas"/> 108 <HasRegisterProc Value="True"/> 109 <UnitName Value="ApplicationInfo"/> 109 110 </Item15> 110 111 <Item16> 111 <Filename Value=" USyncCounter.pas"/>112 <UnitName Value=" USyncCounter"/>112 <Filename Value="SyncCounter.pas"/> 113 <UnitName Value="SyncCounter"/> 113 114 </Item16> 114 115 <Item17> 115 <Filename Value=" UListViewSort.pas"/>116 <HasRegisterProc Value="True"/> 117 <UnitName Value=" UListViewSort"/>116 <Filename Value="ListViewSort.pas"/> 117 <HasRegisterProc Value="True"/> 118 <UnitName Value="ListViewSort"/> 118 119 </Item17> 119 120 <Item18> 120 <Filename Value=" UPersistentForm.pas"/>121 <HasRegisterProc Value="True"/> 122 <UnitName Value=" UPersistentForm"/>121 <Filename Value="PersistentForm.pas"/> 122 <HasRegisterProc Value="True"/> 123 <UnitName Value="PersistentForm"/> 123 124 </Item18> 124 125 <Item19> 125 <Filename Value=" UFindFile.pas"/>126 <HasRegisterProc Value="True"/> 127 <UnitName Value=" UFindFile"/>126 <Filename Value="FindFile.pas"/> 127 <HasRegisterProc Value="True"/> 128 <UnitName Value="FindFile"/> 128 129 </Item19> 129 130 <Item20> 130 <Filename Value=" UScaleDPI.pas"/>131 <HasRegisterProc Value="True"/> 132 <UnitName Value=" UScaleDPI"/>131 <Filename Value="ScaleDPI.pas"/> 132 <HasRegisterProc Value="True"/> 133 <UnitName Value="ScaleDPI"/> 133 134 </Item20> 134 135 <Item21> 135 <Filename Value=" UTheme.pas"/>136 <HasRegisterProc Value="True"/> 137 <UnitName Value=" UTheme"/>136 <Filename Value="Theme.pas"/> 137 <HasRegisterProc Value="True"/> 138 <UnitName Value="Theme"/> 138 139 </Item21> 139 140 <Item22> 140 <Filename Value=" UStringTable.pas"/>141 <UnitName Value=" UStringTable"/>141 <Filename Value="StringTable.pas"/> 142 <UnitName Value="StringTable"/> 142 143 </Item22> 143 144 <Item23> 144 <Filename Value=" UMetaCanvas.pas"/>145 <UnitName Value=" UMetaCanvas"/>145 <Filename Value="MetaCanvas.pas"/> 146 <UnitName Value="MetaCanvas"/> 146 147 </Item23> 147 148 <Item24> 148 <Filename Value=" UGeometric.pas"/>149 <UnitName Value=" UGeometric"/>149 <Filename Value="Geometric.pas"/> 150 <UnitName Value="Geometric"/> 150 151 </Item24> 151 152 <Item25> 152 <Filename Value=" UTranslator.pas"/>153 <HasRegisterProc Value="True"/> 154 <UnitName Value=" UTranslator"/>153 <Filename Value="Translator.pas"/> 154 <HasRegisterProc Value="True"/> 155 <UnitName Value="Translator"/> 155 156 </Item25> 156 157 <Item26> 157 <Filename Value=" ULanguages.pas"/>158 <UnitName Value=" ULanguages"/>158 <Filename Value="Languages.pas"/> 159 <UnitName Value="Languages"/> 159 160 </Item26> 160 161 <Item27> 161 <Filename Value=" UFormAbout.pas"/>162 <UnitName Value=" UFormAbout"/>162 <Filename Value="PixelPointer.pas"/> 163 <UnitName Value="PixelPointer"/> 163 164 </Item27> 164 165 <Item28> 165 <Filename Value="UAboutDialog.pas"/> 166 <HasRegisterProc Value="True"/> 167 <UnitName Value="UAboutDialog"/> 166 <Filename Value="DataFile.pas"/> 167 <UnitName Value="DataFile"/> 168 168 </Item28> 169 169 <Item29> 170 <Filename Value=" UPixelPointer.pas"/>171 <UnitName Value=" UPixelPointer"/>170 <Filename Value="TestCase.pas"/> 171 <UnitName Value="TestCase"/> 172 172 </Item29> 173 <Item30> 174 <Filename Value="Generics.pas"/> 175 <UnitName Value="Generics"/> 176 </Item30> 177 <Item31> 178 <Filename Value="CommonPackage.pas"/> 179 <Type Value="Main Unit"/> 180 <UnitName Value="CommonPackage"/> 181 </Item31> 182 <Item32> 183 <Filename Value="Table.pas"/> 184 <UnitName Value="Table"/> 185 </Item32> 186 <Item33> 187 <Filename Value="FormEx.pas"/> 188 <HasRegisterProc Value="True"/> 189 <UnitName Value="FormEx"/> 190 </Item33> 191 <Item34> 192 <Filename Value="Forms\FormTests.pas"/> 193 <UnitName Value="FormTests"/> 194 </Item34> 195 <Item35> 196 <Filename Value="Forms\FormTest.pas"/> 197 <UnitName Value="FormTest"/> 198 </Item35> 199 <Item36> 200 <Filename Value="Forms\FormAbout.pas"/> 201 <UnitName Value="FormAbout"/> 202 </Item36> 173 203 </Files> 174 204 <CompatibilityMode Value="True"/> -
trunk/Packages/Common/Common.pas
r314 r315 1 unit UCommon; 2 3 {$mode delphi} 1 unit Common; 4 2 5 3 interface … … 8 6 {$IFDEF WINDOWS}Windows,{$ENDIF} 9 7 {$IFDEF UNIX}baseunix,{$ENDIF} 10 Classes, SysUtils, StrUtils, Dialogs, Process, LCLIntf, 11 FileUtil ; //, ShFolder, ShellAPI;8 Classes, SysUtils, StrUtils, Dialogs, Process, LCLIntf, Graphics, 9 FileUtil, Generics.Collections; //, ShFolder, ShellAPI; 12 10 13 11 type 14 12 TArrayOfByte = array of Byte; 15 TArrayOfString = array of string;16 13 TExceptionEvent = procedure(Sender: TObject; E: Exception) of object; 17 14 … … 35 32 DLLHandle1: HModule; 36 33 37 {$IFDEF WINDOWS} 38 GetUserNameEx: procedure (NameFormat: DWORD; 39 lpNameBuffer: LPSTR; nSize: PULONG); stdcall; 40 {$ENDIF} 34 {$IFDEF WINDOWS} 35 GetUserNameEx: procedure (NameFormat: DWORD; 36 lpNameBuffer: LPSTR; nSize: PULONG); stdcall; 37 {$ENDIF} 38 39 const 40 clLightBlue = TColor($FF8080); 41 clLightGreen = TColor($80FF80); 42 clLightRed = TColor($8080FF); 41 43 42 44 function AddLeadingZeroes(const aNumber, Length : integer) : string; … … 51 53 function ComputerName: string; 52 54 procedure DeleteFiles(APath, AFileSpec: string); 55 function Explode(Separator: Char; Data: string): TStringArray; 53 56 procedure ExecuteProgram(Executable: string; Parameters: array of string); 54 57 procedure FileDialogUpdateFilterFileType(FileDialog: TOpenDialog); … … 62 65 function GetFileFilterItemExt(Filter: string; Index: Integer): string; 63 66 function IntToBin(Data: Int64; Count: Byte): string; 67 function Implode(Separator: string; List: TList<string>): string; 68 function Implode(Separator: string; List: TStringList; Around: string = ''): string; 64 69 function LastPos(const SubStr: String; const S: String): Integer; 65 70 function LoadFileToStr(const FileName: TFileName): AnsiString; 66 71 function LoggedOnUserNameEx(Format: TUserNameFormat): string; 67 function MergeArray(A, B: array of string): T ArrayOfString;72 function MergeArray(A, B: array of string): TStringArray; 68 73 function OccurenceOfChar(What: Char; Where: string): Integer; 69 74 procedure OpenWebPage(URL: string); 75 procedure OpenEmail(Email: string); 70 76 procedure OpenFileInShell(FileName: string); 71 77 function PosFromIndex(SubStr: string; Text: string; … … 83 89 function SplitString(var Text: string; Count: Word): string; 84 90 function StripTags(const S: string): string; 85 function TryHexToInt(Data: string; varValue: Integer): Boolean;86 function TryBinToInt(Data: string; varValue: Integer): Boolean;91 function TryHexToInt(Data: string; out Value: Integer): Boolean; 92 function TryBinToInt(Data: string; out Value: Integer): Boolean; 87 93 procedure SortStrings(Strings: TStrings); 88 94 … … 201 207 end;*) 202 208 209 function Implode(Separator: string; List: TStringList; Around: string = ''): string; 210 var 211 I: Integer; 212 begin 213 Result := ''; 214 for I := 0 to List.Count - 1 do begin 215 Result := Result + Around + List[I] + Around; 216 if I < List.Count - 1 then Result := Result + Separator; 217 end; 218 end; 219 203 220 function LastPos(const SubStr: String; const S: String): Integer; 204 221 begin … … 246 263 end; 247 264 248 function TryHexToInt(Data: string; varValue: Integer): Boolean;265 function TryHexToInt(Data: string; out Value: Integer): Boolean; 249 266 var 250 267 I: Integer; … … 262 279 end; 263 280 264 function TryBinToInt(Data: string; varValue: Integer): Boolean;281 function TryBinToInt(Data: string; out Value: Integer): Boolean; 265 282 var 266 283 I: Integer; … … 290 307 end; 291 308 292 function Explode(Separator: char; Data: string): TArrayOfString; 293 begin 294 Result := nil; 295 SetLength(Result, 0); 296 while Pos(Separator, Data) > 0 do begin 309 function Explode(Separator: Char; Data: string): TStringArray; 310 var 311 Index: Integer; 312 begin 313 Result := Default(TStringArray); 314 repeat 315 Index := Pos(Separator, Data); 316 if Index > 0 then begin 317 SetLength(Result, Length(Result) + 1); 318 Result[High(Result)] := Copy(Data, 1, Index - 1); 319 Delete(Data, 1, Index); 320 end else Break; 321 until False; 322 if Data <> '' then begin 297 323 SetLength(Result, Length(Result) + 1); 298 Result[High(Result)] := Copy(Data, 1, Pos(Separator, Data) - 1); 299 Delete(Data, 1, Pos(Separator, Data)); 300 end; 301 SetLength(Result, Length(Result) + 1); 302 Result[High(Result)] := Data; 303 end; 304 305 {$IFDEF Windows} 324 Result[High(Result)] := Data; 325 end; 326 end; 327 328 function Implode(Separator: string; List: TList<string>): string; 329 var 330 I: Integer; 331 begin 332 Result := ''; 333 for I := 0 to List.Count - 1 do begin 334 Result := Result + List[I]; 335 if I < List.Count - 1 then Result := Result + Separator; 336 end; 337 end; 338 339 {$IFDEF WINDOWS} 306 340 function GetUserName: string; 307 341 const … … 311 345 begin 312 346 L := MAX_USERNAME_LENGTH + 2; 347 Result := Default(string); 313 348 SetLength(Result, L); 314 349 if Windows.GetUserName(PChar(Result), L) and (L > 0) then begin … … 324 359 end; 325 360 end; 326 {$ endif}361 {$ENDIF} 327 362 328 363 function ComputerName: string; 329 {$ ifdef mswindows}364 {$IFDEF WINDOWS} 330 365 const 331 366 INFO_BUFFER_SIZE = 32767; … … 342 377 end; 343 378 end; 344 {$ endif}345 {$ ifdef unix}379 {$ENDIF} 380 {$IFDEF UNIX} 346 381 var 347 382 Name: UtsName; … … 351 386 Result := Name.Nodename; 352 387 end; 353 {$ endif}354 355 {$ ifdef windows}388 {$ENDIF} 389 390 {$IFDEF WINDOWS} 356 391 function LoggedOnUserNameEx(Format: TUserNameFormat): string; 357 392 const … … 431 466 procedure LoadLibraries; 432 467 begin 433 {$IFDEF W indows}468 {$IFDEF WINDOWS} 434 469 DLLHandle1 := LoadLibrary('secur32.dll'); 435 470 if DLLHandle1 <> 0 then … … 442 477 procedure FreeLibraries; 443 478 begin 444 {$IFDEF W indows}479 {$IFDEF WINDOWS} 445 480 if DLLHandle1 <> 0 then FreeLibrary(DLLHandle1); 446 481 {$ENDIF} … … 475 510 end; 476 511 512 procedure OpenEmail(Email: string); 513 begin 514 OpenURL('mailto:' + Email); 515 end; 516 477 517 procedure OpenFileInShell(FileName: string); 478 518 begin … … 503 543 end; 504 544 505 function MergeArray(A, B: array of string): T ArrayOfString;506 var 507 I: Integer; 508 begin 509 Result := Default(T ArrayOfString);545 function MergeArray(A, B: array of string): TStringArray; 546 var 547 I: Integer; 548 begin 549 Result := Default(TStringArray); 510 550 SetLength(Result, Length(A) + Length(B)); 511 551 for I := 0 to Length(A) - 1 do -
trunk/Packages/Common/CommonPackage.pas
r314 r315 3 3 } 4 4 5 unit Common ;5 unit CommonPackage; 6 6 7 7 {$warn 5023 off : no warning about unused units} … … 9 9 10 10 uses 11 StopWatch, UCommon, UDebugLog, UDelay, UPrefixMultiplier, UURI, UThreading,12 UMemory, UResetableThread, UPool, ULastOpenedList, URegistry,13 UJobProgressView, UXMLUtils, UApplicationInfo, USyncCounter, UListViewSort,14 UPersistentForm, UFindFile, UScaleDPI, UTheme, UStringTable, UMetaCanvas,15 UGeometric, UTranslator, ULanguages, UFormAbout, UAboutDialog,16 UPixelPointer, LazarusPackageIntf;11 StopWatch, Common, DebugLog, Common.Delay, PrefixMultiplier, URI, Threading, 12 Memory, ResetableThread, Pool, LastOpenedList, RegistryEx, JobProgressView, 13 XML, ApplicationInfo, SyncCounter, ListViewSort, PersistentForm, FindFile, 14 ScaleDPI, Theme, StringTable, MetaCanvas, Geometric, Translator, Languages, 15 PixelPointer, DataFile, TestCase, Generics, Table, FormEx, FormTests, 16 FormTest, FormAbout, LazarusPackageIntf; 17 17 18 18 implementation … … 20 20 procedure Register; 21 21 begin 22 RegisterUnit(' UDebugLog', @UDebugLog.Register);23 RegisterUnit(' UPrefixMultiplier', @UPrefixMultiplier.Register);24 RegisterUnit(' ULastOpenedList', @ULastOpenedList.Register);25 RegisterUnit(' UJobProgressView', @UJobProgressView.Register);26 RegisterUnit(' UApplicationInfo', @UApplicationInfo.Register);27 RegisterUnit(' UListViewSort', @UListViewSort.Register);28 RegisterUnit(' UPersistentForm', @UPersistentForm.Register);29 RegisterUnit(' UFindFile', @UFindFile.Register);30 RegisterUnit(' UScaleDPI', @UScaleDPI.Register);31 RegisterUnit(' UTheme', @UTheme.Register);32 RegisterUnit(' UTranslator', @UTranslator.Register);33 RegisterUnit(' UAboutDialog', @UAboutDialog.Register);22 RegisterUnit('DebugLog', @DebugLog.Register); 23 RegisterUnit('PrefixMultiplier', @PrefixMultiplier.Register); 24 RegisterUnit('LastOpenedList', @LastOpenedList.Register); 25 RegisterUnit('JobProgressView', @JobProgressView.Register); 26 RegisterUnit('ApplicationInfo', @ApplicationInfo.Register); 27 RegisterUnit('ListViewSort', @ListViewSort.Register); 28 RegisterUnit('PersistentForm', @PersistentForm.Register); 29 RegisterUnit('FindFile', @FindFile.Register); 30 RegisterUnit('ScaleDPI', @ScaleDPI.Register); 31 RegisterUnit('Theme', @Theme.Register); 32 RegisterUnit('Translator', @Translator.Register); 33 RegisterUnit('FormEx', @FormEx.Register); 34 34 end; 35 35 -
trunk/Packages/Common/DebugLog.pas
r314 r315 1 unit UDebugLog; 2 3 {$mode delphi} 1 unit DebugLog; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, FileUtil, fgl, SyncObjs;6 Classes, SysUtils, FileUtil, Generics.Collections, SyncObjs; 9 7 10 8 type … … 15 13 Group: string; 16 14 Text: string; 15 end; 16 17 TDebugLogItems = class(TObjectList<TDebugLogItem>) 17 18 end; 18 19 … … 29 30 procedure SetMaxCount(const AValue: Integer); 30 31 public 31 Items: T FPGObjectList<TDebugLogItem>;32 Items: TDebugLogItems; 32 33 Lock: TCriticalSection; 33 34 procedure Add(Text: string; Group: string = ''); … … 44 45 45 46 procedure Register; 47 46 48 47 49 implementation … … 117 119 begin 118 120 inherited; 119 Items := T FPGObjectList<TDebugLogItem>.Create;121 Items := TDebugLogItems.Create; 120 122 Lock := TCriticalSection.Create; 121 123 MaxCount := 100; … … 126 128 destructor TDebugLog.Destroy; 127 129 begin 128 Items.Free;129 Lock.Free;130 FreeAndNil(Items); 131 FreeAndNil(Lock); 130 132 inherited; 131 133 end; 132 134 133 135 end. 134 -
trunk/Packages/Common/FindFile.pas
r314 r315 19 19 } 20 20 21 unit UFindFile;21 unit FindFile; 22 22 23 23 interface … … 35 35 private 36 36 s : TStringList; 37 38 37 fSubFolder : boolean; 39 38 fAttr: TFileAttrib; 40 39 fPath : string; 41 40 fFileMask : string; 42 43 41 procedure SetPath(Value: string); 44 42 procedure FileSearch(const inPath : string); … … 46 44 constructor Create(AOwner: TComponent); override; 47 45 destructor Destroy; override; 48 49 46 function SearchForFiles: TStringList; 50 47 published … … 65 62 procedure Register; 66 63 64 67 65 implementation 68 66 … … 77 75 constructor TFindFile.Create(AOwner: TComponent); 78 76 begin 79 inherited Create(AOwner);77 inherited; 80 78 Path := IncludeTrailingBackslash(UTF8Encode(GetCurrentDir)); 81 79 FileMask := FilterAll; … … 87 85 begin 88 86 s.Free; 89 inherited Destroy;87 inherited; 90 88 end; 91 89 … … 145 143 SysUtils.FindClose(Rec); 146 144 end; 147 end; 145 end; 148 146 149 147 end. 150 -
trunk/Packages/Common/Geometric.pas
r314 r315 1 unit UGeometric; 2 3 {$mode delphi} 1 unit Geometric; 4 2 5 3 interface … … 10 8 type 11 9 TPointArray = array of TPoint; 10 11 { TVector } 12 13 TVector = record 14 Position: TPoint; 15 Direction: TPoint; 16 function GetLength: Double; 17 function GetAngle: Double; 18 procedure SetLength(Value: Double); 19 class function Create(P1, P2: TPoint): TVector; static; 20 end; 12 21 13 22 function Distance(P1, P2: TPoint): Integer; … … 15 24 function AddPoint(const P1, P2: TPoint): TPoint; 16 25 function SubPoint(const P1, P2: TPoint): TPoint; 17 function PointToLineDistance(const P, V, W: TPoint ): Integer;26 function PointToLineDistance(const P, V, W: TPoint; out Intersect: TPoint): Integer; 18 27 function ComparePoint(P1, P2: TPoint): Boolean; 19 28 function RotatePoint(Center, P: TPoint; Angle: Double): TPoint; … … 27 36 function ShiftRect(ARect: TRect; Delta: TPoint): TRect; 28 37 38 29 39 implementation 30 40 … … 51 61 end; 52 62 53 function PointToLineDistance(const P, V, W: TPoint ): Integer;63 function PointToLineDistance(const P, V, W: TPoint; out Intersect: TPoint): Integer; 54 64 var 55 65 l2, t: Double; … … 69 79 if T < 0 then begin 70 80 Result := Distance(P, V); // Beyond the 'v' end of the segment 71 exit; 81 Intersect := V; 82 Exit; 72 83 end 73 84 else if T > 1 then begin 74 85 Result := Distance(P, W); // Beyond the 'w' end of the segment 86 Intersect := W; 75 87 Exit; 76 88 end; … … 78 90 TT.Y := Trunc(V.Y + T * (W.Y - V.Y)); 79 91 Result := Distance(P, TT); 92 Intersect := TT; 80 93 end; 81 94 … … 163 176 end; 164 177 178 { TVector } 179 180 function TVector.GetLength: Double; 181 begin 182 Result := Sqrt(Sqr(Direction.X) + Sqr(Direction.Y)); 183 end; 184 185 function TVector.GetAngle: Double; 186 begin 187 Result := ArcTan2(Direction.Y, Direction.X); 188 end; 189 190 procedure TVector.SetLength(Value: Double); 191 var 192 Angle: Double; 193 begin 194 Angle := GetAngle; 195 Direction := Point(Round(Cos(Angle) * Value), 196 Round(Sin(Angle) * Value)); 197 end; 198 199 class function TVector.Create(P1, P2: TPoint): TVector; 200 begin 201 Result.Position := P1; 202 Result.Direction := Point(P2.X - P1.X, P2.Y - P1.Y); 203 end; 165 204 166 205 end. 167 -
trunk/Packages/Common/JobProgressView.pas
r314 r315 1 unit UJobProgressView; 2 3 {$MODE Delphi} 1 unit JobProgressView; 4 2 5 3 interface … … 7 5 uses 8 6 SysUtils, Variants, Classes, Graphics, Controls, Forms, Syncobjs, 9 Dialogs, ComCtrls, StdCtrls, ExtCtrls, fgl, UThreading, Math,7 Dialogs, ComCtrls, StdCtrls, ExtCtrls, Generics.Collections, Threading, Math, 10 8 DateUtils; 11 9 … … 71 69 end; 72 70 73 TJobs = class(T FPGObjectList<TJob>)71 TJobs = class(TObjectList<TJob>) 74 72 end; 75 73 … … 156 154 end; 157 155 158 //var159 // FormJobProgressView: TFormJobProgressView;160 161 156 procedure Register; 162 157 163 158 resourcestring 164 159 SExecuted = 'Executed'; 160 165 161 166 162 implementation … … 186 182 try 187 183 try 188 //raise Exception.Create('Exception in job');189 184 ProgressView.CurrentJob.Method(Job); 190 185 except … … 642 637 begin 643 638 FLock.Free; 644 inherited Destroy;639 inherited; 645 640 end; 646 641 -
trunk/Packages/Common/Languages.pas
r314 r315 1 unit ULanguages; 2 3 {$mode delphi}{$H+} 1 unit Languages; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, fgl;6 Classes, SysUtils, Generics.Collections; 9 7 10 8 type … … 17 15 { TLanguages } 18 16 19 TLanguages = class(T FPGObjectList<TLanguage>)17 TLanguages = class(TObjectList<TLanguage>) 20 18 function SearchByCode(ACode: string): TLanguage; 21 19 procedure AddNew(Code: string; Name: string); … … 218 216 SLang_za = 'Zhuang'; 219 217 SLang_zh = 'Chinese'; 218 SLang_zh_Hans = 'Simplified Chinese'; 219 SLang_zh_Hant = 'Traditional Chinese'; 220 220 SLang_zu = 'Zulu'; 221 221 222 222 223 implementation … … 230 231 begin 231 232 I := 0; 232 while (I < Count) and ( TLanguage(Items[I]).Code <ACode) do Inc(I);233 if I < Count then Result := TLanguage(Items[I])233 while (I < Count) and (Items[I].Code <> ACode) do Inc(I); 234 if I < Count then Result := Items[I] 234 235 else Result := nil; 235 236 end; … … 441 442 AddNew('za', SLang_za); 442 443 AddNew('zh', SLang_zh); 444 AddNew('zh-Hant', SLang_zh_Hant); 445 AddNew('zh-Hans', SLang_zh_Hans); 443 446 AddNew('zu', SLang_zu); 444 447 end; 445 448 446 449 end. 447 -
trunk/Packages/Common/Languages/DebugLog.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Jiří Hajda <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: udebuglog.sfilenamenotdefined 14 #: debuglog.sfilenamenotdefined 15 msgctxt "debuglog.sfilenamenotdefined" 13 16 msgid "Filename not defined" 14 17 msgstr "Neurčen soubor" -
trunk/Packages/Common/Languages/DebugLog.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: udebuglog.sfilenamenotdefined4 #: debuglog.sfilenamenotdefined 5 5 msgid "Filename not defined" 6 6 msgstr "" -
trunk/Packages/Common/Languages/FindFile.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: \n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "Language: cs\n" 12 "X-Generator: Poedit 1.8.9\n" 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: ufindfile.sdirnotfound 14 #: findfile.sdirnotfound 15 msgctxt "findfile.sdirnotfound" 15 16 msgid "Directory not found" 16 17 msgstr "Adresář nenalezen" -
trunk/Packages/Common/Languages/FindFile.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: ufindfile.sdirnotfound4 #: findfile.sdirnotfound 5 5 msgid "Directory not found" 6 6 msgstr "" -
trunk/Packages/Common/Languages/FormAbout.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "Language: cs\n" 12 "X-Generator: Poedit 2.4.1\n" 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: uformabout.slicense 14 #: formabout.slicense 15 msgctxt "formabout.slicense" 15 16 msgid "License" 16 17 msgstr "Licence" 17 18 18 #: uformabout.sreleasedate 19 #: formabout.sreleasedate 20 msgctxt "formabout.sreleasedate" 19 21 msgid "Release date" 20 22 msgstr "Datum uvolnění" 21 23 22 #: uformabout.sversion 24 #: formabout.sversion 25 msgctxt "formabout.sversion" 23 26 msgid "Version" 24 27 msgstr "Verze" -
trunk/Packages/Common/Languages/FormAbout.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uformabout.slicense4 #: formabout.slicense 5 5 msgid "License" 6 6 msgstr "" 7 7 8 #: uformabout.sreleasedate8 #: formabout.sreleasedate 9 9 msgid "Release date" 10 10 msgstr "" 11 11 12 #: uformabout.sversion12 #: formabout.sversion 13 13 msgid "Version" 14 14 msgstr "" -
trunk/Packages/Common/Languages/JobProgressView.cs.po
r314 r315 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 2.2\n"12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: ujobprogressview.sestimatedtime14 #: jobprogressview.sestimatedtime 15 15 #, object-pascal-format 16 msgctxt "jobprogressview.sestimatedtime" 16 17 msgid "Estimated time: %s" 17 18 msgstr "Odhadovaný čas: %s" 18 19 19 #: ujobprogressview.sexecuted 20 #: jobprogressview.sexecuted 21 msgctxt "jobprogressview.sexecuted" 20 22 msgid "Executed" 21 23 msgstr "Vykonané" 22 24 23 #: ujobprogressview.sfinished 25 #: jobprogressview.sfinished 26 msgctxt "jobprogressview.sfinished" 24 27 msgid "Finished" 25 28 msgstr "Dokončené" 26 29 27 #: ujobprogressview.spleasewait 30 #: jobprogressview.spleasewait 31 msgctxt "jobprogressview.spleasewait" 28 32 msgid "Please wait..." 29 33 msgstr "Prosím čekejte..." 30 34 31 #: ujobprogressview.sterminate 35 #: jobprogressview.sterminate 36 msgctxt "jobprogressview.sterminate" 32 37 msgid "Termination" 33 38 msgstr "Přerušení" 34 39 35 #: ujobprogressview.stotalestimatedtime40 #: jobprogressview.stotalestimatedtime 36 41 #, object-pascal-format 42 msgctxt "jobprogressview.stotalestimatedtime" 37 43 msgid "Total estimated time: %s" 38 44 msgstr "Celkový odhadovaný čas: %s" -
trunk/Packages/Common/Languages/JobProgressView.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: ujobprogressview.sestimatedtime4 #: jobprogressview.sestimatedtime 5 5 #, object-pascal-format 6 6 msgid "Estimated time: %s" 7 7 msgstr "" 8 8 9 #: ujobprogressview.sexecuted9 #: jobprogressview.sexecuted 10 10 msgid "Executed" 11 11 msgstr "" 12 12 13 #: ujobprogressview.sfinished13 #: jobprogressview.sfinished 14 14 msgid "Finished" 15 15 msgstr "" 16 16 17 #: ujobprogressview.spleasewait17 #: jobprogressview.spleasewait 18 18 msgid "Please wait..." 19 19 msgstr "" 20 20 21 #: ujobprogressview.sterminate21 #: jobprogressview.sterminate 22 22 msgid "Termination" 23 23 msgstr "" 24 24 25 #: ujobprogressview.stotalestimatedtime25 #: jobprogressview.stotalestimatedtime 26 26 #, object-pascal-format 27 27 msgid "Total estimated time: %s" -
trunk/Packages/Common/Languages/Languages.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Jiří Hajda <software@mezservis.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 12 #: ulanguages.slangauto 12 "X-Generator: Poedit 3.0.1\n" 13 14 #: languages.slangauto 15 msgctxt "languages.slangauto" 13 16 msgid "Automatic" 14 17 msgstr "Automaticky" 15 18 16 #: ulanguages.slang_aa 19 #: languages.slang_aa 20 msgctxt "languages.slang_aa" 17 21 msgid "Afar" 18 22 msgstr "" 19 23 20 #: ulanguages.slang_ab 24 #: languages.slang_ab 25 msgctxt "languages.slang_ab" 21 26 msgid "Abkhazian" 22 27 msgstr "Abcházština" 23 28 24 #: ulanguages.slang_ae 29 #: languages.slang_ae 30 msgctxt "languages.slang_ae" 25 31 msgid "Avestan" 26 32 msgstr "" 27 33 28 #: ulanguages.slang_af 34 #: languages.slang_af 35 msgctxt "languages.slang_af" 29 36 msgid "Afrikaans" 30 37 msgstr "Afrikánština" 31 38 32 #: ulanguages.slang_ak 39 #: languages.slang_ak 40 msgctxt "languages.slang_ak" 33 41 msgid "Akan" 34 42 msgstr "" 35 43 36 #: ulanguages.slang_am 44 #: languages.slang_am 45 msgctxt "languages.slang_am" 37 46 msgid "Amharic" 38 47 msgstr "" 39 48 40 #: ulanguages.slang_an 49 #: languages.slang_an 50 msgctxt "languages.slang_an" 41 51 msgid "Aragonese" 42 52 msgstr "" 43 53 44 #: ulanguages.slang_ar 54 #: languages.slang_ar 55 msgctxt "languages.slang_ar" 45 56 msgid "Arabic" 46 57 msgstr "Arabština" 47 58 48 #: ulanguages.slang_as 59 #: languages.slang_as 60 msgctxt "languages.slang_as" 49 61 msgid "Assamese" 50 62 msgstr "" 51 63 52 #: ulanguages.slang_av 64 #: languages.slang_av 65 msgctxt "languages.slang_av" 53 66 msgid "Avaric" 54 67 msgstr "" 55 68 56 #: ulanguages.slang_ay 69 #: languages.slang_ay 70 msgctxt "languages.slang_ay" 57 71 msgid "Aymara" 58 72 msgstr "" 59 73 60 #: ulanguages.slang_az 74 #: languages.slang_az 75 msgctxt "languages.slang_az" 61 76 msgid "Azerbaijani" 62 77 msgstr "" 63 78 64 #: ulanguages.slang_ba 79 #: languages.slang_ba 80 msgctxt "languages.slang_ba" 65 81 msgid "Bashkir" 66 82 msgstr "" 67 83 68 #: ulanguages.slang_be 84 #: languages.slang_be 85 msgctxt "languages.slang_be" 69 86 msgid "Belarusian" 70 87 msgstr "" 71 88 72 #: ulanguages.slang_bg 89 #: languages.slang_bg 90 msgctxt "languages.slang_bg" 73 91 msgid "Bulgarian" 74 92 msgstr "Maďarština" 75 93 76 #: ulanguages.slang_bh 94 #: languages.slang_bh 95 msgctxt "languages.slang_bh" 77 96 msgid "Bihari" 78 97 msgstr "" 79 98 80 #: ulanguages.slang_bi 99 #: languages.slang_bi 100 msgctxt "languages.slang_bi" 81 101 msgid "Bislama" 82 102 msgstr "" 83 103 84 #: ulanguages.slang_bm 104 #: languages.slang_bm 105 msgctxt "languages.slang_bm" 85 106 msgid "Bambara" 86 107 msgstr "" 87 108 88 #: ulanguages.slang_bn 109 #: languages.slang_bn 110 msgctxt "languages.slang_bn" 89 111 msgid "Bengali" 90 112 msgstr "" 91 113 92 #: ulanguages.slang_bo 114 #: languages.slang_bo 115 msgctxt "languages.slang_bo" 93 116 msgid "Tibetan" 94 117 msgstr "Tibetština" 95 118 96 #: ulanguages.slang_br 119 #: languages.slang_br 120 msgctxt "languages.slang_br" 97 121 msgid "Breton" 98 122 msgstr "" 99 123 100 #: ulanguages.slang_bs 124 #: languages.slang_bs 125 msgctxt "languages.slang_bs" 101 126 msgid "Bosnian" 102 127 msgstr "" 103 128 104 #: ulanguages.slang_ca 129 #: languages.slang_ca 130 msgctxt "languages.slang_ca" 105 131 msgid "Catalan" 106 132 msgstr "Katalánština" 107 133 108 #: ulanguages.slang_ce 134 #: languages.slang_ce 135 msgctxt "languages.slang_ce" 109 136 msgid "Chechen" 110 137 msgstr "" 111 138 112 #: ulanguages.slang_ch 139 #: languages.slang_ch 140 msgctxt "languages.slang_ch" 113 141 msgid "Chamorro" 114 142 msgstr "" 115 143 116 #: ulanguages.slang_co 144 #: languages.slang_co 145 msgctxt "languages.slang_co" 117 146 msgid "Corsican" 118 147 msgstr "" 119 148 120 #: ulanguages.slang_cr 149 #: languages.slang_cr 150 msgctxt "languages.slang_cr" 121 151 msgid "Cree" 122 152 msgstr "Kríjština" 123 153 124 #: ulanguages.slang_cs 154 #: languages.slang_cs 155 msgctxt "languages.slang_cs" 125 156 msgid "Czech" 126 157 msgstr "Čeština" 127 158 128 #: ulanguages.slang_cv 159 #: languages.slang_cv 160 msgctxt "languages.slang_cv" 129 161 msgid "Chuvash" 130 162 msgstr "" 131 163 132 #: ulanguages.slang_cy 164 #: languages.slang_cy 165 msgctxt "languages.slang_cy" 133 166 msgid "Welsh" 134 167 msgstr "" 135 168 136 #: ulanguages.slang_da 169 #: languages.slang_da 170 msgctxt "languages.slang_da" 137 171 msgid "Danish" 138 172 msgstr "Dánština" 139 173 140 #: ulanguages.slang_de 174 #: languages.slang_de 175 msgctxt "languages.slang_de" 141 176 msgid "German" 142 177 msgstr "Němčina" 143 178 144 #: ulanguages.slang_de_at 179 #: languages.slang_de_at 180 msgctxt "languages.slang_de_at" 145 181 msgid "Austrian German" 146 182 msgstr "Australská němčina" 147 183 148 #: ulanguages.slang_de_ch 184 #: languages.slang_de_ch 185 msgctxt "languages.slang_de_ch" 149 186 msgid "Swiss German" 150 187 msgstr "Švédská němčina" 151 188 152 #: ulanguages.slang_dv 189 #: languages.slang_dv 190 msgctxt "languages.slang_dv" 153 191 msgid "Divehi" 154 192 msgstr "" 155 193 156 #: ulanguages.slang_dz 194 #: languages.slang_dz 195 msgctxt "languages.slang_dz" 157 196 msgid "Dzongkha" 158 197 msgstr "" 159 198 160 #: ulanguages.slang_ee 199 #: languages.slang_ee 200 msgctxt "languages.slang_ee" 161 201 msgid "Ewe" 162 202 msgstr "" 163 203 164 #: ulanguages.slang_el 204 #: languages.slang_el 205 msgctxt "languages.slang_el" 165 206 msgid "Greek" 166 207 msgstr "Řečtina" 167 208 168 #: ulanguages.slang_en 209 #: languages.slang_en 210 msgctxt "languages.slang_en" 169 211 msgid "English" 170 212 msgstr "Angličtina" 171 213 172 #: ulanguages.slang_en_au 214 #: languages.slang_en_au 215 msgctxt "languages.slang_en_au" 173 216 msgid "Australian English" 174 217 msgstr "Australská angličtina" 175 218 176 #: ulanguages.slang_en_ca 219 #: languages.slang_en_ca 220 msgctxt "languages.slang_en_ca" 177 221 msgid "Canadian English" 178 222 msgstr "Kanadská angličtina" 179 223 180 #: ulanguages.slang_en_gb 224 #: languages.slang_en_gb 225 msgctxt "languages.slang_en_gb" 181 226 msgid "British English" 182 227 msgstr "Britská angličtina" 183 228 184 #: ulanguages.slang_en_us 229 #: languages.slang_en_us 230 msgctxt "languages.slang_en_us" 185 231 msgid "American English" 186 232 msgstr "Americká angličtina" 187 233 188 #: ulanguages.slang_eo 234 #: languages.slang_eo 235 msgctxt "languages.slang_eo" 189 236 msgid "Esperanto" 190 237 msgstr "Esperanto" 191 238 192 #: ulanguages.slang_es 239 #: languages.slang_es 240 msgctxt "languages.slang_es" 193 241 msgid "Spanish" 194 242 msgstr "Španělština" 195 243 196 #: ulanguages.slang_et 244 #: languages.slang_et 245 msgctxt "languages.slang_et" 197 246 msgid "Estonian" 198 247 msgstr "Estonština" 199 248 200 #: ulanguages.slang_eu 249 #: languages.slang_eu 250 msgctxt "languages.slang_eu" 201 251 msgid "Basque" 202 252 msgstr "" 203 253 204 #: ulanguages.slang_fa 254 #: languages.slang_fa 255 msgctxt "languages.slang_fa" 205 256 msgid "Persian" 206 257 msgstr "Perština" 207 258 208 #: ulanguages.slang_ff 259 #: languages.slang_ff 260 msgctxt "languages.slang_ff" 209 261 msgid "Fulah" 210 262 msgstr "" 211 263 212 #: ulanguages.slang_fi 264 #: languages.slang_fi 265 msgctxt "languages.slang_fi" 213 266 msgid "Finnish" 214 267 msgstr "Finština" 215 268 216 #: ulanguages.slang_fj 269 #: languages.slang_fj 270 msgctxt "languages.slang_fj" 217 271 msgid "Fijian" 218 272 msgstr "" 219 273 220 #: ulanguages.slang_fo 274 #: languages.slang_fo 275 msgctxt "languages.slang_fo" 221 276 msgid "Faroese" 222 277 msgstr "" 223 278 224 #: ulanguages.slang_fr 279 #: languages.slang_fr 280 msgctxt "languages.slang_fr" 225 281 msgid "French" 226 282 msgstr "Francouzština" 227 283 228 #: ulanguages.slang_fr_be229 msgctxt " ulanguages.slang_fr_be"284 #: languages.slang_fr_be 285 msgctxt "languages.slang_fr_be" 230 286 msgid "Walloon" 231 287 msgstr "" 232 288 233 #: ulanguages.slang_fy 289 #: languages.slang_fy 290 msgctxt "languages.slang_fy" 234 291 msgid "Frisian" 235 292 msgstr "" 236 293 237 #: ulanguages.slang_ga 294 #: languages.slang_ga 295 msgctxt "languages.slang_ga" 238 296 msgid "Irish" 239 297 msgstr "Irština" 240 298 241 #: ulanguages.slang_gd 299 #: languages.slang_gd 300 msgctxt "languages.slang_gd" 242 301 msgid "Gaelic" 243 302 msgstr "" 244 303 245 #: ulanguages.slang_gl 304 #: languages.slang_gl 305 msgctxt "languages.slang_gl" 246 306 msgid "Gallegan" 247 307 msgstr "" 248 308 249 #: ulanguages.slang_gn 309 #: languages.slang_gn 310 msgctxt "languages.slang_gn" 250 311 msgid "Guarani" 251 312 msgstr "" 252 313 253 #: ulanguages.slang_gu 314 #: languages.slang_gu 315 msgctxt "languages.slang_gu" 254 316 msgid "Gujarati" 255 317 msgstr "" 256 318 257 #: ulanguages.slang_gv 319 #: languages.slang_gv 320 msgctxt "languages.slang_gv" 258 321 msgid "Manx" 259 322 msgstr "" 260 323 261 #: ulanguages.slang_ha 324 #: languages.slang_ha 325 msgctxt "languages.slang_ha" 262 326 msgid "Hausa" 263 327 msgstr "" 264 328 265 #: ulanguages.slang_he 329 #: languages.slang_he 330 msgctxt "languages.slang_he" 266 331 msgid "Hebrew" 267 332 msgstr "Hebrejština" 268 333 269 #: ulanguages.slang_hi 334 #: languages.slang_hi 335 msgctxt "languages.slang_hi" 270 336 msgid "Hindi" 271 337 msgstr "" 272 338 273 #: ulanguages.slang_ho 339 #: languages.slang_ho 340 msgctxt "languages.slang_ho" 274 341 msgid "Hiri Motu" 275 342 msgstr "" 276 343 277 #: ulanguages.slang_hr 344 #: languages.slang_hr 345 msgctxt "languages.slang_hr" 278 346 msgid "Croatian" 279 347 msgstr "Chorvatština" 280 348 281 #: ulanguages.slang_ht 349 #: languages.slang_ht 350 msgctxt "languages.slang_ht" 282 351 msgid "Haitian" 283 352 msgstr "" 284 353 285 #: ulanguages.slang_hu 354 #: languages.slang_hu 355 msgctxt "languages.slang_hu" 286 356 msgid "Hungarian" 287 357 msgstr "Maďarština" 288 358 289 #: ulanguages.slang_hy 359 #: languages.slang_hy 360 msgctxt "languages.slang_hy" 290 361 msgid "Armenian" 291 362 msgstr "Arménština" 292 363 293 #: ulanguages.slang_hz 364 #: languages.slang_hz 365 msgctxt "languages.slang_hz" 294 366 msgid "Herero" 295 367 msgstr "" 296 368 297 #: ulanguages.slang_ia 369 #: languages.slang_ia 370 msgctxt "languages.slang_ia" 298 371 msgid "Interlingua" 299 372 msgstr "" 300 373 301 #: ulanguages.slang_id 374 #: languages.slang_id 375 msgctxt "languages.slang_id" 302 376 msgid "Indonesian" 303 377 msgstr "" 304 378 305 #: ulanguages.slang_ie 379 #: languages.slang_ie 380 msgctxt "languages.slang_ie" 306 381 msgid "Interlingue" 307 382 msgstr "" 308 383 309 #: ulanguages.slang_ig 384 #: languages.slang_ig 385 msgctxt "languages.slang_ig" 310 386 msgid "Igbo" 311 387 msgstr "" 312 388 313 #: ulanguages.slang_ii 389 #: languages.slang_ii 390 msgctxt "languages.slang_ii" 314 391 msgid "Sichuan Yi" 315 392 msgstr "" 316 393 317 #: ulanguages.slang_ik 394 #: languages.slang_ik 395 msgctxt "languages.slang_ik" 318 396 msgid "Inupiaq" 319 397 msgstr "" 320 398 321 #: ulanguages.slang_io 399 #: languages.slang_io 400 msgctxt "languages.slang_io" 322 401 msgid "Ido" 323 402 msgstr "" 324 403 325 #: ulanguages.slang_is 404 #: languages.slang_is 405 msgctxt "languages.slang_is" 326 406 msgid "Icelandic" 327 407 msgstr "Islandština" 328 408 329 #: ulanguages.slang_it 409 #: languages.slang_it 410 msgctxt "languages.slang_it" 330 411 msgid "Italian" 331 412 msgstr "Italština" 332 413 333 #: ulanguages.slang_iu 414 #: languages.slang_iu 415 msgctxt "languages.slang_iu" 334 416 msgid "Inuktitut" 335 417 msgstr "" 336 418 337 #: ulanguages.slang_ja 419 #: languages.slang_ja 420 msgctxt "languages.slang_ja" 338 421 msgid "Japanese" 339 422 msgstr "Japonština" 340 423 341 #: ulanguages.slang_jv 424 #: languages.slang_jv 425 msgctxt "languages.slang_jv" 342 426 msgid "Javanese" 343 427 msgstr "" 344 428 345 #: ulanguages.slang_ka 429 #: languages.slang_ka 430 msgctxt "languages.slang_ka" 346 431 msgid "Georgian" 347 432 msgstr "Gruzínština" 348 433 349 #: ulanguages.slang_kg 434 #: languages.slang_kg 435 msgctxt "languages.slang_kg" 350 436 msgid "Kongo" 351 437 msgstr "Konžština" 352 438 353 #: ulanguages.slang_ki 439 #: languages.slang_ki 440 msgctxt "languages.slang_ki" 354 441 msgid "Kikuyu" 355 442 msgstr "" 356 443 357 #: ulanguages.slang_kj 444 #: languages.slang_kj 445 msgctxt "languages.slang_kj" 358 446 msgid "Kuanyama" 359 447 msgstr "" 360 448 361 #: ulanguages.slang_kk 449 #: languages.slang_kk 450 msgctxt "languages.slang_kk" 362 451 msgid "Kazakh" 363 452 msgstr "" 364 453 365 #: ulanguages.slang_kl 454 #: languages.slang_kl 455 msgctxt "languages.slang_kl" 366 456 msgid "Greenlandic" 367 457 msgstr "Grónština" 368 458 369 #: ulanguages.slang_km 459 #: languages.slang_km 460 msgctxt "languages.slang_km" 370 461 msgid "Khmer" 371 462 msgstr "" 372 463 373 #: ulanguages.slang_kn 464 #: languages.slang_kn 465 msgctxt "languages.slang_kn" 374 466 msgid "Kannada" 375 467 msgstr "Kannadština" 376 468 377 #: ulanguages.slang_ko 469 #: languages.slang_ko 470 msgctxt "languages.slang_ko" 378 471 msgid "Korean" 379 472 msgstr "Korejština" 380 473 381 #: ulanguages.slang_kr 474 #: languages.slang_kr 475 msgctxt "languages.slang_kr" 382 476 msgid "Kanuri" 383 477 msgstr "" 384 478 385 #: ulanguages.slang_ks 479 #: languages.slang_ks 480 msgctxt "languages.slang_ks" 386 481 msgid "Kashmiri" 387 482 msgstr "" 388 483 389 #: ulanguages.slang_ku 484 #: languages.slang_ku 485 msgctxt "languages.slang_ku" 390 486 msgid "Kurdish" 391 487 msgstr "" 392 488 393 #: ulanguages.slang_kv 489 #: languages.slang_kv 490 msgctxt "languages.slang_kv" 394 491 msgid "Komi" 395 492 msgstr "" 396 493 397 #: ulanguages.slang_kw 494 #: languages.slang_kw 495 msgctxt "languages.slang_kw" 398 496 msgid "Cornish" 399 497 msgstr "Kornština" 400 498 401 #: ulanguages.slang_ky 499 #: languages.slang_ky 500 msgctxt "languages.slang_ky" 402 501 msgid "Kirghiz" 403 502 msgstr "" 404 503 405 #: ulanguages.slang_la 504 #: languages.slang_la 505 msgctxt "languages.slang_la" 406 506 msgid "Latin" 407 507 msgstr "Latina" 408 508 409 #: ulanguages.slang_lb 509 #: languages.slang_lb 510 msgctxt "languages.slang_lb" 410 511 msgid "Luxembourgish" 411 512 msgstr "Lucemburština" 412 513 413 #: ulanguages.slang_lg 514 #: languages.slang_lg 515 msgctxt "languages.slang_lg" 414 516 msgid "Ganda" 415 517 msgstr "" 416 518 417 #: ulanguages.slang_li 519 #: languages.slang_li 520 msgctxt "languages.slang_li" 418 521 msgid "Limburgan" 419 522 msgstr "" 420 523 421 #: ulanguages.slang_ln 524 #: languages.slang_ln 525 msgctxt "languages.slang_ln" 422 526 msgid "Lingala" 423 527 msgstr "" 424 528 425 #: ulanguages.slang_lo 529 #: languages.slang_lo 530 msgctxt "languages.slang_lo" 426 531 msgid "Lao" 427 532 msgstr "Laoština" 428 533 429 #: ulanguages.slang_lt 534 #: languages.slang_lt 535 msgctxt "languages.slang_lt" 430 536 msgid "Lithuanian" 431 537 msgstr "Litevština" 432 538 433 #: ulanguages.slang_lu 539 #: languages.slang_lu 540 msgctxt "languages.slang_lu" 434 541 msgid "Luba-Katanga" 435 542 msgstr "" 436 543 437 #: ulanguages.slang_lv 544 #: languages.slang_lv 545 msgctxt "languages.slang_lv" 438 546 msgid "Latvian" 439 547 msgstr "Lotyština" 440 548 441 #: ulanguages.slang_mg 549 #: languages.slang_mg 550 msgctxt "languages.slang_mg" 442 551 msgid "Malagasy" 443 552 msgstr "" 444 553 445 #: ulanguages.slang_mh 554 #: languages.slang_mh 555 msgctxt "languages.slang_mh" 446 556 msgid "Marshallese" 447 557 msgstr "" 448 558 449 #: ulanguages.slang_mi 559 #: languages.slang_mi 560 msgctxt "languages.slang_mi" 450 561 msgid "Maori" 451 562 msgstr "" 452 563 453 #: ulanguages.slang_mk 564 #: languages.slang_mk 565 msgctxt "languages.slang_mk" 454 566 msgid "Macedonian" 455 567 msgstr "Makedonština" 456 568 457 #: ulanguages.slang_ml 569 #: languages.slang_ml 570 msgctxt "languages.slang_ml" 458 571 msgid "Malayalam" 459 572 msgstr "" 460 573 461 #: ulanguages.slang_mn 574 #: languages.slang_mn 575 msgctxt "languages.slang_mn" 462 576 msgid "Mongolian" 463 577 msgstr "Mongolština" 464 578 465 #: ulanguages.slang_mo 579 #: languages.slang_mo 580 msgctxt "languages.slang_mo" 466 581 msgid "Moldavian" 467 582 msgstr "Moldavština" 468 583 469 #: ulanguages.slang_mr 584 #: languages.slang_mr 585 msgctxt "languages.slang_mr" 470 586 msgid "Marathi" 471 587 msgstr "" 472 588 473 #: ulanguages.slang_ms 589 #: languages.slang_ms 590 msgctxt "languages.slang_ms" 474 591 msgid "Malay" 475 592 msgstr "" 476 593 477 #: ulanguages.slang_mt 594 #: languages.slang_mt 595 msgctxt "languages.slang_mt" 478 596 msgid "Maltese" 479 597 msgstr "" 480 598 481 #: ulanguages.slang_my 599 #: languages.slang_my 600 msgctxt "languages.slang_my" 482 601 msgid "Burmese" 483 602 msgstr "" 484 603 485 #: ulanguages.slang_na 604 #: languages.slang_na 605 msgctxt "languages.slang_na" 486 606 msgid "Nauru" 487 607 msgstr "" 488 608 489 #: ulanguages.slang_nb 609 #: languages.slang_nb 610 msgctxt "languages.slang_nb" 490 611 msgid "Norwegian Bokmaal" 491 612 msgstr "" 492 613 493 #: ulanguages.slang_nd 614 #: languages.slang_nd 615 msgctxt "languages.slang_nd" 494 616 msgid "Ndebele, North" 495 617 msgstr "" 496 618 497 #: ulanguages.slang_ne 619 #: languages.slang_ne 620 msgctxt "languages.slang_ne" 498 621 msgid "Nepali" 499 622 msgstr "" 500 623 501 #: ulanguages.slang_ng 624 #: languages.slang_ng 625 msgctxt "languages.slang_ng" 502 626 msgid "Ndonga" 503 627 msgstr "" 504 628 505 #: ulanguages.slang_nl 629 #: languages.slang_nl 630 msgctxt "languages.slang_nl" 506 631 msgid "Dutch" 507 632 msgstr "Němčina" 508 633 509 #: ulanguages.slang_nl_be 634 #: languages.slang_nl_be 635 msgctxt "languages.slang_nl_be" 510 636 msgid "Flemish" 511 637 msgstr "" 512 638 513 #: ulanguages.slang_nn 639 #: languages.slang_nn 640 msgctxt "languages.slang_nn" 514 641 msgid "Norwegian Nynorsk" 515 642 msgstr "" 516 643 517 #: ulanguages.slang_no 644 #: languages.slang_no 645 msgctxt "languages.slang_no" 518 646 msgid "Norwegian" 519 647 msgstr "Norština" 520 648 521 #: ulanguages.slang_nr 649 #: languages.slang_nr 650 msgctxt "languages.slang_nr" 522 651 msgid "Ndebele, South" 523 652 msgstr "" 524 653 525 #: ulanguages.slang_nv 654 #: languages.slang_nv 655 msgctxt "languages.slang_nv" 526 656 msgid "Navajo" 527 657 msgstr "Navažština" 528 658 529 #: ulanguages.slang_ny 659 #: languages.slang_ny 660 msgctxt "languages.slang_ny" 530 661 msgid "Chichewa" 531 662 msgstr "" 532 663 533 #: ulanguages.slang_oc 664 #: languages.slang_oc 665 msgctxt "languages.slang_oc" 534 666 msgid "Occitan" 535 667 msgstr "" 536 668 537 #: ulanguages.slang_oj 669 #: languages.slang_oj 670 msgctxt "languages.slang_oj" 538 671 msgid "Ojibwa" 539 672 msgstr "" 540 673 541 #: ulanguages.slang_om 674 #: languages.slang_om 675 msgctxt "languages.slang_om" 542 676 msgid "Oromo" 543 677 msgstr "" 544 678 545 #: ulanguages.slang_or 679 #: languages.slang_or 680 msgctxt "languages.slang_or" 546 681 msgid "Oriya" 547 682 msgstr "" 548 683 549 #: ulanguages.slang_os 684 #: languages.slang_os 685 msgctxt "languages.slang_os" 550 686 msgid "Ossetian" 551 687 msgstr "" 552 688 553 #: ulanguages.slang_pa 689 #: languages.slang_pa 690 msgctxt "languages.slang_pa" 554 691 msgid "Panjabi" 555 692 msgstr "" 556 693 557 #: ulanguages.slang_pi 694 #: languages.slang_pi 695 msgctxt "languages.slang_pi" 558 696 msgid "Pali" 559 697 msgstr "" 560 698 561 #: ulanguages.slang_pl 699 #: languages.slang_pl 700 msgctxt "languages.slang_pl" 562 701 msgid "Polish" 563 702 msgstr "Polština" 564 703 565 #: ulanguages.slang_ps 704 #: languages.slang_ps 705 msgctxt "languages.slang_ps" 566 706 msgid "Pushto" 567 707 msgstr "" 568 708 569 #: ulanguages.slang_pt 709 #: languages.slang_pt 710 msgctxt "languages.slang_pt" 570 711 msgid "Portuguese" 571 712 msgstr "Portugalština" 572 713 573 #: ulanguages.slang_pt_br 714 #: languages.slang_pt_br 715 msgctxt "languages.slang_pt_br" 574 716 msgid "Brazilian Portuguese" 575 717 msgstr "Brazislká portugalština" 576 718 577 #: ulanguages.slang_qu 719 #: languages.slang_qu 720 msgctxt "languages.slang_qu" 578 721 msgid "Quechua" 579 722 msgstr "" 580 723 581 #: ulanguages.slang_rm 724 #: languages.slang_rm 725 msgctxt "languages.slang_rm" 582 726 msgid "Raeto-Romance" 583 727 msgstr "" 584 728 585 #: ulanguages.slang_rn 729 #: languages.slang_rn 730 msgctxt "languages.slang_rn" 586 731 msgid "Rundi" 587 732 msgstr "" 588 733 589 #: ulanguages.slang_ro 734 #: languages.slang_ro 735 msgctxt "languages.slang_ro" 590 736 msgid "Romanian" 591 737 msgstr "Romština" 592 738 593 #: ulanguages.slang_ru 739 #: languages.slang_ru 740 msgctxt "languages.slang_ru" 594 741 msgid "Russian" 595 742 msgstr "Ruština" 596 743 597 #: ulanguages.slang_rw 744 #: languages.slang_rw 745 msgctxt "languages.slang_rw" 598 746 msgid "Kinyarwanda" 599 747 msgstr "" 600 748 601 #: ulanguages.slang_sa 749 #: languages.slang_sa 750 msgctxt "languages.slang_sa" 602 751 msgid "Sanskrit" 603 752 msgstr "" 604 753 605 #: ulanguages.slang_sc 754 #: languages.slang_sc 755 msgctxt "languages.slang_sc" 606 756 msgid "Sardinian" 607 757 msgstr "" 608 758 609 #: ulanguages.slang_sd 759 #: languages.slang_sd 760 msgctxt "languages.slang_sd" 610 761 msgid "Sindhi" 611 762 msgstr "" 612 763 613 #: ulanguages.slang_se 764 #: languages.slang_se 765 msgctxt "languages.slang_se" 614 766 msgid "Northern Sami" 615 767 msgstr "" 616 768 617 #: ulanguages.slang_sg 769 #: languages.slang_sg 770 msgctxt "languages.slang_sg" 618 771 msgid "Sango" 619 772 msgstr "" 620 773 621 #: ulanguages.slang_si 774 #: languages.slang_si 775 msgctxt "languages.slang_si" 622 776 msgid "Sinhalese" 623 777 msgstr "" 624 778 625 #: ulanguages.slang_sk 779 #: languages.slang_sk 780 msgctxt "languages.slang_sk" 626 781 msgid "Slovak" 627 782 msgstr "Slovenština" 628 783 629 #: ulanguages.slang_sl 784 #: languages.slang_sl 785 msgctxt "languages.slang_sl" 630 786 msgid "Slovenian" 631 787 msgstr "Slovinština" 632 788 633 #: ulanguages.slang_sm 789 #: languages.slang_sm 790 msgctxt "languages.slang_sm" 634 791 msgid "Samoan" 635 792 msgstr "" 636 793 637 #: ulanguages.slang_sn 794 #: languages.slang_sn 795 msgctxt "languages.slang_sn" 638 796 msgid "Shona" 639 797 msgstr "" 640 798 641 #: ulanguages.slang_so 799 #: languages.slang_so 800 msgctxt "languages.slang_so" 642 801 msgid "Somali" 643 802 msgstr "" 644 803 645 #: ulanguages.slang_sq 804 #: languages.slang_sq 805 msgctxt "languages.slang_sq" 646 806 msgid "Albanian" 647 807 msgstr "Albánština" 648 808 649 #: ulanguages.slang_sr 809 #: languages.slang_sr 810 msgctxt "languages.slang_sr" 650 811 msgid "Serbian" 651 812 msgstr "" 652 813 653 #: ulanguages.slang_ss 814 #: languages.slang_ss 815 msgctxt "languages.slang_ss" 654 816 msgid "Swati" 655 817 msgstr "" 656 818 657 #: ulanguages.slang_st 819 #: languages.slang_st 820 msgctxt "languages.slang_st" 658 821 msgid "Sotho, Southern" 659 822 msgstr "" 660 823 661 #: ulanguages.slang_su 824 #: languages.slang_su 825 msgctxt "languages.slang_su" 662 826 msgid "Sundanese" 663 827 msgstr "Sundština" 664 828 665 #: ulanguages.slang_sv 829 #: languages.slang_sv 830 msgctxt "languages.slang_sv" 666 831 msgid "Swedish" 667 832 msgstr "Švédština" 668 833 669 #: ulanguages.slang_sw 834 #: languages.slang_sw 835 msgctxt "languages.slang_sw" 670 836 msgid "Swahili" 671 837 msgstr "" 672 838 673 #: ulanguages.slang_ta 839 #: languages.slang_ta 840 msgctxt "languages.slang_ta" 674 841 msgid "Tamil" 675 842 msgstr "" 676 843 677 #: ulanguages.slang_te 844 #: languages.slang_te 845 msgctxt "languages.slang_te" 678 846 msgid "Telugu" 679 847 msgstr "" 680 848 681 #: ulanguages.slang_tg 849 #: languages.slang_tg 850 msgctxt "languages.slang_tg" 682 851 msgid "Tajik" 683 852 msgstr "" 684 853 685 #: ulanguages.slang_th 854 #: languages.slang_th 855 msgctxt "languages.slang_th" 686 856 msgid "Thai" 687 857 msgstr "" 688 858 689 #: ulanguages.slang_ti 859 #: languages.slang_ti 860 msgctxt "languages.slang_ti" 690 861 msgid "Tigrinya" 691 862 msgstr "" 692 863 693 #: ulanguages.slang_tk 864 #: languages.slang_tk 865 msgctxt "languages.slang_tk" 694 866 msgid "Turkmen" 695 867 msgstr "" 696 868 697 #: ulanguages.slang_tl 869 #: languages.slang_tl 870 msgctxt "languages.slang_tl" 698 871 msgid "Tagalog" 699 872 msgstr "" 700 873 701 #: ulanguages.slang_tn 874 #: languages.slang_tn 875 msgctxt "languages.slang_tn" 702 876 msgid "Tswana" 703 877 msgstr "" 704 878 705 #: ulanguages.slang_to 879 #: languages.slang_to 880 msgctxt "languages.slang_to" 706 881 msgid "Tonga" 707 882 msgstr "" 708 883 709 #: ulanguages.slang_tr 884 #: languages.slang_tr 885 msgctxt "languages.slang_tr" 710 886 msgid "Turkish" 711 887 msgstr "Turečtina" 712 888 713 #: ulanguages.slang_ts 889 #: languages.slang_ts 890 msgctxt "languages.slang_ts" 714 891 msgid "Tsonga" 715 892 msgstr "" 716 893 717 #: ulanguages.slang_tt 894 #: languages.slang_tt 895 msgctxt "languages.slang_tt" 718 896 msgid "Tatar" 719 897 msgstr "Tatarština" 720 898 721 #: ulanguages.slang_tw 899 #: languages.slang_tw 900 msgctxt "languages.slang_tw" 722 901 msgid "Twi" 723 902 msgstr "" 724 903 725 #: ulanguages.slang_ty 904 #: languages.slang_ty 905 msgctxt "languages.slang_ty" 726 906 msgid "Tahitian" 727 907 msgstr "" 728 908 729 #: ulanguages.slang_ug 909 #: languages.slang_ug 910 msgctxt "languages.slang_ug" 730 911 msgid "Uighur" 731 912 msgstr "" 732 913 733 #: ulanguages.slang_uk 914 #: languages.slang_uk 915 msgctxt "languages.slang_uk" 734 916 msgid "Ukrainian" 735 917 msgstr "Ukrajinština" 736 918 737 #: ulanguages.slang_ur 919 #: languages.slang_ur 920 msgctxt "languages.slang_ur" 738 921 msgid "Urdu" 739 922 msgstr "" 740 923 741 #: ulanguages.slang_uz 924 #: languages.slang_uz 925 msgctxt "languages.slang_uz" 742 926 msgid "Uzbek" 743 927 msgstr "" 744 928 745 #: ulanguages.slang_ve 929 #: languages.slang_ve 930 msgctxt "languages.slang_ve" 746 931 msgid "Venda" 747 932 msgstr "" 748 933 749 #: ulanguages.slang_vi 934 #: languages.slang_vi 935 msgctxt "languages.slang_vi" 750 936 msgid "Vietnamese" 751 937 msgstr "Vietnamština" 752 938 753 #: ulanguages.slang_vo 939 #: languages.slang_vo 940 msgctxt "languages.slang_vo" 754 941 msgid "Volapuk" 755 942 msgstr "" 756 943 757 #: ulanguages.slang_wa758 msgctxt " ulanguages.slang_wa"944 #: languages.slang_wa 945 msgctxt "languages.slang_wa" 759 946 msgid "Walloon" 760 947 msgstr "" 761 948 762 #: ulanguages.slang_wo 949 #: languages.slang_wo 950 msgctxt "languages.slang_wo" 763 951 msgid "Wolof" 764 952 msgstr "" 765 953 766 #: ulanguages.slang_xh 954 #: languages.slang_xh 955 msgctxt "languages.slang_xh" 767 956 msgid "Xhosa" 768 957 msgstr "" 769 958 770 #: ulanguages.slang_yi 959 #: languages.slang_yi 960 msgctxt "languages.slang_yi" 771 961 msgid "Yiddish" 772 962 msgstr "" 773 963 774 #: ulanguages.slang_yo 964 #: languages.slang_yo 965 msgctxt "languages.slang_yo" 775 966 msgid "Yoruba" 776 967 msgstr "" 777 968 778 #: ulanguages.slang_za 969 #: languages.slang_za 970 msgctxt "languages.slang_za" 779 971 msgid "Zhuang" 780 972 msgstr "" 781 973 782 #: ulanguages.slang_zh 974 #: languages.slang_zh 975 msgctxt "languages.slang_zh" 783 976 msgid "Chinese" 784 977 msgstr "Čínština" 785 978 786 #: ulanguages.slang_zu 979 #: languages.slang_zh_hans 980 msgid "Simplified Chinese" 981 msgstr "" 982 983 #: languages.slang_zh_hant 984 msgid "Traditional Chinese" 985 msgstr "" 986 987 #: languages.slang_zu 988 msgctxt "languages.slang_zu" 787 989 msgid "Zulu" 788 990 msgstr "Zuluština" -
trunk/Packages/Common/Languages/Languages.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: ulanguages.slangauto4 #: languages.slangauto 5 5 msgid "Automatic" 6 6 msgstr "" 7 7 8 #: ulanguages.slang_aa8 #: languages.slang_aa 9 9 msgid "Afar" 10 10 msgstr "" 11 11 12 #: ulanguages.slang_ab12 #: languages.slang_ab 13 13 msgid "Abkhazian" 14 14 msgstr "" 15 15 16 #: ulanguages.slang_ae16 #: languages.slang_ae 17 17 msgid "Avestan" 18 18 msgstr "" 19 19 20 #: ulanguages.slang_af20 #: languages.slang_af 21 21 msgid "Afrikaans" 22 22 msgstr "" 23 23 24 #: ulanguages.slang_ak24 #: languages.slang_ak 25 25 msgid "Akan" 26 26 msgstr "" 27 27 28 #: ulanguages.slang_am28 #: languages.slang_am 29 29 msgid "Amharic" 30 30 msgstr "" 31 31 32 #: ulanguages.slang_an32 #: languages.slang_an 33 33 msgid "Aragonese" 34 34 msgstr "" 35 35 36 #: ulanguages.slang_ar36 #: languages.slang_ar 37 37 msgid "Arabic" 38 38 msgstr "" 39 39 40 #: ulanguages.slang_as40 #: languages.slang_as 41 41 msgid "Assamese" 42 42 msgstr "" 43 43 44 #: ulanguages.slang_av44 #: languages.slang_av 45 45 msgid "Avaric" 46 46 msgstr "" 47 47 48 #: ulanguages.slang_ay48 #: languages.slang_ay 49 49 msgid "Aymara" 50 50 msgstr "" 51 51 52 #: ulanguages.slang_az52 #: languages.slang_az 53 53 msgid "Azerbaijani" 54 54 msgstr "" 55 55 56 #: ulanguages.slang_ba56 #: languages.slang_ba 57 57 msgid "Bashkir" 58 58 msgstr "" 59 59 60 #: ulanguages.slang_be60 #: languages.slang_be 61 61 msgid "Belarusian" 62 62 msgstr "" 63 63 64 #: ulanguages.slang_bg64 #: languages.slang_bg 65 65 msgid "Bulgarian" 66 66 msgstr "" 67 67 68 #: ulanguages.slang_bh68 #: languages.slang_bh 69 69 msgid "Bihari" 70 70 msgstr "" 71 71 72 #: ulanguages.slang_bi72 #: languages.slang_bi 73 73 msgid "Bislama" 74 74 msgstr "" 75 75 76 #: ulanguages.slang_bm76 #: languages.slang_bm 77 77 msgid "Bambara" 78 78 msgstr "" 79 79 80 #: ulanguages.slang_bn80 #: languages.slang_bn 81 81 msgid "Bengali" 82 82 msgstr "" 83 83 84 #: ulanguages.slang_bo84 #: languages.slang_bo 85 85 msgid "Tibetan" 86 86 msgstr "" 87 87 88 #: ulanguages.slang_br88 #: languages.slang_br 89 89 msgid "Breton" 90 90 msgstr "" 91 91 92 #: ulanguages.slang_bs92 #: languages.slang_bs 93 93 msgid "Bosnian" 94 94 msgstr "" 95 95 96 #: ulanguages.slang_ca96 #: languages.slang_ca 97 97 msgid "Catalan" 98 98 msgstr "" 99 99 100 #: ulanguages.slang_ce100 #: languages.slang_ce 101 101 msgid "Chechen" 102 102 msgstr "" 103 103 104 #: ulanguages.slang_ch104 #: languages.slang_ch 105 105 msgid "Chamorro" 106 106 msgstr "" 107 107 108 #: ulanguages.slang_co108 #: languages.slang_co 109 109 msgid "Corsican" 110 110 msgstr "" 111 111 112 #: ulanguages.slang_cr112 #: languages.slang_cr 113 113 msgid "Cree" 114 114 msgstr "" 115 115 116 #: ulanguages.slang_cs116 #: languages.slang_cs 117 117 msgid "Czech" 118 118 msgstr "" 119 119 120 #: ulanguages.slang_cv120 #: languages.slang_cv 121 121 msgid "Chuvash" 122 122 msgstr "" 123 123 124 #: ulanguages.slang_cy124 #: languages.slang_cy 125 125 msgid "Welsh" 126 126 msgstr "" 127 127 128 #: ulanguages.slang_da128 #: languages.slang_da 129 129 msgid "Danish" 130 130 msgstr "" 131 131 132 #: ulanguages.slang_de132 #: languages.slang_de 133 133 msgid "German" 134 134 msgstr "" 135 135 136 #: ulanguages.slang_de_at136 #: languages.slang_de_at 137 137 msgid "Austrian German" 138 138 msgstr "" 139 139 140 #: ulanguages.slang_de_ch140 #: languages.slang_de_ch 141 141 msgid "Swiss German" 142 142 msgstr "" 143 143 144 #: ulanguages.slang_dv144 #: languages.slang_dv 145 145 msgid "Divehi" 146 146 msgstr "" 147 147 148 #: ulanguages.slang_dz148 #: languages.slang_dz 149 149 msgid "Dzongkha" 150 150 msgstr "" 151 151 152 #: ulanguages.slang_ee152 #: languages.slang_ee 153 153 msgid "Ewe" 154 154 msgstr "" 155 155 156 #: ulanguages.slang_el156 #: languages.slang_el 157 157 msgid "Greek" 158 158 msgstr "" 159 159 160 #: ulanguages.slang_en160 #: languages.slang_en 161 161 msgid "English" 162 162 msgstr "" 163 163 164 #: ulanguages.slang_en_au164 #: languages.slang_en_au 165 165 msgid "Australian English" 166 166 msgstr "" 167 167 168 #: ulanguages.slang_en_ca168 #: languages.slang_en_ca 169 169 msgid "Canadian English" 170 170 msgstr "" 171 171 172 #: ulanguages.slang_en_gb172 #: languages.slang_en_gb 173 173 msgid "British English" 174 174 msgstr "" 175 175 176 #: ulanguages.slang_en_us176 #: languages.slang_en_us 177 177 msgid "American English" 178 178 msgstr "" 179 179 180 #: ulanguages.slang_eo180 #: languages.slang_eo 181 181 msgid "Esperanto" 182 182 msgstr "" 183 183 184 #: ulanguages.slang_es184 #: languages.slang_es 185 185 msgid "Spanish" 186 186 msgstr "" 187 187 188 #: ulanguages.slang_et188 #: languages.slang_et 189 189 msgid "Estonian" 190 190 msgstr "" 191 191 192 #: ulanguages.slang_eu192 #: languages.slang_eu 193 193 msgid "Basque" 194 194 msgstr "" 195 195 196 #: ulanguages.slang_fa196 #: languages.slang_fa 197 197 msgid "Persian" 198 198 msgstr "" 199 199 200 #: ulanguages.slang_ff200 #: languages.slang_ff 201 201 msgid "Fulah" 202 202 msgstr "" 203 203 204 #: ulanguages.slang_fi204 #: languages.slang_fi 205 205 msgid "Finnish" 206 206 msgstr "" 207 207 208 #: ulanguages.slang_fj208 #: languages.slang_fj 209 209 msgid "Fijian" 210 210 msgstr "" 211 211 212 #: ulanguages.slang_fo212 #: languages.slang_fo 213 213 msgid "Faroese" 214 214 msgstr "" 215 215 216 #: ulanguages.slang_fr216 #: languages.slang_fr 217 217 msgid "French" 218 218 msgstr "" 219 219 220 #: ulanguages.slang_fr_be221 msgctxt " ulanguages.slang_fr_be"220 #: languages.slang_fr_be 221 msgctxt "languages.slang_fr_be" 222 222 msgid "Walloon" 223 223 msgstr "" 224 224 225 #: ulanguages.slang_fy225 #: languages.slang_fy 226 226 msgid "Frisian" 227 227 msgstr "" 228 228 229 #: ulanguages.slang_ga229 #: languages.slang_ga 230 230 msgid "Irish" 231 231 msgstr "" 232 232 233 #: ulanguages.slang_gd233 #: languages.slang_gd 234 234 msgid "Gaelic" 235 235 msgstr "" 236 236 237 #: ulanguages.slang_gl237 #: languages.slang_gl 238 238 msgid "Gallegan" 239 239 msgstr "" 240 240 241 #: ulanguages.slang_gn241 #: languages.slang_gn 242 242 msgid "Guarani" 243 243 msgstr "" 244 244 245 #: ulanguages.slang_gu245 #: languages.slang_gu 246 246 msgid "Gujarati" 247 247 msgstr "" 248 248 249 #: ulanguages.slang_gv249 #: languages.slang_gv 250 250 msgid "Manx" 251 251 msgstr "" 252 252 253 #: ulanguages.slang_ha253 #: languages.slang_ha 254 254 msgid "Hausa" 255 255 msgstr "" 256 256 257 #: ulanguages.slang_he257 #: languages.slang_he 258 258 msgid "Hebrew" 259 259 msgstr "" 260 260 261 #: ulanguages.slang_hi261 #: languages.slang_hi 262 262 msgid "Hindi" 263 263 msgstr "" 264 264 265 #: ulanguages.slang_ho265 #: languages.slang_ho 266 266 msgid "Hiri Motu" 267 267 msgstr "" 268 268 269 #: ulanguages.slang_hr269 #: languages.slang_hr 270 270 msgid "Croatian" 271 271 msgstr "" 272 272 273 #: ulanguages.slang_ht273 #: languages.slang_ht 274 274 msgid "Haitian" 275 275 msgstr "" 276 276 277 #: ulanguages.slang_hu277 #: languages.slang_hu 278 278 msgid "Hungarian" 279 279 msgstr "" 280 280 281 #: ulanguages.slang_hy281 #: languages.slang_hy 282 282 msgid "Armenian" 283 283 msgstr "" 284 284 285 #: ulanguages.slang_hz285 #: languages.slang_hz 286 286 msgid "Herero" 287 287 msgstr "" 288 288 289 #: ulanguages.slang_ia289 #: languages.slang_ia 290 290 msgid "Interlingua" 291 291 msgstr "" 292 292 293 #: ulanguages.slang_id293 #: languages.slang_id 294 294 msgid "Indonesian" 295 295 msgstr "" 296 296 297 #: ulanguages.slang_ie297 #: languages.slang_ie 298 298 msgid "Interlingue" 299 299 msgstr "" 300 300 301 #: ulanguages.slang_ig301 #: languages.slang_ig 302 302 msgid "Igbo" 303 303 msgstr "" 304 304 305 #: ulanguages.slang_ii305 #: languages.slang_ii 306 306 msgid "Sichuan Yi" 307 307 msgstr "" 308 308 309 #: ulanguages.slang_ik309 #: languages.slang_ik 310 310 msgid "Inupiaq" 311 311 msgstr "" 312 312 313 #: ulanguages.slang_io313 #: languages.slang_io 314 314 msgid "Ido" 315 315 msgstr "" 316 316 317 #: ulanguages.slang_is317 #: languages.slang_is 318 318 msgid "Icelandic" 319 319 msgstr "" 320 320 321 #: ulanguages.slang_it321 #: languages.slang_it 322 322 msgid "Italian" 323 323 msgstr "" 324 324 325 #: ulanguages.slang_iu325 #: languages.slang_iu 326 326 msgid "Inuktitut" 327 327 msgstr "" 328 328 329 #: ulanguages.slang_ja329 #: languages.slang_ja 330 330 msgid "Japanese" 331 331 msgstr "" 332 332 333 #: ulanguages.slang_jv333 #: languages.slang_jv 334 334 msgid "Javanese" 335 335 msgstr "" 336 336 337 #: ulanguages.slang_ka337 #: languages.slang_ka 338 338 msgid "Georgian" 339 339 msgstr "" 340 340 341 #: ulanguages.slang_kg341 #: languages.slang_kg 342 342 msgid "Kongo" 343 343 msgstr "" 344 344 345 #: ulanguages.slang_ki345 #: languages.slang_ki 346 346 msgid "Kikuyu" 347 347 msgstr "" 348 348 349 #: ulanguages.slang_kj349 #: languages.slang_kj 350 350 msgid "Kuanyama" 351 351 msgstr "" 352 352 353 #: ulanguages.slang_kk353 #: languages.slang_kk 354 354 msgid "Kazakh" 355 355 msgstr "" 356 356 357 #: ulanguages.slang_kl357 #: languages.slang_kl 358 358 msgid "Greenlandic" 359 359 msgstr "" 360 360 361 #: ulanguages.slang_km361 #: languages.slang_km 362 362 msgid "Khmer" 363 363 msgstr "" 364 364 365 #: ulanguages.slang_kn365 #: languages.slang_kn 366 366 msgid "Kannada" 367 367 msgstr "" 368 368 369 #: ulanguages.slang_ko369 #: languages.slang_ko 370 370 msgid "Korean" 371 371 msgstr "" 372 372 373 #: ulanguages.slang_kr373 #: languages.slang_kr 374 374 msgid "Kanuri" 375 375 msgstr "" 376 376 377 #: ulanguages.slang_ks377 #: languages.slang_ks 378 378 msgid "Kashmiri" 379 379 msgstr "" 380 380 381 #: ulanguages.slang_ku381 #: languages.slang_ku 382 382 msgid "Kurdish" 383 383 msgstr "" 384 384 385 #: ulanguages.slang_kv385 #: languages.slang_kv 386 386 msgid "Komi" 387 387 msgstr "" 388 388 389 #: ulanguages.slang_kw389 #: languages.slang_kw 390 390 msgid "Cornish" 391 391 msgstr "" 392 392 393 #: ulanguages.slang_ky393 #: languages.slang_ky 394 394 msgid "Kirghiz" 395 395 msgstr "" 396 396 397 #: ulanguages.slang_la397 #: languages.slang_la 398 398 msgid "Latin" 399 399 msgstr "" 400 400 401 #: ulanguages.slang_lb401 #: languages.slang_lb 402 402 msgid "Luxembourgish" 403 403 msgstr "" 404 404 405 #: ulanguages.slang_lg405 #: languages.slang_lg 406 406 msgid "Ganda" 407 407 msgstr "" 408 408 409 #: ulanguages.slang_li409 #: languages.slang_li 410 410 msgid "Limburgan" 411 411 msgstr "" 412 412 413 #: ulanguages.slang_ln413 #: languages.slang_ln 414 414 msgid "Lingala" 415 415 msgstr "" 416 416 417 #: ulanguages.slang_lo417 #: languages.slang_lo 418 418 msgid "Lao" 419 419 msgstr "" 420 420 421 #: ulanguages.slang_lt421 #: languages.slang_lt 422 422 msgid "Lithuanian" 423 423 msgstr "" 424 424 425 #: ulanguages.slang_lu425 #: languages.slang_lu 426 426 msgid "Luba-Katanga" 427 427 msgstr "" 428 428 429 #: ulanguages.slang_lv429 #: languages.slang_lv 430 430 msgid "Latvian" 431 431 msgstr "" 432 432 433 #: ulanguages.slang_mg433 #: languages.slang_mg 434 434 msgid "Malagasy" 435 435 msgstr "" 436 436 437 #: ulanguages.slang_mh437 #: languages.slang_mh 438 438 msgid "Marshallese" 439 439 msgstr "" 440 440 441 #: ulanguages.slang_mi441 #: languages.slang_mi 442 442 msgid "Maori" 443 443 msgstr "" 444 444 445 #: ulanguages.slang_mk445 #: languages.slang_mk 446 446 msgid "Macedonian" 447 447 msgstr "" 448 448 449 #: ulanguages.slang_ml449 #: languages.slang_ml 450 450 msgid "Malayalam" 451 451 msgstr "" 452 452 453 #: ulanguages.slang_mn453 #: languages.slang_mn 454 454 msgid "Mongolian" 455 455 msgstr "" 456 456 457 #: ulanguages.slang_mo457 #: languages.slang_mo 458 458 msgid "Moldavian" 459 459 msgstr "" 460 460 461 #: ulanguages.slang_mr461 #: languages.slang_mr 462 462 msgid "Marathi" 463 463 msgstr "" 464 464 465 #: ulanguages.slang_ms465 #: languages.slang_ms 466 466 msgid "Malay" 467 467 msgstr "" 468 468 469 #: ulanguages.slang_mt469 #: languages.slang_mt 470 470 msgid "Maltese" 471 471 msgstr "" 472 472 473 #: ulanguages.slang_my473 #: languages.slang_my 474 474 msgid "Burmese" 475 475 msgstr "" 476 476 477 #: ulanguages.slang_na477 #: languages.slang_na 478 478 msgid "Nauru" 479 479 msgstr "" 480 480 481 #: ulanguages.slang_nb481 #: languages.slang_nb 482 482 msgid "Norwegian Bokmaal" 483 483 msgstr "" 484 484 485 #: ulanguages.slang_nd485 #: languages.slang_nd 486 486 msgid "Ndebele, North" 487 487 msgstr "" 488 488 489 #: ulanguages.slang_ne489 #: languages.slang_ne 490 490 msgid "Nepali" 491 491 msgstr "" 492 492 493 #: ulanguages.slang_ng493 #: languages.slang_ng 494 494 msgid "Ndonga" 495 495 msgstr "" 496 496 497 #: ulanguages.slang_nl497 #: languages.slang_nl 498 498 msgid "Dutch" 499 499 msgstr "" 500 500 501 #: ulanguages.slang_nl_be501 #: languages.slang_nl_be 502 502 msgid "Flemish" 503 503 msgstr "" 504 504 505 #: ulanguages.slang_nn505 #: languages.slang_nn 506 506 msgid "Norwegian Nynorsk" 507 507 msgstr "" 508 508 509 #: ulanguages.slang_no509 #: languages.slang_no 510 510 msgid "Norwegian" 511 511 msgstr "" 512 512 513 #: ulanguages.slang_nr513 #: languages.slang_nr 514 514 msgid "Ndebele, South" 515 515 msgstr "" 516 516 517 #: ulanguages.slang_nv517 #: languages.slang_nv 518 518 msgid "Navajo" 519 519 msgstr "" 520 520 521 #: ulanguages.slang_ny521 #: languages.slang_ny 522 522 msgid "Chichewa" 523 523 msgstr "" 524 524 525 #: ulanguages.slang_oc525 #: languages.slang_oc 526 526 msgid "Occitan" 527 527 msgstr "" 528 528 529 #: ulanguages.slang_oj529 #: languages.slang_oj 530 530 msgid "Ojibwa" 531 531 msgstr "" 532 532 533 #: ulanguages.slang_om533 #: languages.slang_om 534 534 msgid "Oromo" 535 535 msgstr "" 536 536 537 #: ulanguages.slang_or537 #: languages.slang_or 538 538 msgid "Oriya" 539 539 msgstr "" 540 540 541 #: ulanguages.slang_os541 #: languages.slang_os 542 542 msgid "Ossetian" 543 543 msgstr "" 544 544 545 #: ulanguages.slang_pa545 #: languages.slang_pa 546 546 msgid "Panjabi" 547 547 msgstr "" 548 548 549 #: ulanguages.slang_pi549 #: languages.slang_pi 550 550 msgid "Pali" 551 551 msgstr "" 552 552 553 #: ulanguages.slang_pl553 #: languages.slang_pl 554 554 msgid "Polish" 555 555 msgstr "" 556 556 557 #: ulanguages.slang_ps557 #: languages.slang_ps 558 558 msgid "Pushto" 559 559 msgstr "" 560 560 561 #: ulanguages.slang_pt561 #: languages.slang_pt 562 562 msgid "Portuguese" 563 563 msgstr "" 564 564 565 #: ulanguages.slang_pt_br565 #: languages.slang_pt_br 566 566 msgid "Brazilian Portuguese" 567 567 msgstr "" 568 568 569 #: ulanguages.slang_qu569 #: languages.slang_qu 570 570 msgid "Quechua" 571 571 msgstr "" 572 572 573 #: ulanguages.slang_rm573 #: languages.slang_rm 574 574 msgid "Raeto-Romance" 575 575 msgstr "" 576 576 577 #: ulanguages.slang_rn577 #: languages.slang_rn 578 578 msgid "Rundi" 579 579 msgstr "" 580 580 581 #: ulanguages.slang_ro581 #: languages.slang_ro 582 582 msgid "Romanian" 583 583 msgstr "" 584 584 585 #: ulanguages.slang_ru585 #: languages.slang_ru 586 586 msgid "Russian" 587 587 msgstr "" 588 588 589 #: ulanguages.slang_rw589 #: languages.slang_rw 590 590 msgid "Kinyarwanda" 591 591 msgstr "" 592 592 593 #: ulanguages.slang_sa593 #: languages.slang_sa 594 594 msgid "Sanskrit" 595 595 msgstr "" 596 596 597 #: ulanguages.slang_sc597 #: languages.slang_sc 598 598 msgid "Sardinian" 599 599 msgstr "" 600 600 601 #: ulanguages.slang_sd601 #: languages.slang_sd 602 602 msgid "Sindhi" 603 603 msgstr "" 604 604 605 #: ulanguages.slang_se605 #: languages.slang_se 606 606 msgid "Northern Sami" 607 607 msgstr "" 608 608 609 #: ulanguages.slang_sg609 #: languages.slang_sg 610 610 msgid "Sango" 611 611 msgstr "" 612 612 613 #: ulanguages.slang_si613 #: languages.slang_si 614 614 msgid "Sinhalese" 615 615 msgstr "" 616 616 617 #: ulanguages.slang_sk617 #: languages.slang_sk 618 618 msgid "Slovak" 619 619 msgstr "" 620 620 621 #: ulanguages.slang_sl621 #: languages.slang_sl 622 622 msgid "Slovenian" 623 623 msgstr "" 624 624 625 #: ulanguages.slang_sm625 #: languages.slang_sm 626 626 msgid "Samoan" 627 627 msgstr "" 628 628 629 #: ulanguages.slang_sn629 #: languages.slang_sn 630 630 msgid "Shona" 631 631 msgstr "" 632 632 633 #: ulanguages.slang_so633 #: languages.slang_so 634 634 msgid "Somali" 635 635 msgstr "" 636 636 637 #: ulanguages.slang_sq637 #: languages.slang_sq 638 638 msgid "Albanian" 639 639 msgstr "" 640 640 641 #: ulanguages.slang_sr641 #: languages.slang_sr 642 642 msgid "Serbian" 643 643 msgstr "" 644 644 645 #: ulanguages.slang_ss645 #: languages.slang_ss 646 646 msgid "Swati" 647 647 msgstr "" 648 648 649 #: ulanguages.slang_st649 #: languages.slang_st 650 650 msgid "Sotho, Southern" 651 651 msgstr "" 652 652 653 #: ulanguages.slang_su653 #: languages.slang_su 654 654 msgid "Sundanese" 655 655 msgstr "" 656 656 657 #: ulanguages.slang_sv657 #: languages.slang_sv 658 658 msgid "Swedish" 659 659 msgstr "" 660 660 661 #: ulanguages.slang_sw661 #: languages.slang_sw 662 662 msgid "Swahili" 663 663 msgstr "" 664 664 665 #: ulanguages.slang_ta665 #: languages.slang_ta 666 666 msgid "Tamil" 667 667 msgstr "" 668 668 669 #: ulanguages.slang_te669 #: languages.slang_te 670 670 msgid "Telugu" 671 671 msgstr "" 672 672 673 #: ulanguages.slang_tg673 #: languages.slang_tg 674 674 msgid "Tajik" 675 675 msgstr "" 676 676 677 #: ulanguages.slang_th677 #: languages.slang_th 678 678 msgid "Thai" 679 679 msgstr "" 680 680 681 #: ulanguages.slang_ti681 #: languages.slang_ti 682 682 msgid "Tigrinya" 683 683 msgstr "" 684 684 685 #: ulanguages.slang_tk685 #: languages.slang_tk 686 686 msgid "Turkmen" 687 687 msgstr "" 688 688 689 #: ulanguages.slang_tl689 #: languages.slang_tl 690 690 msgid "Tagalog" 691 691 msgstr "" 692 692 693 #: ulanguages.slang_tn693 #: languages.slang_tn 694 694 msgid "Tswana" 695 695 msgstr "" 696 696 697 #: ulanguages.slang_to697 #: languages.slang_to 698 698 msgid "Tonga" 699 699 msgstr "" 700 700 701 #: ulanguages.slang_tr701 #: languages.slang_tr 702 702 msgid "Turkish" 703 703 msgstr "" 704 704 705 #: ulanguages.slang_ts705 #: languages.slang_ts 706 706 msgid "Tsonga" 707 707 msgstr "" 708 708 709 #: ulanguages.slang_tt709 #: languages.slang_tt 710 710 msgid "Tatar" 711 711 msgstr "" 712 712 713 #: ulanguages.slang_tw713 #: languages.slang_tw 714 714 msgid "Twi" 715 715 msgstr "" 716 716 717 #: ulanguages.slang_ty717 #: languages.slang_ty 718 718 msgid "Tahitian" 719 719 msgstr "" 720 720 721 #: ulanguages.slang_ug721 #: languages.slang_ug 722 722 msgid "Uighur" 723 723 msgstr "" 724 724 725 #: ulanguages.slang_uk725 #: languages.slang_uk 726 726 msgid "Ukrainian" 727 727 msgstr "" 728 728 729 #: ulanguages.slang_ur729 #: languages.slang_ur 730 730 msgid "Urdu" 731 731 msgstr "" 732 732 733 #: ulanguages.slang_uz733 #: languages.slang_uz 734 734 msgid "Uzbek" 735 735 msgstr "" 736 736 737 #: ulanguages.slang_ve737 #: languages.slang_ve 738 738 msgid "Venda" 739 739 msgstr "" 740 740 741 #: ulanguages.slang_vi741 #: languages.slang_vi 742 742 msgid "Vietnamese" 743 743 msgstr "" 744 744 745 #: ulanguages.slang_vo745 #: languages.slang_vo 746 746 msgid "Volapuk" 747 747 msgstr "" 748 748 749 #: ulanguages.slang_wa750 msgctxt " ulanguages.slang_wa"749 #: languages.slang_wa 750 msgctxt "languages.slang_wa" 751 751 msgid "Walloon" 752 752 msgstr "" 753 753 754 #: ulanguages.slang_wo754 #: languages.slang_wo 755 755 msgid "Wolof" 756 756 msgstr "" 757 757 758 #: ulanguages.slang_xh758 #: languages.slang_xh 759 759 msgid "Xhosa" 760 760 msgstr "" 761 761 762 #: ulanguages.slang_yi762 #: languages.slang_yi 763 763 msgid "Yiddish" 764 764 msgstr "" 765 765 766 #: ulanguages.slang_yo766 #: languages.slang_yo 767 767 msgid "Yoruba" 768 768 msgstr "" 769 769 770 #: ulanguages.slang_za770 #: languages.slang_za 771 771 msgid "Zhuang" 772 772 msgstr "" 773 773 774 #: ulanguages.slang_zh774 #: languages.slang_zh 775 775 msgid "Chinese" 776 776 msgstr "" 777 777 778 #: ulanguages.slang_zu 778 #: languages.slang_zh_hans 779 msgid "Simplified Chinese" 780 msgstr "" 781 782 #: languages.slang_zh_hant 783 msgid "Traditional Chinese" 784 msgstr "" 785 786 #: languages.slang_zu 779 787 msgid "Zulu" 780 788 msgstr "" -
trunk/Packages/Common/Languages/Pool.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: upool.sobjectpoolempty 14 #: pool.sobjectpoolempty 15 msgctxt "pool.sobjectpoolempty" 13 16 msgid "Object pool is empty" 14 17 msgstr "Zásobník objektů je prázdný" 15 18 16 #: upool.sreleaseerror 19 #: pool.sreleaseerror 20 msgctxt "pool.sreleaseerror" 17 21 msgid "Unknown object for release from pool" 18 22 msgstr "Neznýmý objekt pro uvolnění ze zásobníku" -
trunk/Packages/Common/Languages/Pool.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: upool.sobjectpoolempty4 #: pool.sobjectpoolempty 5 5 msgid "Object pool is empty" 6 6 msgstr "" 7 7 8 #: upool.sreleaseerror8 #: pool.sreleaseerror 9 9 msgid "Unknown object for release from pool" 10 10 msgstr "" -
trunk/Packages/Common/Languages/ResetableThread.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: uresetablethread.swaiterror 14 #: resetablethread.swaiterror 15 msgctxt "resetablethread.swaiterror" 13 16 msgid "WaitFor error" 14 17 msgstr "Chyba WaitFor" -
trunk/Packages/Common/Languages/ResetableThread.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uresetablethread.swaiterror4 #: resetablethread.swaiterror 5 5 msgid "WaitFor error" 6 6 msgstr "" -
trunk/Packages/Common/Languages/ScaleDPI.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: \n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "Language: cs\n" 12 "X-Generator: Poedit 1.8.9\n" 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: uscaledpi.swrongdpi14 #: scaledpi.swrongdpi 15 15 #, object-pascal-format 16 msgctxt "scaledpi.swrongdpi" 16 17 msgid "Wrong DPI [%d,%d]" 17 18 msgstr "Chybné DPI [%d,%d]" -
trunk/Packages/Common/Languages/ScaleDPI.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uscaledpi.swrongdpi4 #: scaledpi.swrongdpi 5 5 #, object-pascal-format 6 6 msgid "Wrong DPI [%d,%d]" -
trunk/Packages/Common/Languages/Threading.cs.po
r314 r315 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: uthreading.scurrentthreadnotfound14 #: threading.scurrentthreadnotfound 13 15 #, object-pascal-format 16 msgctxt "threading.scurrentthreadnotfound" 14 17 msgid "Current thread ID %d not found in virtual thread list." 15 18 msgstr "Aktuální vlákno ID %d nenalezeno v seznamu virtuálních vláken." -
trunk/Packages/Common/Languages/Threading.pot
r314 r315 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uthreading.scurrentthreadnotfound4 #: threading.scurrentthreadnotfound 5 5 #, object-pascal-format 6 6 msgid "Current thread ID %d not found in virtual thread list." -
trunk/Packages/Common/LastOpenedList.pas
r314 r315 1 unit ULastOpenedList; 2 3 {$mode delphi} 1 unit LastOpenedList; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, Registry, URegistry, Menus, XMLConf, DOM;6 Classes, SysUtils, Registry, RegistryEx, Menus, XMLConf, DOM; 9 7 10 8 type … … 84 82 destructor TLastOpenedList.Destroy; 85 83 begin 86 Items.Free;84 FreeAndNil(Items); 87 85 inherited; 88 86 end; … … 94 92 begin 95 93 if Assigned(MenuItem) then begin 96 MenuItem.Clear; 94 while MenuItem.Count > Items.Count do 95 MenuItem.Delete(MenuItem.Count - 1); 96 while MenuItem.Count < Items.Count do begin 97 NewMenuItem := TMenuItem.Create(MenuItem); 98 MenuItem.Add(NewMenuItem); 99 end; 97 100 for I := 0 to Items.Count - 1 do begin 98 NewMenuItem := TMenuItem.Create(MenuItem); 99 NewMenuItem.Caption := Items[I]; 100 NewMenuItem.OnClick := ClickAction; 101 MenuItem.Add(NewMenuItem); 101 MenuItem.Items[I].Caption := Items[I]; 102 MenuItem.Items[I].OnClick := ClickAction; 102 103 end; 103 104 end; … … 193 194 194 195 end. 195 -
trunk/Packages/Common/ListViewSort.pas
r314 r315 1 unit UListViewSort;1 unit ListViewSort; 2 2 3 3 // Date: 2019-05-17 4 5 {$mode delphi}6 4 7 5 interface … … 9 7 uses 10 8 {$IFDEF Windows}Windows, CommCtrl, LMessages, {$ENDIF}Classes, Graphics, ComCtrls, SysUtils, 11 Controls, DateUtils, Dialogs, fgl,Forms, Grids, StdCtrls, ExtCtrls,12 LclIntf, LclType, LResources ;9 Controls, DateUtils, Dialogs, Forms, Grids, StdCtrls, ExtCtrls, 10 LclIntf, LclType, LResources, Generics.Collections, Generics.Defaults; 13 11 14 12 type … … 19 17 TCompareEvent = function (Item1, Item2: TObject): Integer of object; 20 18 TListFilterEvent = procedure (ListViewSort: TListViewSort) of object; 19 20 TObjects = TObjectList<TObject>; 21 21 22 22 { TListViewSort } … … 52 52 {$ENDIF} 53 53 public 54 List: TFPGObjectList<TObject>;55 Source: TFPGObjectList<TObject>;54 Source: TObjects; 55 List: TObjects; 56 56 constructor Create(AOwner: TComponent); override; 57 57 destructor Destroy; override; … … 136 136 constructor TListViewEx.Create(TheOwner: TComponent); 137 137 begin 138 inherited Create(TheOwner);138 inherited; 139 139 Filter := TListViewFilter.Create(Self); 140 140 Filter.Parent := Self; … … 149 149 destructor TListViewEx.Destroy; 150 150 begin 151 inherited Destroy;151 inherited; 152 152 end; 153 153 … … 172 172 constructor TListViewFilter.Create(AOwner: TComponent); 173 173 begin 174 inherited Create(AOwner);174 inherited; 175 175 FStringGrid1 := TStringGrid.Create(Self); 176 176 FStringGrid1.Align := alClient; … … 338 338 ListViewSortCompare: TCompareEvent; 339 339 340 function ListViewCompare(const Item1, Item2: TObject): Integer;340 function ListViewCompare(constref Item1, Item2: TObject): Integer; 341 341 begin 342 342 Result := ListViewSortCompare(Item1, Item2); … … 349 349 ListViewSortCompare := Compare; 350 350 if (List.Count > 0) then 351 List.Sort( ListViewCompare);351 List.Sort(TComparer<TObject>.Construct(ListViewCompare)); 352 352 end; 353 353 … … 355 355 begin 356 356 if Assigned(FOnFilter) then FOnFilter(Self) 357 else if Assigned(Source) then 358 List.Assign(Source) else 357 else if Assigned(Source) then begin 359 358 List.Clear; 359 List.AddRange(Source); 360 end else List.Clear; 360 361 if ListView.Items.Count <> List.Count then 361 362 ListView.Items.Count := List.Count; … … 412 413 begin 413 414 inherited; 414 List := T FPGObjectList<TObject>.Create;415 List. FreeObjects := False;415 List := TObjects.Create; 416 List.OwnsObjects := False; 416 417 end; 417 418 418 419 destructor TListViewSort.Destroy; 419 420 begin 420 List.Free;421 FreeAndNil(List); 421 422 inherited; 422 423 end; -
trunk/Packages/Common/Memory.pas
r314 r315 1 unit UMemory; 2 3 {$mode Delphi}{$H+} 1 unit Memory; 4 2 5 3 interface … … 44 42 end; 45 43 44 46 45 implementation 47 46 … … 50 49 procedure TPositionMemory.SetSize(AValue: Integer); 51 50 begin 52 inherited SetSize(AValue);51 inherited; 53 52 if FPosition > FSize then FPosition := FSize; 54 53 end; … … 107 106 begin 108 107 Size := 0; 109 inherited Destroy;108 inherited; 110 109 end; 111 110 … … 121 120 122 121 end. 123 -
trunk/Packages/Common/MetaCanvas.pas
r314 r315 1 unit UMetaCanvas; 2 3 {$mode delphi} 1 unit MetaCanvas; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, Graphics, Types, fgl;6 Classes, SysUtils, Graphics, Types, Generics.Collections; 9 7 10 8 type … … 19 17 end; 20 18 21 TCanvasObjects = class(T FPGObjectList<TCanvasObject>)19 TCanvasObjects = class(TObjectList<TCanvasObject>) 22 20 end; 23 21 … … 65 63 66 64 TCanvasPolygon = class(TCanvasObject) 65 Pen: TPen; 66 Brush: TBrush; 67 Points: array of TPoint; 68 procedure Paint(Canvas: TCanvas); override; 69 procedure Zoom(Factor: Double); override; 70 procedure Move(Delta: TPoint); override; 71 constructor Create; 72 destructor Destroy; override; 73 end; 74 75 { TCanvasPolyline } 76 77 TCanvasPolyline = class(TCanvasObject) 78 Pen: TPen; 79 Brush: TBrush; 80 Points: array of TPoint; 81 procedure Paint(Canvas: TCanvas); override; 82 procedure Zoom(Factor: Double); override; 83 procedure Move(Delta: TPoint); override; 84 constructor Create; 85 destructor Destroy; override; 86 end; 87 88 { TCanvasPolyBezier } 89 90 TCanvasPolyBezier = class(TCanvasObject) 67 91 Pen: TPen; 68 92 Brush: TBrush; … … 135 159 procedure DoMoveTo(X, Y: Integer); override; 136 160 procedure DoLineTo(X, Y: Integer); override; 161 procedure DoPolyline(const Points: array of TPoint); override; 162 procedure DoPolyBezier(Points: PPoint; NumPts: Integer; 163 Filled: Boolean = False; Continuous: Boolean = False); override; 137 164 public 138 165 Objects: TCanvasObjects; … … 143 170 procedure TextOut(X,Y: Integer; const Text: String); override; 144 171 procedure Polygon(Points: PPoint; NumPts: Integer; Winding: Boolean = False); override; 172 procedure Polyline(Points: PPoint; NumPts: Integer); override; 173 procedure PolyBezier(Points: PPoint; NumPts: Integer; 174 Filled: Boolean = False; Continuous: Boolean = True); override; 145 175 procedure Ellipse(x1, y1, x2, y2: Integer); override; 146 176 procedure StretchDraw(const DestRect: TRect; SrcGraphic: TGraphic); override; … … 161 191 162 192 uses 163 UGeometric, LCLIntf; 193 Geometric, LCLIntf; 194 195 { TCanvasPolyBezier } 196 197 procedure TCanvasPolyBezier.Paint(Canvas: TCanvas); 198 begin 199 Canvas.Pen.Assign(Pen); 200 Canvas.Brush.Assign(Brush); 201 Canvas.PolyBezier(Points); 202 end; 203 204 procedure TCanvasPolyBezier.Zoom(Factor: Double); 205 var 206 I: Integer; 207 begin 208 for I := 0 to High(Points) do 209 Points[I] := Point(Trunc(Points[I].X * Factor), 210 Trunc(Points[I].Y * Factor)); 211 Pen.Width := Trunc(Pen.Width * Factor); 212 end; 213 214 procedure TCanvasPolyBezier.Move(Delta: TPoint); 215 var 216 I: Integer; 217 begin 218 for I := 0 to High(Points) do 219 Points[I] := AddPoint(Points[I], Delta); 220 end; 221 222 constructor TCanvasPolyBezier.Create; 223 begin 224 Pen := TPen.Create; 225 Brush := TBrush.Create; 226 end; 227 228 destructor TCanvasPolyBezier.Destroy; 229 begin 230 FreeAndNil(Brush); 231 FreeAndNil(Pen); 232 inherited; 233 end; 234 235 { TCanvasPolyline } 236 237 procedure TCanvasPolyline.Paint(Canvas: TCanvas); 238 begin 239 Canvas.Pen.Assign(Pen); 240 Canvas.Brush.Assign(Brush); 241 Canvas.Polyline(Points); 242 end; 243 244 procedure TCanvasPolyline.Zoom(Factor: Double); 245 var 246 I: Integer; 247 begin 248 for I := 0 to High(Points) do 249 Points[I] := Point(Trunc(Points[I].X * Factor), 250 Trunc(Points[I].Y * Factor)); 251 Pen.Width := Trunc(Pen.Width * Factor); 252 end; 253 254 procedure TCanvasPolyline.Move(Delta: TPoint); 255 var 256 I: Integer; 257 begin 258 for I := 0 to High(Points) do 259 Points[I] := AddPoint(Points[I], Delta); 260 end; 261 262 constructor TCanvasPolyline.Create; 263 begin 264 Pen := TPen.Create; 265 Brush := TBrush.Create; 266 end; 267 268 destructor TCanvasPolyline.Destroy; 269 begin 270 FreeAndNil(Brush); 271 FreeAndNil(Pen); 272 inherited; 273 end; 164 274 165 275 { TCanvasPie } … … 306 416 destructor TCanvasPolygon.Destroy; 307 417 begin 308 Brush.Free;309 Pen.Free;418 FreeAndNil(Brush); 419 FreeAndNil(Pen); 310 420 inherited; 311 421 end; … … 513 623 APoints[I] := Points[I]; 514 624 DoPolygon(APoints); 625 end; 626 627 procedure TMetaCanvas.Polyline(Points: PPoint; NumPts: Integer); 628 var 629 APoints: array of TPoint; 630 I: Integer; 631 begin 632 APoints := nil; 633 SetLength(APoints, NumPts); 634 for I := 0 to High(APoints) do 635 APoints[I] := Points[I]; 636 DoPolyline(APoints); 637 end; 638 639 procedure TMetaCanvas.PolyBezier(Points: PPoint; NumPts: Integer; 640 Filled: Boolean; Continuous: Boolean); 641 begin 642 DoPolyBezier(Points, NumPts, Filled, Continuous); 515 643 end; 516 644 … … 582 710 end; 583 711 712 procedure TMetaCanvas.DoPolyline(const Points: array of TPoint); 713 var 714 NewObj: TCanvasPolyline; 715 I: Integer; 716 begin 717 NewObj := TCanvasPolyline.Create; 718 NewObj.Brush.Assign(Brush); 719 NewObj.Pen.Assign(Pen); 720 SetLength(NewObj.Points, Length(Points)); 721 for I := 0 to High(Points) do 722 NewObj.Points[I] := Points[I]; 723 Objects.Add(NewObj); 724 end; 725 726 procedure TMetaCanvas.DoPolyBezier(Points: PPoint; NumPts: Integer; 727 Filled: Boolean; Continuous: Boolean); 728 var 729 NewObj: TCanvasPolyBezier; 730 I: Integer; 731 begin 732 NewObj := TCanvasPolyBezier.Create; 733 NewObj.Brush.Assign(Brush); 734 NewObj.Pen.Assign(Pen); 735 SetLength(NewObj.Points, NumPts); 736 for I := 0 to High(NewObj.Points) do 737 NewObj.Points[I] := Points[I]; 738 Objects.Add(NewObj); 739 end; 740 584 741 procedure TMetaCanvas.FillRect(const ARect: TRect); 585 742 begin … … 666 823 667 824 end. 668 -
trunk/Packages/Common/PersistentForm.pas
r314 r315 1 unit UPersistentForm; 2 3 {$mode delphi} 4 5 // Date: 2020-11-26 1 unit PersistentForm; 6 2 7 3 interface 8 4 9 5 uses 10 Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls,6 Classes, SysUtils, Forms, RegistryEx, LCLIntf, Registry, Controls, ComCtrls, 11 7 ExtCtrls, LCLType; 12 8 … … 23 19 procedure SaveControl(Control: TControl); 24 20 public 25 FormNormalSize: TRect;26 21 FormRestoredSize: TRect; 27 22 FormWindowState: TWindowState; … … 157 152 RootKey := RegistryContext.RootKey; 158 153 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 159 // Normal size 160 FormNormalSize.Left := ReadIntegerWithDefault('NormalLeft', FormNormalSize.Left); 161 FormNormalSize.Top := ReadIntegerWithDefault('NormalTop', FormNormalSize.Top); 162 FormNormalSize.Right := ReadIntegerWithDefault('NormalWidth', FormNormalSize.Right - FormNormalSize.Left) 163 + FormNormalSize.Left; 164 FormNormalSize.Bottom := ReadIntegerWithDefault('NormalHeight', FormNormalSize.Bottom - FormNormalSize.Top) 165 + FormNormalSize.Top; 154 166 155 // Restored size 167 156 FormRestoredSize.Left := ReadIntegerWithDefault('RestoredLeft', FormRestoredSize.Left); … … 171 160 FormRestoredSize.Bottom := ReadIntegerWithDefault('RestoredHeight', FormRestoredSize.Bottom - FormRestoredSize.Top) 172 161 + FormRestoredSize.Top; 162 173 163 // Other state 174 164 FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(FormWindowState))); … … 185 175 RootKey := RegistryContext.RootKey; 186 176 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 187 // Normal state 188 WriteInteger('NormalWidth', FormNormalSize.Right - FormNormalSize.Left); 189 WriteInteger('NormalHeight', FormNormalSize.Bottom - FormNormalSize.Top); 190 WriteInteger('NormalTop', FormNormalSize.Top); 191 WriteInteger('NormalLeft', FormNormalSize.Left); 192 // Restored state 177 178 // Restored size 193 179 WriteInteger('RestoredWidth', FormRestoredSize.Right - FormRestoredSize.Left); 194 180 WriteInteger('RestoredHeight', FormRestoredSize.Bottom - FormRestoredSize.Top); 195 181 WriteInteger('RestoredTop', FormRestoredSize.Top); 196 182 WriteInteger('RestoredLeft', FormRestoredSize.Left); 183 197 184 // Other state 198 185 WriteInteger('WindowState', Integer(FormWindowState)); … … 259 246 begin 260 247 Self.Form := Form; 248 261 249 // Set default 262 FormNormalSize := Bounds((Screen.Width - Form.Width) div 2,263 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height);264 250 FormRestoredSize := Bounds((Screen.Width - Form.Width) div 2, 265 251 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height); … … 269 255 LoadFromRegistry(RegistryContext); 270 256 271 if not EqualRect(FormNormalSize, FormRestoredSize) or 272 DefaultMaximized then begin 257 if (FormWindowState = wsMaximized) or DefaultMaximized then begin 273 258 // Restore to maximized state 274 259 Form.WindowState := wsNormal; … … 279 264 // Restore to normal state 280 265 Form.WindowState := wsNormal; 281 if FEntireVisible then Form NormalSize := CheckEntireVisible(FormNormalSize)266 if FEntireVisible then FormRestoredSize := CheckEntireVisible(FormRestoredSize) 282 267 else if FMinVisiblePart > 0 then 283 FormNormalSize := CheckPartVisible(FormNormalSize, FMinVisiblePart);284 if not EqualRect(Form NormalSize, Form.BoundsRect) then285 Form.BoundsRect := Form NormalSize;268 FormRestoredSize := CheckPartVisible(FormRestoredSize, FMinVisiblePart); 269 if not EqualRect(FormRestoredSize, Form.BoundsRect) then 270 Form.BoundsRect := FormRestoredSize; 286 271 end; 287 272 if FormFullScreen then SetFullScreen(True); … … 292 277 begin 293 278 Self.Form := Form; 294 FormNormalSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 295 if not FormFullScreen then 296 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 297 Form.RestoredHeight); 298 FormWindowState := Form.WindowState; 279 if not FormFullScreen then begin 280 FormWindowState := Form.WindowState; 281 if FormWindowState = wsMaximized then begin 282 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 283 Form.RestoredHeight); 284 end else 285 if FormWindowState = wsNormal then begin 286 FormRestoredSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 287 end; 288 end; 299 289 SaveToRegistry(RegistryContext); 300 290 SaveControl(Form); … … 314 304 if State then begin 315 305 FormFullScreen := True; 316 FormNormalSize := Form.BoundsRect; 317 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 318 Form.RestoredHeight); 306 if Form.WindowState = wsMaximized then begin 307 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 308 Form.RestoredHeight); 309 end else 310 if Form.WindowState = wsNormal then begin 311 FormRestoredSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 312 end; 319 313 FormWindowState := Form.WindowState; 314 Form.WindowState := wsMaximized; 315 Form.WindowState := wsNormal; 320 316 ShowWindow(Form.Handle, SW_SHOWFULLSCREEN); 321 317 {$IFDEF WINDOWS} … … 329 325 ShowWindow(Form.Handle, SW_SHOWNORMAL); 330 326 if FormWindowState = wsNormal then begin 331 Form.BoundsRect := FormNormalSize; 327 Form.WindowState := wsNormal; 328 Form.BoundsRect := FormRestoredSize; 332 329 end else 333 330 if FormWindowState = wsMaximized then begin … … 339 336 340 337 end. 341 -
trunk/Packages/Common/PixelPointer.pas
r314 r315 1 unit UPixelPointer;1 unit PixelPointer; 2 2 3 3 interface 4 4 5 5 uses 6 Classes, SysUtils, Graphics;6 Math, Classes, SysUtils, Graphics; 7 7 8 8 type 9 9 TColor32 = type Cardinal; 10 10 TColor32Component = (ccBlue, ccGreen, ccRed, ccAlpha); 11 TColor32Planes = array[0..3] of Byte; 11 12 12 13 { TPixel32 } … … 14 15 TPixel32 = packed record 15 16 private 16 procedure SetRGB(AValue: Cardinal); 17 function GetRGB: Cardinal; 17 procedure SetRGB(AValue: Cardinal); inline; 18 function GetRGB: Cardinal; inline; 18 19 public 20 class function CreateRGB(R, G, B: Byte): TPixel32; static; 21 class function CreateRGBA(R, G, B, A: Byte): TPixel32; static; 19 22 property RGB: Cardinal read GetRGB write SetRGB; 20 23 case Integer of 21 24 0: (B, G, R, A: Byte); 22 25 1: (ARGB: TColor32); 23 2: (Planes: array[0..3] of Byte);26 2: (Planes: TColor32Planes); 24 27 3: (Components: array[TColor32Component] of Byte); 25 28 end; … … 29 32 30 33 TPixelPointer = record 34 private 35 function GetPixelARGB: TColor32; inline; 36 function GetPixelB: Byte; inline; 37 function GetPixelG: Byte; inline; 38 function GetPixelPlane(Index: Byte): Byte; inline; 39 function GetPixelR: Byte; inline; 40 function GetPixelA: Byte; inline; 41 function GetPixelPlanes: TColor32Planes; 42 function GetPixelRGB: Cardinal; inline; 43 procedure SetPixelARGB(Value: TColor32); inline; 44 procedure SetPixelB(Value: Byte); inline; 45 procedure SetPixelG(Value: Byte); inline; 46 procedure SetPixelPlane(Index: Byte; AValue: Byte); inline; 47 procedure SetPixelR(Value: Byte); inline; 48 procedure SetPixelA(Value: Byte); inline; 49 procedure SetPixelRGB(Value: Cardinal); inline; 50 public 31 51 Base: PPixel32; 32 52 Pixel: PPixel32; … … 35 55 BytesPerPixel: Integer; 36 56 BytesPerLine: Integer; 57 Data: PPixel32; 58 Width: Integer; 59 Height: Integer; 37 60 procedure NextLine; inline; // Move pointer to start of next line 38 61 procedure PreviousLine; inline; // Move pointer to start of previous line … … 41 64 procedure SetXY(X, Y: Integer); inline; // Set pixel position relative to base 42 65 procedure SetX(X: Integer); inline; // Set horizontal pixel position relative to base 66 procedure CheckRange; inline; // Check if current pixel position is not out of range 67 function PosValid: Boolean; 68 class function Create(Bitmap: TRasterImage; BaseX: Integer = 0; BaseY: Integer = 0): TPixelPointer; static; 69 property PixelARGB: TColor32 read GetPixelARGB write SetPixelARGB; 70 property PixelRGB: Cardinal read GetPixelRGB write SetPixelRGB; 71 property PixelB: Byte read GetPixelB write SetPixelB; 72 property PixelG: Byte read GetPixelG write SetPixelG; 73 property PixelR: Byte read GetPixelR write SetPixelR; 74 property PixelA: Byte read GetPixelA write SetPixelA; 75 property PixelPlane[Index: Byte]: Byte read GetPixelPlane write SetPixelPlane; 43 76 end; 44 77 PPixelPointer = ^TPixelPointer; 45 78 46 function PixelPointer(Bitmap: TRasterImage; BaseX: Integer = 0; BaseY: Integer = 0): TPixelPointer; inline;47 79 function SwapRedBlue(Color: TColor32): TColor32; 48 80 procedure BitmapCopyRect(DstBitmap: TRasterImage; DstRect: TRect; SrcBitmap: TRasterImage; SrcPos: TPoint); … … 60 92 function ColorToColor32(Color: TColor): TColor32; 61 93 94 62 95 implementation 63 96 97 resourcestring 98 SOutOfRange = 'Pixel pointer out of range [X: %d, Y: %d, Width: %d, Height: %d]'; 99 SWrongBitmapSize = 'Wrong bitmap size [width: %d, height: %d]'; 100 64 101 { TPixel32 } 65 102 … … 69 106 end; 70 107 108 class function TPixel32.CreateRGB(R, G, B: Byte): TPixel32; 109 begin 110 Result.R := R; 111 Result.G := G; 112 Result.B := B; 113 Result.A := 0; 114 end; 115 116 class function TPixel32.CreateRGBA(R, G, B, A: Byte): TPixel32; 117 begin 118 Result.R := R; 119 Result.G := G; 120 Result.B := B; 121 Result.A := A; 122 end; 123 71 124 procedure TPixel32.SetRGB(AValue: Cardinal); 72 125 begin 73 R := (AValue shr 16) and $ff; 74 G := (AValue shr 8) and $ff; 75 B := (AValue shr 0) and $ff; 126 ARGB := (ARGB and $ff000000) or (AValue and $ffffff); 76 127 end; 77 128 … … 111 162 end; 112 163 164 procedure TPixelPointer.CheckRange; 165 {$IFOPT R+} 166 var 167 X: Integer; 168 Y: Integer; 169 {$ENDIF} 170 begin 171 {$IFOPT R+} 172 if (PByte(Pixel) < PByte(Data)) or 173 (PByte(Pixel) >= PByte(Data) + Height * BytesPerLine) then begin 174 X := PByte(Pixel) - PByte(Data); 175 Y := Floor(X / BytesPerLine); 176 X := X - Y * BytesPerLine; 177 X := Floor(X / BytesPerPixel); 178 raise Exception.Create(Format(SOutOfRange, [X, Y, Width, Height])); 179 end; 180 {$ENDIF} 181 end; 182 183 function TPixelPointer.PosValid: Boolean; 184 begin 185 Result := not ((PByte(Pixel) < PByte(Data)) or 186 (PByte(Pixel) >= PByte(Data) + Height * BytesPerLine)); 187 end; 188 189 function TPixelPointer.GetPixelPlanes: TColor32Planes; 190 begin 191 CheckRange; 192 Result := Pixel^.Planes; 193 end; 194 195 function TPixelPointer.GetPixelRGB: Cardinal; 196 begin 197 CheckRange; 198 Result := Pixel^.RGB; 199 end; 200 201 procedure TPixelPointer.SetPixelARGB(Value: TColor32); 202 begin 203 CheckRange; 204 Pixel^.ARGB := Value; 205 end; 206 207 procedure TPixelPointer.SetPixelB(Value: Byte); 208 begin 209 CheckRange; 210 Pixel^.B := Value; 211 end; 212 213 procedure TPixelPointer.SetPixelG(Value: Byte); 214 begin 215 CheckRange; 216 Pixel^.G := Value; 217 end; 218 219 procedure TPixelPointer.SetPixelPlane(Index: Byte; AValue: Byte); 220 begin 221 CheckRange; 222 Pixel^.Planes[Index] := AValue; 223 end; 224 225 procedure TPixelPointer.SetPixelR(Value: Byte); 226 begin 227 CheckRange; 228 Pixel^.R := Value; 229 end; 230 231 procedure TPixelPointer.SetPixelA(Value: Byte); 232 begin 233 CheckRange; 234 Pixel^.A := Value; 235 end; 236 237 function TPixelPointer.GetPixelARGB: TColor32; 238 begin 239 CheckRange; 240 Result := Pixel^.ARGB; 241 end; 242 243 function TPixelPointer.GetPixelB: Byte; 244 begin 245 CheckRange; 246 Result := Pixel^.B; 247 end; 248 249 function TPixelPointer.GetPixelG: Byte; 250 begin 251 CheckRange; 252 Result := Pixel^.G; 253 end; 254 255 function TPixelPointer.GetPixelPlane(Index: Byte): Byte; 256 begin 257 CheckRange; 258 Result := Pixel^.Planes[Index]; 259 end; 260 261 function TPixelPointer.GetPixelR: Byte; 262 begin 263 CheckRange; 264 Result := Pixel^.R; 265 end; 266 267 function TPixelPointer.GetPixelA: Byte; 268 begin 269 CheckRange; 270 Result := Pixel^.A; 271 end; 272 273 procedure TPixelPointer.SetPixelRGB(Value: Cardinal); 274 begin 275 CheckRange; 276 Pixel^.RGB := Value; 277 end; 278 113 279 procedure BitmapCopyRect(DstBitmap: TRasterImage; DstRect: TRect; 114 280 SrcBitmap: TRasterImage; SrcPos: TPoint); … … 119 285 SrcBitmap.BeginUpdate(True); 120 286 DstBitmap.BeginUpdate(True); 121 SrcPtr := PixelPointer(SrcBitmap, SrcPos.X, SrcPos.Y);122 DstPtr := PixelPointer(DstBitmap, DstRect.Left, DstRect.Top);287 SrcPtr := TPixelPointer.Create(SrcBitmap, SrcPos.X, SrcPos.Y); 288 DstPtr := TPixelPointer.Create(DstBitmap, DstRect.Left, DstRect.Top); 123 289 for Y := 0 to DstRect.Height - 1 do begin 124 290 for X := 0 to DstRect.Width - 1 do begin 125 DstPtr.Pixel ^.ARGB := SrcPtr.Pixel^.ARGB;291 DstPtr.PixelARGB := SrcPtr.PixelARGB; 126 292 SrcPtr.NextPixel; 127 293 DstPtr.NextPixel; … … 149 315 SrcBitmap.BeginUpdate(True); 150 316 DstBitmap.BeginUpdate(True); 151 SrcPtr := PixelPointer(SrcBitmap, SrcRect.Left, SrcRect.Top);152 DstPtr := PixelPointer(DstBitmap, DstRect.Left, DstRect.Top);317 SrcPtr := TPixelPointer.Create(SrcBitmap, SrcRect.Left, SrcRect.Top); 318 DstPtr := TPixelPointer.Create(DstBitmap, DstRect.Left, DstRect.Top); 153 319 for Y := 0 to DstRect.Height - 1 do begin 154 320 for X := 0 to DstRect.Width - 1 do begin … … 159 325 DstPtr.SetXY(X, Y); 160 326 SrcPtr.SetXY(R.Left, R.Top); 161 C := SrcPtr.Pixel ^.ARGB;162 DstPtr.Pixel ^.ARGB := C;327 C := SrcPtr.PixelARGB; 328 DstPtr.PixelARGB := C; 163 329 for YY := 0 to R.Height - 1 do begin 164 330 for XX := 0 to R.Width - 1 do begin 165 DstPtr.Pixel ^.ARGB := C;331 DstPtr.PixelARGB := C; 166 332 DstPtr.NextPixel; 167 333 end; … … 180 346 begin 181 347 Bitmap.BeginUpdate(True); 182 Ptr := PixelPointer(Bitmap);348 Ptr := TPixelPointer.Create(Bitmap); 183 349 for Y := 0 to Bitmap.Height - 1 do begin 184 350 for X := 0 to Bitmap.Width - 1 do begin 185 Ptr.Pixel ^.ARGB := Color;351 Ptr.PixelARGB := Color; 186 352 Ptr.NextPixel; 187 353 end; … … 197 363 begin 198 364 Bitmap.BeginUpdate(True); 199 Ptr := PixelPointer(Bitmap, Rect.Left, Rect.Top);365 Ptr := TPixelPointer.Create(Bitmap, Rect.Left, Rect.Top); 200 366 for Y := 0 to Rect.Height - 1 do begin 201 367 for X := 0 to Rect.Width - 1 do begin 202 Ptr.Pixel ^.ARGB := Color;368 Ptr.PixelARGB := Color; 203 369 Ptr.NextPixel; 204 370 end; … … 214 380 begin 215 381 Bitmap.BeginUpdate(True); 216 Ptr := PixelPointer(Bitmap);382 Ptr := TPixelPointer.Create(Bitmap); 217 383 for Y := 0 to Bitmap.Height - 1 do begin 218 384 for X := 0 to Bitmap.Width - 1 do begin 219 Ptr.Pixel ^.ARGB := SwapRedBlue(Ptr.Pixel^.ARGB);385 Ptr.PixelARGB := SwapRedBlue(Ptr.PixelARGB); 220 386 Ptr.NextPixel; 221 387 end; … … 231 397 begin 232 398 Bitmap.BeginUpdate(True); 233 Ptr := PixelPointer(Bitmap);399 Ptr := TPixelPointer.Create(Bitmap); 234 400 for Y := 0 to Bitmap.Height - 1 do begin 235 401 for X := 0 to Bitmap.Width - 1 do begin 236 Ptr.Pixel ^.ARGB := Ptr.Pixel^.ARGB xor $ffffff;402 Ptr.PixelARGB := Ptr.PixelARGB xor $ffffff; 237 403 Ptr.NextPixel; 238 404 end; … … 251 417 Pixel := Color32ToPixel32(Color); 252 418 Bitmap.BeginUpdate(True); 253 Ptr := PixelPointer(Bitmap);419 Ptr := TPixelPointer.Create(Bitmap); 254 420 for Y := 0 to Bitmap.Height - 1 do begin 255 421 for X := 0 to Bitmap.Width - 1 do begin 256 A := Ptr.Pixel ^.A; //(Ptr.Pixel^.A + Pixel.A) shr 1;257 R := (Ptr.Pixel ^.R + Pixel.R) shr 1;258 G := (Ptr.Pixel ^.G + Pixel.G) shr 1;259 B := (Ptr.Pixel ^.B + Pixel.B) shr 1;260 Ptr.Pixel ^.ARGB := Color32(A, R, G, B);422 A := Ptr.PixelA; //(Ptr.PixelA + Pixel.A) shr 1; 423 R := (Ptr.PixelR + Pixel.R) shr 1; 424 G := (Ptr.PixelG + Pixel.G) shr 1; 425 B := (Ptr.PixelB + Pixel.B) shr 1; 426 Ptr.PixelARGB := Color32(A, R, G, B); 261 427 Ptr.NextPixel; 262 428 end; … … 294 460 end; 295 461 296 function PixelPointer(Bitmap: TRasterImage; BaseX: Integer;462 class function TPixelPointer.Create(Bitmap: TRasterImage; BaseX: Integer; 297 463 BaseY: Integer): TPixelPointer; 298 464 begin 465 Result.Width := Bitmap.Width; 466 Result.Height := Bitmap.Height; 467 if (Result.Width < 0) or (Result.Height < 0) then 468 raise Exception.Create(Format(SWrongBitmapSize, [Result.Width, Result.Height])); 299 469 Result.BytesPerLine := Bitmap.RawImage.Description.BytesPerLine; 300 470 Result.BytesPerPixel := Bitmap.RawImage.Description.BitsPerPixel shr 3; 471 Result.Data := PPixel32(Bitmap.RawImage.Data); 301 472 Result.Base := PPixel32(Bitmap.RawImage.Data + BaseX * Result.BytesPerPixel + 302 473 BaseY * Result.BytesPerLine); … … 309 480 end; 310 481 311 312 482 end. 313 -
trunk/Packages/Common/Pool.pas
r314 r315 1 unit UPool; 2 3 {$mode Delphi}{$H+} 1 unit Pool; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, syncobjs, fgl, UThreading;6 Classes, SysUtils, syncobjs, Generics.Collections, Threading; 9 7 10 8 type … … 22 20 function NewItemObject: TObject; virtual; 23 21 public 24 Items: T FPGObjectList<TObject>;25 FreeItems: T FPGObjectList<TObject>;22 Items: TObjectList<TObject>; 23 FreeItems: TObjectList<TObject>; 26 24 function Acquire: TObject; virtual; 27 25 procedure Release(Item: TObject); virtual; … … 59 57 try 60 58 Lock.Acquire; 61 inherited SetTotalCount(AValue);59 inherited; 62 60 finally 63 61 Lock.Release; … … 69 67 try 70 68 Lock.Acquire; 71 Result := inherited GetUsedCount;69 Result := inherited; 72 70 finally 73 71 Lock.Release; … … 90 88 end; 91 89 end; 92 Result := inherited Acquire;90 Result := inherited; 93 91 finally 94 92 Lock.Release; … … 100 98 try 101 99 Lock.Acquire; 102 inherited Release(Item);100 inherited; 103 101 finally 104 102 Lock.Release; … … 108 106 constructor TThreadedPool.Create; 109 107 begin 110 inherited Create;108 inherited; 111 109 Lock := TCriticalSection.Create; 112 110 end; … … 115 113 begin 116 114 TotalCount := 0; 117 Lock.Free;118 inherited Destroy;115 FreeAndNil(Lock); 116 inherited; 119 117 end; 120 118 … … 185 183 begin 186 184 inherited; 187 Items := T FPGObjectList<TObject>.Create;188 FreeItems := T FPGObjectList<TObject>.Create;189 FreeItems. FreeObjects := False;185 Items := TObjectList<TObject>.Create; 186 FreeItems := TObjectList<TObject>.Create; 187 FreeItems.OwnsObjects := False; 190 188 FReleaseEvent := TEvent.Create(nil, False, False, ''); 191 189 end; … … 201 199 202 200 end. 203 -
trunk/Packages/Common/PrefixMultiplier.pas
r314 r315 1 unit UPrefixMultiplier;1 unit PrefixMultiplier; 2 2 3 3 // Date: 2010-06-01 4 5 {$mode delphi}6 4 7 5 interface … … 33 31 ( 34 32 (ShortText: 'y'; FullText: 'yocto'; Value: 1e-24), 35 33 (ShortText: 'z'; FullText: 'zepto'; Value: 1e-21), 36 34 (ShortText: 'a'; FullText: 'atto'; Value: 1e-18), 37 35 (ShortText: 'f'; FullText: 'femto'; Value: 1e-15), … … 54 52 ( 55 53 (ShortText: 'ys'; FullText: 'yocto'; Value: 1e-24), 56 54 (ShortText: 'zs'; FullText: 'zepto'; Value: 1e-21), 57 55 (ShortText: 'as'; FullText: 'atto'; Value: 1e-18), 58 56 (ShortText: 'fs'; FullText: 'femto'; Value: 1e-15), … … 126 124 127 125 end. 128 -
trunk/Packages/Common/RegistryEx.pas
r314 r315 1 unit URegistry; 2 3 {$MODE delphi} 1 unit RegistryEx; 4 2 5 3 interface … … 48 46 HKEY_CURRENT_CONFIG, HKEY_DYN_DATA); 49 47 48 50 49 implementation 51 52 50 53 51 { TRegistryContext } … … 135 133 //CloseKey; 136 134 {$ENDIF} 137 Result := inherited OpenKey(Key, CanCreate);135 Result := inherited; 138 136 end; 139 137 -
trunk/Packages/Common/ResetableThread.pas
r314 r315 1 unit UResetableThread; 2 3 {$mode Delphi}{$H+} 1 unit ResetableThread; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, syncobjs, UThreading, UPool;6 Classes, SysUtils, syncobjs, Threading, Pool; 9 7 10 8 type … … 167 165 FreeAndNil(FStopEvent); 168 166 FreeAndNil(FLock); 169 inherited Destroy;167 inherited; 170 168 end; 171 169 … … 286 284 constructor TThreadPool.Create; 287 285 begin 288 inherited Create;286 inherited; 289 287 end; 290 288 … … 293 291 TotalCount := 0; 294 292 WaitForEmpty; 295 inherited Destroy;293 inherited; 296 294 end; 297 295 298 296 end. 299 -
trunk/Packages/Common/ScaleDPI.pas
r314 r315 1 unit UScaleDPI;1 unit ScaleDPI; 2 2 3 3 { See: http://wiki.lazarus.freepascal.org/High_DPI } 4 4 5 {$mode delphi}{$H+}6 7 5 interface 8 6 9 7 uses 10 Classes, Forms, Graphics, Controls, ComCtrls, LCLType, SysUtils, fgl; 8 Classes, Forms, Graphics, Controls, ComCtrls, LCLType, SysUtils, 9 Generics.Collections; 11 10 12 11 type … … 28 27 end; 29 28 30 TControlDimensions = class(T FPGObjectList<TControlDimension>)29 TControlDimensions = class(TObjectList<TControlDimension>) 31 30 end; 32 31 -
trunk/Packages/Common/StopWatch.pas
r43 r315 5 5 6 6 uses 7 {$IFDEF W indows}Windows,{$ENDIF}7 {$IFDEF WINDOWS}Windows,{$ENDIF} 8 8 SysUtils, DateUtils; 9 9 … … 13 13 TStopWatch = class 14 14 private 15 fFrequency: TLargeInteger;16 fIsRunning: Boolean;17 fIsHighResolution: Boolean;18 fStartCount, fStopCount: TLargeInteger;19 procedure SetTickStamp(var lInt : TLargeInteger);15 FFrequency: TLargeInteger; 16 FIsRunning: Boolean; 17 FIsHighResolution: Boolean; 18 FStartCount, fStopCount: TLargeInteger; 19 procedure SetTickStamp(var Value: TLargeInteger); 20 20 function GetElapsedTicks: TLargeInteger; 21 21 function GetElapsedMiliseconds: TLargeInteger; 22 22 function GetElapsed: string; 23 23 public 24 constructor Create(const startOnCreate: Boolean = False) ;24 constructor Create(const StartOnCreate: Boolean = False) ; 25 25 procedure Start; 26 26 procedure Stop; 27 property IsHighResolution : Boolean read fIsHighResolution;28 property ElapsedTicks 29 property ElapsedMiliseconds 30 property Elapsed 31 property IsRunning : Boolean read fIsRunning;27 property IsHighResolution: Boolean read FIsHighResolution; 28 property ElapsedTicks: TLargeInteger read GetElapsedTicks; 29 property ElapsedMiliseconds: TLargeInteger read GetElapsedMiliseconds; 30 property Elapsed: string read GetElapsed; 31 property IsRunning: Boolean read FIsRunning; 32 32 end; 33 33 34 34 35 implementation 35 36 36 constructor TStopWatch.Create(const startOnCreate : boolean = false);37 constructor TStopWatch.Create(const StartOnCreate: Boolean = False); 37 38 begin 38 inherited Create;39 FIsRunning := False; 39 40 40 fIsRunning := False; 41 42 {$IFDEF Windows} 41 {$IFDEF WINDOWS} 43 42 fIsHighResolution := QueryPerformanceFrequency(fFrequency) ; 44 43 {$ELSE} 45 fIsHighResolution := False;44 FIsHighResolution := False; 46 45 {$ENDIF} 47 if NOT fIsHighResolution then fFrequency := MSecsPerSec;46 if NOT FIsHighResolution then FFrequency := MSecsPerSec; 48 47 49 48 if StartOnCreate then Start; … … 52 51 function TStopWatch.GetElapsedTicks: TLargeInteger; 53 52 begin 54 Result := fStopCount - fStartCount;53 Result := FStopCount - FStartCount; 55 54 end; 56 55 57 procedure TStopWatch.SetTickStamp(var lInt : TLargeInteger);56 procedure TStopWatch.SetTickStamp(var Value: TLargeInteger); 58 57 begin 59 if fIsHighResolution then58 if FIsHighResolution then 60 59 {$IFDEF Windows} 61 QueryPerformanceCounter( lInt)60 QueryPerformanceCounter(Value) 62 61 {$ELSE} 63 62 {$ENDIF} 64 63 else 65 lInt := MilliSecondOf(Now);64 Value := MilliSecondOf(Now); 66 65 end; 67 66 68 67 function TStopWatch.GetElapsed: string; 69 68 var 70 dt: TDateTime;69 Elapsed: TDateTime; 71 70 begin 72 dt:= ElapsedMiliseconds / MSecsPerSec / SecsPerDay;73 result := Format('%d days, %s', [Trunc(dt), FormatDateTime('hh:nn:ss.z', Frac(dt))]) ;71 Elapsed := ElapsedMiliseconds / MSecsPerSec / SecsPerDay; 72 Result := Format('%d days, %s', [Trunc(Elapsed), FormatDateTime('hh:nn:ss.z', Frac(Elapsed))]) ; 74 73 end; 75 74 76 75 function TStopWatch.GetElapsedMiliseconds: TLargeInteger; 77 76 begin 78 Result := (MSecsPerSec * (fStopCount - fStartCount)) div fFrequency;77 Result := (MSecsPerSec * (fStopCount - FStartCount)) div FFrequency; 79 78 end; 80 79 81 80 procedure TStopWatch.Start; 82 81 begin 83 SetTickStamp( fStartCount);84 fIsRunning := True;82 SetTickStamp(FStartCount); 83 FIsRunning := True; 85 84 end; 86 85 87 86 procedure TStopWatch.Stop; 88 87 begin 89 SetTickStamp( fStopCount);90 fIsRunning := False;88 SetTickStamp(FStopCount); 89 FIsRunning := False; 91 90 end; 92 91 -
trunk/Packages/Common/StringTable.pas
r314 r315 1 unit UStringTable; 2 3 {$mode objfpc}{$H+} 1 unit StringTable; 4 2 5 3 interface … … 71 69 end; 72 70 73 74 71 end. 75 -
trunk/Packages/Common/SyncCounter.pas
r314 r315 1 unit USyncCounter; 2 3 {$mode delphi} 1 unit SyncCounter; 4 2 5 3 interface … … 25 23 procedure Assign(Source: TSyncCounter); 26 24 end; 25 27 26 28 27 implementation … … 69 68 begin 70 69 Lock.Free; 71 inherited Destroy;70 inherited; 72 71 end; 73 72 … … 79 78 80 79 end. 81 -
trunk/Packages/Common/Theme.pas
r314 r315 1 unit UTheme;1 unit Theme; 2 2 3 3 interface … … 5 5 uses 6 6 Classes, SysUtils, Graphics, ComCtrls, Controls, ExtCtrls, Menus, StdCtrls, 7 Spin, Forms, fgl, Grids;7 Spin, Forms, Generics.Collections, Grids; 8 8 9 9 type … … 19 19 { TThemes } 20 20 21 TThemes = class(T FPGObjectList<TTheme>)21 TThemes = class(TObjectList<TTheme>) 22 22 function AddNew(Name: string): TTheme; 23 23 function FindByName(Name: string): TTheme; … … 42 42 end; 43 43 44 const 45 ThemeNameSystem = 'System'; 46 ThemeNameLight = 'Light'; 47 ThemeNameDark = 'Dark'; 48 44 49 procedure Register; 50 45 51 46 52 implementation … … 105 111 inherited; 106 112 Themes := TThemes.Create; 107 with Themes.AddNew( 'System') do begin113 with Themes.AddNew(ThemeNameSystem) do begin 108 114 ColorWindow := clWindow; 109 115 ColorWindowText := clWindowText; … … 113 119 end; 114 120 Theme := TTheme(Themes.First); 115 with Themes.AddNew( 'Dark') do begin121 with Themes.AddNew(ThemeNameDark) do begin 116 122 ColorWindow := RGBToColor($20, $20, $20); 117 123 ColorWindowText := clWhite; … … 120 126 ColorControlSelected := RGBToColor(96, 125, 155); 121 127 end; 122 with Themes.AddNew( 'Light') do begin128 with Themes.AddNew(ThemeNameLight) do begin 123 129 ColorWindow := clWhite; 124 130 ColorWindowText := clBlack; … … 175 181 procedure TThemeManager.UseTheme(Form: TForm); 176 182 begin 177 if not Used and (FTheme.Name = 'System') then Exit;183 if not Used and (FTheme.Name = ThemeNameSystem) then Exit; 178 184 ApplyTheme(Form); 179 185 Used := True; 180 186 end; 181 187 182 183 188 end. -
trunk/Packages/Common/Threading.pas
r314 r315 1 unit UThreading; 2 3 {$mode delphi} 1 unit Threading; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, Forms, fgl, SyncObjs;6 Classes, SysUtils, Forms, Generics.Collections, SyncObjs; 9 7 10 8 type 11 9 TExceptionEvent = procedure (Sender: TObject; E: Exception) of object; 12 10 TMethodCall = procedure of object; 13 14 11 15 12 { TVirtualThread } … … 102 99 { TThreadList } 103 100 104 TThreadList = class(T FPGObjectList<TVirtualThread>)101 TThreadList = class(TObjectList<TVirtualThread>) 105 102 function FindById(Id: TThreadID): TVirtualThread; 106 103 constructor Create; virtual; … … 191 188 constructor TThreadList.Create; 192 189 begin 193 inherited Create;190 inherited; 194 191 end; 195 192 … … 295 292 end; 296 293 FThread.Free; 297 inherited Destroy;294 inherited; 298 295 end; 299 296 … … 361 358 ThreadListLock := TCriticalSection.Create; 362 359 ThreadList := TThreadList.Create; 363 ThreadList. FreeObjects := False;360 ThreadList.OwnsObjects := False; 364 361 365 362 finalization … … 369 366 370 367 end. 371 -
trunk/Packages/Common/Translator.pas
r314 r315 1 unit UTranslator; 2 3 {$mode delphi}{$H+} 1 unit Translator; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, Forms, ExtCtrls, Controls, fgl,LazFileUtils, LazUTF8,9 Translations, TypInfo, Dialogs, FileUtil, LCLProc, ULanguages, LCLType,10 LCLVersion ;6 Classes, SysUtils, Forms, ExtCtrls, Controls, LazFileUtils, LazUTF8, 7 Translations, TypInfo, Dialogs, FileUtil, LCLProc, Languages, LCLType, 8 LCLVersion, Generics.Collections; 11 9 12 10 type 13 11 THandleStringEvent = function (AValue: string): string of object; 14 12 15 TPoFiles = class(T FPGObjectList<TPOFile>)13 TPoFiles = class(TObjectList<TPOFile>) 16 14 end; 17 15 … … 27 25 { TComponentExcludesList } 28 26 29 TComponentExcludesList = class(T FPGObjectList<TComponentExcludes>)27 TComponentExcludesList = class(TObjectList<TComponentExcludes>) 30 28 function FindByClassType(AClassType: TClass): TComponentExcludes; 31 29 procedure DumpToStrings(Strings: TStrings); … … 50 48 procedure TranslateProperty(Component: TPersistent; PropInfo: PPropInfo); 51 49 function IsExcluded(Component: TPersistent; PropertyName: string): Boolean; 52 function GetLangFileDir : string;50 function GetLangFileDirs: TStrings; 53 51 public 54 52 ComponentExcludes: TComponentExcludesList; … … 73 71 end; 74 72 73 const 74 PoExt = '.po'; 75 75 76 procedure Register; 76 77 77 78 78 79 implementation 80 81 uses 82 Common; 79 83 80 84 procedure Register; … … 163 167 FileList: TStringList; 164 168 I: Integer; 169 J: Integer; 165 170 LocaleShort: string; 166 171 SearchMask: string; 172 LangDirs: TStrings; 167 173 begin 168 174 FPoFiles.Clear; 169 if Assigned(FLanguage) then 170 try 175 if Assigned(FLanguage) then begin 171 176 LocaleShort := GetLocaleShort; 172 //ShowMessage(ExtractFileDir(Application.ExeName) +173 // DirectorySeparator + 'Languages' + ' ' + '*.' + LocaleShort + '.po');174 177 SearchMask := '*'; 175 178 if LocaleShort <> '' then SearchMask := SearchMask + '.' + LocaleShort; 176 SearchMask := SearchMask + '.po'; 177 FileList := FindAllFiles(GetLangFileDir, SearchMask); 178 for I := 0 to FileList.Count - 1 do begin 179 FileName := FileList[I]; 180 //FileName := FindLocaleFileName('.po'); 181 if FileExists(FileName) and ( 182 ((LocaleShort = '') and (Pos('.', FileName) = Pos('.po', FileName))) or 183 (LocaleShort <> '')) then FPoFiles.Add(TPOFile.Create(FileName)); 184 end; 185 finally 186 FileList.Free; 179 SearchMask := SearchMask + PoExt; 180 LangDirs := GetLangFileDirs; 181 for J := 0 to LangDirs.Count - 1 do begin 182 FileList := FindAllFiles(LangDirs[J], SearchMask); 183 try 184 for I := 0 to FileList.Count - 1 do begin 185 FileName := FileList[I]; 186 //FileName := FindLocaleFileName('.po'); 187 if FileExists(FileName) and ( 188 ((LocaleShort = '') and (Pos('.', FileName) = Pos(PoExt, FileName))) or 189 (LocaleShort <> '')) then FPoFiles.Add(TPOFile.Create(FileName)); 190 end; 191 finally 192 FileList.Free; 193 end; 194 end; 195 LangDirs.Free; 187 196 end; 188 197 end; … … 290 299 Item := Component.ClassType; 291 300 while Assigned(Item) do begin 292 //ShowMessage(Component.Name + ', ' + Component.ClassName + ', ' + Item.ClassName + ', ' + PropertyName);293 301 Excludes := ComponentExcludes.FindByClassType(Item.ClassType); 294 302 if Assigned(Excludes) then begin … … 302 310 end; 303 311 304 function TTranslator.GetLangFileDir: string; 305 begin 306 Result := FPoFilesFolder; 307 if Copy(Result, 1, 1) <> DirectorySeparator then 308 Result := ExtractFileDir(Application.ExeName) + 309 DirectorySeparator + Result; 312 function TTranslator.GetLangFileDirs: TStrings; 313 var 314 I: Integer; 315 begin 316 Result := TStringList.Create; 317 Result.Delimiter := ';'; 318 Result.StrictDelimiter := True; 319 Result.DelimitedText := FPoFilesFolder; 320 321 for I := 0 to Result.Count - 1 do begin 322 Result[I] := StringReplace(Result[I], '/', DirectorySeparator, [rfReplaceAll]); 323 Result[I] := StringReplace(Result[I], '\', DirectorySeparator, [rfReplaceAll]); 324 if Copy(Result[I], 1, 1) <> DirectorySeparator then 325 Result[I] := ExtractFileDir(Application.ExeName) + 326 DirectorySeparator + Result[I]; 327 end; 310 328 end; 311 329 … … 374 392 var 375 393 I: Integer; 376 LangDir: string; 377 begin 378 LangDir := GetLangFileDir; 394 J: Integer; 395 LangDirs: TStrings; 396 begin 397 LangDirs := GetLangFileDirs; 379 398 Languages.SearchByCode('').Available := True; // Automatic 380 399 381 400 for I := 1 to Languages.Count - 1 do 382 401 with Languages[I] do begin 383 Available := FileExists(LangDir + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 384 '.' + Code + ExtensionSeparator + 'po') or (Code = 'en'); 385 end; 402 for J := 0 to LangDirs.Count - 1 do begin 403 if FileExists(LangDirs[J] + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 404 '.' + Code + PoExt) or (Code = 'en') then begin 405 Available := True; 406 Continue; 407 end; 408 end; 409 end; 410 LangDirs.Free; 386 411 end; 387 412 … … 572 597 end; 573 598 574 575 599 end. 576 -
trunk/Packages/Common/URI.pas
r314 r315 1 unit U URI;1 unit URI; 2 2 3 3 // Date: 2011-04-04 4 5 {$mode delphi}6 4 7 5 interface … … 85 83 end; 86 84 85 87 86 implementation 88 87 … … 183 182 begin 184 183 Items.Free; 185 inherited Destroy;184 inherited; 186 185 end; 187 186 … … 232 231 begin 233 232 Path.Free; 234 inherited Destroy;233 inherited; 235 234 end; 236 235 … … 243 242 Fragment := TURI(Source).Fragment; 244 243 Query := TURI(Source).Query; 245 end else inherited Assign(Source);244 end else inherited; 246 245 end; 247 246 … … 291 290 destructor TURL.Destroy; 292 291 begin 293 inherited Destroy;292 inherited; 294 293 end; 295 294 … … 344 343 begin 345 344 Directory.Free; 346 inherited Destroy; 347 end; 348 345 inherited; 346 end; 349 347 350 348 end. 351 -
trunk/Packages/Common/XML.pas
r314 r315 1 unit UXMLUtils; 2 3 {$mode delphi} 1 unit XML; 4 2 5 3 interface … … 16 14 procedure WriteString(Node: TDOMNode; Name: string; Value: string); 17 15 procedure WriteDateTime(Node: TDOMNode; Name: string; Value: TDateTime); 16 procedure WriteDouble(Node: TDOMNode; Name: string; Value: Double); 18 17 function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer; 19 18 function ReadInt64(Node: TDOMNode; Name: string; DefaultValue: Int64): Int64; … … 21 20 function ReadString(Node: TDOMNode; Name: string; DefaultValue: string): string; 22 21 function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime): TDateTime; 22 function ReadDouble(Node: TDOMNode; Name: string; DefaultValue: Double): Double; 23 23 procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string); 24 24 25 25 26 26 implementation 27 28 function ReadDouble(Node: TDOMNode; Name: string; DefaultValue: Double): Double; 29 var 30 NewNode: TDOMNode; 31 begin 32 Result := DefaultValue; 33 NewNode := Node.FindNode(DOMString(Name)); 34 if Assigned(NewNode) then 35 Result := StrToFloat(string(NewNode.TextContent)); 36 end; 27 37 28 38 procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string); … … 202 212 end; 203 213 214 procedure WriteDouble(Node: TDOMNode; Name: string; Value: Double); 215 var 216 NewNode: TDOMNode; 217 begin 218 NewNode := Node.OwnerDocument.CreateElement(DOMString(Name)); 219 NewNode.TextContent := DOMString(FloatToStr(Value)); 220 Node.AppendChild(NewNode); 221 end; 222 204 223 function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer; 205 224 var … … 254 273 255 274 end. 256 -
trunk/Packages/CoolStreaming/UBitStream.pas
r185 r315 8 8 9 9 uses 10 Classes, SysUtils, RtlConsts, Math, UMemory;10 Classes, SysUtils, RtlConsts, Math, Memory; 11 11 12 12 type -
trunk/Packages/PinConnection/UCommThread.pas
r203 r315 6 6 7 7 uses 8 Classes, SysUtils, UCommPin, SyncObjs, UCommon,9 DateUtils, UThreading, SpecializedList, UBinarySerializer;8 Classes, SysUtils, UCommPin, SyncObjs, Common, 9 DateUtils, Threading, SpecializedList, UBinarySerializer; 10 10 11 11 type -
trunk/UCore.lfm
r313 r315 1858 1858 Top = 324 1859 1859 end 1860 object AboutDialog1: TAboutDialog1861 ThemeManager = ThemeManager11862 ApplicationInfo = ApplicationInfo1863 Left = 4041864 Top = 1841865 end1866 1860 end -
trunk/UCore.pas
r313 r315 7 7 uses 8 8 Classes, SysUtils, XMLConf, FileUtil, ActnList, Controls, Dialogs, Forms, 9 UGame, UApplicationInfo, UPersistentForm, UScaleDPI, UTranslator, DOM,10 URegistry, ULastOpenedList, UTheme, UAboutDialog, Registry, Menus,9 UGame, ApplicationInfo, PersistentForm, ScaleDPI, Translator, DOM, 10 RegistryEx, LastOpenedList, Theme, Registry, Menus, 11 11 UFormClient, UPlayer, UGameServer, UGameClient, fgl, UServerList, UGameSystem, 12 12 Graphics, UUnit; … … 18 18 TCore = class(TDataModule) 19 19 AAbout: TAction; 20 AboutDialog1: TAboutDialog;21 20 AFullscreen: TAction; 22 21 AToggleFogOfWar: TAction; … … 131 130 132 131 uses 133 UFormMain, UFormNew, UFormSettings, UClientAI, UFormKeyShortcuts, UCommon,134 UFormHelp, UFormCharts, UFormUnitMoves, UFormPlayersStats, UClientGUI ;132 UFormMain, UFormNew, UFormSettings, UClientAI, UFormKeyShortcuts, Common, 133 UFormHelp, UFormCharts, UFormUnitMoves, UFormPlayersStats, UClientGUI, FormAbout; 135 134 136 135 const … … 308 307 309 308 procedure TCore.AAboutExecute(Sender: TObject); 310 begin 311 AboutDialog1.Show; 309 var 310 FormAbout: TFormAbout; 311 begin 312 FormAbout := TFormAbout.Create(nil); 313 try 314 FormAbout.ApplicationInfo := ApplicationInfo; 315 FormAbout.ShowModal; 316 finally 317 FormAbout.Free; 318 end; 312 319 end; 313 320 … … 471 478 CoolTranslator1.POFilesFolder := LinuxLanguagesDir; 472 479 {$ENDIF} 473 480 474 481 GameSystems := TGameSystems.Create; 475 482 Server := TServer.Create; -
trunk/UGame.pas
r310 r315 7 7 uses 8 8 Classes, SysUtils, ExtCtrls, Graphics, XMLConf, XMLRead, XMLWrite, Forms, 9 DOM, Math, LazFileUtils, UXMLUtils, Dialogs, LCLType, LCLIntf, fgl, UBuilding,9 DOM, Math, LazFileUtils, XML, Dialogs, LCLType, LCLIntf, fgl, UBuilding, 10 10 UGeometry, UPlayer, UMap, UMapType, UUnit, UGameSystem; 11 11 -
trunk/UGameClient.pas
r233 r315 7 7 uses 8 8 Classes, SysUtils, UGame, Forms, fgl, UGameProtocol, UGameServer, UCommThread, 9 UThreading, UCommFrame, UPlayer;9 Threading, UCommFrame, UPlayer; 10 10 11 11 type -
trunk/UGameSystem.pas
r292 r315 6 6 7 7 uses 8 Classes, SysUtils, fgl, UUnit, DOM, XMLRead, XMLWrite, UXMLUtils, XMLConf,8 Classes, SysUtils, fgl, UUnit, DOM, XMLRead, XMLWrite, XML, XMLConf, 9 9 FileUtil, LazFileUtils, UMapType, UNation, UBuilding; 10 10 -
trunk/UItemList.pas
r300 r315 6 6 7 7 uses 8 Classes, SysUtils, fgl, DOM, UXMLUtils, UCommon, Graphics;8 Classes, SysUtils, fgl, DOM, XML, Common, Graphics; 9 9 10 10 type -
trunk/UMap.pas
r307 r315 7 7 uses 8 8 Classes, SysUtils, Graphics, ExtCtrls, UGeometry, DOM, fgl, UBuilding, 9 UXMLUtils, UUnit;9 XML, UUnit; 10 10 11 11 const -
trunk/UNation.pas
r296 r315 35 35 36 36 uses 37 UCommon;37 Common; 38 38 39 39 { TNation } -
trunk/UPlayer.pas
r307 r315 6 6 7 7 uses 8 Classes, SysUtils, Graphics, UMap, DOM, fgl, XMLConf, UXMLUtils, Math,8 Classes, SysUtils, Graphics, UMap, DOM, fgl, XMLConf, XML, Math, 9 9 UGeometry, UUnit, UNation, UItemList; 10 10 -
trunk/UUnit.pas
r296 r315 6 6 7 7 uses 8 Classes, SysUtils, fgl, UGeometry, DOM, UXMLUtils, UItemList;8 Classes, SysUtils, fgl, UGeometry, DOM, XML, UItemList; 9 9 10 10 type -
trunk/xtactics.lpi
r313 r315 353 353 <Linking> 354 354 <Debugging> 355 <DebugInfoType Value="dsDwarf2Set"/> 355 356 <UseHeaptrc Value="True"/> 356 357 <UseExternalDbgSyms Value="True"/>
Note:
See TracChangeset
for help on using the changeset viewer.