-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathOrinrinEditor.cpp
4040 lines (3279 loc) · 134 KB
/
OrinrinEditor.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*! @file
@brief アプリケーションのエントリ ポイントを定義します。
このファイルは OrinrinEditor.cpp です。
@author SikigamiHNQ
@date 2011/05/10
*/
/*
Orinrin Editor : AsciiArt Story Editor for Japanese Only
Copyright (C) 2011 - 2014 Orinrin/SikigamiHNQ
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see <http://www.gnu.org/licenses/>.
*/
// 大日本帝国公用語は↓を見られたい
//-------------------------------------------------------------------------------------------------
// 注意・コマンドのリソースID番号は変更不可!
// TODO: BIG_TEXT_SEPARATE 頁区切りのないTXTかどうかを確認する・もしそうなら適当なところで分ける
// ASTでないなら内容確認して、区切りがあるかどうか確認。100行以上あり、かつ区切りがないなら、巨大テキストとみなす
// この場合は、巨大ファイルなので分割読込するか、やめるかにする。
// 同じ所に、txtをmltにしてファイルつくって、そこに出力し直して、これを開き直す?
// 40行以上かつ4行以上の空白改行があれば、そこで分割する
// TODO: カーソル位置から左右を入れ替える。左右配置に使う。
//改行のみの行で囲まれた範囲を対象。
// TODO: OK? 保存したときのバルーンメッセージもON/OFFできるように
// TODO: OK? MLTの副タブ、多段とスクロール、選択出来るように
// TODO: OK? MLTの副タブ、ダブルクリックで名称変更が出せるように
// TODO: OK? MAAファイルのコマの削除処理作ってる MaaItems.cpp
// TODO: OK? MAA表示中のヤツから文字列検索する機能
// TODO: OK? ドラフト・サムネのサイズ変更機能
// TODO: OK? 最大化したり画面サイズかえると、右の頁一覧が見えなくなる
// TODO: OK? 最大化して終わる>起動して、最大化解除すると、メインスプリットバーが見えなくなる//右にイッちゃってるまま
// TODO: OK? 位置情報のリセット機能・システムメニューに搭載する
// TODO: OK? メインスプリットバーの位置情報リセットが居るかも
// TODO: OK? 本文の途中から左右にずらす機能。キャレット位置を基準に、そこから右を、左右にずらす。
// もしくは選択範囲のみ。開始位置に注意
// まんなかの空白を伸び縮みさせる感じか
// #ifdef DOT_SPLIT_MODE
// TODO: OK? MAA窓で、この欄で右クリックし「ここにアイテムを追加」でAAを追加した際、
// そのmltの他AA全ての末尾に改行が何個か勝手に追加される
//本文検索、F3で表示更新?
// TODO: 起動中に外部からのコマンドでもう一つファイルを開けるようにできない?
//プロセスがあるときに「"~\OrinrinEditor.exe" "~.mlt"」というコマンドラインが実行されると
//エラーが出て、こういう場合に起動中の別タブに読み込むか、もう一つ別に立ち上がって欲しい
//今の仕様だと、関連付けでエディターとして登録してもファイルからは一つしか開けないし、
//Ayaya ViewerやMLTViewで外部編集プログラムとして登録しても起動中だと使用できないので、
//投下用ASTの編集と作品用自分まとめMLTのメンテナンスが不便ですので。
//ノート(1280*800)と外付け(1920*1080)の2画面構成でノートを
//メインディスプレイにしたときサブディスプレイで文字AA変換ボックス、
//縦書き変換ボックスを表示するとメインディスプレイ側の移動できない位置に
//ボックスが表示され使えなくなります。
//それとエディタの横幅を狭めた時にブラシなどが表示されているパレットが
//移動されず消えてしまうのでそちらも表示され続ける設定ができるようにお願いします
//MonitorFromPoint
//multimon.h
//#define COMPILE_MULTIMON_STUBS
//GetSystemMetrics(SM_CMONITORS)
//直したのでチェキせよ
// TODO: 追加されるページセパレーターが「[AA][[AA][<追加時に入力したページタイトル>]<改行>]」ってなるみたい。
// TODO: 頁切り替えた時、最後の頁のところまで頁一覧をスクロール
// TODO: ディレイロード・Ctrl Shift D の動作は問題無いか
// TODO: 保存時の拡張子指定選択・オート、MLT、AST<TXTを使わなければそれでいい感じ
// TODO: 全文字の幅を先に計算しておけば速いかもだ<さして影響ないかもだ
// TODO: 最小化から復帰すると、MAA非表示でも表示になっちゃう
// メイン窓のWM_ACTIVATEに来る前に表示されてる?MAA窓のACTIVATEを捕まえる必要があるか
// なぜか一瞬見える。どのタイミングか?
// TODO: 汎用AAディレクトリにジャンプできるように、とか・ブックマーク機能?
// TODO: 右揃え線の文字変更できない?
// TODO: MAAテンプレ検索ショートカットつけとく
// TODO: viewerのMLTリストアップ、チェックボックスは灰色できないか
// ディレクトリ内の選択非選択がややこしい
// ルートディレクトリの更新日時をみて、修正か新規か判断?
// TODO: MAAのAA表示は高さが狭い
// TODO: メニューのヘルプから、説明書ASTをいつでも呼べるようになってるといい
// TODO: 最終行の枠いれると落ちる?
// TODO: メインのファイルタブに、このファイル意外を閉じる機能をつける
// TODO: 頁一覧、選択が移動したら表示頁も追随する<複数選択つくってから
// TODO: 全ピリヲドを消去する機能・ピリヲドの前後を確認して、空白であれば幅に合わせて置き換え・単独なら3dotユニコードで置き換える
// TODO: MAAの一コマの編集機能・ファイル名工夫するかフラグで管理
// 保存するには、そのMAAの開きを維持しておく必要がある
// TODO: ページリストも、ばらしたとき閉じられるように
// TODO: 挿入にある色指定をカスタマイズ出来る
//考え中
// レイヤー機能とは?
// 頁削除メッセージの確認無しは、起動中だけにしたほうがいい?
// キーバインド・メニューに入ってない機能に注意
// 枠編集DIALOGUE、オフセットでENTERとか直書換に対応セヨ
// ドッキングテンプレ、左に置けないか
// セーブ時メッセージON/OFFできるように
// ファイル履歴は、いじった順番になるようにすべき<OK?
// プレビューの更新ボタンつける
// プレビュー開いてる時に、開く操作したら閉じる?
// デカいファイル開こうとしたときはメッセージ出すとか
// SQLのINSERT、prepareは重い。クエリつくって、resetしながら回すのがいいんじゃ
// IEプレビュー、CSSでフォント表示を正規化する http://b4t.jp/823
//ファイル開くとき、ページデータは生のテキストデータだけゲットしておいて、メモリ展開はしない
//ページが選択されたら、本体に展開して、生データは消しておく・これをフラグにする
//保存するときは、生データか、本体データを保存する
//頁表示のステータスのほうは?バイト数計算だけならそんなに重くない?
//頁番号挿入みたいに、複数頁にわたる処理がヤバイ
//全プレビューもヤバイ
// ファイルオーポン時にプログレス的なものを。バイト数表示のやつ。ディレイロードできれば要らないか
//確認:Viewer側、↑↓PageUpDownつかえてるか
// ファイルを読み込むとランタイムエラーでることがある・なんか変更してから?
// スクロールが発生した場合、画面全体書換必要か
//影響ないようにした
//選択範囲がある状態でCtrlU>アンドゥ>選択範囲がおかしくなる。さらに切り取りとかすると落ちる
//アンドゥリドゥしたら、選択範囲解除する・DocInsDelCtrl.cpp:559あたりでおかしい?
//非ユニコードの埋めパターン、半角空白気にしない用にする?<ちゅっと変更してみた
//バグ
// TODO: 矩形選択範囲バイトカウントが遅い
// TODO: 描画更新タイミングがおかしい場合が多々ある
// TODO: 「矩形選択」と「部分抽出」の両方にチェックを入れた状態でドラッグするとエラー
// TODO: 複数行テンプレ窓の主タブでホイールスクロールが効かない?フォーカスの問題か?
// メイン窓の編集スペース、Page List、複数行テンプレ窓のAA一覧ツリーなど、他の場所では問題ない
// TODO: Viewer、右クリメニューからのドラフトボードが開かない?・追加されない?
//機能追加・変更
// TODO: 全頁の一括行末削除
// TODO: 複数機能をまとめて実行するマクロのようなもの<プラグインでいけるか?
// TODO: 頁の複数選択して移動、D&Dも
// TODO: ALT+Nを、頁名称一括編集にする?
// TODO: 頁一覧を、複数選択して一発削除できるように
// TODO: 履歴から開こうとしたファイル・プロフが無かったらリストから消すべき
// TODO: フリーカーソルモード
// TODO: レイヤボックス自体の操作、上書き実行とかもキボドショトカトで出来るように
// TODO: 右揃え線消し
// TODO: 文字の検索・痴漢機能 ユニコード空白一括検索とか
// TODO: ファイルを開き直す機能
// TODO: 起動中に、ラインテンプレートのリストを開く&再読み込みできるようにして欲しい// Brushも同じか。右クリメニューで
// TODO: 複数ファイルタブ、右クリメニューでファイル情報出す
// TODO: Ctrl+Kの統計機能・PageListの項目増やして対処・Ctrl+Kでリフレッシュとか・連続半角とか、行末空白とか・いろんな情報をだす・リヤルタイムだと重いので操作でリフレッシュ
// TODO: ファイル内容統計機能が欲しい。全バイト数、頁数とか
// TODO: 使用をファイル出力できるように
// TODO: DocBadSpaceCheck内の更新指令の最適化が必要
// TODO: バックアップ機能の強化・上書き保存したらバックアップとか・頁新規作成したら保存
// TODO: 保存するとき、同名ファイルがあったら、日時くっつけてバックアップとか
// TODO: 切り抜きリファレンスAAを使って、文字のとこだけ切り抜き、ないところだけ切り抜き、とかできるようにしたい
// TODO: バックアップメッセージ、ステータスバーに出せないか
// TODO: 全部保存作る
// TODO: テンプレのコンボックスを、リストボックス型と切り替えられるとか
// TODO: プレビューをリヤルタイムに変更する
// TODO: 非ユニコのときは、ピリヲドの量の選択を?もしくは設定出来るようにするか
// TODO: ミニ複数行テンプレ・壱行ブラシのサブダイヤログに増やすか
// TODO: View部分をサムネ表示できるように
// TODO: テンプレの「常に最前面に表示」Orinrinediterを表示している時だけ最前面に来るように//もしくは、メイン窓に統合とか
// TODO: Viewer側、Ctrl↑↓で、MLTのセクション間移動する
// TODO: viewerの主タブをマウスとスクロールバーだけでなく、ホウィール、キーボードの矢印やPageUp,PageDnキーで操作出来る様にならない?
// TODO: Viewer側、ポップアップで、容量も出せないか
// TODO: MLTのブックマーク機能・タブ増やすか、ツリーに増やすか・副タブじゃいけない?
// TODO: viewの使用のグループ名の変更機能・グループ自体、単体両方で
// TODO: Viewの右クリメニューも編集出来るように
// TODO: MMAビュー、AAのスクロールをアイテム区切りでなく行スクロールも出来るように
// TODO: MAA窓も統合できないか
// TODO: ASD対応<読込は作ったがどこで使う?
// TODO: ツールチップ付けたい
// TODO: トレスの1画面、2画面切り替えモード
// TODO: トレスの2画面だと、背景絵はどっちのペインでも表示出来るようにしたい
// TODO: トレスで、画像をつまんで直接移動できるように
// TODO: トレス機能、点滅コントラスト?と輝度調整の幅が狭いのがちょいと苦しいらしい
// TODO: トレスモード窓に、グリッドON/OFFを付ける
// TODO: トレスモード、各入力値は直入力できるように
// TODO: トレスモードボタンは、TOGGLEできるようにする
// TODO: プロファイルのツリーの編集、もっと手軽にできないか
//OK?
// 新規で開いて、それを名づけ保存したファイルは、履歴に入いってない
// 頁削除のAlt+D付ける。注意ダイヤログ出す。
// サムネからだと使用履歴に反映されない
// 文字AAの入力とか、レイヤボックスの編集とかで、キーボードショートカット使えるように
// トレス窓が、最大化してると隠れてしまう
// 頁挿入ダイヤログのチェックボックス覚えておくように
// TODO: OK? MAAテンプレのステータスバーページ番号の表示が0基準なので1にする
// TODO: OK? ツールバーにもAcceleratorキー表示する
// TODO: OK? バイト数警告の4096は調整出来るように
// TODO: OK? 右ルーラーみたいな、行ルーラー(30行とか)を IDM_UNDER_RULER_TOGGLE
// TODO: OK? ユニコードリスト・使ったヤツの記録とか
// TODO: OK? ディレイロード・未ロード頁の全プレビューがおかしい
// TODO: OK? 枠作るときはピリヲド幅を使う
// TODO: OK? 最大化から戻したら、MAAが非表示でも表示になる
// TODO: OK? MAAと頁一覧、選択したらメイン窓にフォーカス戻すかどうか選択出来るようにする
// 右クリメニューにON/OFF付ければいい
// TODO: OK? ドラッグ移動させた後、キャレットの位置がおかしい
// TODO: OK? ドラフトボード・サムネイル・移動出来るように
// TODO: OK? ユーザー定義をアクセラキーで設定出来る
// TODO: OK? セリフ改行、文章の途中で半角全角スペース一個あった場合、ソコは無視して文章の先端に行頭を揃える
// TODO: OK? ツールチップ、マウスカーソルが重なるとちらつくのは仕様。自作しかないか。
// TODO: OK? 右クリメニューの個別枠やユーザアイテムに各個の名前を付けるように
// TODO: OK? 副タブの名称編集出来るように
// TODO: OK? 空白の表示非表示をメモリする
// TODO: OK? 合成するとき、上絵の周囲を白ヌキする機能
// TODO: OK? レイヤボックス白ヌキ、16・22とか、いくつかパヤーン作っておく
// TODO: OK? MLT検索、文字列ないなら検索しないようにする
// TODO: OK? viewer側の表示色変更・背景とか
// TODO: OK? 選択範囲をASTの頁名にする機能 IDM_PAGENAME_SELASSIGN
// TODO: OK? プレビュー再描画しても、ALLと表示位置を維持する
/*
ASDファイル 壱行が壱コンテンツ
内容の改行 0x01,0x01
内容と説明の区切り 0x02,0x02
*/
// v ^ (v >> 1) グレイコード
/*
2011/06/30 0.10 初リリース、プレアルファ版
2011/07/04 0.11 選択中に右クリすると解除されちゃうのを修正
全選択してコピーしたときの末端改行増殖を修正
レイヤボックスで、編集ビューのスクロールが考慮されてなかったのを修正
MAAで複数ファイルをタブで開けられるようにした
2011/07/19 0.12 枠の保持を10個にした
終了時の副タブを復帰出来るようにした
新規保存やリネーム保存だと、ラストオーポンが記録されないのを修正
PageListで、削除・移動できるようにした
2011/07/20 0.13 MLTツリーで、ASTも読めるようにした
ブラシ、壱行テンプレのコンボックスはマウスホイールしないようにした
選択状態解除されてるけどフラグが解除されてないのを修正したつもり
矩形選択範囲を、カーソル位置に準じるようになった?
切り取りのキーボードアクセラレータが無かった・単なる入れ忘れ
0文字の行でAlt+←→やるとあぼーんしてたのを修正
MAAテンプレで、ツールチップのON/OFF出来るようにした
枠に名前付けられるようにした
トレス機能つけた・多分改善が必要
選択範囲を反転表示しちゃう
テンプレファイルを、Templatesディレクトリに移動
2011/08/01 0.14 コンテキストメニューにもアクセラレータキーを付けた
トレス:表示非表示を Alt+I で出来るようにした☆
トレス:非表示中は文字色戻すようにした
トレス:特定の操作したらフォーカスが描画ビューに戻るようにした
ブラシと壱行テンプレの表示を格子状にした・でも選択の色変えがヘン
MAAのツールチップ文字サイズを9と12で選択出来るようにした
レイヤボックス、貼り付けたらすぐ閉じるかどうかの選択チェックつけた
ユニコードパディングを使えるようにした
2011/08/09 0.15 トレス中はタイトルバーに[トレスモード]がつく
トレスの表示非表示をAlt+Hに変更
トレスで、絵を開いたらズームを100%に戻すようにした
トレスの画像開く窓にサムネイル付けた
頁一覧にツールバー付けた
頁の複製機能を実装
Alt左右の場合にもユニコードつかってパディングするようにした
Ctrl+Home,Endを効くようにした
MAA窓にフォーカスがあるとき、TAB,Shift+TABでタブを切り替わるようにした
MAAの副タブを削除・追加したら選択がおかしくなってるのを修正
ユニコード数値参照、16進数型に対応
レイヤボックス、ブッ込む内容に合わせて、窓の大きさを拡大するようにした
自動バックアップ機能を付けた
2011/08/18 0.16 キャプションバーの開いてるファイル名が変更されない時があるのを修正
実体参照の読込をするようにした。ただし内部でユニコードにしてる
ファイル開いたときに、ページリストにバイト数とかが反映されないのを修正
レイヤ合成、ずれることがあったのを修正
レイヤボックスの透過合成を出来るようにした
クリップボード内テキストのユニコード判別出来るようにした
ツールチップが、Win7だとチラつくのをしないようにできた?
ページリストに、各頁のサムネイルっぽいのをポッパップするようにした
MAAウインドウのAA表示を、ユニコードに変換して表示するようにした・問題ないと思うけど
レイヤボックスのサイズ変更がおかしいのを直した
AAViewer部分を分離して単独Projectもいけるようにした
2011/08/24 0.17 バックアップディレクトリを常に作成するようにした
バックアップしたメッセージのON/OFF出来るようにした・ミスは常に表示
頁を新規作成したときもバックアップするようにした
バイト数計算の作り直し・多分正確に出せるようになった
ALT上下で頁切換できる
ドラッグ選択をやりやすくした
頁の統合と分割を出来るようにした
副タブの、最後に見ていた位置を覚えておけるようにした・終了したら消える
2011/08/31 0.18 複数ファイルオーポン出来るようになったはず・大丈夫かこれ
Ctrl+F4 でタブ閉じできる
ALT+↑↓で頁移動したら、PageListもスクロールするようにした
ツールバーに「やり直し」を追加
空白の表示・非表示を切り替えられるようにした
選択範囲を、空白かブラシで塗りつぶせるようにした
各独立窓を、最前面表示出来るようにした
部分抽出できるようになったかも
カレントディレクトリを、EXEファイルのある場所で取るようにした
バグ修正いろいろ
2011/09/06 0.19 コマンドラインからのファイルオーポンに対応した?最初の一つだけ
空白警告があったら、行番号が紅くなるようにした
最終頁削除したら吹っ飛ぶのを修正
グリッド線を表示出来るようにした
右端ルーラを表示できるようにした
背景色等変更できるようにした。でもGUIがない
この頁の前に挿入、を、後に挿入にした・末尾作成のキーバインド変更
右クリメニュー色々追加
マウスホイールのスクロール量をOS標準を使うようにした・多分いける
PageUp,PageDnで10行ずつスクロールするようにした
行が増えると重くなるのをないようにした・多分イケてる
行数桁数を6桁まで対応
複数ファイル間の移動を、Ctrl+PageUp,Downで移動できるようにした
IEコンポーネントを使った簡易プレビュー搭載
Ctrl+Home,Endで、スクロールが上手くいかないのを修正
頁順番移動の上下が逆だったのを修正
頁リスト、ヘッダの幅変更してもリストのほうが変わらないのを修正・大丈夫かな?
バグ修正いろいろ
2011/09/16 0.20 レイヤボックスの内容をクリップボードできるようにした
複数行テンプレから編集ビューに開けられるようにした
プレビュー機能を、<DD>とか使って実際の画面っぽくなるようにした
大量のALLプレビューしても堕ちなくなったかもだ
投下支援機能として、頁送りSJISコピー機能を追加。ホットキー[Ctrl+Shift+D]を使用。
改行マーク[CrLfMark]、非SJIS文字[CantSjis]の色変更出来るようにした
ツールバーをリバーにした。でも変更の復元ができてねぇ
右クリメニューの枠の名称が表示されるようにした
抽出中にAlt+Spaceを押したら、抽出レイヤボックス開くでござる
これに伴い、抽出してレイヤボックスへ機能は取りやめ
抽出中にUNICODEコピーを出来るようになったかも
矩形・塗潰・抽出・空白の状態をステータスバーに表示
末端空白削除しても、行数表示が赤いままだったのを修正
今見てる頁を、BMPとPNGで保存出来るようにした
2011/09/30 0.21 スペースを非表示にしても、警告は表示するようにした
トレスモードの絵の上に、グリッド線出すようにした
ツールバー、メニューの、トレスモード・ユニコード表はTOGGLE動作にした
ユニコード表でダブルクルックしたら挿入されるようにした
頁分割・統合・削除の確認メッセージに、次から表示しないオプション
カーソル位置を覚えるようにした・太ましくなった
全体のドットシフト機能・選択範囲のみ処理もできる
複数行テンプレの区切りを、線と色違いを切り替えられるようにした
複数行テンプレで、プロファイル機能で切り替えられるようにした
複数行テンプレプロファイルに、ツリー内容をキャッシュした
複数行テンプレの使用リストの分類を詳しくした
複数行テンプレで、使用リストをタブで開けるようにした
Viewerをバージョンアップ
2011/10/20 0.22 既存の拡張子が、ASTならそれを維持するようにした
トレスモード、スライダをスクロールバーにしてみた
編集エリアのスクロールに合わせて絵も動くようにした
ちらつきをある程度押さえられたかもだ
ブラシ・壱行テンプレで、各アイテムの横幅をツールチップに表示・でもなんかヘン
選択して入力>削除、矩形選択>塗り潰し、するようにできたかもだ
枠挿入窓を作成
レイヤボックス、枠挿入窓を、カーソルキーで異動出来るようにした
内容変更したら、ファイルタブが[変更]
頁全体を空白で埋める機能
頁番号挿入機能
壱行テンプレ、ブラシテンプレ、頁リストをメイン窓にくっつける機能
複数行テンプレのタブを、複数段表示出来るようにした
バグ修正いくつか
2011/11/07 0.23 選択範囲のバイト数表示するようにした
枠挿入窓に、挿入したら閉じるスイッチを搭載
複数行テンプレからの割込挿入を、ちゃんと矩形挿入なるようにした
レイヤボックス開くとき、カーソル位置に開くようにした▲
複数行テンプレに見出し機能を付けた。ASTと行頭の【】に反応
複数行テンプレのツリーのファイルへの、内容追加できるようにした☆
ブラシするときに、ドットがはみ出しても気にしないようにした
コピーモードを、UnicodeとShiftJISを入れ替えられるようにした
文字AA変換機能出来たかも
バグ修正いくつか
2011/11/11 0.24 コンテキストメニュー編集機能を搭載できたか?
Ctrl+↑↓で、テンプレグループの頁操作
複数行テンプレの見出し機能を強化。マシになったか?
バグ修正いろいろ
2011/11/14 0.24.1 文字AA変換窓が、画面外に行かないようにした
多重起動防止いれた
プレビューウインドウの位置と大きさを覚えておくようにした
枠挿入したときに下の方が更新されないのを修正
バグ修正いろいろ
2011/11/28 0.25 MAAのファイル名検索機能
MAAのツリー展開が早くなった気がする(Viewer込み)
プロファイル構築で、既存のプロフと一致するならチェキするようにした(Viewer込み)
プロファイル作るときの時間が短縮できた気がする(Viewer込み)
メイン窓のテンプレエリアのサイズ可変になった
最大化状態を覚えておくようにした
4096バイト超えたら、頁リストのバイト数のところ赤くするようにした
2011/12/22 0.26 ドラフトボード機能(Viewer込み)
MAAサムネイル機能(Viewer込み)
MAAの使用のグループ一括削除(Viewer込み)
配色変更をGUIで出来るようにした
オーポン記録がなければ、説明ASTを表示するようにした
ファイル毎のCaret位置を保存するようにした
起動したまま、壱行テンプレ、ブラシテンプレのリロードできるようんした
起動するとき、最後に開けてたファイルを開くとか選択できるようにした
2012/01/16 0.27 編集窓のファイルタブで、マウスオーバーでフルパス表示
MAAとドラフトボードで、中クルックの場合処理を増やした(Viewer込み)
台詞用Enter機能。Shift+Enterで、改行挿入ではなく次の行に空白とかで台詞位置合わせできる
縦書き機能
バグ修正いろいろ
2012/02/29 0.28 UTF8でエクスポート出来るようにした
フォント変更機能
頁削除のAlt+D追加
サムネから使ったら、使用タブに追加されないのを修正
リバーの位置記憶と初期状態に戻す実装
ファイル開いた履歴を保持できるようにした
MAA部分に↑↓PageUpDownとか追加できたかもしれない
MAAのリストアップ対象にTXTを追加
改行が多いとパフォーマンスが落ちるのが少し改善できた気がする
終了時の確認メッセージ変更
IEプレビューのCSSを少し変更・行間について
バグ修正いろいろ
2012/03/24 0.29 台詞改行、空白行で実行した場合は、キャレット位置で次の行を確保するようにした
Editorで効いてなかったプロファイル履歴を修正
右揃え線、ユニコードに対応
行頭半角空白をユニコード空白に置き換える機能搭載
Ctrl+Bでプレビュー開くようにした
壱行、ブラシテンプレの表示/非表示ができる
アクセラキー編集機能を搭載
アンドゥリドゥをするときは選択範囲解除するようにした
已に開いているファイルを開こうとしたら、そのタブに移るようにした
2012/05/15 0.30 MAA窓でENTER押したら、そのときトップに見えてるAAを左クリック動作するようにした
文字列若しくは空白列でダブルクルックすると、その範囲を選択状態にする
選択範囲をドラッグ移動出来るようにした・ちゅっと挙動怪しいかも?
プレビュー開いてたら、保存したときに再描画するようにした
枠作成に、複数行使えるようにした
枠の個数を20個保持できるようにした
ツールバーに、ユニコード空白の使用/不使用トグルボタンつけた
左右反転、上下反転機能を追加
レイヤボックスに、内容削除ボタンを追加
4096byte超えたら、ステータスバーのバイト表示位置が赤くなる。
頁挿入ダイヤログのチェックボックス覚えておくようにした
キャレットの位置に矩形貼付機能を追加
壱行テンプレで中クルックしたらレイヤボックスが開く
MAAツリーでファイル名を中クリックしたら、副タブに追加できる
バグ修正いろいろ
2012/09/10 0.31 MAAに、ファイルの途中にアイテムを追加できるようにした
MAAの内容表示側にD&Dすると、そのファイルを副タブで開く(Viewer込み)
※使用には入らないし復元もされない
MAAツリーにD&Dすると、追加アイテムとしてツリーに追加(Viewer込み)
※再構築すると消える
MAAの使用で、複数のMLTに同じAAが有る場合にキョドるのを修正。多分(Viewer込み)
枠挿入BOXを縮めすぎるとエラーになるのを修正
台詞改行で、単独スペースはノーカンにした
ユーザアイテムを右クリメニューに追加できるようにした
ドラッグ移動させたらキャレット位置がおかしくなるのを修正
MAA窓と頁一覧で、選択したらフォーカスを編集窓に戻す機能
ドラフトボード・サムネイルの窓を移動出来るようにした
ツールチップがチラつくのをなんとか出来た気がする
副タブの名称変更を出来るようにした(Viewer込み)
ファイルオーポンを高速化出来た気がする
空白の表示/非表示状態を覚えておくようにした。
レイヤボックス貼付に白ヌキ機能追加
中クリックで、MAAの副タブや編集ファイルを閉じれるようにした(Viewer込み)
行数ルーラーを付けた
バイト数オーバー警告を設定できるようにした
ユニコード表に、使用履歴をつけた
MAA窓の背景色変更出来るようにした
プレビューを再描画しても、そのとき開いていた位置と状態を維持できる、はず
選択範囲をAST頁名称にする機能追加
2013/05/31 0.32 MAAのツリー側のAA頁を削除出来るようにした
新規保存時の拡張子を、MLTかASTを適用するようにした
ドラフトボード・サムネイルのサイズを4段階で変えれるようにした
MAA窓に、開いてる頁内の文字列検索を付けた・
ASTに追加するとセパレータがおかしくなるのを修正
頁切り替えた時、最後の頁のところまで頁一覧をスクロール
任意の場所から右の部分を、左右にずらす機能
MAAテンプレにアイテム追加したら全アイテムに改行が増えるのを修正
二つ目を起動したとき、引数に渡されてたら、既存のやつでそれを開くようにした
多重起動を選択できるようにしたが・検証が必要
保存したときのバルーンメッセージの表示のON/OFF出来るようにした
MAA窓の副タブを、多段表示と壱行表示を切り替えられるようにした
メイン窓サイズ変えたときに、スプリットバーが追随するようになったかな
未ロードの頁を統合したら、内容が消えるのを修正
2014/04/01 0.33 今日のヒント機能を追加
本文の単語検索機能を実装。多分イケてる。
したらば仕様変更による文字化けする機種依存文字を、ユニコード数値参照としてコピー出来るようにしてみた(場当たり的対応)
2015/01/23 0.34 枠編集で、幅0になるような指定がされるとアプリ毎ブッ飛ぶのを修正。ただし枠構造はおかしくなる。
ASTでもMLTでもなく、100行以上あるファイル(多分ベタテキスト)について、分割して取り込む機能を追加
(分割条件)40行以降で4行以上の空きがあるか、100行以降で1行以上の空きがあるか、256行以上続いている
MLT2HTMLを使ったHTMLエクスポート機能を追加
したらば仕様変更による文字化け文字の拡大に対応。多分いける気がする。
2015/01/26 0341 分割読込したらぶっとぶ場合があるのを修正
機種依存文字のバイトカウントを反映するのは、アプリ再起動が必要
更新日時注意
*/
/*
IME名称ゲット
HKL hKl;
TCHAR atImeName[MAX_STRING];
hKl = GetKeyboardLayout( 0 );
ImmGetDescription( hKl, atImeName, MAX_STRING );
*/
//-------------------------------------------------------------------------------------------------
#include "stdafx.h"
#include "OrinrinEditor.h"
//-------------------------------------------------------------------------------------------------
static CONST TCHAR gcatLicense[] = {
TEXT("このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行されたGNU一般公衆利用許諾書(バージョン3か、それ以降のバージョンのうちどれか)が定める条件の下で再頒布または改変することができます。\r\n\r\n")
TEXT("このプログラムは有用であることを願って頒布されますが、*全くの無保証*です。商業可能性の保証や特定目的への適合性は、言外に示されたものも含め、全く存在しません。\r\n\r\n")
TEXT("詳しくはGNU一般公衆利用許諾書をご覧ください。\r\n\r\n")
TEXT("あなたはこのプログラムと共に、GNU一般公衆利用許諾書のコピーを一部受け取っているはずです。\r\n\r\n")
TEXT("もし受け取っていなければ、<http://www.gnu.org/licenses/> をご覧ください。\r\n\r\n")
};
//-------------------------------------------------------------------------------------------------
// 表示用フォントベーステーブル・これをコピーして使う
static LOGFONT gstBaseFont = {
FONTSZ_NORMAL, // フォントの高さ
0, // 平均幅
0, // 文字送りの方向とX軸との角度
0, // ベースラインとX軸との角度
FW_NORMAL, // 文字の太さ(0~1000まで・400=nomal)
FALSE, // イタリック体
FALSE, // アンダーライン
FALSE, // 打ち消し線
DEFAULT_CHARSET, // 文字セット
OUT_OUTLINE_PRECIS, // 出力精度
CLIP_DEFAULT_PRECIS, // クリッピング精度
PROOF_QUALITY, // 出力品質
VARIABLE_PITCH, // 固定幅か可変幅
TEXT("MS Pゴシック") // フォント名
};
//-------------------------------------------------------------------------------------------------
// グローバル変数:
static HINSTANCE ghInst; //!< 現在のインターフェイス
static TCHAR gszTitle[MAX_STRING]; //!< タイトルバーのテキスト
static TCHAR gszWindowClass[MAX_STRING]; //!< メインウィンドウクラス名
static HMENU ghMenu; //!< メニュー
static HACCEL ghAccelTable; //!< キーボードアクセラレータハンドル
static HWND ghFileTabWnd; //!< 複数ファイルタブ
static HWND ghFileTabTip; //!< 複数ファイルタブツールチップ
static WNDPROC gpfOriginFileTabProc; //!< 複数ファイルタブの元プロシージャ
static HWND ghMainWnd; //!< メインウインドウハンドル
static HWND ghStsBarWnd; //!< ステータスバー
static HBRUSH ghStsRedBrush; //!< ステータスバー用紅ブラシ
static HANDLE ghMutex; //!< 多重起動防止用Mutex
static INT giResizeWide; //!< ウインドウサイズ変更したとき、変更前との差分・使ってない
#ifdef WORK_LOG_OUT
static HANDLE ghLogFlie; //!< ログ出力
#endif
EXTERNED HFONT ghNameFont; //!< ファイルタブ用フォント
EXTERNED HWND ghMaaWnd; //!< 複数行AAテンプレ
EXTERNED HWND ghPgVwWnd; //!< ページリスト
EXTERNED HWND ghLnTmplWnd; //!< 壱行テンプレ
EXTERNED HWND ghBrTmplWnd; //!< ブラシテンプレ
EXTERNED BOOLEAN gbDockTmplView; //!< くっついてるテンプレは見えているか
EXTERNED HWND ghMainSplitWnd; //!< メインのスプリットバーハンドル
EXTERNED LONG grdSplitPos; //!< スプリットバーの、左側の、画面右からのオフセット
EXTERNED UINT gbUniPad; //!< パディングにユニコードをつかって、ドットを見せないようにする
EXTERNED UINT gbUniRadixHex; //!< ユニコード数値参照が16進数であるか
static UINT gdBUInterval; //!< バックアップ感覚・デフォ3分くらい?
EXTERNED UINT gbAutoBUmsg; //!< 自動バックアップメッセージ出すか?
EXTERNED UINT gbCrLfCode; //!< 改行コード:0したらば・非0YY
EXTERNED UINT gbSaveMsgOn; //!< 保存メッセージ出すか?
EXTERNED UINT gdPageByteMax; //!< 壱レスの最大バイト数
static TCHAR gatExePath[MAX_PATH]; //!< 実行ファイルの位置
static TCHAR gatIniPath[MAX_PATH]; //!< INIファイルの位置
EXTERNED INT gbTmpltDock; //!< テンプレのドッキング
static list<OPENHIST> gltOpenHist; //!< ファイル開いた履歴・
EXTERNED HMENU ghHistyMenu; //!< 履歴表示する部分・動的に内容作成せないかん
static BOOLEAN gbDummy; //
#ifdef BIG_TEXT_SEPARATE
static BOOLEAN gbSeparateMod; //!< 分割読込したタブに変更マーク必要
#endif
#ifdef FIND_STRINGS
extern HWND ghFindDlg; // 検索ダイヤログのハンドル
#endif
extern HWND ghMoziWnd; // 文字AA変換ダイヤログのハンドル
extern HWND ghMaaFindDlg; // MAA検索ダイヤログハンドル
extern UINT gdClickDrt; // ドラフトボードクルックスタイル
extern UINT gdSubClickDrt; //
extern HWND ghViewWnd; // ビュー
extern UINT gdGridXpos; // グリッド線のX間隔
extern UINT gdGridYpos; // グリッド線のY間隔
extern UINT gdRightRuler; // 右線の位置ドット
extern UINT gdUnderRuler; // 下線の位置行数
#ifdef SPMOZI_ENCODE
extern UINT gbSpMoziEnc; //!< 機種依存文字を数値参照コピーする
#endif
//-------------------------------------------------------------------------------------------------
#ifdef PLUGIN_ENABLE
//[_16in] Add - 2012/05/01
//-- プラグイン関係
plugin::PLUGIN_FILE_LIST gPluginList;
#include "Plugin/PluginCtrlAsync.h"
#endif
// ステータスバーの区切り
#define SB_ITEMS 8
CONST INT gadStsBarSize[] = { 50, 200, 350, 500, 700, 800, 900, -1 };
//-------------------------------------------------------------------------------------------------
VOID Cls_OnActivate( HWND, UINT, HWND, BOOL ); //!<
BOOLEAN Cls_OnCreate( HWND, LPCREATESTRUCT ); //!< 本体の WM_CREATE の処理・固定Editとかつくる
VOID Cls_OnCommand( HWND , INT, HWND, UINT ); //!< 本体の WM_COMMAND の処理
VOID Cls_OnPaint( HWND ); //!< 本体の WM_PAINT の処理・枠線描画とか
VOID Cls_OnSize( HWND , UINT, INT, INT ); //!<
VOID Cls_OnMove( HWND, INT, INT ); //!<
VOID Cls_OnDestroy( HWND ); //!< 本体の WM_DESTROY の処理・BRUSHとかのオブジェクトの破壊を忘れないように
LRESULT Cls_OnNotify( HWND , INT, LPNMHDR ); //!<
VOID Cls_OnTimer( HWND, UINT ); //!<
VOID Cls_OnDropFiles( HWND , HDROP ); //!<
VOID Cls_OnContextMenu(HWND,HWND,UINT,UINT ); //!<
VOID Cls_OnHotKey(HWND, INT, UINT, UINT ); //!<
VOID Cls_OnDrawItem( HWND, CONST DRAWITEMSTRUCT * ); //!<
BOOL Cls_OnWindowPosChanging( HWND, LPWINDOWPOS ); //!<
#ifdef MULTIACT_RELAY
void Cls_OnCopyData( HWND, HWND, PCOPYDATASTRUCT ); //!<
#endif
INT_PTR CALLBACK OptionDlgProc( HWND, UINT, WPARAM, LPARAM ); //!<
LRESULT CALLBACK gpfFileTabProc( HWND, UINT, WPARAM, LPARAM ); //!< 複数ファイルタブのサブクラスプロシージャ
VOID Ftb_OnMButtonUp( HWND, INT, INT, UINT ); //!<
HRESULT ViewingFontNameLoad( VOID ); //!<
#ifdef USE_NOTIFYICON
VOID TaskTrayIconEvent( HWND, UINT, UINT ); //!<
#endif
//-------------------------------------------------------------------------------------------------
/*!
アプリケーションのエントリポイント
@param[in] hInstance このモジュールのインスタンスハンドル
@param[in] hPrevInstance 前のインスタンス。今は未使用
@param[in] lpCmdLine コマンドライン。トークン分解はされてない、ただの文字列
@param[in] nCmdShow 起動時の表示状態が入ってる。表示とかそういうの
@retval FALSE 途中終了
*/
INT APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
INT msRslt;
MSG msg;
INT iArgc;
TCHAR atArgv[MAX_PATH];
LPTSTR *pptArgs;
INT iCode, dMultiEna;
LPACCEL pstAccel;
INT iEntry;
#ifdef WORK_LOG_OUT
SYSTEMTIME stTime;
#endif
#ifdef MULTIACT_RELAY
HWND hWndActed; // 起動済のやつのハンドル確保
COPYDATASTRUCT stCopyData;
#endif
#ifdef _DEBUG
//_CRTDBG_ALLOC_MEM_DF; // 指定が必要なフラグ
//_CRTDBG_CHECK_ALWAYS_DF; // メモリをチェック _CRTDBG_CHECK_EVERY_128_DF
//_CRTDBG_LEAK_CHECK_DF; // 終了時にメモリリークをチェック
//_CRTDBG_DELAY_FREE_MEM_DF; //
// ここで使用するフラグを指定
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF );
//_CrtSetBreakAlloc( 1979 );
// 数値はメモリ割当番号。リークしてたら、その表示のところに
// 書いてあるから、この関数で数値を宣言してもう一回実行すると、
// リークする確保をしてるところで止まる
// 結構奥の方だから注意
#endif
INITCOMMONCONTROLSEX iccex;
iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
iccex.dwICC = ICC_WIN95_CLASSES | ICC_USEREX_CLASSES | ICC_COOL_CLASSES;
InitCommonControlsEx( &iccex );
// グローバル文字列を初期化しています。
LoadString(hInstance, IDS_APP_TITLE, gszTitle, MAX_STRING);
LoadString(hInstance, IDC_ORINRINEDITOR, gszWindowClass, MAX_STRING);
// コマンドライン引数を確認・0は実行ファイル名、1以降に引数入ってる
ZeroMemory( atArgv, sizeof(atArgv) );
pptArgs = CommandLineToArgvW( GetCommandLine( ), &iArgc );
// 最初の一つ目だけ有効
if( 2 <= iArgc ){ StringCchCopy( atArgv, MAX_PATH, pptArgs[1] ); }
LocalFree( pptArgs );
ghMutex = NULL;
// 実行ファイル位置確認
GetModuleFileName( hInstance, gatExePath, MAX_PATH );
PathRemoveFileSpec( gatExePath );
// 設定ファイル位置確認
StringCchCopy( gatIniPath, MAX_PATH, gatExePath );
PathAppend( gatIniPath, INI_FILE );
#ifdef MULTIACT_RELAY
dMultiEna = InitParamValue( INIT_LOAD, VL_MULTI_ACT_E, 0 );
if( !(dMultiEna) ) // 多重起動有効ならミューテックスチェック不要
{
#endif
// フルアクセス
SECURITY_DESCRIPTOR stSeqDes;
SECURITY_ATTRIBUTES secAttribute;
InitializeSecurityDescriptor( &stSeqDes, SECURITY_DESCRIPTOR_REVISION );
SetSecurityDescriptorDacl( &stSeqDes, TRUE, 0, FALSE );
secAttribute.nLength = sizeof( secAttribute );
secAttribute.lpSecurityDescriptor = &stSeqDes;
secAttribute.bInheritHandle = TRUE;
// 多重起動防止
ghMutex = CreateMutex( &secAttribute, TRUE, TEXT("OrinrinEditor") ); // すでに起動しているか判定
if( !(ghMutex) )
{
// オープン失敗、とりあえず起動
}
else if( GetLastError() == ERROR_ALREADY_EXISTS ) // すでに起動している
{
#ifdef MULTIACT_RELAY
hWndActed = FindWindow( gszWindowClass, NULL );
SetForegroundWindow( hWndActed ); // 先に起動のやつをフォアグラウンドにする
// コマンド引数(ファイル名)あったら、ファイル名を送る
if( 0 != atArgv[0] )
{
stCopyData.dwData = 1;
stCopyData.cbData = sizeof(atArgv);
stCopyData.lpData = atArgv;
SendMessage( hWndActed, WM_COPYDATA, NULL, (LPARAM)(&stCopyData) );
}
#else
MessageBox( NULL, TEXT("已にアプリは起動してるよ!"), TEXT("お燐からのお知らせ"), MB_OK|MB_ICONINFORMATION );
#endif
ReleaseMutex( ghMutex );
CloseHandle( ghMutex );
return 0;
}
#ifdef MULTIACT_RELAY
}
#endif
InitWndwClass( hInstance );
DocBackupDirectoryInit( gatExePath );
FrameInitialise( gatExePath, hInstance );
MoziInitialise( gatExePath, hInstance );
AacBackupDirectoryInit( gatExePath );
gbUniPad = 0;
gbDockTmplView = TRUE;
gbDummy = 0;
#ifdef BIG_TEXT_SEPARATE
gbSeparateMod = FALSE; // 分割読込したタブに変更マーク必要
#endif
#ifdef WORK_LOG_OUT
iCode = InitParamValue( INIT_LOAD, VL_WORKLOG, 0 );
if( iCode )
{
ghLogFlie = CreateFile( TEXT("LogFile.txt"), GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if( INVALID_HANDLE_VALUE != ghLogFlie )
{
SetFilePointer( ghLogFlie, 0, NULL, FILE_END );
GetLocalTime( &stTime );
TRACE( TEXT("LOG START [%u/%02u/%02u %02u:%02u:%02u]"), stTime.wYear, stTime.wMonth, stTime.wDay, stTime.wHour, stTime.wMinute, stTime.wSecond );
}
}
else
{
ghLogFlie = INVALID_HANDLE_VALUE;
}
#endif
iCode = InitParamValue( INIT_LOAD, VL_CLASHCOVER, 0 );
if( iCode )
{
TRACE( TEXT("異常終了の可能性アリ") );
iCode = MessageBox( NULL, TEXT("エディタが正しく終了出来なかった気配があるよ。\r\nバックアップが残っているかもしれないから、先に確認してみて!\r\nこのまま起動してもいいかい? 「いいえ」を選ぶと、ここで終了するよ。"), TEXT("ごめんね"), MB_YESNO|MB_ICONWARNING|MB_DEFBUTTON2 );
if( IDNO == iCode ){ return 0; }
}
InitParamValue( INIT_SAVE, VL_CLASHCOVER, 1 );
ViewingFontNameLoad( ); // フォント名確保
// アプリケーションの初期化を実行します:
if( !InitInstance( hInstance, nCmdShow , atArgv ) ){ return FALSE; }
CntxEditInitialise( gatExePath, hInstance ); // 初期化の後でないといかん
VertInitialise( gatExePath, hInstance );
RegisterHotKey( ghMainWnd, IDHK_THREAD_DROP, MOD_CONTROL | MOD_SHIFT, VK_D );
// 読み込むテーブルに注意
pstAccel = AccelKeyTableLoadAlloc( &iEntry );
AccelKeyTableCreate( pstAccel, iEntry );
ToolBarInfoChange( pstAccel, iEntry ); // ツールバーのツールチップテキストにもキーを表示せる
FREE( pstAccel );
#ifdef TODAY_HINT_STYLE
TodayHintPopup( ghMainWnd, ghInst, gatExePath );
#endif
#ifdef PLUGIN_ENABLE
//---------------------------------------
//[_16in] Add - 2012/04/30
// プラグイン初期化処理
// プラグインへ渡すパラメータの設定
// ウィンドウハンドル
plugin::PluginInputParam param;
param.hMainWnd = ghMainWnd;
param.hMlutAAWnd = ghMaaWnd;
param.hFileTabWnd = ghFileTabWnd;
param.hViewWnd = ghViewWnd;
// メニューハンドル
param.hMainMenu = ghMenu;
// プラグインの初期化
plugin::InitializePlugin( param );
plugin::InitializePluginFileListAsync( ghMainWnd );
//---------------------------------------
#endif
// メインメッセージループ
for(;;)
{
msRslt = GetMessage( &msg, NULL, 0, 0 );
if( 1 != msRslt ) break;
#ifdef FIND_STRINGS // 文字列検索ダイヤログ
if( ghFindDlg )
{ //トップに来てるかどうか判断する
if( ghFindDlg == GetForegroundWindow( ) )
{
if( TranslateAccelerator( ghFindDlg, ghAccelTable, &msg ) ) continue;
if( IsDialogMessage( ghFindDlg, &msg ) ) continue;
}
}
#endif
// MAA検索ダイヤログ
if( ghMaaFindDlg )
{ //トップに来てるかどうか判断する
if( ghMaaFindDlg == GetForegroundWindow( ) )
{
if( TranslateAccelerator( ghMaaFindDlg, ghAccelTable, &msg ) ) continue;
if( IsDialogMessage( ghMaaFindDlg, &msg ) ) continue;
}
}
if( !TranslateAccelerator( msg.hwnd, ghAccelTable, &msg ) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
#ifdef PLUGIN_ENABLE
//---------------------------------------------------------------------
//[_16in] Add - 2012/05/01
//
//-- プラグインの廃棄処理
plugin::FinalizePluginList( gPluginList );
plugin::FinalizePlugin();
//---------------------------------------------------------------------
#endif
InitParamValue( INIT_SAVE, VL_CLASHCOVER, 0 );
UnregisterHotKey( ghMainWnd, IDHK_THREAD_DROP );
if( ghMutex )
{
ReleaseMutex( ghMutex );
CloseHandle( ghMutex );
}