public TranslateWindow() { InitializeComponent(); IsShowSource = true; GameTextHistory = new Queue <string>(); this.Topmost = true; UI_Init(); IsOCRingFlag = false; mh = new MecabHelper(); IsPauseFlag = true; translator1 = TranslatorAuto(Common.appSettings.FirstTranslator); translator2 = TranslatorAuto(Common.appSettings.SecondTranslator); bth = new BeforeTransHandle(Convert.ToString(Common.GameID), Common.UsingSrcLang, Common.UsingDstLang); ath = new AfterTransHandle(bth); if (Common.transMode == 1) { Common.textHooker.Sevent += DataRecvEventHandler; } else if (Common.transMode == 2) { MouseKeyboardHook_Init(); } }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { Common.appSettings.TF_LocX = Convert.ToString((int)this.Left); Common.appSettings.TF_LocY = Convert.ToString((int)this.Top); Common.appSettings.TF_SizeW = Convert.ToString((int)this.Width); Common.appSettings.TF_SizeH = Convert.ToString((int)this.Height); if (hook != null) { hook.Stop(); hook = null; } if (Common.textHooker != null) { Common.textHooker.Sevent -= DataRecvEventHandler; Common.textHooker.StopHook(); Common.textHooker = null; } dtimer.Stop(); dtimer = null; //立即清一次,否则重复打开翻译窗口会造成异常:Mecab处理类库异常 _mecabHelper = null; GC.Collect(); }
public MecabViewModel(GameViewModel gameViewModel, CardViewModel cardViewModel, MecabHelper mecabHelper) { this.gameViewModel = gameViewModel; this.cardViewModel = cardViewModel; this.mecabHelper = mecabHelper; CanEnableMecab = mecabHelper.CanCreateTagger; }
private IntPtr winHandle; //窗口句柄,用于设置活动窗口,以达到全屏状态下总在最前的目的 public TranslateWindow() { InitializeComponent(); _isShowSource = true; _isLocked = false; _gameTextHistory = new Queue <string>(); this.Topmost = true; UI_Init(); IsOCRingFlag = false; _mecabHelper = new MecabHelper(); _textSpeechHelper = new TextSpeechHelper(); if (Common.appSettings.ttsVoice == "") { Growl.InfoGlobal(Application.Current.Resources["TranslateWin_NoTTS_Hint"].ToString()); } else { _textSpeechHelper.SetTTSVoice(Common.appSettings.ttsVoice); _textSpeechHelper.SetVolume(Common.appSettings.ttsVolume); _textSpeechHelper.SetRate(Common.appSettings.ttsRate); } if (Common.appSettings.xxgPath != string.Empty) { _dict = new XxgJpzhDict(); _dict.DictInit(Common.appSettings.xxgPath, string.Empty); } IsPauseFlag = true; _translator1 = TranslatorAuto(Common.appSettings.FirstTranslator); _translator2 = TranslatorAuto(Common.appSettings.SecondTranslator); _beforeTransHandle = new BeforeTransHandle(Convert.ToString(Common.GameID), Common.UsingSrcLang, Common.UsingDstLang); _afterTransHandle = new AfterTransHandle(_beforeTransHandle); _artificialTransHelper = new ArtificialTransHelper(Convert.ToString(Common.GameID)); if (Common.transMode == 1) { Common.textHooker.Sevent += DataRecvEventHandler; } else if (Common.transMode == 2) { MouseKeyboardHook_Init(); } }
public GameViewDataService(MecabHelper mecabHelper) { this.mecabHelper = mecabHelper; if (mecabHelper.CanCreateTagger) { mecabHelper.CreateTagger(); } else { if (DataRepository.EnableMecab) { DataRepository.EnableMecab = false; } } }
// FIXME: learn new way // https://stackoverflow.com/questions/20099743/how-do-i-get-design-time-view-of-a-view-model-first-approach-with-ioc // This make design view but get wrong in Real mode //public GameViewModel() : this(new DesignGameDataService()) { } /// <summary> /// Initializes a new instance of the MainViewModel class. /// </summary> public GameViewModel(IGameDataService dataService) { log.Info("Initialize"); TextTemplateConfig = TextTemplateType.OutLineKanaBottom; _dataService = dataService; DisplayTextCollection = _dataService.InitTextData(TextTemplateConfig); if (IsInDesignMode) { // Code runs in Blend --> create design time data. CardInfo = new WordCardInfo() { Word = "買う", Ruby = "かう", IsProcess = false, Hinshi = "動詞", Kaisetsu = new ObservableCollection <string>() { "1. 多,多数,许多。(たくさん。多くのもの。)", "2. 多半,大都。(ふつう。一般に。たいてい。)" } }; MainHeight = 800; MainWidth = 600; } else { // Code runs "for real" CardInfo = new WordCardInfo(); _mecabHelper = new MecabHelper(); _mojiHelper = new MojiDictApi(); _baiduHelper = new BaiduWebTranslator(); WordSearchCommand = new RelayCommand <SingleTextItem>(WordSearch, CanWordSearch); PopupCloseCommand = new RelayCommand(() => Messenger.Default.Send(new NotificationMessage("CloseCard"))); PinCommand = new RelayCommand(() => TextPanelPin = !TextPanelPin); TranslateCommand = new RelayCommand(FakeDoTranslate); TranslateTextList = new ObservableCollection <string>(); Textractor.SelectedDataEvent += SelectedDataEventHandler; } }
public TranslateWindow() { InitializeComponent(); _isShowSource = true; _gameTextHistory = new Queue <string>(); this.Topmost = true; UI_Init(); IsOCRingFlag = false; _mecabHelper = new MecabHelper(); if (Common.appSettings.xxgPath != string.Empty) { _dict = new XxgJpzhDict(); _dict.DictInit(Common.appSettings.xxgPath, string.Empty); } IsPauseFlag = true; _translator1 = TranslatorAuto(Common.appSettings.FirstTranslator); _translator2 = TranslatorAuto(Common.appSettings.SecondTranslator); _beforeTransHandle = new BeforeTransHandle(Convert.ToString(Common.GameID), Common.UsingSrcLang, Common.UsingDstLang); _afterTransHandle = new AfterTransHandle(_beforeTransHandle); if (Common.transMode == 1) { Common.textHooker.Sevent += DataRecvEventHandler; } else if (Common.transMode == 2) { MouseKeyboardHook_Init(); } }