Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Giko.pas

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

revision 1.1 by hi_, Sat Aug 9 13:51:00 2003 UTC revision 1.2 by yoffy, Sat Aug 9 14:22:50 2003 UTC
# Line 4  interface Line 4  interface
4    
5  uses  uses
6          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
7          OleCtrls,       SHDocVw, ComCtrls, ExtCtrls, Menus, StdCtrls, MMSystem,          OleCtrls,       SHDocVw_TLB, ComCtrls, ExtCtrls, Menus, StdCtrls, MMSystem,
8          IdHTTP, ActiveX, Clipbrd, Buttons, ToolWin, HTTPApp, IdComponent,          IdHTTP, ActiveX, Clipbrd, Buttons, ToolWin, {HTTPApp,} YofUtils, IdComponent,
9          ShellAPI, ImgList, ActnList, UrlMon, MSHTML, Tabs, IdGlobal, StrUtils,          ShellAPI, ImgList, ActnList, UrlMon, MSHTML_TLB, Tabs, IdGlobal, StrUtils,
10            CommCtrl, IniFiles,
11          GikoSystem, GikoUtil, Setting, BoardGroup, ThreadControl, ItemDownload,          GikoSystem, GikoUtil, Setting, BoardGroup, ThreadControl, ItemDownload,
12          Editor, RoundData, RoundName, KeySetting, GikoPanel, Favorite, FavoriteAdd,          Editor, RoundData, RoundName, KeySetting, GikoPanel, Favorite, FavoriteAdd,
13          FavoriteArrange, AddressHistory, Preview, HTMLDocumentEvent, Kotehan,          FavoriteArrange, AddressHistory, Preview, HTMLDocumentEvent, Kotehan,
14          IniFiles, HintWindow;          HintWindow, GikoCoolBar, GikoListView, ToolBarSetting, ToolBarUtil;
15    
16  type  type
17          TGikoTreeType = (gttNone, gtt2ch, gttHistory);          TGikoTreeType = (gttNone, gtt2ch, gttHistory);
# Line 25  type Line 26  type
26                  ThreadMainPanel: TPanel;                  ThreadMainPanel: TPanel;
27                  ListSplitter: TSplitter;                  ListSplitter: TSplitter;
28                  ViewPanel: TPanel;                  ViewPanel: TPanel;
29                  ListView: TListView;      ListView: TGikoListView;
30                  ThreadPanel: TPanel;                  ThreadPanel: TPanel;
31                  Browser: TWebBrowser;                  Browser: TWebBrowser;
32                  MessagePanel: TPanel;                  MessagePanel: TPanel;
# Line 42  type Line 43  type
43                  ToolButton18: TToolButton;                  ToolButton18: TToolButton;
44                  ItemIcon16: TImageList;                  ItemIcon16: TImageList;
45                  ItemIcon32: TImageList;                  ItemIcon32: TImageList;
46      HotToobarImageList: TImageList;                  HotToobarImageList: TImageList;
47      ToobarImageList: TImageList;      ToobarImageList: TImageList;
48                  ItemImageList: TImageList;                  ItemImageList: TImageList;
49      ActionList: TActionList;                  ActionList: TActionList;
50                  LogDeleteAction: TAction;                  LogDeleteAction: TAction;
51                  KidokuAction: TAction;                  KidokuAction: TAction;
52                  StdToolBarVisibleAction: TAction;                  StdToolBarVisibleAction: TAction;
# Line 105  type Line 106  type
106      IconStyle: TAction;      IconStyle: TAction;
107                  BrowserPopupMenu: TPopupMenu;                  BrowserPopupMenu: TPopupMenu;
108      ShowThreadMenu: TMenuItem;      ShowThreadMenu: TMenuItem;
109      ShowBoardMenu: TMenuItem;                  ShowBoardMenu: TMenuItem;
110                  ShowBoardAction: TAction;                  ShowBoardAction: TAction;
111                  ListIconPopupMenu: TPopupMenu;                  ListIconPopupMenu: TPopupMenu;
112                  LargeIconPMenu: TMenuItem;                  LargeIconPMenu: TMenuItem;
# Line 132  type Line 133  type
133                  LPMSep01: TMenuItem;                  LPMSep01: TMenuItem;
134      ItemRoundPMenu: TMenuItem;      ItemRoundPMenu: TMenuItem;
135                  LPMSep02: TMenuItem;                  LPMSep02: TMenuItem;
136      KidokuPMenu: TMenuItem;                  KidokuPMenu: TMenuItem;
137                  MidokuPMenu: TMenuItem;                  MidokuPMenu: TMenuItem;
138                  AllSelectPMenu: TMenuItem;                  AllSelectPMenu: TMenuItem;
139                  UrlCopyPMenu: TMenuItem;                  UrlCopyPMenu: TMenuItem;
# Line 176  type Line 177  type
177                  SelectTimer: TTimer;                  SelectTimer: TTimer;
178                  KokoPopupMenu: TPopupMenu;                  KokoPopupMenu: TPopupMenu;
179                  KokomadePMenu: TMenuItem;                  KokomadePMenu: TMenuItem;
180      AllPMenu: TMenuItem;                  AllPMenu: TMenuItem;
181                  MenuItem1: TMenuItem;                  MenuItem1: TMenuItem;
182                  MenuItem2: TMenuItem;                  MenuItem2: TMenuItem;
183                  BrowserTabCloseAction: TAction;                  BrowserTabCloseAction: TAction;
# Line 202  type Line 203  type
203                  ListToolBarVisibleAction: TAction;                  ListToolBarVisibleAction: TAction;
204                  BrowserToolBarVisibleAction: TAction;                  BrowserToolBarVisibleAction: TAction;
205                  T2: TMenuItem;                  T2: TMenuItem;
206      L3: TMenuItem;                  L3: TMenuItem;
207                  B3: TMenuItem;                  B3: TMenuItem;
208                  BrowserBottomPanel: TGikoPanel;                  BrowserBottomPanel: TGikoPanel;
209                  CabinetSelectPopupMenu: TPopupMenu;                  CabinetSelectPopupMenu: TPopupMenu;
# Line 213  type Line 214  type
214                  SelectNewRoundName: TAction;                  SelectNewRoundName: TAction;
215      SelectDeleteRound: TAction;      SelectDeleteRound: TAction;
216      NewBoardAction: TAction;      NewBoardAction: TAction;
217      N7: TMenuItem;                  N7: TMenuItem;
218                  B4: TMenuItem;                  B4: TMenuItem;
219                  LoginAction: TAction;                  LoginAction: TAction;
220                  L4: TMenuItem;                  L4: TMenuItem;
# Line 240  type Line 241  type
241      URLN1: TMenuItem;      URLN1: TMenuItem;
242      N21: TMenuItem;      N21: TMenuItem;
243      URLC3: TMenuItem;      URLC3: TMenuItem;
244      URLN2: TMenuItem;                  URLN2: TMenuItem;
245                  N22: TMenuItem;                  N22: TMenuItem;
246      N23: TMenuItem;      N23: TMenuItem;
247      ListCoolBar: TCoolBar;                  ListCoolBar: TGikoCoolBar;
248                  ListToolBar: TToolBar;                  ListToolBar: TToolBar;
249                  ViewNoButton: TToolButton;                  ViewNoButton: TToolButton;
250                  IconToolButton: TToolButton;                  IconToolButton: TToolButton;
251      UpFolderButton: TToolButton;      UpFolderButton: TToolButton;
252      Sepa01ToolButton: TToolButton;      Sepa01ToolButton: TToolButton;
253      AllItemToolButton: TToolButton;                  AllItemToolButton: TToolButton;
254                  LogItemToolButton: TToolButton;                  LogItemToolButton: TToolButton;
255                  NewItemToolButton: TToolButton;                  NewItemToolButton: TToolButton;
                 SelectItemToolButton: TToolButton;  
256      Sepa02ToolButton: TToolButton;      Sepa02ToolButton: TToolButton;
257      ListDownloadToolButton: TToolButton;      ListDownloadToolButton: TToolButton;
258                  ListThreadDownloadToolButton: TToolButton;                  ListThreadDownloadToolButton: TToolButton;
259      ToolButton2: TToolButton;      ToolButton2: TToolButton;
260      ToolButton1: TToolButton;      ToolButton1: TToolButton;
261      BrowserCoolBar: TCoolBar;                  BrowserCoolBar: TGikoCoolBar;
262                  BrowserToolBar: TToolBar;                  BrowserToolBar: TToolBar;
263      BrowserSizeButton: TToolButton;      BrowserSizeButton: TToolButton;
264                  ToolButton3: TToolButton;                  ToolButton3: TToolButton;
265                  TopButton: TToolButton;                  TopButton: TToolButton;
266      LastBotton: TToolButton;                  LastBotton: TToolButton;
267      NewButton: TToolButton;                  NewButton: TToolButton;
268      KokoButton: TToolButton;      KokoButton: TToolButton;
269      ToolButton9: TToolButton;      ToolButton9: TToolButton;
270      EditorButton: TToolButton;                  EditorButton: TToolButton;
271                  ToolButton11: TToolButton;                  ToolButton11: TToolButton;
272                  IEButton: TToolButton;                  IEButton: TToolButton;
273      ToolButton5: TToolButton;      ToolButton5: TToolButton;
# Line 299  type Line 299  type
299      BrowserTabToolBar: TToolBar;      BrowserTabToolBar: TToolBar;
300      BrowserTab: TTabControl;      BrowserTab: TTabControl;
301                  ToolButton7: TToolButton;                  ToolButton7: TToolButton;
302      BrowserMinAction: TAction;                  BrowserMinAction: TAction;
303      About1: TMenuItem;      About1: TMenuItem;
304      N28: TMenuItem;      N28: TMenuItem;
305      SelectTextClearAction: TAction;      SelectTextClearAction: TAction;
306      MailTextClearAction: TAction;      MailTextClearAction: TAction;
307                  NameTextClearAction: TAction;                  NameTextClearAction: TAction;
308      S4: TMenuItem;      S4: TMenuItem;
309      N29: TMenuItem;                  N29: TMenuItem;
310      N30: TMenuItem;                  N30: TMenuItem;
311                  LeftmostTabSelectAction: TAction;                  LeftmostTabSelectAction: TAction;
312      LeftTabSelectAction: TAction;      LeftTabSelectAction: TAction;
313      RightTabSelectAction: TAction;      RightTabSelectAction: TAction;
314      RightmostTabSelectAction: TAction;      RightmostTabSelectAction: TAction;
315      N31: TMenuItem;                  N31: TMenuItem;
316                  L5: TMenuItem;                  L5: TMenuItem;
317      L6: TMenuItem;      L6: TMenuItem;
318                  A7: TMenuItem;                  A7: TMenuItem;
# Line 321  type Line 321  type
321      FavoriteAddAction: TAction;      FavoriteAddAction: TAction;
322      N32: TMenuItem;      N32: TMenuItem;
323                  BoardFavoriteAddMenu: TMenuItem;                  BoardFavoriteAddMenu: TMenuItem;
324      BoardFavoriteAddAction: TAction;                  BoardFavoriteAddAction: TAction;
325                  ThreadFavoriteAddAction: TAction;                  ThreadFavoriteAddAction: TAction;
326                  ThreadFavoriteAddMenu: TMenuItem;                  ThreadFavoriteAddMenu: TMenuItem;
327                  TreeSelectFavoriteAddAction: TAction;                  TreeSelectFavoriteAddAction: TAction;
328      N33: TMenuItem;                  N33: TMenuItem;
329                  TreeSelectFavoriteAddPupupMenu: TMenuItem;                  TreeSelectFavoriteAddPupupMenu: TMenuItem;
330                  FavoriteArrangeAction: TAction;                  FavoriteArrangeAction: TAction;
331                  FavoriteTreeView: TTreeView;                  FavoriteTreeView: TTreeView;
# Line 335  type Line 335  type
335      AnimePanel: TPanel;      AnimePanel: TPanel;
336                  Animate: TAnimate;                  Animate: TAnimate;
337                  TopCoolPanel: TPanel;                  TopCoolPanel: TPanel;
338      MainCoolBar: TCoolBar;      MainCoolBar: TGikoCoolBar;
339      MenuToolBar: TToolBar;      MenuToolBar: TToolBar;
340      StdToolBar: TToolBar;      StdToolBar: TToolBar;
341      RoundButton: TToolButton;      RoundToolButton: TToolButton;
342      ToolButton6: TToolButton;      ToolButton6: TToolButton;
343      CabinetToolButton: TToolButton;                  CabinetToolButton: TToolButton;
344      ToolButton4: TToolButton;      ToolButton4: TToolButton;
345                  ToolButton13: TToolButton;                  ToolButton13: TToolButton;
346                  AbortToolButton: TToolButton;                  AbortToolButton: TToolButton;
# Line 348  type Line 348  type
348      AddressToolBar: TToolBar;      AddressToolBar: TToolBar;
349      AddressComboBox: TComboBox;      AddressComboBox: TComboBox;
350      MoveToToolButton: TToolButton;      MoveToToolButton: TToolButton;
351      MoveToAction: TAction;                  MoveToAction: TAction;
352      AddressImageList: TImageList;      AddressImageList: TImageList;
353      AddressBarVisibleAction: TAction;      AddressBarVisibleAction: TAction;
354      AddressToolBarMenu: TMenuItem;      AddressToolBarMenu: TMenuItem;
# Line 357  type Line 357  type
357      Show1: TMenuItem;      Show1: TMenuItem;
358      N34: TMenuItem;      N34: TMenuItem;
359      BrowserTabTopAction: TAction;      BrowserTabTopAction: TAction;
360      BrowserTabBottomAction: TAction;                  BrowserTabBottomAction: TAction;
361                  T5: TMenuItem;                  T5: TMenuItem;
362                  B5: TMenuItem;                  B5: TMenuItem;
363      N35: TMenuItem;      N35: TMenuItem;
# Line 379  type Line 379  type
379      L7: TMenuItem;      L7: TMenuItem;
380      N37: TMenuItem;      N37: TMenuItem;
381      A9: TMenuItem;      A9: TMenuItem;
382      LinkBarPanel: TPanel;                  ChevronPopupMenu: TPopupMenu;
                 LinkToolBar: TToolBar;  
     LinkChevronToolBar: TToolBar;  
     ToolButton27: TToolButton;  
     ChevronImageList: TImageList;  
     ChevronPopupMenu: TPopupMenu;  
     ChevronMainMenuItem: TMenuItem;  
     ChevronStdMenuItem: TMenuItem;  
     ChevronLinkMenuItem: TMenuItem;  
     ChevronListMenuItem: TMenuItem;  
     ChevronBrowserMenuItem: TMenuItem;  
     LinkBarPopupMenu: TPopupMenu;  
