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.332 by yoffy, Fri Jun 4 06:18:05 2004 UTC revision 1.333 by h677, Fri Jun 4 13:58:16 2004 UTC
# Line 556  type Line 556  type
556                          EndIndex: Integer; OldState, NewState: TItemStates);                          EndIndex: Integer; OldState, NewState: TItemStates);
557                  procedure BrowserStatusTextChange(Sender: TObject;                  procedure BrowserStatusTextChange(Sender: TObject;
558                          const Text: WideString);                          const Text: WideString);
                 procedure BrowserTitleChange(Sender: TObject; const Text: WideString);  
559                  procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);                  procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
560                  procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;                  procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
561                          var AllowChange: Boolean);                          var AllowChange: Boolean);
# Line 1238  begin Line 1237  begin
1237                  newBrowser.OnEnter                              := BrowserEnter;                  newBrowser.OnEnter                              := BrowserEnter;
1238                  newBrowser.OnNewWindow2                 := BrowserNewWindow2;                  newBrowser.OnNewWindow2                 := BrowserNewWindow2;
1239                  newBrowser.OnStatusTextChange   := BrowserStatusTextChange;                  newBrowser.OnStatusTextChange   := BrowserStatusTextChange;
1240                  newBrowser.OnTitleChange                := BrowserTitleChange;                  //newBrowser.OnTitleChange              := BrowserTitleChange;
1241                  newBrowser.Navigate(BLANK_HTML);                  newBrowser.Navigate(BLANK_HTML);
1242                  ShowWindow(newBrowser.Handle, SW_HIDE);                  ShowWindow(newBrowser.Handle, SW_HIDE);
1243                  FBrowsers.Add(newBrowser);                  FBrowsers.Add(newBrowser);
# Line 2494  var Line 2493  var
2493          board                           : TBoard;          board                           : TBoard;
2494          Protocol, Host, Path, Document, Port, Bookmark: string;          Protocol, Host, Path, Document, Port, Bookmark: string;
2495    
2496          //wkInt: Integer;          wkInt: Integer;
2497          wkIntSt: Integer;          wkIntSt: Integer;
2498          wkIntTo: Integer;          wkIntTo: Integer;
2499          ActiveFileName: string;          ActiveFileName: string;
# Line 2519  begin Line 2518  begin
2518          if PreviewTimer.Enabled then          if PreviewTimer.Enabled then
2519                  PreviewTimer.Enabled := False;                  PreviewTimer.Enabled := False;
2520          Application.CancelHint;          Application.CancelHint;
2521          if GetActiveContent <> nil then          try
2522                  ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')                  if GetActiveContent <> nil then
2523          else                          ActiveFileName := ChangeFileExt(ExtractFileName(GetActiveContent.FileName), '')
2524                  ActiveFileName := '';                  else
2525                            ActiveFileName := '';
2526            except
2527                    FActiveContent := nil;
2528                    Exit;
2529            end;
2530    
2531          StatusBar.Panels[1].Text := Text;          StatusBar.Panels[1].Text := Text;
2532    
# Line 2614  begin Line 2618  begin
2618                                  end else if (wkIntSt > 0) and (wkIntTo = 0) then begin                                  end else if (wkIntSt > 0) and (wkIntTo = 0) then begin
2619                                          wkIntTo := wkIntSt;                                          wkIntTo := wkIntSt;
2620                                  end else if wkIntSt > wkIntTo then begin                                  end else if wkIntSt > wkIntTo then begin
2621                                          //wkInt := wkIntTo;                                          wkInt := wkIntTo;
2622                                          wkIntTo := wkIntSt;                                          wkIntTo := wkIntSt;
2623                                          wkIntSt := wkIntTo;                                          wkIntSt := wkInt;
2624                                  end;                                  end;
2625                                  //if wkIntSt = 0 then                                  //if wkIntSt = 0 then
2626                                  //      wkIntSt := 1;                                  //      wkIntSt := 1;
# Line 2666  begin Line 2670  begin
2670          end;          end;
2671  end;  end;
2672    
 procedure TGikoForm.BrowserTitleChange(Sender: TObject;  
         const Text: WideString);  
 var  
         Title: string;  
 begin  
         if (Text = BLANK_HTML) or (Text = GikoSys.GetHtmlTempFileName) then  
                 Title := CAPTION_NAME  
         else  
                 Title := CAPTION_NAME + ' - [' + Text + ']';  
         Caption := Title;  
         //Application.Title := Title;  
 end;  
   
