Browse Source

Fix some preexisting problems in isxclasses.pas + also add missing Seek Origin + TColor values.

Martijn Laan 1 year ago
parent
commit
7d141a5353

+ 18 - 1
ISHelp/ISHelpGen/UIsxclassesParser.pas

@@ -11,6 +11,7 @@ type
     FLines: TStringList;
     FTypes: TStringList;
     FEnumValues: TStringList;
+    FConstants: TStringList;
   public
     constructor Create;
     destructor Destroy; override;
@@ -31,10 +32,12 @@ begin
   FLines := TStringList.Create;
   FTypes := TStringList.Create;
   FEnumValues := TStringList.Create;
+  FConstants := TStringList.Create;
 end;
 
 destructor TIsxclassesParser.Destroy;
 begin
+  FConstants.Free;
   FEnumValues.Free;
   FTypes.Free;
   FLines.Free;
@@ -53,12 +56,24 @@ begin
       FLines.Add(S);
       var P := Pos('=', S);
       if P > 1 then begin
+        { Remember type and if it's an enum also remember the enum values }
         FTypes.Add(Trim(Copy(S, 1, P-1)));
         Delete(S, 1, P+1);
         var N := Length(S);
         if (N > 3) and (S[1] = '(') and (S[N-1] = ')') and (S[N] = ';') then
           FEnumValues.Add(Copy(S, 2, N-3));
       end;
+      P := Pos('{', S);
+      if P <> 0 then begin
+        { Remember constants }
+        P := Pos(': ', S);
+        if P <> 0 then begin
+          Delete(S, 1, P+1);
+          var N := Length(S);
+          if (N > 2) and (S[N-1] = ' ') and (S[N] = '}') then
+            FConstants.Add(Copy(S, 1, N-2));
+        end;
+      end;
     end;
   finally
     CloseFile(F);
@@ -111,7 +126,7 @@ procedure TIsxclassesParser.SaveXML(const HeaderFileName, HeaderFileName2, Foote
             Inc(Text);
           SetString(Result, P, Text - P);
         end;
-      '(', ')', ',', '=', ':', ';', '[', ']':
+      '(', ')', ',', '=', ':', ';', '[', ']', '{', '}':
         begin
           Result := Text^;
           Inc(Text);
@@ -234,6 +249,8 @@ begin
     WriteLn(F, 'interface');
     WriteLn(F);
     WriteLn(F, 'var');
+    WriteStringArray(F, 'PascalConstants_IsxClasses', Indent, FConstants, 0);
+    WriteLn(F);
     WriteStringArray(F, 'PascalTypes_IsxClasses', Indent, FTypes, 80);
     WriteLn(F);
     WriteStringArray(F, 'PascalEnumValues_IsxClasses', Indent, FEnumValues, 0);

+ 33 - 25
ISHelp/isxclasses.pas

@@ -44,6 +44,8 @@ end;
 
 TNotifyEvent = procedure(Sender: TObject);
 
+TDuplicates = (dupIgnore, dupAccept, dupError);
+
 TStringList = class(TStrings)
   function Find(S: String; var Index: Integer): Boolean;
   procedure Sort;
@@ -53,6 +55,8 @@ TStringList = class(TStrings)
   property OnChanging: TNotifyEvent; read write;
 end;
 
+{ Seek Origin values: soFromBeginning, soFromCurrent, soFromEnd }
+
 TStream = class(TObject)
   function Read(var Buffer: AnyString; ByteCount: Longint): Longint;
   function Write(const Buffer: AnyString; ByteCount: Longint): Longint;
@@ -81,14 +85,26 @@ TGraphicsObject = class(TPersistent)
   property OnChange: TNotifyEvent; read write;
 end;
 
+TBrushStyle = (bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross);
+
+TBrush = class(TGraphicsObject)
+  constructor Create;
+  property Color: TColor; read write;
+  property Style: TBrushStyle; read write;
+end;
+
 TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);
 
 TFontStyles = set of TFontStyle;
 
+TColor = Integer;
+
+{ TColor values: clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray, clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clLtGray, clDkGray, clWhite, clNone, clDefault, clScrollBar, clBackground, clActiveCaption, clInactiveCaption, clMenu, clWindow, clWindowFrame, clMenuText, clWindowText, clCaptionText, clActiveBorder, clInactiveBorder, clAppWorkSpace, clHighlight, clHighlightText, clBtnFace, clBtnShadow, clGrayText, clBtnText, clInactiveCaptionText, clBtnHighlight, cl3DDkShadow, cl3DLight, clInfoText, clInfoBk, clHotLight }
+
 TFont = class(TGraphicsObject)
   constructor Create;
   property Handle: Integer; read;
-  property Color: Integer; read write;
+  property Color: TColor; read write;
   property Height: Integer; read write;
   property Name: String; read write;
   property Pitch: Byte; read write;
@@ -97,6 +113,18 @@ TFont = class(TGraphicsObject)
   property Style: TFontStyles; read write;
 end;
 
+TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor);
+
+TPenStyle = (psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame);
+
+TPen = class(TGraphicsObject)
+  constructor Create;
+  property Color: TColor; read write;
+  property Mode: TPenMode; read write;
+  property Style: TPenStyle; read write;
+  property Width: Integer; read write;
+end;
+
 TCanvas = class(TPersistent)
   procedure Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
   procedure Chord(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer);