383      BBS2chWebPageAction: TAction;      BBS2chWebPageAction: TAction;
384      N2N1: TMenuItem;                  N2N1: TMenuItem;
385                  N38: TMenuItem;                  N38: TMenuItem;
386                  GikoFolderOpenAction: TAction;                  GikoFolderOpenAction: TAction;
387      F2: TMenuItem;                  F2: TMenuItem;
388        LinkToolBar: TToolBar;
389        a10: TMenuItem;
390        ToolButton8: TToolButton;
391                    ToolButton10: TToolButton;
392        ThreadEditorAction: TAction;
393        N39: TMenuItem;
394        T6: TMenuItem;
395        N40: TMenuItem;
396                    LinkBarPopupMenu: TPopupMenu;
397        ToolBarSettingAction: TAction;
398        T7: TMenuItem;
399        ToolButton12: TToolButton;
400        ToolButton14: TToolButton;
401        ThreadPopupMenu: TPopupMenu;
402        MenuItem4: TMenuItem;
403        MenuItem5: TMenuItem;
404        MenuItem6: TMenuItem;
405                    T8: TMenuItem;
406        NameCopyAction: TAction;
407        BoardIEAction: TAction;
408        URLN3: TMenuItem;
409        SelectItemNameCopyAction: TAction;
410                    SelectItemNameCopyAction1: TMenuItem;
411        B6: TMenuItem;
412        T9: TMenuItem;
413        C2: TMenuItem;
414        SelectComboBox: TComboBox;
415        MainCoolBarPopupMenu: TPopupMenu;
416        StdToolBarVisiblePMenu: TMenuItem;
417        AddressToolBarVisiblePMenu: TMenuItem;
418        LinkToolBarVisiblePMenu: TMenuItem;
419        ListCoolBarPopupMenu: TPopupMenu;
420        L8: TMenuItem;
421        I2: TMenuItem;
422        BrowserCoolBarPopupMenu: TPopupMenu;
423        B7: TMenuItem;
424        R4: TMenuItem;
425        T10: TMenuItem;
426        Show2: TMenuItem;
427        N41: TMenuItem;
428        T11: TMenuItem;
429        B8: TMenuItem;
430        N42: TMenuItem;
431        A11: TMenuItem;
432        U3: TMenuItem;
433        F3: TMenuItem;
434                  procedure FormCreate(Sender: TObject);                  procedure FormCreate(Sender: TObject);
435                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
436                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 545  type Line 580  type
580      procedure NameURLCopyActionExecute(Sender: TObject);      procedure NameURLCopyActionExecute(Sender: TObject);
581      procedure SelectItemNameURLCopyActionExecute(Sender: TObject);      procedure SelectItemNameURLCopyActionExecute(Sender: TObject);
582                  procedure URLCopyActionUpdate(Sender: TObject);                  procedure URLCopyActionUpdate(Sender: TObject);
583      procedure NameURLCopyActionUpdate(Sender: TObject);                  procedure NameURLCopyActionUpdate(Sender: TObject);
584                  procedure BrowserTabCloseActionUpdate(Sender: TObject);                  procedure BrowserTabCloseActionUpdate(Sender: TObject);
585      procedure NotSelectTabCloseActionUpdate(Sender: TObject);      procedure NotSelectTabCloseActionUpdate(Sender: TObject);
586                  procedure AllTabCloseActionUpdate(Sender: TObject);                  procedure AllTabCloseActionUpdate(Sender: TObject);
# Line 578  type Line 613  type
613      procedure ThreadFavoriteAddActionExecute(Sender: TObject);      procedure ThreadFavoriteAddActionExecute(Sender: TObject);
614                  procedure ThreadFavoriteAddActionUpdate(Sender: TObject);                  procedure ThreadFavoriteAddActionUpdate(Sender: TObject);
615      procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);      procedure TreeSelectFavoriteAddActionExecute(Sender: TObject);
616      procedure FavoriteArrangeActionExecute(Sender: TObject);                  procedure FavoriteArrangeActionExecute(Sender: TObject);
617      procedure MainCoolBarResize(Sender: TObject);                  procedure MainCoolBarResize(Sender: TObject);
618                  procedure MoveToActionExecute(Sender: TObject);                  procedure MoveToActionExecute(Sender: TObject);
619      procedure AddressToolBarResize(Sender: TObject);                  procedure AddressToolBarResize(Sender: TObject);
620                  procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;                  procedure AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
621                          Shift: TShiftState);                          Shift: TShiftState);
622      procedure AddressBarVisibleActionExecute(Sender: TObject);      procedure AddressBarVisibleActionExecute(Sender: TObject);
623      procedure BrowserEnter(Sender: TObject);                  procedure BrowserEnter(Sender: TObject);
624                  procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);                  procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
625      procedure BrowserTabVisibleActionExecute(Sender: TObject);      procedure BrowserTabVisibleActionExecute(Sender: TObject);
626      procedure BrowserTabTopActionExecute(Sender: TObject);      procedure BrowserTabTopActionExecute(Sender: TObject);
# Line 600  type Line 635  type
635                  procedure ToolButton18Click(Sender: TObject);                  procedure ToolButton18Click(Sender: TObject);
636                  procedure KotehanActionExecute(Sender: TObject);                  procedure KotehanActionExecute(Sender: TObject);
637      procedure LinkBarVisibleActionExecute(Sender: TObject);      procedure LinkBarVisibleActionExecute(Sender: TObject);
     procedure LinkBarPanelResize(Sender: TObject);  
     procedure ChevronLinkMenuItemClick(Sender: TObject);  
638      procedure BBS2chWebPageActionExecute(Sender: TObject);      procedure BBS2chWebPageActionExecute(Sender: TObject);
639      procedure GikoFolderOpenActionExecute(Sender: TObject);      procedure GikoFolderOpenActionExecute(Sender: TObject);
640                    procedure MainCoolBarBandInfo(Sender: TObject;
641                            var BandInfo: PReBarBandInfoA);
642                    procedure MainCoolBarChevronClick(Sender: TObject;
643          RebarChevron: PNMRebarChevron);
644        procedure ListCoolBarBandInfo(Sender: TObject;
645          var BandInfo: PReBarBandInfoA);
646        procedure ListCoolBarChevronClick(Sender: TObject;
647          RebarChevron: PNMRebarChevron);
648        procedure BrowserCoolBarBandInfo(Sender: TObject;
649          var BandInfo: PReBarBandInfoA);
650                    procedure BrowserCoolBarChevronClick(Sender: TObject;
651          RebarChevron: PNMRebarChevron);
652        procedure ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
653        procedure ThreadEditorActionExecute(Sender: TObject);
654                    procedure ThreadEditorActionUpdate(Sender: TObject);
655        procedure ToolBarSettingActionExecute(Sender: TObject);
656        procedure NameCopyActionExecute(Sender: TObject);
657        procedure BoardIEActionExecute(Sender: TObject);
658        procedure SelectItemNameCopyActionExecute(Sender: TObject);
659                    procedure SelectItemNameCopyActionUpdate(Sender: TObject);
660        procedure BoardIEActionUpdate(Sender: TObject);
661        procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
662          WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
663        procedure NameCopyActionUpdate(Sender: TObject);
664        procedure SelectComboBoxChange(Sender: TObject);
665        procedure SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
666          Shift: TShiftState);
667        procedure SelectComboBoxExit(Sender: TObject);
668          private          private
669                  { Private 宣言 }                  { Private 宣言 }
670    
# Line 671  type Line 732  type
732  //              procedure CreateFavMenu(Folder: TFavoriteFolder);  //              procedure CreateFavMenu(Folder: TFavoriteFolder);
733                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);                  procedure CreateFavMenu(Node: TTreeNode; MenuItem: TMenuItem);
734                  procedure FavoriteClick(Sender: TObject);                  procedure FavoriteClick(Sender: TObject);
735                  procedure SelectTreeNode(Item: TObject);                  procedure SelectTreeNode(Item: TObject; CallEvent: Boolean);
736                  procedure MoveToURL(URL: string);                  procedure MoveToURL(URL: string);
737                  function OnDocumentContextMenu(Sender: TObject): WordBool;                  function OnDocumentContextMenu(Sender: TObject): WordBool;
738  //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;  //              function GetThreadText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean): string;
739                  procedure SetResPopupText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean);                  procedure SetResPopupText(sBoard: string; sThread: string; StNum, ToNum: Integer; Title, First: Boolean);
740                  procedure ShowTextPopup;                  procedure ShowTextPopup;
741                  //procedure ShowTextPopup(HintData: THintData);                  //procedure ShowTextPopup(HintData: THintData);
742                  procedure SetStdToolBar;  //              procedure SetStdToolBar;
743                  function GetAction(ActionName: string): TContainedAction;  //              function GetAction(ActionName: string): TContainedAction;
744                  procedure SetLinkBar;                  procedure SetLinkBar;
745                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;                  function GetWidthAllToolButton(ToolBar: TToolBar): Integer;
746                    procedure MenuBarChevronMenu;
747                    procedure LinkBarChevronMenu;
748                    procedure ToolBarChevronMenu(ToolBar: TToolBar);
749          protected          protected
750                  procedure CreateParams(var Params: TCreateParams); override;                  procedure CreateParams(var Params: TCreateParams); override;
751                    procedure WndProc(var Message: TMessage); override;
752                  procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;                  procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
753                  procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;                  procedure WMSettingChange(var Message: TWMWinIniChange); message WM_SETTINGCHANGE;
754                  procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;                  procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
# Line 729  type Line 794  type
794                  procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);                  procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
795                  procedure SetBrowserTabState;                  procedure SetBrowserTabState;
796  //              property Favorite: TFavorite read FFavorite write FFavorite;  //              property Favorite: TFavorite read FFavorite write FFavorite;
797                    procedure SetToolBarPopup;
798          published          published
799                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;                  property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
800          end;          end;
# Line 760  const Line 826  const
826          CAPTION_NAME: string = 'ギコナビ';          CAPTION_NAME: string = 'ギコナビ';
827          BLANK_HTML: string = 'about:blank';          BLANK_HTML: string = 'about:blank';
828    
829          ICON_HEIGHT_MAX = 16;                   //高さ最大アイコン          //ツリー・リストアイコン
830          ICON_HEIGHT_MIN = 17;                   //高さ最小アイコン          ITEM_ICON_2CH1                                  = 0;            //2chアイコン
831          ICON_HEIGHT_NORMAL = 18;        //高さ標準アイコン          ITEM_ICON_2CH2                                  = 1;            //2chアイコン
832          ICON_WIDTH_MAX = 19;                    //幅最大アイコン          ITEM_ICON_CATEGORY1                     = 2;            //カテゴリアイコン
833          ICON_WIDTH_MIN = 20;                    //幅最小アイコン          ITEM_ICON_CATEGORY2                     = 3;            //カテゴリアイコン
834          ICON_WIDTH_NORMAL = 21;         //幅標準アイコン          ITEM_ICON_BOARD1                                = 4;            //板アイコン
835            ITEM_ICON_BOARD2                                = 5;            //板アイコン
836            ITEM_ICON_THREADLOG1            = 6;            //スレアイコン(ログあり)
837            ITEM_ICON_THREADLOG2            = 7;            //スレアイコン(ログあり)
838            ITEM_ICON_THREAD1                               = 8;            //スレアイコン(ログなし)
839            ITEM_ICON_THREAD2                               = 9;            //スレアイコン(ログなし)
840            ITEM_ICON_THREADNEW1            = 10;           //スレアイコン(新着)
841            ITEM_ICON_THREADNEW2            = 11;           //スレアイコン(新着)
842            ITEM_ICON_SORT1                                 = 12;           //ソートアイコン
843            ITEM_ICON_SORT2                                 = 13;           //ソートアイコン
844    
845            //ツールバーアイコン
846            TOOL_ICON_HEIGHT_MAX            = 18;           //高さ最大アイコン
847            TOOL_ICON_HEIGHT_MIN            = 19;           //高さ最小アイコン
848            TOOL_ICON_HEIGHT_NORMAL = 20;           //高さ標準アイコン
849            TOOL_ICON_WIDTH_MAX             = 21;           //幅最大アイコン
850            TOOL_ICON_WIDTH_MIN             = 22;           //幅最小アイコン
851            TOOL_ICON_WIDTH_NORMAL  = 23;           //幅標準アイコン
852    
853            TOOL_ICON_FAV_FOLDER    = 32;           //お気に入りフォルダアイコン
854            TOOL_ICON_FAV_BOARD     = 33;           //お気に入り板アイコン
855            TOOL_ICON_FAV_THREAD    = 34;           //お気に入りスレアイコン
856    
857          HTML_FILE_NAME  = 'temp_preview.html';          HTML_FILE_NAME  = 'temp_preview.html';
858    
# Line 790  var Line 877  var
877          Style: DWORD;          Style: DWORD;
878          msg: string;          msg: string;
879          i: Integer;          i: Integer;
880          CoolSet: TCoolSet;  //      CoolSet: TCoolSet;
881          wp: TWindowPlacement;          wp: TWindowPlacement;
882  begin  begin
883  {$IFDEF DEBUG}  {$IFDEF DEBUG}
# Line 943  begin Line 1030  begin
1030                  case GikoSys.Setting.ListWidthState of                  case GikoSys.Setting.ListWidthState of
1031                          glsMax: begin                          glsMax: begin
1032                                  ViewPanel.Width := 1;                                  ViewPanel.Width := 1;
1033                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_NORMAL;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1034                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1035                          end;                          end;
1036                          glsMin: begin                          glsMin: begin
1037                                  ViewPanel.Width := GikoSys.Setting.ListWidth;                                  ViewPanel.Width := GikoSys.Setting.ListWidth;
1038                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1039                                  BrowserMinAction.ImageIndex := ICON_WIDTH_NORMAL;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
1040                          end;                          end;
1041                          else begin                          else begin
1042                                  ViewPanel.Width := GikoSys.Setting.ListWidth;                                  ViewPanel.Width := GikoSys.Setting.ListWidth;
1043                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
1044                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
1045                          end;                          end;
1046                  end;                  end;
1047  //              if GikoSys.Setting.ListWidthMax then begin  //              if GikoSys.Setting.ListWidthMax then begin
# Line 968  begin Line 1055  begin
1055                  case GikoSys.Setting.ListHeightState of                  case GikoSys.Setting.ListHeightState of
1056                          glsMax: begin                          glsMax: begin
1057                                  ViewPanel.Height := 1;                                  ViewPanel.Height := 1;
1058                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_NORMAL;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1059                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1060                          end;                          end;
1061                          glsMin: begin                          glsMin: begin
1062                                  ViewPanel.Height := GikoSys.Setting.ListHeight;                                  ViewPanel.Height := GikoSys.Setting.ListHeight;
1063                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1064                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_NORMAL;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
1065                          end;                          end;
1066                          else begin                          else begin
1067                                  ViewPanel.Height := GikoSys.Setting.ListHeight;                                  ViewPanel.Height := GikoSys.Setting.ListHeight;
1068                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
1069                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
1070                          end;                          end;
1071                  end;                  end;
1072  //              if GikoSys.Setting.ListHeightState = glsMax then begin  //              if GikoSys.Setting.ListHeightState = glsMax then begin
# Line 1000  begin Line 1087  begin
1087    
1088          //ツールバー表示          //ツールバー表示
1089          //formshow()に移動          //formshow()に移動
1090  {       StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;  
         StdToolBarVisibleActionExecute(nil);  
         ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;  
         ListToolBarVisibleActionExecute(nil);  
         ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;  
         ListNameBarVisibleActionExecute(nil);  
         BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;  
         BrowserToolBarVisibleActionExecute(nil);  
         BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;  
         BrowserNameBarVisibleActionExecute(nil);  
 }  
