forked from tsupo/Chirrup
-
Notifications
You must be signed in to change notification settings - Fork 1
/
chirrupDlg.cpp
6559 lines (5830 loc) · 208 KB
/
chirrupDlg.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
/*
* chirrupDlg.cpp : Twitter クライアント chirrup
* メインダイアログ インプリメンテーション ファイル
* written by H.Tsujimura 4 Apr 2007
*
* Copyright (c) 2007, 2008, 2009 by H.Tsujimura (tsupo@na.rim.or.jp)
* All Rights Reserved.
*
* $Log: /comm/chirrup/chirrupDlg.cpp $
*
* 3 09/06/18 1:33 tsupo
* 2.01版
*
* 211 09/06/16 0:50 Tsujimura543
* key 読み出しタイミング修正 (アカウント情報未設定状態での起動時、
* OAuth 認証を選択しても、アクセストークンを取りにいかない不具合
* に対処)
*
* 2 09/05/31 20:42 tsupo
* 1.142版
*
* 210 09/05/29 19:22 Tsujimura543
* 同一アカウントで複数 tumbleblog を開設している場合の投稿先
* tumbleblog を指定しての投稿を可能にした
*
* 209 09/05/27 18:21 Tsujimura543
* setSigInfo() の引数を追加
*
* 1 09/05/14 3:50 tsupo
* (1) ビルド環境のディレクトリ構造を整理
* (2) VSSサーバ拠点を変更
*
* 208 09/05/12 17:16 Tsujimura543
* 「スレッド起動時刻」を各タイムライン取得処理を呼び出すタイミングで
* 上書きするように変更 (サービスごと → タイムラインごと に変更)
*
* 207 09/05/07 13:42 Tsujimura543
* タイムアウト発生時処理が発動する条件の元となるスレッド起動時刻を
* 各サービスの取得処理起動ごとに上書きするようにした
* (他のサービスで発生したタイムアウトで別のサービスが強制終了してしまう
* のを防止するため)
*
* 206 09/04/28 20:52 Tsujimura543
* タイムアウト取得処理が規定時間内に終わらない場合の処理を変更
* (スレッド強制終了方式ではなく、イベント通知方式を採用)
*
* 205 09/04/28 18:24 Tsujimura543
* メモリリーク調査用のコードを追加 (デバッグビルド版のみ有効)
*
* 204 09/04/22 21:11 Tsujimura543
* 「設定」ダイアログからもFlickr認証のアクセストークン(frob)を取得できる
* ようにした
*
* 203 09/04/16 17:14 Tsujimura543
* 「設定」ダイアログ起動中かどうかを示すフラグの操作を排他制御の下で
* 実行するようにした
*
* 202 09/04/16 17:09 Tsujimura543
* 「設定」ダイアログ起動中は、タイマ割り込み発生による「更新」処理
* (タイムラインの取得)を実行しないようにした
*
* 201 09/04/16 16:11 Tsujimura543
* 新規インストール時に OAuth 認証設定したあと、スクリーン名の取得に失敗
* する等、OAuth 対応時に作りこんでしまったバグを修正
*
* 200 09/04/15 1:17 Tsujimura543
* Jaiuku の OAuth 対応準備
*
* 199 09/03/31 23:29 Tsujimura543
* Twitter の OAuth 対応準備 その7
*
* 198 09/03/31 21:27 Tsujimura543
* Twitter の OAuth 対応準備 その5
*
* 197 09/03/30 22:36 Tsujimura543
* Twitter の OAuth 対応準備 その2
*
* 196 09/03/30 22:20 Tsujimura543
* Flickr のユーザ名、アクセストークンを設定ファイルに保存するようにした
*
* 195 09/03/27 17:28 Tsujimura543
* Twitter の OAuth 対応準備
*
* 194 09/03/25 12:22 Tsujimura543
* 発言投稿後、発言の「キャンセル」ボタンが「発言」ボタンに戻らない不具合
* を修正
*
* 193 09/03/20 15:54 Tsujimura543
* 「発言」投稿処理のキャンセル機能を追加
*
* 192 09/03/12 19:28 Tsujimura543
* 「タイムライン取得スレッドで無限ループ発生時対策」発動時の表示を再調整
*
* 191 09/03/10 17:06 Tsujimura543
* 2つの ExecuteUpdate() でのタスクトレイアイコンの表示変更タイミング
* を統一した
*
* 190 09/03/10 15:57 Tsujimura543
* 「タイムライン取得スレッドで無限ループ発生時対策」を再調整
*
* 189 09/03/09 21:58 Tsujimura543
* 「タイムライン取得スレッドで無限ループ発生時対策」を修正
*
* 188 09/03/09 21:41 Tsujimura543
* タイムライン取得スレッド監視処理に「タイムライン取得スレッドで
* 無限ループ発生時対策」を入れてみた
*
* 187 08/12/22 22:56 Tsujimura543
* 「いめったー」対応、動作確認終了
*
* 186 08/12/22 22:55 Tsujimura543
* Twitter のアカウントがある場合は、「いめったー」にスクリーン名を送
* るようにした(パスワードは送らない)。この結果、imefav にも参加可能と
* なった
*
* 185 08/12/22 20:54 Tsujimura543
* 「いめったー」対応
*
* 184 08/12/18 11:11 Tsujimura543
* CChirrupDlg::CheckKeys() を修正 (ret の値の設定方法を修正)
*
* 183 08/12/04 18:19 Tsujimura543
* コード整理、安定化作業を実施
*
* 182 08/11/26 22:50 Tsujimura543
* __TEST__ が define されているときは、API 経由での画像アップロードを
* 試みるようにした
*
* 181 08/10/21 23:59 Tsujimura543
* 1.109版
*
* 180 08/10/21 23:50 Tsujimura543
* 右クリックメニューに、「サポート」、「コミュニティ」、「バージョン情
* 報」を追加
*
* 179 08/08/22 18:42 Tsujimura543
* 「はてなハイク」対応
*
* 178 08/08/11 18:11 Tsujimura543
* _ExecuteUploadImage() を修正(Wassr への同時投稿を「一時的にオフ」に
* しても同時投稿してしまう不具合の修正)
*
* 177 08/08/02 3:41 Tsujimura543
* Wassr の参加中のチャンネル一覧表示機能を追加
*
* 176 08/08/01 2:40 Tsujimura543
* (1) Wassr への画像の投稿に対応
* (2) 「チャンネル」対応準備
*
* 175 08/07/16 19:30 Tsujimura543
* タイムライン取得中とそれ以外のときとで、タスクトレイのアイコンを
* 変えてみるようにした
*
* 174 08/07/16 19:00 Tsujimura543
* タスクトレイ用のアイコンを新たに用意した(背景を透過にしただけのアイコン)
*
* 173 08/07/16 18:30 Tsujimura543
* 「メニューが消えずに残ったままになることがある現象への対策」を実施
* (タスクトレイアイコンの右クリック時に表示するメニューで発生している現象)
*
* 172 08/07/16 15:27 Tsujimura543
* Timelog の「評価」に対応した
*
* 171 08/07/16 13:49 Tsujimura543
* m_stNotifyIcon.szTip[] に文字列を格納する際のバッファーオーバーラン
* 予防策を追加
*
* 170 08/07/16 4:13 Tsujimura543
* 「同時投稿対象」の設定を「設定」ダイアログでも設定できるようにした
*
* 169 08/07/16 2:16 Tsujimura543
* タスクトレイアイコンの右クリックメニュー項目を追加 (キャンセルと終了)
*
* 168 08/07/16 1:20 Tsujimura543
* タスクトレイ常駐機能を実装
*
* 167 08/07/14 14:59 Tsujimura543
* Twitter の「API制限情報取得API」を呼ぶ回数、タイミングを調整し直した
*
* 166 08/07/08 17:46 Tsujimura543
* Wassr の friend の add と remove にも対応した
*
* 165 08/07/08 14:51 Tsujimura543
* Wassr の「イイネ!」に対応
*
* 164 08/06/30 18:50 Tsujimura543
* Twitter の「API制限状況」を表示するようにしてみた
*
* 163 08/03/26 22:15 Tsujimura543
* Firefox からの画像ドラッグ対応 (いったんイベントハンドラから抜ける)
*
* 162 08/02/27 20:16 Tsujimura543
* 「ついったー部SNS支局」のアイコンを追加
*
* 161 08/02/08 23:17 Tsujimura543
* (1) Wassr のユーザアイコンダブルクリック時の挙動を変更
* (2) Wassr のユーザアイコンにマウスをもっていったときのtooltip表示内容
* を変更
* -- (1), (2) ともに、スクリーン名ではなく、ユーザ名を使うようにした
*
* 160 08/02/05 23:23 Tsujimura543
* コードを整理
*
* 159 08/01/31 20:27 Tsujimura543
* ExtraContextMenu() を修正 (修正ミスを発見、再修正)
*
* 158 08/01/31 18:50 Tsujimura543
* ユーザアイコン(プロフィールアイコン)の更新機能を on/off できるように
* してみた
*
* 157 08/01/28 18:40 Tsujimura543
* ウィンドウサイズを保存、復元できるようにしてみた
*
* 156 08/01/28 14:52 Tsujimura543
* ついったん、たんぶらんからの警告ダイアログのボタンを Yes/No の二択
* から OK ボタン1個のみに変更した
*
* 155 08/01/24 15:29 Tsujimura543
* Gyazo, Flickr, はてなフォトライフの各アイコンを追加
*
* 154 08/01/24 14:55 Tsujimura543
* CUploadImageDialog の画像同時投稿対象先指定機能に対応
*
* 153 08/01/24 13:22 Tsujimura543
* 文言修正: 同時登録対象から外す → 同時投稿対象から外す
*
* 152 08/01/23 17:40 Tsujimura543
* はてなフォトライフ対応
*
* 151 08/01/19 2:10 Tsujimura543
* SaveSetting() を修正
*
* 150 08/01/19 0:33 Tsujimura543
* はてなフォトライフ対応準備
*
* 149 08/01/17 19:05 Tsujimura543
* ソースコードを整理
*
* 148 08/01/17 19:01 Tsujimura543
* (1) メインダイアログを従来よりもさらに(縦方向に)小さくできるようにして
* みた
* (2) 右クリックメニューに「スクリーンキャプチャ」を追加した
*
* 147 08/01/09 22:27 Tsujimura543
* Flickr 対応作業、とりあえず終了 (動作確認完了)
*
* 146 08/01/09 19:23 Tsujimura543
* Flickr 対応
*
* 145 08/01/09 17:10 Tsujimura543
* Flickr 対応準備 その2
*
* 144 08/01/08 21:07 Tsujimura543
* flickr 対応準備
*
* 143 07/12/25 18:37 Tsujimura543
* _ExecuteUploadImage() を修正し、BMP形式以外のファイルのアップロード時に
* 一時的に作成されるBMPファイルの削除処理を追加
*
* 142 07/12/20 16:36 Tsujimura543
* 初期設定ファイルがまだ存在しない状態で起動したときにproxy設定処理が2回
* 動いてしまう不具合を修正
*
* 141 07/12/19 22:08 Tsujimura543
* tumblr と Gyazo へ同時にファイルをアップロードした場合、tumblr のログ
* の方にも Gyazo の方の URL が記録されてしまう不具合を修正
*
* 140 07/12/19 18:44 Tsujimura543
* http 関連関数呼び出しまわりを整理
*
* 139 07/12/19 16:34 Tsujimura543
* Tumblr と Gyazo にアップロードしたファイルの URL を記録する機能を
* 追加
*
* 138 07/12/19 16:12 Tsujimura543
* Tumblr と Gyazo にアップロードしたファイルの URL を記録する機能を
* 追加するためのプロパティを追加
*
* 137 07/12/17 19:52 Tsujimura543
* capture 関連の変数、関数を CCapture クラスとしてまとめたことに伴う
* 修正を実施
*
* 136 07/12/17 19:04 Tsujimura543
* Gyazo へのアップロード時、BMP だけでなく、GIF や JPG についても PNG
* に変換してからアップロードするようにした
*
* 135 07/12/15 6:29 Tsujimura543
* SwitchCapture() を追加
*
* 134 07/12/15 5:29 Tsujimura543
* キャプチャ機能使用後の一時ファイル削除処理を追加
*
* 133 07/12/15 5:13 Tsujimura543
* キャプチャー機能実装完了 (まだ、多少の修正を行なう可能性あり)
*
* 132 07/12/15 2:54 Tsujimura543
* キャプチャー機能、試験実装 (まだ、試行錯誤中)
*
* 131 07/12/14 15:57 Tsujimura543
* 画像投稿処理まわりを修正。いったんfix
*
* 130 07/12/13 23:01 Tsujimura543
* 「課題」を追記
*
* 129 07/12/13 22:26 Tsujimura543
* 画像のアップロード処理周りを変更(はてなFotolife対応準備、bmpファイル対
* 応)
*
* 128 07/12/13 20:42 Tsujimura543
* GetImageSize() をリファクタリング
*
* 127 07/12/13 20:28 Tsujimura543
* GetImageSize() を bmp にも対応させた
*
* 126 07/12/13 18:41 Tsujimura543
* proxy関連の関数群を proxy.cpp として分離独立させた
*
* 125 07/12/13 18:04 Tsujimura543
* [暫定] WM_HOTKEY を利用してホットキー(ショートカットキー)を組み込
* んでみるテスト
* → 子ウィンドウにも引き継がれてしまうため、このままでは使えない
*
* 124 07/12/10 23:05 Tsujimura543
* 画像投稿後の m_monologue に文字列を設定する処理を修正
*
* 123 07/12/10 22:41 Tsujimura543
* 画像投稿関連処理のスレッド構成変更に伴う修正を実施
*
* 122 07/12/10 18:10 Tsujimura543
* tumblr への投稿関連処理も fix
*
* 121 07/12/10 16:39 Tsujimura543
* Gyazo への投稿処理関連を fix
*
* 120 07/12/06 19:51 Tsujimura543
* Gyazo にも画像をアップロードできるようにしてみた (暫定版)
*
* 119 07/12/06 4:08 Tsujimura543
* tumblr への画像ファイルアップロード処理を別スレッド化した
*
* 118 07/12/06 1:59 Tsujimura543
* tumblr への画像の投稿に対応
*
* 117 07/11/26 21:44 Tsujimura543
* 「ふぁぼったー」と tumblr のアイコンを追加
*
* 116 07/11/26 20:23 Tsujimura543
* proxy設定関連、異常系強化
*
* 115 07/11/26 18:04 Tsujimura543
* proxy設定関連移行作業、完了
*
* 114 07/11/26 18:03 Tsujimura543
* OnSettingProxy() → DoSettingProxy() に移行
*
* 113 07/11/26 17:57 Tsujimura543
* CProxyInfoDialog を廃止し、CSettingProxy に移行
*
* 112 07/11/07 3:39 Tsujimura543
* 見ている発言を 引用して Tumblr へ投稿する機能を作成
*
* 111 07/09/27 21:47 Tsujimura543
* OnSize() を修正。「他のサービスに同時投稿する」の表示を消す/復活させる
* 処理が抜けていた
*
* 110 07/09/27 19:49 Tsujimura543
* ShowFavorites() を追加
*
* 109 07/09/27 18:35 Tsujimura543
* 「もごすた」に対応した
*
* 108 07/09/26 20:05 Tsujimura543
* ダイレクトメッセージ表示ダイアログおよびプロフィール表示ダイアログ
* 表示中もメインダイアログのステータスバーを更新するようにした
* (ステータスバーをいじろうとしてnullポインタ参照で落ちるバグを回避)
*
* 107 07/09/14 19:13 Tsujimura543
* リンク部分をマウスオーバーしたときに、URL をステータスバーに表示する
* ようにした
*
* 106 07/09/14 17:52 Tsujimura543
* ステータスバーにメッセージを表示できるようにした
*
* 105 07/09/12 21:38 Tsujimura543
* SetAddrOnMonologue() を導入、リファクタリングを実施
*
* 104 07/09/07 16:23 Tsujimura543
* PostMessageToFriend() を修正。Timelog に対応しきれていなかったところ
* を直した
*
* 103 07/08/28 17:59 Tsujimura543
* SetStaticEdge() を修正
*
* 102 07/08/28 17:08 Tsujimura543
* (1) 同時登録対象になっているかどうかを視覚的に区別できるように、くぼみ
* 状態にする/しないエフェクトを施すようにしてみた
* (2) OnContextMenu() を整理、新しいメソッドを作って処理を分けた
* (3) ReduceExtra() で Timelog 関連の処理がごっそり抜けていたので追加
*
* 101 07/08/28 1:56 Tsujimura543
* 同時投稿対象にするサービスを選択できるようにした
*
* 100 07/08/28 0:37 Tsujimura543
* (1) ReduceExtra() を導入
* (2) 少しだけソース整理
*
* 99 07/08/28 0:03 Tsujimura543
* 利用していないサービスに関しては、メモリを常時占有しないようにしてみた
* (ただし、起動時、設定変更時は一時的に占有が発生する)
*
* 98 07/08/27 22:22 Tsujimura543
* ユーザ名、パスワードを設定していないサービスに関して、呼ばなくても
* いい処理を呼んでしまっている箇所を修正
*
* 97 07/08/25 1:53 Tsujimura543
* 「ついすた」対応 (実際に☆をつける)
*
* 96 07/08/25 0:45 Tsujimura543
* 「ついすた」に対応 (表示)
*
* 95 07/08/25 0:16 Tsujimura543
* 「ついすた」に対応 (設定関係)
*
* 94 07/08/17 18:04 Tsujimura543
* Twitter への「発言」投稿時の最大文字数を 160 バイトから 160文字 に
* 変更
*
* 93 07/08/13 19:42 Tsujimura543
* コメントを整理
*
* 92 07/08/13 18:26 Tsujimura543
* DisplayProfImages() 内から呼び出すアイコン描画処理を別スレッド化で
* きるようにしてみた (USE_MULTITHREAD_FOR_LOADIMAGE 有効時、別スレッ
* ド化する)
*
* 91 07/08/13 13:05 Tsujimura543
* timeline 切り替え時に「Powered by サービス名」の表示を切り替えるのを
* 忘れていた。表示を切り替えるように修正。
*
* 90 07/08/13 12:06 Tsujimura543
* 「Powered by サービス名」の表示をするようにした
*
* 89 07/08/09 14:23 Tsujimura543
* 自分のスクリーン名をキャッシュするようにした
*
* 88 07/07/05 0:40 Tsujimura543
* ExecuteUpdate( CManager *p ) 経由で Twitter の Replies の取得処理
* が呼び出されない不具合に対処
*
* 87 07/07/03 18:35 Tsujimura543
* Haru.fm のアイコンを設置
*
* 86 07/07/03 14:53 Tsujimura543
* haru.fm 対応 (動作確認済み)
*
* 85 07/06/27 18:13 Tsujimura543
* haru.fm に対応
*
* 84 07/06/26 16:36 Tsujimura543
* OnShowWindow() 内でも SwitchTimelineFacilities() を呼ぶようにする
* (Twitter が閲覧対象外のときの表示がおかしくなる件の対処)
*
* 83 07/06/26 0:29 Tsujimura543
* CRichEditEx に m_timeline を追加し、Twitter の status リンクへ飛ぶ
* ための処理を簡略化した
*
* 82 07/06/25 21:13 Tsujimura543
* CRichEditEx に SetLink() を導入
*
* 81 07/06/23 0:40 Tsujimura543
* SwitchTimelineFacilities() を導入
*
* 80 07/06/22 23:12 Tsujimura543
* OnSettingAccount() 内に「砂時計カーソル表示」を追加
*
* 79 07/06/22 23:10 Tsujimura543
* (1) OnSelchangeComboTimelineType() を修正、UpdateSingle() を使うことで
* 余分なトラフィックの発生を避けた
* (2) OnSettingAccount() を修正、閲覧対象を変更したときの timeline の切り
* 替え処理の動きがおかしかったのを直した
*
* 78 07/06/22 19:38 Tsujimura543
* 「発言入力欄の最大入力可能バイト数」を調整
*
* 77 07/06/22 19:34 Tsujimura543
* 発言入力欄の最大入力可能バイト数をサービスごとに変えるように
* してみた
*
* 76 07/06/22 19:19 Tsujimura543
* 「発言」投稿成功時、当該サービスのみを対象に timeline を取得するよう
* にしてみた
*
* 75 07/06/21 22:11 Tsujimura543
* Timelog のダイレクトメッセージの送受信に対応 (動作確認済み)
*
* 74 07/06/21 14:43 Tsujimura543
* OnSetfocusMonologue() 相当の処理を RichEditEx.cpp に移動。
* OnSetfocusMonologue() は削除。
*
* 73 07/06/20 21:49 Tsujimura543
* ログ表示用のフォントをほんの少しだけ大きくしてみた
*
* 72 07/06/20 21:07 Tsujimura543
* ログ表示部分に背景色を設定してみた
*
* 71 07/06/20 19:28 Tsujimura543
* SwitchTitle() を修正
*
* 70 07/06/20 15:48 Tsujimura543
* InitTimelineInfo() を廃止
*
* 69 07/06/20 14:07 Tsujimura543
* Timelog 対応版
*
* 68 07/06/20 5:29 Tsujimura543
* 複数サービス同時投稿時の投稿順序を変更
*
* 67 07/06/20 5:19 Tsujimura543
* (1) Twitter に CTwitterManager を適用
* (2) ユーザアイコンの右クリックメニューに「関連Webページを表示」を追加
*
* 66 07/06/20 3:16 Tsujimura543
* 設定ファイルの読み書き処理を chirrupDlg から CManager と
* CJaikuManager に移した
*
* 65 07/06/20 1:56 Tsujimura543
* Jaiku に CJaikuManager を適用
*
* 64 07/06/20 0:31 Tsujimura543
* Wassr にも CManager を適用
*
* 63 07/06/19 23:12 Tsujimura543
* (1) CManager を導入し、とりあえず「もごもご」に適用し動作確認をしてみた
* (2) CService 導入に伴う修正を実施
*
* 62 07/06/18 18:54 Tsujimura543
* SwitchTitle() を修正、Twitter のアカウントが未設定の場合に Window
* タイトルが化けることがある不具合に対処
*
* 61 07/06/15 21:23 Tsujimura543
* 「もごもご」のコメント投稿に対応
*
* 60 07/06/15 19:41 Tsujimura543
* プロフィールダイアログ起動時に bitmap ハンドルを渡すのをやめた
*
* 59 07/06/15 0:07 Tsujimura543
* timeline の切り替え時、必要に応じて、「もごもご」のスクリーン名
* 取得処理を呼び出すようにした
*
* 58 07/06/14 21:12 Tsujimura543
* 「もごもご」に対応
*
* 57 07/06/14 17:55 Tsujimura543
* Wassr に対応
*
* 56 07/06/13 19:18 Tsujimura543
* Twitter の Replies の閲覧、ログ出力に対応
*
* 55 07/06/13 1:27 Tsujimura543
* (1) ダイアログに表示するバージョン番号情報をリソースファイルから
* 拾ってくるようにした
* (2) スクリーン名の表示を Twitter 固定から、Twitter/Jaiku切り替え
* 表示できるようにした
* (3) 設定ファイルがまだないときの起動時処理を整理、調整
*
* 54 07/06/13 0:12 Tsujimura543
* (1) TIMELINE_INFO 関連 fix
* (2) 初期設定ファイル読み書きを新しいログファイル管理仕様に対応させた
*
* 53 07/06/11 19:58 Tsujimura543
* Twitter と Jaiku への同時投稿をサポート
*
* 52 07/06/11 18:39 Tsujimura543
* Twitter の user_timeline の閲覧をサポート
*
* 51 07/06/07 14:12 Tsujimura543
* コメントを修正
*
* 50 07/06/07 14:11 Tsujimura543
* 設定ファイルやキャッシュファイルを置くディレクトリのデフォルト値を
* 「カレントディレクトリ」直下から「chirrup起動時点のカレントディレク
* トリ」直下に変更
*
* 49 07/06/07 1:50 Tsujimura543
* コードを整理
*
* 48 07/06/07 1:45 Tsujimura543
* (1) friends_timeline 以外のタイムラインもログに書き出せるようにした
* (2) 設定ダイアログをタブ選択形式のものに入れ替えた
*
* 47 07/06/06 23:20 Tsujimura543
* Jaiku の friends_timeline のログ書き出しにも対応
*
* 46 07/06/06 22:21 Tsujimura543
* ログファイルの書き出し機能サポートに伴う各種修正を実施
*
* 45 07/06/06 16:27 Tsujimura543
* 発言投稿処理も別スレッド化してみた
*
* 44 07/06/05 20:32 Tsujimura543
* Twitter/Jaiku の timeline の取得を完全に別スレッド化してみた
*
* 43 07/06/05 17:33 Tsujimura543
* Jaiku アイコンを追加
*
* 42 07/06/05 17:06 Tsujimura543
* RURL 機能廃止、ダイアログデザイン変更
*
* 41 07/06/05 14:44 Tsujimura543
* PostMonologue() 回りを改修、多少なりとも負荷を減らすようにしてみた
*
* 40 07/06/04 21:11 Tsujimura543
* friend の add と remove を実装 (for Twitter)
*
* 39 07/06/04 14:51 Tsujimura543
* _http_get() と _http_post() のプロトタイプ宣言を twitter.h に移動
*
* 38 07/05/29 12:48 Tsujimura543
* Jaiku の friends_timeline 対応(途中)
*
* 37 07/05/29 6:39 Tsujimura543
* Twitter のツンデレ状態判定機能(簡易版)を実装
*
* 36 07/05/29 5:43 Tsujimura543
* Jaiku への投稿をサポート
*
* 35 07/05/29 5:13 Tsujimura543
* Jaiku の user_timeline の閲覧に対応
*
* 34 07/05/29 3:56 Tsujimura543
* Jaiku (の public_timeline の閲覧) に対応
*
* 33 07/05/26 0:22 Tsujimura543
* Twitter と通信する部分を別スレッド化してみた
*
* 32 07/05/25 23:03 Tsujimura543
* リファクタリング
*
* 31 07/05/25 21:07 Tsujimura543
* リファクタリング
*
* 30 07/05/25 20:15 Tsujimura543
* CTwitterTimeline クラス関連の記述を別のファイルに分離、独立させた
*
* 29 07/05/25 17:51 Tsujimura543
* OnSelchangeComboTimelineType() を改良、瞬時に timeline の切り替えが
* できるようにした
*
* 28 07/05/25 17:45 Tsujimura543
* 「chirrup 起動中」ダイアログを追加
*
* 27 07/05/23 22:25 Tsujimura543
* friends_timeline と public_timeline の表示切替機能を追加
*
* 26 07/05/11 22:40 Tsujimura543
* 発言入力中に「更新」+「閲覧中のWebページ投稿」があった場合でも、
* 入力中の発言内容が消えないように対処
*
* 25 07/05/11 21:29 Tsujimura543
* ブラウザで閲覧中の URL を Twitter に送信するとき、その Web ページの
* タイトルも取得して送信するようにした
*
* 24 07/04/28 0:24 Tsujimura543
* (1) メッセージ表示領域をダブルクリックしたときに格納される文字列を
* 発言入力領域にフォーカスが移ったときに取り出す処理を追加
* (2) ダイアログのタイトルにスクリーン名を表示するようにした
*
* 23 07/04/27 22:28 Tsujimura543
* (1) プロクシ関連の設定を保持するメンバーを CChirrupApp に移動
* (2) 自分のスクリーン名を強調表示するようにしてみた
*
* 22 07/04/27 19:39 Tsujimura543
* Twitter API 関連の処理を Twitter.cpp に集約したのに伴う修正を実施
*
* 21 07/04/26 20:59 Tsujimura543
* リファクタリング
*
* 20 07/04/26 20:21 Tsujimura543
* URL をクリッカブルにしてみた
*
* 19 07/04/26 0:22 Tsujimura543
* ダイレクトメッセージ閲覧機能を実装
*
* 18 07/04/25 20:39 Tsujimura543
* メインダイアログを縦方向にリサイズできるようにしてみた
*
* 17 07/04/25 16:20 Tsujimura543
* ダイレクトメッセージ送信機能を実装
*
* 16 07/04/24 23:49 Tsujimura543
* ブラウザで閲覧中の URL を送信する機能を実装
*
* 15 07/04/14 3:01 Tsujimura543
* proxy関連の処理を再修正
*
* 14 07/04/14 2:05 Tsujimura543
* 右クリックメニューを追加
*
* 13 07/04/14 0:17 Tsujimura543
* proxy関連の処理を修正 (追加)
*
* 12 07/04/13 23:50 Tsujimura543
* proxy関連の処理を修正 (設定ダイアログに「いいえ」と答えると無限ループに
* なってしまうことがある不具合に対処)
*
* 11 07/04/13 23:45 Tsujimura543
* DisplayProfImages() を修正、「更新」のたびに絵が入れ替わるようにした
*
* 10 07/04/13 23:19 Tsujimura543
* friends 画像表示機能を付けた (まだ、表示のみ)
*
* 9 07/04/13 18:33 Tsujimura543
* API のレスポンス(JSON)のフォーマットが変更されたので、新旧両フォーマッ
* トに対応するように修正してみた
*
* 8 07/04/09 21:07 Tsujimura543
* 行数が MAX_NUMOFSTATUS を超えるところで落ちてしまう不具合に対処
*
* 7 07/04/09 19:11 Tsujimura543
* クォーテーションマークが含まれる発言が正しく表示されない不具合に対処
*
* 6 07/04/07 0:51 Tsujimura543
* コードを整理
*
* 5 07/04/07 0:45 Tsujimura543
* リターンキーを押下すると、chirrup が終了してしまっていたのを、終了しな
* いようにした(リターンキーの空打ちは無視するようにした)
*
* 4 07/04/06 23:42 Tsujimura543
* (1) Twitter に送信する http リクエストのヘッダに X-Twitter-Client: 等を
* 付加するようにした (クライアント情報XML は
* http://watcher.moe-nifty.com/memo/files/chirrup.xml
* に設置)
* (2) プロキシサーバ情報を手動で設定できるようにした
* (3) ボタンをいっぱい付けてみた
*
* 3 07/04/05 3:03 Tsujimura543
* 暫定的に使っていたマジックナンバーをちゃんとした値にする
*
* 2 07/04/05 2:51 Tsujimura543
* 更新周期を変更できるようにした
*
* 1 07/04/05 2:06 Tsujimura543
* 最初の版
*/
#include "chirrup.h"
#include "chirrupDlg.h"
#include "AboutDlg.h"
#include "SettingDialog.h"
#include "FriendDialog.h"
#include "DirectMessage.h"
#include "DirectMessageList.h"
#include "UploadImageDialog.h"
#include "parameter.h"
#include "timelog.h"
#include "wassr.h"
#include "ChannelWassr.h"
#include <direct.h>
extern "C" {
#include "utility.h"
#include "tumblr.h"
#include "gyazo.h"
#include "flickr.h"
#include "hatenaFotolife.h"
}
#include <sys/stat.h>
#include "proxy.h"
#include "http.h"
#ifndef lint
static char *rcs_id =
"$Header: /comm/chirrup/chirrupDlg.cpp 3 09/06/18 1:33 tsupo $";
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#ifdef _MSC_VER
#define Thread __declspec( thread )
#else
#define Thread
#endif
#if (WINVER >= 0x0500)
//#define IDC_HAND MAKEINTRESOURCE(32649)
#ifdef IDC_HAND
#undef IDC_HAND
#endif
#endif /* WINVER >= 0x0500 */
#define IDC_HAND IDC_HAND2
/////////////////////////////////////////////////////////////////////////////
// CChirrupDlg ダイアログ
CChirrupDlg::CChirrupDlg(CWnd* pParent /*=NULL*/)
: CDialog(CChirrupDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CChirrupDlg)
m_monologue = _T("");
m_periodStr = _T("");
m_timelineType = _T("");
m_checkBrowsing = FALSE;
m_postMulti = FALSE;
//}}AFX_DATA_INIT
// 以下の2行はリッチエディットコントロールを使えるようにするおまじない
AfxEnableControlContainer();
AfxInitRichEdit();
m_updateThread = NULL;
m_updateThread_Fired = false;
m_postThread = NULL;
m_loadImageThread = NULL;
m_uploadImageThread = NULL;
m_inSetting = false;
m_twitter = NULL;
m_jaiku = NULL;
m_wassr = NULL;
m_mogo2 = NULL;
m_timelog = NULL;
m_haruFm = NULL;
m_hatenaHaiku = NULL;
char dirname[MAX_PATH];
dirname[0] = NUL;
getcwd( dirname, MAX_PATH - 1 );
if ( dirname[0] )
strcat( dirname, "/" );
else
strcpy( dirname, "./" );
m_cacheDir = dirname;
m_cacheDir += _T(CACHE_DIRECTORY);
m_settingDir = dirname;
m_settingDir += _T(SETTING_DIRECTORY);
m_configFilename = _T(SETTING_FILENAME);
m_period = MS_UPDATE_TWITTER; // デフォルトは1分周期で更新
m_needToSave = false;
m_useImetter = false;
m_count = 0;
m_urlBrowsing = _T("");
m_pageTitle = _T("");
m_showServiceName = true;
m_serviceName = _T( "Powered by Twitter" );
m_initialized = false;
m_twitterHealthy = true;
m_postTweet.ret = false;
m_postBrowse.ret = false;
m_useTwitStar = false;
m_hatenaID = _T("");
m_hatenaPassword = _T("");
m_useHatenaFotolife = false;
m_hatenaFotolifeWriteLogFile = false;
m_hatenaFotolifeLogFilename = _T("");
m_useTumblr = false;
m_useTumblr2 = false;
m_tumblrID = _T("");
m_tumblrPassword = _T("");
m_tumblrGroup = _T("");
m_tumblrName = _T("");
m_tumblrWriteLogFile = false;
m_tumblrLogFilename = _T("");
m_useGyazo = false;
m_gyazoID[0] = NUL;
m_gyazoWriteLogFile = false;
m_gyazoLogFilename = _T("");
m_useFlickr = false;
m_flickrToken[0] = NUL;
m_flickrUserName[0] = NUL;
m_flickrWriteLogFile = false;
m_flickrLogFilename = _T("");
m_useWassrForUpload = false;
m_wassrWriteLogFileForUpload = false;
m_wassrLogFilenameForUpload = _T("");
m_inCapturing = false;
m_hWndForCapture = NULL;
CChirrupApp *ap = (CChirrupApp *)AfxGetApp();
m_hIcon = ap->LoadIcon(IDR_MAINFRAME);
m_hCursor = ap->LoadCursor( IDC_HAND );
m_nType = 0;
m_cx = 0;
m_cy = 0;
m_cxInitial = 0;
m_cyInitial = 0;
m_updateUserIcon = true;
m_waitedFilename[0] = NUL;
InitializeCriticalSection( &m_cs_chirrup );
_http_startUp();
}
CChirrupDlg::~CChirrupDlg()
{
if ( m_needToSave )
SaveSetting();
if ( m_twitter )
delete m_twitter;
if ( m_jaiku )
delete m_jaiku;
if ( m_wassr )
delete m_wassr;
if ( m_mogo2 )
delete m_mogo2;
if ( m_timelog )
delete m_timelog;
if ( m_haruFm )
delete m_haruFm;
if ( m_hatenaHaiku )
delete m_hatenaHaiku;
m_cFont2.DeleteObject();
m_cFont1.DeleteObject();
CChirrupApp *ap = (CChirrupApp *)AfxGetApp();
if ( ap->m_event ) {
CloseHandle( ap->m_event );
ap->m_event = NULL;
}
if ( ap->m_capture ) {
delete ap->m_capture;
ap->m_capture = NULL;
}
_http_shutDown();
DeleteCriticalSection( &m_cs_chirrup );
}
void CChirrupDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChirrupDlg)
DDX_Control(pDX, IDC_COMBO_TIMELINE_TYPE, m_timelineTypeList);
DDX_Control(pDX, IDC_RICHEDIT_MESSAGES, m_messageCtrl);
DDX_Text(pDX, IDC_MONOLOGUE, m_monologue);
DDV_MaxChars(pDX, m_monologue, 1024);
DDX_Text(pDX, IDC_PERIOD, m_periodStr);
DDV_MaxChars(pDX, m_periodStr, 10);
DDX_CBString(pDX, IDC_COMBO_TIMELINE_TYPE, m_timelineType);
DDV_MaxChars(pDX, m_timelineType, 32);
DDX_Check(pDX, IDC_CHECK_BROWSING, m_checkBrowsing);
DDX_Check(pDX, IDC_CHECK_MULTIPOST, m_postMulti);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChirrupDlg, CDialog)
//{{AFX_MSG_MAP(CChirrupDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_POST_MONOLOGUE, OnPostMonologue)
ON_WM_SHOWWINDOW()
ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
ON_WM_TIMER()
ON_EN_KILLFOCUS(IDC_PERIOD, OnKillfocusPeriod)
ON_WM_SETCURSOR()
ON_NOTIFY(TTN_NEEDTEXT, 0, OnDisplayToolTip)
ON_BN_CLICKED(IDC_TWITTER, OnTwitter)
ON_BN_CLICKED(IDC_HATENAGROUP, OnHatenagroup)
ON_BN_CLICKED(IDC_HATENABOOKMARK, OnHatenabookmark)
ON_BN_CLICKED(IDC_DELICOUS, OnDelicous)
ON_BN_CLICKED(IDC_GOOGLEGROUPS, OnGooglegroups)
ON_BN_CLICKED(IDC_TWITTERWIKI, OnTwitterwiki)
ON_BN_CLICKED(IDC_TWITTER_CHIRRUP, OnTwitterChirrup)
ON_BN_CLICKED(IDC_MIXI, OnMixi)
ON_BN_CLICKED(IDC_MAGNOLIA, OnMagnolia)
ON_BN_CLICKED(IDC_DIGG, OnDigg)
ON_BN_CLICKED(IDC_LIVEDOORCLIP, OnLivedoorclip)
ON_BN_CLICKED(IDC_LIVEDOOR, OnLivedoor)
ON_BN_CLICKED(IDC_GOOGLE, OnGoogle)
ON_BN_CLICKED(IDC_YAHOO, OnYahoo)
ON_BN_CLICKED(IDC_BLOGLINES, OnBloglines)
ON_BN_CLICKED(IDC_FRIEND001, OnFriend001)
ON_BN_CLICKED(IDC_FRIEND002, OnFriend002)
ON_BN_CLICKED(IDC_FRIEND003, OnFriend003)
ON_BN_CLICKED(IDC_FRIEND004, OnFriend004)
ON_BN_CLICKED(IDC_FRIEND005, OnFriend005)
ON_BN_CLICKED(IDC_FRIEND006, OnFriend006)
ON_BN_CLICKED(IDC_FRIEND007, OnFriend007)
ON_BN_CLICKED(IDC_FRIEND008, OnFriend008)
ON_BN_CLICKED(IDC_FRIEND009, OnFriend009)