private void UpdateUI() { if (__SessionLimitViewModel == null) { return; } if (!NSThread.IsMain) { InvokeOnMainThread(() => UpdateUI()); return; } CustomButtonStyles.ApplyStyleNavigationButton(GuiButtonBack, LocalizedStrings.Instance.LocalizedString("Button_Back")); if (__SessionLimitViewModel.IsCanUpgrade) { UIButtonUpgrade.Hidden = false; UIButtonLogOutAll.Frame = __InitialLogoutAllBtnFrame; CustomButtonStyles.ApplyStyleMainButton(UIButtonUpgrade, LocalizedStrings.Instance.LocalizedString("Button_SwitchToProPlan", "Switch to IVPN Pro plan")); CustomButtonStyles.ApplyStyleSecondaryButton(UIButtonLogOutAll, LocalizedStrings.Instance.LocalizedString("Button_LogOutOtherDevices", "Log out from all other devices")); } else { UIButtonLogOutAll.Frame = UIButtonUpgrade.Frame; UIButtonUpgrade.Hidden = true; CustomButtonStyles.ApplyStyleMainButton(UIButtonLogOutAll, LocalizedStrings.Instance.LocalizedString("Button_LogOutOtherDevices", "Log out from all other devices")); } UIButtonLogOutAll.Hidden = !__SessionLimitViewModel.IsCanLogOutAllSessions; }
public override void ViewDidLoad() { base.ViewDidLoad(); if (View != null && View.Frame.IsEmpty == false) { InitialHeight = View.Frame.Height; } CustomButtonStyles.ApplyStyleMainButton(GuiButtonLogIn, LocalizedStrings.Instance.LocalizedString("Button_LogIn")); CustomButtonStyles.ApplyStyleNavigationButtonV2(GuiButtonStartFreeTrial, LocalizedStrings.Instance.LocalizedString("Button_StartFreeTrial")); GuiTextViewUser.PlaceholderString = LocalizedStrings.Instance.LocalizedString("Placeholder_Username"); GuiTextViewUser.Cell.Title = __LogInViewModel.UserName ?? ""; GuiTextViewUser.LineBreakMode = NSLineBreakMode.TruncatingHead; // ACCOUNT ID DESCRIPTION ... // Initialize Account ID description text with link to a Client Area NSData descriptionData = NSData.FromString("Your account ID can be found in the <a style=\"text-decoration:none\" href=\"https://www.ivpn.net/clientarea/login\">Client Area</a> of the website"); NSDictionary resultDocumentAttributes; NSAttributedString nSAttributed = NSAttributedString.CreateWithHTML(descriptionData, out resultDocumentAttributes); NSStringAttributes descTextAttributes = new NSStringAttributes(); descTextAttributes.Font = GuiTextAccountIdDescription.Font; // keep using preconfigured TextField font descTextAttributes.ForegroundColor = GuiTextAccountIdDescription.TextColor; // keep using preconfigured TextField color descTextAttributes.ParagraphStyle = new NSMutableParagraphStyle { Alignment = NSTextAlignment.Center }; NSMutableAttributedString descriptionString = new NSMutableAttributedString(nSAttributed); descriptionString.AddAttributes(descTextAttributes, new NSRange(0, nSAttributed.Length)); GuiTextAccountIdDescription.AllowsEditingTextAttributes = true; // it is important GuiTextAccountIdDescription.Selectable = true; GuiTextAccountIdDescription.AttributedStringValue = descriptionString; // nSAttributed; // ... ACCOUNT ID DESCRIPTION GuiButtonLogIn.Hidden = false; View.OnApperianceChanged += () => { CustomButtonStyles.ApplyStyleNavigationButtonV2(GuiButtonStartFreeTrial, LocalizedStrings.Instance.LocalizedString("Button_StartFreeTrial")); }; }
private void UpdateIntroductionApperiance() { if (Colors.IsDarkMode) { GuiIntroLogoImage.Image = NSImage.ImageNamed("iconLogoDark"); } else { GuiIntroLogoImage.Image = NSImage.ImageNamed("iconLogo"); } CustomButtonStyles.ApplyStyleMainButton(GuiIntroBtnWelcomeShowMe, LocalizedStrings.Instance.LocalizedString("Button_Introduction_ShowMe")); GuiIntroductionPanelWelcome.BackgroundColor = Colors.IntroductionBackground; GuiIntroLabelWelcome.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroWelcome"); GuiIntroLabelWelcome.TextColor = Colors.IntroductionTextColor; CustomButtonStyles.ApplyStyleMainButton(GuiIntroBtnConnect, LocalizedStrings.Instance.LocalizedString("Button_Introduction_Continue")); GuiIntroductionPanelConnectBtn.BackgroundColor = Colors.IntroductionBackground; GuiIntroLabelConnectTitle.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroConnectTitle"); GuiIntroLabelConnectText.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroConnectText"); GuiIntroLabelConnectTitle.TextColor = Colors.IntroductionTextColor; GuiIntroLabelConnectText.TextColor = Colors.IntroductionTextColor; CustomButtonStyles.ApplyStyleMainButton(GuiIntroBtnFirewallContinue, LocalizedStrings.Instance.LocalizedString("Button_Introduction_Continue")); GuiIntroBtnFirewallContinue.TitleFont = UIUtils.GetSystemFontOfSize(16f, NSFontWeight.Medium); GuiIntroductionPanelFirewall.BackgroundColor = Colors.IntroductionBackground; GuiIntroLabelFirewallTitle.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroFirewallTitle"); GuiIntroLabelFirewallText.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroFirewallText"); GuiIntroLabelFirewallTitle.TextColor = Colors.IntroductionTextColor; GuiIntroLabelFirewallText.TextColor = Colors.IntroductionTextColor; CustomButtonStyles.ApplyStyleMainButton(GuiIntroBtnServersClose, LocalizedStrings.Instance.LocalizedString("Button_Introduction_Close")); GuiIntroductionPanelServers.BackgroundColor = Colors.IntroductionBackground; GuiIntroLabelServersTitle.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroServersTitle"); GuiIntroLabelServersText.StringValue = LocalizedStrings.Instance.LocalizedString("Label_IntroServersText"); GuiIntroLabelServersTitle.TextColor = Colors.IntroductionTextColor; GuiIntroLabelServersText.TextColor = Colors.IntroductionTextColor; }
public void SetViewModel(ViewModelLogIn viewModel) { __LogInViewModel = viewModel; __LogInViewModel.OnAccountCredentailsError += __LogInViewModel_OnAccountCredentailsError; __LogInViewModel.OnWillExecute += (sender) => { EnableView.Disable(View, ignoreControls: new List <NSControl> { GuiButtonLogIn }); CustomButtonStyles.ApplyStyleMainButton(GuiButtonLogIn, LocalizedStrings.Instance.LocalizedString("Button_Cancel")); GuiProgressIndicator.Hidden = false; GuiProgressIndicator.StartAnimation(this); }; __LogInViewModel.OnDidExecute += (sender) => { GuiButtonLogIn.Hidden = false; EnableView.Enable(View, ignoreControls: new List <NSControl> { GuiButtonLogIn }); CustomButtonStyles.ApplyStyleMainButton(GuiButtonLogIn, LocalizedStrings.Instance.LocalizedString("Button_LogIn")); GuiProgressIndicator.Hidden = true; GuiProgressIndicator.StopAnimation(this); }; __LogInViewModel.OnError += __LogInViewModel_OnError; __LogInViewModel.OnAccountSuspended += (AccountStatus session) => { ShowAccountExpireDialog(session); }; __LogInViewModel.PropertyChanged += (sender, e) => { __LogInViewModel_PropertyChanged(sender, e); }; }
public override void AwakeFromNib() { base.AwakeFromNib(); // Disable title-bar (but keep close/minimize/expand buttons on content-view) Window.TitleVisibility = NSWindowTitleVisibility.Hidden; Window.TitlebarAppearsTransparent = true; Window.StyleMask |= NSWindowStyle.FullSizeContentView; // set window background color //if (!Colors.IsDarkMode) // Window.BackgroundColor = NSColor.FromRgba (255, 255, 255, 0.95f); //Stylyze buttons CustomButtonStyles.ApplyStyleGreyButtonV2(GuiBtnCopy, LocalizedStrings.Instance.LocalizedString("Button_PrivateEmail_Copy")); CustomButtonStyles.ApplyStyleGreyButtonV2(GuiBtnDelete, LocalizedStrings.Instance.LocalizedString("Button_PrivateEmail_Discard")); CustomButtonStyles.ApplyStyleMainButton(GuiBtnOk, LocalizedStrings.Instance.LocalizedString("Button_OK")); // set padding for Notes control GuiNotesField.TextContainerInset = new CoreGraphics.CGSize(5, 5); __Model.GenerateNewEmail(); }