OSDN Git Service

CoolBarのリサイズを元に戻して、FormDestoryでCoolBarのサイズを保存する。
authorh677 <h677>
Tue, 2 Nov 2004 15:15:11 +0000 (15:15 +0000)
committerh677 <h677>
Tue, 2 Nov 2004 15:15:11 +0000 (15:15 +0000)
Giko.dfm
Giko.pas

index 86a51e2..dd46712 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -1,6 +1,6 @@
 object GikoForm: TGikoForm
-  Left = 171
-  Top = 68
+  Left = 312
+  Top = 57
   HorzScrollBar.Visible = False
   VertScrollBar.Visible = False
   AutoScroll = False
@@ -350,9 +350,7 @@ object GikoForm: TGikoForm
               end>
             EdgeBorders = [ebLeft, ebTop, ebRight]
             EdgeInner = esLowered
-            OnChange = ListCoolBarChange
             OnContextPopup = ListCoolBarContextPopup
-            OnResize = ListCoolBarResize
             OnBandInfo = ListCoolBarBandInfo
             OnChevronClick = ListCoolBarChevronClick
             object ListToolBar: TToolBar
@@ -372,6 +370,7 @@ object GikoForm: TGikoForm
               TabOrder = 0
               Transparent = True
               Wrapable = False
+              OnResize = ListToolBarResize
               object ViewNoButton: TToolButton
                 Left = 0
                 Top = 0
@@ -513,6 +512,7 @@ object GikoForm: TGikoForm
               EdgeBorders = []
               TabOrder = 1
               Transparent = True
+              OnResize = ListToolBarResize
               object FolderImage: TImage
                 Left = 0
                 Top = 2
@@ -622,9 +622,7 @@ object GikoForm: TGikoForm
               end>
             EdgeBorders = [ebLeft, ebTop, ebRight]
             EdgeInner = esLowered
-            OnChange = BrowserCoolBarChange
             OnContextPopup = BrowserCoolBarContextPopup
-            OnResize = BrowserCoolBarResize
             OnBandInfo = BrowserCoolBarBandInfo
             OnChevronClick = BrowserCoolBarChevronClick
             object BrowserToolBar: TToolBar
@@ -644,6 +642,7 @@ object GikoForm: TGikoForm
               TabOrder = 0
               Transparent = True
               Wrapable = False
+              OnResize = BrowserToolBarResize
               object BrowserSizeButton: TToolButton
                 Left = 0
                 Top = 0
@@ -761,6 +760,7 @@ object GikoForm: TGikoForm
               EdgeBorders = []
               TabOrder = 1
               Transparent = True
+              OnResize = BrowserToolBarResize
               object ItemBoardImage: TImage
                 Left = 0
                 Top = 2
@@ -1034,7 +1034,6 @@ object GikoForm: TGikoForm
             Text = #12522#12531#12463
             Width = 814
           end>
-        OnChange = MainCoolBarChange
         OnContextPopup = MainCoolBarContextPopup
         OnResize = MainCoolBarResize
         OnBandInfo = MainCoolBarBandInfo
@@ -1056,6 +1055,7 @@ object GikoForm: TGikoForm
           Transparent = True
           Wrapable = False
           OnCustomDrawButton = MenuToolBarCustomDrawButton
+          OnResize = MenuToolBarResize
         end
         object StdToolBar: TToolBar
           Left = 9
@@ -1075,6 +1075,7 @@ object GikoForm: TGikoForm
           Transparent = True
           Visible = False
           Wrapable = False
+          OnResize = MenuToolBarResize
           object RoundToolButton: TToolButton
             Left = 0
             Top = 0
@@ -1188,6 +1189,7 @@ object GikoForm: TGikoForm
           Wrapable = False
           OnDragDrop = LinkToolBarDragDrop
           OnDragOver = LinkToolBarDragOver
+          OnResize = MenuToolBarResize
         end
       end
     end