1091          //ダウンロードオブジェクト          //ダウンロードオブジェクト
1092  //      FDownload := TDownload.Create;  //      FDownload := TDownload.Create;
1093  //      FDownload.OnDownloadEnd := OnDonloadEnd;  //      FDownload.OnDownloadEnd := OnDonloadEnd;
# Line 1032  begin Line 1109  begin
1109          //ヒストリリスト          //ヒストリリスト
1110          FHistoryList := TList.Create;          FHistoryList := TList.Create;
1111    
1112            // 絞込検索履歴
1113            SelectComboBox.Items.Assign( GikoSys.Setting.SelectTextList );
1114    
1115          //ブラウザタブ設定          //ブラウザタブ設定
1116          SetBrowserTabState;          SetBrowserTabState;
1117    
# Line 1062  begin Line 1142  begin
1142          ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;          ListToolBar.Wrapable := GikoSys.Setting.ListToolBarWrapable;
1143          BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;          BrowserToolBar.Wrapable := GikoSys.Setting.BrowserToolBarWrapable;
1144    
1145            //ツールボタン読み込み
1146            ReadToolBarSetting(ActionList, StdToolBar);
1147            ReadToolBarSetting(ActionList, ListToolBar);
1148            ReadToolBarSetting(ActionList, BrowserToolBar);
1149            SetToolBarPopup;
1150    
1151          //アドレスバー          //アドレスバー
1152          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;          AddressComboBox.TabStop := GikoSys.Setting.AddressBarTabStop;
1153    
1154            //クールバー復元はFormShowに移動した
1155    
1156            //ボードファイルが無い場合はメッセージ表示
1157            if not FileExists(GikoSys.GetBoardFileName) then begin
1158                    msg := 'このメッセージはギコナビを初めて使用するときに1回だけ表示されます' + #13#10#13#10
1159                                     + 'これから、「2ちゃんねる」のアドレス一覧をダウンロードします' + #13#10
1160                                     + '次に出てくる画面で、「更新」ボタンを押してください。';
1161                    MsgBox(SplashWindow.Handle, msg, 'ギコナビ', MB_OK or MB_ICONINFORMATION);
1162                    NewBoardAction.Execute;
1163            end;
1164    
1165            //キー設定読み込み
1166            GikoSys.LoadKeySetting(ActionList);
1167    
1168            //最終巡回時間
1169    //      FLastRoundTime := 0;
1170    
1171            //ResHint
1172            FHint := TResPopup.Create(Self);
1173    
1174            //オートログイン
1175            if GikoSys.Setting.AutoLogin then
1176                    LoginAction.Execute;
1177    
1178            //引数があったらスレを開く(未取得ならダウンロード)
1179            for i := 1 to ParamCount do     begin
1180                    MoveToURL(ParamStr(i));
1181            end;
1182    //      SetStdToolBar;
1183    //      SetLinkBar;
1184    end;
1185    
1186    //
1187    //
1188    //
1189    procedure TGikoForm.FormShow(Sender: TObject);
1190    var
1191            i: Integer;
1192            CoolSet: TCoolSet;
1193    begin
1194            ShowWindow(Application.Handle, SW_HIDE);
1195    
1196            //FormCreateでやると可視設定が反映されない場合があるのでFormShowでやることにした
1197            //ツールバー表示
1198            StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
1199            StdToolBarVisibleActionExecute( nil );
1200            AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
1201            AddressBarVisibleActionExecute( nil );
1202            LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
1203            LinkBarVisibleActionExecute( nil );
1204            ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;
1205            ListToolBarVisibleActionExecute( nil );
1206            ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;
1207            ListNameBarVisibleActionExecute( nil );
1208            BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;
1209            BrowserToolBarVisibleActionExecute( nil );
1210            BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;
1211            BrowserNameBarVisibleActionExecute( nil );
1212    
1213            //ブラウザタブ
1214            BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;
1215            BrowserTabVisibleActionExecute(nil);
1216    
1217            if GikoSys.Setting.BrowserTabPosition = gtpTop then begin
1218                    BrowserTabTopAction.Checked := True;
1219                    BrowserTabTopActionExecute(nil);
1220            end else begin
1221                    BrowserTabBottomAction.Checked := True;
1222                    BrowserTabBottomActionExecute(nil);
1223            end;
1224    
1225            if GikoSys.Setting.BrowserTabStyle = gtsTab then begin
1226                    BrowserTabTabStyleAction.Checked := True;
1227                    BrowserTabTabStyleActionExecute(nil);
1228            end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin
1229                    BrowserTabButtonStyleAction.Checked := True;
1230                    BrowserTabButtonStyleActionExecute(nil);
1231            end else begin
1232                    BrowserTabFlatStyleAction.Checked := True;
1233                    BrowserTabFlatStyleActionExecute(nil);
1234            end;
1235    
1236    
1237          //クールバー復元(Main)          //クールバー復元(Main)
1238          MainCoolBar.Bands.BeginUpdate;          MainCoolBar.Bands.BeginUpdate;
1239          try          try
# Line 1110  begin Line 1279  begin
1279                  BrowserCoolBar.Bands.EndUpdate;                  BrowserCoolBar.Bands.EndUpdate;
1280          end;          end;
1281    
         //ボードファイルが無い場合はメッセージ表示  
         if not FileExists(GikoSys.GetBoardFileName) then begin  
                 msg := 'このメッセージはギコナビを初めて使用するときに1回だけ表示されます' + #13#10#13#10  
                                  + 'これから、「2ちゃんねる」のアドレス一覧をダウンロードします' + #13#10  
                                  + '次に出てくる画面で、「更新」ボタンを押してください。';  
                 MsgBox(SplashWindow.Handle, msg, 'ギコナビ', MB_OK or MB_ICONINFORMATION);  
                 NewBoardAction.Execute;  
         end;  
   
         //キー設定読み込み  
         GikoSys.LoadKeySetting(ActionList);  
   
         //最終巡回時間  
 //      FLastRoundTime := 0;  
   
         //ResHint  
         FHint := TResPopup.Create(Self);  
   
         //オートログイン  
         if GikoSys.Setting.AutoLogin then  
                 LoginAction.Execute;  
   
         //引数があったらスレを開く(未取得ならダウンロード)  
         for i := 1 to ParamCount do     begin  
                 MoveToURL(ParamStr(i));  
         end;  
 //      SetStdToolBar;  
 //      SetLinkBar;  
1282  end;  end;
1283    {
1284  procedure TGikoForm.SetStdToolBar;  procedure TGikoForm.SetStdToolBar;
1285  var  var
1286          i: Integer;          i: Integer;
# Line 1179  begin Line 1320  begin
1320                  Inc(i);                  Inc(i);
1321          end;          end;
1322  end;  end;
1323    }
1324  function TGikoForm.GetAction(ActionName: string): TContainedAction;  {function TGikoForm.GetAction(ActionName: string): TContainedAction;
1325  var  var
1326          i: Integer;          i: Integer;
1327  begin  begin
# Line 1191  begin Line 1332  begin
1332                  end;                  end;
1333          end;          end;
1334          Result := nil;          Result := nil;
1335  end;  end;}
1336    
1337  procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);  procedure TGikoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
1338  var  var
# Line 1199  var Line 1340  var
1340          CoolSet: TCoolSet;          CoolSet: TCoolSet;
1341          wp: TWindowPlacement;          wp: TWindowPlacement;
1342  begin  begin
1343          if not EnabledCloseButton then begin  //      if not EnabledCloseButton then begin
1344                  CanClose := False;  //              CanClose := False;
1345                  Exit;  //              Exit;
1346          end;  //      end;
1347    
1348          CanClose := True;          CanClose := True;
1349          Application.OnDeactivate := nil;          Application.OnDeactivate := nil;
1350          Self.OnDeactivate := nil;          Self.OnDeactivate := nil;
1351    
1352          try          //column幅
1353                  //Hint破棄          if GetActiveList is TBBS2ch then begin
1354                  if FHint <> nil then begin                  for i := 0 to ListView.Columns.Count - 1 do
1355                          FHint.ReleaseHandle;                          GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
1356                          FHint.Free;          end else if GetActiveList is TCategory then begin
1357                          FHint := nil;                  for i := 0 to ListView.Columns.Count - 1 do
1358                  end;                          GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
1359                  //Preview破棄          end else if GetActiveList is TBoard then begin
1360                  if TPreviewBrowser <> nil then begin                  for i := 0 to ListView.Columns.Count - 1 do
1361                          FPreviewBrowser.Free;                          GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
                         FPreviewBrowser := nil;  
                 end;  
         except  
1362          end;          end;
1363    
1364            //最大化・ウィンドウ位置保存
1365            wp.length := sizeof(wp);
1366            GetWindowPlacement(Handle, @wp);
1367            GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;
1368            GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;
1369            GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;
1370            GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;
1371            GikoSys.Setting.WindowMax := WindowState = wsMaximized;
1372    
1373            GikoSys.Setting.ListStyle := ListView.ViewStyle;
1374            GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;
1375            GikoSys.Setting.CabinetWidth := CabinetPanel.Width;
1376            GikoSys.Setting.ListHeight := FBrowserSizeHeight;
1377            GikoSys.Setting.ListWidth := FBrowserSizeWidth;
1378            if ArrangeAction.Checked then
1379                    GikoSys.Setting.ListOrientation := gloVertical
1380            else
1381                    GikoSys.Setting.ListOrientation := gloHorizontal;
1382            GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;
1383    
1384            //クールバー保存(Main)
1385            for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
1386                    CoolSet.FCoolID := MainCoolBar.Bands[i].ID;
1387                    CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;
1388                    CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;
1389                    GikoSys.Setting.MainCoolSet[i] := CoolSet;
1390            end;
1391            //クールバー保存(Board)
1392            for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
1393                    CoolSet.FCoolID := ListCoolBar.Bands[i].ID;
1394                    CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;
1395                    CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;
1396                    GikoSys.Setting.ListCoolSet[i] := CoolSet;
1397            end;
1398            //クールバー保存(Browser)
1399            for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
1400                    CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;
1401                    CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;
1402                    CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;
1403                    GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
1404            end;
1405    
1406            GikoSys.Setting.WriteWindowSettingFile;
1407            GikoSys.Setting.WriteNameMailSettingFile;
1408    
1409            //お気に入り保存
1410          try          try
1411                  //column幅                  FavoriteDM.WriteFavorite;
                 if GetActiveList is TBBS2ch then begin  
                         for i := 0 to ListView.Columns.Count - 1 do  
                                 GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;  
                 end else if GetActiveList is TCategory then begin  
                         for i := 0 to ListView.Columns.Count - 1 do  
                                 GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;  
                 end else if GetActiveList is TBoard then begin  
                         for i := 0 to ListView.Columns.Count - 1 do  
                                 GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;  
                 end;  
1412          except          except
1413          end;          end;
1414    //      Favorite.Free;
1415    
1416          try          try
1417                  //タブクローズ                  //タブクローズ
# Line 1266  begin Line 1442  begin
1442          except          except
1443          end;          end;
1444    
         //最大化・ウィンドウ位置保存  
         try  
                 wp.length := sizeof(wp);  
                 GetWindowPlacement(Handle, @wp);  
                 GikoSys.Setting.WindowTop := wp.rcNormalPosition.Top;  
                 GikoSys.Setting.WindowLeft := wp.rcNormalPosition.Left;  
                 GikoSys.Setting.WindowHeight := wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;  
                 GikoSys.Setting.WindowWidth := wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;  
 //      GikoSys.Setting.WindowTop := Top;  
 //      GikoSys.Setting.WindowLeft := Left;  
 //      GikoSys.Setting.WindowHeight := Height;  
 //      GikoSys.Setting.WindowWidth := Width;  
                 GikoSys.Setting.WindowMax := WindowState = wsMaximized;  
   
                 GikoSys.Setting.ListStyle := ListView.ViewStyle;  
                 GikoSys.Setting.CabinetVisible := CabinetVisibleAction.Checked;  
                 GikoSys.Setting.CabinetWidth := CabinetPanel.Width;  
                 GikoSys.Setting.ListHeight := FBrowserSizeHeight;  
                 GikoSys.Setting.ListWidth := FBrowserSizeWidth;  
                 if ArrangeAction.Checked then  
                         GikoSys.Setting.ListOrientation := gloVertical  
                 else  
                         GikoSys.Setting.ListOrientation := gloHorizontal;  
                 GikoSys.Setting.MessegeBarHeight := MessagePanel.Height;  
         except  
         end;  
   
         try  
                 //クールバー保存(Main)  
                 for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin  
                         CoolSet.FCoolID := MainCoolBar.Bands[i].ID;  
                         CoolSet.FCoolWidth := MainCoolBar.Bands[i].Width;  
                         CoolSet.FCoolBreak := MainCoolBar.Bands[i].Break;  
                         GikoSys.Setting.MainCoolSet[i] := CoolSet;  
                 end;  
                 //クールバー保存(Board)  
                 for i := 0 to LIST_COOLBAND_COUNT - 1 do begin  
                         CoolSet.FCoolID := ListCoolBar.Bands[i].ID;  
                         CoolSet.FCoolWidth := ListCoolBar.Bands[i].Width;  
                         CoolSet.FCoolBreak := ListCoolBar.Bands[i].Break;  
                         GikoSys.Setting.ListCoolSet[i] := CoolSet;  
                 end;  
                 //クールバー保存(Browser)  
                 for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin  
                         CoolSet.FCoolID := BrowserCoolBar.Bands[i].ID;  
                         CoolSet.FCoolWidth := BrowserCoolBar.Bands[i].Width;  
                         CoolSet.FCoolBreak := BrowserCoolBar.Bands[i].Break;  
                         GikoSys.Setting.BrowserCoolSet[i] := CoolSet;  
                 end;  
         except  
         end;  
   
         //お気に入り保存  
         try  
                 FavoriteDM.WriteFavorite;  
         except  
         end;  
 //      Favorite.Free;  
   
1445          //アドレス履歴保存          //アドレス履歴保存
1446          try          try
1447                  AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);                  AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
# Line 1336  begin Line 1453  begin
1453          except          except
1454          end;          end;
1455    
         try  
                 GikoSys.Setting.WriteWindowSettingFile;  
         except  
         end;  
         try  
                 GikoSys.Setting.WriteNameMailSettingFile;  
         except  
         end;  
