internal void Localise(GuiPresenter presenter, Control targetControl) { if (_LocalPath != null) { targetControl.Text = presenter.GetString(_LocalPath); } if (_Locals.Count != 0) { if (targetControl is TabControl) { foreach (LocalDef MyLocal in _Locals) { ((TabControl)targetControl).TabPages[MyLocal.Name].Text = presenter.GetString(MyLocal.LocalPath); } } else if (targetControl is ListView) { foreach (LocalDef MyLocal in _Locals) { ((ListView)targetControl).Columns[MyLocal.Index].Text = presenter.GetString(MyLocal.LocalPath); } } } if (targetControl is ToolStrip) { // TODO: Localise Toolstrip } }
//**************************************** private void OnAttach(object sender, EventArgs e) { _Presenter = (GuiPresenter)_TargetElement.TryFindResource("Proximity.Gui.Presentation.GuiPresenter"); // No Presenter yet, the attach event wasn't for us if (_Presenter == null) { return; } //**************************************** Value = _Presenter.GetString(_Path); ((WpfToolkit)GuiService.Toolkit).Attach -= OnAttach; }
//**************************************** internal void ApplyTo(GuiPresenter presenter, ContainerControl targetControl) { //**************************************** Control[] MyControls; Control MyControl; //**************************************** if (!_HasScanned) { _LocalPath = targetControl.Text; // First application, scan the view for localisation codes WalkControls(targetControl); _HasScanned = true; } //**************************************** if (_LocalPath != null) { targetControl.Text = presenter.GetString(_LocalPath); } foreach (ControlDef MyControlDef in _Controls) { MyControls = targetControl.Controls.Find(MyControlDef.Name, true); if (MyControls.Length == 0) { continue; } MyControl = MyControls[0]; MyControlDef.ApplyTo(presenter, MyControl); MyControlDef.Localise(presenter, MyControl); } }
private void OnCultureChanged(object sender, EventArgs e) { Value = _Presenter.GetString(_Path); }