index 77f9387..31b3e06 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -919,12 +919,10 @@ type
        procedure ListViewCustomDrawItem(Sender: TCustomListView;
       Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
     procedure FormActivate(Sender: TObject);
-    procedure MainCoolBarChange(Sender: TObject);
-    procedure BrowserCoolBarChange(Sender: TObject);
-    procedure ListCoolBarChange(Sender: TObject);
-    procedure BrowserCoolBarResize(Sender: TObject);
-    procedure ListCoolBarResize(Sender: TObject);
     procedure BrowserPanelResize(Sender: TObject);
+    procedure MenuToolBarResize(Sender: TObject);
+    procedure ListToolBarResize(Sender: TObject);
+    procedure BrowserToolBarResize(Sender: TObject);
        private
                { Private \90é\8c¾ }
         //RoundList : TRoundList;
@@ -1159,6 +1157,9 @@ type
                procedure ActiveListColumnSave;
                procedure SetActiveList(Obj: TObject);
                property ActiveList: TObject read GetActiveList write SetActiveList;
+               /// CoolBar \82ª\83T\83C\83Y\95Ï\8dX\82³\82ê\82½
+               procedure       CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
+
        published
                property EnabledCloseButton: Boolean read FEnabledCloseButton write SetEnabledCloseButton;
        end;
@@ -1937,7 +1938,6 @@ begin
                                //\97\\92è\92n
                                //Test\8cü\82¯
                                end;
-
                FStartUp := false;
        end;
 end;
@@ -2015,12 +2015,12 @@ begin
 
        // \83\8a\83A\83\8b\83^\83C\83\80\82É\95Û\91\82³\82ê\82é\82Ì\82Å\81A\82Ü\82½\81A\83E\83B\83\93\83h\83E\83T\83C\83Y\82ª CoolBar \82æ\82è
        // \8f¬\82³\82­\82È\82Á\82Ä\82¢\82é\82Æ\82«\82É\95Û\91\82·\82é\82Æ\92l\82ª\8fã\8f\91\82«\82³\82ê\82Ä\82µ\82Ü\82¤\82Ì\82Å\82±\82±\82Å\82Í\95Û\91\82µ\82È\82¢
-       {
+
                // \81ªFormDestroy\92\86\82É\88Ú\93®\82µ\82½\82Ì\82Å\81A\82±\82±\82Å\95Û\91\82µ\82È\82¢\82Æ\82¢\82¯\82È\82¢\82Æ\8ev\82¤\81B\81i\82à\82\82ã\81@2004/04/09\81j
        // CoolBar \95Û\91
-       if GikoForm.WindowState <> wsMinimized then
+       //if (GikoForm.WindowState <> wsMinimized) and (GikoForm.WindowState <> wsMaximized) then
                SaveCoolBarSettings;
-       }
+    
        try
                GikoSys.Setting.WriteWindowSettingFile;
                GikoSys.Setting.WriteNameMailSettingFile;
@@ -5638,8 +5638,8 @@ begin
                end;
        end;
 
-//     FIsIgnoreResize := rtResizing;
-//     PostMessage( Handle, USER_RESIZED, 0, 0 );
+       FIsIgnoreResize := rtResizing;
+       PostMessage( Handle, USER_RESIZED, 0, 0 );
 
 
 end;
@@ -7506,10 +7506,6 @@ end;
 procedure TGikoForm.MainCoolBarResize(Sender: TObject);
 begin
        TopPanel.Height := Max(MainCoolBar.Height, AnimePanel.Height);
-       if not FStartUp then begin
-//             SaveCoolBarSettings;
-               SaveMainCoolBarSettings;
-       end;
 
 end;
 
@@ -7741,7 +7737,7 @@ end;
 procedure TGikoForm.AddressToolBarResize(Sender: TObject);
 begin
        AddressComboBox.Width := AddressToolBar.Width - MoveToToolButton.Width - 10;
-       //CoolBarResized( Sender, MainCoolBar );
+       CoolBarResized( Sender, MainCoolBar );
 end;
 
 procedure TGikoForm.AddressComboBoxKeyDown(Sender: TObject; var Key: Word;
@@ -10611,6 +10607,7 @@ end;
 
 procedure TGikoForm.BrowserTabResize(Sender: TObject);
 begin
+       CoolBarResized( Sender, BrowserCoolBar );
 end;
 
 // *************************************************************************
@@ -11889,47 +11886,115 @@ begin
        end;
 end;
 
-procedure TGikoForm.MainCoolBarChange(Sender: TObject);
+procedure TGikoForm.BrowserPanelResize(Sender: TObject);
 begin
-       if not FStartUp then begin
-        SaveMainCoolBarSettings;
+       if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
+               MoveWindow(FActiveContent.Browser.Handle, 0, 0, BrowserPanel.ClientWidth, BrowserPanel.ClientHeight, false);
        end;
-end;
 
-procedure TGikoForm.BrowserCoolBarChange(Sender: TObject);
-begin
-       SaveBrowserCoolBarSettings;
 end;
-
-procedure TGikoForm.ListCoolBarChange(Sender: TObject);
+procedure TGikoForm.CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
+var
+       coolSet                         : TCoolSet;
+       toolbar                         : TToolBar;
+       band                                    : TCoolBand;
+       affectedBand    : TCoolBand;
+       i                                                       : Integer;
 begin
-       SaveBoardCoolBarSettings;
+       if (FOldFormWidth = Width) and not IsIconic( Handle ) and (FIsIgnoreResize = rtNone) then begin
+               FIsIgnoreResize := rtResizing;
+               PostMessage( Handle, USER_RESIZED, 0, 0 );
+               band := nil;
+               // \95Ï\8dX\82³\82ê\82½\83N\81[\83\8b\83o\81[\82Ì\92l\82ð\95Û\91
+               if CoolBar = MainCoolBar then begin
+                       for i := 0 to MAIN_COOLBAND_COUNT - 1 do begin
+                               CoolSet.FCoolID := CoolBar.Bands[i].ID;
+                               CoolSet.FCoolWidth := CoolBar.Bands[i].Width;
+                               CoolSet.FCoolBreak := CoolBar.Bands[i].Break;
+                               GikoSys.Setting.MainCoolSet[i] := CoolSet;
+                       end;
+               end else if CoolBar = ListCoolBar then begin
+                       for i := 0 to LIST_COOLBAND_COUNT - 1 do begin
+                               CoolSet.FCoolID := CoolBar.Bands[i].ID;
+                               CoolSet.FCoolWidth := CoolBar.Bands[i].Width;
+                               CoolSet.FCoolBreak := CoolBar.Bands[i].Break;
+                               GikoSys.Setting.ListCoolSet[i] := CoolSet;
+                       end;
+               end else if CoolBar = BrowserCoolBar then begin
+                       for i := 0 to BROWSER_COOLBAND_COUNT - 1 do begin
+                               CoolSet.FCoolID := CoolBar.Bands[i].ID;
+                               CoolSet.FCoolWidth := CoolBar.Bands[i].Width;
+                               CoolSet.FCoolBreak := CoolBar.Bands[i].Break;
+                               GikoSys.Setting.BrowserCoolSet[i] := CoolSet;
+                       end;
+               end;
+               if not (Sender is TToolBar) or (CoolBar = nil) then
+                       Exit;
+               toolbar := TToolBar( Sender );
+               // \95\9d\82Ì\95Ï\8dX\82³\82ê\82½\83o\83\93\83h\82ð\8c©\82Â\82¯\82é
+               affectedBand := nil;
+               for i := CoolBar.Bands.Count - 1 downto 0 do begin
+                       if CoolBar.Bands[ i ].Control.Handle = toolbar.Handle then begin
+                               band    := CoolBar.Bands[ i ];
+                               if band.Break or (i = 0) then begin
+                                       if i + 1 < CoolBar.Bands.Count then
+                                               if not CoolBar.Bands[ i + 1 ].Break then
+                                                       affectedBand := CoolBar.Bands[ i + 1 ];
+                               end else begin
+                                       if i > 0 then
+                                               affectedBand := CoolBar.Bands[ i - 1 ];
+                               end;
+                               Break;
+                       end;
+               end;
+               // \83h\83\89\83b\83O\92\86\82Í band.Width \82ª\8dX\90V\82³\82ê\82È\82¢\82Ì\82Å\81A\93à\91¤\82Ì\83T\83C\83Y\82©\82ç\82Ð\82Ë\82è\8fo\82·
+               if CoolBar = MainCoolBar then begin
+                       coolSet := GikoSys.Setting.MainCoolSet[ band.ID ];
+                       coolSet.FCoolWidth := toolbar.Width + 25;
+                       GikoSys.Setting.MainCoolSet[ band.ID ] := coolSet;
+                       if affectedBand <> nil then begin
+                               coolSet := GikoSys.Setting.MainCoolSet[ affectedBand.ID ];
+                               coolSet.FCoolWidth := affectedBand.Control.Width + 25;
+                               GikoSys.Setting.MainCoolSet[ affectedBand.ID ] := coolSet;
+                       end;
+               end else if CoolBar = ListCoolBar then begin
+                       coolSet := GikoSys.Setting.ListCoolSet[ band.ID ];
+                       coolSet.FCoolWidth := toolbar.Width + 25;
+                       GikoSys.Setting.ListCoolSet[ band.ID ] := coolSet;
+                       if affectedBand <> nil then begin
+                               coolSet := GikoSys.Setting.ListCoolSet[ affectedBand.ID ];
+                               coolSet.FCoolWidth := affectedBand.Control.Width + 25;
+                               GikoSys.Setting.ListCoolSet[ affectedBand.ID ] := coolSet;
+                       end;
+               end else if CoolBar = BrowserCoolBar then begin
+                       coolSet := GikoSYs.Setting.BrowserCoolSet[ band.ID ];
+                       coolSet.FCoolWidth := toolbar.Width + 25;
+                       GikoSys.Setting.BrowserCoolSet[ band.ID ] := coolSet;
+                       if affectedBand <> nil then begin
+                               coolSet := GikoSys.Setting.BrowserCoolSet[ affectedBand.ID ];
+                               coolSet.FCoolWidth := affectedBand.Control.Width + 25;
+                               GikoSys.Setting.BrowserCoolSet[ affectedBand.ID ] := coolSet;
+                       end;
+               end;
+       end;
 end;
 
-procedure TGikoForm.BrowserCoolBarResize(Sender: TObject);
+
+procedure TGikoForm.MenuToolBarResize(Sender: TObject);
 begin
-       if not FStartUp then begin
-        SaveBrowserCoolBarSettings;
-       end;
+       CoolBarResized( Sender, MainCoolBar );
 end;
 
-procedure TGikoForm.ListCoolBarResize(Sender: TObject);
+procedure TGikoForm.ListToolBarResize(Sender: TObject);
 begin
-       if not FStartUp then begin
-        SaveBoardCoolBarSettings;
-       end;
-
+       CoolBarResized( Sender, ListCoolBar );
 end;
 
-procedure TGikoForm.BrowserPanelResize(Sender: TObject);
+procedure TGikoForm.BrowserToolBarResize(Sender: TObject);
 begin
-       if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
-               MoveWindow(FActiveContent.Browser.Handle, 0, 0, BrowserPanel.ClientWidth, BrowserPanel.ClientHeight, false);
-       end;
-
+       CoolBarResized( Sender, BrowserCoolBar );
 end;
 
-
 initialization
                                OleInitialize(nil);
 finalization