1456  //      FDownload.Free;  //      FDownload.Free;
1457          try          try
1458                  SetActiveList(nil);                  SetActiveList(nil);
# Line 1371  begin Line 1480  begin
1480                  BBS2ch := nil;                  BBS2ch := nil;
1481          except          except
1482          end;          end;
1483    
1484            try
1485                    //Hint破棄
1486                    if FHint <> nil then begin
1487                            FHint.ReleaseHandle;
1488                            FHint.Free;
1489                            FHint := nil;
1490                    end;
1491                    //Preview破棄
1492                    if TPreviewBrowser <> nil then begin
1493                            FPreviewBrowser.Free;
1494                            FPreviewBrowser := nil;
1495                    end;
1496            except
1497            end;
1498  end;  end;
1499    
1500  procedure TGikoForm.FormDestroy(Sender: TObject);  procedure TGikoForm.FormDestroy(Sender: TObject);
# Line 1452  begin Line 1576  begin
1576          TreeView.Items.Clear;          TreeView.Items.Clear;
1577          try          try
1578                  Root := TreeView.Items.Add(nil, BBS2ch.Title);                  Root := TreeView.Items.Add(nil, BBS2ch.Title);
1579                  Root.ImageIndex := 0;                  Root.ImageIndex := ITEM_ICON_2CH1;
1580                  Root.SelectedIndex := 1;                  Root.SelectedIndex := ITEM_ICON_2CH2;
1581                  Root.Data := BBS2ch;                  Root.Data := BBS2ch;
1582                  if SplashWindow <> nil then                  if SplashWindow <> nil then
1583                          SplashWindow.ProgressBar.Max := BoardGroup.BBS2ch.Count;                          SplashWindow.ProgressBar.Max := BoardGroup.BBS2ch.Count;
# Line 1462  begin Line 1586  begin
1586                          Category := TCategory(BoardGroup.BBS2ch.Items[i]);                          Category := TCategory(BoardGroup.BBS2ch.Items[i]);
1587                          CategoryNode := TreeView.Items.AddChild(Root, Category.Title);                          CategoryNode := TreeView.Items.AddChild(Root, Category.Title);
1588                          CategoryNode.Data := Category;                          CategoryNode.Data := Category;
1589                          CategoryNode.ImageIndex := 2;                          CategoryNode.ImageIndex := ITEM_ICON_CATEGORY1;
1590                          CategoryNode.SelectedIndex := 3;                          CategoryNode.SelectedIndex := ITEM_ICON_CATEGORY2;
1591    
1592                          for j := 0 to Category.Count - 1 do begin                          for j := 0 to Category.Count - 1 do begin
1593                                  Board := TBoard(Category.Items[j]);                                  Board := TBoard(Category.Items[j]);
1594                                  Board.BeginUpdate;                                  Board.BeginUpdate;
1595                                  BoardNode := TreeView.Items.AddChild(CategoryNode, Board.Title);                                  BoardNode := TreeView.Items.AddChild(CategoryNode, Board.Title);
1596                                  BoardNode.Data := Board;                                  BoardNode.Data := Board;
1597                                  BoardNode.ImageIndex := 4;                                  BoardNode.ImageIndex := ITEM_ICON_BOARD1;
1598                                  BoardNode.SelectedIndex := 5;                                  BoardNode.SelectedIndex := ITEM_ICON_BOARD2;
1599                                  Board.LoadSettings;                                  Board.LoadSettings;
1600                                  Board.EndUpdate;                                  Board.EndUpdate;
1601                          end;                          end;
# Line 1524  begin Line 1648  begin
1648                  FolderImage.Picture := nil;                  FolderImage.Picture := nil;
1649                  ItemIcon16.GetBitmap(1, FolderImage.Picture.Bitmap);                  ItemIcon16.GetBitmap(1, FolderImage.Picture.Bitmap);
1650    
1651                    FSortIndex := 0;
1652                    FSortOrder := False;
1653                    ListViewColumnClick(nil, ListView.Column[0]);
1654    
1655                  Result := ABBS2ch.Count;                  Result := ABBS2ch.Count;
1656          finally          finally
1657                  Screen.Cursor := crDefault;                  Screen.Cursor := crDefault;
# Line 1566  begin Line 1694  begin
1694                  FolderImage.Picture := nil;                  FolderImage.Picture := nil;
1695                  ItemIcon16.GetBitmap(3, FolderImage.Picture.Bitmap);                  ItemIcon16.GetBitmap(3, FolderImage.Picture.Bitmap);
1696    
1697                    FSortIndex := 0;
1698                    FSortOrder := False;
1699                    ListViewColumnClick(nil, ListView.Column[0]);
1700    
1701                  Result := Category.Count;                  Result := Category.Count;
1702          finally          finally
1703                  Screen.Cursor := crDefault;                  Screen.Cursor := crDefault;
# Line 1612  begin Line 1744  begin
1744                  FolderImage.Picture := nil;                  FolderImage.Picture := nil;
1745                  ItemIcon16.GetBitmap(5, FolderImage.Picture.Bitmap);                  ItemIcon16.GetBitmap(5, FolderImage.Picture.Bitmap);
1746    
1747                    FSortIndex := 0;
1748                    FSortOrder := False;
1749                    ListViewColumnClick(nil, ListView.Column[0]);
1750    
1751                  Result := Board.Count;                  Result := Board.Count;
1752          finally          finally
# Line 1700  begin Line 1834  begin
1834                  else                  else
1835                          Item.Caption := Category.Title;                          Item.Caption := Category.Title;
1836    
1837                  Item.ImageIndex := 2;                  Item.ImageIndex := ITEM_ICON_CATEGORY1;
1838                  Item.Data := Category;                  Item.Data := Category;
1839          end else if ActiveList is TCategory then begin          end else if ActiveList is TCategory then begin
1840                  Category := TCategory(ActiveList);                  Category := TCategory(ActiveList);
# Line 1729  begin Line 1863  begin
1863                          Item.SubItems.Add('');                          Item.SubItems.Add('');
1864                  end;                  end;
1865    
1866                  Item.ImageIndex := 4;                  Item.ImageIndex := ITEM_ICON_BOARD1;
1867    
1868                  if Board.Round then                  if Board.Round then
1869                          Item.SubItems[0] := Board.RoundName  // '予約'                          Item.SubItems[0] := Board.RoundName  // '予約'
# Line 1754  begin Line 1888  begin
1888                          gvtLog: BoardCnt := Board.GetLogThreadCount;                          gvtLog: BoardCnt := Board.GetLogThreadCount;
1889                          gvtNew: BoardCnt := Board.GetNewThreadCount;                          gvtNew: BoardCnt := Board.GetNewThreadCount;
1890                          gvtUser: BoardCnt := Board.GetUserThreadCount;                          gvtUser: BoardCnt := Board.GetUserThreadCount;
1891                            else
1892                                    BoardCnt := 0;
1893                  end;                  end;
1894    
1895  //              if Board = nil then Exit;  //              if Board = nil then Exit;
# Line 1778  begin Line 1914  begin
1914  //                      RepStr := IntToStr(ThreadItem.No) + ': ' + ThreadItem.Title  //                      RepStr := IntToStr(ThreadItem.No) + ': ' + ThreadItem.Title
1915  //              else  //              else
1916                  RepStr := ThreadItem.Title;                  RepStr := ThreadItem.Title;
1917                  RepStr := StringReplace(RepStr, '&amp;', '&', [rfReplaceAll]);                  //RepStr := StringReplace(RepStr, '&amp;', '&', [rfReplaceAll]);
1918                  RepStr := StringReplace(RepStr, '&lt;', '<', [rfReplaceAll]);                  RepStr := StringReplace(RepStr, '&lt;', '<', [rfReplaceAll]);
1919                  RepStr := StringReplace(RepStr, '&gt;', '>', [rfReplaceAll]);                  RepStr := StringReplace(RepStr, '&gt;', '>', [rfReplaceAll]);
1920                  RepStr := StringReplace(RepStr, '&quot;', '"', [rfReplaceAll]);                  RepStr := StringReplace(RepStr, '&quot;', '"', [rfReplaceAll]);
1921                  //RepStr := StringReplace(RepStr, '&amp', '&', [rfReplaceAll]);                  RepStr := StringReplace(RepStr, '&amp', '&', [rfReplaceAll]);
1922                  //RepStr := StringReplace(RepStr, '@`', ',', [rfReplaceAll]);                  //RepStr := StringReplace(RepStr, '@`', ',', [rfReplaceAll]);
1923    
1924                  if Item.SubItems.Count <> 6 then begin                  if Item.SubItems.Count <> 6 then begin
# Line 1808  begin Line 1944  begin
1944                  end;                  end;
1945    
1946                  if ThreadItem.IsLogFile then begin                  if ThreadItem.IsLogFile then begin
1947                          Item.ImageIndex := 6;                          Item.ImageIndex := ITEM_ICON_THREADLOG1;
1948                          Item.SubItems[0] := IntToStr(ThreadItem.AllResCount);                          Item.SubItems[0] := IntToStr(ThreadItem.AllResCount);
1949                          Item.SubItems[1] := IntToStr(ThreadItem.Count);                          Item.SubItems[1] := IntToStr(ThreadItem.Count);
1950                          if ThreadItem.NewResCount = 0 then                          if ThreadItem.NewResCount = 0 then
# Line 1825  begin Line 1961  begin
1961                          end else                          end else
1962                                  Item.SubItems[5] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.RoundDate);                                  Item.SubItems[5] := FormatDateTime('yyyy/mm/dd hh:mm:ss', ThreadItem.RoundDate);
1963                          if ThreadItem.NewArrival then                          if ThreadItem.NewArrival then
1964                                  Item.ImageIndex := 10;                                  Item.ImageIndex := ITEM_ICON_THREADNEW1;
1965                  end else begin                  end else begin
1966                          Item.ImageIndex := 8;                          Item.ImageIndex := ITEM_ICON_THREAD1;
1967                          Item.SubItems[0] := IntToStr(ThreadItem.AllResCount);                          Item.SubItems[0] := IntToStr(ThreadItem.AllResCount);
1968                          Item.SubItems[1] := '';                          Item.SubItems[1] := '';
1969                          Item.SubItems[2] := '';                          Item.SubItems[2] := '';
# Line 1998  begin Line 2134  begin
2134                          if FHint.Caption <> '' then                          if FHint.Caption <> '' then
2135                                  ShowTextPopup;                                  ShowTextPopup;
2136                  end else begin                  end else begin
2137                          if FHint.ResCount <> 0 then                          if (FHint.ResCount <> 0) or (FHint.Title <> '') then
2138                                  ShowTextPopup;                                  ShowTextPopup;
2139                  end;                  end;
2140          end;          end;
# Line 2065  end; Line 2201  end;
2201  procedure TGikoForm.ListViewColumnClick(Sender: TObject;  procedure TGikoForm.ListViewColumnClick(Sender: TObject;
2202          Column: TListColumn);          Column: TListColumn);
2203  var  var
2204            i: Integer;
2205          wkBBS: TBBS2ch;          wkBBS: TBBS2ch;
2206          wkCategory: TCategory;          wkCategory: TCategory;
2207          wkBoard: TBoard;          wkBoard: TBoard;
# Line 2074  begin Line 2211  begin
2211          else          else
2212                  FSortOrder := False;                  FSortOrder := False;
2213    
2214            for i := 0 to ListView.Columns.Count - 1 do
2215                    ListView.Column[i].ImageIndex := -1;
2216            if FSortOrder then
2217                    ListView.Column[Column.Index].ImageIndex := ITEM_ICON_SORT1
2218            else
2219                    ListView.Column[Column.Index].ImageIndex := ITEM_ICON_SORT2;
2220    
2221          Sort.SortNoFlag := ListNumberVisibleAction.Checked;          Sort.SortNoFlag := ListNumberVisibleAction.Checked;
2222    
2223          if TObject(TreeView.Selected.Data) is TBBS2ch then begin          if TObject(TreeView.Selected.Data) is TBBS2ch then begin
# Line 2103  procedure TGikoForm.MenuToolBarCustomDra Line 2247  procedure TGikoForm.MenuToolBarCustomDra
2247  var  var
2248          ARect: TRect;          ARect: TRect;
2249  begin  begin
2250            DefaultDraw := True;
2251            Exit;
2252          DefaultDraw := False;          DefaultDraw := False;
2253          if (cdsSelected in State) or (cdsHot in State) then begin          if (cdsSelected in State) or (cdsHot in State) then begin
2254                  Sender.Canvas.Brush.Color := clHighlight;                  Sender.Canvas.Brush.Color := clHighlight;
# Line 2716  begin Line 2862  begin
2862  //      Result := FActiveContent;  //      Result := FActiveContent;
2863  end;  end;
2864    
 //★★ヒロユキメモ  
 //そのうちinterfaceを使う  
2865  procedure TGikoForm.SetActiveList(Obj: TObject);  procedure TGikoForm.SetActiveList(Obj: TObject);
2866  var  var
2867          i: Integer;          i: Integer;
# Line 2733  begin Line 2877  begin
2877                          ListView.Column[i].Width := GikoSys.Setting.CategoryColumnWidth[i];                          ListView.Column[i].Width := GikoSys.Setting.CategoryColumnWidth[i];
2878                  SetBoardListItem(TCategory(Obj));                  SetBoardListItem(TCategory(Obj));
2879          end else if Obj is TBoard then begin          end else if Obj is TBoard then begin
2880                    // SetThreadListItem 呼ぶならいらないんじゃねぇ?
2881                    {
2882                  for i := 0 to ListView.Columns.Count - 1 do                  for i := 0 to ListView.Columns.Count - 1 do
2883                          ListView.Column[i].Width := GikoSys.Setting.BoardColumnWidth[i];                          ListView.Column[i].Width := GikoSys.Setting.BoardColumnWidth[i];
2884                    }
2885                  SetThreadListItem(TBoard(Obj));                  SetThreadListItem(TBoard(Obj));
2886          end;          end;
2887  end;  end;
# Line 2758  var Line 2905  var
2905  begin  begin
2906          if ActiveList is TBoard then begin          if ActiveList is TBoard then begin
2907                  Board := TBoard(ActiveList);                  Board := TBoard(ActiveList);
2908    
2909                  Board.ParentCategory.ParentBBS2ch.SelectText := SelectText;                  Board.ParentCategory.ParentBBS2ch.SelectText := SelectText;
2910                  Board.ParentCategory.ParentBBS2ch.KubetsuChk := KubetsuChk;                  Board.ParentCategory.ParentBBS2ch.KubetsuChk := KubetsuChk;
2911  //              Board.SelectText := SelectText;  //              Board.SelectText := SelectText;
2912  //              Board.KubetsuChk := KubetsuChk;  //              Board.KubetsuChk := KubetsuChk;
2913                  ViewType := AViewType;                  ViewType := AViewType;
2914                  SetActiveList(Board);                  SetActiveList(Board);
2915                  SetThreadListItem(Board);                  // チラつきをなくすために極力呼ばない
2916                    if not (Board is TBoard) then
2917                            SetThreadListItem(Board);
2918          end;          end;
2919  end;  end;
2920    
# Line 2924  begin Line 3074  begin
3074          if FTreeType = gttHistory then begin          if FTreeType = gttHistory then begin
3075                  Node := TreeView.Items.Add(nil, ThreadItem.Title);                  Node := TreeView.Items.Add(nil, ThreadItem.Title);
3076                  if Item.NewArrival then begin                  if Item.NewArrival then begin
3077                          Node.ImageIndex := 10;                          Node.ImageIndex := ITEM_ICON_THREADNEW1;
3078                          Node.SelectedIndex := 11;                          Node.SelectedIndex := ITEM_ICON_THREADNEW2;
3079                  end else begin                  end else begin
3080                          Node.ImageIndex := 6;                          Node.ImageIndex := ITEM_ICON_THREADLOG1;
3081                          Node.SelectedIndex := 7;                          Node.SelectedIndex := ITEM_ICON_THREADLOG2;
3082                  end;                  end;
3083                  Node.Data := ThreadItem;                  Node.Data := ThreadItem;
3084          end;          end;
# Line 2997  begin Line 3147  begin
3147                          Node := TreeView.Items.Add(nil, Item.Title);                          Node := TreeView.Items.Add(nil, Item.Title);
3148    
3149                          if Item.NewArrival then begin                          if Item.NewArrival then begin
3150                                  Node.ImageIndex := 10;                                  Node.ImageIndex := ITEM_ICON_THREADNEW1;
3151                                  Node.SelectedIndex := 11;                                  Node.SelectedIndex := ITEM_ICON_THREADNEW2;
3152                          end else begin                          end else begin
3153                                  Node.ImageIndex := 6;                                  Node.ImageIndex := ITEM_ICON_THREADLOG1;
3154                                  Node.SelectedIndex := 7;                                  Node.SelectedIndex := ITEM_ICON_THREADLOG2;
3155                          end;                          end;
3156                          Node.Data := Item;                          Node.Data := Item;
3157                  end;                  end;
# Line 3010  begin Line 3160  begin
3160          end;          end;
3161  end;  end;
3162    
3163  procedure TGikoForm.SelectTreeNode(Item: TObject);  procedure TGikoForm.SelectTreeNode(Item: TObject; CallEvent: Boolean);
3164  var  var
3165          ChangeEvent: TTVChangedEvent;          ChangeEvent: TTVChangedEvent;
3166          ChangingEvent: TTVChangingEvent;          ChangingEvent: TTVChangingEvent;
3167          i: Integer;          i: Integer;
3168  begin  begin
3169          ChangeEvent := TreeView.OnChange;          if not CallEvent then begin
3170          ChangingEvent := TreeView.OnChanging;                  ChangeEvent := TreeView.OnChange;
3171                    ChangingEvent := TreeView.OnChanging;
3172            end;
3173          try          try
3174                  TreeView.OnChange := nil;                  if not CallEvent then begin
3175                  TreeView.OnChanging := nil;                          TreeView.OnChange := nil;
3176                            TreeView.OnChanging := nil;
3177                    end;
3178                  Application.ProcessMessages;                  Application.ProcessMessages;
3179                  for i := 0 to TreeView.Items.Count - 1 do begin                  for i := 0 to TreeView.Items.Count - 1 do begin
3180                          if TreeView.Items[i].Data = Item then                          if TreeView.Items[i].Data = Item then begin
3181                                  TreeView.Items[i].Selected := True;                                  TreeView.Items[i].Selected := True;
3182                                    if CallEvent then
3183                                            TreeViewChange(TreeView, TreeView.Items[i]);
3184                                    Break;
3185                            end;
3186                  end;                  end;
3187                  Application.ProcessMessages;                  Application.ProcessMessages;
3188          finally          finally
3189                  TreeView.OnChange := ChangeEvent;                  if not CallEvent then begin
3190                  TreeView.OnChanging := ChangingEvent;                          TreeView.OnChange := ChangeEvent;
3191                            TreeView.OnChanging := ChangingEvent;
3192                    end;
3193          end;          end;
3194  end;  end;
3195    
# Line 3097  begin Line 3257  begin
3257  //      if TreeView.Selected = nil then Exit;  //      if TreeView.Selected = nil then Exit;
3258    
3259          if TObject(ListView.Selected.Data) is TCategory then begin          if TObject(ListView.Selected.Data) is TCategory then begin
3260                  SelectTreeNode(ListView.Selected.Data);                  SelectTreeNode(ListView.Selected.Data, True);
3261  //              TreeView.Selected.Expanded := True;  //              TreeView.Selected.Expanded := True;
3262  //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;
3263                  TreeViewChange(nil, TreeView.Selected);                  //TreeViewChange(nil, TreeView.Selected);
3264          end else if TObject(ListView.Selected.Data) is TBoard then begin          end else if TObject(ListView.Selected.Data) is TBoard then begin
3265                  SelectTreeNode(ListView.Selected.Data);                  SelectTreeNode(ListView.Selected.Data, True);
3266  //              TreeView.Selected.Expanded := True;  //              TreeView.Selected.Expanded := True;
3267  //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;  //              TreeView.Selected.Item[ListView.Selected.Index].Selected := True;
3268                  TreeViewChange(nil, TreeView.Selected);                  //TreeViewChange(nil, TreeView.Selected);
3269          end else if TObject(ListView.Selected.Data) is TThreadItem then begin          end else if TObject(ListView.Selected.Data) is TThreadItem then begin
3270                  if TObject(ListView.Selected.Data) is TThreadItem then begin                  if TObject(ListView.Selected.Data) is TThreadItem then begin
3271                          ThreadItem := TThreadItem(ListView.Selected.Data);                          ThreadItem := TThreadItem(ListView.Selected.Data);
# Line 3173  begin Line 3333  begin
3333          CoolBand := GetCoolBand(MainCoolBar, StdToolBar);          CoolBand := GetCoolBand(MainCoolBar, StdToolBar);
3334          if CoolBand = nil then          if CoolBand = nil then
3335                  Exit;                  Exit;
3336          CoolBand.Visible := StdToolBarVisibleAction.Checked;          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;
3337            CoolBand.Visible := GikoSys.Setting.StdToolBarVisible;
3338  //      StdToolBar.Visible := StdToolBarVisibleAction.Checked;  //      StdToolBar.Visible := StdToolBarVisibleAction.Checked;
3339  //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;
3340          GikoSys.Setting.StdToolBarVisible := StdToolBarVisibleAction.Checked;  
3341            //StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
3342            StdToolBarVisiblePMenu.Checked := GikoSys.Setting.StdToolBarVisible;
3343  end;  end;
3344    
3345  procedure TGikoForm.AddressBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.AddressBarVisibleActionExecute(Sender: TObject);
# Line 3186  begin Line 3349  begin
3349          CoolBand := GetCoolBand(MainCoolBar, AddressToolBar);          CoolBand := GetCoolBand(MainCoolBar, AddressToolBar);
3350          if CoolBand = nil then          if CoolBand = nil then
3351                  Exit;                  Exit;
         CoolBand.Visible := AddressBarVisibleAction.Checked;  
 //      StdToolBar.Visible := StdToolBarVisibleAction.Checked;  
 //      AnimePanel.Visible := StdToolBar.Visible or ListToolBar.Visible;  
