* Removed obsolete NSObject.GetFlattenedProperties

* Fixed several properties

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2641 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
loesje_
2013-01-29 20:19:45 +00:00
parent 9c74031efa
commit c77c17799d

View File

@ -45,9 +45,17 @@ type
bvHighlighted,
bvAlpha,
bvText,
bvTextColor,
bvTextAlignment,
bvNormalTitle,
bvNormalTitleColor,
bvSuperview,
bvLines,
bvBackgroundColor,
bvFlags,
bvButtonType,
bvLineBreak,
bvPlaceHolder,
bvEnabled);
TXIBProperty = record
@ -60,14 +68,22 @@ type
const
XIBPropertiesStrings : array[TXIBProperties] of TXIBProperty = (
(APropertyName: 'IBUIOpaque' ; ADefaultValue: 'NO'),
(APropertyName: 'IBUIOpaque' ; ADefaultValue: 'YES'),
(APropertyName: 'IBUIHighlighted'; ADefaultValue: 'NO'),
(APropertyName: 'IBUIAlpha' ; ADefaultValue: '1'),
(APropertyName: 'IBUIText' ; ADefaultValue: 'Label'),
(APropertyName: 'IBUITextColor' ; ADefaultValue: ''),
(APropertyName: 'IBUITextAlignment' ; ADefaultValue: '0'),
(APropertyName: 'IBUINormalTitle' ; ADefaultValue: ''),
(APropertyName: 'IBUINormalTitleColor' ; ADefaultValue: ''),
(APropertyName: 'NSSuperview' ; ADefaultValue: ''),
(APropertyName: 'Lines' ; ADefaultValue: '1'),
(APropertyName: 'IBUINumberOfLines' ; ADefaultValue: '1'),
(APropertyName: 'IBUIBackgroundColor' ; ADefaultValue: ''),
(APropertyName: 'IBUIEnabled' ; ADefaultValue: 'NO'));
(APropertyName: 'NSvFlags' ; ADefaultValue: '0'),
(APropertyName: 'IBUIButtonType' ; ADefaultValue: '0'),
(APropertyName: 'IBUILineBreakMode' ; ADefaultValue: '4'),
(APropertyName: 'IBUIPlaceholder' ; ADefaultValue: ''),
(APropertyName: 'IBUIEnabled' ; ADefaultValue: 'YES'));
EventNames : array[1..1] of string = (
'onTouchDown');
@ -170,6 +186,8 @@ type
procedure SetXIBString(index: TXIBProperties; AValue: string);
function GetXIBInteger(index: TXIBProperties): integer; virtual;
procedure SetXIBInteger(index: TXIBProperties; AValue: integer);
function GetXIBInt64(index: TXIBProperties): int64; virtual;
procedure SetXIBInt64(index: TXIBProperties; AValue: int64);
function GetXIBColor(index: TXIBProperties): TColor; virtual;
procedure SetXIBColor(index: TXIBProperties; AValue: TColor);
function GetXIBEvent(index: integer): TCocoaEvent;
@ -227,12 +245,14 @@ type
private
FNSNextResponder: UIView;
FBackgroundColor: TColor;
FHidden: boolean;
function GetFlags(AIndex: Integer): boolean;
function GetNSSuperview: UIView;
function ObtainSuperview: UIView;
procedure SetFlags(AIndex: Integer; AValue: boolean);
procedure SetNSSuperView(AValue: UIView);
protected
procedure SetName(const NewName: TComponentName); override;
property Caption: string index bvText read GetXIBString write SetXIBString;
public
constructor Create(AOwner: TComponent); override;
procedure InitializeDefaults; override;
@ -240,12 +260,12 @@ type
class function GetIBClassName: string; override;
property NSSuperview: UIView read GetNSSuperview write SetNSSuperView;
property NSNextResponder: UIView read FNSNextResponder write FNSNextResponder;
property Flags: Int64 index bvFlags read GetXIBInt64 write SetXIBInt64;
published
property Caption: string index bvText read GetXIBString write SetXIBString;
property Opaque: boolean index bvOpaque read GetXIBBoolean write SetXIBBoolean;
property BackgroundColor: TColor index bvBackgroundColor read GetXIBColor write SetXIBColor;
property Alpha: double index bvAlpha read GetXIBFloat write SetXIBFloat;
property Hidden: boolean read FHidden write FHidden;
property Hidden: boolean index 31 read GetFlags write SetFlags;
end;
TUIViewClass = class of UIView;
@ -264,7 +284,6 @@ type
function GetFilesOwnerID: string;
procedure SetFilesOwnerOutletName(AValue: string);
protected
function GetFlattenedProperties: string;
function GetNSObject: NSObject; override;
procedure InternalInvalidateRect(ARect: TRect; Erase: boolean); override;
procedure DefineProperties(Filer: TFiler); override;
@ -354,10 +373,19 @@ type
{ UIButton }
TiOSFakeButtonType = (
Custom = 0,
RoundedRect = 1,
DetailDisclosure = 2,
InfoLight = 3,
InfoDark = 4,
ContactAdd = 5);
UIButton = class(UIView)
private
FNSNextKeyView: UIView;
FTextColor: TColor;
function GetButtonType: TiOSFakeButtonType;
procedure SetButtonType(AValue: TiOSFakeButtonType);
public
procedure InitializeDefaults; override;
constructor Create(AOwner: TComponent); override;
@ -365,7 +393,9 @@ type
property NSNextKeyView: UIView read FNSNextKeyView write FNSNextKeyView;
published
property TextColor: TColor read FTextColor write FTextColor;
property NormalTitle: string index bvNormalTitle read GetXIBString write SetXIBString;
property NotmalTitleColor: TColor index bvNormalTitleColor read GetXIBColor write SetXIBColor;
property ButtonType: TiOSFakeButtonType read GetButtonType write SetButtonType;
property onTouchDown: TCocoaEvent index 1 read GetXIBEvent write SetXIBEvent;
end;
@ -376,10 +406,11 @@ type
UILabel = class(UIView)
private
FFont: TiOSFakeFontDescription;
FLineBreaks: TLineBreaks;
FTextAlignment: TiOSFakeAlignment;
FTextColor: TColor;
function GetLineBreaks: TLineBreaks;
procedure SetFont(AValue: TiOSFakeFontDescription);
procedure SetLineBreaks(AValue: TLineBreaks);
function GetTextAlignment: TiOSFakeAlignment;
procedure SetTextAlignment(AValue: TiOSFakeAlignment);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@ -387,30 +418,28 @@ type
procedure paint(ACanvas: TCanvas); override;
published
property Lines: integer index bvLines read GetXIBInteger write SetXIBInteger;
property TextAlignment: TiOSFakeAlignment read FTextAlignment write FTextAlignment;
property TextColor: TColor read FTextColor write FTextColor;
property TextAlignment: TiOSFakeAlignment read GetTextAlignment write SetTextAlignment;
property TextColor: TColor index bvTextColor read GetXIBColor write SetXIBColor;
property Font: TiOSFakeFontDescription read FFont write SetFont;
property Enabled: boolean index bvEnabled read GetXIBBoolean write SetXIBBoolean;
property Highlighted: boolean index bvHighlighted read GetXIBBoolean write SetXIBBoolean;
property LineBreaks: TLineBreaks read FLineBreaks write FLineBreaks;
property LineBreaks: TLineBreaks read GetLineBreaks write SetLineBreaks;
property Caption;
end;
{ UITextField }
UITextField = class(UIView)
private
FPlaceholder: string;
FText: string;
FTextAlignment: TiOSFakeAlignment;
function GetTextAlignment: TiOSFakeAlignment;
procedure SetTextAlignment(AValue: TiOSFakeAlignment);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
class function GetIBClassName: string; override;
//procedure paint(ACanvas: TCanvas); override;
published
property Text: string read FText write FText;
property Placeholder: string read FPlaceholder write FPlaceholder;
property Alignment: TiOSFakeAlignment read FTextAlignment write FTextAlignment;
property Placeholder: string index bvPlaceHolder read GetXIBString write SetXIBString;
property TextAlignment: TiOSFakeAlignment read GetTextAlignment write SetTextAlignment;
property caption;
end;
TiOSFakeSeparatorStyle = (ssNone,ssSingleLine,ssSingleLineEtched);
@ -1598,78 +1627,6 @@ begin
Result:=self;
end;
function NSObject.GetFlattenedProperties: string;
var
XMLDoc: TXMLDocument;
AStream: TStringStream;
FlattenedPropertiesElement: TDOMElement;
SortedKeysElements: TDOMElement;
ValuesElements: TDOMElement;
AnElement: TDOMElement;
i: integer;
begin
// assert(self is AppDelegate);
XMLDoc := TXMLDocument.Create;
try
FlattenedPropertiesElement := AddIBObject(XMLDoc,'flattenedProperties','NSMutableDictionary');
AddIBBoolean(FlattenedPropertiesElement,'EncodedWithXMLCoder',True);
SortedKeysElements := AddIBObject(FlattenedPropertiesElement,'dict.sortedKeys','NSArray');
AddIBBoolean(SortedKeysElements,'EncodedWithXMLCoder',True);
// Add props for File's Owner
AddIBString(SortedKeysElements,'','-1.CustomClassName');
AddIBString(SortedKeysElements,'','-1.IBPluginDependency');
// Add props for First Responder
AddIBString(SortedKeysElements,'','-2.CustomClassName');
AddIBString(SortedKeysElements,'','-2.IBPluginDependency');
AddIBString(SortedKeysElements,'','10.IBPluginDependency');
AddIBString(SortedKeysElements,'','2.IBAttributePlaceholdersKey');
AddIBString(SortedKeysElements,'','2.IBPluginDependency');
if IsHiddenObject then
begin
AddIBString(SortedKeysElements,'','3.CustomClassName');
AddIBString(SortedKeysElements,'','3.IBPluginDependency');
end;
for i := 0 to ChildCount -1 do
AddIBString(SortedKeysElements,'',inttostr(Children[i].ObjectID)+'.IBPluginDependency');
ValuesElements := AddIBObject(FlattenedPropertiesElement,'dict.values','NSArray');
AddIBBoolean(ValuesElements,'EncodedWithXMLCoder',True);
// Add props for File's Owner
AddIBString(ValuesElements,'',FilesOwnerClass);
AddIBString(ValuesElements,'','com.apple.InterfaceBuilder.IBCocoaTouchPlugin');
// Add props for First Responder
AddIBString(ValuesElements,'','UIResponder');
AddIBString(ValuesElements,'','com.apple.InterfaceBuilder.IBCocoaTouchPlugin');
AddIBString(ValuesElements,'','com.apple.InterfaceBuilder.IBCocoaTouchPlugin');
AnElement := AddIBObject(ValuesElements,'','NSMutableDictionary');
AddIBBoolean(AnElement,'EncodedWithXMLCoder',True);
AddIBReference(AnElement,'dict.sortedKeys','0');
AddIBReference(AnElement,'dict.values','0');
AddIBString(ValuesElements,'','com.apple.InterfaceBuilder.IBCocoaTouchPlugin');
if IsHiddenObject then
begin
AddIBString(ValuesElements,'',self.ClassName);
AddIBString(ValuesElements,'','com.apple.InterfaceBuilder.IBCocoaTouchPlugin');
end;
for i := 0 to ChildCount -1 do
AddIBString(ValuesElements,'','com.apple.InterfaceBuilder.IBCocoaTouchPlugin');
AStream := TStringStream.Create('');
try
for i := 0 to XMLDoc.ChildNodes.Count-1 do
WriteXML(XMLDoc.ChildNodes.Item[i],AStream);
result := AStream.DataString;
finally
AStream.Free;
end;
finally
XMLDoc.Free;
end;
end;
procedure NSObject.InternalInvalidateRect(ARect: TRect; Erase: boolean);
begin
if (Parent=nil) and (Designer<>nil) then
@ -2278,6 +2235,16 @@ begin
SetXIBString(index, 'int', IntToStr(AValue));
end;
function tiOSFakeComponent.GetXIBInt64(index: TXIBProperties): int64;
begin
result := StrToInt64(GetXIBString(index,'int'));
end;
procedure tiOSFakeComponent.SetXIBInt64(index: TXIBProperties; AValue: int64);
begin
SetXIBString(index, 'int', IntToStr(AValue));
end;
function tiOSFakeComponent.GetXIBColor(index: TXIBProperties): TColor;
var
AnElement: TDOMElement;
@ -2955,6 +2922,17 @@ begin
end;
{ UITextField }
function UITextField.GetTextAlignment: TiOSFakeAlignment;
begin
result := TiOSFakeAlignment(GetXIBInteger(bvTextAlignment));
end;
procedure UITextField.SetTextAlignment(AValue: TiOSFakeAlignment);
begin
SetXIBInteger(bvTextAlignment,ord(AValue));
end;
{
procedure UITextField.WriteToDomElement(AnObjectDomElement: TDOMElement);
begin
@ -2970,11 +2948,6 @@ begin
FAcceptChildsAtDesignTime:=false;
end;
destructor UITextField.Destroy;
begin
inherited Destroy;
end;
class function UITextField.GetIBClassName: string;
begin
Result:='IBUITextField';
@ -2994,6 +2967,27 @@ begin
if FFont=AValue then Exit;
FFont.Assign(AValue);
end;
function UILabel.GetLineBreaks: TLineBreaks;
begin
result := TLineBreaks(GetXIBInteger(bvLineBreak));
end;
procedure UILabel.SetLineBreaks(AValue: TLineBreaks);
begin
SetXIBInteger(bvLineBreak,ord(AValue));
end;
function UILabel.GetTextAlignment: TiOSFakeAlignment;
begin
result := TiOSFakeAlignment(GetXIBInteger(bvTextAlignment));
end;
procedure UILabel.SetTextAlignment(AValue: TiOSFakeAlignment);
begin
SetXIBInteger(bvTextAlignment,ord(AValue));
end;
{
procedure UILabel.WriteToDomElement(AnObjectDomElement: TDOMElement);
var
@ -3102,6 +3096,11 @@ begin
result := nil;
end;
function UIView.GetFlags(AIndex: Integer): boolean;
begin
result := (Flags and (1 shl AIndex)) = (1 shl AIndex);
end;
function UIView.ObtainSuperview: UIView;
begin
if assigned(Parent) and (Parent is UIView) then
@ -3110,6 +3109,14 @@ begin
result := self;
end;
procedure UIView.SetFlags(AIndex: Integer; AValue: boolean);
begin
if AValue then
Flags := flags or (1 shl AIndex)
else
Flags := flags and (not (1 shl AIndex));
end;
procedure UIView.SetNSSuperView(AValue: UIView);
var
ANode: TDOMElement;
@ -3245,6 +3252,7 @@ end;
procedure UIView.InitializeDefaults;
begin
inherited InitializeDefaults;
SetBounds(10,10,72,37);
BackgroundColor:=clWhite;
Alpha:=1;
end;
@ -3280,16 +3288,23 @@ procedure UIButton.WriteToDomElement(AnObjectDomElement: TDOMElement);
begin
inherited WriteToDomElement(AnObjectDomElement);
AddIBReference(AnObjectDomElement,'NSNextKeyView',NSNextKeyView);
AddIBInt(AnObjectDomElement,'IBUIButtonType',1);
AddIBString(AnObjectDomElement,'IBUINormalTitle',Caption);
AddIBColor(AnObjectDomElement,'IBUINormalTitleColor',TextColor);
end;
}
function UIButton.GetButtonType: TiOSFakeButtonType;
begin
result := TiOSFakeButtonType(GetXIBInteger(bvButtonType));
end;
procedure UIButton.SetButtonType(AValue: TiOSFakeButtonType);
begin
SetXIBInteger(bvButtonType, Ord(AValue));
end;
procedure UIButton.InitializeDefaults;
begin
inherited InitializeDefaults;
SetBounds(10,10,72,37);
ButtonType:=RoundedRect;
end;
constructor UIButton.Create(AOwner: TComponent);