2673  procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);  procedure TGikoForm.SetEnabledCloseButton(Enabled: Boolean);
2674  var  var
2675          SysMenu: HMenu;          SysMenu: HMenu;
# Line 3291  begin Line 3282  begin
3282                          newBrowser.Repaint := true;                          newBrowser.Repaint := true;
3283                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;
3284    
3285                          if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then begin                          BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
3286                          {                          if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin
3287                                  if FActiveContent = BrowserTab.Tabs.Objects[ 0 ] then                                  DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 1 ] ) );
                                         FActiveContent := nil;  
                                 BrowserTab.Tabs.Objects[ 0 ].Free;  
                                 BrowserTab.Tabs.Objects[ 0 ] := newBrowser;  
                                 BrowserTab.Tabs[ 0 ] := GikoSys.GetShortName(ThreadItem.Title, 20);  
                         }  
                                 DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) );  
3288                          end;// else begin                          end;// else begin
                                 BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);  
3289                          //end;                          //end;
3290                          BrowserTab.Repaint;                          BrowserTab.Repaint;
3291                          if ActiveTab then begin                          if ActiveTab then begin
# Line 3327  begin Line 3311  begin
3311                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;
3312                          newBrowser.Repaint := true;                          newBrowser.Repaint := true;
3313    
3314                          if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then begin                          i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
3315                          {                          if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin
                                 if FActiveContent = BrowserTab.Tabs.Objects[ 0 ] then  
                                         FActiveContent := nil;  
                                 BrowserTab.Tabs.Objects[ 0 ].Free;  
                                 BrowserTab.Tabs.Objects[ 0 ] := newBrowser;  
                                 BrowserTab.Tabs[ 0 ] := GikoSys.GetShortName(ThreadItem.Title, 20);  
                         }  
3316                                  DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) );                                  DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) );
3317                          end;// else begin                          end;
                                 i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);  
3318                          //end;                          //end;
3319                          BrowserTab.Repaint;                          BrowserTab.Repaint;
3320                          if ActiveTab then begin                          if ActiveTab then begin
3321                                  BrowserTab.TabIndex := i;                                  if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 0) then
3322                                            BrowserTab.TabIndex := 0
3323                                    else
3324                                            BrowserTab.TabIndex := i;
3325                          end;                          end;
3326                  end;                  end;
3327                  if(ActiveTab) or (idx = -1) then begin                  if(ActiveTab) or (idx = -1) then begin
# Line 3393  begin Line 3373  begin
3373                  finally                  finally
3374                  end;                  end;
3375          end;          end;
3376          if inThread = nil then          if not (Assigned(inThread)) or (inThread.Thread = nil) then begin
                 Exit  
         else if inThread.Thread = nil then begin  
