dtxmania 中文
リビジョン | aedab80f9b8bbd01f6e9e4bec7d3fee15159d203 (tree) |
---|---|
日時 | 2016-09-19 23:29:32 |
作者 | yyagi <yyagi.dtxmania@gmai...> |
コミッター | yyagi |
#36612 DTXManiaでのViwerを実行にて、二回目以降の実行でウィンドウサイズが保持されない問題の修正。
@@ -3,4 +3,12 @@ bin/ | ||
3 | 3 | *.suo |
4 | 4 | *.csproj.user |
5 | 5 | *.snk |
6 | - | |
6 | +*.sdf | |
7 | +*.obj | |
8 | +*.log | |
9 | +*.tlog | |
10 | +*.pch | |
11 | +*.idb | |
12 | +*.pdb | |
13 | +*.lastbuildstate | |
14 | +*.unsuccessfulbuild | |
\ No newline at end of file |
@@ -37,7 +37,7 @@ namespace DTXMania | ||
37 | 37 | /// ・CActConfigList で新しく追加した項目を list に追加してください。 |
38 | 38 | /// </summary> |
39 | 39 | [DataContract] |
40 | - public class CConfigXml : IExtensibleDataObject | |
40 | + public class CConfigXml : IExtensibleDataObject, ICloneable | |
41 | 41 | { |
42 | 42 | public static readonly int AssignableCodes = 16; |
43 | 43 |
@@ -59,6 +59,16 @@ namespace DTXMania | ||
59 | 59 | } |
60 | 60 | } |
61 | 61 | |
62 | + /// <summary> | |
63 | + /// とりあえずshallow copyによるClone()。 | |
64 | + /// </summary> | |
65 | + /// <returns>自身を複製したCConfigXmlクラス。</returns> | |
66 | + public object Clone() | |
67 | + { | |
68 | + return (CConfigXml) MemberwiseClone(); | |
69 | + } | |
70 | + | |
71 | + | |
62 | 72 | [DataMember] |
63 | 73 | public COptionBool bFullAVI; |
64 | 74 | [DataMember] |
@@ -163,8 +173,13 @@ namespace DTXMania | ||
163 | 173 | public COptionInteger nBGAlpha; |
164 | 174 | [DataMember] |
165 | 175 | public Coordinates.CRect rcWindow; |
176 | + | |
177 | + public Coordinates.CRect rcWindow_backup; // Viewerとしての使用時は、Playerとして使用する際のウインドウ情報をバックアップしておき、終了時に復元する | |
178 | + // 内部保持するだけの情報であるため、Config.xmlに保存する必要はなく、[DataMember]は不要 | |
179 | + | |
166 | 180 | [DataMember] |
167 | 181 | public Coordinates.CRect rcViewerWindow; |
182 | + | |
168 | 183 | [DataMember] |
169 | 184 | public COptionInteger nMasterVolume; |
170 | 185 | [DataMember] |
@@ -511,7 +526,8 @@ namespace DTXMania | ||
511 | 526 | |
512 | 527 | // integer |
513 | 528 | rcWindow = new Coordinates.CRect(100, 100, 1280, 720); |
514 | - nSleepPerFrameMs = new COptionInteger(-1); | |
529 | + rcWindow_backup = new Coordinates.CRect( 100, 100, 1280, 720 ); | |
530 | + nSleepPerFrameMs = new COptionInteger( -1 ); | |
515 | 531 | nSleepUnfocusMs = new COptionInteger(1); |
516 | 532 | nBGAlpha = new COptionInteger(100); |
517 | 533 | nPreSoundWeightMs = new COptionInteger(1000); |
@@ -382,6 +382,7 @@ namespace DTXMania | ||
382 | 382 | /// </summary> |
383 | 383 | public void tUpdateConfigIni() |
384 | 384 | { |
385 | + CConfigXml ConfigIni_backup = (CConfigXml) CDTXMania.Instance.ConfigIni.Clone(); // #36612 2016.9.12 yyagi | |
385 | 386 | CDTXMania.Instance.LoadConfig(); |
386 | 387 | |
387 | 388 | // CConfigIni cc = new CConfigIni(); |
@@ -405,20 +406,24 @@ namespace DTXMania | ||
405 | 406 | |
406 | 407 | for (EPart inst = EPart.Drums; inst <= EPart.Bass; ++inst) |
407 | 408 | { |
408 | - CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[inst].Value = CDTXMania.Instance.ConfigIni.nScrollSpeed[inst]; | |
409 | + CDTXMania.Instance.ConfigIni.nViewerScrollSpeed[inst].Value = ConfigIni_backup.nScrollSpeed[inst]; | |
409 | 410 | } |
410 | - CDTXMania.Instance.ConfigIni.bViewerShowDebugStatus.Value = CDTXMania.Instance.ConfigIni.bDebugInfo; | |
411 | - CDTXMania.Instance.ConfigIni.bViewerVSyncWait.Value = CDTXMania.Instance.ConfigIni.bVSyncWait; | |
412 | - CDTXMania.Instance.ConfigIni.bViewerTimeStretch.Value = CDTXMania.Instance.ConfigIni.bTimeStretch; | |
413 | - CDTXMania.Instance.ConfigIni.bViewerDrumsActive.Value = CDTXMania.Instance.ConfigIni.bDrums有効; | |
414 | - CDTXMania.Instance.ConfigIni.bViewerGuitarActive.Value = CDTXMania.Instance.ConfigIni.bGuitar有効; | |
411 | + CDTXMania.Instance.ConfigIni.bViewerShowDebugStatus.Value = ConfigIni_backup.bDebugInfo; | |
412 | + CDTXMania.Instance.ConfigIni.bViewerVSyncWait.Value = ConfigIni_backup.bVSyncWait; | |
413 | + CDTXMania.Instance.ConfigIni.bViewerTimeStretch.Value = ConfigIni_backup.bTimeStretch; | |
414 | + CDTXMania.Instance.ConfigIni.bViewerDrumsActive.Value = ConfigIni_backup.bDrums有効; | |
415 | + CDTXMania.Instance.ConfigIni.bViewerGuitarActive.Value = ConfigIni_backup.bGuitar有効; | |
415 | 416 | |
416 | - CDTXMania.Instance.ConfigIni.rcViewerWindow.W = CDTXMania.Instance.ConfigIni.rcWindow.W; | |
417 | - CDTXMania.Instance.ConfigIni.rcViewerWindow.H = CDTXMania.Instance.ConfigIni.rcWindow.H; | |
418 | - CDTXMania.Instance.ConfigIni.rcViewerWindow.X = CDTXMania.Instance.ConfigIni.rcWindow.X; | |
419 | - CDTXMania.Instance.ConfigIni.rcViewerWindow.Y = CDTXMania.Instance.ConfigIni.rcWindow.Y; | |
417 | + CDTXMania.Instance.ConfigIni.rcViewerWindow.W = ConfigIni_backup.rcWindow.W; | |
418 | + CDTXMania.Instance.ConfigIni.rcViewerWindow.H = ConfigIni_backup.rcWindow.H; | |
419 | + CDTXMania.Instance.ConfigIni.rcViewerWindow.X = ConfigIni_backup.rcWindow.X; | |
420 | + CDTXMania.Instance.ConfigIni.rcViewerWindow.Y = ConfigIni_backup.rcWindow.Y; | |
421 | + | |
422 | + CDTXMania.Instance.ConfigIni.rcWindow = ConfigIni_backup.rcWindow_backup; // #36612 2016.9.12 yyagi | |
420 | 423 | |
421 | 424 | CDTXMania.Instance.SaveConfig(); |
425 | + | |
426 | + ConfigIni_backup = null; | |
422 | 427 | } |
423 | 428 | |
424 | 429 | private string last_path; |
@@ -329,6 +329,7 @@ namespace DTXMania | ||
329 | 329 | } |
330 | 330 | |
331 | 331 | CDTXMania.Instance.ConfigIni.bFullScreen.Value = false; |
332 | + CDTXMania.Instance.ConfigIni.rcWindow_backup = CDTXMania.Instance.ConfigIni.rcWindow; // #36612 2016.9.12 yyagi | |
332 | 333 | CDTXMania.Instance.ConfigIni.rcWindow.W = CDTXMania.Instance.ConfigIni.rcViewerWindow.W; |
333 | 334 | CDTXMania.Instance.ConfigIni.rcWindow.H = CDTXMania.Instance.ConfigIni.rcViewerWindow.H; |
334 | 335 | CDTXMania.Instance.ConfigIni.rcWindow.X = CDTXMania.Instance.ConfigIni.rcViewerWindow.X; |
@@ -427,8 +428,8 @@ namespace DTXMania | ||
427 | 428 | base.Window.Location = new Point(ConfigIni.rcWindow.X, ConfigIni.rcWindow.Y); |
428 | 429 | // 事前にDTXVmodeの実体を作っておくこと |
429 | 430 | base.Window.Text = this.strWindowTitle; |
430 | - base.Window.StartPosition = FormStartPosition.Manual; | |
431 | - base.Window.Location = new Point(ConfigIni.rcWindow.X, ConfigIni.rcWindow.Y); | |
431 | + //base.Window.StartPosition = FormStartPosition.Manual; | |
432 | + //base.Window.Location = new Point(ConfigIni.rcWindow.X, ConfigIni.rcWindow.Y); | |
432 | 433 | |
433 | 434 | // #34510 yyagi 2010.10.31 to change window size got from Config.ini |
434 | 435 | base.Window.ClientSize = new Size(ConfigIni.rcWindow.W, ConfigIni.rcWindow.H); |