3352          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;          GikoSys.Setting.AddressBarVisible := AddressBarVisibleAction.Checked;
3353            CoolBand.Visible := GikoSys.Setting.AddressBarVisible;
3354            //AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;
3355            AddressToolBarVisiblePMenu.Checked := GikoSys.Setting.AddressBarVisible;
3356  end;  end;
3357    
3358  procedure TGikoForm.LinkBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.LinkBarVisibleActionExecute(Sender: TObject);
3359  var  var
3360          CoolBand: TCoolBand;          CoolBand: TCoolBand;
3361  begin  begin
3362          CoolBand := GetCoolBand(MainCoolBar, LinkBarPanel);          CoolBand := GetCoolBand(MainCoolBar, LinkToolBar);
3363          if CoolBand = nil then          if CoolBand = nil then
3364                  Exit;                  Exit;
         CoolBand.Visible := LinkBarVisibleAction.Checked;  
3365          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;          GikoSys.Setting.LinkBarVisible := LinkBarVisibleAction.Checked;
3366            CoolBand.Visible := GikoSys.Setting.LinkBarVisible;
3367            //LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;
3368            LinkToolBarVisiblePMenu.Checked := GikoSys.Setting.LinkBarVisible;
3369  end;  end;
3370    
3371  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);  procedure TGikoForm.ListToolBarVisibleActionExecute(Sender: TObject);
# Line 3331  end; Line 3496  end;
3496    
3497  procedure TGikoForm.GikoNaviWebPageActionExecute(Sender: TObject);  procedure TGikoForm.GikoNaviWebPageActionExecute(Sender: TObject);
3498  const  const
3499          URL_GIKONAVI: string = 'http://gikonavi.hp.infoseek.co.jp/';          URL_GIKONAVI: string = 'http://gikonavi.xrea.jp/';
3500  begin  begin
3501          GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);          GikoSys.OpenBrowser(URL_GIKONAVI, gbtAuto);
3502  end;  end;
# Line 3386  end; Line 3551  end;
3551    
3552  procedure TGikoForm.AllItemActionExecute(Sender: TObject);  procedure TGikoForm.AllItemActionExecute(Sender: TObject);
3553  begin  begin
3554          if ViewType <> gvtAll then begin          if ViewType <> gvtAll then
3555                  SetListViewType(gvtAll);                  SetListViewType( gvtUser, SelectComboBox.Text, false );
3556                  AllItemAction.Checked := True;                  //SetListViewType(gvtAll);
3557          end;          AllItemAction.Checked := True;
3558            LogItemAction.Checked := False;
3559            NewItemAction.Checked := False;
3560            //SelectItemAction.Checked := False;
3561  end;  end;
3562    
3563  procedure TGikoForm.LogItemActionExecute(Sender: TObject);  procedure TGikoForm.LogItemActionExecute(Sender: TObject);
3564  begin  begin
3565          if ViewType <> gvtLog then begin          if ViewType <> gvtLog then
3566                  SetListViewType(gvtLog);                  SetListViewType( gvtLog, SelectComboBox.Text, false );
3567                  LogItemAction.Checked := True;                  //SetListViewType(gvtLog);
3568          end;          AllItemAction.Checked := False;
3569            LogItemAction.Checked := True;
3570            NewItemAction.Checked := False;
3571            //SelectItemAction.Checked := False;
3572  end;  end;
3573    
3574  procedure TGikoForm.NewItemActionExecute(Sender: TObject);  procedure TGikoForm.NewItemActionExecute(Sender: TObject);
3575  begin  begin
3576          if ViewType <> gvtNew then begin          if ViewType <> gvtNew then
3577                  SetListViewType(gvtNew);                  SetListViewType( gvtNew, SelectComboBox.Text, false );
3578                  NewItemAction.Checked := True;                  //SetListViewType(gvtNew);
3579          end;          AllItemAction.Checked := False;
3580            LogItemAction.Checked := False;
3581            NewItemAction.Checked := True;
3582            //SelectItemAction.Checked := False;
3583  end;  end;
3584    
3585  procedure TGikoForm.SelectItemActionExecute(Sender: TObject);  procedure TGikoForm.SelectItemActionExecute(Sender: TObject);
# Line 3413  var Line 3587  var
3587          idx: Integer;          idx: Integer;
3588          Dlg: TListSelectDialog;          Dlg: TListSelectDialog;
3589  begin  begin
3590            AllItemAction.Checked := False;
3591            LogItemAction.Checked := False;
3592            NewItemAction.Checked := False;
3593            //SelectItemAction.Checked := True;
3594          Dlg := TListSelectDialog.Create(Self);          Dlg := TListSelectDialog.Create(Self);
3595          try          try
3596                  Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);                  Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
3597                  Dlg.ShowModal;                  Dlg.ShowModal;
3598                  if Dlg.ModalResult = mrCancel then begin                  if Dlg.ModalResult = mrCancel then begin
3599                          AllItemAction.Checked := True;                          if GetActiveList is TBoard then
3600                          AllItemAction.Execute;                                  SetListViewType(gvtUser, TBoard(GetActiveList).ParentCategory.ParentBBS2ch.SelectText , Dlg.KubetsuCheckBox.Checked);
3601                  end else begin                  end else begin
3602                          idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);                          idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
3603                          if idx <> -1 then                          if idx <> -1 then
# Line 3429  begin Line 3607  begin
3607                                  Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);                                  Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
3608                          end;                          end;
3609                          SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);                          SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
                         SelectItemAction.Checked := True;  
3610                  end;                  end;
3611          finally          finally
3612                  Dlg.Release;                  Dlg.Release;
# Line 3446  procedure TGikoForm.UpFolderActionExecut Line 3623  procedure TGikoForm.UpFolderActionExecut
3623  begin  begin
3624          if GetActiveList is TBoard then begin          if GetActiveList is TBoard then begin
3625                  if FTreeType = gtt2ch then                  if FTreeType = gtt2ch then
3626                          SelectTreeNode(TBoard(GetActiveList).ParentCategory);                          SelectTreeNode(TBoard(GetActiveList).ParentCategory, True);
3627                  SetActiveList(TBoard(GetActiveList).ParentCategory);                  //SetActiveList(TBoard(GetActiveList).ParentCategory);
3628          end else if GetActiveList is TCategory then begin          end else if GetActiveList is TCategory then begin
3629                  if FTreeType = gtt2ch then                  if FTreeType = gtt2ch then
3630                          SelectTreeNode(TCategory(GetActiveList).ParentBBS2ch);                          SelectTreeNode(TCategory(GetActiveList).ParentBBS2ch, True);
3631                  SetActiveList(TCategory(GetActiveList).ParentBBS2ch);                  //SetActiveList(TCategory(GetActiveList).ParentBBS2ch);
3632          end;          end;
3633  //      if TreeView.Selected = nil then Exit;  //      if TreeView.Selected = nil then Exit;
3634  //      if TreeView.Selected.Level = 0 then Exit;  //      if TreeView.Selected.Level = 0 then Exit;
# Line 3496  begin Line 3673  begin
3673                          glsMax: begin                          glsMax: begin
3674                                  //通常表示にする                                  //通常表示にする
3675                                  ViewPanel.Width := FBrowserSizeWidth;                                  ViewPanel.Width := FBrowserSizeWidth;
3676                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3677                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3678                                  GikoSys.Setting.ListWidthState := glsNormal;                                  GikoSys.Setting.ListWidthState := glsNormal;
3679                          end;                          end;
3680                          glsMin, glsNormal: begin                          glsMin, glsNormal: begin
# Line 3505  begin Line 3682  begin
3682                                  if GikoSys.Setting.ListWidthState = glsNormal then                                  if GikoSys.Setting.ListWidthState = glsNormal then
3683                                          FBrowserSizeWidth := ViewPanel.Width;                                          FBrowserSizeWidth := ViewPanel.Width;
3684                                  ViewPanel.Width := 1;                                  ViewPanel.Width := 1;
3685                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_NORMAL;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3686                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3687                                  GikoSys.Setting.ListWidthState := glsMax;                                  GikoSys.Setting.ListWidthState := glsMax;
3688                          end;                          end;
3689                  end;                  end;
# Line 3515  begin Line 3692  begin
3692                          glsMax: begin                          glsMax: begin
3693                                  //通常表示にする                                  //通常表示にする
3694                                  ViewPanel.Height := FBrowserSizeHeight;                                  ViewPanel.Height := FBrowserSizeHeight;
3695                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3696                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3697                                  GikoSys.Setting.ListHeightState := glsNormal;                                  GikoSys.Setting.ListHeightState := glsNormal;
3698                          end;                          end;
3699                          glsMin, glsNormal: begin                          glsMin, glsNormal: begin
# Line 3524  begin Line 3701  begin
3701                                  if GikoSys.Setting.ListHeightState = glsNormal then                                  if GikoSys.Setting.ListHeightState = glsNormal then
3702                                          FBrowserSizeHeight := ViewPanel.Height;                                          FBrowserSizeHeight := ViewPanel.Height;
3703                                  ViewPanel.Height := 1;                                  ViewPanel.Height := 1;
3704                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_NORMAL;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3705                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3706                                  GikoSys.Setting.ListHeightState := glsMax;                                  GikoSys.Setting.ListHeightState := glsMax;
3707                          end;                          end;
3708                  end;                  end;
# Line 3544  begin Line 3721  begin
3721                                  if GikoSys.Setting.ListWidthState = glsNormal then                                  if GikoSys.Setting.ListWidthState = glsNormal then
3722                                          FBrowserSizeWidth := ViewPanel.Width;                                          FBrowserSizeWidth := ViewPanel.Width;
3723                                  ViewPanel.Width := ThreadMainPanel.Width - 80;                                  ViewPanel.Width := ThreadMainPanel.Width - 80;
3724                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3725                                  BrowserMinAction.ImageIndex := ICON_WIDTH_NORMAL;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
3726                                  GikoSys.Setting.ListWidthState := glsMin;                                  GikoSys.Setting.ListWidthState := glsMin;
3727                          end;                          end;
3728                          glsMin: begin                          glsMin: begin
3729                                  //通常表示にする                                  //通常表示にする
3730                                  ViewPanel.Width := FBrowserSizeWidth;                                  ViewPanel.Width := FBrowserSizeWidth;
3731                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
3732                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
3733                                  GikoSys.Setting.ListWidthState := glsNormal;                                  GikoSys.Setting.ListWidthState := glsNormal;
3734                          end;                          end;
3735                  end;                  end;
# Line 3563  begin Line 3740  begin
3740                                  if GikoSys.Setting.ListHeightState = glsNormal then                                  if GikoSys.Setting.ListHeightState = glsNormal then
3741                                          FBrowserSizeHeight := ViewPanel.Height;                                          FBrowserSizeHeight := ViewPanel.Height;
3742                                  ViewPanel.Height := ThreadMainPanel.Height - BrowserCoolBar.Height - 7;                                  ViewPanel.Height := ThreadMainPanel.Height - BrowserCoolBar.Height - 7;
3743                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3744                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_NORMAL;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
3745                                  GikoSys.Setting.ListHeightState := glsMin;                                  GikoSys.Setting.ListHeightState := glsMin;
3746                          end;                          end;
3747                          glsMin: begin                          glsMin: begin
3748                                  //通常表示にする                                  //通常表示にする
3749                                  ViewPanel.Height := FBrowserSizeHeight;                                  ViewPanel.Height := FBrowserSizeHeight;
3750                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
3751                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
3752                                  GikoSys.Setting.ListHeightState := glsNormal;                                  GikoSys.Setting.ListHeightState := glsNormal;
3753                          end;                          end;
3754                  end;                  end;
# Line 3616  begin Line 3793  begin
3793          Editor := TEditorForm.Create(Self);          Editor := TEditorForm.Create(Self);
3794          Editor.SetThreadItem(Item);          Editor.SetThreadItem(Item);
3795          Editor.Show;          Editor.Show;
3796            Editor.BodyEdit.SetFocus;
3797  end;  end;
3798    
3799  procedure TGikoForm.IEActionExecute(Sender: TObject);  procedure TGikoForm.IEActionExecute(Sender: TObject);
# Line 3645  begin Line 3823  begin
3823          GikoSys.OpenBrowser(URL, gbtAuto);          GikoSys.OpenBrowser(URL, gbtAuto);
3824  end;  end;
3825    
3826    //(Thread)URLをコピー
3827  procedure TGikoForm.URLCopyActionExecute(Sender: TObject);  procedure TGikoForm.URLCopyActionExecute(Sender: TObject);
3828  var  var
3829          s: string;          s: string;
# Line 3658  begin Line 3837  begin
3837                  Clipboard.AsText := s;                  Clipboard.AsText := s;
3838  end;  end;
3839    
3840    //(Thread)スレッド名をコピー
3841    procedure TGikoForm.NameCopyActionExecute(Sender: TObject);
3842    var
3843            s: string;
3844    begin
3845            s := '';
3846            if TObject(GetActiveContent) is TBoard then
3847                    s := s + TBoard(GetActiveContent).Title + #13#10
3848            else if TObject(GetActiveContent) is TThreadItem then
3849                    s := s + TThreadItem(GetActiveContent).Title + #13#10;
3850            if s <> '' then
3851                    Clipboard.AsText := s;
3852    end;
3853    
3854    //(Thread)スレッド名とURLをコピー
3855  procedure TGikoForm.NameURLCopyActionExecute(Sender: TObject);  procedure TGikoForm.NameURLCopyActionExecute(Sender: TObject);
3856  var  var
3857          s: string;          s: string;
# Line 3775  begin Line 3969  begin
3969          UpFolderAction.Enabled := not (GetActiveList is TBBS2ch);          UpFolderAction.Enabled := not (GetActiveList is TBBS2ch);
3970  end;  end;
3971    
3972    procedure TGikoForm.ThreadEditorActionUpdate(Sender: TObject);
3973    begin
3974            ThreadEditorAction.Enabled := (GetActiveList is TBoard);
3975    end;
3976    
3977  procedure TGikoForm.FormResize(Sender: TObject);  procedure TGikoForm.FormResize(Sender: TObject);
3978  begin  begin
3979          MessageListView.Column[0].Width := MessageListView.ClientWidth - 32;          MessageListView.Column[0].Width := MessageListView.ClientWidth - 32;
# Line 3834  begin Line 4033  begin
4033          URLCopyAction.Enabled := GetActiveContent <> nil;          URLCopyAction.Enabled := GetActiveContent <> nil;
4034  end;  end;
4035    
4036    procedure TGikoForm.NameCopyActionUpdate(Sender: TObject);
4037    begin
4038            NameCopyAction.Enabled := GetActiveContent <> nil;
4039    end;
4040    
4041  procedure TGikoForm.NameURLCopyActionUpdate(Sender: TObject);  procedure TGikoForm.NameURLCopyActionUpdate(Sender: TObject);
4042  begin  begin
4043          NameURLCopyAction.Enabled := GetActiveContent <> nil;          NameURLCopyAction.Enabled := GetActiveContent <> nil;
# Line 4012  begin Line 4216  begin
4216          Editor.SetThreadItem(Item);          Editor.SetThreadItem(Item);
4217          Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;          Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
4218          Editor.Show;          Editor.Show;
4219            Editor.BodyEdit.SetFocus;
4220  end;  end;
4221    
4222  procedure TGikoForm.ListPopupMenuPopup(Sender: TObject);  procedure TGikoForm.ListPopupMenuPopup(Sender: TObject);
# Line 4038  begin Line 4243  begin
4243          AddRoundNameMenu(ListReservPMenu);          AddRoundNameMenu(ListReservPMenu);
4244  end;  end;
4245    
4246    procedure TGikoForm.BoardIEActionExecute(Sender: TObject);
4247    var
4248            URL: string;
4249    begin
4250            if GetActiveList is TBoard then begin
4251                    URL := TBoard(GetActiveList).URL;
4252                    GikoSys.OpenBrowser(URL, gbtAuto);
4253            end;
4254    end;
4255    
4256  procedure TGikoForm.SelectItemURLCopyActionExecute(Sender: TObject);  procedure TGikoForm.SelectItemURLCopyActionExecute(Sender: TObject);
4257  var  var
4258          List: TList;          List: TList;
# Line 4049  begin Line 4264  begin
4264          try          try
4265                  SelectListItem(List);                  SelectListItem(List);
4266                  for i := 0 to List.Count - 1 do begin                  for i := 0 to List.Count - 1 do begin
 //                      if s <> '' then s := s + #13#10;  
