public static void LogFileNotFound(string path) { if (Core.OnOutputLog != null) { Language language = Language.English; if (Core.Option != null && Core.Option.LanguageSelector != null) { language = Core.Language; } else { language = LanguageGetter.GetLanguage(); } if (language == Language.Japanese) { Core.OnOutputLog(LogLevel.Warning, path + " が見つかりません。"); } else { Core.OnOutputLog(LogLevel.Warning, path + " is not found."); } } }
public OptionValues() { RenderingMode = new Value.Enum <RenderMode>(RenderMode.Normal); GridColor = new Value.Color(255, 255, 255, 255); IsGridShown = new Value.Boolean(true); IsXYGridShown = new Value.Boolean(false); IsXZGridShown = new Value.Boolean(true); IsYZGridShown = new Value.Boolean(false); GridLength = new Value.Float(2, float.MaxValue, 0.1f); Magnification = new Value.Float(1, float.MaxValue, 0.00001f); ExternalMagnification = new Value.Float(1, float.MaxValue, 0.00001f); FPS = new Value.Enum <FPSType>(FPSType._60FPS); Coordinate = new Value.Enum <CoordinateType>(CoordinateType.Right); ColorSpace = new Value.Enum <ColorSpaceType>(ColorSpaceType.GammaSpace); MouseRotInvX = new Value.Boolean(false); MouseRotInvY = new Value.Boolean(false); MouseSlideInvX = new Value.Boolean(false); MouseSlideInvY = new Value.Boolean(false); DistortionType = new Value.Enum <DistortionMethodType>(DistortionMethodType.Current); Font = new Value.Enum <FontType>(FontType.Normal); FontSize = new Value.Int(16, 32, 8); // Switch the language according to the OS settings GuiLanguage = new Value.Enum <Language>(LanguageGetter.GetLanguage()); }
bool BeginGUI() { // ArgumentException: Getting control 1's position in a group with only 1 controls when doing repaint Aborting // Validation により GUI の表示項目が変わる場合があるので、 // EventType.Layout と EventType.Repaint 間で内容が変わらないようしている。 if (Event.current.type == EventType.Layout) { OnLayout(); State.Validate(ValidatorFactory()); } EditorGUIUtility.labelWidth = 150; // lang LanguageGetter.OnGuiSelectLang(); EditorGUILayout.LabelField("ExportRoot"); { State.ExportRoot = (GameObject)EditorGUILayout.ObjectField(State.ExportRoot, typeof(GameObject), true); } // Render contents using Generic Inspector GUI m_ScrollPosition = BeginVerticalScrollView(m_ScrollPosition, false, GUI.skin.verticalScrollbar, "OL Box"); GUIUtility.GetControlID(645789, FocusType.Passive); // validation foreach (var v in State.Validations) { v.DrawGUI(); if (v.ErrorLevel == ErrorLevels.Critical) { // Export UI を表示しない return(false); } } return(true); }
private void FindSymbols(char[] word, int endIndex, int trueLength, EntryCodes codes) { char[] symbols; bool result = true; for (int i = 0; i < trueLength; i++) { symbols = LanguageGetter.GetSymbolsArray(word[i], codes); if (symbols == null || !symbols.Contains(char.ToLower(word[i]))) { result = false; break; } } if (result) { _entryModels.Add(new EntryModel { StartIndex = endIndex - trueLength, EndIndex = endIndex, TextColor = GetColor.GetColorByCode(codes) }); } }
private void OnGUI() { _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos); EditorGUIUtility.labelWidth = 150; // lang LanguageGetter.OnGuiSelectLang(); _tab = TabBar.OnGUI(_tab, _tabButtonStyle, _tabButtonSize); switch (_tab) { case Tabs.MeshSeparator: EditorGUILayout.LabelField(MeshProcessingMessages.MESH_SEPARATOR.Msg()); break; case Tabs.MeshIntegrator: EditorGUILayout.LabelField(MeshProcessingMessages.MESH_INTEGRATOR.Msg()); break; case Tabs.StaticMeshIntegrator: EditorGUILayout.LabelField(MeshProcessingMessages.STATIC_MESH_INTEGRATOR.Msg()); break; case Tabs.BoneMeshEraser: EditorGUILayout.LabelField(MeshProcessingMessages.BONE_MESH_ERASER.Msg()); break; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(MeshProcessingMessages.TARGET_OBJECT.Msg(), GUILayout.MaxWidth(146.0f)); _exportTarget = (GameObject)EditorGUILayout.ObjectField(_exportTarget, typeof(GameObject), true); EditorGUILayout.EndHorizontal(); if (_exportTarget == null && MeshUtility.IsGameObjectSelected()) { _exportTarget = Selection.activeObject as GameObject; } if (_tab == Tabs.BoneMeshEraser) { if (_boneMeshEraserEditor) { _boneMeshEraserEditor.OnInspectorGUI(); } // any better way we can detect component change? if (_cSkinnedMesh != _pSkinnedMesh || _cAnimator != _pAnimator || _cEraseRoot != _pEraseRoot) { BoneMeshEraserValidate(); } _pSkinnedMesh = _cSkinnedMesh; _pAnimator = _cAnimator; _pEraseRoot = _cEraseRoot; } // Create Other Buttons { GUILayout.BeginVertical(); { GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Process", GUILayout.MinWidth(100))) { switch (_tab) { case Tabs.MeshSeparator: _isInvokeSuccess = InvokeWizardUpdate("MeshSeparator"); break; case Tabs.MeshIntegrator: _isInvokeSuccess = InvokeWizardUpdate("MeshIntegrator"); break; case Tabs.StaticMeshIntegrator: _isInvokeSuccess = InvokeWizardUpdate("StaticMeshIntegrator"); break; case Tabs.BoneMeshEraser: _isInvokeSuccess = InvokeWizardUpdate("BoneMeshRemover"); break; } if (_isInvokeSuccess) { Close(); GUIUtility.ExitGUI(); } } GUI.enabled = true; GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } EditorGUILayout.EndScrollView(); }
public POFile(IO.TextFile textFile, LanguageGetter languageGetter) { this._dirty = false; this._textFile = textFile; this._textFile.Saved += this.TextFile_Saved; List<IO.TextLine> group = null; List<Entry> entries = new List<Entry>(); Regex rxNoSpaces = new Regex(@"\s+", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.ExplicitCapture | RegexOptions.Singleline); bool firstGroup = true; this._header = null; foreach (IO.TextLine line in textFile.Lines) { if (rxNoSpaces.Replace(line.Value, "").Length > 0) { if (group == null) group = new List<IO.TextLine>(); group.Add(line); } else { if (group != null) { Entry entry = Entry.Parse(firstGroup, this, group); entries.Add(entry); if (entry is HeaderEntry) this._header = (HeaderEntry)entry; firstGroup = false; group = null; } } } if (group != null) { Entry entry = Entry.Parse(firstGroup, this, group); entries.Add(entry); if (entry is HeaderEntry) this._header = (HeaderEntry)entry; firstGroup = false; group = null; } this._entries = entries.ToArray(); this._header = (this._entries.Length > 0) ? (this._entries[0] as HeaderEntry) : null; this._language = null; if ((this._header != null) && (this.Header.LanguageCode.Length > 0)) { try { this._language = new CultureInfo(this.Header.LanguageCode); } catch { } } if (this._language == null) { if (languageGetter != null) { CultureInfo suggest = null; Match match = Regex.Match(Path.GetFileNameWithoutExtension(textFile.FileName), @"(^|\b)(?<code>[a-z]{2})($|[_-](?<code2>[a-z]{2})$)", RegexOptions.CultureInvariant | RegexOptions.ExplicitCapture | RegexOptions.Singleline | RegexOptions.IgnoreCase); if (match.Success) { if (!string.IsNullOrEmpty(match.Groups["code2"].Value)) { try { suggest = new CultureInfo(string.Format("{0}-{1}", match.Groups["code"].Value.ToLowerInvariant(), match.Groups["code2"].Value.ToUpperInvariant())); } catch { } if (suggest == null) { try { suggest = new CultureInfo(match.Groups["code2"].Value.ToLowerInvariant()); } catch { } } } if (suggest == null) { try { suggest = new CultureInfo(match.Groups["code"].Value.ToLowerInvariant()); } catch { } } } this._language = languageGetter(suggest); if (this._language == null) throw new OperationCanceledException(); } } if (this._language == null) throw new Exception("Unable to determine the language."); this.TotalDataEntries = 0; foreach (Entry entry in this._entries) if (entry.Kind == Entry.Kinds.Standard) this.TotalDataEntries++; }
static string Msg(MessageKeys key) { return(LanguageGetter.Msg(key)); }
static string Msg(VRMExportOptions key) { return(LanguageGetter.Msg(key)); }
public POFile(IO.TextFile textFile, LanguageGetter languageGetter) { this._dirty = false; this._textFile = textFile; this._textFile.Saved += this.TextFile_Saved; List <IO.TextLine> group = null; List <Entry> entries = new List <Entry>(); Regex rxNoSpaces = new Regex(@"\s+", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.ExplicitCapture | RegexOptions.Singleline); bool firstGroup = true; this._header = null; foreach (IO.TextLine line in textFile.Lines) { if (rxNoSpaces.Replace(line.Value, "").Length > 0) { if (group == null) { group = new List <IO.TextLine>(); } group.Add(line); } else { if (group != null) { Entry entry = Entry.Parse(firstGroup, this, group); entries.Add(entry); if (entry is HeaderEntry) { this._header = (HeaderEntry)entry; } firstGroup = false; group = null; } } } if (group != null) { Entry entry = Entry.Parse(firstGroup, this, group); entries.Add(entry); if (entry is HeaderEntry) { this._header = (HeaderEntry)entry; } firstGroup = false; group = null; } this._entries = entries.ToArray(); this._header = (this._entries.Length > 0) ? (this._entries[0] as HeaderEntry) : null; this._language = null; if ((this._header != null) && (this.Header.LanguageCode.Length > 0)) { try { this._language = new CultureInfo(this.Header.LanguageCode); } catch { } } if (this._language == null) { if (languageGetter != null) { CultureInfo suggest = null; Match match = Regex.Match(Path.GetFileNameWithoutExtension(textFile.FileName), @"(^|\b)(?<code>[a-z]{2})($|[_-](?<code2>[a-z]{2})$)", RegexOptions.CultureInvariant | RegexOptions.ExplicitCapture | RegexOptions.Singleline | RegexOptions.IgnoreCase); if (match.Success) { if (!string.IsNullOrEmpty(match.Groups["code2"].Value)) { try { suggest = new CultureInfo(string.Format("{0}-{1}", match.Groups["code"].Value.ToLowerInvariant(), match.Groups["code2"].Value.ToUpperInvariant())); } catch { } if (suggest == null) { try { suggest = new CultureInfo(match.Groups["code2"].Value.ToLowerInvariant()); } catch { } } } if (suggest == null) { try { suggest = new CultureInfo(match.Groups["code"].Value.ToLowerInvariant()); } catch { } } } this._language = languageGetter(suggest); if (this._language == null) { throw new OperationCanceledException(); } } } if (this._language == null) { throw new Exception("Unable to determine the language."); } this.TotalDataEntries = 0; foreach (Entry entry in this._entries) { if (entry.Kind == Entry.Kinds.Standard) { this.TotalDataEntries++; } } }
private void OnGUI() { _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos); EditorGUIUtility.labelWidth = 200; LanguageGetter.OnGuiSelectLang(); _exportTarget = (GameObject)EditorGUILayout.ObjectField(MeshProcessingMessages.TARGET_OBJECT.Msg(), _exportTarget, typeof(GameObject), true); _tab = TabBar.OnGUI(_tab, "LargeButton", GUI.ToolbarButtonSize.Fixed); var processed = false; switch (_tab) { case MeshProcessDialogTabs.MeshSeparator: { EditorGUILayout.HelpBox(MeshProcessingMessages.MESH_SEPARATOR.Msg(), MessageType.Info); if (TabMeshSeparator.TryExecutable(_exportTarget, out string msg)) { processed = TabMeshSeparator.OnGUI(_exportTarget); } else { EditorGUILayout.HelpBox(msg, MessageType.Error); } break; } case MeshProcessDialogTabs.MeshIntegrator: { EditorGUILayout.HelpBox(MeshProcessingMessages.MESH_INTEGRATOR.Msg(), MessageType.Info); _separateByBlendShape = EditorGUILayout.Toggle(MeshProcessingMessages.MESH_SEPARATOR_BY_BLENDSHAPE.Msg(), _separateByBlendShape); if (TabMeshIntegrator.TryExecutable(_exportTarget, out string msg)) { if (GUILayout.Button("Process", GUILayout.MinWidth(100))) { processed = TabMeshIntegrator.Execute(_exportTarget, _separateByBlendShape); } } else { EditorGUILayout.HelpBox(msg, MessageType.Error); } break; } case MeshProcessDialogTabs.BoneMeshEraser: { EditorGUILayout.HelpBox(MeshProcessingMessages.BONE_MESH_ERASER.Msg(), MessageType.Info); if (_boneMeshEraserEditor) { _boneMeshEraserEditor.OnInspectorGUI(); } if (TabBoneMeshRemover.TryExecutable(_exportTarget, _skinnedMeshRenderer, out string msg)) { processed = TabBoneMeshRemover.OnGUI(_exportTarget, _skinnedMeshRenderer, _eraseBones); } else { EditorGUILayout.HelpBox(msg, MessageType.Error); } break; } } EditorGUILayout.EndScrollView(); if (processed) { Close(); GUIUtility.ExitGUI(); } }