3377                  inThread.Browser.Navigate(BLANK_HTML);                  inThread.Browser.Navigate(BLANK_HTML);
3378                  BrowserBoardNameLabel.Caption := '';                  BrowserBoardNameLabel.Caption := '';
3379                  ItemBoardImage.Picture := nil;                  ItemBoardImage.Picture := nil;
# Line 3430  begin Line 3408  begin
3408                  ReleaseCapture;                  ReleaseCapture;
3409    
3410          Screen.Cursor := crHourGlass;          Screen.Cursor := crHourGlass;
3411    
3412    
3413          try          try
3414                  if inThread.FThread.UnRead then begin                  if inThread.FThread.UnRead then begin
3415                          inThread.FThread.ParentBoard.UnRead := inThread.FThread.ParentBoard.UnRead - 1;                          inThread.FThread.ParentBoard.UnRead := inThread.FThread.ParentBoard.UnRead - 1;
# Line 3442  begin Line 3422  begin
3422                  if (not Assigned(inThread.Browser.Document)) then begin                  if (not Assigned(inThread.Browser.Document)) then begin
3423                          inThread.Browser.Navigate('about:blank');                          inThread.Browser.Navigate('about:blank');
3424                  end;                  end;
3425                  //if inThread.Browser <> BrowserNullTab.Browser then begin                  while (inThread.Browser.ReadyState <> READYSTATE_COMPLETE) and
3426                          while (inThread.Browser.ReadyState <> READYSTATE_COMPLETE) and                                  (inThread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
3427                                          (inThread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                          Application.ProcessMessages;
3428                                  Application.ProcessMessages;                          if idx <> BrowserTab.TabIndex then begin
3429                                  if idx <> BrowserTab.TabIndex then begin                                  FActiveContent := inThread;
3430                                          BrowserTab.OnChange(nil);                                  //BrowserTab.OnChange(nil);
3431                                          Exit;                                  Exit;
                                 end;  
3432                          end;                          end;
                 //end;  
3433    
3434                    end;
3435                    if not (Assigned(inThread)) or not (Assigned(inThread.Thread)) then begin
3436                            FActiveContent := nil;
3437                            Exit;
3438                    end;
3439                  if not inThread.FThread.IsLogFile then begin                  if not inThread.FThread.IsLogFile then begin
3440                            Caption := CAPTION_NAME ;
3441                          try                          try
3442                                  s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>';                                  s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>';
3443                                  doc := Idispatch( olevariant(inThread.Browser.ControlInterface).Document) as IHTMLDocument2;                                  doc := Idispatch( olevariant(inThread.Browser.ControlInterface).Document) as IHTMLDocument2;
# Line 3464  begin Line 3448  begin
3448                          finally                          finally
3449                          end;                          end;
3450                  end else begin                  end else begin
3451                            Caption := CAPTION_NAME + ' - [' + inThread.Thread.Title + ']';
3452                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき
3453                          //新規にThreadを開いたときに真になっている。                          //新規にThreadを開いたときに真になっている。
3454                          if(inThread.Repaint) or (inThread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin                          if(inThread.Repaint) or (inThread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin
# Line 3479  begin Line 3464  begin
3464                                          //ここでApplication.ProcessMessagesを呼ぶことによってWebBrowserを更新させる。                                          //ここでApplication.ProcessMessagesを呼ぶことによってWebBrowserを更新させる。
3465                                          //相しないと一画面分しか描画できてないのでそれ以上のスクロール量を指定しても無効になる                                          //相しないと一画面分しか描画できてないのでそれ以上のスクロール量を指定しても無効になる
3466                                          // byもじゅ(2004/01/20)                                          // byもじゅ(2004/01/20)
3467                                            try
3468                                          if inThread.FThread.UnRead then                                                  if (Assigned(inThread)) and (Assigned(inThread.Thread))then begin
3469                                                  BrowserMovement('new', inThread)                                                          if inThread.FThread.UnRead then
3470                                          else if inThread.FThread.ScrollTop <> 0 then begin                                                                  BrowserMovement('new', inThread)
3471                                                  try                                                          else if inThread.FThread.ScrollTop <> 0 then begin
3472                                                          doc.Body.ScrollTop := inThread.FThread.ScrollTop;                                                                  try
3473                                                  except                                                                          doc.Body.ScrollTop := inThread.FThread.ScrollTop;
3474                                                          on E: Exception do                                                                  except
3475                                                                  MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);                                                                          on E: Exception do
3476                                                                                    MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
3477                                                                    end;
3478                                                            end;
3479                                                    end else begin
3480                                                            FActiveContent := nil;
3481                                                            BrowserTab.Repaint;
3482                                                            Exit;
3483                                                  end;                                                  end;
3484                                            except
3485                                                    FActiveContent := nil;
3486                                                    BrowserTab.Repaint;
3487                                                    Exit;
3488                                          end;                                          end;
3489                                  finally                                  finally
3490                                           //     Application.ProcessMessages;                                           //     Application.ProcessMessages;
# Line 3501  begin Line 3497  begin
3497                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then                          if (FActiveContent.Browser <> BrowserNullTab.Browser) then
3498                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);                                  ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
3499                  end;                  end;
3500                  FActiveContent := inThread;                  if (Assigned(inThread)) and (Assigned(inThread.Thread)) then begin
3501                            FActiveContent := inThread;
3502    
3503                  BrowserBoardNameLabel.Caption := inThread.FThread.ParentBoard.Title;                          BrowserBoardNameLabel.Caption := inThread.FThread.ParentBoard.Title;
3504                  ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);                          ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
3505                  BrowserNameLabel.Caption := inThread.FThread.Title;                          BrowserNameLabel.Caption := inThread.FThread.Title;
3506                  ItemImage.Picture := nil;                          ItemImage.Picture := nil;
3507                  if inThread.FThread.IsLogFile then                          if inThread.FThread.IsLogFile then
3508                          if inThread.FThread.NewArrival then                                  if inThread.FThread.NewArrival then
3509                                  ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)                                          ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)
3510                                    else
3511                                            ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap)
3512                          else                          else
3513                                  ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap)                                  ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap);
                 else  
                         ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap);  
   
                 ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;  
                 BrowserNameLabel.Left := ItemImage.Left + 20;  
