6 Windows, Messages, SysUtils, Classes, Controls,
7 StdCtrls, ExtCtrls, ComCtrls, ActnList, IniFiles,
11 //
\95W
\8f\80\83c
\81[
\83\8b\83o
\81[
\83f
\83t
\83H
\83\8b\83g
12 DEF_STANDARD: array[0..9] of string = ('RoundAction',
20 'CabinetHistoryAction',
21 'CabinetFavoriteAction');
22 //
\83\8a\83X
\83g
\83c
\81[
\83\8b\83o
\81[
\83f
\83t
\83H
\83\8b\83g
23 DEF_LIST: array[0..16] of string = ('ListNumberVisibleAction',
36 'SelectListReloadAction',
37 'SelectThreadReloadAction',
39 'SelectReservAction');
40 //
\83u
\83\89\83E
\83U
\83c
\81[
\83\8b\83o
\81[
\83f
\83t
\83H
\83\8b\83g
41 DEF_BROWSER: array[0..17] of string = ('BrowserMaxAction',
62 ///
\83{
\83^
\83\93\83X
\83^
\83C
\83\8b\82ª"tbsCheck"
\83{
\83^
\83\93\82Ì
\83A
\83N
\83V
\83\87\83\93
63 CHECK_STYLE: array[0..33] of string = ('CabinetVisibleAction',
70 'StdToolBarVisibleAction',
71 'AddressBarVisibleAction',
72 'LinkBarVisibleAction',
73 'ListToolBarVisibleAction',
74 'ListNameBarVisibleAction',
75 'BrowserToolBarVisibleAction',
76 'BrowserNameBarVisibleAction',
77 'MsgBarVisibleAction',
78 'StatusBarVisibleAction',
79 'CabinetHistoryAction',
80 'CabinetFavoriteAction',
85 'BrowserTabVisibleAction',
86 'BrowserTabTopAction',
87 'BrowserTabBottomAction',
88 'BrowserTabTabStyleAction',
89 'BrowserTabButtonStyleAction',
90 'BrowserTabFlatStyleAction',
92 'ListNumberVisibleAction',
100 ///
\83{
\83^
\83\93\82Ì
\83X
\83^
\83C
\83\8b\82ª"tbsDropDown"
\83{
\83^
\83\93\82Ì
\83A
\83N
\83V
\83\87\83\93
101 /// Giko.pas : SetToolBarPopup
\82à
\8fC
\90³
\82·
\82é
\8e\96
102 DROPDOWN_STYLE: array[0..3] of string = ('IconStyle',
107 INI_FILENAME: string = 'ToolBar.ini';
109 //
\8bæ
\90Ø
\82è
\95¶
\8e\9a
110 SEPARATOR_TEXT = '-
\8bæ
\90Ø
\82è -';
112 function IsCheckStyle(Action: TCustomAction): Boolean;
113 function IsDropDownStyle(Action: TCustomAction): Boolean;
114 procedure SetButtonStyle(Action: TCustomAction; Button: TToolButton);
115 function GetActionItem(ActionList: TActionList; ActionName: string): TCustomAction;
116 procedure ReadToolBarSetting(ActionList: TActionList; ToolBar: TToolBar);
117 procedure SaveToolBarSetting(ToolBar: TToolBar);
118 procedure KeepDefaultToolButton(ToolBar: TToolBar; TmpToolBar: TToolBar);
119 procedure MakeDefaultINIFile();
122 procedure ReadToolBarSetting(ActionList: TActionList; ToolBar: TToolBar);
128 Action: TCustomAction;
129 ToolButton: TToolButton;
131 FileName := GikoSys.GetConfigDir + INI_FILENAME;
132 if FileExists(FileName) then begin
133 for i := ToolBar.ButtonCount - 1 downto 0 do begin
134 ToolBar.RemoveControl(ToolBar.Buttons[i]);
136 ini := TMemIniFile.Create(FileName);
140 s := ini.ReadString(ToolBar.Name, 'Button' + IntToStr(i), '');
141 if s = '-' then begin
142 ToolButton := TToolButton.Create(ToolBar);
143 ToolButton.Style := tbsSeparator;
144 ToolButton.Width := 8;
145 ToolButton.Left := 10000;
146 ToolBar.InsertControl(ToolButton);
147 end else if s <> '' then begin
148 Action := GetActionItem(ActionList, s);
149 if Action <> nil then begin
150 ToolButton := TToolButton.Create(ToolBar);
151 ToolButton.Action := Action;
152 ToolButton.Left := 10000;
153 SetButtonStyle(Action, ToolButton);
154 ToolBar.InsertControl(ToolButton);
166 procedure SaveToolBarSetting(ToolBar: TToolBar);
170 Action: TBasicAction;
172 ini := TMemIniFile.Create(GikoSys.GetConfigDir + INI_FILENAME);
175 ini.EraseSection(ToolBar.Name);
176 for i := 0 to ToolBar.ButtonCount - 1 do begin
177 if ToolBar.Buttons[i].Style = tbsSeparator then begin
178 ini.WriteString(ToolBar.Name, 'Button' + IntToStr(j), '-');
181 Action := ToolBar.Buttons[i].Action;
182 if Action <> nil then
184 ini.WriteString(ToolBar.Name, 'Button' + IntToStr(j), Action.Name);
195 //ActionName
\82ÌAction
\82ð
\95Ô
\82µ
\82Ü
\82·
196 function GetActionItem(ActionList: TActionList; ActionName: string): TCustomAction;
200 for i := 0 to ActionList.ActionCount - 1 do begin
201 if ActionList.Actions[i].Name = ActionName then begin
202 Result := TCustomAction(ActionList.Actions[i]);
209 //
\83c
\81[
\83\8b\83{
\83^
\83\93\82Ì
\83X
\83^
\83C
\83\8b\90Ý
\92è
\82Æ
\83|
\83b
\83v
\83A
\83b
\83v
\90Ý
\92è
210 procedure SetButtonStyle(Action: TCustomAction; Button: TToolButton);
212 if IsCheckStyle(Action) then
213 Button.Style := tbsCheck
214 else if IsDropDownStyle(Action) then
215 Button.Style := tbsDropDown
217 Button.Style := tbsButton;
220 //Action
\82ª
\83`
\83F
\83b
\83N
\83X
\83^
\83C
\83\8b\82Ì
\83A
\83N
\83V
\83\87\83\93\82©
\82Ç
\82¤
\82©
\82ð
\95Ô
\82µ
\82Ü
\82·
221 function IsCheckStyle(Action: TCustomAction): Boolean;
225 for i := 0 to Length(CHECK_STYLE) - 1 do begin
226 if Action.Name = CHECK_STYLE[i] then begin
234 //Action
\82ª
\83h
\83\8d\83b
\83v
\83_
\83E
\83\93\83X
\83^
\83C
\83\8b\82Ì
\83A
\83N
\83V
\83\87\83\93\82©
\82Ç
\82¤
\82©
\82ð
\95Ô
\82µ
\82Ü
\82·
235 function IsDropDownStyle(Action: TCustomAction): Boolean;
239 for i := 0 to Length(DROPDOWN_STYLE) - 1 do begin
240 if Action.Name = DROPDOWN_STYLE[i] then begin
247 procedure KeepDefaultToolButton(ToolBar: TToolBar; TmpToolBar: TToolBar);
251 for i := ToolBar.ButtonCount - 1 downto 0 do begin
252 ToolBar.Buttons[i].Parent := TmpToolBar;
255 procedure MakeDefaultINIFile();
260 //
\95W
\8f\80\83c
\81[
\83\8b\83o
\81[
\83f
\83t
\83H
\83\8b\83g
262 //
\83\8a\83X
\83g
\83c
\81[
\83\8b\83o
\81[
\83f
\83t
\83H
\83\8b\83g
264 //
\83u
\83\89\83E
\83U
\83c
\81[
\83\8b\83o
\81[
\83f
\83t
\83H
\83\8b\83g
266 if not FileExists(GikoSys.GetConfigDir + INI_FILENAME) then begin
267 ini := TMemIniFile.Create(GikoSys.GetConfigDir + INI_FILENAME);
269 for i := 0 to Length(DEF_STANDARD) - 1 do begin
270 if DEF_STANDARD[i] <> '' then
271 ini.WriteString('StdToolBar', 'Button' + IntToStr(i), DEF_STANDARD[i])
273 ini.WriteString('StdToolBar', 'Button' + IntToStr(i), '-');
275 for i := 0 to Length(DEF_LIST) - 1 do begin
276 if DEF_LIST[i] <> '' then
277 ini.WriteString('ListToolBar', 'Button' + IntToStr(i), DEF_LIST[i])
279 ini.WriteString('ListToolBar', 'Button' + IntToStr(i), '-');
281 for i := 0 to Length(DEF_BROWSER) - 1 do begin
282 if DEF_BROWSER[i] <> '' then
283 ini.WriteString('BrowserToolBar', 'Button' + IntToStr(i), DEF_BROWSER[i])
285 ini.WriteString('BrowserToolBar', 'Button' + IntToStr(i), '-');