4267                          if TObject(List[i]) is TBoard then                          if TObject(List[i]) is TBoard then
4268                                  s := s + TBoard(List[i]).URL + #13#10                                  s := s + TBoard(List[i]).URL + #13#10
4269                          else if TObject(List[i]) is TThreadItem then                          else if TObject(List[i]) is TThreadItem then
# Line 4062  begin Line 4276  begin
4276          end;          end;
4277  end;  end;
4278    
4279    procedure TGikoForm.SelectItemNameCopyActionExecute(Sender: TObject);
4280    var
4281            List: TList;
4282            i: Integer;
4283            s: string;
4284    begin
4285            s := '';
4286            List := TList.Create;
4287            try
4288                    SelectListItem(List);
4289                    for i := 0 to List.Count - 1 do begin
4290                            if TObject(List[i]) is TBoard then
4291                                    s := s + TBoard(List[i]).Title + #13#10
4292                            else if TObject(List[i]) is TThreadItem then
4293                                    s := s + TThreadItem(List[i]).Title + #13#10;
4294                    end;
4295                    if s <> '' then
4296                            Clipboard.AsText := s;
4297            finally
4298                    List.Free;
4299            end;
4300    end;
4301    
4302  procedure TGikoForm.SelectItemNameURLCopyActionExecute(Sender: TObject);  procedure TGikoForm.SelectItemNameURLCopyActionExecute(Sender: TObject);
4303  var  var
4304          List: TList;          List: TList;
# Line 4073  begin Line 4310  begin
4310          try          try
4311                  SelectListItem(List);                  SelectListItem(List);
4312                  for i := 0 to List.Count - 1 do begin                  for i := 0 to List.Count - 1 do begin
 //                      if s <> '' then s := s + #13#10;  
4313                          if TObject(List[i]) is TBoard then                          if TObject(List[i]) is TBoard then
4314                                  s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10                                  s := s + TBoard(List[i]).Title + #13#10 + TBoard(List[i]).URL + #13#10
4315                          else if TObject(List[i]) is TThreadItem then                          else if TObject(List[i]) is TThreadItem then
# Line 4086  begin Line 4322  begin
4322          end;          end;
4323  end;  end;
4324    
4325    procedure TGikoForm.BoardIEActionUpdate(Sender: TObject);
4326    begin
4327            if GetActiveList is TBoard then
4328                    BoardIEAction.Enabled := True
4329            else
4330                    BoardIEAction.Enabled := False;
4331    end;
4332    
4333  procedure TGikoForm.SelectItemURLCopyActionUpdate(Sender: TObject);  procedure TGikoForm.SelectItemURLCopyActionUpdate(Sender: TObject);
4334  begin  begin
4335          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
# Line 4094  begin Line 4338  begin
4338                  SelectItemURLCopyAction.Enabled := False;                  SelectItemURLCopyAction.Enabled := False;
4339  end;  end;
4340    
4341    procedure TGikoForm.SelectItemNameCopyActionUpdate(Sender: TObject);
4342    begin
4343            if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
4344                    SelectItemNameCopyAction.Enabled := True
4345            else
4346                    SelectItemNameCopyAction.Enabled := False;
4347    end;
4348    
4349  procedure TGikoForm.SelectItemNameURLCopyActionUpdate(Sender: TObject);  procedure TGikoForm.SelectItemNameURLCopyActionUpdate(Sender: TObject);
4350  begin  begin
4351          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then          if ((GetActiveList is TBoard) or (GetActiveList is TCategory))and (ListView.SelCount > 0) then
# Line 4374  begin Line 4626  begin
4626          if GikoSys.Setting.ListOrientation = gloHorizontal then begin          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
4627                  if ViewPanel.Width < 2 then begin                  if ViewPanel.Width < 2 then begin
4628                          ViewPanel.Width := 1;                          ViewPanel.Width := 1;
4629                          BrowserMaxAction.ImageIndex := ICON_WIDTH_NORMAL;                          BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
4630                          BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                          BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
4631                          GikoSys.Setting.ListWidthState := glsMax;                          GikoSys.Setting.ListWidthState := glsMax;
4632                  end else if ViewPanel.Width > (ThreadMainPanel.Width - 80) then begin                  end else if ViewPanel.Width > (ThreadMainPanel.Width - 80) then begin
4633                          BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                          BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
4634                          BrowserMinAction.ImageIndex := ICON_WIDTH_NORMAL;                          BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
4635                          GikoSys.Setting.ListWidthState := glsMin;                          GikoSys.Setting.ListWidthState := glsMin;
4636                  end else begin                  end else begin
4637                          BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                          BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
4638                          BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                          BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
4639                          GikoSys.Setting.ListWidthState := glsNormal;                          GikoSys.Setting.ListWidthState := glsNormal;
4640                  end;                  end;
4641          end else begin          end else begin
4642                  if ViewPanel.Height < 2 then begin                  if ViewPanel.Height < 2 then begin
4643                          ViewPanel.Height := 1;                          ViewPanel.Height := 1;
4644                          BrowserMaxAction.ImageIndex := ICON_HEIGHT_NORMAL;                          BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
4645                          BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                          BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
4646                          GikoSys.Setting.ListHeightState := glsMax;                          GikoSys.Setting.ListHeightState := glsMax;
4647                  end else if ViewPanel.Height > (ThreadMainPanel.Height - BrowserCoolBar.Height - 7) then begin                  end else if ViewPanel.Height > (ThreadMainPanel.Height - BrowserCoolBar.Height - 7) then begin
4648                          BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                          BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
4649                          BrowserMinAction.ImageIndex := ICON_HEIGHT_NORMAL;                          BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
4650                          GikoSys.Setting.ListHeightState := glsMin;                          GikoSys.Setting.ListHeightState := glsMin;
4651                  end else begin                  end else begin
4652                          BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                          BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
4653                          BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                          BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
4654                          GikoSys.Setting.ListHeightState := glsNormal;                          GikoSys.Setting.ListHeightState := glsNormal;
4655                  end;                  end;
4656          end;          end;
# Line 4816  begin Line 5068  begin
5068                  GikoSys.Setting.ListOrientation := gloHorizontal;                  GikoSys.Setting.ListOrientation := gloHorizontal;
5069                  case GikoSys.Setting.ListWidthState of                  case GikoSys.Setting.ListWidthState of
5070                          glsMax: begin                          glsMax: begin
5071                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_NORMAL;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
5072                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
5073                                  ViewPanel.Width := 1;                                  ViewPanel.Width := 1;
5074                          end;                          end;
5075                          glsNormal: begin                          glsNormal: begin
5076                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
5077                                  BrowserMinAction.ImageIndex := ICON_WIDTH_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_MIN;
5078                          end;                          end;
5079                          glsMin: begin                          glsMin: begin
5080                                  BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
5081                                  BrowserMinAction.ImageIndex := ICON_WIDTH_NORMAL;                                  BrowserMinAction.ImageIndex := TOOL_ICON_WIDTH_NORMAL;
5082                                  ViewPanel.Width := ThreadMainPanel.Width - 80;                                  ViewPanel.Width := ThreadMainPanel.Width - 80;
5083                          end;                          end;
5084                  end;                  end;
# Line 4848  begin Line 5100  begin
5100                  GikoSys.Setting.ListOrientation := gloVertical;                  GikoSys.Setting.ListOrientation := gloVertical;
5101                  case GikoSys.Setting.ListHeightState of                  case GikoSys.Setting.ListHeightState of
5102                          glsMax: begin                          glsMax: begin
5103                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_NORMAL;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
5104                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
5105                                  ViewPanel.Height := 1;                                  ViewPanel.Height := 1;
5106                          end;                          end;
5107                          glsNormal: begin                          glsNormal: begin
5108                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
5109                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_MIN;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_MIN;
5110                          end;                          end;
5111                          glsMin: begin                          glsMin: begin
5112                                  BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                                  BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
5113                                  BrowserMinAction.ImageIndex := ICON_HEIGHT_NORMAL;                                  BrowserMinAction.ImageIndex := TOOL_ICON_HEIGHT_NORMAL;
5114                                  ViewPanel.Height := ThreadMainPanel.Height - BrowserCoolBar.Height - 7;                                  ViewPanel.Height := ThreadMainPanel.Height - BrowserCoolBar.Height - 7;
5115                          end;                          end;
5116                  end;                  end;
# Line 4880  begin Line 5132  begin
5132          end;          end;
5133          if GikoSys.Setting.ListOrientation = gloHorizontal then begin          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
5134                  if GikoSys.Setting.ListHeightState = glsMax then begin                  if GikoSys.Setting.ListHeightState = glsMax then begin
5135                          BrowserMaxAction.ImageIndex := ICON_HEIGHT_MAX;                          BrowserMaxAction.ImageIndex := TOOL_ICON_HEIGHT_MAX;
5136                          GikoSys.Setting.ListHeightState := glsNormal;                          GikoSys.Setting.ListHeightState := glsNormal;
5137                  end;                  end;
5138          end else begin          end else begin
5139                  if GikoSys.Setting.ListWidthState = glsMax then begin                  if GikoSys.Setting.ListWidthState = glsMax then begin
5140                          BrowserMaxAction.ImageIndex := ICON_WIDTH_MAX;                          BrowserMaxAction.ImageIndex := TOOL_ICON_WIDTH_MAX;
5141                          GikoSys.Setting.ListWidthState := glsNormal;                          GikoSys.Setting.ListWidthState := glsNormal;
5142                  end;                  end;
5143          end;          end;
# Line 4927  begin Line 5179  begin
5179          end;          end;
5180  end;  end;
5181    
 procedure TGikoForm.FormShow(Sender: TObject);  
 begin  
         ShowWindow(Application.Handle, SW_HIDE);  
   
         //FormCreateでやると可視設定が反映されない場合があるのでFormShowでやることにした  
         //ハァ面倒くさ  
         //ツールバー表示  
         StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;  
         StdToolBarVisibleActionExecute(nil);  
         AddressBarVisibleAction.Checked := GikoSys.Setting.AddressBarVisible;  
         AddressBarVisibleActionExecute(nil);  
         LinkBarVisibleAction.Checked := GikoSys.Setting.LinkBarVisible;  
         LinkBarVisibleActionExecute(nil);  
         ListToolBarVisibleAction.Checked := GikoSys.Setting.ListToolBarVisible;  
         ListToolBarVisibleActionExecute(nil);  
         ListNameBarVisibleAction.Checked := GikoSys.Setting.ListNameBarVisible;  
         ListNameBarVisibleActionExecute(nil);  
         BrowserToolBarVisibleAction.Checked := GikoSys.Setting.BrowserToolBarVisible;  
         BrowserToolBarVisibleActionExecute(nil);  
         BrowserNameBarVisibleAction.Checked := GikoSys.Setting.BrowserNameBarVisible;  
         BrowserNameBarVisibleActionExecute(nil);  
   
         //ブラウザタブ  
         BrowserTabVisibleAction.Checked := GikoSys.Setting.BrowserTabVisible;  
         BrowserTabVisibleActionExecute(nil);  
   
         if GikoSys.Setting.BrowserTabPosition = gtpTop then begin  
                 BrowserTabTopAction.Checked := True;  
                 BrowserTabTopActionExecute(nil);  
         end else begin  
                 BrowserTabBottomAction.Checked := True;  
                 BrowserTabBottomActionExecute(nil);  
         end;  
   
         if GikoSys.Setting.BrowserTabStyle = gtsTab then begin  
                 BrowserTabTabStyleAction.Checked := True;  
                 BrowserTabTabStyleActionExecute(nil);  
         end else if GikoSys.Setting.BrowserTabStyle = gtsButton then begin  
                 BrowserTabButtonStyleAction.Checked := True;  
                 BrowserTabButtonStyleActionExecute(nil);  
         end else begin  
                 BrowserTabFlatStyleAction.Checked := True;  
                 BrowserTabFlatStyleActionExecute(nil);  
         end;  
   
         //シェブロンの表示設定  
         LinkBarPanelResize(Sender);  
 end;  
   