3514    
3515                            ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
3516                            BrowserNameLabel.Left := ItemImage.Left + 20;
3517                    end else begin
3518                            FActiveContent := nil;
3519                    end;
3520          finally          finally
3521                  Screen.Cursor := crDefault;                  Screen.Cursor := crDefault;
3522          end;          end;
# Line 3525  end; Line 3524  end;
3524    
3525  function TGikoForm.GetActiveContent: TThreadItem;  function TGikoForm.GetActiveContent: TThreadItem;
3526  begin  begin
3527          if( FActiveContent <> nil) and (FActiveContent.Thread <> nil)then          try
3528                  Result := FActiveContent.Thread                  if( Assigned(FActiveContent) ) and (Assigned(FActiveContent.Thread))then
3529          else                          Result := FActiveContent.Thread
3530                    else begin
3531                FActiveContent := nil;
3532                            Result := nil;
3533                    end;
3534            except
3535                    FActiveContent := nil;
3536                  Result := nil;                  Result := nil;
3537            end;
3538  end;  end;
3539    
3540  procedure TGikoForm.SetActiveList(Obj: TObject);  procedure TGikoForm.SetActiveList(Obj: TObject);
# Line 5340  begin Line 5346  begin
5346                                  FBrowsers.Move(4, 0);                                  FBrowsers.Move(4, 0);
5347                          end;                          end;
5348                          BrowserTab.Tabs.EndUpdate;                          BrowserTab.Tabs.EndUpdate;
5349                          BrowserTab.OnChange(nil);                          if( FActiveContent = nil) then
5350                                    BrowserTab.OnChange(nil);
5351                          Exit;                          Exit;
5352                  end;                  end;
5353          end;          end;
# Line 5401  begin Line 5408  begin
5408                          end;                          end;
5409    
5410                          BrowserTab.Tabs.EndUpdate;                          BrowserTab.Tabs.EndUpdate;
5411                          BrowserTab.OnChange(nil);                          if( FActiveContent = nil) then
5412                                    BrowserTab.OnChange(nil);
5413                          Exit;                          Exit;
5414                  end;                  end;
5415          end;          end;
# Line 5878  begin Line 5886  begin
5886                  end else begin                  end else begin
5887                          URL := GikoSys.GetHRefText(Html);                          URL := GikoSys.GetHRefText(Html);
5888                          URL := GikoSys.HTMLDecode(URL);                          URL := GikoSys.HTMLDecode(URL);
5889                          //アドレスバーの履歴                          if( AnsiPos('http://', URL) = 1) or (AnsiPos('https://', URL) = 1) or
5890                          if GikoSys.Setting.LinkAddAddressBar then begin                                  ( AnsiPos('ftp://', URL) = 1) then begin
5891                                  idx := AddressComboBox.Items.IndexOf(URL);                                  //アドレスバーの履歴
5892                                  if idx = -1 then begin                                  if GikoSys.Setting.LinkAddAddressBar then begin
5893                                          AddressComboBox.Items.Insert(0, URL);                                          idx := AddressComboBox.Items.IndexOf(URL);
5894                                          if AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then                                          if idx = -1 then begin
5895                                                  AddressComboBox.Items.Delete(AddressComboBox.Items.Count - 1);                                                  AddressComboBox.Items.Insert(0, URL);
5896                                  end else begin                                                  if AddressComboBox.Items.Count > GikoSys.Setting.AddressHistoryCount then
5897                                          AddressComboBox.Items.Delete(idx);                                                          AddressComboBox.Items.Delete(AddressComboBox.Items.Count - 1);
5898                                          AddressComboBox.Items.Insert(0, URL);                                          end else begin
5899                                                    AddressComboBox.Items.Delete(idx);
5900                                                    AddressComboBox.Items.Insert(0, URL);
5901                                            end;
5902                                  end;                                  end;
5903                                    MoveToURL( URL );
5904                          end;                          end;
                         MoveToURL( URL );  
