OSDN Git Service

リファクタリング中
[gikonavigoeson/gikonavi.git] / GikoDataModule.pas
1 unit GikoDataModule;
2
3 interface
4
5 uses
6   SysUtils, Classes, ExtActns, StdActns, ActnList, ImgList, Controls,
7 {$IF Defined(DELPRO) }
8         SHDocVw,
9         MSHTML,
10 {$ELSE}
11         SHDocVw_TLB,
12         MSHTML_TLB,
13 {$IFEND}
14   ComCtrls, BrowserRecord, Graphics, Messages;
15
16 const
17         CAPTION_NAME: string = '\83M\83R\83i\83r';
18         USER_SETLINKBAR                                 = WM_USER + 2003;
19
20         ITEM_ICON_SORT1                                 = 12;           //!< \83\\81[\83g\83A\83C\83R\83\93
21         ITEM_ICON_SORT2                                 = 13;           //!< \83\\81[\83g\83A\83C\83R\83\93
22
23         //\83c\81[\83\8b\83o\81[\83A\83C\83R\83\93
24         TOOL_ICON_HEIGHT_MAX            = 16;           //!< \8d\82\82³\8dÅ\91å\83A\83C\83R\83\93
25         TOOL_ICON_HEIGHT_MIN            = 17;           //!< \8d\82\82³\8dÅ\8f¬\83A\83C\83R\83\93
26         TOOL_ICON_HEIGHT_NORMAL = 18;           //!< \8d\82\82³\95W\8f\80\83A\83C\83R\83\93
27         TOOL_ICON_WIDTH_MAX             = 19;           //!< \95\9d\8dÅ\91å\83A\83C\83R\83\93
28         TOOL_ICON_WIDTH_MIN             = 20;           //!< \95\9d\8dÅ\8f¬\83A\83C\83R\83\93
29         TOOL_ICON_WIDTH_NORMAL  = 21;           //!< \95\9d\95W\8f\80\83A\83C\83R\83\93
30
31         TOOL_ICON_FAV_FOLDER            = 30;           //!< \82¨\8bC\82É\93ü\82è\83t\83H\83\8b\83_\83A\83C\83R\83\93
32         TOOL_ICON_FAV_BOARD                     = 31;           //!< \82¨\8bC\82É\93ü\82è\94Â\83A\83C\83R\83\93
33         TOOL_ICON_FAV_THREAD            = 32;           //!< \82¨\8bC\82É\93ü\82è\83X\83\8c\83A\83C\83R\83\93
34
35         //! \83M\83R\83i\83r\83T\83C\83g\82ÌURL
36         URL_GIKONAVI: string = 'http://gikonavi.sourceforge.jp/';
37         //! Monazilla\83T\83C\83g\82ÌURL
38         URL_MONAZILLA: string = 'http://www.monazilla.org/';
39         //! 2\82¿\82á\82ñ\82Ë\82é\82ÌURL
40         URL_2ch: string = 'http://www.2ch.net/';
41         //! \83M\83R\83i\83rWiki\82ÌURL
42         URL_Wiki: string = 'http://gikowiki.dyndns.info/index.php?FAQ';
43
44         SELECTCOMBOBOX_NAME: string = ''; // '\83X\83\8c\83b\83h\8di\8d\9e\8c\9f\8dõ';
45         SELECTCOMBOBOX_COLOR: TColor = clWindow;
46
47
48 type
49   TGikoDM = class(TDataModule)
50         GikoFormActionList: TActionList;
51         OnlyAHundredResAction: TAction;
52         OnlyKokoResAction: TAction;
53         LoginAction: TAction;
54         NewBoardAction: TAction;
55         LogDeleteAction: TAction;
56         KidokuAction: TAction;
57         StdToolBarVisibleAction: TAction;
58         AddressBarVisibleAction: TAction;
59         LinkBarVisibleAction: TAction;
60         ListToolBarVisibleAction: TAction;
61         SearchAction: TAction;
62         GikoNaviWebPageAction: TAction;
63         MonazillaWebPageAction: TAction;
64         BBS2chWebPageAction: TAction;
65         GikoFolderOpenAction: TAction;
66         AboutAction: TAction;
67         SelectTextClearAction: TAction;
68         NameTextClearAction: TAction;
69         MailTextClearAction: TAction;
70         ExitAction: TAction;
71         ListNameBarVisibleAction: TAction;
72         BrowserToolBarVisibleAction: TAction;
73         BrowserNameBarVisibleAction: TAction;
74         MsgBarVisibleAction: TAction;
75         MsgBarCloseAction: TAction;
76         StatusBarVisibleAction: TAction;
77         CabinetBBSAction: TAction;
78         CabinetHistoryAction: TAction;
79         OnlyNewResAction: TAction;
80         CabinetFavoriteAction: TAction;
81         CabinetVisibleAction: TAction;
82         ListNumberVisibleAction: TAction;
83         UpFolderAction: TAction;
84         CabinetCloseAction: TAction;
85         IconStyle: TAction;
86         LargeIconAction: TAction;
87         SmallIconAction: TAction;
88         ListIconAction: TAction;
89         DetailIconAction: TAction;
90         MidokuAction: TAction;
91         AllSelectAction: TAction;
92         AllItemAction: TAction;
93         LogItemAction: TAction;
94         NewItemAction: TAction;
95         ThreadRangeAction: TAction;
96         SelectItemAction: TAction;
97         StopAction: TAction;
98         OptionAction: TAction;
99         RoundAction: TAction;
100         BrowserMaxAction: TAction;
101         BrowserMinAction: TAction;
102         ScrollTopAction: TAction;
103         ScrollLastAction: TAction;
104         ScrollNewAction: TAction;
105         ScrollKokoAction: TAction;
106         EditorAction: TAction;
107         IEAction: TAction;
108         ShowThreadAction: TAction;
109         ShowBoardAction: TAction;
110         URLCopyAction: TAction;
111         NameCopyAction: TAction;
112         NameURLCopyAction: TAction;
113         ItemReloadAction: TAction;
114         ThreadEditorAction: TAction;
115         BoardIEAction: TAction;
116         SelectItemURLCopyAction: TAction;
117         SelectItemNameCopyAction: TAction;
118         SelectItemNameURLCopyAction: TAction;
119         SelectListReloadAction: TAction;
120         SelectThreadReloadAction: TAction;
121         BrowserTabCloseAction: TAction;
122         NotSelectTabCloseAction: TAction;
123         AllTabCloseAction: TAction;
124         KokomadeAction: TAction;
125         ZenbuAction: TAction;
126         KokoResAction: TAction;
127         TreeSelectBoradReload: TAction;
128         TreeSelectThreadReload: TAction;
129         TreeSelectURLCopy: TAction;
130         SelectReservAction: TAction;
131         SelectNewRoundName: TAction;
132         SelectDeleteRound: TAction;
133         KeySettingAction: TAction;
134         ArrangeAction: TAction;
135         ActiveLogDeleteAction: TAction;
136         TreeSelectNameURLCopy: TAction;
137         PaneInitAction: TAction;
138         LeftmostTabSelectAction: TAction;
139         LeftTabSelectAction: TAction;
140         RightTabSelectAction: TAction;
141         RightmostTabSelectAction: TAction;
142         FavoriteAddAction: TAction;
143         BoardFavoriteAddAction: TAction;
144         ThreadFavoriteAddAction: TAction;
145         TreeSelectFavoriteAddAction: TAction;
146         FavoriteArrangeAction: TAction;
147         MoveToAction: TAction;
148         BrowserTabVisibleAction: TAction;
149         BrowserTabTopAction: TAction;
150         BrowserTabBottomAction: TAction;
151         BrowserTabTabStyleAction: TAction;
152         BrowserTabButtonStyleAction: TAction;
153         BrowserTabFlatStyleAction: TAction;
154         GikoHelpAction: TAction;
155         KotehanAction: TAction;
156         ToolBarSettingAction: TAction;
157         SelectResAction: TAction;
158         AllResAction: TAction;
159         EditNGAction: TAction;
160         ReloadAction: TAction;
161         GoFowardAction: TAction;
162         GoBackAction: TAction;
163         TreeSelectSearchBoardName: TAction;
164         FavoriteTreeViewRenameAction: TAction;
165         FavoriteTreeViewNewFolderAction: TAction;
166         FavoriteTreeViewDeleteAction: TAction;
167         FavoriteTreeViewBrowseFolderAction: TAction;
168         FavoriteTreeViewReloadAction: TAction;
169         FavoriteTreeViewURLCopyAction: TAction;
170         FavoriteTreeViewNameCopyAction: TAction;
171         FavoriteTreeViewNameURLCopyAction: TAction;
172         FavoriteTreeViewLogDeleteAction: TAction;
173         ResRangeAction: TAction;
174         ExportFavoriteFile: TFileSaveAs;
175         FavoriteTreeViewBrowseBoardAction: TAction;
176         FavoriteTreeViewBrowseThreadAction: TAction;
177         UpBoardAction: TAction;
178         KoreCopy: TAction;
179         TreeSelectNameCopy: TAction;
180         SetFocusForBrowserAction: TAction;
181         SetFocusForThreadListAction: TAction;
182         SetFocusForCabinetAction: TAction;
183         FileRun1: TFileRun;
184         ThreadlistMaxAndFocusAction: TAction;
185         BrowserMaxAndFocusAction: TAction;
186         SelectItemSaveForHTML: TAction;
187         SelectItemSaveForDat: TAction;
188         FileSaveAs1: TFileSaveAs;
189         LogFolderOpenAction: TAction;
190         TabsSaveAction: TAction;
191         TabsOpenAction: TAction;
192         BrowsBoradHeadAction: TAction;
193         TabAutoSaveAction: TAction;
194         TabAutoLoadAction: TAction;
195         JumpToNumOfResAction: TAction;
196         FavoriteTreeViewCollapseAction: TAction;
197         RightTabCloseAction: TAction;
198         LeftTabCloseAction: TAction;
199         SameIDResAnchorAction: TAction;
200         IndividualAbon1Action: TAction;
201         IndividualAbon0Action: TAction;
202         AntiIndividualAbonAction: TAction;
203         AntiIndividualAbonDlgAction: TAction;
204         IndividualAbonID1Action: TAction;
205         IndividualAbonID0Action: TAction;
206         MuteAction: TAction;
207         SortActiveColumnAction: TAction;
208         SortNextColumnAction: TAction;
209         SortPrevColumnAction: TAction;
210         BeLogInOutAction: TAction;
211         UnSelectedListViewAction: TAction;
212         WikiFAQWebPageAction: TAction;
213         ToobarImageList: TImageList;
214         procedure EditNGActionExecute(Sender: TObject);
215         procedure ReloadActionExecute(Sender: TObject);
216         procedure GoFowardActionExecute(Sender: TObject);
217         procedure GoBackActionExecute(Sender: TObject);
218         procedure MoveToActionExecute(Sender: TObject);
219         procedure FavoriteAddActionExecute(Sender: TObject);
220         procedure FavoriteArrangeActionExecute(Sender: TObject);
221         procedure FavoriteTreeViewCollapseActionExecute(Sender: TObject);
222         procedure FavoriteTreeViewRenameActionExecute(Sender: TObject);
223         procedure FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
224         procedure FavoriteTreeViewDeleteActionExecute(Sender: TObject);
225         procedure FavoriteTreeViewBrowseFolderActionExecute(Sender: TObject);
226         procedure FavoriteTreeViewReloadActionExecute(Sender: TObject);
227         procedure FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
228         procedure FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
229         procedure FavoriteTreeViewNameURLCopyActionExecute(Sender: TObject);
230         procedure FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
231         procedure FavoriteTreeViewBrowseThreadActionExecute(Sender: TObject);
232         procedure OnlyAHundredResActionExecute(Sender: TObject);
233         procedure OnlyKokoResActionExecute(Sender: TObject);
234         procedure OnlyNewResActionExecute(Sender: TObject);
235         procedure BrowserMaxActionExecute(Sender: TObject);
236         procedure BrowserMinActionExecute(Sender: TObject);
237         procedure ScrollTopActionExecute(Sender: TObject);
238         procedure ScrollLastActionExecute(Sender: TObject);
239         procedure ScrollNewActionExecute(Sender: TObject);
240         procedure ScrollKokoActionExecute(Sender: TObject);
241         procedure ScrollKokoActionUpdate(Sender: TObject);
242         procedure EditorActionExecute(Sender: TObject);
243         procedure IEActionExecute(Sender: TObject);
244         procedure ShowThreadActionExecute(Sender: TObject);
245         procedure ShowBoardActionExecute(Sender: TObject);
246         procedure URLCopyActionExecute(Sender: TObject);
247         procedure NameCopyActionExecute(Sender: TObject);
248         procedure NameURLCopyActionExecute(Sender: TObject);
249         procedure ItemReloadActionExecute(Sender: TObject);
250         procedure BrowserTabCloseActionExecute(Sender: TObject);
251         procedure BrowserTabCloseActionUpdate(Sender: TObject);
252         procedure NotSelectTabCloseActionExecute(Sender: TObject);
253         procedure NotSelectTabCloseActionUpdate(Sender: TObject);
254         procedure AllTabCloseActionExecute(Sender: TObject);
255         procedure ActiveLogDeleteActionExecute(Sender: TObject);
256         procedure LeftmostTabSelectActionExecute(Sender: TObject);
257         procedure LeftmostTabSelectActionUpdate(Sender: TObject);
258         procedure LeftTabSelectActionExecute(Sender: TObject);
259         procedure RightTabSelectActionExecute(Sender: TObject);
260         procedure RightTabSelectActionUpdate(Sender: TObject);
261         procedure RightmostTabSelectActionExecute(Sender: TObject);
262         procedure ThreadFavoriteAddActionExecute(Sender: TObject);
263         procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
264         procedure SelectResActionExecute(Sender: TObject);
265         procedure AllResActionExecute(Sender: TObject);
266         procedure ResRangeActionExecute(Sender: TObject);
267         procedure UpBoardActionExecute(Sender: TObject);
268         procedure JumpToNumOfResActionExecute(Sender: TObject);
269         procedure RightTabCloseActionExecute(Sender: TObject);
270         procedure RightTabCloseActionUpdate(Sender: TObject);
271         procedure LeftTabCloseActionExecute(Sender: TObject);
272         procedure DataModuleCreate(Sender: TObject);
273         procedure SearchActionExecute(Sender: TObject);
274         procedure OptionActionExecute(Sender: TObject);
275         procedure RoundActionExecute(Sender: TObject);
276         procedure KeySettingActionExecute(Sender: TObject);
277         procedure KotehanActionExecute(Sender: TObject);
278         procedure ToolBarSettingActionExecute(Sender: TObject);
279         procedure MuteActionExecute(Sender: TObject);
280         procedure TreeSelectBoradReloadExecute(Sender: TObject);
281         procedure TreeSelectThreadReloadExecute(Sender: TObject);
282         procedure TreeSelectURLCopyExecute(Sender: TObject);
283         procedure TreeSelectNameURLCopyExecute(Sender: TObject);
284         procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
285         procedure TreeSelectSearchBoardNameExecute(Sender: TObject);
286         procedure TreeSelectNameCopyExecute(Sender: TObject);
287         procedure LoginActionExecute(Sender: TObject);
288         procedure NewBoardActionExecute(Sender: TObject);
289         procedure LogDeleteActionExecute(Sender: TObject);
290         procedure LogDeleteActionUpdate(Sender: TObject);
291         procedure SelectTextClearActionExecute(Sender: TObject);
292         procedure NameTextClearActionExecute(Sender: TObject);
293         procedure MailTextClearActionExecute(Sender: TObject);
294         procedure ExitActionExecute(Sender: TObject);
295         procedure ExportFavoriteFileBeforeExecute(Sender: TObject);
296         procedure ExportFavoriteFileAccept(Sender: TObject);
297         procedure SelectItemSaveForHTMLExecute(Sender: TObject);
298         procedure SelectItemSaveForDatExecute(Sender: TObject);
299         procedure TabsSaveActionExecute(Sender: TObject);
300         procedure TabsOpenActionExecute(Sender: TObject);
301         procedure TabAutoSaveActionExecute(Sender: TObject);
302         procedure TabAutoLoadActionExecute(Sender: TObject);
303         procedure BeLogInOutActionExecute(Sender: TObject);
304         procedure BeLogInOutActionUpdate(Sender: TObject);
305         procedure KokomadeActionExecute(Sender: TObject);
306         procedure ZenbuActionExecute(Sender: TObject);
307         procedure KokoResActionExecute(Sender: TObject);
308         procedure KoreCopyExecute(Sender: TObject);
309         procedure SameIDResAnchorActionExecute(Sender: TObject);
310         procedure IndividualAbon1ActionExecute(Sender: TObject);
311         procedure IndividualAbon0ActionExecute(Sender: TObject);
312         procedure AntiIndividualAbonActionExecute(Sender: TObject);
313         procedure AntiIndividualAbonDlgActionExecute(Sender: TObject);
314         procedure IndividualAbonID1ActionExecute(Sender: TObject);
315         procedure IndividualAbonID0ActionExecute(Sender: TObject);
316         procedure GikoNaviWebPageActionExecute(Sender: TObject);
317         procedure MonazillaWebPageActionExecute(Sender: TObject);
318         procedure BBS2chWebPageActionExecute(Sender: TObject);
319         procedure GikoFolderOpenActionExecute(Sender: TObject);
320         procedure AboutActionExecute(Sender: TObject);
321         procedure GikoHelpActionExecute(Sender: TObject);
322         procedure WikiFAQWebPageActionExecute(Sender: TObject);
323         procedure ListNumberVisibleActionExecute(Sender: TObject);
324         procedure UpFolderActionExecute(Sender: TObject);
325         procedure UpFolderActionUpdate(Sender: TObject);
326         procedure IconStyleExecute(Sender: TObject);
327         procedure AllItemActionExecute(Sender: TObject);
328         procedure LogItemActionExecute(Sender: TObject);
329         procedure NewItemActionExecute(Sender: TObject);
330         procedure ThreadRangeActionExecute(Sender: TObject);
331         procedure SelectItemActionExecute(Sender: TObject);
332         procedure ThreadEditorActionExecute(Sender: TObject);
333         procedure BoardIEActionExecute(Sender: TObject);
334         procedure SelectItemURLCopyActionExecute(Sender: TObject);
335         procedure SelectItemURLCopyActionUpdate(Sender: TObject);
336         procedure SelectItemNameCopyActionExecute(Sender: TObject);
337         procedure SelectItemNameCopyActionUpdate(Sender: TObject);
338         procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
339         procedure SelectListReloadActionExecute(Sender: TObject);
340         procedure SelectListReloadActionUpdate(Sender: TObject);
341         procedure SelectThreadReloadActionExecute(Sender: TObject);
342         procedure SelectThreadReloadActionUpdate(Sender: TObject);
343         procedure SelectReservActionExecute(Sender: TObject);
344         procedure SelectReservActionUpdate(Sender: TObject);
345         procedure SelectNewRoundNameExecute(Sender: TObject);
346         procedure SelectDeleteRoundExecute(Sender: TObject);
347         procedure BoardFavoriteAddActionExecute(Sender: TObject);
348         procedure BoardFavoriteAddActionUpdate(Sender: TObject);
349         procedure LogFolderOpenActionExecute(Sender: TObject);
350         procedure LogFolderOpenActionUpdate(Sender: TObject);
351         procedure BrowsBoradHeadActionExecute(Sender: TObject);
352         procedure SortActiveColumnActionExecute(Sender: TObject);
353         procedure SortNextColumnActionExecute(Sender: TObject);
354         procedure SortPrevColumnActionExecute(Sender: TObject);
355         procedure StdToolBarVisibleActionExecute(Sender: TObject);
356         procedure AddressBarVisibleActionExecute(Sender: TObject);
357         procedure LinkBarVisibleActionExecute(Sender: TObject);
358         procedure ListToolBarVisibleActionExecute(Sender: TObject);
359         procedure ListNameBarVisibleActionExecute(Sender: TObject);
360         procedure BrowserToolBarVisibleActionExecute(Sender: TObject);
361         procedure BrowserNameBarVisibleActionExecute(Sender: TObject);
362         procedure MsgBarVisibleActionExecute(Sender: TObject);
363         procedure MsgBarCloseActionExecute(Sender: TObject);
364         procedure StatusBarVisibleActionExecute(Sender: TObject);
365         procedure CabinetBBSActionExecute(Sender: TObject);
366         procedure CabinetHistoryActionExecute(Sender: TObject);
367         procedure CabinetFavoriteActionExecute(Sender: TObject);
368         procedure CabinetVisibleActionExecute(Sender: TObject);
369         procedure CabinetCloseActionExecute(Sender: TObject);
370         procedure LargeIconActionExecute(Sender: TObject);
371         procedure SmallIconActionExecute(Sender: TObject);
372         procedure ListIconActionExecute(Sender: TObject);
373         procedure DetailIconActionExecute(Sender: TObject);
374         procedure StopActionExecute(Sender: TObject);
375         procedure ArrangeActionExecute(Sender: TObject);
376         procedure PaneInitActionExecute(Sender: TObject);
377         procedure BrowserTabVisibleActionExecute(Sender: TObject);
378         procedure BrowserTabTopActionExecute(Sender: TObject);
379         procedure BrowserTabBottomActionExecute(Sender: TObject);
380         procedure BrowserTabTabStyleActionExecute(Sender: TObject);
381         procedure BrowserTabButtonStyleActionExecute(Sender: TObject);
382         procedure BrowserTabFlatStyleActionExecute(Sender: TObject);
383         procedure SetFocusForBrowserActionExecute(Sender: TObject);
384         procedure SetFocusForBrowserActionUpdate(Sender: TObject);
385         procedure SetFocusForThreadListActionExecute(Sender: TObject);
386         procedure SetFocusForCabinetActionExecute(Sender: TObject);
387         procedure SetFocusForCabinetActionUpdate(Sender: TObject);
388         procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
389         procedure BrowserMaxAndFocusActionExecute(Sender: TObject);
390         procedure UnSelectedListViewActionExecute(Sender: TObject);
391         procedure KidokuActionExecute(Sender: TObject);
392         procedure MidokuActionExecute(Sender: TObject);
393         procedure AllSelectActionExecute(Sender: TObject);
394         procedure AllSelectActionUpdate(Sender: TObject);
395   private
396         { Private \90é\8c¾ }
397         procedure RepaintStatusBar;
398         procedure ClearResFilter;
399         procedure SetResRange(range: Integer);
400   public
401         { Public \90é\8c¾ }
402   published
403         { Published \90é\8c¾ }
404         //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
405         procedure DependActiveCntentActionUpdate(Sender: TObject);
406         //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82é
407         procedure DependActiveCntentLogActionUpdate(Sender: TObject);
408         //! TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
409         procedure DependActiveListTBoardActionUpdate(Sender: TObject);
410   end;
411
412 var
413   GikoDM: TGikoDM;
414
415
416 implementation
417
418 uses
419         Windows, Math, Dialogs, Clipbrd,
420         Giko, GikoSystem, GikoUtil, BoardGroup,
421         FavoriteArrange, Favorite, Setting, MojuUtils,
422         Editor, ListSelect, Search, Option, Round,
423         KeySetting, Gesture, Kotehan, ToolBarSetting,
424         ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon,
425         GikoBayesian, About, ShellAPI,
426         RoundName, RoundData, Menus, ListViewUtils,
427         ThreadControl;
428
429
430 {$R *.dfm}
431 // *************************************************************************
432 //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82Å\97L\8cø\82É\82È\82é
433 // *************************************************************************
434 procedure TGikoDM.DependActiveCntentActionUpdate(Sender: TObject);
435 begin
436         TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil);
437 end;
438 // *************************************************************************
439 //! TAction\82ÅGetActiveContent\82ªnil\88È\8aO\82©\82Â\83\8d\83O\82ð\8e\9d\82Á\82Ä\82¢\82é
440 // *************************************************************************
441 procedure TGikoDM.DependActiveCntentLogActionUpdate(Sender: TObject);
442 begin
443         TAction(Sender).Enabled := (GikoForm.GetActiveContent <> nil)
444                                                                         and (GikoForm.GetActiveContent.IsLogFile);
445 end;
446 // *************************************************************************
447 //! TAction\82ÅActiveList\82ªTBoard\82Å\97L\8cø\82É\82È\82é
448 // *************************************************************************
449 procedure TGikoDM.DependActiveListTBoardActionUpdate(Sender: TObject);
450 begin
451         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard);
452 end;
453 // *************************************************************************
454 //! NG\83\8f\81[\83h\95Ò\8fW
455 // *************************************************************************
456 procedure TGikoDM.EditNGActionExecute(Sender: TObject);
457 begin
458         //\83e\83L\83X\83g\82É\8aÖ\98A\95t\82¯\82ç\82ê\82½\83A\83v\83\8a\82ÅNG\83\8f\81[\83h\83t\83@\83C\83\8b\82ð\83I\81[\83v\83\93
459         GikoSys.FAbon.EditNGwords;
460 end;
461 // *************************************************************************
462 //! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\8dÄ\93Ç\82Ý\8d\9e\82Ý\81j
463 // *************************************************************************
464 procedure TGikoDM.ReloadActionExecute(Sender: TObject);
465 begin
466         //\83\8a\83\8d\81[\83h\82ð\8eÀ\8ds\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
467         if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
468                 MsgBox(GikoForm.Handle, 'NG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\8dÄ\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
469         end else begin
470                 //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
471                 GikoForm.RepaintAllTabsBrowser();
472         end;
473 end;
474 // *************************************************************************
475 //! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\8cã\82ë\81j
476 // *************************************************************************
477 procedure TGikoDM.GoFowardActionExecute(Sender: TObject);
478 begin
479         //\88ê\82Â\8cã\82ë\82Ì\93Ç\82Ý\8d\9e\82Ý\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
480         if GikoSys.FAbon.GoBack =false then begin
481                 MsgBox(GikoForm.Handle, '\88ê\82Â\8cã\82ë\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
482         end else begin
483                 //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
484                 RepaintStatusBar;
485                 //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
486                 GikoForm.RepaintAllTabsBrowser();
487         end;
488 end;
489 // *************************************************************************
490 //! NG\83\8f\81[\83h\93Ç\82Ý\8d\9e\82Ý\81i\88ê\82Â\91O\81j
491 // *************************************************************************
492 procedure TGikoDM.GoBackActionExecute(Sender: TObject);
493 begin
494         //\88ê\82Â\8cã\82ë\82Ì\93Ç\82Ý\8d\9e\82Ý\81@\8e¸\94s\82µ\82½\82ç\83\81\83b\83Z\81[\83W\8fo\97Í
495         if GikoSys.FAbon.GoForward =false then begin
496                 MsgBox(GikoForm.Handle, '\88ê\82Â\91O\82ÌNG\83\8f\81[\83h\83t\83@\83C\83\8b\82Ì\93Ç\82Ý\8d\9e\82Ý\82É\8e¸\94s\82µ\82Ü\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONEXCLAMATION);
497         end else begin
498                 //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
499                 RepaintStatusBar;
500                 //\91S\82Ä\82Ì\83^\83u\82É\8dÄ\95`\89æ\82ð\90Ý\92è
501                 GikoForm.RepaintAllTabsBrowser();
502         end;
503 end;
504 // *************************************************************************
505 //! NG\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82½\8cã\82Ì\83X\83e\81[\83^\83X\83o\81[\82Ì\8dX\90V\8f\88\97\9d
506 // *************************************************************************
507 procedure TGikoDM.RepaintStatusBar;
508 var
509         s : String;
510 begin
511         //\83X\83e\81[\83^\83X\82É\95\\8e¦\82³\82ê\82éNG\83\8f\81[\83h\83t\83@\83C\83\8b\96¼\82ð\8dX\90V
512         s := GikoSys.FAbon.NGwordname;
513         GikoForm.StatusBar.Panels.Items[2].Text := s;
514         //\83X\83e\81[\83^\83X\82Ì\95\\8e¦\83T\83C\83Y\82Ì\83\8a\83T\83C\83Y
515         GikoForm.StatusBar.Panels[2].Width := Max(GikoForm.StatusBar.Canvas.TextWidth(s), 100);
516         GikoForm.StatusBarResize(nil);
517 end;
518 // *************************************************************************
519 //! \83A\83h\83\8c\83X\83o\81[\82É\95\\8e¦\82µ\82Ä\82¢\82é\83A\83h\83\8c\83X\82Ö\88Ú\93®\82·\82é
520 // *************************************************************************
521 procedure TGikoDM.MoveToActionExecute(Sender: TObject);
522 var
523         URL: string;
524         idx: Integer;
525 begin
526         //\83A\83h\83\8c\83X\83R\83\93\83{\83{\83b\83N\83X\82©\82çURL\82ð\8eæ\93¾
527         URL := Trim(GikoForm.AddressComboBox.Text);
528         //URL\82É\88Ú\93®
529         GikoForm.MoveToURL(URL);
530         //\88È\89º\81A\97\9a\97ð\82Ì\8f\88\97\9d
531         idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
532         if idx = -1 then begin
533                 GikoForm.AddressComboBox.Items.Insert(0, URL);
534                 if GikoForm.AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
535                         GikoForm.AddressComboBox.Items.Delete(GikoForm.AddressComboBox.Items.Count - 1);
536         end else begin
537                 GikoForm.AddressComboBox.Items.Delete(idx);
538                 GikoForm.AddressComboBox.Items.Insert(0, URL);
539         end;
540 end;
541 // *************************************************************************
542 //! \82¨\8bC\82É\93ü\82è\82Ì\92Ç\89Á\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
543 // *************************************************************************
544 procedure TGikoDM.FavoriteAddActionExecute(Sender: TObject);
545 begin
546         GikoForm.ShowFavoriteAddDialog(GikoForm.GetActiveContent);
547 end;
548 // *************************************************************************
549 //! \82¨\8bC\82É\93ü\82è\82Ì\90®\97\9d\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
550 // *************************************************************************
551 procedure TGikoDM.FavoriteArrangeActionExecute(Sender: TObject);
552 var
553         Dlg: TFavoriteArrangeDialog;
554 begin
555         Dlg := TFavoriteArrangeDialog.Create(GikoForm);
556         try
557                 Dlg.ShowModal;
558         finally
559                 Dlg.Release;
560         end;
561         //\83\8a\83\93\83N\83o\81[\82É\8dX\90V\82ð\93`\82¦\82é
562         PostMessage( GikoForm.Handle, USER_SETLINKBAR, 0, 0 );
563 end;
564 // *************************************************************************
565 //! \83c\83\8a\81[\82ð\91S\82Ä\95Â\82\82é
566 // *************************************************************************
567 procedure TGikoDM.FavoriteTreeViewCollapseActionExecute(Sender: TObject);
568 var
569         node    : TTreeNode;
570 begin
571         node := GikoForm.FavoriteTreeView.Items.GetFirstNode;
572         try
573                 //\83m\81[\83h\82ª\91±\82­\8cÀ\82è\81@\83m\81[\83h\82ð\8fk\8f¬\82³\82¹\82é
574                 while node <> nil do begin
575                         if node.HasChildren then
576                                 node.Expanded := False;
577                         node := node.GetNext;
578                 end;
579         except
580         end;
581 end;
582 // *************************************************************************
583 //! \82¨\8bC\82É\93ü\82è\82Ì\96¼\91O\82ð\95Ò\8fW\82·\82é
584 // *************************************************************************
585 procedure TGikoDM.FavoriteTreeViewRenameActionExecute(Sender: TObject);
586 var
587         node : TTreeNode;
588 begin
589
590         if GikoForm.ClickNode = nil then
591                 Exit;
592         if GikoForm.ClickNode.IsFirstNode then
593                 Exit;
594         if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then
595                 Exit;
596         GikoForm.FavoriteTreeView.ReadOnly := False;
597         if (GikoForm.TreeType = gttFavorite) and (GikoForm.CabinetPanel.Visible) then begin
598                 node := GikoForm.ClickNode.Parent;
599                 while node <> nil do begin
600                         node.Expanded   := True;
601                         node                                    := node.Parent;
602                 end;
603                 GikoForm.ClickNode.EditText;
604         end else begin
605                 GikoForm.ClickNode.Text := InputBox( '\96¼\91O\82Ì\95Ï\8dX', '\82¨\8bC\82É\93ü\82è\82Ì\90V\82µ\82¢\96¼\91O\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢', GikoForm.ClickNode.Text );
606         end;
607
608         GikoForm.SetLinkBar;
609 end;
610 // *************************************************************************
611 //! \90V\82µ\82­\82¨\8bC\82É\93ü\82è\82É\83t\83H\83\8b\83_\82ð\8dì\90¬\82·\82é
612 // *************************************************************************
613 procedure TGikoDM.FavoriteTreeViewNewFolderActionExecute(Sender: TObject);
614 var
615         NewFavFolder: TFavoriteFolder;
616         Node: TTreeNode;
617 begin
618
619         if GikoForm.ClickNode = nil then
620                 Exit;
621
622         try
623                 if not (TObject(GikoForm.ClickNode.Data) is TFavoriteFolder) then begin
624                         GikoForm.FavoriteTreeView.Selected := GikoForm.ClickNode.Parent;
625                         GikoForm.ClickNode := GikoForm.ClickNode.Parent;
626                 end;
627
628                 NewFavFolder := TFavoriteFolder.Create;
629                 Node := GikoForm.FavoriteTreeView.Items.AddChildObject(GikoForm.ClickNode, '\90V\82µ\82¢\83t\83H\83\8b\83_', NewFavFolder);
630                 Node.ImageIndex := 14;
631                 Node.SelectedIndex := 14;
632         //                      FClickNode.Selected.Expanded := True;
633                 GikoForm.FavoriteTreeView.Selected := Node;
634                 GikoForm.ClickNode := Node;
635                 FavoriteTreeViewRenameAction.Execute;
636         finally
637         end;
638
639 end;
640 // *************************************************************************
641 //! \82±\82Ì\82¨\8bC\82É\93ü\82è\82ð\8dí\8f\9c\82·\82é
642 // *************************************************************************
643 procedure TGikoDM.FavoriteTreeViewDeleteActionExecute(Sender: TObject);
644 const
645         DEL_LINK_MSG = '\81g\83\8a\83\93\83N\81h\82Í\83\8a\83\93\83N\83o\81[\97p\83t\83H\83\8b\83_\82Å\82·\81B\8dí\8f\9c\82µ\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
646         DEL_MSG = '\81g^0\81h\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
647         DEL_TITLE = '\8dí\8f\9c\8am\94F';
648 begin
649
650         if GikoForm.ClickNode = nil then
651                 Exit;
652         if GikoForm.ClickNode.IsFirstNode then
653                 Exit;
654         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
655                 if GikoForm.ClickNode.Text = Favorite.FAVORITE_LINK_NAME then begin
656                         if MsgBox(GikoForm.Handle, DEL_LINK_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
657                                 Exit;
658                 end else begin
659                         if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
660                                 Exit;
661                 end;
662         end;
663
664         GikoForm.ClickNode.Delete;
665
666         GikoForm.SetLinkBar;
667
668 end;
669 // *************************************************************************
670 //! \82±\82Ì\83t\83H\83\8b\83_\82É\93ü\82Á\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\91S\82Ä\8aJ\82­
671 // *************************************************************************
672 procedure TGikoDM.FavoriteTreeViewBrowseFolderActionExecute(
673   Sender: TObject);
674 begin
675         GikoForm.FavoriteBrowseFolder( GikoForm.ClickNode );
676 end;
677 // *************************************************************************
678 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\82¨\8bC\82É\93ü\82è\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
679 // *************************************************************************
680 procedure TGikoDM.FavoriteTreeViewReloadActionExecute(Sender: TObject);
681 var
682         ThreadItem: TThreadItem;
683         FavThread: TFavoriteThreadItem;
684         Board: TBoard;
685         FavBoard: TFavoriteBoardItem;
686         shiftDown: Boolean;
687 begin
688
689         if GikoForm.ClickNode = nil then Exit;
690
691         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
692
693         if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
694                 FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
695                 ThreadItem := FavThread.Item;
696                 if ThreadItem <> nil then
697                         GikoForm.DownloadContent(ThreadItem, shiftDown);
698         end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
699                 FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
700                 Board := FavBoard.Item;
701                 GikoForm.DownloadList(Board, shiftDown);
702         end;
703
704 end;
705 // *************************************************************************
706 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
707 // *************************************************************************
708 procedure TGikoDM.FavoriteTreeViewURLCopyActionExecute(Sender: TObject);
709 begin
710
711         if GikoForm.ClickNode = nil then Exit;
712
713         if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
714                 Clipboard.AsText := TFavoriteItem( GikoForm.ClickNode.Data ).URL + #13#10;
715         end;
716 end;
717 // *************************************************************************
718 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
719 // *************************************************************************
720 procedure TGikoDM.FavoriteTreeViewNameCopyActionExecute(Sender: TObject);
721 begin
722
723         if GikoForm.ClickNode = nil then Exit;
724
725         if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
726                 Clipboard.AsText :=
727                         TFavoriteItem(GikoForm.ClickNode.Data).GetItemTitle + #13#10;
728         end;
729 end;
730 // *************************************************************************
731 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
732 // *************************************************************************
733 procedure TGikoDM.FavoriteTreeViewNameURLCopyActionExecute(
734   Sender: TObject);
735 var
736         favItem : TFavoriteItem;
737 begin
738
739         if GikoForm.ClickNode = nil then Exit;
740
741         if (TObject(GikoForm.ClickNode.Data) is TFavoriteItem) then begin
742                 favItem := TFavoriteItem(GikoForm.ClickNode.Data);
743                 Clipboard.AsText := favItem.GetItemTitle  + #13#10 +
744                                                         favItem.URL + #13#10;
745         end;
746
747 end;
748 // *************************************************************************
749 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
750 // *************************************************************************
751 procedure TGikoDM.FavoriteTreeViewLogDeleteActionExecute(Sender: TObject);
752 const
753         DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
754         DEL_TITLE = '\8dí\8f\9c\8am\94F';
755 var
756         ThreadItem: TThreadItem;
757         FavThread: TFavoriteThreadItem;
758 begin
759
760         if GikoForm.ClickNode = nil then Exit;
761         if not (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then Exit;
762
763         FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
764         ThreadItem := FavThread.Item;
765
766         try
767                 if GikoSys.Setting.DeleteMsg then begin
768                         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
769                                 if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', GikoForm.ClickNode.Text, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
770                                         Exit;
771                 end;
772
773                 GikoForm.DeleteHistory(ThreadItem);
774                 GikoForm.DeleteTab(ThreadItem);
775                 ThreadItem.DeleteLogFile;
776
777                 GikoForm.ListView.Refresh;
778         finally
779         end;
780
781 end;
782 // *************************************************************************
783 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
784 // *************************************************************************
785 procedure TGikoDM.FavoriteTreeViewBrowseThreadActionExecute(
786   Sender: TObject);
787 var
788         threadItem      : TThreadItem;
789 begin
790
791         if GikoForm.ClickNode = nil then Exit;
792
793         if (TObject(GikoForm.ClickNode.Data) is TFavoriteThreadItem) then begin
794
795                 threadItem := TFavoriteThreadItem( GikoForm.ClickNode.Data ).Item;
796                 if threadItem = nil then
797                         Exit;
798                 GikoSys.OpenBrowser( threadItem.URL, gbtAuto );
799
800         end;
801 end;
802 //! \83\8c\83X\82Ì\8di\8d\9e\82Ý\83t\83B\83\8b\83^\81[\82ð\8bó\82É\82·\82é
803 procedure TGikoDM.ClearResFilter;
804 var
805         FilterList : TStringList;
806 begin
807         // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
808         FilterList := TStringList.Create;
809         try
810                 GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
811                 GikoSys.FSelectResFilter.Reverse := False;
812         finally
813                 FilterList.Free;
814         end;
815         GikoForm.SelectResWord := '';
816 end;
817 // *************************************************************************
818 //! \83\8c\83X\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
819 // *************************************************************************
820 procedure TGikoDM.SetResRange(range: Integer);
821 begin
822         if GikoSys.ResRange <> range then begin
823                 GikoSys.ResRange        := range;
824                 // \83t\83B\83\8b\83^\95\8e\9a\97ñ\82ð\8bó\82É\82·\82é
825                 ClearResFilter;
826                 GikoForm.RepaintAllTabsBrowser();
827         end;
828 end;
829 // *************************************************************************
830 //! \8dÅ\90V100\83\8c\83X\82Ì\82Ý\95\\8e¦
831 // *************************************************************************
832 procedure TGikoDM.OnlyAHundredResActionExecute(Sender: TObject);
833 begin
834         if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
835                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
836
837         GikoForm.ResRangeMenuSelect     := 100;
838         OnlyAHundredResAction.Checked   := True;
839         //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
840         SetResRange(100);
841 end;
842 // *************************************************************************
843 //! \96¢\93Ç\83\8c\83X\82Ì\82Ý\95\\8e¦
844 // *************************************************************************
845 procedure TGikoDM.OnlyKokoResActionExecute(Sender: TObject);
846 begin
847         if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
848                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
849
850         GikoForm.ResRangeMenuSelect     := Ord( grrKoko );
851         OnlyKokoResAction.Checked       := True;
852
853         //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
854         SetResRange(Ord( grrKoko ));
855 end;
856 // *************************************************************************
857 //! \90V\92\85\83\8c\83X\82Ì\82Ý\95\\8e¦
858 // *************************************************************************
859 procedure TGikoDM.OnlyNewResActionExecute(Sender: TObject);
860 begin
861         if (GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil)
862                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
863
864         GikoForm.ResRangeMenuSelect     := Ord( grrNew );
865         OnlyNewResAction.Checked        := True;
866
867         //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
868         SetResRange(Ord( grrNew ));
869 end;
870 // *************************************************************************
871 //! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\91å\82«\82­\95\\8e¦\82·\82é
872 // *************************************************************************
873 procedure TGikoDM.BrowserMaxActionExecute(Sender: TObject);
874 begin
875         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
876                 case GikoSys.Setting.ListWidthState of
877                         glsMax: begin
878                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
879                                 if GikoForm.ActiveContent <> nil then
880                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
881                                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
882                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
883                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
884                                 GikoSys.Setting.ListWidthState := glsNormal;
885                                 if GikoForm.ActiveContent <> nil then
886                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
887                         end;
888                         glsMin, glsNormal: begin
889                                 //\8dÅ\91å\95\\8e¦\82É\82·\82é
890                                 if GikoForm.ActiveContent <> nil then
891                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
892                                 if GikoSys.Setting.ListWidthState = glsNormal then
893                                         GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
894                                 if GikoForm.ActiveContent <> nil then
895                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
896                                 GikoForm.ViewPanel.Width := 1;
897                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
898                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
899                                 GikoSys.Setting.ListWidthState := glsMax;
900                         end;
901                 end;
902         end else begin
903                 case GikoSys.Setting.ListHeightState of
904                         glsMax: begin
905                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
906                                 if GikoForm.ActiveContent <> nil then
907                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
908                                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
909                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
910                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
911                                 GikoSys.Setting.ListHeightState := glsNormal;
912                                 if GikoForm.ActiveContent <> nil then
913                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
914                         end;
915                         glsMin, glsNormal: begin
916                                 //\8dÅ\91å\95\\8e¦\82É\82·\82é
917                                 if GikoForm.ActiveContent <> nil then
918                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
919                                 if GikoSys.Setting.ListHeightState = glsNormal then
920                                         GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
921                                 if GikoForm.ActiveContent <> nil then
922                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
923                                 GikoForm.ViewPanel.Height := 1;
924                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
925                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
926                                 GikoSys.Setting.ListHeightState := glsMax;
927                         end;
928                 end;
929         end;
930 end;
931 // *************************************************************************
932 //! \83X\83\8c\83b\83h\95\\8e¦\83G\83\8a\83A\82ð\8f¬\82³\82­\95\\8e¦\82·\82é
933 // *************************************************************************
934 procedure TGikoDM.BrowserMinActionExecute(Sender: TObject);
935 begin
936         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
937                 case GikoSys.Setting.ListWidthState of
938                         glsMax, glsNormal: begin
939                                 //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
940                                 if GikoForm.ActiveContent <> nil then
941                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
942                                 if GikoSys.Setting.ListWidthState = glsNormal then
943                                         GikoForm.BrowserSizeWidth := GikoForm.ViewPanel.Width;
944                                 if GikoForm.ActiveContent <> nil then
945                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
946                                 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
947                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
948                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
949                                 GikoSys.Setting.ListWidthState := glsMin;
950                         end;
951                         glsMin: begin
952                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
953                                 if GikoForm.ActiveContent <> nil then
954                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
955                                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
956                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
957                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
958                                 GikoSys.Setting.ListWidthState := glsNormal;
959                                 if GikoForm.ActiveContent <> nil then
960                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
961                         end;
962                 end;
963         end else begin
964                 case GikoSys.Setting.ListHeightState of
965                         glsMax, glsNormal: begin
966                                 //\8dÅ\8f¬\95\\8e¦\82É\82·\82é
967                                 if GikoForm.ActiveContent <> nil then
968                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
969                                 if GikoSys.Setting.ListHeightState = glsNormal then
970                                         GikoForm.BrowserSizeHeight := GikoForm.ViewPanel.Height;
971                                 GikoForm.ViewPanel.Height := GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
972                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
973                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
974                                 GikoSys.Setting.ListHeightState := glsMin;
975                                 if GikoForm.ActiveContent <> nil then
976                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
977                         end;
978                         glsMin: begin
979                                 //\92Ê\8fí\95\\8e¦\82É\82·\82é
980                                 if GikoForm.ActiveContent <> nil then
981                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 0, 0);  //\95`\89æ\92â\8e~
982                                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
983                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
984                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
985                                 GikoSys.Setting.ListHeightState := glsNormal;
986                                 if GikoForm.ActiveContent <> nil then
987                                         SendMessage(GikoForm.ActiveContent.Browser.Handle, WM_SETREDRAW, 1, 0);  //\95`\89æ
988                         end;
989                 end;
990         end;
991 end;
992 // *************************************************************************
993 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90æ\93ª\82Ö\88Ú\93®\82·\82é
994 // *************************************************************************
995 procedure TGikoDM.ScrollTopActionExecute(Sender: TObject);
996 begin
997         GikoForm.BrowserMovement('top');
998 end;
999 // *************************************************************************
1000 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\8dÅ\8cã\82Ö\88Ú\93®\82·\82é
1001 // *************************************************************************
1002 procedure TGikoDM.ScrollLastActionExecute(Sender: TObject);
1003 begin
1004         GikoForm.BrowserMovement('bottom');
1005 end;
1006 // *************************************************************************
1007 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\90V\92\85\82Ö\88Ú\93®\82·\82é
1008 // *************************************************************************
1009 procedure TGikoDM.ScrollNewActionExecute(Sender: TObject);
1010 begin
1011         GikoForm.BrowserMovement('new');
1012 end;
1013 // *************************************************************************
1014 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é
1015 // *************************************************************************
1016 procedure TGikoDM.ScrollKokoActionExecute(Sender: TObject);
1017 begin
1018         GikoForm.BrowserMovement('koko');
1019 end;
1020 // *************************************************************************
1021 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\83R\83R\82Ü\82Å\93Ç\82ñ\82¾\82Ö\88Ú\93®\82·\82é\82ÌUpdate\83C\83x\83\93\83g
1022 // *************************************************************************
1023 procedure TGikoDM.ScrollKokoActionUpdate(Sender: TObject);
1024 begin
1025         ScrollKokoAction.Enabled := (GikoForm.GetActiveContent <> nil)
1026                                                                 and (GikoForm.GetActiveContent.IsLogFile)
1027                                                                 and (GikoForm.GetActiveContent.Kokomade <> -1);
1028 end;
1029 // *************************************************************************
1030 //! \83\8c\83X\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
1031 // *************************************************************************
1032 procedure TGikoDM.EditorActionExecute(Sender: TObject);
1033 var
1034         Editor: TEditorForm;
1035         Item: TThreadItem;
1036 begin
1037         Item := GikoForm.GetActiveContent;
1038         if Item = nil then Exit;
1039         Editor := TEditorForm.Create(GikoForm.GetMainForm);
1040         Editor.SetThreadItem(Item);
1041         GikoSys.LoadEditorKeySetting(Editor.ActionList);
1042         Editor.Show;
1043         Editor.BodyEdit.SetFocus;
1044 end;
1045 // *************************************************************************
1046 //! \83X\83\8c\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
1047 // *************************************************************************
1048 procedure TGikoDM.IEActionExecute(Sender: TObject);
1049 begin
1050         ShowThreadAction.Execute;
1051 end;
1052 // *************************************************************************
1053 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
1054 // *************************************************************************
1055 procedure TGikoDM.ShowThreadActionExecute(Sender: TObject);
1056 var
1057         ThreadItem: TThreadItem;
1058 begin
1059         ThreadItem := GikoForm.GetActiveContent;
1060         if ThreadItem = nil then Exit;
1061         GikoSys.OpenBrowser(ThreadItem.URL, gbtAuto);
1062 end;
1063 // *************************************************************************
1064 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
1065 // *************************************************************************
1066 procedure TGikoDM.ShowBoardActionExecute(Sender: TObject);
1067 var
1068         ThreadItem: TThreadItem;
1069 begin
1070         ThreadItem := GikoForm.GetActiveContent;
1071         if ThreadItem = nil then Exit;
1072         GikoSys.OpenBrowser(ThreadItem.ParentBoard.URL, gbtAuto);
1073 end;
1074 // *************************************************************************
1075 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
1076 // *************************************************************************
1077 procedure TGikoDM.URLCopyActionExecute(Sender: TObject);
1078 var
1079         s: string;
1080 begin
1081         s := '';
1082         if TObject(GikoForm.GetActiveContent) is TBoard then
1083                 s := s + TBoard(GikoForm.GetActiveContent).URL + #13#10
1084         else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1085                 s := s + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1086         if s <> '' then
1087                 Clipboard.AsText := s;
1088 end;
1089 // *************************************************************************
1090 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ð\83R\83s\81[\82·\82é
1091 // *************************************************************************
1092 procedure TGikoDM.NameCopyActionExecute(Sender: TObject);
1093 var
1094         s: string;
1095 begin
1096         s := '';
1097         if TObject(GikoForm.GetActiveContent) is TBoard then
1098                 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10
1099         else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1100                 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10;
1101         if s <> '' then
1102                 Clipboard.AsText := s;
1103 end;
1104 // *************************************************************************
1105 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\96¼\82ÆURL\82ð\83R\83s\81[\82·\82é
1106 // *************************************************************************
1107 procedure TGikoDM.NameURLCopyActionExecute(Sender: TObject);
1108 var
1109         s: string;
1110 begin
1111         s := '';
1112         if TObject(GikoForm.GetActiveContent) is TBoard then
1113                 s := s + TBoard(GikoForm.GetActiveContent).Title + #13#10 + TBoard(GikoForm.GetActiveContent).URL + #13#10
1114         else if TObject(GikoForm.GetActiveContent) is TThreadItem then
1115                 s := s + TThreadItem(GikoForm.GetActiveContent).Title + #13#10 + TThreadItem(GikoForm.GetActiveContent).URL + #13#10;
1116         if s <> '' then
1117                 Clipboard.AsText := s;
1118 end;
1119 // *************************************************************************
1120 //! \95\\8e¦\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1121 // *************************************************************************
1122 procedure TGikoDM.ItemReloadActionExecute(Sender: TObject);
1123 var
1124         ThreadItem: TThreadItem;
1125         shiftDown: Boolean;
1126 begin
1127         ThreadItem := GikoForm.GetActiveContent;
1128         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
1129         if ThreadItem <> nil then
1130                 GikoForm.DownloadContent(ThreadItem, shiftDown);
1131 end;
1132 // *************************************************************************
1133 //! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82ð\95Â\82\82é
1134 // *************************************************************************
1135 procedure TGikoDM.BrowserTabCloseActionExecute(Sender: TObject);
1136 var
1137         idx: Integer;
1138 begin
1139         idx := GikoForm.BrowserTab.TabIndex;
1140         if idx <> -1 then begin
1141                 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1142                         GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1143                 end;
1144         end;
1145 end;
1146 // *************************************************************************
1147 //! \83^\83u\82ª\82P\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
1148 // *************************************************************************
1149 procedure TGikoDM.BrowserTabCloseActionUpdate(Sender: TObject);
1150 begin
1151         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0);
1152 end;
1153 // *************************************************************************
1154 //! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\88È\8aO\82ð\95Â\82\82é
1155 // *************************************************************************
1156 procedure TGikoDM.NotSelectTabCloseActionExecute(Sender: TObject);
1157 var
1158         i: Integer;
1159         idx: Integer;
1160 begin
1161         idx := GikoForm.BrowserTab.TabIndex;
1162         if idx = -1 then Exit;
1163         GikoForm.BrowserTab.Tabs.BeginUpdate;
1164         for i := GikoForm.BrowserTab.Tabs.Count - 1 downto GikoForm.BrowserTab.TabIndex + 1 do begin
1165                 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1166                 GikoForm.BrowserTab.Tabs.Delete(i);
1167         end;
1168         if idx > 0 then begin
1169                 for i := GikoForm.BrowserTab.TabIndex - 1 downto 0 do begin
1170                         TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1171                         GikoForm.BrowserTab.Tabs.Delete(i);
1172                 end;
1173         end;
1174         GikoForm.BrowserTab.Tabs.EndUpdate;
1175 end;
1176 // *************************************************************************
1177 //! \83^\83u\82ª\82Q\82Â\88È\8fã\82 \82ê\82ª\97L\8cø\82É\82·\82éUpdate\83C\83x\83\93\83g
1178 // *************************************************************************
1179 procedure TGikoDM.NotSelectTabCloseActionUpdate(Sender: TObject);
1180 begin
1181         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1182 end;
1183 // *************************************************************************
1184 //! \91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82é
1185 // *************************************************************************
1186 procedure TGikoDM.AllTabCloseActionExecute(Sender: TObject);
1187 var
1188         i: Integer;
1189 begin
1190         if GikoSys.Setting.ShowDialogForAllTabClose then
1191                 if(MessageDlg('\91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
1192                         Exit;
1193
1194         GikoForm.ActiveContent := nil;
1195         GikoForm.BrowserNullTab.Thread := nil;
1196         GikoForm.BrowserTab.OnChange := nil;
1197         GikoForm.BrowserTab.Tabs.BeginUpdate;
1198         for i := GikoForm.BrowserTab.Tabs.Count - 1 downto 0 do begin
1199                 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1200         end;
1201         GikoForm.BrowserTab.Tabs.Clear;
1202         GikoForm.BrowserTab.Tabs.EndUpdate;
1203         GikoForm.BrowserTab.OnChange := GikoForm.BrowserTabChange;
1204         GikoForm.SetContent(GikoForm.BrowserNullTab);
1205         GikoForm.Caption := CAPTION_NAME ;
1206 end;
1207 // *************************************************************************
1208 //! \8c»\8dÝ\8aJ\82¢\82Ä\82¢\82é\83^\83u\82Ì\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
1209 // *************************************************************************
1210 procedure TGikoDM.ActiveLogDeleteActionExecute(Sender: TObject);
1211 const
1212         DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1213         DEL_TITLE = '\8dí\8f\9c\8am\94F';
1214 var
1215         idx: Integer;
1216         ThreadItem: TThreadItem;
1217 begin
1218         idx := GikoForm.BrowserTab.TabIndex;
1219         if idx <> -1 then begin
1220                 if GikoForm.BrowserTab.Tabs.Objects[idx] <> nil then begin
1221                         ThreadItem := TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]).Thread;
1222                         if GikoSys.Setting.DeleteMsg then
1223                                 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1224                                         if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', ThreadItem.Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1225                                                 Exit;
1226                         GikoForm.DeleteTab(TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[idx]));
1227                         ThreadItem.DeleteLogFile;
1228                         if ThreadItem.ParentBoard = GikoForm.ActiveList then
1229                                 GikoForm.ListView.Refresh;
1230                 end;
1231         end;
1232 end;
1233 // *************************************************************************
1234 //! \88ê\94Ô\8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1235 // *************************************************************************
1236 procedure TGikoDM.LeftmostTabSelectActionExecute(Sender: TObject);
1237 begin
1238         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1239                 GikoForm.BrowserTab.TabIndex := 0;
1240                 GikoForm.BrowserTab.OnChange(nil);
1241         end;
1242 end;
1243 // *************************************************************************
1244 //! \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82Ì\83C\83\93\83f\83b\83N\83X\82ª\82O\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
1245 // *************************************************************************
1246 procedure TGikoDM.LeftmostTabSelectActionUpdate(Sender: TObject);
1247 begin
1248         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1249                                                                 and (GikoForm.BrowserTab.TabIndex <> 0);
1250 end;
1251 // *************************************************************************
1252 //! \8d\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1253 // *************************************************************************
1254 procedure TGikoDM.LeftTabSelectActionExecute(Sender: TObject);
1255 begin
1256         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1257                 if GikoForm.BrowserTab.TabIndex = -1 then begin
1258                         GikoForm.BrowserTab.TabIndex := 0;
1259                         GikoForm.BrowserTab.OnChange(nil);
1260                 end else if GikoForm.BrowserTab.TabIndex > 0 then begin
1261                         GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex - 1;
1262                         GikoForm.BrowserTab.OnChange(nil);
1263                 end;
1264         end;
1265 end;
1266 // *************************************************************************
1267 //! \89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1268 // *************************************************************************
1269 procedure TGikoDM.RightTabSelectActionExecute(Sender: TObject);
1270 begin
1271         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1272                 if GikoForm.BrowserTab.TabIndex = -1 then begin
1273                         GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1274                         GikoForm.BrowserTab.OnChange(nil);
1275                 end else if GikoForm.BrowserTab.TabIndex < (GikoForm.BrowserTab.Tabs.Count - 1) then begin
1276                         GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.TabIndex + 1;
1277                         GikoForm.BrowserTab.OnChange(nil);
1278                 end;
1279         end;
1280 end;
1281 // *************************************************************************
1282 //! \83^\83u\82Ì\90\94\82ª\82P\88È\8fã\82Å\81A\83^\83u\82ª\89E\92[\88È\8aO\82Å\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
1283 // *************************************************************************
1284 procedure TGikoDM.RightTabSelectActionUpdate(Sender: TObject);
1285 begin
1286         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 0)
1287                                                                 and (GikoForm.BrowserTab.TabIndex <> GikoForm.BrowserTab.Tabs.Count - 1);
1288 end;
1289 // *************************************************************************
1290 //! \88ê\94Ô\89E\82Ì\83^\83u\82ð\91I\91ð\82·\82é
1291 // *************************************************************************
1292 procedure TGikoDM.RightmostTabSelectActionExecute(Sender: TObject);
1293 begin
1294         if GikoForm.BrowserTab.Tabs.Count > 0 then begin
1295                 GikoForm.BrowserTab.TabIndex := GikoForm.BrowserTab.Tabs.Count - 1;
1296                 GikoForm.BrowserTab.OnChange(nil);
1297         end;
1298 end;
1299 // *************************************************************************
1300 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á
1301 // *************************************************************************
1302 procedure TGikoDM.ThreadFavoriteAddActionExecute(Sender: TObject);
1303 begin
1304         if TObject(GikoForm.ListView.Selected.Data) is TThreadItem then
1305                 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
1306 end;
1307 // *************************************************************************
1308 //! \83X\83\8c\83b\83h\88ê\97\97\82Å\81A\83X\83\8c\82ª\82P\82Â\88È\8fã\91I\91ð\82³\82ê\82Ä\82¢\82é\97L\8cø\82É\82È\82éUpdate\83C\83x\83\93\83g
1309 // *************************************************************************
1310 procedure TGikoDM.ThreadFavoriteAddActionUpdate(Sender: TObject);
1311 begin
1312         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1313                                                                         and (GikoForm.ListView.SelCount > 0);
1314 end;
1315 // *************************************************************************
1316 //! \83\8c\83X\82Ì\93à\97e\82ð\8di\82è\8d\9e\82Þ
1317 // *************************************************************************
1318 procedure TGikoDM.SelectResActionExecute(Sender: TObject);
1319 var
1320         Dlg: TListSelectDialog;
1321         FilterList : TStringList;
1322         idx : Integer;
1323 begin
1324         Dlg := TListSelectDialog.Create(GikoForm);
1325         try
1326                 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
1327                 Dlg.SelectComboBox.Text := GikoForm.SelectResWord;
1328                 Dlg.ShowModal;
1329                 if Dlg.ModalResult = mrOK then begin
1330                         SelectResAction.Checked := True;
1331                         if Length( Dlg.SelectComboBox.Text ) = 0 then begin
1332                                 // \8bó\93ü\97Í\82Å OK \82Í\8di\82è\8d\9e\82Ý\89ð\8f\9c\82Æ\93¯\88Ó\8b`
1333                                 ResRangeAction.Execute;
1334                         end else begin
1335                                 GikoSys.ResRange := Ord( grrSelect );
1336
1337                                 // \8dÅ\8cã\82É\90Ý\92è\82µ\82½\82à\82Ì\82ð\8ao\82¦\82Ä\82¨\82­
1338                                 GikoForm.SelectResWord := Dlg.SelectComboBox.Text;
1339
1340                                 // \8c\9f\8dõ\97\9a\97ð\82Ì\8dX\90V
1341                                 idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
1342                                 if idx <> -1 then
1343                                         GikoSys.Setting.SelectTextList.Delete(idx);
1344                                 GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
1345                                 while Dlg.SelectComboBox.Items.Count > 100 do begin
1346                                         Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
1347                                 end;
1348
1349                                 try
1350                                         if GikoForm.SelectComboBoxPanel.Visible then
1351                                                 GikoForm.SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1352                                 except
1353                                 end;
1354
1355                                 // \83t\83B\83\8b\83^\82Ì\90Ý\92è
1356                                 FilterList := TStringList.Create;
1357                                 try
1358                                         GikoSys.FSelectResFilter.Reverse := True;
1359                                         FilterList.Delimiter := ' '; //\8bæ\90Ø\82è\8eq\82ð\94¼\8ap\83X\83y\81[\83X\82É\90Ý\92è
1360                                         FilterList.DelimitedText := Dlg.SelectComboBox.Text;
1361
1362                                         GikoSys.FSelectResFilter.LoadFromStringList( FilterList );
1363                                 finally
1364                                         FilterList.Free;
1365                                 end;
1366                                 GikoForm.RepaintAllTabsBrowser();
1367                         end;
1368                 end else begin
1369                         // \83L\83\83\83\93\83Z\83\8b
1370                         if GikoSys.ResRange <> Ord( grrSelect ) then
1371                                 ResRangeAction.Execute;
1372                 end;
1373         finally
1374                 Dlg.Release;
1375         end;
1376
1377 end;
1378 // *************************************************************************
1379 //! \91S\82Ä\82Ì\83\8c\83X\82ð\95\\8e¦\82·\82é
1380 // *************************************************************************
1381 procedure TGikoDM.AllResActionExecute(Sender: TObject);
1382 begin
1383         if(GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil )
1384                 and (GikoForm.ActiveContent.Browser.Busy) then Exit;
1385
1386         GikoForm.ResRangeMenuSelect     := Ord( grrAll );
1387         AllResAction.Checked            := True;
1388
1389         //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
1390         SetResRange(Ord( grrAll ));
1391 end;
1392 // *************************************************************************
1393 //! \83\8c\83X\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
1394 // *************************************************************************
1395 procedure TGikoDM.ResRangeActionExecute(Sender: TObject);
1396 begin
1397         case GikoForm.ResRangeMenuSelect of
1398         Ord( grrAll ):  AllResAction.Execute;
1399         Ord( grrKoko ): OnlyKokoResAction.Execute;
1400         Ord( grrNew ):  OnlyNewResAction.Execute;
1401         100:                    OnlyAHundredResAction.Execute;
1402         end;
1403
1404 end;
1405 // *************************************************************************
1406 //! \82±\82Ì\83X\83\8c\83b\83h\82ð\8aÜ\82Þ\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦
1407 // *************************************************************************
1408 procedure TGikoDM.UpBoardActionExecute(Sender: TObject);
1409 begin
1410         GikoForm.SelectTreeNode( GikoForm.GetActiveContent.ParentBoard, True );
1411 end;
1412 // *************************************************************************
1413 //! \8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô
1414 // *************************************************************************
1415 procedure TGikoDM.JumpToNumOfResActionExecute(Sender: TObject);
1416 var
1417         str: string;
1418         res: integer;
1419 begin
1420         str := '1';
1421         if( InputQuery('\8ew\92è\82µ\82½\94Ô\8d\86\82Ì\83\8c\83X\82É\94ò\82Ô', '\94Ô\8d\86\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢', str) ) then begin
1422                 str := ZenToHan(str);
1423                 res := StrToIntDef(str, -1);
1424                 if (res > 0) and (res <= GikoForm.GetActiveContent.Count) then begin
1425                         GikoForm.ActiveContent.Move(IntToStr(res));
1426                         SetFocusForBrowserAction.Execute;
1427                 end else if res > GikoForm.GetActiveContent.Count then begin
1428                         GikoForm.ActiveContent.Move(IntToStr(GikoForm.GetActiveContent.Count));
1429                         SetFocusForBrowserAction.Execute;
1430                 end;
1431         end;
1432 end;
1433 // *************************************************************************
1434 //! \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\89E\82ð\95Â\82\82é
1435 // *************************************************************************
1436 procedure TGikoDM.RightTabCloseActionExecute(Sender: TObject);
1437 var
1438         i: Integer;
1439         idx: Integer;
1440 begin
1441         idx := GikoForm.BrowserTab.TabIndex;
1442         if idx = -1 then Exit;
1443         GikoForm.BrowserTab.Tabs.BeginUpdate;
1444         for i := GikoForm.BrowserTab.Tabs.Count - 1 downto idx + 1 do begin
1445                 TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1446                 GikoForm.BrowserTab.Tabs.Delete(i);
1447         end;
1448         GikoForm.BrowserTab.Tabs.EndUpdate;
1449 end;
1450 // *************************************************************************
1451 //! \83^\83u\82Ì\90\94\82ª\82Q\88È\8fã\82Å\97L\8cø\82ÈUpdate\83C\83x\83\93\83g
1452 // *************************************************************************
1453 procedure TGikoDM.RightTabCloseActionUpdate(Sender: TObject);
1454 begin
1455         TAction(Sender).Enabled := (GikoForm.BrowserTab.Tabs.Count > 1);
1456 end;
1457 // *************************************************************************
1458 //! \83A\83N\83e\83B\83u\82È\83^\83u\82æ\82è\8d\82ð\95Â\82\82é
1459 // *************************************************************************
1460 procedure TGikoDM.LeftTabCloseActionExecute(Sender: TObject);
1461 var
1462         i: Integer;
1463         idx: Integer;
1464 begin
1465         idx := GikoForm.BrowserTab.TabIndex;
1466         if idx = -1 then Exit;
1467         GikoForm.BrowserTab.Tabs.BeginUpdate;
1468         if idx > 0 then begin
1469                 for i := idx - 1 downto 0 do begin
1470                         TBrowserRecord(GikoForm.BrowserTab.Tabs.Objects[i]).Free;
1471                         GikoForm.BrowserTab.Tabs.Delete(i);
1472                 end;
1473         end;
1474         GikoForm.BrowserTab.Tabs.EndUpdate;
1475 end;
1476 ////////////////////////////////\83X\83\8c\83b\83h\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1477 procedure TGikoDM.DataModuleCreate(Sender: TObject);
1478 begin
1479 end;
1480 // *************************************************************************
1481 //! \83\8d\83O\8c\9f\8dõ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1482 // *************************************************************************
1483 procedure TGikoDM.SearchActionExecute(Sender: TObject);
1484 var
1485         chk: TObject;
1486 begin
1487
1488         if GikoForm.SearchDialog = nil then begin
1489                 if (GikoForm.GetActiveList is TCategory) or (GikoForm.GetActiveList is TBoard) then
1490                         chk := GikoForm.GetActiveList
1491                 else
1492                         chk := nil;
1493
1494                 GikoForm.SearchDialog := TSearchDialog.Create(GikoForm, chk);
1495                 GikoForm.SearchDialog.SearchComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1496         end;
1497
1498         try
1499                 GikoForm.SearchDialog.Show;
1500         except
1501         end;
1502 end;
1503 // *************************************************************************
1504 //! \83I\83v\83V\83\87\83\93\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1505 // *************************************************************************
1506 procedure TGikoDM.OptionActionExecute(Sender: TObject);
1507 var
1508         Dlg: TOptionDialog;
1509 begin
1510         Dlg := TOptionDialog.Create(GikoForm);
1511         try
1512                 Dlg.ShowModal;
1513         finally
1514                 Dlg.Release;
1515         end;
1516 end;
1517 // *************************************************************************
1518 //! \8f\84\89ñ\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1519 // *************************************************************************
1520 procedure TGikoDM.RoundActionExecute(Sender: TObject);
1521 var
1522         Dlg: TRoundDialog;
1523 begin
1524         Dlg := TRoundDialog.Create(GikoForm);
1525         try
1526                 Dlg.ShowModal;
1527         finally
1528                 Dlg.Release;
1529         end;
1530 end;
1531 // *************************************************************************
1532 //! \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
1533 // *************************************************************************
1534 procedure TGikoDM.KeySettingActionExecute(Sender: TObject);
1535 var
1536         Dlg: TKeySettingForm;
1537 begin
1538         Dlg := TKeySettingForm.Create(GikoForm);
1539         try
1540                 if Dlg.ShowModal = mrOk then begin
1541                         GikoSys.SaveKeySetting(GikoFormActionList);
1542                         GikoSys.SaveEditorKeySetting(Dlg.EditorForm.ActionList);
1543                         GikoSys.Setting.Gestures.SaveGesture( GikoSys.Setting.GetGestureFileName );
1544                 end;
1545
1546         finally
1547                 Dlg.Release;
1548                 MouseGesture.UnHook;
1549                 MouseGesture.OnGestureStart := GikoForm.OnGestureStart;
1550                 MouseGesture.OnGestureMove := GikoForm.OnGestureMove;
1551                 MouseGesture.OnGestureEnd := GikoForm.OnGestureEnd;
1552                 if GikoSys.Setting.GestureEnabled then begin
1553                         GikoSys.Setting.Gestures.ClearGesture;
1554                         GikoSys.Setting.Gestures.LoadGesture(
1555                                 GikoSys.Setting.GetGestureFileName, GikoFormActionList );
1556                         MouseGesture.SetHook( GikoForm.Handle );
1557                 end;
1558         end;
1559 end;
1560 // *************************************************************************
1561 //! \83L\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
1562 // *************************************************************************
1563 procedure TGikoDM.KotehanActionExecute(Sender: TObject);
1564 var
1565         Dlg: TKotehanDialog;
1566 begin
1567         Dlg := TKotehanDialog.Create(GikoForm);
1568         try
1569                 Dlg.ShowModal;
1570         finally
1571                 Dlg.Release;
1572         end;
1573 end;
1574 // *************************************************************************
1575 //! \83c\81[\83\8b\83o\81[\90Ý\92è\83_\83C\83A\83\8d\83O\82ð\8aJ\82­
1576 // *************************************************************************
1577 procedure TGikoDM.ToolBarSettingActionExecute(Sender: TObject);
1578 var
1579         Dlg: TToolBarSettingDialog;
1580         i: Integer;
1581 begin
1582         Dlg := TToolBarSettingDialog.Create(GikoForm, GikoFormActionList);
1583         try
1584                 Dlg.AddToolBar(GikoForm.StdToolBar, gttStandard);
1585                 Dlg.AddToolBar(GikoForm.ListToolBar, gttList);
1586                 Dlg.AddToolBar(GikoForm.BrowserToolBar, gttBrowser);
1587                 case GikoForm.ToolBarSettingSender of
1588                 tssMain:                Dlg.ToolBarIndex := 0;
1589                 tssList:                Dlg.ToolBarIndex := 1;
1590                 tssBrowser: Dlg.ToolBarIndex := 2;
1591                 end;
1592                 if Dlg.ShowModal = mrOK then begin
1593                         GikoForm.SetToolBarPopup;
1594
1595                         //\8dÅ\93K\95\9d\82ð\8dÄ\90Ý\92è\82·\82é\82½\82ß\82É\93K\93\96\82È\83v\83\8d\83p\83e\83B\82ð\82¢\82\82­\82é
1596                         for i := 0 to GikoForm.MainCoolBar.Bands.Count - 1 do begin
1597                                 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1598                                         GikoForm.MainCoolBar.Bands[i].MinWidth + 1;
1599                                 GikoForm.MainCoolBar.Bands[i].MinWidth :=
1600                                         GikoForm.MainCoolBar.Bands[i].MinWidth - 1;
1601                         end;
1602                         for i := 0 to GikoForm.ListCoolBar.Bands.Count - 1 do begin
1603                                 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1604                                         GikoForm.ListCoolBar.Bands[i].MinWidth + 1;
1605                                 GikoForm.ListCoolBar.Bands[i].MinWidth :=
1606                                         GikoForm.ListCoolBar.Bands[i].MinWidth - 1;
1607                         end;
1608                         for i := 0 to GikoForm.BrowserCoolBar.Bands.Count - 1 do begin
1609                                 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1610                                         GikoForm.BrowserCoolBar.Bands[i].MinWidth + 1;
1611                                 GikoForm.BrowserCoolBar.Bands[i].MinWidth :=
1612                                         GikoForm.BrowserCoolBar.Bands[i].MinWidth - 1;
1613                         end;
1614
1615                         SaveToolBarSetting(GikoForm.StdToolBar);
1616                         SaveToolBarSetting(GikoForm.ListToolBar);
1617                         //ListToolBar\82É\82¢\82é\82©\82à\82µ\82ê\82È\82¢\8di\8d\9e\82ÝComboBox\82ð\94z\92u
1618                         GikoForm.SetSelectComboBox;
1619                         GikoForm.ResetBandInfo( GikoForm.ListCoolBar, GikoForm.ListToolBar );
1620                         SaveToolBarSetting(GikoForm.BrowserToolBar);
1621                 end;
1622         finally
1623                 Dlg.Release;
1624                 GikoForm.ToolBarSettingSender := tssNone;
1625         end;
1626 end;
1627 // *************************************************************************
1628 //! \83~\83\85\81[\83g
1629 // *************************************************************************
1630 procedure TGikoDM.MuteActionExecute(Sender: TObject);
1631 begin
1632         GikoSys.Setting.Mute := not GikoSys.Setting.Mute;
1633 end;
1634 ////////////////////////////////\83c\81[\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1635 // *************************************************************************
1636 //! \83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1637 // *************************************************************************
1638 procedure TGikoDM.TreeSelectBoradReloadExecute(Sender: TObject);
1639 var
1640         Board: TBoard;
1641         TmpTreeNode: TTreeNode;
1642 begin
1643         TmpTreeNode := GikoForm.ClickNode;
1644         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1645         Board := nil;
1646
1647         if TObject(TmpTreeNode.Data) is TBoard then
1648                 Board := TBoard(TmpTreeNode.Data)
1649         else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then
1650                 Board := TFavoriteBoardItem(TmpTreeNode.Data).Item;
1651
1652         if Board <> nil then
1653                 GikoForm.DownloadList(Board);
1654 end;
1655 // *************************************************************************
1656 //! \91I\91ð\82³\82ê\82½\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
1657 // *************************************************************************
1658 procedure TGikoDM.TreeSelectThreadReloadExecute(Sender: TObject);
1659 var
1660         ThreadItem: TThreadItem;
1661         TmpTreeNode: TTreeNode;
1662 begin
1663         TmpTreeNode := GikoForm.ClickNode;
1664         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1665         ThreadItem := nil;
1666
1667         if TObject(TmpTreeNode.Data) is TThreadItem then
1668                 ThreadItem := TThreadItem(TmpTreeNode.Data)
1669         else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then
1670                 ThreadItem := TFavoriteThreadItem(TmpTreeNode.Data).Item;
1671
1672         if ThreadItem <> nil then
1673                 GikoForm.DownloadContent(ThreadItem);
1674 end;
1675 // *************************************************************************
1676 //! \91I\91ð\82³\82ê\82½\94Â\82ÌURL\82ð\83R\83s\81[\82·\82é
1677 // *************************************************************************
1678 procedure TGikoDM.TreeSelectURLCopyExecute(Sender: TObject);
1679 var
1680         TmpTreeNode: TTreeNode;
1681         s: string;
1682 begin
1683         TmpTreeNode := GikoForm.ClickNode;
1684         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1685         if TObject(TmpTreeNode.Data) is TBoard then begin
1686                 s := TBoard(TmpTreeNode.Data).URL + #13#10;
1687         end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1688                 s := TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1689         end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1690                 s := TThreadItem(TmpTreeNode.Data).URL + #13#10;
1691         end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1692                 s := TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1693         end;
1694         Clipboard.AsText := s;
1695 end;
1696 // *************************************************************************
1697 //! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
1698 // *************************************************************************
1699 procedure TGikoDM.TreeSelectNameURLCopyExecute(Sender: TObject);
1700 var
1701         TmpTreeNode: TTreeNode;
1702         s: string;
1703 begin
1704         TmpTreeNode := GikoForm.ClickNode;
1705         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1706         if TObject(TmpTreeNode.Data) is TBoard then begin
1707                 s := TBoard(TmpTreeNode.Data).Title + #13#10 + TBoard(TmpTreeNode.Data).URL + #13#10;
1708         end else if TObject(TmpTreeNode.Data) is TFavoriteBoardItem then begin
1709                 s := TFavoriteBoardItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteBoardItem(TmpTreeNode.Data).URL + #13#10;
1710         end else if (TObject(TmpTreeNode.Data) is TThreadItem) then begin
1711                 s := TThreadItem(TmpTreeNode.Data).Title + #13#10 + TThreadItem(TmpTreeNode.Data).URL + #13#10;
1712         end else if TObject(TmpTreeNode.Data) is TFavoriteThreadItem then begin
1713                 s := TFavoriteThreadItem(TmpTreeNode.Data).Item.Title + #13#10 + TFavoriteThreadItem(TmpTreeNode.Data).URL + #13#10;
1714         end;
1715         Clipboard.AsText := s;
1716 end;
1717 // *************************************************************************
1718 //! \82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
1719 // *************************************************************************
1720 procedure TGikoDM.TreeSelectFavoriteAddActionExecute(Sender: TObject);
1721 begin
1722         GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ClickNode.Data));
1723 end;
1724 // *************************************************************************
1725 //! \94Â\96¼\8c\9f\8dõ
1726 // *************************************************************************
1727 procedure TGikoDM.TreeSelectSearchBoardNameExecute(Sender: TObject);
1728 var
1729         s : String;
1730         msg : String;
1731         CurItem : TTreeNode;
1732         next : boolean;
1733 begin
1734         if InputQuery('\94Â\96¼\8c\9f\8dõ','\94Â\96¼\82Ì\93ü\97Í',s) then begin
1735                 next := true;
1736                 while next do begin
1737                         if GikoForm.TreeView.Selected = nil then
1738                                 CurItem := GikoForm.TreeView.Items.GetFirstNode
1739                         else begin
1740                                 CurItem := GikoForm.TreeView.Selected.GetNext;
1741                                 if CurItem = nil then
1742                                         CurItem := GikoForm.TreeView.Items.GetFirstNode;
1743                         end;
1744                         while CurItem <> nil do begin
1745                                 if (CurItem.ImageIndex <> 2) and (VaguePos(s,CurItem.Text) <> 0) then begin
1746                                         break;
1747                                 end;
1748                                 CurItem := CurItem.GetNext;
1749                         end;
1750                         try
1751                                 if CurItem = nil then begin
1752                                         msg := '\90æ\93ª\82É\96ß\82è\82Ü\82·\82©\81H';
1753                                         if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes     then begin
1754                                                 CurItem := GikoForm.TreeView.Items.GetFirstNode;
1755                                         end else begin
1756                                                 Exit;
1757                                         end;
1758                                         GikoForm.TreeView.Select(CurItem);
1759                                         GikoForm.TreeView.SetFocus;
1760                                 end else begin
1761                                         GikoForm.TreeView.Select(CurItem);
1762                                         GikoForm.TreeView.SetFocus;
1763                                         msg := '\8e\9f\82É\8ds\82«\82Ü\82·\82©\81H';
1764                                         if MsgBox(GikoForm.Handle, msg, '', MB_YESNO or MB_ICONEXCLAMATION) = mrYes     then begin
1765                                                 next := true;
1766                                         end else begin
1767                                                 next := false;
1768                                         end;
1769                                 end;
1770
1771                         except
1772                                 Exit;
1773                         end;
1774                 end;
1775         end;
1776 end;
1777 // *************************************************************************
1778 //! \91I\91ð\82³\82ê\82½\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
1779 // *************************************************************************
1780 procedure TGikoDM.TreeSelectNameCopyExecute(Sender: TObject);
1781 var
1782         s: string;
1783 begin
1784         GikoForm.TreeView.Selected := GikoForm.ClickNode;
1785         s := GikoForm.ClickNode.Text;
1786         Clipboard.AsText := s;
1787 end;
1788 ////////////////////////////////\83c\83\8a\81[\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
1789 // *************************************************************************
1790 //! \83\8d\83O\83C\83\93\81^\83\8d\83O\83A\83E\83g\82ð\82·\82é
1791 // *************************************************************************
1792 procedure TGikoDM.LoginActionExecute(Sender: TObject);
1793 var
1794         TmpCursor: TCursor;
1795         msg : String;
1796 begin
1797         if GikoSys.Dolib.Connected then begin
1798                 //\83\8d\83O\83A\83E\83g
1799                 GikoSys.Dolib.Disconnect;
1800                 LoginAction.Checked := False;
1801                 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogout)), nil, gmiOK);
1802                 LoginAction.Caption := '\83\8d\83O\83C\83\93(&L)';
1803         end else begin
1804                 TmpCursor := GikoForm.ScreenCursor;
1805                 GikoForm.ScreenCursor := crHourGlass;
1806                 try
1807                         //\92Ê\8fí\83\8d\83O\83C\83\93
1808                         if not GikoSys.Setting.ForcedLogin then begin
1809                                 GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1810                                 GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1811                                 GikoSys.Dolib.Password := GikoSys.Setting.Password;
1812                                 if GikoSys.Setting.ReadProxy then begin
1813                                         GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1814                                         GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1815                                 end else begin
1816                                         GikoSys.Dolib.ProxyAddress := '';
1817                                         GikoSys.Dolib.ProxyPort := 0;
1818                                 end;
1819                                 if GikoSys.Dolib.Connect then begin
1820                                         LoginAction.Checked := True;
1821                                         GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1822                                         LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
1823                                         //LoginToolButton.Style := tbsCheck;
1824                                 end else begin
1825                 //                      MsgBox(Handle, '\83\8d\83O\83C\83\93\8fo\97\88\82Ü\82¹\82ñ\82Å\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
1826                                         GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1827                                         GikoForm.PlaySound('Error');
1828                                         LoginAction.Checked := False;
1829                                         //LoginToolButton.Down := False;
1830                                         ///LoginToolButton.Style := tbsButton;
1831                                 end;
1832                         end else begin
1833                                 msg := '\8b­\90§\83\8d\83O\83C\83\93\83\82\81[\83h\82Å\82Í\81C\83T\81[\83o\82Ì\8fØ\96¾\8f\91\82Ì\97L\8cø\90«\82ð\83`\83F\83b\83N\82µ\82Ü\82¹\82ñ\81B' + #13#10
1834                                                 + '\8bU\91\95\83T\81[\83o\82Ì\8fê\8d\87\81A\82 \82È\82½\82Ì\83p\83X\83\8f\81[\83h\93\90\82Ü\82ê\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B' + #13#10
1835                                                 + '\82±\82Ì\83\82\81[\83h\82Å\83\8d\83O\83C\83\93\82ð\8e\8e\82Ý\82Ü\82·\82©\81H' + #13#10;
1836                                 if MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_YESNO or MB_ICONEXCLAMATION) = IDYES  then begin
1837                                         GikoSys.Dolib.ClientUA := 'gikoNavi/1.00';
1838                                         GikoSys.Dolib.UserName := GikoSys.Setting.UserID;
1839                                         GikoSys.Dolib.Password := GikoSys.Setting.Password;
1840                                         if GikoSys.Setting.ReadProxy then begin
1841                                                 GikoSys.Dolib.ProxyAddress := GikoSys.Setting.ReadProxyAddress;
1842                                                 GikoSys.Dolib.ProxyPort := GikoSys.Setting.ReadProxyPort;
1843                                         end else begin
1844                                                 GikoSys.Dolib.ProxyAddress := '';
1845                                                 GikoSys.Dolib.ProxyPort := 0;
1846                                         end;
1847                                         //SSL\8fá\8aQ\97p\8b­\90§\83\8d\83O\83C\83\93
1848                                         GikoSys.Dolib.ForcedConnect;
1849                                         if GikoSys.Dolib.Connect then begin
1850                                                 LoginAction.Checked := True;
1851                                                 GikoForm.AddMessageList(GikoSys.Setting.GetMessage(Ord(gmForceLogin)) + GikoSys.Setting.UserID, nil, gmiOK);
1852                                                 LoginAction.Caption := '\83\8d\83O\83A\83E\83g(&L)';
1853                                                 //LoginToolButton.Style := tbsCheck;
1854                                                 end else begin
1855                         //                      MsgBox(Handle, '\83\8d\83O\83C\83\93\8fo\97\88\82Ü\82¹\82ñ\82Å\82µ\82½', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
1856                                                 GikoForm.AddMessageList(GikoSys.Dolib.ErrorMsg, nil, gmiNG);
1857                                                 GikoForm.PlaySound('Error');
1858                                                 LoginAction.Checked := False;
1859                                                 //LoginToolButton.Down := False;
1860                                                 //LoginToolButton.Style := tbsButton;
1861                                         end;
1862                                 end else begin
1863                                         LoginAction.Checked := False;
1864                                         //LoginToolButton.Down := False;
1865                                         //LoginToolButton.Style := tbsButton;
1866                                 end;
1867                         end;
1868                 finally
1869                         GikoForm.ScreenCursor := TmpCursor;
1870                 end;
1871         end;
1872 end;
1873 // *************************************************************************
1874 //! \83{\81[\83h\8dX\90V\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
1875 // *************************************************************************
1876 procedure TGikoDM.NewBoardActionExecute(Sender: TObject);
1877 var
1878         Dlg: TNewBoardDialog;
1879         Msg: string;
1880 begin
1881         if GikoForm.EditorFormExists then begin
1882                 Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82\82Ä\82­\82¾\82³\82¢';
1883                 MsgBox(GikoForm.Handle, Msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
1884                 Exit;
1885         end;
1886         Dlg := TNewBoardDialog.Create(GikoForm);
1887         try
1888                 Dlg.ShowModal;
1889         finally
1890                 Dlg.Release;
1891         end;
1892 end;
1893 // *************************************************************************
1894 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8dí\8f\9c\82·\82é
1895 // *************************************************************************
1896 procedure TGikoDM.LogDeleteActionExecute(Sender: TObject);
1897 const
1898         DEL_MSG = '\81g^0\81h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1899         DEL_SAME_MSG = '\82±\82ê\82ç ^0 \8cÂ\82Ì\83X\83\8c\83b\83h\82Ì\83\8d\83O\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1900         DEL_TITLE = '\8dí\8f\9c\8am\94F';
1901 var
1902         ThreadItem: TThreadItem;
1903         TmpListItem: TListItem;
1904         List: TList;
1905         i: Integer;
1906 begin
1907         List := TList.Create;
1908         try
1909                 TmpListItem := GikoForm.ListView.Selected;
1910                 while TmpListItem <> nil do begin
1911                         if TObject(TmpListItem.Data) is TThreadItem then begin
1912                                 ThreadItem := TThreadItem(TmpListItem.Data);
1913                                 if ThreadItem.IsLogFile then
1914                                         List.Add(ThreadItem);
1915                         end;
1916                         TmpListItem := GikoForm.ListView.GetNextItem(TmpListItem, sdAll, [isSelected]);
1917                 end;
1918
1919                 if GikoSys.Setting.DeleteMsg and (List.Count > 0) then begin
1920                         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then begin
1921                                 if List.Count = 1 then begin
1922                                         if MsgBox(GikoForm.Handle, StringReplace( DEL_MSG, '^0', TThreadItem( List[ 0 ] ).Title, [rfReplaceAll] ) , DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1923                                                 Exit;
1924                                 end else begin
1925                                         if MsgBox(GikoForm.Handle, StringReplace( DEL_SAME_MSG, '^0', IntToStr( List.Count ), [rfReplaceAll] ), DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> IDYES then
1926                                                 Exit;
1927                                 end;
1928                         end;
1929                 end;
1930
1931                 for i := 0 to List.Count - 1 do begin
1932                         ThreadItem := TThreadItem(List[i]);
1933                         GikoForm.DeleteHistory(ThreadItem);
1934                         GikoForm.DeleteTab(ThreadItem);
1935                         ThreadItem.DeleteLogFile;
1936
1937                         GikoForm.TreeView.Refresh;      // UnRead \82Ì\95\\8e¦\82ð\8dX\90V
1938                 end;
1939                 GikoForm.ListView.Refresh;
1940         finally
1941                 List.Free;
1942         end;
1943 end;
1944 // *************************************************************************
1945 //! ActiveList\82ªTBoard\82Å\83X\83\8c\88ê\97\97\82Å\82P\82Â\88È\8fã\91I\91ð\82µ\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82éAction\82Å\8b¤\92Ê
1946 // *************************************************************************
1947 procedure TGikoDM.LogDeleteActionUpdate(Sender: TObject);
1948 begin
1949         TAction(Sender).Enabled := (GikoForm.GetActiveList is TBoard)
1950                                                                 and (GikoForm.ListView.SelCount > 0);
1951 end;
1952 // *************************************************************************
1953 //! \8di\8d\9e\82Ý\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
1954 // *************************************************************************
1955 procedure TGikoDM.SelectTextClearActionExecute(Sender: TObject);
1956 const
1957         DEL_MSG = '\8di\8d\9e\82Ý\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1958         DEL_TITLE = '\8dí\8f\9c\8am\94F';
1959 begin
1960         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1961                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1962                         Exit;
1963         GikoSys.Setting.SelectTextList.Clear;
1964         GikoForm.SelectComboBox.Items.Clear;
1965         GikoForm.SelectComboBox.Text := '';
1966         GikoForm.SetListViewType( gvtAll );
1967 end;
1968 // *************************************************************************
1969 //! \83\8c\83X\83G\83f\83B\83^\82Ì\96¼\91O\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
1970 // *************************************************************************
1971 procedure TGikoDM.NameTextClearActionExecute(Sender: TObject);
1972 const
1973         DEL_MSG = '\83\8c\83X\83G\83f\83B\83^\96¼\91O\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1974         DEL_TITLE = '\8dí\8f\9c\8am\94F';
1975 begin
1976         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1977                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1978                         Exit;
1979         GikoSys.Setting.NameList.Clear;
1980         GikoForm.AllEditroFormNameTextClearClear;
1981 end;
1982 // *************************************************************************
1983 //! \83\8c\83X\83G\83f\83B\83^\82Ì\83\81\81[\83\8b\97\9a\97ð\82ð\8fÁ\8b\8e\82·\82é
1984 // *************************************************************************
1985 procedure TGikoDM.MailTextClearActionExecute(Sender: TObject);
1986 const
1987         DEL_MSG = '\83\8c\83X\83G\83f\83B\83^\83\81\81[\83\8b\91S\97\9a\97ð\82ð\8dí\8f\9c\82µ\82Ü\82·\81B\82æ\82ë\82µ\82¢\82Å\82·\82©\81H';
1988         DEL_TITLE = '\8dí\8f\9c\8am\94F';
1989 begin
1990         if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
1991                 if MsgBox(GikoForm.Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
1992                         Exit;
1993         GikoSys.Setting.MailList.Clear;
1994         GikoForm.AllEditroFormMailTextClearClear;
1995 end;
1996 // *************************************************************************
1997 //! \83M\83R\83i\83r\82ð\8fI\97¹\82·\82é
1998 // *************************************************************************
1999 procedure TGikoDM.ExitActionExecute(Sender: TObject);
2000 begin
2001         GikoForm.Close;
2002 end;
2003 // *************************************************************************
2004 //! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\91O\8f\88\97\9d
2005 // *************************************************************************
2006 procedure TGikoDM.ExportFavoriteFileBeforeExecute(Sender: TObject);
2007 begin
2008         ExportFavoriteFile.Dialog.FileName := FavoriteDM.GetFavoriteFilePath;
2009 end;
2010 // *************************************************************************
2011 //! \82¨\8bC\82É\93ü\82è\82Ì\83G\83N\83X\83|\81[\83g\81@\8eÀ\8ds\8f\88\97\9d
2012 // *************************************************************************
2013 procedure TGikoDM.ExportFavoriteFileAccept(Sender: TObject);
2014 begin
2015         if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
2016                 ShowMessage('\83t\83@\83C\83\8b\82ð\8fo\97Í\82µ\82Ü\82µ\82½');
2017         end else begin
2018                 ShowMessage('\83t\83@\83C\83\8b\82Ì\8fo\97Í\82É\8e¸\94s\82µ\82Ü\82µ\82½');
2019         end;
2020 end;
2021 // *************************************************************************
2022 //! \91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91
2023 // *************************************************************************
2024 procedure TGikoDM.SelectItemSaveForHTMLExecute(Sender: TObject);
2025 var
2026         List: TList;
2027         i: Integer;
2028         html: TStringList;
2029         title: string;
2030 begin
2031         List := TList.Create;
2032         try
2033                 GikoForm.ScreenCursor := crHourGlass;
2034                 GikoForm.SelectListItem(List);
2035                 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2036                         (GikoSys.Setting.ListHeightState = glsMax)) or
2037                         ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2038                         (GikoSys.Setting.ListWidthState = glsMax))      then
2039                         ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
2040                 else if(List.Count = 0) then
2041                         ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
2042                 else begin
2043                         FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91¶';
2044                         FileSaveAs1.Dialog.Filter := 'HTML\83t\83@\83C\83\8b(*.html)|*.html';
2045                         for i := 0 to List.Count - 1 do begin
2046                                 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2047                                         FileSaveAs1.Dialog.FileName := ReplaseNoValidateChar(TThreadItem(List[i]).Title) + '.html';
2048                                         if FileSaveAs1.Dialog.Execute then begin
2049                                                 html := TStringList.Create;
2050                                                 title := TThreadItem(List[i]).Title;
2051                                                 try
2052                                                         HTMLCreater.CreateHTML3(html, TThreadItem(List[i]), title);
2053                                                         html.SaveToFile(FileSaveAs1.Dialog.FileName);
2054                                                         THTMLCreate.SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
2055                                                 finally
2056                                                         html.Free;
2057                                                 end;
2058                                         end;
2059                                 end;
2060                         end;
2061                 end;
2062         finally
2063                 GikoForm.ScreenCursor := crDefault;
2064                 List.Free;
2065         end;
2066 end;
2067 // *************************************************************************
2068 //! \91I\91ð\83X\83\8c\83b\83h\82ðDAT\8c`\8e®\82Ì\82Ü\82Ü\95Û\91
2069 // *************************************************************************
2070 procedure TGikoDM.SelectItemSaveForDatExecute(Sender: TObject);
2071 var
2072         List: TList;
2073         i: Integer;
2074 begin
2075         List := TList.Create;
2076         try
2077                 GikoForm.ScreenCursor := crHourGlass;
2078                 GikoForm.SelectListItem(List);
2079                 if ((GikoSys.Setting.ListOrientation = gloVertical) and
2080                         (GikoSys.Setting.ListHeightState = glsMax)) or
2081                         ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2082                         (GikoSys.Setting.ListWidthState = glsMax)) then
2083                         ShowMessage('\83X\83\8c\83b\83h\88ê\97\97\82ð\95\\8e¦\82µ\82Ä\82­\82¾\82³\82¢')
2084                 else if(List.Count = 0) then
2085                         ShowMessage('\83X\83\8c\83b\83h\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢')
2086                 else begin
2087                         FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðdat\82Ì\82Ü\82Ü\95Û\91¶';
2088                         FileSaveAs1.Dialog.Filter := 'DAT\83t\83@\83C\83\8b(*.dat)|*.dat';
2089                         for i := 0 to List.Count - 1 do begin
2090                                 if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
2091                                         FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
2092                                         if FileSaveAs1.Dialog.Execute then begin
2093                                                 CopyFile(PChar(TThreadItem(List[i]).FilePath),
2094                                                 PChar(FileSaveAs1.Dialog.FileName), true);
2095                                         end;
2096                                 end;
2097                         end;
2098                 end;
2099         finally
2100                 GikoForm.ScreenCursor := crDefault;
2101                 List.Free;
2102         end;
2103
2104 end;
2105 // *************************************************************************
2106 //! \83^\83u\82Ì\8f\87\94Ô\82ð\95Û\91
2107 // *************************************************************************
2108 procedure TGikoDM.TabsSaveActionExecute(Sender: TObject);
2109 begin
2110         if not GikoForm.SaveTabURLs then begin
2111                 if TabsSaveAction.Tag = 0 then
2112                         ShowMessage('\95Û\91\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ')
2113                 else if TabsSaveAction.Tag = 1 then
2114                         GikoDM.TabsOpenAction.Tag := -1;
2115         end;
2116 end;
2117 // *************************************************************************
2118 //! \83^\83u\82Ì\8f\87\94Ô\82ð\95\9c\8c³
2119 // *************************************************************************
2120 procedure TGikoDM.TabsOpenActionExecute(Sender: TObject);
2121 begin
2122         if TabsOpenAction.Tag <> -1 then begin
2123                 if not GikoForm.LoadTabURLs then begin
2124                         if TabsOpenAction.Tag = 0 then
2125                                 ShowMessage('\95\\8e¦\82·\82é\83^\83u\82ª\82 \82è\82Ü\82¹\82ñ\81B');
2126                 end;
2127         end;
2128 end;
2129 // *************************************************************************
2130 //! \83^\83u\82Ì\8f\87\94Ô\82ð\8e©\93®\95Û\91
2131 // *************************************************************************
2132 procedure TGikoDM.TabAutoSaveActionExecute(Sender: TObject);
2133 begin
2134         GikoForm.SaveTabURLs;
2135 end;
2136 // *************************************************************************
2137 //! \83^\83u\82Ì\8f\87\94Ô\82ð\8e©\93®\95\9c\8c³
2138 // *************************************************************************
2139 procedure TGikoDM.TabAutoLoadActionExecute(Sender: TObject);
2140 begin
2141         GikoForm.LoadTabURLs;
2142 end;
2143 // *************************************************************************
2144 //! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é
2145 // *************************************************************************
2146 procedure TGikoDM.BeLogInOutActionExecute(Sender: TObject);
2147 begin
2148         GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
2149 end;
2150 // *************************************************************************
2151 //! Be2ch\82É\83\8d\83O\83C\83\93/\83\8d\83O\83A\83E\83g\82·\82é\82ÌUpdate\83C\83x\83\93\83g
2152 // *************************************************************************
2153 procedure TGikoDM.BeLogInOutActionUpdate(Sender: TObject);
2154 begin
2155         if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
2156                 if (GikoSys.Setting.BeLogin) then BeLogInOutAction.Checked := true
2157                 else BeLogInOutAction.Checked := false;
2158                 BeLogInOutAction.Enabled := true
2159         end else
2160                 BeLogInOutAction.Enabled := false;
2161 end;
2162 ////////////////////////////////\83t\83@\83C\83\8b\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2163 // *************************************************************************
2164 //! \83R\83R\82Ü\82Å\93Ç\82ñ\82¾
2165 // *************************************************************************
2166 procedure TGikoDM.KokomadeActionExecute(Sender: TObject);
2167 var
2168         No: Integer;
2169         ThreadItem: TThreadItem;
2170 begin
2171         No := GikoForm.KokoPopupMenu.Tag;
2172         if No = 0 then Exit;
2173         ThreadItem := GikoForm.GetActiveContent;
2174         if ThreadItem = nil then Exit;
2175         ThreadItem.Kokomade := No;
2176         GikoForm.ActiveContent.Thread.ScrollTop :=
2177                 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2178         GikoForm.ActiveContent.Repaint := true;
2179         GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2180         //INFO 2005/11/19 \88ê\92U\89B\95Á\81A\95K\97v\82È\82çGikoForm\82Ì\95û\82É\83\81\83\\83b\83h\82ð\92Ç\89Á\82·\82é
2181         //Application.ProcessMessages;
2182 end;
2183 // *************************************************************************
2184 //! \91S\95\94\93Ç\82ñ\82¾
2185 // *************************************************************************
2186 procedure TGikoDM.ZenbuActionExecute(Sender: TObject);
2187 var
2188         ThreadItem: TThreadItem;
2189 begin
2190         ThreadItem := GikoForm.GetActiveContent;
2191         if ThreadItem = nil then Exit;
2192         ThreadItem.Kokomade := -1;
2193         GikoForm.ActiveContent.Thread.ScrollTop :=
2194                 OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2195         GikoForm.ActiveContent.Repaint := true;
2196         GikoForm.InsertBrowserTab(GikoForm.ActiveContent.Thread, true);
2197         //INFO 2005/11/19 \88ê\92U\89B\95Á\81A\95K\97v\82È\82çGikoForm\82Ì\95û\82É\83\81\83\\83b\83h\82ð\92Ç\89Á\82·\82é
2198         //Application.ProcessMessages;
2199 end;
2200 // *************************************************************************
2201 //! \83R\83R\82É\83\8c\83X
2202 // *************************************************************************
2203 procedure TGikoDM.KokoResActionExecute(Sender: TObject);
2204 var
2205         Editor: TEditorForm;
2206         Item: TThreadItem;
2207         Number: Integer;
2208 begin
2209         Number := GikoForm.KokoPopupMenu.Tag;
2210         if Number = 0 then Exit;
2211         Item := GikoForm.GetActiveContent;
2212         if Item = nil then Exit;
2213
2214         Editor := TEditorForm.Create(GikoForm);
2215         Editor.SetThreadItem(Item);
2216         GikoSys.LoadEditorKeySetting(Editor.ActionList);
2217         Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
2218         Editor.Show;
2219         Editor.BodyEdit.SetFocus;
2220 end;
2221 // *************************************************************************
2222 //! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
2223 // *************************************************************************
2224 procedure TGikoDM.KoreCopyExecute(Sender: TObject);
2225 begin
2226         GikoForm.KonoresCopy(GikoForm.KokoPopupMenu.Tag, true);
2227 end;
2228 // *************************************************************************
2229 //! \91I\91ð\82µ\82½\83\8c\83X\82ð\83R\83s\81[\82·\82é
2230 // *************************************************************************
2231 procedure TGikoDM.SameIDResAnchorActionExecute(Sender: TObject);
2232 var
2233         ThreadItem : TThreadItem;
2234         No, count, rc : Integer;
2235         body : string;
2236         limited: boolean;
2237 begin
2238         No := GikoForm.KokoPopupMenu.Tag;
2239         if No = 0 then Exit;
2240         ThreadItem := GikoForm.GetActiveContent;
2241         if ThreadItem = nil then Exit;
2242         count := GikoSys.GetSameIDResCount(No, GikoForm.ActiveContent.Thread);
2243         limited := false;
2244         if count > 20 then begin
2245                 rc := GikoUtil.MsgBox(GikoForm.Handle,
2246                                 '20\8cÂ\88È\8fã\82 \82è\82Ü\82·\82ª\81A\82·\82×\82Ä\95\\8e¦\82µ\82Ü\82·\82©\81H',
2247                                 'ID\83|\83b\83v\83A\83b\83v\8cx\8d\90',
2248                                 MB_YESNO or MB_ICONQUESTION);
2249                 limited := rc <> ID_YES;
2250         end;
2251         body := GikoSys.GetSameIDResAnchor(No, ThreadItem, limited);
2252         GikoForm.ActiveContent.IDAnchorPopup(body);
2253 end;
2254 // *************************************************************************
2255 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\92Ê\8fí\81j
2256 // *************************************************************************
2257 procedure TGikoDM.IndividualAbon1ActionExecute(Sender: TObject);
2258 begin
2259         GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 1);
2260 end;
2261 // *************************************************************************
2262 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\81@\81i\93§\96¾\81j
2263 // *************************************************************************
2264 procedure TGikoDM.IndividualAbon0ActionExecute(Sender: TObject);
2265 begin
2266         GikoForm.IndividualAbon(GikoForm.KokoPopupMenu.Tag, 0);
2267 end;
2268 // *************************************************************************
2269 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c
2270 // *************************************************************************
2271 procedure TGikoDM.AntiIndividualAbonActionExecute(Sender: TObject);
2272 var
2273         IndividualForm :TIndividualAbonForm;
2274         ThreadItem : TThreadItem;
2275         msg : String;
2276         ReadList                : TStringList;
2277         wordCount               : TWordCount;
2278 begin
2279         IndividualForm := TIndividualAbonForm.Create(GikoForm);
2280         try
2281                 ThreadItem := GikoForm.GetActiveContent;
2282                 ThreadItem.ScrollTop :=
2283                         OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2284                 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2285                         if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2286                                 ReadList                := TStringList.Create;
2287                                 wordCount               := TWordCount.Create;
2288                                 try
2289 {$IFDEF SPAM_FILTER_ENABLED}
2290                                         // \83X\83p\83\80\82ð\89ð\8f\9c
2291                                         ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2292                                         GikoSys.SpamCountWord( ReadList[ KokoPopupMenu.Tag - 1 ], wordCount );
2293                                         GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
2294                                         GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
2295 {$ENDIF}
2296                                         if IndividualForm.DeleteNG(GikoForm.KokoPopupMenu.Tag) then begin
2297                                                 GikoForm.ActiveContent.Repaint := true;
2298                                                 GikoForm.InsertBrowserTab( ThreadItem, True );
2299                                         end;
2300                                 finally
2301                                         wordCount.Free;
2302                                         ReadList.Free;
2303                                 end;
2304                         end else begin
2305                                 msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
2306                                 MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
2307                         end;
2308                 end;
2309         finally
2310                 IndividualForm.Release;
2311         end;
2312 end;
2313 // *************************************************************************
2314 //! \82±\82Ì\83\8c\83X\82 \82Ú\81`\82ñ\89ð\8f\9c\83\8c\83X\94Ô\8d\86\8ew\92è\81i\83_\83C\83A\83\8d\83O\95\\8e¦\81j
2315 // *************************************************************************
2316 procedure TGikoDM.AntiIndividualAbonDlgActionExecute(Sender: TObject);
2317 var
2318         IndividualForm :TIndividualAbonForm;
2319         ThreadItem : TThreadItem;
2320         msg : String;
2321         ReadList                : TStringList;
2322         wordCount               : TWordCount;
2323 {$IFDEF SPAM_FILTER_ENABLED}
2324         i : Integer;
2325 {$ENDIF}
2326 begin
2327         IndividualForm := TIndividualAbonForm.Create(GikoForm);
2328         try
2329                 ThreadItem := GikoForm.GetActiveContent;
2330                 ThreadItem.ScrollTop :=
2331                         OleVariant(IHTMLDocument2(GikoForm.ActiveContent.Browser.Document)).Body.ScrollTop;
2332                 if (ThreadItem <> nil) and (ThreadItem.IsLogFile) then begin
2333                         if IndividualForm.SetThreadLogFileName(ThreadItem.GetThreadFileName) then begin
2334                                 if (IndividualForm.ShowModal = mrOK) then begin
2335                                         ReadList                := TStringList.Create;
2336                                         wordCount               := TWordCount.Create;
2337                                         try
2338 {$IFDEF SPAM_FILTER_ENABLED}
2339                                                 // \83X\83p\83\80\82ð\89ð\8f\9c
2340                                                 ReadList.LoadFromFile( ThreadItem.GetThreadFileName );
2341                                                 for i := 0 to IndividualForm.DeleteList.Count - 1 do begin
2342                                                         GikoSys.SpamCountWord( ReadList[ StrToInt(IndividualForm.DeleteList[i]) - 1 ], wordCount );
2343                                                         GikoSys.SpamForget( wordCount, True );  // \83X\83p\83\80\82ð\89ð\8f\9c
2344                                                         GikoSys.SpamLearn( wordCount, False );  // \83n\83\80\82É\90Ý\92è
2345                                                 end;
2346 {$ENDIF}
2347                                                 if IndividualForm.FRepaint then begin
2348                                                         GikoForm.ActiveContent.Repaint := true;
2349                                                         GikoForm.InsertBrowserTab( ThreadItem, True );
2350                                                 end;
2351                                         finally
2352                                                 wordCount.Free;
2353                                                 ReadList.Free;
2354                                         end;
2355                                 end;
2356                         end else begin
2357                                 msg := '\82±\82Ì\83X\83\8c\83b\83h\82Å\82Í\8cÂ\95Ê\82 \82Ú\81`\82ñ\82ð\8ds\82Á\82Ä\82Ü\82¹\82ñ';
2358                                 MsgBox(GikoForm.Handle, msg, '\83\81\83b\83Z\81[\83W', MB_OK);
2359                         end;
2360                 end;
2361         finally
2362                 IndividualForm.Release;
2363         end;
2364 end;
2365 // *************************************************************************
2366 //! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\92Ê\8fí
2367 // *************************************************************************
2368 procedure TGikoDM.IndividualAbonID1ActionExecute(Sender: TObject);
2369 begin
2370         GikoForm.IndividualAbonID(1);
2371 end;
2372 // *************************************************************************
2373 //! \82±\82ÌID\82 \82Ú\81`\82ñ\81@\93§\96¾
2374 // *************************************************************************
2375 procedure TGikoDM.IndividualAbonID0ActionExecute(Sender: TObject);
2376 begin
2377         GikoForm.IndividualAbonID(0);
2378 end;
2379 ////////////////////////////////\83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2380 // *************************************************************************
2381 //! \83M\83R\83i\83r\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2382 // *************************************************************************
2383 procedure TGikoDM.GikoNaviWebPageActionExecute(Sender: TObject);
2384 begin
2385         GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
2386 end;
2387 // *************************************************************************
2388 //! \83\82\83i\83W\83\89\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2389 // *************************************************************************
2390 procedure TGikoDM.MonazillaWebPageActionExecute(Sender: TObject);
2391 begin
2392         GikoSys.OpenBrowser(URL_MONAZILLA, gbtAuto);
2393 end;
2394 // *************************************************************************
2395 //! \82Q\82¿\82á\82ñ\82Ë\82é\83g\83b\83v\83y\81[\83W\82ð\95\\8e¦\82·\82é
2396 // *************************************************************************
2397 procedure TGikoDM.BBS2chWebPageActionExecute(Sender: TObject);
2398 begin
2399         GikoSys.OpenBrowser(URL_2ch, gbtAuto);
2400 end;
2401 // *************************************************************************
2402 //! \83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82ð\8aJ\82­
2403 // *************************************************************************
2404 procedure TGikoDM.GikoFolderOpenActionExecute(Sender: TObject);
2405 begin
2406         GikoSys.CreateProcess('explorer.exe', '/e,"' + GikoSys.GetAppDir + '"');
2407 end;
2408 // *************************************************************************
2409 //! \83o\81[\83W\83\87\83\93\8fî\95ñ\82ð\95\\8e¦\82·\82é
2410 // *************************************************************************
2411 procedure TGikoDM.AboutActionExecute(Sender: TObject);
2412 var
2413         Dlg: TAboutDialog;
2414 begin
2415         Dlg := TAboutDialog.Create(GikoForm);
2416         try
2417                 Dlg.ShowModal;
2418         finally
2419                 Dlg.Release;
2420         end;
2421 end;
2422 // *************************************************************************
2423 //! \83M\83R\83i\83r\82Ì\83w\83\8b\83v\82ð\95\\8e¦\82·\82é
2424 // *************************************************************************
2425 procedure TGikoDM.GikoHelpActionExecute(Sender: TObject);
2426 var
2427         FileName: string;
2428 begin
2429         FileName := GikoSys.GetAppDir + 'batahlp.chm';
2430         if not FileExists(FileName) then begin
2431                 MsgBox(
2432                         GikoForm.Handle,
2433                         '\83w\83\8b\83v\82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ\82Å\82µ\82½' + #13#10 +
2434                         '\83w\83\8b\83v\83t\83@\83C\83\8b\82ð\83M\83R\83i\83r\82Ì\83t\83H\83\8b\83_\82É\92u\82¢\82Ä\82­\82¾\82³\82¢' + #13#10 +
2435                         '\83w\83\8b\83v\82Í\83M\83R\83i\83r\82Ì\83T\83C\83g\82É\92u\82¢\82Ä\82 \82è\82Ü\82·',
2436                         '\83G\83\89\81[',
2437                         MB_ICONSTOP);
2438                 Exit;
2439         end;
2440         ShellExecute(GikoForm.Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
2441 end;
2442 // *************************************************************************
2443 //! \83M\83R\83i\83rWiki\82Ì\83E\83F\83u\83T\83C\83g\82ð\95\\8e¦\82·\82é
2444 // *************************************************************************
2445 procedure TGikoDM.WikiFAQWebPageActionExecute(Sender: TObject);
2446 begin
2447         GikoSys.OpenBrowser(URL_Wiki, gbtAuto);
2448 end;
2449 ////////////////////////////////\83w\83\8b\83v\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
2450 // *************************************************************************
2451 //! \83\8a\83X\83g\94Ô\8d\86\95\\8e¦\82ð\95Ï\8dX\82·\82é
2452 // *************************************************************************
2453 procedure TGikoDM.ListNumberVisibleActionExecute(Sender: TObject);
2454 begin
2455         GikoSys.Setting.ListViewNo := ListNumberVisibleAction.Checked;
2456         GikoForm.ListView.Refresh;
2457 end;
2458 // *************************************************************************
2459 //! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82é
2460 // *************************************************************************
2461 procedure TGikoDM.UpFolderActionExecute(Sender: TObject);
2462 begin
2463         if GikoForm.GetActiveList is TBoard then begin
2464                 if TBoard(GikoForm.GetActiveList).ParentCategory <> nil then
2465                         GikoForm.SelectTreeNode(TBoard(GikoForm.GetActiveList).ParentCategory, True);
2466         end else if GikoForm.GetActiveList is TCategory then begin
2467                 GikoForm.SelectTreeNode(TCategory(GikoForm.GetActiveList).ParenTBBS, True);
2468         end;
2469 end;
2470 // *************************************************************************
2471 //! \8fã\88Ê\83t\83H\83\8b\83_\82É\88Ú\93®\82·\82éUpDate\83C\83x\83\93\83g
2472 // *************************************************************************
2473 procedure TGikoDM.UpFolderActionUpdate(Sender: TObject);
2474 begin
2475         UpFolderAction.Enabled := not (GikoForm.GetActiveList is TBBS);
2476 end;
2477 // *************************************************************************
2478 //! \95\\8e¦\81@\95\\8e¦\83\8a\83X\83g\82Ì\83\82\81[\83h\95Ï\8dX
2479 // *************************************************************************
2480 procedure TGikoDM.IconStyleExecute(Sender: TObject);
2481 begin
2482         case GikoForm.ListView.ViewStyle of
2483                 vsIcon: SmallIconAction.Execute;
2484                 vsSmallIcon: ListIconAction.Execute;
2485                 vsList: DetailIconAction.Execute;
2486                 vsReport: LargeIconAction.Execute;
2487         end;
2488 end;
2489 // *************************************************************************
2490 //! \83X\83\8c\83b\83h\82ð\82·\82×\82Ä\95\\8e¦\82·\82é
2491 // *************************************************************************
2492 procedure TGikoDM.AllItemActionExecute(Sender: TObject);
2493 begin
2494         try
2495                 if GikoForm.ViewType <> gvtAll then
2496                         GikoForm.SetListViewType(gvtAll);
2497                 GikoSys.Setting.ThreadRange := gtrAll;
2498                 AllItemAction.Checked           := True;
2499                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2500                 GikoForm.ModifySelectList;
2501                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2502                 if GikoForm.SelectComboBoxPanel.Visible then begin
2503                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2504                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2505                         GikoForm.ListView.SetFocus;
2506                 end;
2507         except
2508         end;
2509 end;
2510 // *************************************************************************
2511 //! \83\8d\83O\97L\82è\83X\83\8c\83b\83h\82Ì\82Ý\82ð\95\\8e¦\82·\82é
2512 // *************************************************************************
2513 procedure TGikoDM.LogItemActionExecute(Sender: TObject);
2514 begin
2515         try
2516                 if GikoForm.ViewType <> gvtLog then
2517                         GikoForm.SetListViewType(gvtLog);
2518                 GikoSys.Setting.ThreadRange     := gtrLog;
2519                 LogItemAction.Checked := True;
2520                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2521                 GikoForm.ModifySelectList;
2522                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2523                 if GikoForm.SelectComboBoxPanel.Visible  then begin
2524                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2525                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2526                         GikoForm.ListView.SetFocus;
2527                 end;
2528         except
2529         end;
2530 end;
2531 // *************************************************************************
2532 //! \90V\92\85\83X\83\8c\83b\83h\82Ì\82Ý\95\\8e¦\82·\82é
2533 // *************************************************************************
2534 procedure TGikoDM.NewItemActionExecute(Sender: TObject);
2535 begin
2536         try
2537
2538                 if GikoForm.ViewType <> gvtNew then
2539                         GikoForm.SetListViewType(gvtNew);
2540                 GikoSys.Setting.ThreadRange     := gtrNew;
2541                 NewItemAction.Checked := True;
2542                 // SelectComboBox \82Ì\97\9a\97ð\82ð\8dX\90V\82µ\82Ä\82¨\82­
2543                 GikoForm.ModifySelectList;
2544                 // SelectComboBox \82Ì\92l\82ð\83N\83\8a\83A
2545                 if GikoForm.SelectComboBoxPanel.Visible then begin
2546                         GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2547                         GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2548                         GikoForm.ListView.SetFocus;
2549                 end;
2550         except
2551         end;
2552 end;
2553 // *************************************************************************
2554 //! \83X\83\8c\83b\83h\82Ì\95\\8e¦\94Í\88Í\82ð\90Ý\92è
2555 // *************************************************************************
2556 procedure TGikoDM.ThreadRangeActionExecute(Sender: TObject);
2557 begin
2558         case GikoSys.Setting.ThreadRange of
2559         gtrAll: AllItemAction.Execute;
2560         gtrLog: LogItemAction.Execute;
2561         gtrNew: NewItemAction.Execute;
2562         end;
2563 end;
2564 // *************************************************************************
2565 //! \83X\83\8c\83b\83h\8di\8d\9e\82Ý\83_\83C\83A\83\8d\83O\82ð\95\\8e¦\82·\82é
2566 // *************************************************************************
2567 procedure TGikoDM.SelectItemActionExecute(Sender: TObject);
2568 var
2569         idx: Integer;
2570         Dlg: TListSelectDialog;
2571 begin
2572         try
2573                 if GikoForm.SelectComboBoxPanel.Visible then begin
2574                         if GikoForm.SelectComboBoxPanel.Left + GikoForm.SelectComboBoxPanel.Width < GikoForm.ListToolBar.Width then begin
2575                                 // SelectComboBox \82ª\82 \82é\8fê\8d\87\82Í\83t\83H\81[\83J\83X\82ð\88Ú\82·
2576                                 if GikoSys.Setting.ListOrientation = gloHorizontal then begin
2577                                         if GikoSys.Setting.ListWidthState = glsMax then
2578                                                 BrowserMinAction.Execute;
2579                                 end else begin
2580                                         if GikoSys.Setting.ListHeightState = glsMax then
2581                                                 BrowserMinAction.Execute;
2582                                 end;
2583                                 GikoForm.SelectComboBox.SetFocus;
2584                                 exit;
2585                         end;
2586                 end;
2587         except
2588         end;
2589
2590         if GikoForm.SelectComboBox.Text = SELECTCOMBOBOX_NAME then begin
2591                 GikoForm.SelectComboBox.Text := '';
2592                 GikoForm.SelectComboBox.Color := clWindow;
2593         end;
2594
2595         AllItemAction.Checked := False;
2596         LogItemAction.Checked := False;
2597         NewItemAction.Checked := False;
2598         //SelectItemAction.Checked := True;
2599         GikoForm.ModifySelectList;
2600         Dlg := TListSelectDialog.Create(GikoForm);
2601         try
2602                 Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
2603                 Dlg.SelectComboBox.Text := GikoForm.SelectComboBox.Text;
2604                 Dlg.ShowModal;
2605                 if Dlg.ModalResult = mrCancel then begin
2606                         if Length( GikoForm.SelectComboBox.Text ) = 0 then begin
2607                                 AllItemAction.Checked := True;
2608                                 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2609                                 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2610                         end;
2611
2612                         if GikoForm.GetActiveList is TBoard then
2613                                 GikoForm.SetListViewType(gvtUser, TBoard(GikoForm.GetActiveList).ParentCategory.ParenTBBS.SelectText , Dlg.KubetsuCheckBox.Checked);
2614                 end else begin
2615                         idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
2616                         if idx <> -1 then
2617                                 GikoSys.Setting.SelectTextList.Delete(idx);
2618                         GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
2619                         while Dlg.SelectComboBox.Items.Count > 100 do begin
2620                                 Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
2621                         end;
2622
2623                         if Length( Dlg.SelectComboBox.Text ) = 0 then begin
2624                                 GikoForm.SelectComboBox.Text := SELECTCOMBOBOX_NAME;
2625                                 GikoForm.SelectComboBox.Color := SELECTCOMBOBOX_COLOR;
2626                         end else begin
2627                                 GikoForm.SelectComboBox.Text := Dlg.SelectComboBox.Text;
2628                                 GikoForm.SelectComboBox.Color := clWindow;
2629                         end;
2630                         GikoForm.SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
2631                 end;
2632         finally
2633                 Dlg.Release;
2634         end;
2635 end;
2636 // *************************************************************************
2637 //! \90V\83X\83\8c\8f\91\82«\8d\9e\82Ý\83E\83B\83\93\83h\83E\82ð\95\\8e¦\82·\82é
2638 // *************************************************************************
2639 procedure TGikoDM.ThreadEditorActionExecute(Sender: TObject);
2640 var
2641         Editor: TEditorForm;
2642 begin
2643         if not (GikoForm.GetActiveList is TBoard) then
2644                 Exit;
2645         Editor := TEditorForm.Create(GikoForm);
2646         Editor.SetBoard(TBoard(GikoForm.GetActiveList));
2647         Editor.Show;
2648         Editor.BodyEdit.SetFocus;
2649 end;
2650 // *************************************************************************
2651 //! \8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\94Â\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
2652 // *************************************************************************
2653 procedure TGikoDM.BoardIEActionExecute(Sender: TObject);
2654 var
2655         URL: string;
2656 begin
2657         if GikoForm.GetActiveList is TBoard then begin
2658                 URL := TBoard(GikoForm.GetActiveList).URL;
2659                 GikoSys.OpenBrowser(URL, gbtAuto);
2660         end;
2661 end;
2662 // *************************************************************************
2663 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82é
2664 // *************************************************************************
2665 procedure TGikoDM.SelectItemURLCopyActionExecute(Sender: TObject);
2666 var
2667         List: TList;
2668         i: Integer;
2669         s: string;
2670 begin
2671         s := '';
2672         List := TList.Create;
2673         try
2674                 GikoForm.SelectListItem(List);
2675                 for i := 0 to List.Count - 1 do begin
2676                         if TObject(List[i]) is TBoard then
2677                                 s := s + TBoard(List[i]).URL + #13#10
2678                         else if TObject(List[i]) is TThreadItem then
2679                                 s := s + TThreadItem(List[i]).URL + #13#10;
2680                 end;
2681                 if s <> '' then
2682                         Clipboard.AsText := s;
2683         finally
2684                 List.Free;
2685         end;
2686 end;
2687 // *************************************************************************
2688 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ÌURL\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
2689 // *************************************************************************
2690 procedure TGikoDM.SelectItemURLCopyActionUpdate(Sender: TObject);
2691 begin
2692         if ((GikoForm.GetActiveList is TBoard) or
2693                 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2694                 TAction(Sender).Enabled := True
2695         else
2696                 TAction(Sender).Enabled := False;
2697 end;
2698 // *************************************************************************
2699 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82é
2700 // *************************************************************************
2701 procedure TGikoDM.SelectItemNameCopyActionExecute(Sender: TObject);
2702 var
2703         List: TList;
2704         i: Integer;
2705         s: string;
2706 begin
2707         s := '';
2708         List := TList.Create;
2709         try
2710                 GikoForm.SelectListItem(List);
2711                 for i := 0 to List.Count - 1 do begin
2712                         if TObject(List[i]) is TBoard then
2713                                 s := s + TBoard(List[i]).Title + #13#10
2714                         else if TObject(List[i]) is TThreadItem then
2715                                 s := s + TThreadItem(List[i]).Title + #13#10;
2716                 end;
2717                 if s <> '' then
2718                         Clipboard.AsText := s;
2719         finally
2720                 List.Free;
2721         end;
2722 end;
2723 // *************************************************************************
2724 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82Ì\96¼\91O\82ð\83R\83s\81[\82·\82éUpdate\83C\83x\83\93\83g
2725 // *************************************************************************
2726 procedure TGikoDM.SelectItemNameCopyActionUpdate(Sender: TObject);
2727 begin
2728         if ((GikoForm.GetActiveList is TBoard) or
2729                 (GikoForm.GetActiveList is TCategory))and (GikoForm.ListView.SelCount > 0) then
2730                 TAction(Sender).Enabled := True
2731         else
2732                 TAction(Sender).Enabled := False;
2733 end;
2734 // *************************************************************************
2735 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82Ì\96¼\91O\82ÆURL\82ð\83R\83s\81[\82·\82é
2736 // *************************************************************************
2737 procedure TGikoDM.SelectItemNameURLCopyActionExecute(Sender: TObject);
2738 var
2739         List: TList;
2740         i: Integer;
2741         s: string;
2742 begin
2743         s := '';
2744         List := TList.Create;
2745         try
2746                 GikoForm.SelectListItem(List);
2747                 for i := 0 to List.Count - 1 do begin
2748                         if TObject(List[i]) is TBoard then
2749                                 s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
2750                         else if TObject(List[i]) is TThreadItem then
2751                                 s := s + TThreadItem(List[i]).Title + #13#10 + TThreadItem(List[i]).URL + #13#10;
2752                 end;
2753                 if s <> '' then
2754                         Clipboard.AsText := s;
2755         finally
2756                 List.Free;
2757         end;
2758 end;
2759 // *************************************************************************
2760 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
2761 // *************************************************************************
2762 procedure TGikoDM.SelectListReloadActionExecute(Sender: TObject);
2763 var
2764         i: Integer;
2765         List: TList;
2766         msg: string;
2767         shiftDown: Boolean;
2768 begin
2769         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2770         if GikoForm.GetActiveList is TCategory then begin
2771                 List := TList.Create;
2772                 try
2773                         GikoForm.SelectListItem(List);
2774                         if List.Count > 5 then begin
2775                                 msg := '5\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
2776                                                  + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
2777                                 MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
2778                                 Exit;
2779                         end;
2780                         for i := 0 to List.Count - 1 do begin
2781                                 if TObject(List[i]) is TBoard then
2782                                         GikoForm.DownloadList(TBoard(List[i]), shiftDown);
2783                         end;
2784                 finally
2785                         List.Free;
2786                 end;
2787         end else if GikoForm.GetActiveList is TBoard then begin
2788                 GikoForm.DownloadList(TBoard(GikoForm.GetActiveList), shiftDown);
2789         end;
2790 end;
2791 // *************************************************************************
2792 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\88ê\97\97\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82éUpdate\83C\83x\83\93\83g
2793 // *************************************************************************
2794 procedure TGikoDM.SelectListReloadActionUpdate(Sender: TObject);
2795 begin
2796         if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2797                 TAction(Sender).Enabled := True
2798         else if GikoForm.GetActiveList is TBoard then
2799                 TAction(Sender).Enabled := True
2800         else
2801                 TAction(Sender).Enabled := False;
2802 end;
2803 // *************************************************************************
2804 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82é
2805 // *************************************************************************
2806 procedure TGikoDM.SelectThreadReloadActionExecute(Sender: TObject);
2807 var
2808         List: TList;
2809         i: Integer;
2810         msg: string;
2811         shiftDown: Boolean;
2812 begin
2813         shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
2814         List := TList.Create;
2815         try
2816                 GikoForm.SelectListItem(List);
2817                 if List.Count > 10 then begin
2818                         msg := '10\8cÂ\88È\8fã\82Í\8ew\92è\82Å\82«\82Ü\82¹\82ñ' + #13#10
2819                                          + '\82Q\82¿\82á\82ñ\82Ë\82é\95\89\89×\8cy\8c¸\82É\82²\8b¦\97Í\82­\82¾\82³\82¢';
2820                         MsgBox(GikoForm.Handle, msg, '\8cx\8d\90', MB_ICONEXCLAMATION);
2821                         Exit;
2822                 end;
2823                 for i := 0 to List.Count - 1 do begin
2824                         if TObject(List[i]) is TThreadItem then
2825                                 GikoForm.DownloadContent(TThreadItem(List[i]), shiftDown);
2826                 end;
2827         finally
2828                 List.Free;
2829         end;
2830 end;
2831 // *************************************************************************
2832 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83_\83E\83\93\83\8d\81[\83h\82·\82éUpdate\83C\83x\83\93\83g
2833 // *************************************************************************
2834 procedure TGikoDM.SelectThreadReloadActionUpdate(Sender: TObject);
2835 begin
2836         TAction(Sender).Enabled :=
2837                 (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0);
2838 end;
2839 // *************************************************************************
2840 //! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñ
2841 // *************************************************************************
2842 procedure TGikoDM.SelectReservActionExecute(Sender: TObject);
2843 begin
2844         //INFO 2005/11/19 \83_\83~\81[\81H\81@by \82à\82\82ã
2845         // \82±\82Ì\83R\83\81\83\93\83g\8dí\8f\9c\82µ\82Ä\82Í\91Ê\96Ú
2846 end;
2847 // *************************************************************************
2848 //! \83X\83\8c\83b\83h\8f\84\89ñ\97\\96ñUpdate\83C\83x\83\93\83g
2849 // *************************************************************************
2850 procedure TGikoDM.SelectReservActionUpdate(Sender: TObject);
2851 var
2852         i: Integer;
2853         List: TList;
2854 begin
2855         if (GikoForm.GetActiveList is TBoard) and (GikoForm.ListView.SelCount > 0) then begin
2856                 List := TList.Create;
2857                 try
2858                         GikoForm.SelectListItem(List);
2859                         for i := 0 to List.Count - 1 do begin
2860                                 if TObject(List[i]) is TThreadItem then begin
2861                                         if TThreadItem(List[i]).IsLogFile then begin
2862                                                 SelectReservAction.Enabled := True;
2863                                                 Exit;
2864                                         end;
2865                                 end;
2866                         end;
2867                         SelectReservAction.Enabled := False;
2868                 finally
2869                         List.Free;
2870                 end;
2871         end else if (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0) then
2872                 SelectReservAction.Enabled := True
2873         else
2874                 SelectReservAction.Enabled := False;
2875 end;
2876 // *************************************************************************
2877 //! \91I\91ð\82µ\82Ä\82¢\82é\83X\83\8c\83b\83h\82É\90V\82µ\82¢\96¼\91O\82Å\8f\84\89ñ\97\\96ñ
2878 // *************************************************************************
2879 procedure TGikoDM.SelectNewRoundNameExecute(Sender: TObject);
2880 var
2881         s: string;
2882         Dlg: TRoundNameDialog;
2883                 cnt: Integer;
2884
2885 begin
2886         //\8cÄ\82Ñ\8fo\82µ\8c³\82ª\81ATAction\82ÅListView\82É\91I\91ð\82ª\82¢\82È\82¯\82ê\82Î\81AEXIT\82·\82é
2887         if (Sender is TAction) and (GikoForm.ListView.Selected = nil) then
2888                 Exit;
2889
2890         //\93o\98^\8fã\8cÀ\83`\83F\83b\83N
2891         cnt := RoundList.Count[grtBoard];
2892         cnt := cnt + RoundList.Count[grtItem];
2893         if cnt > 500 then begin
2894                         MsgBox(GikoForm.Handle, '\8f\84\89ñ\82Í500\88È\8fã\93o\98^\82Å\82«\82Ü\82¹\82ñ', '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
2895                         Exit;
2896         end;
2897
2898         Dlg := TRoundNameDialog.Create(GikoForm);
2899         try
2900                 Dlg.ShowModal;
2901                 if Dlg.ModalResult <> mrCancel then begin
2902                         s := Trim(Dlg.RoundNameEdit.Text);
2903                         if (Sender is TMenuItem) then begin
2904                                 GikoForm.SetSelectItemRound(True, s, TMenuItem(Sender).Parent.Name);
2905                         end else if (Sender is TAction) then begin
2906                                 if (GikoForm.ListView.Selected <> nil) then begin
2907                                         if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
2908                                                 GikoForm.SetSelectItemRound(True, s,
2909                                                         TThreadItem(GikoForm.ListView.Selected.Data).Title);
2910                                         end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
2911                                                 GikoForm.SetSelectItemRound(True, s,
2912                                                         TBoard(GikoForm.ListView.Selected.Data).Title);
2913                                         end;
2914                                 end;
2915                         end;
2916                         GikoForm.ListView.Refresh;
2917                 end;
2918         finally
2919                 Dlg.Free;
2920         end;
2921 end;
2922 // *************************************************************************
2923 //! \91I\91ð\82³\82ê\82Ä\82¢\83X\83\8c\83b\83h\82Ì\8f\84\89ñ\82ð\8dí\8f\9c\82·\82é
2924 // *************************************************************************
2925 procedure TGikoDM.SelectDeleteRoundExecute(Sender: TObject);
2926 var
2927         s : String;
2928 begin
2929         if (Sender is TMenuItem) then begin
2930                 try
2931                         GikoForm.SetSelectItemRound(False, '', TMenuItem(Sender).Parent.Name);
2932                 except
2933                 end;
2934         end else if (Sender is TAction) then begin
2935                 try
2936                         if GikoForm.ListView.Selected <> nil then begin
2937                                 if (TObject(GikoForm.ListView.Selected.Data) is TThreadItem) then begin
2938                                         s := TThreadItem(GikoForm.ListView.Selected.Data).Title;
2939                                 end else if (TObject(GikoForm.ListView.Selected.Data) is TBoard) then begin
2940                                         s := TBoard(GikoForm.ListView.Selected.Data).Title;
2941                                 end;
2942                                 GikoForm.SetSelectItemRound(False, '', s);
2943
2944                         end;
2945                 except
2946                 end;
2947         end;
2948         GikoForm.ListView.Refresh;
2949 end;
2950 // *************************************************************************
2951 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82é
2952 // *************************************************************************
2953 procedure TGikoDM.BoardFavoriteAddActionExecute(Sender: TObject);
2954 begin
2955         if TObject(GikoForm.ListView.Selected.Data) is TBoard then
2956                 GikoForm.ShowFavoriteAddDialog(TObject(GikoForm.ListView.Selected.Data));
2957 end;
2958 // *************************************************************************
2959 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\94Â\82ð\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82·\82éUpdate\83C\83x\83\93\83g
2960 // *************************************************************************
2961 procedure TGikoDM.BoardFavoriteAddActionUpdate(Sender: TObject);
2962 begin
2963         BoardFavoriteAddAction.Enabled :=
2964                 (GikoForm.GetActiveList is TCategory) and (GikoForm.ListView.SelCount > 0);
2965 end;
2966 // *************************************************************************
2967 //! Explorer\82ÅLog\83t\83H\83\8b\83_\82ð\8aJ\82­
2968 // *************************************************************************
2969 procedure TGikoDM.LogFolderOpenActionExecute(Sender: TObject);
2970 var
2971         List: TList;
2972 begin
2973         if ((GikoSys.Setting.ListOrientation = gloVertical) and
2974                 (GikoSys.Setting.ListHeightState = glsMax)) or
2975                 ((GikoSys.Setting.ListOrientation = gloHorizontal) and
2976                 (GikoSys.Setting.ListWidthState = glsMax))      then begin
2977                 if(GikoForm.GetActiveContent <> nil) then begin
2978                         GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(GikoForm.GetActiveContent.FilePath) + '"');
2979                 end;
2980         end else if GikoForm.GetActiveList is TCategory then begin
2981                 List := TList.Create;
2982                 try
2983                         GikoForm.SelectListItem(List);
2984                         GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(List[0]).FilePath) + '"');
2985                 finally
2986                         List.Free;
2987                 end;
2988         end else if GikoForm.GetActiveList is TBoard then begin
2989                 GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(GikoForm.GetActiveList).FilePath) + '"');
2990         end;
2991
2992 end;
2993 // *************************************************************************
2994 //! ActiveList\82ªTBoard\82©TCategory\82Å\83X\83\8c\88ê\97\97\82Å\82P\82Â\88È\8fã\91I\91ð\82µ\82Ä\82¢\82é\82Æ\97L\8cø\82É\82È\82éActionde\8b¤\92Ê
2995 // *************************************************************************
2996 procedure TGikoDM.LogFolderOpenActionUpdate(Sender: TObject);
2997 begin
2998         if ((GikoForm.GetActiveList is TBoard) or (GikoForm.GetActiveList is TCategory))
2999                 and (GikoForm.ListView.SelCount > 0) then
3000                 TAction(Sender).Enabled := True
3001         else
3002                 TAction(Sender).Enabled := False;
3003 end;
3004 // *************************************************************************
3005 //! Header.txt\82ð\83u\83\89\83E\83U\82Å\95\\8e¦\82·\82é
3006 // *************************************************************************
3007 procedure TGikoDM.BrowsBoradHeadActionExecute(Sender: TObject);
3008 var
3009         RefURL, URL : string;
3010         List : TList;
3011 begin
3012         RefURL := '';
3013         if GikoForm.GetActiveList is TCategory then begin
3014                 List := TList.Create;
3015                 try
3016                         GikoForm.SelectListItem(List);
3017                         RefURL := TBoard(List[0]).URL;
3018                 finally
3019                         List.Free;
3020                 end;
3021         end else if GikoForm.GetActiveList is TBoard then begin
3022                 RefURL := TBoard(GikoForm.GetActiveList).URL
3023         end;
3024         if RefURL <> '' then begin
3025                 if RefURL[Length(RefURL)] <> '/' then
3026                         URL     := RefURL + '/' + 'head.txt'
3027                 else
3028                         URL     := RefURL + 'head.txt';
3029
3030                 GikoForm.MoveToURL(URL);
3031         end else begin
3032                 ShowMessage('\94Â\82ð\93Á\92è\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81B');
3033         end;
3034
3035 end;
3036 // *************************************************************************
3037 //! \8c»\8dÝ\82Ì\83J\83\89\83\80\82ð\83\\81[\83g\82·\82é
3038 // *************************************************************************
3039 procedure TGikoDM.SortActiveColumnActionExecute(Sender: TObject);
3040 var
3041         i       : Integer;
3042         so : boolean;
3043         si : Integer;
3044 begin
3045         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3046                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3047                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3048                         GikoForm.SortOrder := not GikoForm.SortOrder;
3049                         so := GikoForm.SortOrder;
3050                         si := GikoForm.SortIndex;
3051                         TListViewUtils.ListViewSort(nil, GikoForm.ListView,
3052                                  GikoForm.ListView.Column[ i ], ListNumberVisibleAction.Checked,
3053                                  so, si );
3054                         GikoForm.SortIndex := si;
3055                         GikoForm.SortOrder := so;
3056                         break;
3057                 end;
3058         end;
3059 end;
3060 // *************************************************************************
3061 //! \89E\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
3062 // *************************************************************************
3063 procedure TGikoDM.SortNextColumnActionExecute(Sender: TObject);
3064 var
3065         i, id   : Integer;
3066         so : boolean;
3067         si : Integer;
3068 begin
3069         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3070                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3071                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3072                         id := i + 1;
3073                         if id > GikoForm.ListView.Columns.Count - 1 then
3074                                 id := 0;
3075                         GikoForm.SortOrder := id = 0;
3076                         so := GikoForm.SortOrder;
3077                         si := GikoForm.SortIndex;
3078                         TListViewUtils.ListViewSort( nil, GikoForm.ListView,
3079                                 GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
3080                                 so, si );
3081                         GikoForm.SortIndex := si;
3082                         GikoForm.SortOrder := so;
3083                         break;
3084                 end;
3085         end;
3086 end;
3087 // *************************************************************************
3088 //! \8d\97×\82Ì\83J\83\89\83\80\82ð\83\\81[\83g
3089 // *************************************************************************
3090 procedure TGikoDM.SortPrevColumnActionExecute(Sender: TObject);
3091 var
3092         i, id   : Integer;
3093         so : boolean;
3094         si : Integer;
3095 begin
3096         for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
3097                 if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
3098                         (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
3099                         id := i - 1;
3100                         if id < 0 then
3101                                 id := GikoForm.ListView.Columns.Count - 1;
3102                         GikoForm.SortOrder := id = 0;
3103                         so := GikoForm.SortOrder;
3104                         si := GikoForm.SortIndex;
3105                         TListViewUtils.ListViewSort( nil, GikoForm.ListView,
3106                                 GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
3107                                 so, si );
3108                         GikoForm.SortIndex := si;
3109                         GikoForm.SortOrder := so;
3110                         break;
3111                 end;
3112         end;
3113 end;
3114 ////////////////////////////////\94Â\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3115 // *************************************************************************
3116 //! \95W\8f\80\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3117 // *************************************************************************
3118 procedure TGikoDM.StdToolBarVisibleActionExecute(Sender: TObject);
3119 var
3120         CoolBand: TCoolBand;
3121 begin
3122         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.StdToolBar);
3123         if CoolBand = nil then
3124                 Exit;
3125         GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
3126         CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
3127         GikoForm.StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
3128 end;
3129 // *************************************************************************
3130 //! \83A\83h\83\8c\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3131 // *************************************************************************
3132 procedure TGikoDM.AddressBarVisibleActionExecute(Sender: TObject);
3133 var
3134         CoolBand: TCoolBand;
3135 begin
3136         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.AddressToolBar);
3137         if CoolBand = nil then
3138                 Exit;
3139         GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
3140         CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
3141         GikoForm.AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
3142 end;
3143 // *************************************************************************
3144 //! \83\8a\83\93\83N\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3145 // *************************************************************************
3146 procedure TGikoDM.LinkBarVisibleActionExecute(Sender: TObject);
3147 var
3148         CoolBand: TCoolBand;
3149 begin
3150         CoolBand := GikoForm.GetCoolBand(GikoForm.MainCoolBar, GikoForm.LinkToolBar);
3151         if CoolBand = nil then
3152                 Exit;
3153         GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
3154         CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
3155         GikoForm.LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
3156 end;
3157 // *************************************************************************
3158 //! \83\8a\83X\83g\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3159 // *************************************************************************
3160 procedure TGikoDM.ListToolBarVisibleActionExecute(Sender: TObject);
3161 var
3162         CoolBand: TCoolBand;
3163 begin
3164         CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListToolBar);
3165         if CoolBand = nil then
3166                 Exit;
3167         CoolBand.Visible := ListToolBarVisibleAction.Checked;
3168         GikoSys.Setting.ListToolBarVisible := ListToolBarVisibleAction.Checked;
3169 end;
3170 // *************************************************************************
3171 //! \83\8a\83X\83g\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3172 // *************************************************************************
3173 procedure TGikoDM.ListNameBarVisibleActionExecute(Sender: TObject);
3174 var
3175         CoolBand: TCoolBand;
3176 begin
3177         CoolBand := GikoForm.GetCoolBand(GikoForm.ListCoolBar, GikoForm.ListNameToolBar);
3178         if CoolBand = nil then
3179                 Exit;
3180         CoolBand.Visible := ListNameBarVisibleAction.Checked;
3181         GikoSys.Setting.ListNameBarVisible := ListNameBarVisibleAction.Checked;
3182 end;
3183 // *************************************************************************
3184 //! \83u\83\89\83E\83U\83c\81[\83\8b\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3185 // *************************************************************************
3186 procedure TGikoDM.BrowserToolBarVisibleActionExecute(Sender: TObject);
3187 var
3188         CoolBand: TCoolBand;
3189 begin
3190         CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserToolBar);
3191         if CoolBand = nil then
3192                 Exit;
3193         CoolBand.Visible := BrowserToolBarVisibleAction.Checked;
3194         GikoSys.Setting.BrowserToolBarVisible := BrowserToolBarVisibleAction.Checked;
3195 end;
3196 // *************************************************************************
3197 //! \83u\83\89\83E\83U\96¼\8fÌ\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3198 // *************************************************************************
3199 procedure TGikoDM.BrowserNameBarVisibleActionExecute(Sender: TObject);
3200 var
3201         CoolBand: TCoolBand;
3202 begin
3203         CoolBand := GikoForm.GetCoolBand(GikoForm.BrowserCoolBar, GikoForm.BrowserNameToolBar);
3204         if CoolBand = nil then
3205                 Exit;
3206         CoolBand.Visible := BrowserNameBarVisibleAction.Checked;
3207         GikoSys.Setting.BrowserNameBarVisible := BrowserNameBarVisibleAction.Checked;
3208 end;
3209 // *************************************************************************
3210 //! \83\81\83b\83Z\81[\83W\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3211 // *************************************************************************
3212 procedure TGikoDM.MsgBarVisibleActionExecute(Sender: TObject);
3213 begin
3214         GikoForm.MessageSplitter.Visible := MsgBarVisibleAction.Checked;
3215         GikoForm.MessagePanel.Top :=
3216                 GikoForm.MessageSplitter.Top + GikoForm.MessageSplitter.Height;
3217         GikoForm.MessageSplitter.Top := GikoForm.MessagePanel.Top + 1;
3218         GikoForm.MessagePanel.Visible := MsgBarVisibleAction.Checked;
3219         GikoSys.Setting.MessageBarVisible := MsgBarVisibleAction.Checked;
3220 end;
3221 // *************************************************************************
3222 //! \83\81\83b\83Z\81[\83W\83o\81[\82ð\95Â\82\82é
3223 // *************************************************************************
3224 procedure TGikoDM.MsgBarCloseActionExecute(Sender: TObject);
3225 begin
3226         MsgBarVisibleAction.Execute;
3227 end;
3228 // *************************************************************************
3229 //! \83X\83e\81[\83^\83X\83o\81[\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3230 // *************************************************************************
3231 procedure TGikoDM.StatusBarVisibleActionExecute(Sender: TObject);
3232 begin
3233         GikoForm.StatusBar.Visible := StatusBarVisibleAction.Checked;
3234         GikoSys.Setting.StatusBarVisible := StatusBarVisibleAction.Checked;
3235 end;
3236 // *************************************************************************
3237 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\8cf\8e¦\94Â\82É\82·\82é
3238 // *************************************************************************
3239 procedure TGikoDM.CabinetBBSActionExecute(Sender: TObject);
3240 begin
3241
3242         if GikoForm.CabinetPanel.Visible then begin
3243                 if GikoForm.TreeType = gtt2ch then begin
3244                         GikoForm.CabinetVisible( False );
3245
3246                         CabinetBBSAction.Checked := False;
3247                 end else begin
3248                         CabinetBBSAction.Checked := True;
3249                 end;
3250         end else begin
3251                 GikoForm.CabinetVisible( True );
3252                 CabinetBBSAction.Checked := True;
3253         end;
3254
3255         if GikoForm.ActiveBBS = nil then
3256                 GikoForm.ShowBBSTree( BBSs[ 0 ] )
3257         else
3258                 GikoForm.ShowBBSTree( GikoForm.ActiveBBS );
3259
3260 end;
3261 // *************************************************************************
3262 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\97\9a\97ð\83\8a\83X\83g\82É\82·\82é
3263 // *************************************************************************
3264 procedure TGikoDM.CabinetHistoryActionExecute(Sender: TObject);
3265 begin
3266         GikoForm.ShowHistoryTree;
3267 end;
3268 // *************************************************************************
3269 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\82ð\82¨\8bC\82É\93ü\82è\83\8a\83X\83g\82É\82·\82é
3270 // *************************************************************************
3271 procedure TGikoDM.CabinetFavoriteActionExecute(Sender: TObject);
3272 var
3273         i, b : Integer;
3274         item : TMenuItem;
3275 begin
3276
3277         if GikoForm.CabinetPanel.Visible then begin
3278                 if GikoForm.TreeType = gttFavorite then begin
3279                         GikoForm.CabinetVisible( False );
3280                         CabinetFavoriteAction.Checked := False;
3281                 end else begin
3282                         CabinetFavoriteAction.Checked := True;
3283                 end;
3284         end else begin
3285                 GikoForm.CabinetVisible( True );
3286                 CabinetFavoriteAction.Checked := True;
3287         end;
3288
3289         // BBS...BBS, History, Favorite
3290         GikoSys.Setting.CabinetIndex := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
3291
3292         b := GikoForm.CabinetSelectPopupMenu.Items.Count - 1;
3293         for i := 0 to b do begin
3294                 item := GikoForm.CabinetSelectPopupMenu.Items[ i ];
3295                 if item is TBBSMenuItem then begin
3296                         item.Checked := False;
3297                         // CabinetMenu \82Í CabinetSelectPopupMenu \82Æ\93¯\82\82Æ\8c\88\82ß\82¤\82¿\82µ\82¿\82á\82¤
3298                         GikoForm.CabinetMenu.Items[ i ].Checked := False;
3299                 end;
3300         end;
3301
3302         // \83L\83\83\83r\83l\83b\83g\83c\81[\83\8b\83o\81[\8by\82Ñ\83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\90Ø\91Ö
3303         GikoForm.HistoryToolBar.Hide;
3304         GikoForm.FavoriteToolBar.Show;
3305         GikoForm.TreeView.Visible := False;
3306         GikoForm.FavoriteTreeView.Visible := True;
3307
3308         GikoForm.CabinetSelectToolButton.Caption := '\82¨\8bC\82É\93ü\82è';
3309         GikoForm.TreeType := gttFavorite;
3310
3311         // \83\81\83j\83\85\81[\8by\82Ñ\83{\83^\83\93\82Ì\83`\83F\83b\83N\82ð\90Ý\92è
3312         CabinetBBSAction.Checked := False;
3313         CabinetHistoryAction.Checked := False;
3314
3315         // \82¨\8bC\82É\93ü\82è\82Ì\83c\83\8a\81[\82ð\93W\8aJ
3316         GikoForm.FavoriteTreeView.Items.GetFirstNode.Expanded := True;
3317
3318 end;
3319 // *************************************************************************
3320 //! \83L\83\83\83r\83l\83b\83g\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3321 // *************************************************************************
3322 procedure TGikoDM.CabinetVisibleActionExecute(Sender: TObject);
3323 begin
3324         case GikoForm.TreeType of
3325         gttHistory:             CabinetHistoryAction.Execute;
3326         gttFavorite:    CabinetFavoriteAction.Execute;
3327         else
3328                 CabinetBBSAction.Execute;
3329         end;
3330 end;
3331 // *************************************************************************
3332 //! \83L\83\83\83r\83l\83b\83g\82ð\95Â\82\82é
3333 // *************************************************************************
3334 procedure TGikoDM.CabinetCloseActionExecute(Sender: TObject);
3335 begin
3336         //INFO 2005/11/19 \82±\82Ì\83A\83N\83V\83\87\83\93\82É\82Í\89½\82à\90Ý\92è\82³\82ê\82Ä\82¢\82È\82©\82Á\82½\81@\82à\82\82ã
3337 end;
3338 // *************************************************************************
3339 //! \83\8a\83X\83g\82ð\91å\82«\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
3340 // *************************************************************************
3341 procedure TGikoDM.LargeIconActionExecute(Sender: TObject);
3342 begin
3343         GikoForm.ListView.ViewStyle := vsIcon;
3344         LargeIconAction.Checked := True;
3345 end;
3346 // *************************************************************************
3347 //! \83\8a\83X\83g\82ð\8f¬\82³\82¢\83A\83C\83R\83\93\95\\8e¦\82É\82·\82é
3348 // *************************************************************************
3349 procedure TGikoDM.SmallIconActionExecute(Sender: TObject);
3350 begin
3351         GikoForm.ListView.ViewStyle := vsSmallIcon;
3352         SmallIconAction.Checked := True;
3353 end;
3354 // *************************************************************************
3355 //! \83\8a\83X\83g\82ð\88ê\97\97\95\\8e¦\82É\82·\82é
3356 // *************************************************************************
3357 procedure TGikoDM.ListIconActionExecute(Sender: TObject);
3358 begin
3359         GikoForm.ListView.ViewStyle := vsList;
3360         ListIconAction.Checked := True;
3361 end;
3362 // *************************************************************************
3363 //! \83\8a\83X\83g\82ð\8fÚ\8d×\95\\8e¦\82É\82·\82é
3364 // *************************************************************************
3365 procedure TGikoDM.DetailIconActionExecute(Sender: TObject);
3366 begin
3367         GikoForm.ListView.ViewStyle := vsReport;
3368         DetailIconAction.Checked := True;
3369 end;
3370 // *************************************************************************
3371 //! \83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82·\82é
3372 // *************************************************************************
3373 procedure TGikoDM.StopActionExecute(Sender: TObject);
3374 begin
3375         GikoForm.FControlThread.DownloadAbort;
3376         if GikoForm.WorkCount <> 0 then GikoForm.WorkCount := 0;
3377         try
3378                 GikoForm.Animate.Active := False;
3379         except
3380         end;
3381         GikoForm.ScreenCursor := crDefault;
3382 end;
3383 // *************************************************************************
3384 //! \83\8a\83X\83g\82Æ\83u\83\89\83E\83U\82Ì\8fc\89¡\94z\92u\82ð\95Ï\8dX\82·\82é
3385 // *************************************************************************
3386 procedure TGikoDM.ArrangeActionExecute(Sender: TObject);
3387 begin
3388         if ArrangeAction.Checked then begin
3389                 //\8fc
3390                 GikoForm.ViewPanel.Align := alNone;
3391                 GikoForm.ListSplitter.Align := alNone;
3392                 GikoForm.ThreadPanel.Align := alNone;
3393
3394                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
3395                 GikoForm.ViewPanel.Align := alLeft;
3396
3397                 GikoForm.ListSplitter.Width := 5;
3398                 GikoForm.ListSplitter.Align := alLeft;
3399
3400                 GikoForm.ViewPanel.Left := -10;
3401
3402                 GikoForm.ThreadPanel.Align := alClient;
3403
3404                 GikoSys.Setting.ListOrientation := gloHorizontal;
3405                 case GikoSys.Setting.ListWidthState of
3406                         glsMax: begin
3407                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3408                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3409                                 GikoForm.ViewPanel.Width := 1;
3410                         end;
3411                         glsNormal: begin
3412                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3413                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3414                         end;
3415                         glsMin: begin
3416                                 BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3417                                 BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3418                                 GikoForm.ViewPanel.Width := GikoForm.ThreadMainPanel.Width - 80;
3419                         end;
3420                 end;
3421         end else begin
3422                 //\89¡
3423                 GikoForm.ViewPanel.Align := alNone;
3424                 GikoForm.ListSplitter.Align := alNone;
3425                 GikoForm.ThreadPanel.Align := alNone;
3426
3427                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
3428                 GikoForm.ViewPanel.Align := alTop;
3429
3430                 GikoForm.ListSplitter.Height := 5;
3431                 GikoForm.ListSplitter.Align := alTop;
3432
3433                 GikoForm.ViewPanel.Top := -10;
3434
3435                 GikoForm.ThreadPanel.Align := alClient;
3436                 GikoSys.Setting.ListOrientation := gloVertical;
3437                 case GikoSys.Setting.ListHeightState of
3438                         glsMax: begin
3439                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3440                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3441                                 GikoForm.ViewPanel.Height := 1;
3442                         end;
3443                         glsNormal: begin
3444                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3445                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3446                         end;
3447                         glsMin: begin
3448                                 BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3449                                 BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3450                                 GikoForm.ViewPanel.Height :=
3451                                         GikoForm.ThreadMainPanel.Height - GikoForm.BrowserCoolBar.Height - 7;
3452                         end;
3453                 end;
3454         end;
3455 end;
3456 // *************************************************************************
3457 //! \83y\83C\83\93\82Ì\83T\83C\83Y\82ð\8f\89\8aú\89»\82·\82é
3458 // *************************************************************************
3459 procedure TGikoDM.PaneInitActionExecute(Sender: TObject);
3460 begin
3461         GikoForm.CabinetPanel.Width := 150;
3462         GikoForm.MessagePanel.Height := 40;
3463
3464         GikoForm.BrowserSizeWidth := 200;
3465         GikoForm.BrowserSizeHeight := 200;
3466         if ArrangeAction.Checked then begin
3467                 GikoForm.ViewPanel.Width := GikoForm.BrowserSizeWidth;
3468         end else begin
3469                 GikoForm.ViewPanel.Height := GikoForm.BrowserSizeHeight;
3470         end;
3471         if GikoSys.Setting.ListOrientation = gloHorizontal then begin
3472                 if GikoSys.Setting.ListHeightState = glsMax then begin
3473                         BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3474                         GikoSys.Setting.ListHeightState := glsNormal;
3475                 end;
3476         end else begin
3477                 if GikoSys.Setting.ListWidthState = glsMax then begin
3478                         BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3479                         GikoSys.Setting.ListWidthState := glsNormal;
3480                 end;
3481         end;
3482 end;
3483 // *************************************************************************
3484 //! \83u\83\89\83E\83U\83^\83u\82Ì\95\\8e¦\8fó\91Ô\82ð\95Ï\8dX\82·\82é
3485 // *************************************************************************
3486 procedure TGikoDM.BrowserTabVisibleActionExecute(Sender: TObject);
3487 begin
3488         GikoSys.Setting.BrowserTabVisible := BrowserTabVisibleAction.Checked;
3489         GikoForm.SetBrowserTabState;
3490 end;
3491 // *************************************************************************
3492 //! \83u\83\89\83E\83U\83^\83u\82ð\8fã\82É\95\\8e¦\82·\82é
3493 // *************************************************************************
3494 procedure TGikoDM.BrowserTabTopActionExecute(Sender: TObject);
3495 begin
3496         BrowserTabBottomAction.Checked := False;
3497         BrowserTabTopAction.Checked := True;
3498         GikoSys.Setting.BrowserTabPosition := gtpTop;
3499         GikoForm.SetBrowserTabState;
3500 end;
3501 // *************************************************************************
3502 //! \83u\83\89\83E\83U\83^\83u\82ð\89º\82É\95\\8e¦\82·\82é
3503 // *************************************************************************
3504 procedure TGikoDM.BrowserTabBottomActionExecute(Sender: TObject);
3505 begin
3506         BrowserTabTopAction.Checked := False;
3507         BrowserTabBottomAction.Checked := True;
3508         GikoSys.Setting.BrowserTabPosition := gtpBottom;
3509         GikoForm.SetBrowserTabState;
3510 end;
3511 // *************************************************************************
3512 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83^\83u\83X\83^\83C\83\8b\82É\82·\82é
3513 // *************************************************************************
3514 procedure TGikoDM.BrowserTabTabStyleActionExecute(Sender: TObject);
3515 begin
3516         BrowserTabButtonStyleAction.Checked := False;
3517         BrowserTabFlatStyleAction.Checked := False;
3518         BrowserTabTabStyleAction.Checked := True;
3519         GikoSys.Setting.BrowserTabStyle := gtsTab;
3520         GikoForm.SetBrowserTabState;
3521 end;
3522 // *************************************************************************
3523 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83{\83^\83\93\83X\83^\83C\83\8b\82É\82·\82é
3524 // *************************************************************************
3525 procedure TGikoDM.BrowserTabButtonStyleActionExecute(Sender: TObject);
3526 begin
3527         BrowserTabTabStyleAction.Checked := False;
3528         BrowserTabFlatStyleAction.Checked := False;
3529         BrowserTabButtonStyleAction.Checked := True;
3530         GikoSys.Setting.BrowserTabStyle := gtsButton;
3531         GikoForm.SetBrowserTabState;
3532 end;
3533 // *************************************************************************
3534 //! \83u\83\89\83E\83U\83^\83u\82Ì\83X\83^\83C\83\8b\82ð\83t\83\89\83b\83g\83{\83^\83\93\83X\83^\83C\83\8b\82É\82·\82é
3535 // *************************************************************************
3536 procedure TGikoDM.BrowserTabFlatStyleActionExecute(Sender: TObject);
3537 begin
3538         BrowserTabFlatStyleAction.Checked := True;
3539         BrowserTabTabStyleAction.Checked := False;
3540         BrowserTabButtonStyleAction.Checked := False;
3541         GikoSys.Setting.BrowserTabStyle := gtsFlat;
3542         GikoForm.SetBrowserTabState;
3543 end;
3544 // *************************************************************************
3545 //! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3546 // *************************************************************************
3547 procedure TGikoDM.SetFocusForBrowserActionExecute(Sender: TObject);
3548 begin
3549         GikoForm.ActiveContent.Browser.SetFocus;
3550 end;
3551 // *************************************************************************
3552 //! \83u\83\89\83E\83U\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
3553 // *************************************************************************
3554 procedure TGikoDM.SetFocusForBrowserActionUpdate(Sender: TObject);
3555 begin
3556         if( GikoForm.ActiveContent <> nil) and (GikoForm.ActiveContent.Browser <> nil) and
3557                 (GikoForm.ActiveContent.Browser <> GikoForm.BrowserNullTab.Browser) then
3558                 TAction(Sender).Enabled := true
3559         else
3560                 TAction(Sender).Enabled := false;
3561 end;
3562 // *************************************************************************
3563 //! \83X\83\8c\83b\83h\88ê\97\97\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3564 // *************************************************************************
3565 procedure TGikoDM.SetFocusForThreadListActionExecute(Sender: TObject);
3566 begin
3567         if GikoForm.ActiveContent <> nil then
3568                 GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
3569         GikoForm.ListView.SetFocus;
3570
3571         if( GikoForm.ListView.Items.Count > 0 ) and (GikoForm.ListView.ItemFocused = nil) then
3572                 GikoForm.ListView.Items.Item[0].Selected := true; //\91I\91ð\83A\83C\83e\83\80\82ª\96³\82¢\82Æ\82«\82Í\90æ\93ª\82Ì\82ð\91I\91ð\82·\82é
3573
3574         //\83X\83N\83\8d\81[\83\8b\82³\82¹\82é
3575         if (GikoForm.ListView.ItemFocused <> nil) then begin
3576                 GikoForm.ListView.ItemFocused.MakeVisible(False);
3577         end;
3578 end;
3579 // *************************************************************************
3580 //! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3581 // *************************************************************************
3582 procedure TGikoDM.SetFocusForCabinetActionExecute(Sender: TObject);
3583 begin
3584         if GikoForm.ActiveContent <> nil then
3585                 GikoForm.WebBrowserClick(GikoForm.ActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
3586         if GikoForm.TreeView.Visible then begin
3587                 GikoForm.TreeView.SetFocus;
3588                 if(GikoForm.TreeView.Items.Count > 0) and ( GikoForm.TreeView.Selected = nil ) then
3589                         GikoForm.TreeView.Items.Item[0].Selected := true;
3590         end else if GikoForm.FavoriteTreeView.Visible then begin
3591                 GikoForm.FavoriteTreeView.SetFocus;
3592                 if(GikoForm.FavoriteTreeView.Items.Count > 0) and (GikoForm.FavoriteTreeView.Selected = nil) then
3593                         GikoForm.FavoriteTreeView.Items.Item[0].Selected := true;
3594         end;
3595 end;
3596 // *************************************************************************
3597 //! \83L\83\83\83r\83l\83b\83g\82É\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82éUpdate\83C\83x\83\93\83g
3598 // *************************************************************************
3599 procedure TGikoDM.SetFocusForCabinetActionUpdate(Sender: TObject);
3600 begin
3601         SetFocusForCabinetAction.Enabled := GikoForm.CabinetPanel.Visible;
3602 end;
3603 // *************************************************************************
3604 //! \83X\83\8c\83b\83h\88ê\97\97\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3605 // *************************************************************************
3606 procedure TGikoDM.ThreadlistMaxAndFocusActionExecute(Sender: TObject);
3607 begin
3608         BrowserMinAction.Execute;
3609         SetFocusForThreadListAction.Execute;
3610 end;
3611 // *************************************************************************
3612 //! \83X\83\8c\95\\8e¦\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é
3613 // *************************************************************************
3614 procedure TGikoDM.BrowserMaxAndFocusActionExecute(Sender: TObject);
3615 begin
3616         BrowserMaxAction.Execute;
3617         SetFocusForBrowserAction.Execute;
3618 end;
3619 // *************************************************************************
3620 //! \83X\83\8c\83b\83h\88ê\97\97\82Ì\91I\91ð\82ð\8dí\8f\9c\82·\82é
3621 // *************************************************************************
3622 procedure TGikoDM.UnSelectedListViewActionExecute(Sender: TObject);
3623 begin
3624         if GikoForm.ListView.Selected <> nil then begin
3625                 GikoForm.ListView.Selected.Focused := True;
3626                 GikoForm.ListView.Selected := nil;
3627         end;
3628 end;
3629 ////////////////////////////////\95\\8e¦\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3630 // *************************************************************************
3631 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\8aù\93Ç\82É\82·\82é
3632 // *************************************************************************
3633 procedure TGikoDM.KidokuActionExecute(Sender: TObject);
3634 var
3635         List: TList;
3636         i: Integer;
3637 begin
3638         List := TList.Create;
3639         try
3640                 GikoForm.SelectListItem(List);
3641                 for i := 0 to List.Count - 1 do begin
3642                         if TObject(List[i]) is TThreadItem then begin
3643                                 if (TThreadItem(List[i]).UnRead) then begin
3644                                         TThreadItem(List[i]).UnRead := false;
3645                                         TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
3646                                 end;
3647                         end;
3648                 end;
3649                 if GikoForm.TreeView.Visible then
3650                         GikoForm.TreeView.Refresh;
3651                 if GikoForm.ListView.Visible then
3652                         GikoForm.ListView.Refresh;
3653         finally
3654                 List.Free;
3655         end;
3656 end;
3657 // *************************************************************************
3658 //! \91I\91ð\82³\82ê\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\96¢\93Ç\82É\82·\82é
3659 // *************************************************************************
3660 procedure TGikoDM.MidokuActionExecute(Sender: TObject);
3661 var
3662         List: TList;
3663         i: Integer;
3664 begin
3665         List := TList.Create;
3666         try
3667                 GikoForm.SelectListItem(List);
3668                 for i := 0 to List.Count - 1 do begin
3669                         if TObject(List[i]) is TThreadItem then begin
3670                                 if (TThreadItem(List[i]).IsLogFile) and (not TThreadItem(List[i]).UnRead) then begin
3671                                         TThreadItem(List[i]).UnRead := true;
3672                                         TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
3673                                 end;
3674                         end;
3675                 end;
3676                 if GikoForm.TreeView.Visible then
3677                         GikoForm.TreeView.Refresh;
3678                 if GikoForm.ListView.Visible then
3679                         GikoForm.ListView.Refresh;
3680         finally
3681                 List.Free;
3682         end;
3683 end;
3684 // *************************************************************************
3685 //! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82é
3686 // *************************************************************************
3687 procedure TGikoDM.AllSelectActionExecute(Sender: TObject);
3688 begin
3689         GikoForm.ListViewAllSelect;
3690 end;
3691 // *************************************************************************
3692 //! \83\8a\83X\83g\82ð\91S\82Ä\91I\91ð\82·\82éUpdate\83C\83x\83\93\83g
3693 // *************************************************************************
3694 procedure TGikoDM.AllSelectActionUpdate(Sender: TObject);
3695 begin
3696         AllSelectAction.Enabled := GikoForm.ListView.SelCount > 0;
3697 end;
3698 ////////////////////////////////\95Ò\8fW\82Ü\82Å\82¨\82µ\82Ü\82¢/////////////////////
3699 end.
3700