5182  procedure TGikoForm.BrowserTabToolBarResize(Sender: TObject);  procedure TGikoForm.BrowserTabToolBarResize(Sender: TObject);
5183  begin  begin
5184          if BrowserTab.Parent = BrowserTabToolBar then          if BrowserTab.Parent = BrowserTabToolBar then
# Line 4985  end; Line 5188  end;
5188  procedure TGikoForm.SelectTextClearActionExecute(Sender: TObject);  procedure TGikoForm.SelectTextClearActionExecute(Sender: TObject);
5189  begin  begin
5190          GikoSys.Setting.SelectTextList.Clear;          GikoSys.Setting.SelectTextList.Clear;
5191            SelectComboBox.Items.Clear;
5192            SelectComboBox.Text := '';
5193            SetListViewType( gvtAll );
5194  end;  end;
5195    
5196  procedure TGikoForm.NameTextClearActionExecute(Sender: TObject);  procedure TGikoForm.NameTextClearActionExecute(Sender: TObject);
# Line 5128  begin Line 5334  begin
5334                  MenuItem.Add(NewMenu);                  MenuItem.Add(NewMenu);
5335    
5336                  if TObject(Node.Item[i].Data) is TFavoriteFolder then begin                  if TObject(Node.Item[i].Data) is TFavoriteFolder then begin
5337                          NewMenu.ImageIndex := 30;                          NewMenu.ImageIndex := TOOL_ICON_FAV_FOLDER;
5338                          CreateFavMenu(Node.Item[i], NewMenu);                          CreateFavMenu(Node.Item[i], NewMenu);
5339                  end else if TObject(Node.Item[i].Data) is TFavoriteBoardItem then begin                  end else if TObject(Node.Item[i].Data) is TFavoriteBoardItem then begin
5340                          NewMenu.ImageIndex := 31;                          NewMenu.ImageIndex := TOOL_ICON_FAV_BOARD;
5341                          NewMenu.OnClick := FavoriteClick;                          NewMenu.OnClick := FavoriteClick;
5342                  end else if TObject(Node.Item[i].Data) is TFavoriteThreadItem then begin                  end else if TObject(Node.Item[i].Data) is TFavoriteThreadItem then begin
5343                          NewMenu.ImageIndex := 32;                          NewMenu.ImageIndex := TOOL_ICON_FAV_THREAD;
5344                          NewMenu.OnClick := FavoriteClick;                          NewMenu.OnClick := FavoriteClick;
5345                  end;                  end;
5346          end;          end;
# Line 5176  begin Line 5382  begin
5382                  if Board <> nil then begin                  if Board <> nil then begin
5383                          if not Board.IsThreadDatRead then                          if not Board.IsThreadDatRead then
5384                                  GikoSys.ReadSubjectFile(Board);                                  GikoSys.ReadSubjectFile(Board);
5385                          SelectTreeNode(Board);                          SelectTreeNode(Board, True);
5386                  end;                  end;
5387          end else if TObject(Item) is TFavoriteThreadItem then begin          end else if TObject(Item) is TFavoriteThreadItem then begin
5388                  FavThread := TFavoriteThreadItem(Item);                  FavThread := TFavoriteThreadItem(Item);
# Line 5387  begin Line 5593  begin
5593          Message.Result := 1;          Message.Result := 1;
5594  end;  end;
5595    
5596    procedure TGikoForm.WndProc(var Message: TMessage);
5597    begin
5598            if (Message.Msg = CM_DIALOGCHAR) then
5599                    if not (ssAlt in KeyDataToShiftState(TWMChar(Message).KeyData)) then
5600                            Exit;
5601            inherited;
5602    end;
5603    
5604  procedure TGikoForm.FormShortCut(var Msg: TWMKey; var Handled: Boolean);  procedure TGikoForm.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
5605  var  var
5606          hComboEdit: THandle;          hComboEdit: THandle;
5607            KeyData: Integer;
5608  begin  begin
5609          Handled := False;          Handled := False;
5610          if AddressComboBox.Focused then begin          if AddressComboBox.Focused or SelectComboBox.Focused then begin
5611                  if Msg.CharCode in [VK_BACK] then begin                  if Msg.CharCode in [VK_BACK] then begin
5612                          hComboEdit := GetFocus;                          hComboEdit := GetFocus;
5613                          if hComboEdit <> 0 then                          if hComboEdit <> 0 then
# Line 5406  begin Line 5621  begin
5621                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);                                  SendMessage(hComboEdit, WM_KEYDOWN, Msg.CharCode, Msg.KeyData);
5622                          Handled := True;                          Handled := True;
5623                  end;                  end;
5624    {       end else begin
5625                    //メニューのファイル(F)とかでFを単体で押したときに選択されてしまう現象を回避
5626                    KeyData := Msg.KeyData;
5627                    if (KeyData and $20000000) = 0 then begin
5628                            if Msg.CharCode in [Ord('F'), Ord('V'), Ord('B'), Ord('R'),
5629                                                                                                            Ord('A'), Ord('T'), Ord('H')] then begin
5630                                    if not ActionList.IsShortCut(Msg) then begin
5631                                            Handled := True;
5632                                    end;
5633                            end;
5634                    end;}
5635          end;          end;
5636  end;  end;
5637    
# Line 5798  begin Line 6024  begin
6024                  FHint.Font.Size := GikoSys.Setting.HintFontSize;                  FHint.Font.Size := GikoSys.Setting.HintFontSize;
6025                  FHint.Font.Color := GikoSys.Setting.HintFontColor;                  FHint.Font.Color := GikoSys.Setting.HintFontColor;
6026                  FHint.Color := GikoSys.Setting.HintBackColor;                  FHint.Color := GikoSys.Setting.HintBackColor;
6027                    FHint.HeaderBold := GikoSys.Setting.ResPopupHeaderBold;
6028                  GetCursorpos(p);                  GetCursorpos(p);
6029                  if FHint.PopupType = gptRaw then                  if FHint.PopupType = gptRaw then
6030                          ARect := FHint.CalcHintRect(Screen.Width, FHint.Caption, nil)                          ARect := FHint.CalcHintRect(Screen.Width, FHint.Caption, nil)
# Line 5841  begin Line 6068  begin
6068                  Exit;                  Exit;
6069          end;          end;
6070          ShellExecute(Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);          ShellExecute(Handle, 'open', PChar(FileName), '', PChar(GikoSys.GetAppDir), SW_SHOW);
 //      GikoSys.CreateProcess(FileName, '');  
6071  end;  end;
6072    
6073  procedure TGikoForm.ToolButton18Click(Sender: TObject);  procedure TGikoForm.ToolButton18Click(Sender: TObject);
# Line 5874  begin Line 6100  begin
6100          MainCoolBar.Bands.BeginUpdate;          MainCoolBar.Bands.BeginUpdate;
6101          try          try
6102                  LinkBarPopupMenu.Items.Clear;                  LinkBarPopupMenu.Items.Clear;
6103                  for i := LinkToolBar.ButtonCount - 1 downto 0 do begin                  for i := LinkToolBar.ButtonCount - 1 downto 0 do
 //                      if LinkToolBar.Buttons[i].MenuItem <> nil then begin  
 //                              LinkToolBar.Buttons[i].MenuItem.Clear;  
 //                              LinkToolBar.Buttons[i].MenuItem.Free;  
 //                      end;  
6104                          LinkToolBar.RemoveControl(LinkToolBar.Buttons[i]);                          LinkToolBar.RemoveControl(LinkToolBar.Buttons[i]);
                 end;  
6105                  for i := 0 to FavoriteTreeView.Items.Count - 1 do begin                  for i := 0 to FavoriteTreeView.Items.Count - 1 do begin
6106                          if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin                          if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin
6107                                  for j := 0 to FavoriteTreeView.Items[i].Count - 1 do begin                                  for j := 0 to FavoriteTreeView.Items[i].Count - 1 do begin
# Line 5890  begin Line 6111  begin
6111                                                  CreateFavMenu(FavoriteTreeView.Items[i].Item[j], MenuItem);                                                  CreateFavMenu(FavoriteTreeView.Items[i].Item[j], MenuItem);
6112                                                  LinkBarPopupMenu.Items.Add(MenuItem);                                                  LinkBarPopupMenu.Items.Add(MenuItem);
6113                                                  ToolButton.MenuItem := MenuItem;                                                  ToolButton.MenuItem := MenuItem;
6114                                                  ToolButton.ImageIndex := 30;                                                  ToolButton.ImageIndex := TOOL_ICON_FAV_FOLDER;
6115                                          end else if TObject(FavoriteTreeView.Items[i].Item[j].Data) is TFavoriteBoardItem then begin                                          end else if TObject(FavoriteTreeView.Items[i].Item[j].Data) is TFavoriteBoardItem then begin
6116                                                  ToolButton.ImageIndex := 31;                                                  ToolButton.ImageIndex := TOOL_ICON_FAV_BOARD;
6117                                                  ToolButton.OnClick := FavoriteClick;                                                  ToolButton.OnClick := FavoriteClick;
6118                                          end else if TObject(FavoriteTreeView.Items[i].Item[j].Data) is TFavoriteThreadItem then begin                                          end else if TObject(FavoriteTreeView.Items[i].Item[j].Data) is TFavoriteThreadItem then begin
6119                                                  ToolButton.ImageIndex := 32;                                                  ToolButton.ImageIndex := TOOL_ICON_FAV_THREAD;
6120                                                  ToolButton.OnClick := FavoriteClick;                                                  ToolButton.OnClick := FavoriteClick;
6121                                          end;                                          end;
6122                                          ToolButton.Caption := FavoriteTreeView.Items[i].Item[j].Text;                                          ToolButton.Caption := FavoriteTreeView.Items[i].Item[j].Text;
# Line 5907  begin Line 6128  begin
6128                                  break;                                  break;
6129                          end;                          end;
6130                  end;                  end;
6131                  if LinkToolBar.ButtonCount = 0 then begin  {               if LinkToolBar.ButtonCount = 0 then begin
6132                          ToolButton := TLinkToolButton.Create(LinkToolBar);                          ToolButton := TLinkToolButton.Create(LinkToolBar);
6133                          ToolButton.Style := tbsButton;                          ToolButton.Style := tbsButton;
6134                          ToolButton.ImageIndex := -1;                          ToolButton.ImageIndex := -1;
6135                          ToolButton.Caption := '';                          ToolButton.Caption := '';
6136                          LinkToolBar.InsertControl(ToolButton);                          LinkToolBar.InsertControl(ToolButton);
6137                  end;                  end;}
6138          finally          finally
6139                  MainCoolBar.Bands.EndUpdate;                  MainCoolBar.Bands.EndUpdate;
6140          end;          end;
# Line 5928  begin Line 6149  begin
6149                  Result := Result + ToolBar.Buttons[i].Width;                  Result := Result + ToolBar.Buttons[i].Width;
6150  end;  end;
6151    
6152    procedure TGikoForm.MainCoolBarBandInfo(Sender: TObject; var BandInfo: PReBarBandInfoA);
6153    var
6154            Control: TWinControl;
6155    begin
6156            Control := FindControl(BandInfo^.hwndChild);
6157            if (Control = MenuToolBar) or (Control = StdToolBar) or (Control = LinkToolBar) then begin
6158                    BandInfo^.fMask := BandInfo.fMask or RBBIM_STYLE or RBBIM_IDEALSIZE;
6159                    BandInfo^.fStyle := BandInfo.fStyle or RBBS_USECHEVRON;
6160                    BandInfo^.cxIdeal := GetWidthAllToolButton(TToolBar(Control));
6161            end;
6162    end;
6163    
6164  procedure TGikoForm.LinkBarPanelResize(Sender: TObject);  procedure TGikoForm.MainCoolBarChevronClick(Sender: TObject; RebarChevron: PNMRebarChevron);
6165    var
6166            Idx: Integer;
6167            p: TPoint;
6168    begin
6169            ChevronPopupMenu.Items.Clear;
6170            Idx := RebarChevron^.uBand;
6171            if (Idx >= 0) and (MainCoolBar.Bands.Count > Idx) then begin
6172                    if MainCoolBar.Bands[Idx].Control = MenuToolbar then begin
6173                            MenuBarChevronMenu;
6174                    end else if MainCoolBar.Bands[Idx].Control = StdToolbar then begin
6175                            ToolBarChevronMenu(StdToolBar);
6176                    end else if MainCoolBar.Bands[Idx].Control = LinkToolbar then begin
6177                            LinkBarChevronMenu;
6178                    end else
6179                            Exit;
6180                    p := MainCoolBar.ClientToScreen(Point(RebarChevron^.rc.left, RebarChevron^.rc.bottom));
6181                    ChevronPopupMenu.Popup(p.x, p.y);
6182            end;
6183    end;
6184    
6185    procedure TGikoForm.MenuBarChevronMenu;
6186            procedure SetSubMenu(MenuItem: TMenuItem; PopupItem: TMenuItem);
6187            var
6188                    i: Integer;
6189                    Item: TMenuItem;
6190            begin
6191                    MenuItem.Click;
6192                    for i := 0 to MenuItem.Count - 1 do begin
6193                            Item := nil;
6194                            if MenuItem[i] is TFavoriteMenuItem then begin
6195                                    Item := TFavoriteMenuItem.Create(Self);
6196                                    TFavoriteMenuItem(Item).Data := TFavoriteMenuItem(MenuItem[i]).Data;
6197                            end else
6198                                    Item := TMenuItem.Create(Self);
6199                            Item.Caption := MenuItem[i].Caption;
6200                            Item.Action := MenuItem[i].Action;
6201                            Item.ImageIndex := MenuItem[i].ImageIndex;
6202                            Item.OnClick := MenuItem[i].OnClick;
6203                            PopupItem.Add(Item);
6204                            if MenuItem[i].Count > 0 then
6205                                    SetSubMenu(MenuItem[i], Item);
6206                    end;
6207            end;
6208  var  var
6209          i: Integer;          i: Integer;
6210          //w: Integer;          w: Integer;
6211          pw: Integer;          bw: Integer;
6212            Item: TMenuItem;
6213  begin  begin
6214          pw := LinkBarPanel.Width;          ChevronPopupMenu.Items.Clear;
6215          if LinkChevronToolBar.Visible then          ChevronPopupMenu.Images := MainMenu.Images;
6216                  pw := pw - LinkChevronToolBar.Width;          bw := GetWidthAllToolButton(MenuToolBar);
6217          LinkChevronToolBar.Visible := pw < GetWidthAllToolButton(LinkToolBar);          if MenuToolBar.Width < bw then begin
6218          //w := 0;                  w := 0;
6219          //for i := 0 to LinkToolBar.ButtonCount - 1 do begin                  for i := 0 to MenuToolBar.ButtonCount - 1 do begin
6220          //      w := w + LinkToolBar.Buttons[i].Width;                          w := w + MenuToolBar.Buttons[i].Width;
6221          //      LinkToolBar.Buttons[i].Visible := (w <= pw);                          if MenuToolBar.Width <= w then begin
6222          //end;                                  Item := TMenuItem.Create(Self);
6223                                    Item.Caption := MenuToolBar.Buttons[i].MenuItem.Caption;
6224                                    //Item.Action := MenuToolBar.Buttons[i].MenuItem.Action;
6225                                    ChevronPopupMenu.Items.Add(Item);
6226                                    SetSubMenu(MenuToolbar.Buttons[i].MenuItem, Item);
6227                            end;
6228                    end;
6229            end;
6230    end;
6231    
6232    procedure TGikoForm.ToolBarChevronMenu(ToolBar: TToolBar);
6233            procedure SetSubMenu(PopupMenu: TPopupMenu; PopupItem: TMenuItem);
6234            var
6235                    i: Integer;
6236                    Item: TMenuItem;
6237            begin
6238                    if Assigned(PopupMenu.OnPopup) then
6239                            PopupMenu.OnPopup(nil);
6240                    for i := 0 to PopupMenu.Items.Count - 1 do begin
6241                            Item := nil;
6242                            if PopupMenu.Items[i] is TFavoriteMenuItem then begin
6243                                    Item := TFavoriteMenuItem.Create(Self);
6244                                    TFavoriteMenuItem(Item).Data := TFavoriteMenuItem(PopupMenu.Items[i]).Data;
6245                            end else
6246                                    Item := TMenuItem.Create(Self);
6247                            Item.Caption := PopupMenu.Items[i].Caption;
6248                            Item.Action := PopupMenu.Items[i].Action;
6249                            Item.ImageIndex := PopupMenu.Items[i].ImageIndex;
6250                            Item.OnClick := PopupMenu.Items[i].OnClick;
6251                            PopupItem.Add(Item);
6252                    end;
6253            end;
6254    var
6255            i: Integer;
6256            w: Integer;
6257            bw: Integer;
6258            Item: TMenuItem;
6259    begin
6260            ChevronPopupMenu.Items.Clear;
6261            ChevronPopupMenu.Images := ToolBar.HotImages;
6262            bw := GetWidthAllToolButton(ToolBar);
6263            if ToolBar.Width < bw then begin
6264                    w := 0;
6265                    for i := 0 to ToolBar.ButtonCount - 1 do begin
6266                            w := w + ToolBar.Buttons[i].Width;
6267                            if ToolBar.Width <= w then begin
6268                                    Item := TMenuItem.Create(Self);
6269                                    if ToolBar.Buttons[i].Style = tbsSeparator then
6270                                            Item.Caption := '-'
6271                                    else begin
6272                                            Item.Caption := ToolBar.Buttons[i].Caption;
6273                                            Item.Action := ToolBar.Buttons[i].Action;
6274                                    end;
6275                                    ChevronPopupMenu.Items.Add(Item);
6276                                    if ToolBar.Buttons[i].DropdownMenu <> nil then begin
6277                                            Item.Action := nil;
6278                                            Item.OnClick := nil;
6279                                            SetSubMenu(ToolBar.Buttons[i].DropdownMenu, Item);
6280                                    end;
6281                            end;
6282                    end;
6283            end;
6284  end;  end;
6285    
6286  procedure TGikoForm.ChevronLinkMenuItemClick(Sender: TObject);  procedure TGikoForm.LinkBarChevronMenu;
6287  var  var
6288          i: Integer;          i: Integer;
6289          j: Integer;          j: Integer;
# Line 5955  var Line 6292  var
6292          bw: Integer;          bw: Integer;
6293          Button: TLinkToolButton;          Button: TLinkToolButton;
6294  begin  begin
6295          ChevronLinkMenuItem.Clear;          ChevronPopupMenu.Items.Clear;
6296            ChevronPopupMenu.Images := LinkToolBar.Images;
6297          bw := GetWidthAllToolButton(LinkToolBar);          bw := GetWidthAllToolButton(LinkToolBar);
6298          if LinkBarPanel.Width < bw then begin          if LinkToolBar.Width < bw then begin
6299                  w := 0;                  w := 0;
6300                  for i := 0 to FavoriteTreeView.Items.Count - 1 do begin                  for i := 0 to FavoriteTreeView.Items.Count - 1 do begin
6301                          if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin                          if FavoriteTreeView.Items[i].Text = Favorite.FAVORITE_LINK_NAME then begin
6302                                  for j := 0 to FavoriteTreeView.Items[i].Count - 1 do begin                                  for j := 0 to FavoriteTreeView.Items[i].Count - 1 do begin
                 //              for i := 0 to LinkToolBar.ButtonCount - 1 do begin  