@@ -120,26 +148,6 @@ TCanvas = class(TPersistent)
   property Pen: TPen; read;
 end;
 
-TPenMode = (pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor);
-
-TPenStyle = (psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame);
-
-TPen = class(TGraphicsObject)
-  constructor Create;
-  property Color: TColor; read write;
-  property Mode: TPenMode; read write;
-  property Style: TPenStyle; read write;
-  property Width: Integer; read write;
-end;
-
-TBrushStyle = (bsSolid, bsClear, bsHorizontal, bsVertical, bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross);
-
-TBrush = class(TGraphicsObject)
-  constructor Create;
-  property Color: TColor; read write;
-  property Style: TBrushStyle; read write;
-end;
-
 TGraphic = class(TPersistent)
   procedure LoadFromFile(const Filename: String);
   procedure SaveToFile(const Filename: String);
@@ -152,6 +160,8 @@ end;
 
 TAlphaFormat = (afIgnored, afDefined, afPremultiplied);
 
+HBITMAP = Integer;
+
 TBitmap = class(TGraphic)
   procedure LoadFromStream(Stream: TStream);
   procedure SaveToStream(Stream: TStream);
@@ -210,10 +220,6 @@ end;
 TCustomControl = class(TWinControl)
 end;
 
-TScrollBarKind = (sbHorizontal, sbVertical);
-
-TScrollBarInc = SmallInt;
-
 TScrollingWinControl = class(TWinControl)
   procedure ScrollInView(AControl: TControl);
 end;
@@ -233,6 +239,8 @@ TSizeConstraints = class(TPersistent);
   property MinWidth: TConstraintSize; read write;
 end;
 
+TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop);
+
 TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);
 
 TCloseAction = (caNone, caHide, caFree, caMinimize);

+ 14 - 8
ISHelp/isxclasses_wordlists_generated.pas

@@ -5,14 +5,19 @@ unit isxclasses_wordlists_generated;
 interface
 
 var
