Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.614 - (hide annotations) (download) (as text)
Sun Aug 6 13:20:45 2006 UTC (17 years, 8 months ago) by h677
Branch: MAIN
Changes since 1.613: +53 -3 lines
File MIME type: text/x-pascal
最小化時にタスクトレイに格納する機能&オプション追加

1 hi_ 1.1 unit Giko;
2    
3     interface
4    
5     uses
6     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
7 h677 1.536 OleCtrls, ComCtrls, ExtCtrls, Menus, StdCtrls, MMSystem, DateUtils,
8 hi_ 1.4 {$IF Defined(DELPRO) }
9 yoffy 1.138 SHDocVw,
10 hi_ 1.4 MSHTML,
11     {$ELSE}
12     SHDocVw_TLB,
13     MSHTML_TLB,
14     {$IFEND}
15 h677 1.183 IdHTTP, ActiveX, ActnList, ImgList,
16 h677 1.536 ToolWin, Buttons, IdComponent, UrlMon, Tabs, IdGlobal, StrUtils,
17     CommCtrl, Dialogs, GikoSystem, Setting, BoardGroup, ThreadControl, ItemDownload,
18     Editor, RoundData, GikoPanel, Favorite, HTMLDocumentEvent,
19     HintWindow, GikoCoolBar, GikoListView, Search, ExternalBoardManager,
20     ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection,
21 h677 1.614 IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord, MoveHistoryItem,
22     ShellAPI;
23 hi_ 1.1
24 h677 1.567 const
25     NGWORDNAME_PANEL = 3;
26     THREADSIZE_PANEL = 2;
27    
28 hi_ 1.1 type
29 yoffy 1.138 TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);
30 yoffy 1.258 TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser);
31 yoffy 1.280 TMinimizeType = (mtNone, mtMinimizing, mtMinimized);
32 yoffy 1.424 TResizeType = (rtNone, rtResizing);
33 hi_ 1.1
34 h677 1.551 // TBrowserRecord = class;
35 h677 1.299
36 hi_ 1.1 TGikoForm = class(TForm)
37     StatusBar: TStatusBar;
38     MainPanel: TPanel;
39     ClientPanel: TPanel;
40     TreeSplitter: TSplitter;
41     CabinetPanel: TPanel;
42     TreeView: TTreeView;
43     ThreadMainPanel: TPanel;
44     ListSplitter: TSplitter;
45     ViewPanel: TPanel;
46 yoffy 1.51 ListView: TGikoListView;
47 hi_ 1.1 ThreadPanel: TPanel;
48     MessagePanel: TPanel;
49     MessageBar: TPanel;
50     MessageHideButton: TSpeedButton;
51     MessageListView: TListView;
52     MessageSplitter: TSplitter;
53     Panel3: TPanel;
54 h677 1.541 CabinetCloseSpeedButton: TSpeedButton;
55 hi_ 1.1 ToolBar1: TToolBar;
56     CabinetSelectToolButton: TToolButton;
57     HistoryToolBar: TToolBar;
58 h677 1.541 HistoryShowToolButton: TToolButton;
59     HistoryAllClearToolButton: TToolButton;
60 hi_ 1.1 ItemIcon16: TImageList;
61     ItemIcon32: TImageList;
62 yoffy 1.2 HotToobarImageList: TImageList;
63 hi_ 1.1 ItemImageList: TImageList;
64     MainMenu: TMainMenu;
65     FileMenu: TMenuItem;
66 yoffy 1.51 DeleteMenu: TMenuItem;
67     ExitMenu: TMenuItem;
68     KidokuMenu: TMenuItem;
69 hi_ 1.1 MidokuMenu: TMenuItem;
70 yoffy 1.51 AllSelectMenu: TMenuItem;
71 hi_ 1.1 ViewMenu: TMenuItem;
72     StdToolBarMenu: TMenuItem;
73     CabinetMenu: TMenuItem;
74 yoffy 1.51 H1: TMenuItem;
75 hi_ 1.1 N4: TMenuItem;
76 yoffy 1.51 CabinetVisibleMenu: TMenuItem;
77 hi_ 1.1 MessageMenu: TMenuItem;
78     StatusBarMenu: TMenuItem;
79     MMSep03: TMenuItem;
80 yoffy 1.51 LargeIconMenu: TMenuItem;
81 hi_ 1.1 SmallIconMenu: TMenuItem;
82     ListMenu: TMenuItem;
83     DetailMenu: TMenuItem;
84 yoffy 1.51 ToolMenu: TMenuItem;
85 hi_ 1.1 Find1: TMenuItem;
86     RoundMenu: TMenuItem;
87     MMSep04: TMenuItem;
88     OptionMenu: TMenuItem;
89     HelpMenu: TMenuItem;
90     G1: TMenuItem;
91 yoffy 1.51 N1: TMenuItem;
92 hi_ 1.1 AboutMenu: TMenuItem;
93     BrowserPopupMenu: TPopupMenu;
94 yoffy 1.51 ShowThreadMenu: TMenuItem;
95 yoffy 1.2 ShowBoardMenu: TMenuItem;
96 hi_ 1.1 ListIconPopupMenu: TPopupMenu;
97     LargeIconPMenu: TMenuItem;
98     SmallIconPMenu: TMenuItem;
99     ListPMenu: TMenuItem;
100 yoffy 1.51 DetailPMenu: TMenuItem;
101 hi_ 1.1 ClosePopupMenu: TPopupMenu;
102 yoffy 1.51 CloseMenu: TMenuItem;
103 hi_ 1.1 U1: TMenuItem;
104     N3: TMenuItem;
105     B1: TMenuItem;
106     S1: TMenuItem;
107     N2: TMenuItem;
108     A1: TMenuItem;
109     L1: TMenuItem;
110     N5: TMenuItem;
111     S2: TMenuItem;
112     ListPopupMenu: TPopupMenu;
113 yoffy 1.51 ListRoundPMenu: TMenuItem;
114 hi_ 1.1 ListReservPMenu: TMenuItem;
115     LPMSep01: TMenuItem;
116 yoffy 1.51 ItemRoundPMenu: TMenuItem;
117 hi_ 1.1 LPMSep02: TMenuItem;
118 yoffy 1.2 KidokuPMenu: TMenuItem;
119 hi_ 1.1 MidokuPMenu: TMenuItem;
120     AllSelectPMenu: TMenuItem;
121     UrlCopyPMenu: TMenuItem;
122     LPMSep05: TMenuItem;
123     DeletePMenu: TMenuItem;
124     LPMSep06: TMenuItem;
125     ViewPMenu: TMenuItem;
126     LargeIconLPMenu: TMenuItem;
127     SmallIconLPMenu: TMenuItem;
128     ListLPMenu: TMenuItem;
129     DetailLPMenu: TMenuItem;
130     T1: TMenuItem;
131     B2: TMenuItem;
132     N8: TMenuItem;
133 yoffy 1.51 URLC1: TMenuItem;
134     N9: TMenuItem;
135 hi_ 1.1 N10: TMenuItem;
136     G2: TMenuItem;
137     N11: TMenuItem;
138     T3: TMenuItem;
139     L2: TMenuItem;
140     N12: TMenuItem;
141     K1: TMenuItem;
142     N13: TMenuItem;
143     N14: TMenuItem;
144     R1: TMenuItem;
145     A2: TMenuItem;
146     N15: TMenuItem;
147     KokoPopupMenu: TPopupMenu;
148     KokomadePMenu: TMenuItem;
149 yoffy 1.2 AllPMenu: TMenuItem;
150 hi_ 1.1 MenuItem1: TMenuItem;
151     MenuItem2: TMenuItem;
152     BrowserTabPopupMenu: TPopupMenu;
153 yoffy 1.51 Close1: TMenuItem;
154 hi_ 1.1 A3: TMenuItem;
155 yoffy 1.51 N16: TMenuItem;
156 hi_ 1.1 A4: TMenuItem;
157     TreePopupMenu: TPopupMenu;
158     TreeSelectThreadPupupMenu: TMenuItem;
159 yoffy 1.51 TreeSelectBoardPupupMenu: TMenuItem;
160 hi_ 1.1 TPMSep01: TMenuItem;
161     TreeSelectURLPupupMenu: TMenuItem;
162     T2: TMenuItem;
163 yoffy 1.2 L3: TMenuItem;
164 hi_ 1.1 B3: TMenuItem;
165     BrowserBottomPanel: TGikoPanel;
166     CabinetSelectPopupMenu: TPopupMenu;
167     H2: TMenuItem;
168 yoffy 1.51 ItemReservPMenu: TMenuItem;
169     RoundNamePopupMenu: TPopupMenu;
170 yoffy 1.2 N7: TMenuItem;
171 hi_ 1.1 B4: TMenuItem;
172     L4: TMenuItem;
173     K2: TMenuItem;
174 yoffy 1.51 A5: TMenuItem;
175 hi_ 1.1 A6: TMenuItem;
176 yoffy 1.51 C1: TMenuItem;
177     V1: TMenuItem;
178     N19: TMenuItem;
179 hi_ 1.1 D1: TMenuItem;
180 yoffy 1.51 D2: TMenuItem;
181     MessageImageList: TImageList;
182     ProgressBar: TProgressBar;
183     URL1: TMenuItem;
184 hi_ 1.1 NameUrlCopyPMenu: TMenuItem;
185     URLC2: TMenuItem;
186 yoffy 1.51 URLN1: TMenuItem;
187     N21: TMenuItem;
188     URLC3: TMenuItem;
189 yoffy 1.2 URLN2: TMenuItem;
190 yoffy 1.51 N23: TMenuItem;
191 yoffy 1.2 ListCoolBar: TGikoCoolBar;
192 hi_ 1.1 ListToolBar: TToolBar;
193 yoffy 1.2 BrowserCoolBar: TGikoCoolBar;
194 hi_ 1.1 BrowserToolBar: TToolBar;
195     ToolButton3: TToolButton;
196 yoffy 1.51 ToolButton9: TToolButton;
197 hi_ 1.1 ToolButton11: TToolButton;
198 yoffy 1.51 ToolButton5: TToolButton;
199 hi_ 1.1 ListNameToolBar: TToolBar;
200 yoffy 1.51 ListNameLabel: TLabel;
201 hi_ 1.1 FolderImage: TImage;
202     BrowserNameToolBar: TToolBar;
203     ItemBoardImage: TImage;
204     BrowserBoardNameLabel: TLabel;
205 yoffy 1.51 ItemImage: TImage;
206     BrowserNameLabel: TLabel;
207     D3: TMenuItem;
208     N25: TMenuItem;
209 hi_ 1.1 N26: TMenuItem;
210     D4: TMenuItem;
211     S3: TMenuItem;
212 yoffy 1.51 R2: TMenuItem;
213     TreeSelectNameURLPupupMenu: TMenuItem;
214     N27: TMenuItem;
215 hi_ 1.1 H3: TMenuItem;
216 yoffy 1.51 I1: TMenuItem;
217     BrowserTabToolBar: TToolBar;
218     BrowserTab: TTabControl;
219     About1: TMenuItem;
220     N28: TMenuItem;
221     S4: TMenuItem;
222 yoffy 1.2 N29: TMenuItem;
223     N30: TMenuItem;
224     N31: TMenuItem;
225 hi_ 1.1 L5: TMenuItem;
226 yoffy 1.51 L6: TMenuItem;
227 hi_ 1.1 A7: TMenuItem;
228 yoffy 1.51 R3: TMenuItem;
229 hi_ 1.1 FavoriteMenu: TMenuItem;
230 yoffy 1.51 N32: TMenuItem;
231 hi_ 1.1 BoardFavoriteAddMenu: TMenuItem;
232     ThreadFavoriteAddMenu: TMenuItem;
233 yoffy 1.2 N33: TMenuItem;
234 hi_ 1.1 TreeSelectFavoriteAddPupupMenu: TMenuItem;
235     FavoriteTreeView: TTreeView;
236 yoffy 1.51 StateIconImageList: TImageList;
237     TopPanel: TPanel;
238     TopRightPanel: TPanel;
239     AnimePanel: TPanel;
240 hi_ 1.1 Animate: TAnimate;
241     TopCoolPanel: TPanel;
242 yoffy 1.51 MainCoolBar: TGikoCoolBar;
243     MenuToolBar: TToolBar;
244     StdToolBar: TToolBar;
245     AddressToolBar: TToolBar;
246     AddressComboBox: TComboBox;
247     MoveToToolButton: TToolButton;
248     AddressImageList: TImageList;
249     AddressToolBarMenu: TMenuItem;
250     T4: TMenuItem;
251     Show1: TMenuItem;
252     N34: TMenuItem;
253 hi_ 1.1 T5: TMenuItem;
254     B5: TMenuItem;
255 yoffy 1.51 N35: TMenuItem;
256     A8: TMenuItem;
257     U2: TMenuItem;
258 hi_ 1.1 F1: TMenuItem;
259     PreviewTimer: TTimer;
260 yoffy 1.51 MonazillaWebPageAction1: TMenuItem;
261     N36: TMenuItem;
262     H4: TMenuItem;
263     K3: TMenuItem;
264     L7: TMenuItem;
265     N37: TMenuItem;
266     A9: TMenuItem;
267 yoffy 1.2 ChevronPopupMenu: TPopupMenu;
268     N2N1: TMenuItem;
269 hi_ 1.1 N38: TMenuItem;
270 yoffy 1.2 F2: TMenuItem;
271 yoffy 1.51 LinkToolBar: TToolBar;
272     a10: TMenuItem;
273     N39: TMenuItem;
274     T6: TMenuItem;
275     N40: TMenuItem;
276 yoffy 1.2 LinkBarPopupMenu: TPopupMenu;
277 yoffy 1.51 T7: TMenuItem;
278     ThreadPopupMenu: TPopupMenu;
279     MenuItem4: TMenuItem;
280     MenuItem5: TMenuItem;
281     MenuItem6: TMenuItem;
282 yoffy 1.2 T8: TMenuItem;
283 yoffy 1.51 URLN3: TMenuItem;
284 yoffy 1.2 SelectItemNameCopyAction1: TMenuItem;
285 yoffy 1.51 B6: TMenuItem;
286     T9: TMenuItem;
287     C2: TMenuItem;
288     SelectComboBox: TComboBox;
289     MainCoolBarPopupMenu: TPopupMenu;
290     StdToolBarVisiblePMenu: TMenuItem;
291     AddressToolBarVisiblePMenu: TMenuItem;
292     LinkToolBarVisiblePMenu: TMenuItem;
293     NG1: TMenuItem;
294     NG2: TMenuItem;
295     N43: TMenuItem;
296     N44: TMenuItem;
297     L9: TMenuItem;
298     I3: TMenuItem;
299     N45: TMenuItem;
300     B9: TMenuItem;
301     R5: TMenuItem;
302     T12: TMenuItem;
303     Show3: TMenuItem;
304     N46: TMenuItem;
305     T13: TMenuItem;
306     B10: TMenuItem;
307     N47: TMenuItem;
308     A12: TMenuItem;
309     U4: TMenuItem;
310     F4: TMenuItem;
311     N48: TMenuItem;
312     T14: TMenuItem;
313     ToolButton16: TToolButton;
314     N50: TMenuItem;
315     A11: TMenuItem;
316     S5: TMenuItem;
317     Reload: TMenuItem;
318     GoBack: TMenuItem;
319     GoFoward: TMenuItem;
320     IndividualAbon1: TMenuItem;
321     N41: TMenuItem;
322     IndividualAbon2: TMenuItem;
323 h677 1.543 AntiIndivAbonMenuItem: TMenuItem;
324 yoffy 1.51 AntiIndividualAbon: TMenuItem;
325     N49: TMenuItem;
326     N51: TMenuItem;
327     N52: TMenuItem;
328     SearchBoardName: TMenuItem;
329 yoffy 1.205 TreeSelectLogDeleteSeparator: TMenuItem;
330 yoffy 1.100 N54: TMenuItem;
331     A13: TMenuItem;
332     FavoriteTreePopupMenu: TPopupMenu;
333     FavoriteTreeRenamePopupMenu: TMenuItem;
334     FavoriteTreeNewFolderPopupMenu: TMenuItem;
335     N56: TMenuItem;
336     FavoriteTreeDeletePopupMenu: TMenuItem;
337     FavoriteToolBar: TToolBar;
338 h677 1.541 FavoriteAddToolButton: TToolButton;
339     FavoriteArrangeToolButton: TToolButton;
340 yoffy 1.100 FavoriteTreeBrowseFolderPopupMenu: TMenuItem;
341     N57: TMenuItem;
342     FavoriteTreeReloadPopupMenu: TMenuItem;
343     N58: TMenuItem;
344     FavoriteTreeURLCopyPopupMenu: TMenuItem;
345     FavoriteTreeNameCopyPopupMenu: TMenuItem;
346     FavoriteTreeLogDeletePopupMenu: TMenuItem;
347     N59: TMenuItem;
348     FavoriteTreeNameURLCopyPopupMenu: TMenuItem;
349     ToolButton20: TToolButton;
350     N60: TMenuItem;
351 yoffy 1.107 ExportFavoriteFileAction1: TMenuItem;
352 yoffy 1.142 N6: TMenuItem;
353     N17: TMenuItem;
354 h677 1.174 N18: TMenuItem;
355     N20: TMenuItem;
356 h677 1.532 N24: TMenuItem;
357 h677 1.174 N62: TMenuItem;
358 h677 1.514 N61: TMenuItem;
359 h677 1.478 N63: TMenuItem;
360 h677 1.183 N64: TMenuItem;
361 h677 1.187 dummy1: TMenuItem;
362 h677 1.570 TreeSelectLogDeletePopupMenu: TMenuItem;
363 h677 1.485 N65: TMenuItem;
364 yoffy 1.209 BBSSelectPopupMenu: TPopupMenu;
365 yoffy 1.218 PlugInMenu: TMenuItem;
366 h677 1.542 TreeSelectNamePupupMenu: TMenuItem;
367 h677 1.299 BrowserPanel: TPanel;
368 h677 1.514 SelectTimer: TTimer;
369 h677 1.340 SelectThreadSave: TMenuItem;
370 h677 1.342 N55: TMenuItem;
371 h677 1.343 N66: TMenuItem;
372     dat1: TMenuItem;
373 yoffy 1.397 OpenLogFolder: TMenuItem;
374 h677 1.346 Browser: TWebBrowser;
375 genyakun 1.353 TabSave: TMenuItem;
376 h677 1.407 TabOpen: TMenuItem;
377 yoffy 1.375 ResRangePopupMenu: TPopupMenu;
378 h677 1.547 ResRangeHundPMenuItem: TMenuItem;
379     ResRangeKokoPMenuItem: TMenuItem;
380     ResRangeNewPMenuItem: TMenuItem;
381     ResRangeAllPMenuItem: TMenuItem;
382 h677 1.570 BrowsBoradHeadAction1: TMenuItem;
383 yoffy 1.390 ThreadRangePopupMenu: TPopupMenu;
384     A15: TMenuItem;
385     L8: TMenuItem;
386 h677 1.542 N67: TMenuItem;
387 yoffy 1.390 N68: TMenuItem;
388     S6: TMenuItem;
389     N69: TMenuItem;
390 h677 1.547 ResRangeSelectPMenuItem: TMenuItem;
391 yoffy 1.415 ListColumnPopupMenu: TPopupMenu;
392 h677 1.485 N70: TMenuItem;
393     ID1: TMenuItem;
394     ID2: TMenuItem;
395     N53: TMenuItem;
396     ID3: TMenuItem;
397     N71: TMenuItem;
398 h677 1.487 N72: TMenuItem;
399     N73: TMenuItem;
400 h677 1.517 SelectComboBoxPanel: TPanel;
401     SelectComboBoxSplitter: TImage;
402 h677 1.570 ToolButton1: TToolButton;
403 h677 1.517 N74: TMenuItem;
404 genyakun 1.527 WikiFAQ: TMenuItem;
405 h677 1.542 GikoApplicationEvents: TApplicationEvents;
406 h677 1.583 N22: TMenuItem;
407     N42: TMenuItem;
408 h677 1.592 DAT2: TMenuItem;
409     N75: TMenuItem;
410     DAT3: TMenuItem;
411     N76: TMenuItem;
412 h677 1.600 FavoriteTreeItemNameCopyPopupMenu: TMenuItem;
413 yoffy 1.251 procedure FormCreate(Sender: TObject);
414 hi_ 1.1 procedure FormDestroy(Sender: TObject);
415     procedure BrowserStatusTextChange(Sender: TObject;
416     const Text: WideString);
417     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
418     procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
419     var AllowChange: Boolean);
420     procedure ListViewKeyDown(Sender: TObject; var Key: Word;
421     Shift: TShiftState);
422     procedure ListViewColumnClick(Sender: TObject; Column: TListColumn);
423     procedure MenuToolBarCustomDrawButton(Sender: TToolBar;
424     Button: TToolButton; State: TCustomDrawState;
425     var DefaultDraw: Boolean);
426     procedure BrowserBeforeNavigate2(Sender: TObject;
427     const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
428     Headers: OleVariant; var Cancel: WordBool);
429     procedure TreeViewCustomDraw(Sender: TCustomTreeView;
430     const ARect: TRect; var DefaultDraw: Boolean);
431     procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
432     Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
433     procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
434     procedure ListViewCustomDraw(Sender: TCustomListView;
435     const ARect: TRect; var DefaultDraw: Boolean);
436     procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
437     Shift: TShiftState; X, Y: Integer);
438     procedure TreeViewCollapsed(Sender: TObject; Node: TTreeNode);
439     procedure MessageListViewResize(Sender: TObject);
440 yoffy 1.138 procedure CabinetVisible( isVisible : Boolean );
441 hi_ 1.1 procedure FormResize(Sender: TObject);
442     procedure ListPopupMenuPopup(Sender: TObject);
443     procedure TreePopupMenuPopup(Sender: TObject);
444     procedure BrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
445     var Cancel: WordBool);
446     procedure ListSplitterMoved(Sender: TObject);
447     procedure BrowserTabChange(Sender: TObject);
448     procedure BrowserTabMouseDown(Sender: TObject; Button: TMouseButton;
449     Shift: TShiftState; X, Y: Integer);
450     procedure BrowserTabDragOver(Sender, Source: TObject; X, Y: Integer;
451     State: TDragState; var Accept: Boolean);
452     procedure BrowserTabDragDrop(Sender, Source: TObject; X, Y: Integer);
453     procedure BrowserTabMouseMove(Sender: TObject; Shift: TShiftState; X,
454     Y: Integer);
455     procedure BrowserDocumentComplete(Sender: TObject;
456     const pDisp: IDispatch; var URL: OleVariant);
457     procedure RoundNamePopupMenuPopup(Sender: TObject);
458     procedure FormShow(Sender: TObject);
459     procedure BrowserTabToolBarResize(Sender: TObject);
460     procedure FavoriteMenuClick(Sender: TObject);
461 yoffy 1.2 procedure MainCoolBarResize(Sender: TObject);
462     procedure AddressToolBarResize(Sender: TObject);
463 hi_ 1.1 procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
464     Shift: TShiftState);
465 yoffy 1.2 procedure BrowserEnter(Sender: TObject);
466 hi_ 1.1 procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
467     procedure PreviewTimerTimer(Sender: TObject);
468     procedure MessageHideButtonClick(Sender: TObject);
469 h677 1.541 procedure HistoryAllClearToolButtonClick(Sender: TObject);
470 yoffy 1.2 procedure MainCoolBarBandInfo(Sender: TObject;
471     var BandInfo: PReBarBandInfoA);
472     procedure MainCoolBarChevronClick(Sender: TObject;
473 yoffy 1.51 RebarChevron: PNMRebarChevron);
474     procedure ListCoolBarBandInfo(Sender: TObject;
475     var BandInfo: PReBarBandInfoA);
476     procedure ListCoolBarChevronClick(Sender: TObject;
477     RebarChevron: PNMRebarChevron);
478     procedure BrowserCoolBarBandInfo(Sender: TObject;
479     var BandInfo: PReBarBandInfoA);
480 yoffy 1.2 procedure BrowserCoolBarChevronClick(Sender: TObject;
481 yoffy 1.51 RebarChevron: PNMRebarChevron);
482     procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
483     procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
484     WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
485     procedure SelectComboBoxChange(Sender: TObject);
486     procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
487     Shift: TShiftState);
488     procedure SelectComboBoxExit(Sender: TObject);
489     procedure SelectComboBoxSplitterMouseMove(Sender: TObject;
490     Shift: TShiftState; X, Y: Integer);
491     procedure SelectComboBoxSplitterMouseDown(Sender: TObject;
492     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
493     procedure SelectComboBoxSplitterMouseUp(Sender: TObject;
494     Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
495     procedure StatusBarResize(Sender: TObject);
496     procedure SelectComboBoxEnter(Sender: TObject);
497 yoffy 1.100 procedure FavoriteTreeViewDragDrop(Sender, Source: TObject; X,
498     Y: Integer);
499 yoffy 1.71 procedure FavoriteTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
500 yoffy 1.100 procedure FavoriteTreeViewEdited(Sender: TObject; Node: TTreeNode;
501     var S: String);
502     procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
503     Shift: TShiftState);
504     procedure FavoriteTreePopupMenuPopup(Sender: TObject);
505     procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
506     procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
507     Shift: TShiftState; X, Y: Integer);
508     procedure LinkToolBarDragOver(Sender, Source: TObject; X, Y: Integer;
509     State: TDragState; var Accept: Boolean);
510     procedure FavoriteTreeViewEndDrag(Sender, Target: TObject; X,
511     Y: Integer);
512 yoffy 1.142 procedure FavoriteTreeBrowseBoardPopupMenuClick(Sender: TObject);
513 h677 1.174 procedure BrowserTabContextPopup(Sender: TObject; MousePos: TPoint;
514     var Handled: Boolean);
515 h677 1.187 procedure BrowserTabPopupMenuPopup(Sender: TObject);
516 yoffy 1.216 procedure BrowserTabResize(Sender: TObject);
517 yoffy 1.236 procedure TreeViewKeyDown(Sender: TObject; var Key: Word;
518     Shift: TShiftState);
519 yoffy 1.246 procedure FavoriteTreeViewMouseDown(Sender: TObject;
520 yoffy 1.248 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
521 yoffy 1.250 procedure MessagePanelResize(Sender: TObject);
522 yoffy 1.276 procedure OnResized;
523 h677 1.539 procedure SelectTimerTimer(Sender: TObject);
524 yoffy 1.425 procedure ListViewColumnRightClick(Sender: TObject;
525 yoffy 1.415 Column: TListColumn; Point: TPoint);
526 h677 1.478 procedure ListViewCustomDrawItem(Sender: TCustomListView;
527 h677 1.463 Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
528     procedure FormActivate(Sender: TObject);
529 h677 1.472 procedure BrowserPanelResize(Sender: TObject);
530 h677 1.482 procedure MenuToolBarResize(Sender: TObject);
531     procedure ListToolBarResize(Sender: TObject);
532     procedure BrowserToolBarResize(Sender: TObject);
533 h677 1.539 procedure KokoPopupMenuPopup(Sender: TObject);
534 h677 1.517 procedure ListViewKeyUp(Sender: TObject; var Key: Word;
535     Shift: TShiftState);
536     procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
537     var AllowEdit: Boolean);
538 h677 1.570 procedure CabinetCloseSpeedButtonClick(Sender: TObject);
539 h677 1.541 procedure FavoriteArrangeToolButtonClick(Sender: TObject);
540 h677 1.542 procedure GikoApplicationEventsMessage(var Msg: tagMSG;
541     var Handled: Boolean);
542     procedure GikoApplicationEventsDeactivate(Sender: TObject);
543     procedure GikoApplicationEventsException(Sender: TObject; E: Exception);
544 h677 1.574 procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
545 h677 1.548 Shift: TShiftState; X, Y: Integer);
546 h677 1.585 procedure GetResURLMenuClick(Sender: TObject);
547 h677 1.612 procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
548     var Handled: Boolean);
549 hi_ 1.1 private
550     { Private ?ス?ス?ス?ス }
551     FEnabledCloseButton: Boolean;
552     FClickNode: TTreeNode;
553     FHttpState: Boolean;
554     FHint: TResPopup;
555 h677 1.453 FPreviewBrowser: TWebBrowser;
556 hi_ 1.1 FPreviewURL: string;
557     FBrowserSizeHeight: Integer;
558     FBrowserSizeWidth: Integer;
559     FTabHintIndex: Integer;
560     FListStyle: TViewStyle; //?ス?ス?スX?スg?スA?スC?スR?ス?ス?スX?ス^?スC?ス?ス
561     FItemNoVisible: Boolean; //?ス?ス?スX?スg?ス?ス?ス?ス?ス\?ス?ス?スt?ス?ス?スO
562     FViewType: TGikoViewType; //?ス?ス?スX?スg?スA?スC?スe?ス?ス?ス\?ス?ス?ス^?スC?スv
563 h677 1.517 FActiveList: TObject;
564 h677 1.299 FActiveContent: TBrowserRecord; //
565 yoffy 1.133 FActiveBBS : TBBS;
566 hi_ 1.1 FHistoryList: TList; //?スq?スX?スg?ス?ス?ス?ス?スX?スg
567     FTreeType: TGikoTreeType;
568     FWorkCount: Integer;
569     FNameCookie: string;
570     FMailCookie: string;
571     FDownloadTitle: string; //?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス^?スC?スg?ス?ス?ス?ス
572     FDownloadMax: Integer; //?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス?ス?ス?スT?スC?スY
573     FEvent: THTMLDocumentEventSink;//?スu?ス?ス?スE?スU?スh?スL?ス?ス?ス?ス?ス?ス?スg?スC?スx?ス?ス?スg
574 yoffy 1.51 IsDraggingSelectComboBox : Boolean;
575     DraggingSelectComboBoxPosition : TPoint;
576 yoffy 1.54 FSearchDialog: TSearchDialog;
577 yoffy 1.100 FDropSpaceNode: TTreeNode;
578 yoffy 1.424 FDragTime : Cardinal; ///< ?ス?ス?ス?ス?スN?ス?スD&D?スp
579     FDragButton : TToolButton; ///< ?ス?ス?ス?ス?スN?ス?スD&D?スp?ス?スDrag?ス?ス?ス?ス?ス?スButton?ス?ス?ス?ス
580     FDragWFirst : Boolean; ///< WebTab?ス?スD&D?スp
581     FListViewBackGroundColor : TColor; ///< ListView?ス?スBackGroundColor
582     FUseOddResOddColor : Boolean; ///< ?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スF?ス?ス?ス\?ス?ス
583     FOddColor : TColor; ///< ?ス?ス?ス?ス?スF
584     FSelectResWord : string; ///< ?ス?ス?スX?スi?ス?ス?ス?ス?ス[?スh
585     FIsIgnoreResize : TResizeType; ///< ?ス?ス?スT?スC?スY?スC?スx?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
586     FIsMinimize : TMinimizeType; ///< ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
587     FOldFormWidth : Integer; ///< ?ス?ス?スO?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?ス?ス
588     FToolBarSettingSender : TToolBarSettingSenderType; ///< ?スc?ス[?ス?ス?スo?ス[?ス?ス?ス?ス?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?スN?ス[?ス?ス?スo?ス[
589     FMouseDownPos : TPoint; ///< ?スu?ス?ス?スE?スU?ス^?スu?ス?ス?ス}?スE?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スW
590 h677 1.303 FBrowsers: TList;
591 yoffy 1.424 FResRangeMenuSelect : Longint; ///< ResRangeButton ?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス (?スt?スH?ス[?ス}?スb?スg?ス?ス ResRange ?ス?ス?ス?ス)
592 h677 1.423 FStartUp : Boolean;
593 yoffy 1.427 FIsHandledWheel : Boolean; ///< ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス WM_MOUSEWHEEL ?ス?ス?ス?ス?ス?ス?ス?ス
594 h677 1.517 DiffComp: Boolean; //Add by Genyakun ?スX?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スTrue?ス?ス?ス?ス?ス?ス
595 h677 1.548 FOrigenCaption: String; //?ス?ス?スC?ス?ス?ス?ス?ス?ス?スc?ス?ス?ス[?ス?ス?スA?スC?スe?ス?ス?ス?ス?スW?ス?ス?ス?ス?ス?ス?スW?スO?ス?ス?ス?ス?ス?ス?ス?ス
596 h677 1.581 FPreviewBrowserRect: TRect; ///< ?スv?ス?ス?スr?ス?ス?ス[?ス?ス?ス\?ス?ス?ス?ス?スu?ス?ス?スL?ス?ス?ス?ス?ス?ス
597     FActionListGroupIndexes: array of Integer; ///<GikoDM?ス?ス?ス?ス?スA?スN?スV?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?スe?スA?スN?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スGroupIndex?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スz?ス?ス
598 h677 1.613
599 hi_ 1.1 procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
600     procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
601 q9_ 1.233 procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
602 hi_ 1.1 procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
603     procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
604     procedure ListClick;
605 h677 1.295 procedure ListDoubleClick(Shift: TShiftState);
606 hi_ 1.1 function Hook(var Message: TMessage): Boolean;
607     procedure AddRoundNameMenu(MenuItem: TMenuItem);
608     procedure SetMenuFont;
609     procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
610 yoffy 1.62 procedure FavoriteClick(Sender: TObject; ActiveTab: Boolean); overload;
611     procedure FavoriteClick(Sender: TObject); overload;
612 yoffy 1.100 procedure FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
613 hi_ 1.1 function OnDocumentContextMenu(Sender: TObject): WordBool;
614     procedure ShowTextPopup;
615     function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
616 yoffy 1.2 procedure MenuBarChevronMenu;
617     procedure LinkBarChevronMenu;
618     procedure ToolBarChevronMenu(ToolBar: TToolBar);
619 yoffy 1.100 procedure LinkToolButtonDragDrop(Sender, Source: TObject; X, Y: Integer);
620     procedure LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
621     procedure LinkToolButtonOnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
622     procedure LinkToolButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
623 yoffy 1.85 procedure LinkToolButtonStartDrag(Sender: TObject; var DragObject: TDragObject);
624 yoffy 1.72 function TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
625 yoffy 1.100 procedure FavoriteMoveTo( SenderNode, SourceNode: TTreeNode );
626     procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject );
627 yoffy 1.72 procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject );
628 yoffy 1.236 //
629 yoffy 1.143 procedure SetListViewBackGroundColor(value: TColor);
630 yoffy 1.123 procedure BBSMenuItemOnClick( Sender : TObject );
631 yoffy 1.424 /// CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
632 yoffy 1.216 procedure SaveCoolBarSettings;
633 h677 1.471 procedure SaveMainCoolBarSettings;
634     procedure SaveBoardCoolBarSettings;
635     procedure SaveBrowserCoolBarSettings;
636 yoffy 1.424 /// CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
637 yoffy 1.216 procedure LoadCoolBarSettings;
638 yoffy 1.424 /// ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
639 yoffy 1.276 procedure OnMinimize;
640 yoffy 1.424 /// ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
641 yoffy 1.248 procedure OnMinimized;
642 yoffy 1.424 /// TreeView ?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス
643 yoffy 1.236 procedure TreeClick( Node : TTreeNode );
644 yoffy 1.424 /// TreeView ?ス?ス?ス_?スu?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス
645 yoffy 1.236 procedure TreeDoubleClick( Node : TTreeNode );
646 yoffy 1.424 /// ?スe?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?スE BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スZ?スb?スg?ス^?スX?スV
647 yoffy 1.289 procedure SetBBSMenu;
648 yoffy 1.415 /// ListColumnPopupMenu ?スA?スC?スe?ス?ス?ス?ス?スN?ス?ス?スb?スN?スC?スx?ス?ス?スg
649     procedure ListColumnPopupMenuOnClick( Sender : TObject );
650 yoffy 1.480 //! ?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
651     procedure SetSelectWord( const text : string );
652 h677 1.535 //?ス?ス?ス?ス?ス?ス?スJ?ス[?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
653     function GetScreenCursor(): TCursor;
654     //?スJ?ス[?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
655     procedure SetScreenCursor(Cursor : TCursor);
656 h677 1.550 //! ?ス_?スE?ス?ス?ス?ス?ス[?スh?スR?ス?ス?スg?ス?ス?ス[?ス?ス?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス
657     procedure CreateControlThread();
658     //! ?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス?ス
659     procedure CreateBrowsers(count: Integer);
660 h677 1.581 //! ActionList?ス?スGroupIndex?ス?ス?ス?ス?ス?ス
661     procedure GetGroupIndex(ActionList: TActionList);
662     //! ActionList?ス?スGroupIndex?ス?ス?ス?ス?ス?ス
663     procedure SetGroupIndex(ActionList: TActionList);
664 h677 1.585 //! ?スw?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スJ?ス?ス(?ス?ス?スO?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス or ?スw?ス?スJUMP?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スDL?ス?ス?ス?ス)
665     procedure OpenThreadItem(Thread: TThreadItem; URL: String);
666 h677 1.596 //! ListView?スi?スX?ス?ス?スb?スh?ス?ス?ス?ス?スj?ス?ス?スX?スV?ス?ス?ス?ス
667     procedure RefreshListView(Thread: TThreadItem);
668 h677 1.598 //! ?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス`?スF?スb?スN?スN?ス?ス?スA
669     procedure ClearThreadRengeAction;
670 h677 1.614 //! ?ス^?スX?スN?スg?ス?ス?スC?ス?ス?スA?スC?スR?ス?ス?スo?ス^?ス?ス?スt?スH?ス[?ス?ス?スB?ス?ス
671     procedure StoredTaskTray;
672     //! ?ス^?スX?スN?スg?ス?ス?スC?ス?ス?スA?スC?スR?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス\?ス?ス
673     procedure UnStoredTaskTray;
674 hi_ 1.1 protected
675     procedure CreateParams(var Params: TCreateParams); override;
676 yoffy 1.2 procedure WndProc(var Message: TMessage); override;
677 hi_ 1.1 procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
678     procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
679     procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
680 yoffy 1.216
681 hi_ 1.1 public
682     { Public ?ス?ス?ス?ス }
683 h677 1.533 LastRoundTime: TDateTime;
684     BrowserNullTab: TBrowserRecord;
685 hi_ 1.1 FControlThread: TThreadControl;
686 h677 1.614 FIconData : TNotifyIconData;
687 yoffy 1.444 procedure MoveToURL(const inURL: string);
688 h677 1.530 function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord;
689 hi_ 1.1 procedure ReloadBBS;
690     function GetHttpState: Boolean;
691     procedure SetEnabledCloseButton(Enabled: Boolean);
692     function GetTreeNode(Data: TObject): TTreeNode;
693     procedure ListViewAllSelect;
694     property ListStyle: TViewStyle read FListStyle write FListStyle;
695     property ItemNoVisible: Boolean read FItemNoVisible write FItemNoVisible;
696     property ViewType: TGikoViewType read FViewType write FViewType;
697     property NameCookie: string read FNameCookie write FNameCookie;
698     property MailCookie: string read FMailCookie write FMailCookie;
699 h677 1.532 property ClickNode: TTreeNode read FClickNode write FClickNode;
700 h677 1.538 property TreeType: TGikoTreeType read FTreeType write FTreeType;
701 h677 1.534 property ActiveContent: TBrowserRecord read FActiveContent write FActiveContent;
702 h677 1.533 property ResRangeMenuSelect: Longint read FResRangeMenuSelect write FResRangeMenuSelect;
703 h677 1.534 property SelectResWord : string read FSelectResWord write FSelectResWord;
704     property BrowserSizeWidth: Integer read FBrowserSizeWidth write FBrowserSizeWidth;
705     property BrowserSizeHeight: Integer read FBrowserSizeHeight write FBrowserSizeHeight;
706     property SearchDialog: TSearchDialog read FSearchDialog write FSearchDialog;
707     property ToolBarSettingSender : TToolBarSettingSenderType
708     read FToolBarSettingSender write FToolBarSettingSender;
709 h677 1.535 property ScreenCursor : TCursor read GetScreenCursor write SetScreenCursor;
710 h677 1.538 property ActiveBBS : TBBS read FActiveBBS write FActiveBBS;
711     property WorkCount: Integer read FWorkCount write FWorkCount;
712 h677 1.299 procedure SetContent(inThread: TBrowserRecord);
713 hi_ 1.1 function GetActiveContent: TThreadItem;
714     function GetActiveList: TObject;
715 h677 1.533
716 hi_ 1.1 procedure SetListViewType(AViewType: TGikoViewType); overload;
717     procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
718     procedure PlaySound(SoundEventName: string);
719 yoffy 1.136 function AddHistory( FavItem: TFavoriteThreadItem ): Boolean;
720 hi_ 1.1 procedure ClearHistory;
721 yoffy 1.135 procedure SaveHistory;
722     procedure LoadHistory;
723 yoffy 1.123 procedure ShowBBSTree( inBBS : TBBS );
724 yoffy 1.248 procedure ShowBBSTreeOld( inBBS : TBBS );
725 hi_ 1.1 procedure ShowHistoryTree;
726     procedure SetHistoryTreeNode;
727     procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
728     procedure SetBrowserTabState;
729 yoffy 1.2 procedure SetToolBarPopup;
730 yoffy 1.100 procedure ShowFavoriteAddDialog( Item : TObject );
731 h677 1.433 procedure FavoritesURLReplace(oldURLs: TStringList; newURLs: TStringList);
732     procedure RoundListURLReplace(oldURLs: TStringList; newURLs: TStringList);
733 yoffy 1.143 property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
734     property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
735     property OddColor : TColor read FOddColor write FOddColor;
736 yoffy 1.209 function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
737 yoffy 1.218 procedure OnPlugInMenuItem( Sender : TObject );
738 h677 1.433 procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
739     /// ListView ?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スu?ス?ス?ス?ス?ス?ス KuroutSetting?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
740     procedure ActiveListColumnSave;
741     procedure SetActiveList(Obj: TObject);
742     property ActiveList: TObject read GetActiveList write SetActiveList;
743 h677 1.482 /// CoolBar ?ス?ス?スT?スC?スY?ス?ス?スX?ス?ス?ス?ス?ス?ス
744     procedure CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
745 h677 1.485 //?ス?ス?ス?スID?ス?ス?ス?ス?ス?ス?ス`?ス?ス
746     procedure IndividualAbonID(Atype : Integer);
747     //?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス`?ス?ス
748     procedure IndividualAbon(Atag, Atype : Integer);
749 h677 1.532 //?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス`?ス?ス true:?スS?ス?ス?ス?ス?ス^?スu false:?スA?スN?スe?スB?スu?ス?ス?ス^?スu?ス?ス?ス?ス
750     procedure RepaintAllTabsBrowser();
751     //?ス?ス?ス?ス?スN?スo?ス[?ス?ス?ス?ス
752     procedure SetLinkBar;
753     procedure FavoriteBrowseFolder( node: TTreeNode );
754     //?スX?ス?ス?スb?スh?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh
755     procedure DownloadContent(ThreadItem: TThreadItem; ForceDownload: Boolean = False);
756     //?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh
757     procedure DownloadList(Board: TBoard; ForceDownload: Boolean = False);
758     //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
759     procedure DeleteHistory( threadItem: TThreadItem );
760 h677 1.606 //?ス^?スu?ス?ス?ス?ス?ス?ス ?スX?ス?ス?スb?スh?スw?ス?ス
761 h677 1.532 procedure DeleteTab(ThreadItem: TThreadItem); overload;
762 h677 1.606 //?ス^?スu?ス?ス?ス?ス?ス?ス ?スu?ス?ス?スE?スU?ス?ス?スR?ス[?スh?スi?ス^?スu?スj?スw?ス?ス
763 h677 1.533 procedure DeleteTab(BrowserRecord: TBrowserRecord); overload;
764 h677 1.606 // ?ス^?スu?ス?ス?ス?ス?スi?ス?ス?ス?ス?ス?ス?スj
765     procedure DeleteTab(index, selectIndex: Integer); overload;
766 h677 1.533 //?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スb?スh?ス?ス?スX?スN?ス?ス?ス[?ス?ス
767 h677 1.552 procedure BrowserMovement(const AName: string);
768 h677 1.533 //Application?ス?スMainForm?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
769 h677 1.534 function GetMainForm(): TComponent;
770 h677 1.533 procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
771 h677 1.534 //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スJ?スn
772     procedure OnGestureStart(Sender: TObject);
773     //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?ス?ス
774     procedure OnGestureMove(Sender: TObject);
775     //! ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スI?ス?ス
776     procedure OnGestureEnd(Sender: TObject);
777     /// ?スo?ス?ス?スh?ス?ス?ス?ス?ス?ス?スv?スZ?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
778     procedure ResetBandInfo( bar : TGikoCoolBar; band : TToolBar );
779 h677 1.535 //ListView?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スC?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
780     procedure SelectListItem(List: TList);
781 h677 1.536 //?スw?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?スR?スs?ス[?ス?ス?ス?ス
782     procedure KonoresCopy(Number: Integer; ReplaceTag : Boolean);
783 h677 1.537 //
784     procedure ModifySelectList;
785     //
786     procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload;
787     //
788     procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string; ParentName: string); overload;
789 h677 1.538 //
790 h677 1.537 procedure SetSelectRoundName(Sender: TObject);
791 h677 1.538 //
792     function GetCoolBand(CoolBar: TCoolBar; Control: TWinControl): TCoolBand;
793     //
794     function WebBrowserClick(Sender: TObject): WordBool;
795 h677 1.550 //! ?スc?ス[?ス?ス?スo?ス[?ス?ス?スX?ス?ス?スi?ス?ス?ス?ス?スR?ス?ス?ス{?ス{?スb?スN?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
796     procedure SetSelectComboBox();
797 h677 1.585
798 h677 1.614 //! ?ス^?スX?スN?スg?ス?ス?スC?ス?ス?スi?ス[?ス?ス?ス?ス?スA?スC?スR?ス?ス?ス?ス?スN?ス?ス?スb?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
799     procedure TaskTrayIconMessage(var Msg : TMsg); message WM_USER + 2010;
800    
801 hi_ 1.1 published
802     property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
803     end;
804    
805     TFavoriteMenuItem = class(TMenuItem)
806     private
807     FData : Pointer;
808     public
809     property Data: Pointer read FData write FData;
810     end;
811    
812 yoffy 1.123 TBBSMenuItem = class(TMenuItem)
813     private
814     FData : Pointer;
815     public
816     property Data: Pointer read FData write FData;
817     end;
818    
819 hi_ 1.1 TLinkToolButton = class(TToolButton)
820     private
821     FData : Pointer;
822     public
823     property Data: Pointer read FData write FData;
824     end;
825    
826     var
827     GikoForm: TGikoForm;
828    
829     implementation
830    
831     uses
832 h677 1.536 GikoUtil, IndividualAbon, Math, Kotehan, KeySetting,
833 h677 1.614 YofUtils, ToolBarUtil, ToolBarSetting,
834 h677 1.536 GikoXMLDoc, RoundName, IniFiles, FavoriteAdd,
835 h677 1.542 FavoriteArrange, AddressHistory, Preview, Gesture,
836 yoffy 1.480 About, Option, Round, Splash, Sort, ListSelect, Imm,
837 h677 1.521 NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter,
838 h677 1.583 HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage,
839     InputAssistDataModule;
840 hi_ 1.1
841     const
842     BLANK_HTML: string = 'about:blank';
843 h677 1.542 BROWSER_COUNT = 5; //?スu?ス?ス?スE?スU?ス?ス?ス?ス
844     //D&D?ス?ス?スl
845     DandD_THRESHOLD = 5; //D&D?ス?ス?ス?ス?スl?スipixcel)
846     //?スv?ス?ス?スr?ス?ス?ス[?スt?ス@?スC?ス?ス?ス?ス
847     HTML_FILE_NAME = 'temp_preview.html';
848     ITEM_ICON_THREADLOG1 = 6; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
849     ITEM_ICON_THREADLOG2 = 7; //?スX?ス?ス?スA?スC?スR?ス?ス?スi?ス?ス?スO?ス?ス?ス?ス?スj
850     //?ス?ス?スb?スZ?ス[?スWID
851 yoffy 1.278 USER_TREECLICK = WM_USER + 2000;
852     USER_RESIZED = WM_USER + 2001;
853     USER_MINIMIZED = WM_USER + 2002;
854     USER_SETLINKBAR = WM_USER + 2003;
855 yoffy 1.434 USER_DOCUMENTCOMPLETE = WM_USER + 2004; ///< wParam : TWebBrowser
856 h677 1.614 USER_TASKTRAY = WM_USER + 2010;
857 hi_ 1.1 {$R *.DFM}
858    
859     procedure TGikoForm.CreateParams(var Params: TCreateParams);
860     begin
861     inherited;
862     if FormStyle in [fsNormal, fsStayOnTop] then begin
863     if BorderStyle in [bsSingle, bsSizeable] then begin
864     Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
865     Params.WndParent := 0;
866     end;
867     end;
868     end;
869    
870     procedure TGikoForm.FormCreate(Sender: TObject);
871     const
872     TVS_NOTOOLTIPS = $0080;
873     var
874     FileName: string;
875     Style: DWORD;
876     msg: string;
877     i: Integer;
878     wp: TWindowPlacement;
879     begin
880     {$IFDEF DEBUG}
881     AllocConsole;
882     Writeln('============================================================');
883     Writeln(' ?スM?スR?スi?スr?スf?スo?スb?スO ?スR?ス?ス?ス\?ス[?ス?ス');
884     Writeln('');
885     Writeln(' ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB');
886     Writeln(' ?スI?ス?ス?ス?ス?ス?ス?スA?スM?スR?スi?スr?スE?スB?ス?ス?スh?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス');
887     Writeln('============================================================');
888     {$ENDIF}
889 h677 1.580 //try
890 h677 1.586 Sort.SetSortDate(Now());
891    
892 h677 1.514 FTreeType := gttNone;
893     // ?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
894 h677 1.471 FStartUp := true;
895 hi_ 1.1 Application.HookMainWindow(Hook);
896 h677 1.514 FIsIgnoreResize := rtResizing;
897 h677 1.581 //ActionList?ス?スGuoupIndex?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA0?ス?ス?スN?ス?ス?スA?ス?ス?ス?ス?スB
898     //(?スN?ス?ス?ス?ス?ス?ス?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?スDown?スv?ス?ス?スp?スe?スB?ス?ス?ス?ス?スf?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?スGroupIndex?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス)
899     //?ス?ス?ス?ス?ス?ス?ス?スSet?ス`?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スAAction?ス?スChecked?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI
900     GetGroupIndex(GikoDM.GikoFormActionList);
901 yoffy 1.51 FSearchDialog := nil;
902 h677 1.550 CreateBrowsers(BROWSER_COUNT);
903 h677 1.303
904 h677 1.514 //?ス?ス?スj?ス?ス?ス[?スt?スH?ス?ス?スg
905     SetMenuFont;
906 yoffy 1.216
907 hi_ 1.1 //?ス?ス?ス?ス?スJ?ス[?ス\?ス?ス
908     Screen.Cursors[5] := LoadCursor(HInstance, 'GIKOHAND');
909    
910     //?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
911 h677 1.513 AddressHistoryDM.ReadHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
912 hi_ 1.1
913     EnabledCloseButton := True;
914 h677 1.176
915 hi_ 1.1 //?ス?ス?スX?スg?スX?ス^?スC?ス?ス
916     ListView.ViewStyle := GikoSys.Setting.ListStyle;
917    
918     //?スA?スj?ス?ス?スp?スl?ス?ス?ス?ス?スu
919     AnimePanel.Top := 0;
920     AnimePanel.Left := 0;
921    
922     //?スe?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
923    
924     //?スL?ス?ス?スr?スl?スb?スg
925     CabinetPanel.Width := GikoSys.Setting.CabinetWidth;
926    
927     //?ス?ス?スb?スZ?ス[?スW?スo?ス[
928 h677 1.539 GikoDM.MsgBarVisibleAction.Checked := GikoSys.Setting.MessageBarVisible;
929     GikoDM.MsgBarVisibleActionExecute(nil);
930 hi_ 1.1 MessagePanel.Height := GikoSys.Setting.MessegeBarHeight;
931    
932     //?スX?スe?ス[?ス^?スX?スo?ス[
933 h677 1.539 GikoDM.StatusBarVisibleAction.Checked := GikoSys.Setting.StatusBarVisible;
934     GikoDM.StatusBarVisibleActionExecute(nil);
935 hi_ 1.1
936     //?スt?スH?ス?ス?スg?スE?スF?ス?ス?ス?ス
937     TreeView.Items.BeginUpdate;
938 yoffy 1.100 FavoriteTreeView.Items.BeginUpdate;
939 hi_ 1.1 ListView.Items.BeginUpdate;
940     try
941     TreeView.Font.Name := GikoSys.Setting.CabinetFontName;
942     TreeView.Font.Size := GikoSys.Setting.CabinetFontSize;
943     TreeView.Font.Color := GikoSys.Setting.CabinetFontColor;
944     TreeView.Color := GikoSys.Setting.CabinetBackColor;
945 h677 1.473 FavoriteTreeView.Font.Assign(TreeView.Font);
946 yoffy 1.67 FavoriteTreeView.Color := GikoSys.Setting.CabinetBackColor;
947    
948 hi_ 1.1 ListView.Font.Name := GikoSys.Setting.ListFontName;
949     ListView.Font.Size := GikoSys.Setting.ListFontSize;
950     ListView.Font.Color := GikoSys.Setting.ListFontColor;
951 h677 1.473 ListView.Font.Style := [];
952     if GikoSys.Setting.ListFontBold then
953     ListView.Font.Style := [fsbold];
954     if GikoSys.Setting.ListFontItalic then
955     ListView.Font.Style := ListView.Font.Style + [fsitalic];
956    
957 yoffy 1.418 ListViewBackGroundColor := clWhite; // ?スf?スt?スH?ス?ス?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
958     ListViewBackGroundColor := GikoSys.Setting.ListBackColor; // ?ス?ス?ス[?スU?ス?ス?ス`?ス?ス?ス?ス?スX
959 yoffy 1.236 FUseOddResOddColor := GikoSys.Setting.UseOddColorOddResNum;
960     FOddColor := GikoSys.Setting.OddColor;
961 h677 1.109
962 hi_ 1.1 finally
963     TreeView.Items.EndUpdate;
964 yoffy 1.100 FavoriteTreeView.Items.EndUpdate;
965 hi_ 1.1 ListView.Items.EndUpdate;
966     end;
967     //ViewNoButton.Down := GikoSys.Setting.ListViewNo;
968 h677 1.539 GikoDM.ListNumberVisibleAction.Checked := GikoSys.Setting.ListViewNo;
969 hi_ 1.1
970 h677 1.581 //?ス~?ス?ス?ス[?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
971     GikoDM.MuteAction.Checked := GikoSys.Setting.Mute;
972    
973     // ?ス?ス?スX?ス\?ス?ス?ス?ス?ス?ス
974     FResRangeMenuSelect := GikoSys.ResRange;
975     case GikoSys.ResRange of
976     Ord( grrAll ):
977     begin
978     GikoDM.AllResAction.Execute;
979     end;
980     Ord( grrSelect ):
981     begin
982     SelectComboBox.Text := SelectComboBox.Items[ 1 ];
983     GikoDM.SelectResAction.Checked := True;
984     end;
985     else
986     case FResRangeMenuSelect of
987     Ord( grrKoko ): GikoDM.OnlyKokoResAction.Checked := True;
988     Ord( grrNew ): GikoDM.OnlyNewResAction.Checked := True;
989     100: GikoDM.OnlyAHundredResAction.Checked := True;
990     end;
991     end;
992    
993     // ?スX?ス?ス?スb?スh?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス
994     case GikoSys.Setting.ThreadRange of
995     gtrAll:
996     begin
997     GikoDM.AllItemAction.Checked := True;
998     ViewType := gvtAll;
999     end;
1000     gtrLog:
1001     begin
1002     GikoDM.LogItemAction.Checked := True;
1003     ViewType := gvtLog;
1004     end;
1005     gtrNew:
1006     begin
1007     GikoDM.NewItemAction.Checked := True;
1008     ViewType := gvtNew;
1009     end;
1010 h677 1.592 gtrLive:
1011     begin
1012     GikoDM.LiveItemAction.Checked := True;
1013     ViewType := gvtLive;
1014     end;
1015     gtrArch:
1016     begin
1017     GikoDM.ArchiveItemAction.Checked := True;
1018     ViewType := gvtArch;
1019     end;
1020 h677 1.581 end;
1021    
1022    
1023 hi_ 1.1 //?スu?ス?ス?スE?スU?ス^?スu?スt?スH?ス?ス?スg
1024     BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName;
1025     BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize;
1026 h677 1.473 BrowserTab.Font.Style := [];
1027     if GikoSys.Setting.BrowserTabFontBold then
1028     BrowserTab.Font.Style := [fsBold];
1029     if GikoSys.Setting.BrowserTabFontItalic then
1030     BrowserTab.Font.Style := GikoForm.BrowserTab.Font.Style + [fsItalic];
1031 h677 1.582 BrowserTab.DoubleBuffered := True;
1032 yoffy 1.133 FDragWFirst := false;
1033 h677 1.299 SetContent(BrowserNullTab); //?スu?ス?ス?スE?スU?ス?ス?ス?ス?ス?ス?ス\?ス?ス
1034    
1035 h677 1.581 //?スu?ス?ス?スE?スU?ス^?スu
1036     GikoDM.BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1037    
1038     if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1039     GikoDM.BrowserTabTopAction.Checked := True;
1040     end else begin
1041     GikoDM.BrowserTabBottomAction.Checked := True;
1042     end;
1043    
1044     if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1045     GikoDM.BrowserTabTabStyleAction.Checked := True;
1046     end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1047     GikoDM.BrowserTabButtonStyleAction.Checked := True;
1048     end else begin
1049     GikoDM.BrowserTabFlatStyleAction.Checked := True;
1050     end;
1051    
1052 h677 1.514 //?スv?ス?ス?スO?ス?ス?スX?スo?ス[?ス?ス?ス?ス?ス?ス?ス?ス
1053     ProgressBar.Parent := StatusBar;
1054     ProgressBar.Top := 2;
1055     ProgressBar.Left := 0;
1056     ProgressBar.Width := StatusBar.Panels[0].Width;
1057     ProgressBar.Height := StatusBar.Height - 2;
1058     ProgressBar.Position := 0;
1059    
1060     // ?スO?ス?ス?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス[?スh(ReadBoardFile, LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1061     InitializeBoardPlugIns;
1062    
1063     // ?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス(ReadFavorite ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1064     GikoSys.ListBoardFile;
1065 h677 1.580 //?ス@?スA?ス?ス?スN?ス?ス?ス?ス?ス?ス?スX?スv?ス?ス?スb?スV?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス
1066     try
1067 h677 1.514 // ?スX?スv?ス?ス?スb?スV?ス?ス?スE?スB?ス?ス?スh?スE?ス?ス?スv?ス?ス?スO?ス?ス?スX?スo?ス[?ス?ス?ス?ス?ス?ス
1068 h677 1.580 if (SplashWindow <> nil) then begin
1069     SplashWindow.ProgressBar.Max := Length(BBSs) * 20;
1070     end;
1071     except
1072     end;
1073 h677 1.514 // ?ス?ス?ス?ス?ス?ス?ス?スBBS?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1074     for i := Length(BBSs) - 1 downto 0 do begin
1075     if not BBSs[i].IsBoardFileRead then
1076     GikoSys.ReadBoardFile(BBSs[i]);
1077    
1078     if SplashWindow <> nil then begin
1079     SplashWindow.ProgressBar.StepBy(20);
1080     SplashWindow.Update;
1081     end;
1082     end;
1083 h677 1.580
1084 h677 1.514 //?ス?ス?ス?ス?スf?ス[?ス^?ス?ス?ス?ス?ス?ス?ス?ス
1085     RoundList := TRoundList.Create;
1086     RoundList.LoadRoundBoardFile;
1087     RoundList.LoadRoundThreadFile;
1088    
1089     //TreeView?ス?ス?ス?ス?ス?ス?スL?ス?スToolTip?ス?ス?ス?ス?ス\?ス?ス
1090     Style := GetWindowLong(TreeView.Handle, GWL_STYLE);
1091     Style := Style or TVS_NOTOOLTIPS;
1092     SetWindowLong(TreeView.Handle, GWL_STYLE, Style);
1093    
1094     // ?スc?ス?ス?ス[?ス?ス?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1095     TreeView.Align := alClient;
1096     FavoriteTreeView.Align := alClient;
1097     FavoriteTreeView.Visible := False;
1098    
1099     // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
1100     SetBBSMenu;
1101 hi_ 1.1
1102     //?ス?ス?ス?ス?ス?ス?スE?スE?スB?ス?ス?スh?スE?ス?ス?スu?ス?ス?ス?ス
1103     wp.length := sizeof(wp);
1104     wp.rcNormalPosition.Top := GikoSys.Setting.WindowTop;
1105     wp.rcNormalPosition.Left := GikoSys.Setting.WindowLeft;
1106     wp.rcNormalPosition.Bottom := GikoSys.Setting.WindowTop + GikoSys.Setting.WindowHeight;
1107     wp.rcNormalPosition.Right := GikoSys.Setting.WindowLeft + GikoSys.Setting.WindowWidth;
1108     wp.showCmd := SW_HIDE;
1109     SetWindowPlacement(Handle, @wp);
1110 h677 1.514 //Self.Update;
1111 hi_ 1.1
1112     if GikoSys.Setting.WindowMax then
1113 h677 1.514 WindowState := wsMaximized;
1114 hi_ 1.1
1115     //?スM?スR?スA?スj?ス?ス
1116     try
1117     FileName := GikoSys.GetAppDir + 'gikoNavi.avi';
1118     if FileExists(FileName) then
1119     Animate.FileName := FileName;
1120     except
1121     end;
1122    
1123     //?スN?スb?スL?ス[
1124     FNameCookie := '';
1125     FMailCookie := '';
1126    
1127     //?スu?ス?ス?スE?スU?スT?スC?スY?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス
1128     FBrowserSizeHeight := GikoSys.Setting.ListHeight;
1129     FBrowserSizeWidth := GikoSys.Setting.ListWidth;
1130    
1131 yoffy 1.420
1132     // ?スq?スX?スg?ス?ス?ス?ス?スX?スg(LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1133     FHistoryList := TList.Create;
1134    
1135     // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1136     LoadHistory;
1137    
1138     //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1139     FavoriteDM.SetFavTreeView(FavoriteTreeView);
1140     FavoriteDM.ReadFavorite;
1141    
1142 h677 1.539 GikoDM.ArrangeAction.Checked := not (GikoSys.Setting.ListOrientation = gloVertical);
1143     GikoDM.ArrangeAction.Execute;
1144 hi_ 1.1
1145     if GikoSys.Setting.ListOrientation = gloHorizontal then begin
1146     case GikoSys.Setting.ListWidthState of
1147     glsMax: begin
1148     ViewPanel.Width := 1;
1149 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_NORMAL;
1150     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MIN;
1151 hi_ 1.1 end;
1152     glsMin: begin
1153     ViewPanel.Width := GikoSys.Setting.ListWidth;
1154 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MAX;
1155     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_NORMAL;
1156 hi_ 1.1 end;
1157     else begin
1158     ViewPanel.Width := GikoSys.Setting.ListWidth;
1159 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MAX;
1160     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_WIDTH_MIN;
1161 hi_ 1.1 end;
1162     end;
1163     end else begin
1164     case GikoSys.Setting.ListHeightState of
1165     glsMax: begin
1166     ViewPanel.Height := 1;
1167 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_NORMAL;
1168     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MIN;
1169 hi_ 1.1 end;
1170     glsMin: begin
1171     ViewPanel.Height := GikoSys.Setting.ListHeight;
1172 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MAX;
1173     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_NORMAL;
1174 hi_ 1.1 end;
1175     else begin
1176     ViewPanel.Height := GikoSys.Setting.ListHeight;
1177 h677 1.558 GikoDM.BrowserMaxAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MAX;
1178     GikoDM.BrowserMinAction.ImageIndex := GikoDataModule.TOOL_ICON_HEIGHT_MIN;
1179 hi_ 1.1 end;
1180     end;
1181     end;
1182    
1183     //?ス_?スE?ス?ス?ス?ス?ス[?スh?スI?スu?スW?スF?スN?スg
1184 h677 1.550 CreateControlThread();
1185 hi_ 1.1
1186 yoffy 1.51 // ?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1187     SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1188 yoffy 1.2
1189 hi_ 1.1 //?スu?ス?ス?スE?スU?ス^?スu?ス?ス?ス?ス
1190     SetBrowserTabState;
1191    
1192     BrowserBoardNameLabel.Caption := '';
1193     BrowserNameLabel.Caption := '';
1194     FWorkCount := 0;
1195    
1196     FTabHintIndex := -1;
1197    
1198     //?スc?ス[?ス?ス?スo?ス[Wrapable
1199     ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1200     BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1201    
1202 yoffy 1.236 MakeDefaultINIFile();
1203 yoffy 1.2 //?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1204 h677 1.539 ReadToolBarSetting(GikoDM.GikoFormActionList, StdToolBar);
1205     ReadToolBarSetting(GikoDM.GikoFormActionList, ListToolBar);
1206     ReadToolBarSetting(GikoDM.GikoFormActionList, BrowserToolBar);
1207 yoffy 1.2 SetToolBarPopup;
1208 yoffy 1.375
1209 h677 1.517 //ListToolBar?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スi?ス?ス?ス?スComboBox?ス?ス?スz?スu
1210 h677 1.550 SetSelectComboBox();
1211 h677 1.514
1212     //?スA?スh?ス?ス?スX?スo?ス[
1213     AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1214    
1215     //?ス?ス?ス?ス?スN?スo?ス[
1216     SetLinkBar;
1217 yoffy 1.2 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス?ス?スFormShow?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1218    
1219     //?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?ス\?ス?ス
1220     if not FileExists(GikoSys.GetBoardFileName) then begin
1221     msg := '?ス?ス?ス?ス?ス?ス?スb?スZ?ス[?スW?ス?ス?スM?スR?スi?スr?ス?ス?ス?ス?ス?ス?ス?ス?スg?スp?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スP?ス?ス?ス?ス?ス?ス?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス' + #13#10#13#10
1222     + '?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?スQ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?ス?ス?ス?ス?ス?ス' + #13#10
1223     + '?ス?ス?ス?ス?スo?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?スX?スV?スv?ス{?ス^?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB';
1224     MsgBox(SplashWindow.Handle, msg, '?スM?スR?スi?スr', MB_OK or MB_ICONINFORMATION);
1225 h677 1.539 GikoDM.NewBoardAction.Execute;
1226 yoffy 1.2 end;
1227    
1228     //?スL?ス[?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1229 h677 1.560 GikoSys.LoadKeySetting(GikoDM.GikoFormActionList, GikoSys.GetMainKeyFileName);
1230 yoffy 1.2
1231     //?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス
1232     // FLastRoundTime := 0;
1233    
1234     //ResHint
1235     FHint := TResPopup.Create(Self);
1236    
1237 h677 1.547 ListView.OnData := TListViewUtils.ListViewData;
1238 h677 1.529
1239 yoffy 1.100 // ?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?ス?ス?ス?ス?ス?ス
1240 h677 1.299 CabinetVisible( False );
1241 yoffy 1.141 if GikoSys.Setting.CabinetVisible then begin
1242     i := CabinetSelectPopupMenu.Items.Count - 1;
1243     if GikoSys.Setting.CabinetIndex = i - 1 then
1244 h677 1.539 GikoDM.CabinetHistoryAction.Execute
1245 yoffy 1.141 else if GikoSys.Setting.CabinetIndex = i then
1246 h677 1.539 GikoDM.CabinetFavoriteAction.Execute
1247 yoffy 1.141 else begin
1248     if GikoSys.Setting.CabinetIndex < Length( BBSs ) then
1249     ShowBBSTree( BBSs[ GikoSys.Setting.CabinetIndex ] );
1250 yoffy 1.265 // ?スN?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス 2
1251 yoffy 1.424 FIsIgnoreResize := rtResizing;
1252 h677 1.539 GikoDM.CabinetBBSAction.Execute;
1253 yoffy 1.141 end;
1254     end else begin
1255 yoffy 1.248 ShowBBSTreeOld( BBSs[ 0 ] );
1256     PostMessage( Handle, USER_TREECLICK, 0, 0 );
1257 yoffy 1.141 end;
1258 yoffy 1.67
1259 yoffy 1.2 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?スJ?ス?ス?スi?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス_?スE?ス?ス?ス?ス?ス[?スh?スj
1260     for i := 1 to ParamCount do begin
1261     MoveToURL(ParamStr(i));
1262     end;
1263 h677 1.22
1264 h677 1.567 GikoDM.RepaintStatusBar;
1265 hi_ 1.32 StatusBarResize(Sender);
1266 h677 1.187
1267 yoffy 1.236 dummy1.Caption := ItemReservPMenu.Caption;
1268     dummy1.Hint := ItemReservPMenu.Hint;
1269 yoffy 1.216
1270 yoffy 1.500 {$IFDEF SPAM_FILTER_ENABLED}
1271 yoffy 1.468 // ?スX?スp?ス?ス?スt?スB?ス?ス?ス^?スw?スK?ス?ス?ス?ス
1272     GikoSys.Bayesian.LoadFromFile( GikoSys.Setting.GetSpamFilterFileName );
1273 yoffy 1.500 {$ENDIF}
1274 yoffy 1.468
1275 yoffy 1.456 // ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[
1276     MouseGesture := TMouseGesture.Create;
1277     GikoSys.Setting.Gestures.LoadGesture(
1278 h677 1.539 GikoSys.Setting.GetGestureFileName, GikoDM.GikoFormActionList );
1279 yoffy 1.456 MouseGesture.Margin := GikoSys.Setting.Gestures.Margin;
1280     MouseGesture.OnGestureStart := OnGestureStart;
1281     MouseGesture.OnGestureMove := OnGestureMove;
1282     MouseGesture.OnGestureEnd := OnGestureEnd;
1283 yoffy 1.457 if GikoSys.Setting.GestureEnabled then
1284     MouseGesture.SetHook( Handle );
1285 genyakun 1.458
1286 h677 1.483 //2ch?ス?ス?ス?ス?ス?ス?ス?ス?スo?ス?ス
1287 h677 1.562 GikoSys.SetGikoMessage;
1288 h677 1.514
1289 genyakun 1.497 //?スI?ス[?スg?ス?ス?スO?スC?ス?ス
1290     if GikoSys.Setting.AutoLogin then
1291 h677 1.539 GikoDM.LoginAction.Execute;
1292 genyakun 1.497
1293 h677 1.514 GikoSys.Setting.BeLogin := GikoSys.Setting.BeAutoLogin;
1294 h677 1.541
1295     //?スL?ス?ス?スv?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1296     FavoriteAddToolButton.Caption := '?ス?ス?ス?ス...';
1297 h677 1.547 AntiIndivAbonMenuItem.Caption := '?ス?ス?ス?ス?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス';
1298 h677 1.541
1299 h677 1.583 //?ス?ス?ス?ス?スA?スV?スX?スg?ス@?ス\?ス?ス?ス?ス?ス?ス?ス?ス
1300     InputAssistDM.Init(GikoSys.GetInputAssistFileName);
1301 h677 1.613
1302 yoffy 1.2 end;
1303    
1304 yoffy 1.216 // CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1305     procedure TGikoForm.SaveCoolBarSettings;
1306 yoffy 1.2 begin
1307    
1308 yoffy 1.424 if IsIconic( Handle ) or (FIsIgnoreResize <> rtNone) then
1309 yoffy 1.216 Exit;
1310 h677 1.471 SaveMainCoolBarSettings;
1311     SaveBoardCoolBarSettings;
1312     SaveBrowserCoolBarSettings;
1313 yoffy 1.2
1314 h677 1.471 end;
1315     procedure TGikoForm.SaveMainCoolBarSettings;
1316     var
1317     i : Integer;
1318     CoolSet : TCoolSet;
1319     begin
1320 yoffy 1.216 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Main)
1321     for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1322     CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1323     CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1324     CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1325     GikoSys.Setting.MainCoolSet[i] := CoolSet;
1326     end;
1327 h677 1.471 end;
1328     procedure TGikoForm.SaveBoardCoolBarSettings;
1329     var
1330     i : Integer;
1331     CoolSet : TCoolSet;
1332     begin
1333 yoffy 1.216 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Board)
1334     for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1335     CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1336     CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1337     CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1338     GikoSys.Setting.ListCoolSet[i] := CoolSet;
1339     end;
1340 h677 1.471 end;
1341     procedure TGikoForm.SaveBrowserCoolBarSettings;
1342     var
1343     i : Integer;
1344     CoolSet : TCoolSet;
1345     begin
1346 yoffy 1.216 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Browser)
1347     for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1348     CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1349     CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1350     CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1351     GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1352 yoffy 1.2 end;
1353 yoffy 1.216 end;
1354     // CoolBar ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1355     procedure TGikoForm.LoadCoolBarSettings;
1356     var
1357     i : Integer;
1358     CoolSet : TCoolSet;
1359     begin
1360 yoffy 1.2
1361 hi_ 1.1 //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Main)
1362     MainCoolBar.Bands.BeginUpdate;
1363     try
1364 yoffy 1.216 // for i := 0 to MainCoolBar.Bands.Count - 1 do begin
1365     for i := MAIN_COOLBAND_COUNT - 1 downto 0 do begin
1366 hi_ 1.1 CoolSet := GikoSys.Setting.MainCoolSet[i];
1367 yoffy 1.263 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1368 yoffy 1.424 FIsIgnoreResize := rtNone;
1369 yoffy 1.263 SaveCoolBarSettings;
1370     Exit;
1371     end;
1372 hi_ 1.1 MainCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1373     MainCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1374 yoffy 1.264 MainCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1375 hi_ 1.1 end;
1376     finally
1377     MainCoolBar.Bands.EndUpdate;
1378     end;
1379    
1380     //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Board)
1381     ListCoolBar.Bands.BeginUpdate;
1382     try
1383 yoffy 1.216 // for i := 0 to ListCoolBar.Bands.Count - 1 do begin
1384     for i := LIST_COOLBAND_COUNT - 1 downto 0 do begin
1385 hi_ 1.1 CoolSet := GikoSys.Setting.ListCoolSet[i];
1386 yoffy 1.263 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1387 yoffy 1.424 FIsIgnoreResize := rtNone;
1388 yoffy 1.263 SaveCoolBarSettings;
1389     Exit;
1390     end;
1391 hi_ 1.1 ListCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1392     ListCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1393     ListCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1394     end;
1395     finally
1396     ListCoolBar.Bands.EndUpdate;
1397     end;
1398    
1399     //?スN?ス[?ス?ス?スo?ス[?ス?ス?ス?ス(Browser)
1400     BrowserCoolBar.Bands.BeginUpdate;
1401     try
1402 yoffy 1.216 // for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
1403 h677 1.514 for i := BROWSER_COOLBAND_COUNT - 1 downto 0 do begin
1404 hi_ 1.1 CoolSet := GikoSys.Setting.BrowserCoolSet[i];
1405 yoffy 1.263 if (CoolSet.FCoolID = -1) or (CoolSet.FCoolWidth = -1) then begin
1406 yoffy 1.424 FIsIgnoreResize := rtNone;
1407 yoffy 1.263 SaveCoolBarSettings;
1408     Exit;
1409     end;
1410 hi_ 1.1 BrowserCoolBar.Bands.FindItemID(CoolSet.FCoolID).Index := i;
1411     BrowserCoolBar.Bands[i].Break := CoolSet.FCoolBreak;
1412     BrowserCoolBar.Bands[i].Width := CoolSet.FCoolWidth;
1413     end;
1414     finally
1415     BrowserCoolBar.Bands.EndUpdate;
1416     end;
1417    
1418     end;
1419 yoffy 1.216 //
1420     procedure TGikoForm.FormShow(Sender: TObject);
1421     begin
1422 h677 1.471 if FStartUp then begin
1423 h677 1.423 ShowWindow(Application.Handle, SW_HIDE);
1424    
1425     //FormCreate?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スf?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFormShow?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1426     //?スc?ス[?ス?ス?スo?ス[?ス\?ス?ス
1427 h677 1.539 GikoDM.StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1428     GikoDM.StdToolBarVisibleActionExecute( nil );
1429     GikoDM.AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1430     GikoDM.AddressBarVisibleActionExecute( nil );
1431     GikoDM.LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1432     GikoDM.LinkBarVisibleActionExecute( nil );
1433     GikoDM.ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1434     GikoDM.ListToolBarVisibleActionExecute( nil );
1435     GikoDM.ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1436     GikoDM.ListNameBarVisibleActionExecute( nil );
1437     GikoDM.BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1438     GikoDM.BrowserToolBarVisibleActionExecute( nil );
1439     GikoDM.BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1440     GikoDM.BrowserNameBarVisibleActionExecute( nil );
1441 h677 1.423
1442     // CoolBar ?ス?ス?ス?ス
1443     LoadCoolBarSettings;
1444 yoffy 1.265
1445 h677 1.514 //?スd?スv?ス@?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スc?ス[?ス?ス?ス{?ス^?ス?ス?ス?ス?スX?スV?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1446 h677 1.517 // ResetBandInfo( ListCoolBar, ListToolBar );
1447 yoffy 1.424 FIsIgnoreResize := rtNone;
1448 genyakun 1.382
1449 h677 1.423 //FormCrete?ス?ス?ス?ス?ス?ス?ス?ス?スB
1450     if GikoSys.Setting.TabAutoLoadSave then begin
1451 h677 1.611 GikoDM.TabsOpenAction.Tag := 1;
1452     GikoDM.TabsOpenAction.Execute;
1453     GikoDM.TabsOpenAction.Tag := 0;
1454 h677 1.423 end;
1455 h677 1.581
1456     //ActionList?ス?スGroupIndex?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1457     SetGroupIndex(GikoDM.GikoFormActionList);
1458 h677 1.547
1459 h677 1.471 FStartUp := false;
1460 yoffy 1.397 end;
1461 yoffy 1.239 end;
1462 yoffy 1.216
1463 hi_ 1.1 procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1464     begin
1465 yoffy 1.331 // if GikoForm.WindowState <> wsMinimized then
1466     // SaveCoolBarSettings;
1467 h677 1.599 CanClose := True;
1468 yoffy 1.236 if ( GikoSys.Setting.ShowDialogForEnd ) and
1469     (MessageDlg('?スM?スR?スi?スr?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スH', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then begin
1470     CanClose := false;
1471     Exit;
1472 h677 1.599 end;
1473    
1474     if GikoSys.Setting.TabAutoLoadSave then begin
1475 h677 1.611 GikoDM.TabsSaveAction.Execute;
1476 h677 1.599 end;
1477    
1478     if (SearchDialog <> nil) then begin
1479     if (SearchDialog.Visible) then begin
1480     SearchDialog.Close;
1481     try
1482     SearchDialog.Release;
1483     except
1484     end;
1485     SearchDialog := nil;
1486 yoffy 1.398 end;
1487 yoffy 1.236 end;
1488 h677 1.609
1489     //?スX?スN?ス?ス?ス[?ス?ス?ス?ス?ス?ス?スS?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?スAEditorForm?ス?ス?ス?ス?ス?ス?ス?ス
1490     GikoDM.CloseAllEditorAction.Execute;
1491    
1492 h677 1.241 Application.UnhookMainWindow(Hook);
1493     Application.Terminate;
1494     end;
1495    
1496     procedure TGikoForm.FormDestroy(Sender: TObject);
1497     var
1498 yoffy 1.376 i : Integer;
1499 h677 1.241 // CoolSet: TCoolSet;
1500 yoffy 1.376 wp : TWindowPlacement;
1501     tmpBool : Boolean;
1502 h677 1.241 begin
1503 yoffy 1.460 // ?ス}?スE?スX?スW?スF?スX?ス`?ス?ス?ス[?スJ?ス?ス
1504 yoffy 1.456 try
1505     MouseGesture.UnHook;
1506     except
1507     end;
1508 yoffy 1.236 try
1509 yoffy 1.410 ActiveListColumnSave;
1510 yoffy 1.236 except
1511     end;
1512     try
1513 h677 1.234 //?ス?ス?ス?ス?ス?ス?スE?スE?スB?ス?ス?スh?スE?ス?ス?スu?ス?ス?ス?ス
1514     wp.length := sizeof(wp);
1515     GetWindowPlacement(Handle, @wp);
1516     GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1517     GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1518     GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1519     GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1520     GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1521    
1522     GikoSys.Setting.ListStyle := ListView.ViewStyle;
1523 h677 1.539 GikoSys.Setting.CabinetVisible := GikoDM.CabinetVisibleAction.Checked;
1524 h677 1.234 GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1525     GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1526     GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1527 h677 1.539 if GikoDM.ArrangeAction.Checked then
1528 h677 1.234 GikoSys.Setting.ListOrientation := gloVertical
1529     else
1530     GikoSys.Setting.ListOrientation := gloHorizontal;
1531     GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1532 yoffy 1.236 except
1533 yoffy 1.2 end;
1534 yoffy 1.378
1535     try
1536     // ?ス?ス?スX?ス\?ス?ス?ス?ス?ス?ス
1537     if not GikoSys.Setting.ResRangeHold then
1538 yoffy 1.380 GikoSys.Setting.ResRange := FResRangeMenuSelect;
1539 yoffy 1.378 except
1540     end;
1541 h677 1.483 if WindowState <> wsNormal then
1542     WindowState := wsNormal;
1543     SaveCoolBarSettings;
1544     try
1545     GikoSys.Setting.WriteWindowSettingFile;
1546     GikoSys.Setting.WriteNameMailSettingFile;
1547     except
1548     end;
1549 yoffy 1.378 // ?ス?ス?スA?ス?ス?ス^?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?スA?スE?スB?ス?ス?スh?スE?スT?スC?スY?ス?ス CoolBar ?ス?ス?ス?ス
1550 yoffy 1.216 // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スl?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1551 h677 1.482
1552 yoffy 1.263 // ?ス?スFormDestroy?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スv?ス?ス?スB?スi?ス?ス?ス?ス?ス?ス?ス@2004/04/09?スj
1553 yoffy 1.216 // CoolBar ?ス?ス?ス?ス
1554 h677 1.482 //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then
1555 h677 1.483
1556 h677 1.583 //?ス?ス?ス?ス?スA?スV?スX?スg?ス@?ス\?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1557     InputAssistDM.SaveToFile(GikoSys.GetInputAssistFileName);
1558 yoffy 1.2
1559     //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1560 hi_ 1.1 try
1561 yoffy 1.236 //FavoriteDM?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス
1562 yoffy 1.2 FavoriteDM.WriteFavorite;
1563 yoffy 1.236 FavoriteDM.Clear;
1564 hi_ 1.1 except
1565     end;
1566 h677 1.483 LockWindowUpdate(Self.Handle);
1567 hi_ 1.1 try
1568     //?ス^?スu?スN?ス?ス?ス[?スY
1569 h677 1.321 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
1570     GikoSys.Setting.ShowDialogForAllTabClose := false;
1571 h677 1.539 GikoDM.AllTabCloseAction.Execute;
1572 h677 1.483 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
1573 h677 1.299 except
1574     end;
1575 h677 1.321 try
1576     for i := FBrowsers.Count - 1 downto 0 do begin
1577     TWebBrowser(FBrowsers[i]).Free;
1578     end;
1579     FBrowsers.Clear;
1580     FBrowsers.Capacity := 0;
1581     finally
1582     FBrowsers.Free;
1583 h677 1.303 end;
1584 h677 1.299 try
1585     if BrowserNullTab <> nil then begin
1586     BrowserNullTab.Browser := nil; {*BrowserNullTab?ス?スBrowser?ス?ス?ス?ス?スv?ス?ス?ス?ス?ス\?ス?ス?スt?ス?ス?ス?ス?ス?ス?スz
1587     *?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スFree?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB
1588     *}
1589     BrowserNullTab.Free;
1590 hi_ 1.1 end;
1591     except
1592     end;
1593 h677 1.483
1594 h677 1.224 try
1595 yoffy 1.236 TreeView.Items.BeginUpdate;
1596 yoffy 1.380 TreeView.Items.GetFirstNode.Free;
1597 yoffy 1.236 TreeView.Items.Clear;
1598     TreeView.Items.EndUpdate;
1599 h677 1.224 except
1600     end;
1601 h677 1.230
1602 hi_ 1.1 //?スA?スh?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス
1603     try
1604 yoffy 1.236 //AddressHistoryDM?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スt?スH?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スI?ス?ス?ス?ス?ス?ス?ス?ス?スB
1605 h677 1.513 AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.MaxRecordCount);
1606 hi_ 1.1 except
1607     end;
1608    
1609 h677 1.234 //?スq?スX?スg?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス
1610 hi_ 1.1 try
1611 h677 1.234 SaveHistory;
1612 hi_ 1.1 except
1613     end;
1614 yoffy 1.236 try
1615     try
1616     ClearHistory;
1617     except
1618     end;
1619     finally
1620     FHistoryList.Free;
1621     end;
1622 h677 1.221
1623 h677 1.182 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス&?スj?ス?ス
1624     try
1625     RoundList.SaveRoundFile;
1626     except
1627     end;
1628 yoffy 1.236 try
1629 h677 1.234 try
1630 yoffy 1.236 RoundList.Clear;
1631 h677 1.234 except
1632     end;
1633 yoffy 1.236 finally
1634     RoundList.Free;
1635     end;
1636 h677 1.182
1637 yoffy 1.236 try
1638 h677 1.234 try
1639     FControlThread.Terminate;
1640 yoffy 1.236 FControlThread.WaitFor;
1641 h677 1.234 except
1642 h677 1.219 end;
1643 yoffy 1.236 finally
1644     FControlThread.Free;
1645     end;
1646 h677 1.609 // ?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス?ス[?ス?ス?スJ?ス?ス?ス?ス?ス?ス
1647     for i := GikoForm.PlugInMenu.Count - 1 downto 0 do begin
1648     GikoForm.PlugInMenu.items[i].Free;
1649     end;
1650     GikoForm.PlugInMenu.Clear;
1651    
1652 h677 1.230
1653 yoffy 1.155 // TBBS ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス TCategory, TBoard, TThreadItem ?ス?ス?ス?ス?ス?ス?ス?ス?スJ?ス?ス?ス?ス?ス?ス
1654     // TBoard, TThreadItem ?ス?ス?スf?スX?スg?ス?ス?スN?ス^?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?スj?ス?ス?ス?ス?ス`?ス?ス?ス?ス?ス?ス?ス?ス
1655     // BoardPluteIns ?ス?ス?スJ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス
1656 h677 1.550 for i := Length(BoardGroups) - 1 downto 0 do begin
1657 h677 1.517 //BoardGroups[i].Clear;
1658     BoardGroups[i].Free;
1659 h677 1.550 end;
1660 h677 1.514
1661 yoffy 1.126 try
1662 h677 1.220 for i := Length( BBSs ) - 1 downto 0 do begin
1663 h677 1.153 if BBSs[ i ] <> nil then
1664     BBSs[ i ].Free;
1665     BBSs[ i ] := nil;
1666     end;
1667     except
1668     end;
1669 yoffy 1.155
1670 h677 1.234 try
1671 yoffy 1.236 if FEvent <> nil then
1672     FEvent.Free;
1673 h677 1.181
1674 yoffy 1.2 //Hint?スj?ス?ス
1675     if FHint <> nil then begin
1676     FHint.ReleaseHandle;
1677     FHint.Free;
1678     FHint := nil;
1679     end;
1680     //Preview?スj?ス?ス
1681     if TPreviewBrowser <> nil then begin
1682     FPreviewBrowser.Free;
1683     FPreviewBrowser := nil;
1684     end;
1685     except
1686     end;
1687 h677 1.550 LockWindowUpdate(0);
1688 hi_ 1.1 end;
1689    
1690 yoffy 1.289 // ?スe?ス?ス?ス?ス?ス?ス?ス?ス?スL?ス?ス?スr?スl?スb?スg?スE BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スZ?スb?スg?ス^?スX?スV
1691     procedure TGikoForm.SetBBSMenu;
1692 yoffy 1.123 var
1693     i : Integer;
1694 yoffy 1.149 item : TBBSMenuItem;
1695 hi_ 1.1 begin
1696    
1697 yoffy 1.148 // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
1698     for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
1699     try
1700     if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
1701 yoffy 1.155 CabinetSelectPopupMenu.Items[ i ].Free;
1702     CabinetMenu.Items[ i ].Free;
1703 yoffy 1.289 BBSSelectPopupMenu.Items[ i ].Free;
1704 yoffy 1.148 end;
1705     except
1706     end;
1707     end;
1708 yoffy 1.289
1709     // ?ス?ス?スj?ス?ス?ス[?ス?ス?ス?ス?ス?ス
1710 yoffy 1.148 for i := Length( BBSs ) - 1 downto 0 do begin
1711     try
1712     item := TBBSMenuItem.Create( PopupMenu );
1713     item.Caption := BBSs[ i ].Title;
1714     item.Data := BBSs[ i ];
1715     item.OnClick := BBSMenuItemOnClick;
1716     CabinetSelectPopupMenu.Items.Insert( 0, item );
1717     item := TBBSMenuItem.Create( PopupMenu );
1718     item.Caption := BBSs[ i ].Title;
1719     item.Data := BBSs[ i ];
1720     item.OnClick := BBSMenuItemOnClick;
1721     CabinetMenu.Insert( 0, item );
1722 yoffy 1.289 item := TBBSMenuItem.Create( PopupMenu );
1723     item.Caption := BBSs[ i ].Title;
1724     item.Data := BBSs[ i ];
1725     item.OnClick := BBSMenuItemOnClick;
1726     BBSSelectPopupMenu.Items.Insert( 0, Item );
1727 yoffy 1.148 except
1728     end;
1729     end;
1730 yoffy 1.289
1731     end;
1732    
1733     procedure TGikoForm.ReloadBBS;
1734     var
1735     i : Integer;
1736 h677 1.321 tmpBool: Boolean;
1737 yoffy 1.289 begin
1738 h677 1.517 LockWindowUpdate(Self.Handle);
1739    
1740 yoffy 1.289 //?ス^?スu?スN?ス?ス?ス[?スY
1741 h677 1.321 tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
1742     GikoSys.Setting.ShowDialogForAllTabClose := false;
1743 h677 1.539 GikoDM.AllTabCloseAction.Execute;
1744 h677 1.321 GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
1745 h677 1.320 SetContent(BrowserNullTab);
1746 yoffy 1.289 //TreeView?スN?ス?ス?スA?スiBBS2ch.Free?ス?ス?ス?ス?ス?ス?スN?ス?ス?スA?ス?ス?ス?ス?ス?スXP?スX?ス^?スC?ス?ス?ス?ス?ス?ス?スG?ス?ス?ス[?スo?ス?ス?スj
1747     TreeView.Items.Clear;
1748    
1749 h677 1.515 //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?ス?ス
1750     try
1751     RoundList.SaveRoundFile;
1752     except
1753     end;
1754     //?ス?ス?ス?ス?ス?ス?スX?スg?ス?ス?スj?ス?ス
1755     try
1756     RoundList.Clear;
1757     except
1758     end;
1759    
1760     //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス
1761 h677 1.517 try
1762     SaveHistory;
1763     ClearHistory;
1764     except
1765     end;
1766 h677 1.515
1767     //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スj?ス?ス
1768 h677 1.517 try
1769     FavoriteDM.WriteFavorite;
1770     FavoriteDM.Clear;
1771     except
1772     end;
1773 h677 1.515
1774 h677 1.516 //?ス?ス?スE?スX?ス?ス?スEPLUGIN?ス?ス?スj?ス?ス
1775     for i := Length(BoardGroups) - 1 downto 0 do begin
1776 h677 1.517 try
1777     BoardGroups[i].Free;
1778     except
1779     end;
1780 h677 1.516 end;
1781 yoffy 1.289 //BBS?スj?ス?ス
1782     try
1783     for i := Length( BBSs ) - 1 downto 0 do begin
1784     if BBSs[ i ] <> nil then
1785     BBSs[ i ].Free;
1786     BBSs[ i ] := nil;
1787     end;
1788     except
1789     end;
1790    
1791     ActiveList := nil;
1792    
1793     FTreeType := gttNone;
1794 h677 1.516
1795     //============?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?ス?ス?ス?ス================================//
1796    
1797     // ?スO?ス?ス?ス?ス?スv?ス?ス?スO?スC?ス?ス?ス?ス?ス?ス?ス[?スh(ReadBoardFile, LoadHistory ?ス?ス?ス?ス?ス?ス?ス?ス?スs?ス?ス?ス?ス?ス?ス)
1798     InitializeBoardPlugIns;
1799    
1800 yoffy 1.289 GikoSys.ListBoardFile; //?ス{?ス[?スh?スt?ス@?スC?ス?ス?ス?ス?ス?ス
1801    
1802 h677 1.515 // ?ス?ス?ス?ス?ス?ス?ス?スBBS?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1803     for i := Length(BBSs) - 1 downto 0 do begin
1804     if not BBSs[i].IsBoardFileRead then
1805     GikoSys.ReadBoardFile(BBSs[i]);
1806     end;
1807    
1808 yoffy 1.289 // BBS ?ス?ス?スj?ス?ス?ス[?ス?ス?スX?スV
1809     SetBBSMenu;
1810    
1811 yoffy 1.123 ShowBBSTree( BBSs[ 0 ] );
1812 yoffy 1.143
1813     // ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1814     LoadHistory;
1815    
1816     //?ス?ス?スC?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1817     FavoriteDM.ReadFavorite;
1818 yoffy 1.279
1819 yoffy 1.143 SetLinkBar;
1820    
1821 h677 1.515 //?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1822 h677 1.514 RoundList.LoadRoundBoardFile;
1823     RoundList.LoadRoundThreadFile;
1824    
1825 h677 1.517 LockWindowUpdate(0);
1826 hi_ 1.1 end;
1827    
1828 yoffy 1.602 {!
1829     \todo ?ス?ス?ス?ス IE 7 ?ス?ス?ス?ス about:.. ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1830     (IE 7 ?ス?ス about:.. ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スM?スR?スi?スr?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス)
1831     ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1832     }
1833 hi_ 1.1 procedure TGikoForm.BrowserStatusTextChange(Sender: TObject; const Text: WideString);
1834     var
1835     p: TPoint;
1836     s: string;
1837     tmp2: string;
1838     URL: string;
1839     ATitle: Boolean;
1840    
1841 yoffy 1.130 threadItem : TThreadItem;
1842     board : TBoard;
1843 yoffy 1.163 Protocol, Host, Path, Document, Port, Bookmark: string;
1844 yoffy 1.130
1845 h677 1.333 wkInt: Integer;
1846 hi_ 1.1 wkIntSt: Integer;
1847     wkIntTo: Integer;
1848     ActiveFileName: string;
1849     e: IHTMLElement;
1850     Ext: string;
1851     PathRec: TPathRec;
1852 yoffy 1.602 Text2: string;
1853 hi_ 1.1 begin
1854 yoffy 1.602 // ?スM?スR?スi?スr?ス?ス?ス?ス?スX?スA?ス?ス?スJ?ス[?ス?ス about:blank.. ?ス?ス?スn?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
1855     // IE 7 ?ス?ス?ス?ス about:blank.. ?ス?ス?ス?ス?ス?ス?ス?ス about:.. ?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スA?スu?ス?ス?ス?ス?ス?ス(?ス?ス?ス?ス?ス?ス?ス?ス)
1856     if Pos('about:..', Text) = 1 then
1857 yoffy 1.603 Text2 := 'about:blank..' + Copy( Text, Length('about:..')+1, Length(Text) )
1858     else
1859     Text2 := Text;
1860 h677 1.316 if not( TObject(Sender) is TWebBrowser )then
1861     Exit;
1862 hi_ 1.1 try
1863     try
1864 h677 1.316 if (TWebBrowser(Sender) <> nil) and (not TWebBrowser(Sender).Busy) and (Assigned(TWebBrowser(Sender).Document)) then begin
1865     if LowerCase(OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset) <> 'shift_jis' then begin
1866     OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset := 'shift_jis';
1867 h677 1.306 end;
1868 hi_ 1.1 end;
1869     except
1870     end;
1871     finally
1872     end;
1873     if PreviewTimer.Enabled then
1874     PreviewTimer.Enabled := False;
1875     Application.CancelHint;
1876 h677 1.333 try
1877     if GetActiveContent <> nil then
1878     ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
1879     else
1880     ActiveFileName := '';
1881     except
1882     FActiveContent := nil;
1883     Exit;
1884     end;
1885 hi_ 1.1
1886 yoffy 1.602 StatusBar.Panels[1].Text := Text2;
1887 hi_ 1.1
1888     if FHint <> nil then begin
1889     FHint.ReleaseHandle;
1890     FHint.ClearAllRes;
1891     end;
1892     if FPreviewBrowser <> nil then
1893     ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
1894    
1895     if not GikoSys.Setting.UnActivePopup then
1896     if not GikoForm.Active then
1897     Exit;
1898    
1899     //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10
1900     //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15
1901    
1902     s := '';
1903 yoffy 1.602 Ext := AnsiLowerCase(ExtractFileExt(Text2));
1904     if (Pos('http://', Text2) = 1) and (GikoSys.Setting.PreviewVisible) and
1905 hi_ 1.1 ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) then begin
1906     if FPreviewBrowser = nil then begin
1907     FPreviewBrowser := TPreviewBrowser.Create(Self);
1908     ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
1909     TOleControl(FPreviewBrowser).Parent := nil;
1910     end;
1911 h677 1.316 FPreviewBrowser.Navigate(BLANK_HTML);//?スO?ス?ス?ス?ス?スv?ス?ス?スr?ス?ス?ス[?ス?ス?ス?ス?ス?ス?ス?ス?スp
1912 yoffy 1.602 FPreviewURL := Text2;
1913 hi_ 1.1 PreviewTimer.Interval := GikoSys.Setting.PreviewWait;
1914     PreviewTimer.Enabled := True;
1915 yoffy 1.602 end else if (Pos('about:blank', Text2) = 1) or (Pos('http://', Text2) = 1) or (Pos('mailto:', Text2) = 1) then begin
1916     if Pos('mailto:', Text2) = 1 then begin
1917     s := StringReplace(Text2, 'mailto:', '', [rfIgnoreCase]);
1918 hi_ 1.1 //?スM?スR?スi?スr?スX?ス?ス ?スp?ス[?スg3?ス?ス466?ス?ス?ス?ス?ス?ス?ス?ス
1919     GetCursorPos(p);
1920     p.x := p.x - TWebBrowser(Sender).ClientOrigin.x;
1921     p.y := p.y - TWebBrowser(Sender).ClientOrigin.y;
1922     e := IHTMLDocument2(TWebBrowser(Sender).Document).elementFromPoint(p.x, p.y);
1923     if (Assigned(e)) then begin
1924 h677 1.297 tmp2 := ZenToHan(e.Get_outerText);
1925 hi_ 1.1 if (GikoSys.IsNumeric(tmp2)) then begin
1926     //?ス?ス?ス?ス?ス?ス?スX?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スB
1927 h677 1.600 wkIntSt := StrToInt64(tmp2);
1928     wkIntTo := StrToInt64(tmp2);
1929 hi_ 1.1 //s := GetThreadText(wkBBS, wkKey, wkIntSt, wkIntTo, False, False);
1930     FHint.PopupType := gptThread;
1931 h677 1.530 HTMLCreater.SetResPopupText(FHint, GetActiveContent, wkIntSt, wkIntTo, False, False);
1932 hi_ 1.1 end else begin
1933     FHint.PopupType := gptRaw;
1934     FHint.Caption := s;
1935     end;
1936     end;
1937     end else begin
1938 h677 1.319 threadItem := GetActiveContent;
1939 yoffy 1.602 URL := THTMLCreate.GetRespopupURL(Text2, threadItem.URL);
1940 yoffy 1.274 PathRec := Gikosys.Parse2chURL2(URL);
1941 q9_ 1.354 if (PathRec.FNoParam) then begin
1942     PathRec.FSt := 1;
1943     PathRec.FTo := 1;
1944 h677 1.447 end else begin
1945 q9_ 1.352 Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo);
1946 h677 1.447 end;
1947 yoffy 1.163 GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark );
1948 hi_ 1.1
1949 h677 1.168 if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin
1950 yoffy 1.162
1951 yoffy 1.163 URL := GikoSys.GetBrowsableThreadURL( URL );
1952 yoffy 1.274 wkIntSt := PathRec.FSt;
1953     wkIntTo := PathRec.FTo;
1954 hi_ 1.1
1955     if (wkIntSt = 0) and (wkIntTo = 0) then begin
1956     wkIntSt := 1;
1957     wkIntTo := 1;
1958     end else if (wkIntSt = 0) and (wkIntTo > 0) then begin
1959     wkIntSt := wkIntTo;
1960     end else if (wkIntSt > 0) and (wkIntTo = 0) then begin
1961     wkIntTo := wkIntSt;
1962     end else if wkIntSt > wkIntTo then begin
1963 h677 1.333 wkInt := wkIntTo;
1964 hi_ 1.1 wkIntTo := wkIntSt;
1965 h677 1.333 wkIntSt := wkInt;
1966 hi_ 1.1 end;
1967 h677 1.299 if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
1968 yoffy 1.274 ATitle := false
1969     else
1970     ATitle := true;
1971 hi_ 1.1
1972 yoffy 1.160 threadItem := BBSsFindThreadFromURL( URL );
1973 h677 1.170
1974 yoffy 1.163 if (threadItem = nil) and GikoSys.Is2chHost( Host ) then begin
1975     board := BBSs[ 0 ].FindBBSID( PathRec.FBBS );
1976 yoffy 1.274 if board <> nil then begin
1977     if not board.IsThreadDatRead then
1978     GikoSys.ReadSubjectFile( board );
1979 yoffy 1.270 threadItem := board.FindThreadFromFileName( PathRec.FKey + '.dat' );
1980 yoffy 1.274 end;
1981 yoffy 1.130 end;
1982 h677 1.319
1983 yoffy 1.130 if threadItem <> nil then begin
1984 yoffy 1.127 //HintData := GetThreadText(PathRec.FBBS, PathRec.FKey, wkIntSt, wkIntTo, ATitle, PathRec.FFirst);
1985 h677 1.512 //URL?ス?ス?ス?ス?ス?ス?ス?ス/?ス?ス?スt?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?スp
1986     if ( IntToStr(wkIntSt) = ChangeFileExt(threadItem.FileName, '') ) then begin
1987     wkIntSt := 1;
1988     wkIntTo := 1;
1989     end;
1990 yoffy 1.127 FHint.PopupType := gptThread;
1991 h677 1.530 HTMLCreater.SetResPopupText(FHint, threadItem, wkIntSt, wkIntTo, ATitle, PathRec.FFirst );
1992 yoffy 1.127 end;
1993 hi_ 1.1 end;
1994 h677 1.168 end;
1995 hi_ 1.1
1996     if FHint.PopupType = gptRaw then begin
1997     if FHint.Caption <> '' then
1998     ShowTextPopup;
1999     end else begin
2000 yoffy 1.2 if (FHint.ResCount <> 0) or (FHint.Title <> '') then
2001 hi_ 1.1 ShowTextPopup;
2002     end;
2003     end;
2004     end;
2005    
2006     procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);
2007     var
2008     SysMenu: HMenu;
2009     begin
2010     FEnabledCloseButton := Enabled;
2011     SysMenu := GetSystemMenu(Handle, False);
2012    
2013     if Enabled then begin
2014     EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED);
2015     end else begin
2016     EnableMenuItem(SysMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
2017     end;
2018    
2019     DrawMenuBar(Handle);
2020     end;
2021    
2022     procedure TGikoForm.TreeViewChanging(Sender: TObject; Node: TTreeNode;
2023     var AllowChange: Boolean);
2024     begin
2025 q9_ 1.369 //?ス\?ス[?スg?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス?ス
2026     // if FTreeType = gtt2ch then
2027     // FSortIndex := -1;
2028 hi_ 1.1 end;
2029    
2030     procedure TGikoForm.ListViewKeyDown(Sender: TObject; var Key: Word;
2031     Shift: TShiftState);
2032 yoffy 1.428 var
2033     pos : TPoint;
2034 hi_ 1.1 begin
2035 yoffy 1.236 if GetActiveList is TBoard then begin
2036 yoffy 1.428 case Key of
2037     VK_BACK:; // UpFolderButtonClick(Sender);
2038     VK_SPACE: ListDoubleClick(Shift);
2039     VK_RETURN: ListClick;
2040     VK_APPS:
2041     begin
2042     if ListView.Selected <> nil then begin
2043     pos.X := ListView.Column[ 0 ].Width;
2044     pos.Y := ListView.Selected.Top;
2045     end else begin
2046     pos.X := ListView.Left;
2047     pos.Y := ListView.Top;
2048     end;
2049     Windows.ClientToScreen( ListView.Handle, pos );
2050     ListPopupMenu.Popup( pos.X, pos.Y );
2051     end;
2052 yoffy 1.236 end;
2053     end else begin // TBBS, TCategory
2054 yoffy 1.428 case Key of
2055     VK_BACK:; // UpFolderButtonClick(Sender);
2056     VK_SPACE: ListClick;
2057     VK_RETURN: ListDoubleClick(Shift);
2058     VK_APPS:
2059     begin
2060     if ListView.Selected <> nil then begin
2061     pos.X := ListView.Column[ 0 ].Width;
2062     pos.Y := ListView.Selected.Top;
2063     end else begin
2064     pos.X := ListView.Left;
2065     pos.Y := ListView.Top;
2066     end;
2067     Windows.ClientToScreen( ListView.Handle, pos );
2068     ListPopupMenu.Popup( pos.X, pos.Y );
2069     end;
2070 yoffy 1.236 end;
2071 hi_ 1.1 end;
2072     end;
2073    
2074     function TGikoForm.GetHttpState: Boolean;
2075     begin
2076     Result := FHttpState;
2077     end;
2078    
2079     procedure TGikoForm.ListViewColumnClick(Sender: TObject;
2080     Column: TListColumn);
2081 yoffy 1.413 var
2082     id, idx : Integer;
2083     orderList : TList;
2084 h677 1.570 vSortIndex : Integer;
2085     vSortOrder : Boolean;
2086 hi_ 1.1 begin
2087 h677 1.530 idx := TListViewUtils.ActiveListTrueColumn( Column ).Tag;
2088 h677 1.570 if TObject( FActiveList ) is TBBS then begin
2089     orderList := GikoSys.Setting.BBSColumnOrder;
2090     vSortIndex := GikoSys.Setting.BBSSortIndex;
2091     vSortOrder := GikoSys.Setting.BBSSortOrder;
2092     end else if TObject( FActiveList ) is TCategory then begin
2093     orderList := GikoSys.Setting.CategoryColumnOrder;
2094     vSortIndex := GikoSys.Setting.CategorySortIndex;
2095     vSortOrder := GikoSys.Setting.CategorySortOrder;
2096     end else if TObject( FActiveList ) is TBoard then begin
2097     orderList := GikoSys.Setting.BoardColumnOrder;
2098     vSortIndex := GikoSys.Setting.BoardSortIndex;
2099     vSortOrder := GikoSys.Setting.BoardSortOrder;
2100     end else
2101 yoffy 1.413 Exit;
2102    
2103     id := Integer( orderList[ idx ] );
2104    
2105 h677 1.570
2106     if vSortIndex = id then
2107     vSortOrder := not vSortOrder
2108 h677 1.464 else begin
2109 h677 1.572 vSortOrder := id = 0;
2110 h677 1.570 end;
2111 h677 1.572
2112 h677 1.570 TListViewUtils.ListViewSort(Sender, ListView, Column, GikoDM.ListNumberVisibleAction.Checked, vSortOrder);
2113 hi_ 1.1 end;
2114    
2115     procedure TGikoForm.MenuToolBarCustomDrawButton(Sender: TToolBar;
2116     Button: TToolButton; State: TCustomDrawState; var DefaultDraw: Boolean);
2117     var
2118     ARect: TRect;
2119     begin
2120 yoffy 1.2 DefaultDraw := True;
2121     Exit;
2122 hi_ 1.1 DefaultDraw := False;
2123     if (cdsSelected in State) or (cdsHot in State) then begin
2124     Sender.Canvas.Brush.Color := clHighlight;
2125     Sender.Canvas.Font.Color := clHighlightText;
2126     end else begin
2127     Sender.Canvas.Brush.Color := clBtnFace;
2128     Sender.Canvas.Font.Color := clBtnText;
2129     end;
2130     ARect := Rect(Button.Left, Button.Top, Button.Left + Button.Width, Button.Top + Button.Height);
2131     Sender.Canvas.FillRect(ARect);
2132     DrawText(Sender.Canvas.Handle, PChar(Button.Caption), -1, ARect, DT_SINGLELINE or DT_VCENTER or DT_CENTER);
2133     end;
2134    
2135     function TGikoForm.GetTreeNode(Data: TObject): TTreeNode;
2136     var
2137     Nodes: TTreeNodes;
2138     i: integer;
2139     begin
2140     Nodes := TreeView.Items;
2141    
2142     for i := 0 to Nodes.Count - 1 do begin
2143     if Nodes.Item[i].Data = Data then begin
2144     Result := Nodes.Item[i];
2145     Exit;
2146     end;
2147     end;
2148     Result := nil;
2149     end;
2150    
2151     procedure TGikoForm.BrowserBeforeNavigate2(Sender: TObject;
2152     const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
2153     Headers: OleVariant; var Cancel: WordBool);
2154     var
2155     sNo: string;
2156     p: TPoint;
2157 yoffy 1.56 const
2158     kMenuName: string = 'menu:';
2159 hi_ 1.1 begin
2160 yoffy 1.56
2161     if Pos(kMenuName, URL) <> 0 then begin
2162 yoffy 1.100 sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );
2163    
2164 hi_ 1.1 if not GikoSys.IsNumeric(sNo) then Exit;
2165    
2166     Cancel := True;
2167     GetCursorpos(p);
2168     KokoPopupMenu.Tag := StrToInt(sNo);
2169     KokoPopupMenu.Popup(p.x, p.y);
2170     end else if Pos('mailto', LowerCase(URL)) <> 0 then begin
2171     Cancel := not GikoSys.Setting.OpenMailer;
2172     end;
2173 yoffy 1.56
2174 hi_ 1.1 end;
2175    
2176     procedure TGikoForm.TreeViewCustomDraw(Sender: TCustomTreeView;
2177     const ARect: TRect; var DefaultDraw: Boolean);
2178     var
2179     NodeRect: TRect;
2180     i, j: Integer;
2181     IsBoardNode: Boolean;
2182     Cnt: Integer;
2183     CntText: string;
2184     TextWidth: Integer;
2185     TextRect: TRect;
2186     Board: TBoard;
2187     Category: TCategory;
2188     Bitmap: TBitmap;
2189     NodeWidth: Integer;
2190     begin
2191     DefaultDraw := True;
2192    
2193     if FTreeType = gttHistory then Exit;
2194    
2195     TreeView.Canvas.Font.Color := clBlue;
2196     IsBoardNode := False;
2197 h677 1.95 for i := 0 to TreeView.Items.Count - 1 do begin
2198 yoffy 1.51 Cnt := 0;
2199 hi_ 1.1 if not TreeView.Items[i].IsVisible then
2200     continue;
2201    
2202     if TObject(TreeView.Items[i].Data) is TCategory then begin
2203     if TreeView.Items[i].Expanded then
2204     continue;
2205    
2206     IsBoardNode := False;
2207     Category := TCategory(TreeView.Items[i].Data);
2208     for j := 0 to Category.Count - 1 do begin
2209     Board := Category.Items[j];
2210     if Board <> nil then begin
2211     if Board.UnRead > 0 then begin
2212     Cnt := 1;
2213     Break;
2214     end;
2215     end;
2216     end;
2217     if Cnt <> 1 then
2218     continue;
2219     end else if TObject(TreeView.Items[i].Data) is TBoard then begin
2220     IsBoardNode := True;
2221     Board := TBoard(TreeView.Items[i].Data);
2222 h677 1.514
2223 hi_ 1.1 Cnt := Board.UnRead;
2224     if Cnt <= 0 then
2225     continue;
2226     end else
2227     continue;
2228    
2229     Bitmap := TBitmap.Create;
2230     try
2231     Bitmap.Canvas.Font.Assign(TreeView.Canvas.Font);
2232     Bitmap.Canvas.Font.Style := [fsBold];
2233     NodeWidth := Bitmap.Canvas.TextWidth(TreeView.Items[i].Text);
2234     finally
2235     Bitmap.Free;
2236     end;
2237    
2238     NodeRect := TreeView.Items[i].DisplayRect(True);
2239    
2240     if IsBoardNode then
2241     CntText := '(' + IntToStr(Cnt) + ')'
2242 h677 1.95 else if Cnt = 1 then
2243 hi_ 1.1 CntText := '(+)';
2244 h677 1.95
2245 hi_ 1.1
2246     TextWidth := TreeView.Canvas.TextWidth(CntText