6303                                          w := w + LinkToolBar.Buttons[j].Width;                                          w := w + LinkToolBar.Buttons[j].Width;
6304                                          if (LinkBarPanel.Width - LinkChevronToolBar.Width) <= w then begin                                          if LinkToolBar.Width <= w then begin
6305                                                  if LinkToolBar.Buttons[j] is TLinkToolButton then begin                                                  if LinkToolBar.Buttons[j] is TLinkToolButton then begin
6306                                                          Button := TLinkToolButton(LinkToolBar.Buttons[j]);                                                          Button := TLinkToolButton(LinkToolBar.Buttons[j]);
6307                                                          Item := TFavoriteMenuItem.Create(Self);                                                          Item := TFavoriteMenuItem.Create(Self);
6308                                                          if TObject(Button.Data) is TFavoriteFolder then begin                                                          if TObject(Button.Data) is TFavoriteFolder then begin
6309                                                                  CreateFavMenu(FavoriteTreeView.Items[i].Item[j], Item);                                                                  CreateFavMenu(FavoriteTreeView.Items[i].Item[j], Item);
                                                                 //CreateFavMenu(FavoriteTreeView.Items[i].Item[j], MenuItem);  
                                                                 //Item.Add(Button.MenuItem);  
                                                                 //Item.ImageIndex := 30;  
6310                                                          end else if TObject(Button.Data) is TFavoriteBoardItem then begin                                                          end else if TObject(Button.Data) is TFavoriteBoardItem then begin
                                                                 //Item.ImageIndex := 31;  
                                                                 //ToolButton.OnClick := FavoriteClick;  
6311                                                                  Item.OnClick := FavoriteClick;                                                                  Item.OnClick := FavoriteClick;
6312                                                          end else if TObject(Button.Data) is TFavoriteThreadItem then begin                                                          end else if TObject(Button.Data) is TFavoriteThreadItem then begin
                                                                 //Item.ImageIndex := 32;  
                                                                 //ToolButton.OnClick := FavoriteClick;  
6313                                                                  Item.OnClick := FavoriteClick;                                                                  Item.OnClick := FavoriteClick;
6314                                                          end;                                                          end;
6315                                                          Item.Data := Button.Data;                                                          Item.Data := Button.Data;
6316                                                          Item.Caption := LinkToolBar.Buttons[j].Caption;                                                          Item.Caption := LinkToolBar.Buttons[j].Caption;
6317                                                          Item.ImageIndex := LinkToolBar.Buttons[j].ImageIndex;                                                          Item.ImageIndex := LinkToolBar.Buttons[j].ImageIndex;
6318                                                          ChevronLinkMenuItem.Add(Item);                                                          ChevronPopupMenu.Items.Add(Item);
6319                                                  end;                                                  end;
6320                                          end;                                          end;
6321                                  end;                                  end;
# Line 5995  begin Line 6325  begin
6325          end;          end;
6326  end;  end;
6327    
6328    procedure TGikoForm.ListCoolBarBandInfo(Sender: TObject; var BandInfo: PReBarBandInfoA);
6329    var
6330            Control: TWinControl;
6331    begin
6332            Control := FindControl(BandInfo^.hwndChild);
6333            if Control = ListToolBar then begin
6334                    BandInfo^.fMask := BandInfo.fMask or RBBIM_STYLE or RBBIM_IDEALSIZE;
6335                    BandInfo^.fStyle := BandInfo.fStyle or RBBS_USECHEVRON;
6336                    BandInfo^.cxIdeal := GetWidthAllToolButton(TToolBar(Control));
6337            end;
6338    end;
6339    
6340    procedure TGikoForm.ListCoolBarChevronClick(Sender: TObject; RebarChevron: PNMRebarChevron);
6341    var
6342            Idx: Integer;
6343            p: TPoint;
6344    begin
6345            ChevronPopupMenu.Items.Clear;
6346            Idx := RebarChevron^.uBand;
6347            if (Idx >= 0) and (ListCoolBar.Bands.Count > Idx) then begin
6348                    if ListCoolBar.Bands[Idx].Control = ListToolBar then begin
6349                            ToolBarChevronMenu(ListToolBar);
6350                    end else
6351                            Exit;
6352                    p := ListCoolBar.ClientToScreen(Point(RebarChevron^.rc.left, RebarChevron^.rc.bottom));
6353                    ChevronPopupMenu.Popup(p.x, p.y);
6354            end;
6355    end;
6356    
6357    procedure TGikoForm.BrowserCoolBarBandInfo(Sender: TObject; var BandInfo: PReBarBandInfoA);
6358    var
6359            Control: TWinControl;
6360    begin
6361            Control := FindControl(BandInfo^.hwndChild);
6362            if Control = BrowserToolBar then begin
6363                    BandInfo^.fMask := BandInfo.fMask or RBBIM_STYLE or RBBIM_IDEALSIZE;
6364                    BandInfo^.fStyle := BandInfo.fStyle or RBBS_USECHEVRON;
6365                    BandInfo^.cxIdeal := GetWidthAllToolButton(TToolBar(Control));
6366            end;
6367    end;
6368    
6369    procedure TGikoForm.BrowserCoolBarChevronClick(Sender: TObject; RebarChevron: PNMRebarChevron);
6370    var
6371            Idx: Integer;
6372            p: TPoint;
6373    begin
6374            ChevronPopupMenu.Items.Clear;
6375            Idx := RebarChevron^.uBand;
6376            if (Idx >= 0) and (BrowserCoolBar.Bands.Count > Idx) then begin
6377                    if BrowserCoolBar.Bands[Idx].Control = BrowserToolBar then
6378                            ToolBarChevronMenu(BrowserToolBar)
6379                    else
6380                            Exit;
6381                    p := BrowserCoolBar.ClientToScreen(Point(RebarChevron^.rc.left, RebarChevron^.rc.bottom));
6382                    ChevronPopupMenu.Popup(p.x, p.y);
6383            end;
6384    end;
6385    
6386    procedure TGikoForm.ListViewColumnInfo(Sender: TObject; var Column: PLVColumnA);
6387    begin
6388            if Column^.iImage = -1 then begin
6389                    Column^.mask := Column^.mask or LVCF_FMT;
6390            end else begin
6391                    Column^.mask := Column^.mask or LVCF_FMT or LVCF_IMAGE;
6392                    Column^.fmt := Column^.fmt or LVCFMT_IMAGE or LVCFMT_BITMAP_ON_RIGHT;
6393            end;
6394    end;
6395    
6396    procedure TGikoForm.ThreadEditorActionExecute(Sender: TObject);
6397    var
6398            Editor: TEditorForm;
6399    begin
6400            if not (GetActiveList is TBoard) then
6401                    Exit;
6402            Editor := TEditorForm.Create(Self);
6403            Editor.SetBoard(TBoard(GetActiveList));
6404            Editor.Show;
6405            Editor.BodyEdit.SetFocus;
6406    end;
6407    
6408    procedure TGikoForm.ToolBarSettingActionExecute(Sender: TObject);
6409    var
6410            Dlg: TToolBarSettingDialog;
6411            i: Integer;
6412    begin
6413            Dlg := TToolBarSettingDialog.Create(Self, ActionList);
6414            try
6415                    Dlg.AddToolBar(StdToolBar, gttStandard);
6416                    Dlg.AddToolBar(ListToolBar, gttList);
6417                    Dlg.AddToolBar(BrowserToolBar, gttBrowser);
6418                    if Dlg.ShowModal = mrOK then begin
6419                            SetToolBarPopup;
6420    
6421                            //最適幅を再設定するために適当なプロパティをいじくる
6422                            for i := 0 to MainCoolBar.Bands.Count - 1 do begin
6423                                    MainCoolBar.Bands[i].MinWidth := MainCoolBar.Bands[i].MinWidth + 1;
6424                                    MainCoolBar.Bands[i].MinWidth := MainCoolBar.Bands[i].MinWidth - 1;
6425                            end;
6426                            for i := 0 to ListCoolBar.Bands.Count - 1 do begin
6427                                    ListCoolBar.Bands[i].MinWidth := ListCoolBar.Bands[i].MinWidth + 1;
6428                                    ListCoolBar.Bands[i].MinWidth := ListCoolBar.Bands[i].MinWidth - 1;
6429                            end;
6430                            for i := 0 to BrowserCoolBar.Bands.Count - 1 do begin
6431                                    BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth + 1;
6432                                    BrowserCoolBar.Bands[i].MinWidth := BrowserCoolBar.Bands[i].MinWidth - 1;
6433                            end;
6434                            SaveToolBarSetting(StdToolBar);
6435                            SaveToolBarSetting(ListToolBar);
6436                            SaveToolBarSetting(BrowserToolBar);
6437                    end;
6438            finally
6439                    Dlg.Release;
6440            end;
6441    end;
6442    
6443    procedure TGikoForm.SetToolBarPopup;
6444    var
6445            i: Integer;
6446    begin
6447            for i := 0 to StdToolBar.ButtonCount - 1 do begin
6448            end;
6449            for i := 0 to ListToolBar.ButtonCount - 1 do begin
6450                    if ListToolBar.Buttons[i].Action = IconStyle then
6451                            ListToolBar.Buttons[i].DropdownMenu := ListIconPopupMenu;
6452                    if ListToolBar.Buttons[i].Action = SelectReservAction then
6453                            ListToolBar.Buttons[i].DropdownMenu := RoundNamePopupMenu;
6454            end;
6455            for i := 0 to BrowserToolBar.ButtonCount - 1 do begin
6456                    if BrowserToolBar.Buttons[i].Action = IEAction then
6457                            BrowserToolBar.Buttons[i].DropdownMenu := BrowserPopupMenu;
6458            end;
6459    end;
6460    
6461    procedure TGikoForm.FormMouseWheel(Sender: TObject; Shift: TShiftState;
6462            WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
6463    var
6464            Wnd: THandle;
6465            delta: Integer;
6466    begin
6467            Handled := False;
6468            Wnd := WindowFromPoint(MousePos);
6469            if (Wnd = BrowserTab.Handle) or
6470                     (Wnd = BrowserTab.Parent.Handle) then begin
6471                    if WheelDelta > 0 then
6472                            Delta := -1
6473                    else
6474                            Delta := 1;
6475                    BrowserTab.ScrollTabs(Delta);
6476                    Handled := True;
6477            end;
6478    end;
6479    
6480    
6481    procedure TGikoForm.SelectComboBoxChange(Sender: TObject);
6482    var
6483    //      idx: Integer;
6484    //      Dlg: TListSelectDialog;
6485            theType: TGikoViewType;
6486    begin
6487    {
6488    procedure TGikoForm.SelectItemActionExecute(Sender: TObject);
6489    var
6490            idx: Integer;
6491            Dlg: TListSelectDialog;
6492    begin
6493            AllItemAction.Checked := False;
6494            LogItemAction.Checked := False;
6495            NewItemAction.Checked := False;
6496            SelectItemAction.Checked := True;
6497            Dlg := TListSelectDialog.Create(Self);
6498            try
6499                    Dlg.SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
6500                    Dlg.ShowModal;
6501                    if Dlg.ModalResult = mrCancel then begin
6502                            if GetActiveList is TBoard then
6503                                    SetListViewType(gvtUser, TBoard(GetActiveList).ParentCategory.ParentBBS2ch.SelectText , Dlg.KubetsuCheckBox.Checked);
6504                    end else begin
6505                            idx := GikoSys.Setting.SelectTextList.IndexOf(Dlg.SelectComboBox.Text);
6506                            if idx <> -1 then
6507                                    GikoSys.Setting.SelectTextList.Delete(idx);
6508                            GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
6509                            while Dlg.SelectComboBox.Items.Count > 100 do begin
6510                                    Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
6511                            end;
6512                            SetListViewType(gvtUser, Dlg.SelectComboBox.Text, Dlg.KubetsuCheckBox.Checked);
6513                    end;
6514            finally
6515                    Dlg.Release;
6516            end;
6517    end;
6518    }
6519            {AllItemAction.Checked := False;
6520            LogItemAction.Checked := False;
6521            NewItemAction.Checked := False;}
6522            //SelectItemAction.Checked := True;
6523            if AllItemAction.Checked then
6524                    theType := {gvtAll} gvtUser
6525            else if LogItemAction.Checked then
6526                    theType := gvtLog
6527            else if NewItemAction.Checked then
6528                    theType := gvtNew;
6529            //try
6530                    {
6531                    SelectComboBox.Items.Assign(GikoSys.Setting.SelectTextList);
6532                    idx := GikoSys.Setting.SelectTextList.IndexOf(SelectComboBox.Text);
6533                    if idx <> -1 then
6534                            GikoSys.Setting.SelectTextList.Delete(idx);
6535                    GikoSys.Setting.SelectTextList.Insert(0, Dlg.SelectComboBox.Text);
6536                    while Dlg.SelectComboBox.Items.Count > 100 do begin
6537                            Dlg.SelectComboBox.Items.Delete(Dlg.SelectComboBox.Items.Count - 1);
6538                    end;
6539                    }
6540                    if Length( SelectComboBox.Text ) = 0 then
6541                            SetListViewType(theType)
6542                    else
6543                            SetListViewType({gvtUser}theType, SelectComboBox.Text, false);
6544            //end;
6545    end;
6546    
6547    procedure TGikoForm.SelectComboBoxKeyDown(Sender: TObject; var Key: Word;
6548      Shift: TShiftState);
6549    var
6550            idx : Integer;
6551    begin
6552    
6553            if (Key = VK_Return) and (Length( SelectComboBox.Text ) > 0) then
6554            begin
6555                    idx := GikoSys.Setting.SelectTextList.IndexOf( SelectComboBox.Text );
6556                    if idx <> -1 then
6557                            GikoSys.Setting.SelectTextList.Delete( idx );
6558                    idx := SelectComboBox.Items.IndexOf( SelectComboBox.Text );
6559                    if idx <> -1 then
6560                            SelectComboBox.Items.Delete( idx );
6561                    GikoSys.Setting.SelectTextList.Insert( 0, SelectComboBox.Text );
6562                    SelectComboBox.Items.Insert( 0, SelectComboBox.Text );
6563            end;
6564    
6565    end;
6566    
6567    procedure TGikoForm.SelectComboBoxExit(Sender: TObject);
6568    var
6569            idx : Integer;
6570    begin
6571    
6572            idx := GikoSys.Setting.SelectTextList.IndexOf( SelectComboBox.Text );
6573            if idx <> -1 then
6574                    GikoSys.Setting.SelectTextList.Delete( idx );
6575            idx := SelectComboBox.Items.IndexOf( SelectComboBox.Text );
6576            if idx <> -1 then
6577                    SelectComboBox.Items.Delete( idx );
6578            GikoSys.Setting.SelectTextList.Insert( 0, SelectComboBox.Text );
6579            SelectComboBox.Items.Insert( 0, SelectComboBox.Text );
6580    
6581    end;
6582    
6583  initialization  initialization
6584          OleInitialize(nil);          OleInitialize(nil);
6585  finalization  finalization
6586          OleUninitialize;          OleUninitialize;
6587  end.  end.
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26