+  PascalConstants_IsxClasses: array of AnsiString = [
+    'soFromBeginning', 'soFromCurrent', 'soFromEnd',
+    'clBlack', 'clMaroon', 'clGreen', 'clOlive', 'clNavy', 'clPurple', 'clTeal', 'clGray', 'clSilver', 'clRed', 'clLime', 'clYellow', 'clBlue', 'clFuchsia', 'clAqua', 'clLtGray', 'clDkGray', 'clWhite', 'clNone', 'clDefault', 'clScrollBar', 'clBackground', 'clActiveCaption', 'clInactiveCaption', 'clMenu', 'clWindow', 'clWindowFrame', 'clMenuText', 'clWindowText', 'clCaptionText', 'clActiveBorder', 'clInactiveBorder', 'clAppWorkSpace', 'clHighlight', 'clHighlightText', 'clBtnFace', 'clBtnShadow', 'clGrayText', 'clBtnText', 'clInactiveCaptionText', 'clBtnHighlight', 'cl3DDkShadow', 'cl3DLight', 'clInfoText', 'clInfoBk', 'clHotLight'
+  ];
+
   PascalTypes_IsxClasses: array of AnsiString = [
-    'TObject', 'TPersistent', 'TComponent', 'TStrings', 'TNotifyEvent', 'TStringList',
-    'TStream', 'THandleStream', 'TFileStream', 'TStringStream', 'TGraphicsObject', 'TFontStyle',
-    'TFontStyles', 'TFont', 'TCanvas', 'TPenMode', 'TPenStyle', 'TPen', 'TBrushStyle',
-    'TBrush', 'TGraphic', 'TAlphaFormat', 'TBitmap', 'TAlign', 'TAnchorKind', 'TAnchors',
-    'TControl', 'TWinControl', 'TGraphicControl', 'TCustomControl', 'TScrollBarKind', 'TScrollBarInc',
+    'TObject', 'TPersistent', 'TComponent', 'TStrings', 'TNotifyEvent', 'TDuplicates',
+    'TStringList', 'TStream', 'THandleStream', 'TFileStream', 'TStringStream', 'TGraphicsObject',
+    'TBrushStyle', 'TBrush', 'TFontStyle', 'TFontStyles', 'TColor', 'TFont', 'TPenMode',
+    'TPenStyle', 'TPen', 'TCanvas', 'TGraphic', 'TAlphaFormat', 'HBITMAP', 'TBitmap', 'TAlign',
+    'TAnchorKind', 'TAnchors', 'TControl', 'TWinControl', 'TGraphicControl', 'TCustomControl',
     'TScrollingWinControl', 'TFormBorderStyle', 'TBorderIcon', 'TBorderIcons', 'TConstraintSize',
-    'TSizeConstraints', 'TPosition', 'TCloseAction', 'TCloseEvent', 'TCloseQueryEvent',
+    'TSizeConstraints', 'TFormStyle', 'TPosition', 'TCloseAction', 'TCloseEvent', 'TCloseQueryEvent',
     'TEShiftState', 'TShiftState', 'TKeyEvent', 'TKeyPressEvent', 'TForm', 'TCustomLabel',
     'TAlignment', 'TLabel', 'TCustomEdit', 'TBorderStyle', 'TEditCharCase', 'TEdit', 'TNewEdit',
     'TCustomMemo', 'TScrollStyle', 'TMemo', 'TNewMemo', 'TCustomComboBox', 'TComboBoxStyle',
@@ -32,16 +37,17 @@ var
   ];
 
   PascalEnumValues_IsxClasses: array of AnsiString = [
+    'dupIgnore', 'dupAccept', 'dupError',
+    'bsSolid', 'bsClear', 'bsHorizontal', 'bsVertical', 'bsFDiagonal', 'bsBDiagonal', 'bsCross', 'bsDiagCross',
     'fsBold', 'fsItalic', 'fsUnderline', 'fsStrikeOut',
     'pmBlack', 'pmWhite', 'pmNop', 'pmNot', 'pmCopy', 'pmNotCopy', 'pmMergePenNot', 'pmMaskPenNot', 'pmMergeNotPen', 'pmMaskNotPen', 'pmMerge', 'pmNotMerge', 'pmMask', 'pmNotMask', 'pmXor', 'pmNotXor',
     'psSolid', 'psDash', 'psDot', 'psDashDot', 'psDashDotDot', 'psClear', 'psInsideFrame',
-    'bsSolid', 'bsClear', 'bsHorizontal', 'bsVertical', 'bsFDiagonal', 'bsBDiagonal', 'bsCross', 'bsDiagCross',
     'afIgnored', 'afDefined', 'afPremultiplied',
     'alNone', 'alTop', 'alBottom', 'alLeft', 'alRight', 'alClient',
     'akLeft', 'akTop', 'akRight', 'akBottom',
-    'sbHorizontal', 'sbVertical',
     'bsNone', 'bsSingle', 'bsSizeable', 'bsDialog', 'bsToolWindow', 'bsSizeToolWin',
     'biSystemMenu', 'biMinimize', 'biMaximize', 'biHelp',
+    'fsNormal', 'fsMDIChild', 'fsMDIForm', 'fsStayOnTop',
     'poDesigned', 'poDefault', 'poDefaultPosOnly', 'poDefaultSizeOnly', 'poScreenCenter', 'poDesktopCenter', 'poMainFormCenter', 'poOwnerFormCenter',
     'caNone', 'caHide', 'caFree', 'caMinimize',
     'ssShift', 'ssAlt', 'ssCtrl', 'ssLeft', 'ssRight', 'ssMiddle', 'ssDouble',

+ 4 - 1
Projects/Src/Compil32/ScintStylerInnoSetup.pas

@@ -418,7 +418,8 @@ const
     'VER_SUITE_SECURITY_APPLIANCE',
     //undocumented: irInstall
     { ScriptClasses_C }
-    'clHotLight', 'crHand'
+    'crHand'
+    { ScriptClasses_C others: see PascalConstants_IsxClasses in isxclasses_wordlists_generated }
   ];
 
   PascalInterfaces: array of AnsiString = [
@@ -606,6 +607,8 @@ constructor TInnoSetupStyler.Create(AOwner: TComponent);
       { Add stuff from this unit }
       for var S in PascalConstants do
         AddWordToList(SL, S, awtScriptConstant);
+      for var S in PascalConstants_IsxClasses do
+        AddWordToList(SL, S, awtScriptConstant);
       for var S in PascalInterfaces do
         AddWordToList(SL, S, awtScriptInterface);
       for var S in PascalReservedWords do

+ 1 - 2
Projects/Src/ISCmplr/ScriptClasses_C.pas

@@ -19,7 +19,7 @@ procedure ScriptClassesLibraryRegister_C(Cl: TPSPascalCompiler);
 implementation
 
 uses
-  SetupTypes,
+  Windows, SetupTypes,
   uPSC_std, uPSC_classes, uPSC_graphics, uPSC_controls, uPSC_stdctrls,
   uPSC_forms, uPSC_extctrls, uPSC_comobj;
 
@@ -574,7 +574,6 @@ end;
 procedure ScriptClassesLibraryRegister_C(Cl: TPSPascalCompiler);
 const
   clSystemColor = $FF000000;
-  COLOR_HOTLIGHT = 26;
 begin
   { Std }
   SIRegister_Std_TypesAndConsts(Cl);