void ExpiredViewShowAll(NSObject sender) { float fontSize = 13.0f; if (!isExpiredExpand) { var oldSize = ExpiredView.Frame.Size; var newSize = new CGSize(oldSize.Width, expiredViewMaxHeight); ExpiredView.SetFrameSize(newSize); var subViews = ExpiredView.Subviews; var button = (NSButton)subViews [subViews.Length - 1]; //对照xib 确定id NSAttributedString title = Utility.AttributeTitle("...less", Utility.ColorWithRGB(44, 117, 252, 1.0f), fontSize); button.Cell.AttributedTitle = title; isExpiredExpand = true; } else { var oldSize = ExpiredView.Frame.Size; var newSize = new CGSize(oldSize.Width, expiredViewMinHeight); ExpiredView.SetFrameSize(newSize); var subViews = ExpiredView.Subviews; var button = (NSButton)subViews [subViews.Length - 1]; NSAttributedString title = Utility.AttributeTitle("...more", Utility.ColorWithRGB(44, 117, 252, 1.0f), fontSize); button.Cell.AttributedTitle = title; isExpiredExpand = false; } LayoutSubViews(); }
void InitalizeExpiredView() { ContactEmailLabel.AttributedTitle = Utility.AttributeTitle("*****@*****.**", NSColor.Blue, 14); ContactEmailLabel.AttributedAlternateTitle = Utility.AttributeTitle("*****@*****.**", Utility.ColorWithRGB(77, 151, 250), 14); if (BookInfo == null) { return; } if (BookInfo.DaysRemaining >= 0) { ExpiredView.Hidden = true; } else { ExpiredView.Hidden = false; } float fontSize = 13.0f; string description = "We would like to thank you for choosing LexisNexis to support the great work you do on a daily basis, " + "and we hope to continue being your legal content provider of choice.\n" + "To re-subscribe to this content and continue receiving updates please contact your Relationship Manager, " + "or Customer service on 1800 772 772 or [email protected]. \n" + "you can tell your command."; ExpiredInfoTF.AttributedStringValue = Utility.AttributeLinkTitle(description, "*****@*****.**", Utility.ColorWithHexColorValue("#666666", 0.85f), fontSize); //ExpiredInfoTF.StringValue = description; nfloat orgHeight = ExpiredInfoTF.Frame.Size.Height; nfloat height = HeightWrappedToWidth(ExpiredInfoTF, fontSize); nfloat offset = height - orgHeight; var oldSize = ExpiredView.Frame.Size; expiredViewMinHeight = oldSize.Height; expiredViewMaxHeight = oldSize.Height + offset; if (height > TEXTVIEW_SIXLINE_HEIGHT) { NSButton moreButton = CreateMoreButton(); ExpiredView.WantsLayer = true; moreButton.Action = new Selector("ExpiredViewShowAll:"); moreButton.Target = this; ExpiredView.AddSubview(moreButton); isExpiredExpand = false; } else { var newSize = new CGSize(oldSize.Width, expiredViewMinHeight + offset); ExpiredView.SetFrameSize(newSize); } }
void ReleaseDesignerOutlets() { if (AContentView != null) { AContentView.Dispose(); AContentView = null; } if (AreaLabel != null) { AreaLabel.Dispose(); AreaLabel = null; } if (AuthorLabel != null) { AuthorLabel.Dispose(); AuthorLabel = null; } if (BookSize != null) { BookSize.Dispose(); BookSize = null; } if (BookSizeLabel != null) { BookSizeLabel.Dispose(); BookSizeLabel = null; } if (BookTitleLabel != null) { BookTitleLabel.Dispose(); BookTitleLabel = null; } if (CaseLabel != null) { CaseLabel.Dispose(); CaseLabel = null; } if (CasesButton != null) { CasesButton.Dispose(); CasesButton = null; } if (CaseTextField != null) { CaseTextField.Dispose(); CaseTextField = null; } if (CaseView != null) { CaseView.Dispose(); CaseView = null; } if (ContactEmailLabel != null) { ContactEmailLabel.Dispose(); ContactEmailLabel = null; } if (ContactPhoneLabel != null) { ContactPhoneLabel.Dispose(); ContactPhoneLabel = null; } if (CoverImageView != null) { CoverImageView.Dispose(); CoverImageView = null; } if (CurrencyDate != null) { CurrencyDate.Dispose(); CurrencyDate = null; } if (CurrencyDateLabel != null) { CurrencyDateLabel.Dispose(); CurrencyDateLabel = null; } if (CurrentDayLabel != null) { CurrentDayLabel.Dispose(); CurrentDayLabel = null; } if (DescriptionLabel != null) { DescriptionLabel.Dispose(); DescriptionLabel = null; } if (DescriptionView != null) { DescriptionView.Dispose(); DescriptionView = null; } if (DespTextField != null) { DespTextField.Dispose(); DespTextField = null; } if (ExpiredInfoTF != null) { ExpiredInfoTF.Dispose(); ExpiredInfoTF = null; } if (ExpiredLabel != null) { ExpiredLabel.Dispose(); ExpiredLabel = null; } if (ExpiredView != null) { ExpiredView.Dispose(); ExpiredView = null; } if (InfoLabel != null) { InfoLabel.Dispose(); InfoLabel = null; } if (InformationView != null) { InformationView.Dispose(); InformationView = null; } if (InstalledDate != null) { InstalledDate.Dispose(); InstalledDate = null; } if (InstalledLabel != null) { InstalledLabel.Dispose(); InstalledLabel = null; } if (LoanButton != null) { LoanButton.Dispose(); LoanButton = null; } if (PracticeArea != null) { PracticeArea.Dispose(); PracticeArea = null; } if (ProgressBar != null) { ProgressBar.Dispose(); ProgressBar = null; } if (ProgressStatusLabel != null) { ProgressStatusLabel.Dispose(); ProgressStatusLabel = null; } if (ProgressView != null) { ProgressView.Dispose(); ProgressView = null; } if (ScrollView != null) { ScrollView.Dispose(); ScrollView = null; } if (Subcategory != null) { Subcategory.Dispose(); Subcategory = null; } if (SubcategoryLabel != null) { SubcategoryLabel.Dispose(); SubcategoryLabel = null; } if (TagsView != null) { TagsView.Dispose(); TagsView = null; } if (TitleView != null) { TitleView.Dispose(); TitleView = null; } if (UpdateButton != null) { UpdateButton.Dispose(); UpdateButton = null; } if (UpdateInfoLabel != null) { UpdateInfoLabel.Dispose(); UpdateInfoLabel = null; } if (Version != null) { Version.Dispose(); Version = null; } if (VersionLabel != null) { VersionLabel.Dispose(); VersionLabel = null; } if (WhatNewInfoLabel != null) { WhatNewInfoLabel.Dispose(); WhatNewInfoLabel = null; } if (WhatNewInfoView != null) { WhatNewInfoView.Dispose(); WhatNewInfoView = null; } if (WhatNewLabel != null) { WhatNewLabel.Dispose(); WhatNewLabel = null; } if (WhatNewView != null) { WhatNewView.Dispose(); WhatNewView = null; } if (DotButton != null) { DotButton.Dispose(); DotButton = null; } }
void LayoutSubViews() { if (BookInfo == null) { return; } //calculate the subview size CGSize infoViewSize = InformationView.Frame.Size; CGSize whatsNewViewSize = WhatNewView.Frame.Size; CGSize casesViewSize; if (CaseView.Hidden) { casesViewSize = new CGSize(0, 0); } else { casesViewSize = CaseView.Frame.Size; } CGSize despViewSize = DescriptionView.Frame.Size; CGSize expiredViewSize; if (BookInfo.DaysRemaining < 0) { expiredViewSize = ExpiredView.Frame.Size; } else { expiredViewSize = new CGSize(0, 0); } CGSize titleViewSize = TitleView.Frame.Size; //set scrollview contentview size nfloat caseSpace = casesViewSize.Height == 0 ? 0 : VERTICAL_SPACING; nfloat expirdSpace = expiredViewSize.Height == 0 ? 0 : VERTICAL_SPACING; nfloat height = VERTICAL_SPACING + infoViewSize.Height + VERTICAL_SPACING + whatsNewViewSize.Height + VERTICAL_SPACING + casesViewSize.Height + caseSpace + despViewSize.Height + VERTICAL_SPACING + expiredViewSize.Height + expirdSpace + titleViewSize.Height; CGRect scrollFrame = ScrollView.Frame; nfloat contentHeight = scrollFrame.Bottom > height ? scrollFrame.Bottom : height; var contentSize = new CGSize(AContentView.Frame.Size.Width, contentHeight); AContentView.SetFrameSize(contentSize); //add subview to document view var docView = (NSView)ScrollView.DocumentView; docView.SetFrameSize(contentSize); foreach (NSView view in docView.Subviews) { view.RemoveFromSuperview(); } docView.AddSubview(AContentView); AContentView.SetFrameOrigin(new CGPoint(0, 0)); //recalulate subviews origin point nfloat startOffset = scrollFrame.Bottom >= height ? (scrollFrame.Bottom - height + VERTICAL_SPACING) : VERTICAL_SPACING; nfloat yOffset; var InfoViewPoint = InformationView.Frame.Location; InfoViewPoint.Y = startOffset; InformationView.SetFrameOrigin(InfoViewPoint); var WhatsViewPoint = new CGPoint(InfoViewPoint.X, InfoViewPoint.Y + infoViewSize.Height + VERTICAL_SPACING); WhatNewView.SetFrameOrigin(WhatsViewPoint); var CaseViewPoint = new CGPoint(InfoViewPoint.X, WhatsViewPoint.Y + whatsNewViewSize.Height + VERTICAL_SPACING); CaseView.SetFrameOrigin(CaseViewPoint); if (casesViewSize.Height > 0) { yOffset = VERTICAL_SPACING; } else { yOffset = 0; } var DesViewPoint = new CGPoint(InfoViewPoint.X, CaseViewPoint.Y + casesViewSize.Height + yOffset); DescriptionView.SetFrameOrigin(DesViewPoint); var ExpireViewPoint = new CGPoint(InfoViewPoint.X, DesViewPoint.Y + despViewSize.Height + VERTICAL_SPACING); ExpiredView.SetFrameOrigin(ExpireViewPoint); if (expiredViewSize.Height > 0) { yOffset = VERTICAL_SPACING; } else { yOffset = 0; } var TitleViewPoint = new CGPoint(InfoViewPoint.X, ExpireViewPoint.Y + expiredViewSize.Height + yOffset); TitleView.SetFrameOrigin(TitleViewPoint); ScrollToTop(); }
//expire view void InitalizeExpiredView() { LoginUserDetails userDetail = GlobalAccess.Instance.CurrentUserInfo; string email = userDetail.Country.CustomerSupportEmail; string telephone = userDetail.Country.CustomerSupportTEL; string contactString = "Contact " + telephone + " or " + email; ContactPhoneLabel.AllowsEditingTextAttributes = true; ContactPhoneLabel.AttributedStringValue = Utility.AttributeLinkTitle(contactString, email, "Expired", "Support", Utility.ColorWithHexColorValue("#000000", 0.85f), 14); // ContactEmailLabel.AttributedTitle = Utility.AttributeTitle (email, // Utility.ColorWithHexColorValue ("#0080fc",0.85f), 14); // ContactEmailLabel.AttributedAlternateTitle = Utility.AttributeTitle (email, // Utility.ColorWithHexColorValue ("#0080fc",0.45f), 14); if (BookInfo == null) { return; } if (BookInfo.DaysRemaining >= 0) { ExpiredView.Hidden = true; } else { ExpiredView.Hidden = false; } DotButton.Cell.BezelStyle = NSBezelStyle.Circular; DotButton.Cell.Bordered = false; DotButton.WantsLayer = true; DotButton.Layer.BackgroundColor = Utility.ColorWithHexColorValue("#ed1c24", 0.85f).CGColor; DotButton.Layer.CornerRadius = 3.5f; float fontSize = 13.0f; string description = string.Format("Your subscription to this title has expired.\n" + "We want to thank you for choosing LexisNexis to support the great work you do on a daily basis, " + "and we hope to continue being your legal content provider of choice.\n" + "To re-subscribe to this content and continue receiving updates, " + "please contact your Relationship Manager, or " + "Customer Service on {0} or {1}\n" + "Should you choose not to resubscribe to this title, there are a few things we want to make sure you're aware of.\n" + " · This content will no longer receive updates from LexisNexis, \n" + " and will be out of date as of the next update.\n" + " · Annotations made after the expiry of this title will no longer \n" + " sync. And could be lost upon subscribing.\n" + " · If you delete this book from, or lose your device, LexisNexis \n" + " is unable to retrieve the content for you.\n" + "Should you choose to resubscribe to this content, full functionality will be restored, " + "and content automatically updated to the most recent version.\n" + "Please don't hesitate to contact your Relationship Manager should you have any questions or concerns regarding this, " + "or any of your other Red titles.", telephone, email); ExpiredInfoTF.AllowsEditingTextAttributes = true; ExpiredInfoTF.AttributedStringValue = Utility.AttributeLinkTitle(description, email, "Expired", "Support", Utility.ColorWithHexColorValue("#666666", 0.85f), fontSize); nfloat orgHeight = ExpiredInfoTF.Frame.Size.Height; nfloat height = HeightWrappedToWidth(ExpiredInfoTF, fontSize); nfloat offset = height - orgHeight; var oldSize = ExpiredView.Frame.Size; expiredViewMinHeight = oldSize.Height; expiredViewMaxHeight = oldSize.Height + offset; if (height > TEXTVIEW_SIXLINE_HEIGHT) { NSButton moreButton = CreateMoreButton(); ExpiredView.WantsLayer = true; moreButton.Action = new Selector("ExpiredViewShowAll:"); moreButton.Target = this; ExpiredView.AddSubview(moreButton); isExpiredExpand = false; } else { var newSize = new CGSize(oldSize.Width, expiredViewMinHeight + offset); ExpiredView.SetFrameSize(newSize); } }