5905                  end;                  end;
5906          end;          end;
5907    
# Line 6026  begin Line 6037  begin
6037                          OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;                          OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;
6038                          SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));                          SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));
6039    
6040                          if GikoSys.Setting.URLDisplay then                          if (GikoSys.Setting.URLDisplay) and (GetActiveContent <> nil) then
6041                                  AddressComboBox.Text := ThreadItem.URL;                                  AddressComboBox.Text := GetActiveContent.URL;
6042                  end;                  end;
6043    
6044          end;          end;
# Line 10278  begin Line 10289  begin
10289    
10290          if not GikoSys.Setting.BrowserTabVisible then          if not GikoSys.Setting.BrowserTabVisible then
10291                  if Item <> nil then                  if Item <> nil then
10292                          if TObject( Item.Data ) is TThreadItem then                          if (TObject( Item.Data ) is TThreadItem) then begin
10293                                  SelectTimer.Enabled := True;                                  if not SelectTimer.Enabled  then begin
10294                                            SelectTimer.Tag := 0;
10295                                            SelectTimer.Enabled := True;
10296                                    end else begin
10297                        SelectTimer.Tag := 0;
10298                                            SelectTimer.Enabled := false;
10299                                            SelectTimer.Enabled := True;
10300                                    end;
10301                            end;
10302    
10303  end;  end;
10304    
10305  procedure TGikoForm.SelectTimerTimer(Sender: TObject);  procedure TGikoForm.SelectTimerTimer(Sender: TObject);
10306  begin  begin
10307          SelectTimer.Enabled := False;          if SelectTimer.Tag = 0 then
10308          ListClick;                  SelectTimer.Tag := 1
10309            else begin
10310            SelectTimer.Tag := 0;
10311                    SelectTimer.Enabled := False;
10312                    ListClick;
10313            end;
10314  end;  end;
10315    
10316  initialization  initialization

Legend:
Removed from v.1.332  
changed lines
  Added in v.1.333

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