const
NGWORDNAME_PANEL = 3;
THREADSIZE_PANEL = 2;
- USER_RESPOPUPCLEAR = WM_USER + 2005; ///< wParam : TWebBrowser
-
+ USER_POPUPCLEAR = WM_USER + 2005; ///< wParam : TWebBrowser
type
TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser);
N83: TMenuItem;
UpdateGikonaviAction1: TMenuItem;
N84: TMenuItem;
+ N85: TMenuItem;
+ URL2: TMenuItem;
+ URLPATHINFO1: TMenuItem;
+ URLQUERYSTRING1: TMenuItem;
+ N86: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SaveSettingAll();
FPreviewBrowserRect: TRect; ///< \83v\83\8c\83r\83\85\81[\82Ì\95\\8e¦\88Ê\92u\82ð\8bL\89¯\82·\82é
FActionListGroupIndexes: array of Integer; ///<GikoDM\8fã\82Ì\83A\83N\83V\83\87\83\93\83\8a\83X\83g\82Ì\8ae\83A\83N\83V\83\87\83\93\82É\90Ý\92è\82³\82ê\82½GroupIndex\82ð\95Û\91¶\82·\82é\94z\97ñ
FResPopupBrowser: TResPopupBrowser;
+ FUpdateExePath: string; ///\83M\83R\83i\83r\8dX\90V\83C\83\93\83X\83g\81[\83\89\83p\83X
+ FUpdateExeArgs: string; ///\83M\83R\83i\83r\8dX\90V\83C\83\93\83X\83g\81[\83\89\88ø\90\94
+ FKokoPopupThreadItem: TThreadItem;
procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
//! \82à\82Á\82Æ\82à\8cÃ\82¢Browser\82Ì\8aJ\95ú
procedure ReleaseOldestBrowser;
//! \83A\83N\83e\83B\83u\82È\83^\83u\82Æ\93¯\82¶\94Â\82Ì\8aJ\82¢\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83\81\83j\83\85\81[\83A\83C\83e\83\80\82É\92Ç\89Á
- procedure AddMenuSameBoardThread;
+ procedure AddMenuSameBoardThread(MenuItem: TMenuItem);
//! \83A\83N\83e\83B\83u\82È\83^\83u\82Æ\93¯\82¶\94Â\82Ì\8aJ\82¢\82Ä\82¢\82é\83X\83\8c\83b\83h\83N\83\8a\83b\83N\83C\83x\83\93\83g
procedure SameBoardThreadSubItemOnClick(Sender: TObject);
//! \83|\83b\83v\83A\83b\83v\83u\83\89\83E\83U\8dì\90¬
procedure UpdateListView();
//! \83A\83C\83R\83\93\93Ç\82Ý\8d\9e\82Ý
procedure LoadIcon();
+ //! \83|\83b\83v\83A\83b\83v\83\81\83j\83\85\81[\93Ç\82Ý\8d\9e\82Ý
+ procedure LoadPopupMenu();
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure WndProc(var Message: TMessage); override;
BrowserNullTab: TBrowserRecord;
FControlThread: TThreadControl;
FIconData : TNotifyIconData;
- procedure MoveToURL(const inURL: string);
+ procedure MoveToURL(const inURL: string; KeyMask: Boolean = False);
function InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True) : TBrowserRecord;
procedure ReloadBBS;
function GetHttpState: Boolean;
property ScreenCursor : TCursor read GetScreenCursor write SetScreenCursor;
property ActiveBBS : TBBS read FActiveBBS write FActiveBBS;
property WorkCount: Integer read FWorkCount write FWorkCount;
+ property UpdateExePath: string read FUpdateExePath write FUpdateExePath;
+ property UpdateExeArgs: string read FUpdateExeArgs write FUpdateExeArgs;
+
procedure SetContent(inThread: TBrowserRecord);
function GetActiveContent(popup :Boolean = false): TThreadItem;
function GetActiveList: TObject;
property ListViewBackGroundColor: TColor read FListViewBackGroundColor write SetListViewBackGroundColor;
property UseOddResOddColor : Boolean read FUseOddResOddColor write FUseOddResOddColor;
property OddColor : TColor read FOddColor write FOddColor;
+ //! \83\8c\83X\83\81\83j\83\85\81[\83A\83N\83e\83B\83u\83X\83\8c\83b\83h\83A\83C\83e\83\80
+ property KokoPopupThreadItem : TThreadItem read FKokoPopupThreadItem;
+
function FindToolBarButton( bar : TToolBar; action : TAction ) : TToolButton;
procedure OnPlugInMenuItem( Sender : TObject );
procedure TabFileURLReplace(oldURLs: TStringList; newURLs: TStringList);
About, Option, Round, Splash, Sort, ListSelect, Imm,
NewBoard, MojuUtils, Clipbrd, GikoBayesian,Y_TextConverter,
HTMLCreate, ListViewUtils, GikoDataModule, GikoMessage,
- InputAssistDataModule, Types, ReplaceDataModule;
+ InputAssistDataModule, Types, ReplaceDataModule, PopupMenuUtil;
const
BLANK_HTML: string = 'about:blank';
FResPopupBrowser := nil;
CreateBrowsers(BROWSER_COUNT);
FIconData.uID := 0;
+ FUpdateExePath := '';
+ FUpdateExeArgs := '';
//\83\81\83j\83\85\81[\83t\83H\83\93\83g
SetMenuFont;
case FResRangeMenuSelect of
Ord( grrKoko ): GikoDM.OnlyKokoResAction.Checked := True;
Ord( grrNew ): GikoDM.OnlyNewResAction.Checked := True;
- 100: GikoDM.OnlyAHundredResAction.Checked := True;
+ 10..65535:
+ begin
+ GikoDM.OnlyAHundredResAction.Checked := True;
+ GikoSys.ResRange := GikoSys.Setting.ResRangeExCount;
+ end;
end;
end;
GikoDM.RepaintStatusBar;
StatusBarResize(Sender);
- dummy1.Caption := ItemReservPMenu.Caption;
- dummy1.Hint := ItemReservPMenu.Hint;
-
+// dummy1.Caption := ItemReservPMenu.Caption;
+// dummy1.Hint := ItemReservPMenu.Hint;
+ // \83u\83\89\83E\83U\83|\83b\83v\83A\83b\83v\83\81\83j\83\85\81[\82Ì\8f\89\8aú\89»
+ PopupMenuUtil.ReadSetting(GikoDM.GikoFormActionList, BrowserTabPopupMenu);
// \83}\83E\83X\83W\83F\83X\83`\83\83\81[
MouseGesture := TMouseGesture.Create;
if GikoSys.Setting.AutoLogin then
GikoDM.LoginAction.Execute;
- GikoSys.Setting.BeLogin := GikoSys.Setting.BeAutoLogin;
+ if GikoSys.Setting.BeAutoLogin then
+ GikoDM.BeLogInOutAction.Execute;
//\83L\83\83\83v\83V\83\87\83\93\82ª\8fã\8f\91\82«\82³\82ê\82Ä\82µ\82Ü\82¤\82Ì\82Å\81A\82±\82±\82Å\8dÄ\90Ý\92è
FavoriteAddToolButton.Caption := '\92Ç\89Á...';
// D&D\82ð\8eó\82¯\8eæ\82é
DragAcceptFiles(ListView.Handle, True);
+
// \8f\89\8aú\89»\82É\8e¸\94s\82µ\82½\83\82\83W\83\85\81[\83\8b\83`\83F\83b\83N
if (FavoriteDM.AbEnd) then begin
- GikoUtil.MsgBox(Self.Handle, '\82¨\8bC\82É\93ü\82è\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B\83M\83R\83i\83r\82ð\8fI\97¹\82µ\82Ü\82·\81B',
+ GikoUtil.MsgBox(Self.Handle,
+ '\82¨\8bC\82É\93ü\82è\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B\83M\83R\83i\83r\82ð\8fI\97¹\82µ\82Ü\82·\81B'#13#10 +
+ '\83M\83R\83i\83r\83t\83H\83\8b\83_\82ð\8aJ\82«\82Ü\82·\81Aconfig/' + Favorite.FAVORITE_FILE_NAME +
+ ' \82ð config/~' + Favorite.FAVORITE_FILE_NAME + '(\91O\89ñ\8bN\93®\8e\9e\82Ì\82¨\8bC\82É\93ü\82è)\82Å'#13#10 +
+ '\92u\82«\8a·\82¦\82é\8e\96\82Å\92¼\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B',
'\8f\89\8aú\89»\88Ù\8fí');
+ GikoDM.GikoFolderOpenAction.Execute;
Self.Close;
end;
item : TThreadItem;
begin
if FStartUp then begin
+ FStartUp := false;
ShowWindow(Application.Handle, SW_HIDE);
-
//FormCreate\82Å\82â\82é\82Æ\89Â\8e\8b\90Ý\92è\82ª\94½\89f\82³\82ê\82È\82¢\8fê\8d\87\82ª\82 \82é\82Ì\82ÅFormShow\82Å\82â\82é\82±\82Æ\82É\82µ\82½
//\83c\81[\83\8b\83o\81[\95\\8e¦
GikoDM.StdToolBarVisibleAction.Checked := GikoSys.Setting.StdToolBarVisible;
// ResetBandInfo( ListCoolBar, ListToolBar );
FIsIgnoreResize := rtNone;
+ //ActionList\82ÌGroupIndex\82ð\8c³\82É\96ß\82·
+ SetGroupIndex(GikoDM.GikoFormActionList);
+
//FormCrete\82©\82ç\88Ú\93®\81B
if GikoSys.Setting.TabAutoLoadSave then begin
GikoDM.TabsOpenAction.Tag := 1;
GikoDM.TabsOpenAction.Tag := 0;
if (GikoSys.Setting.LastCloseTabURL <> '') then begin
if ( FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
- PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( FActiveContent.Browser ), 0 );
- end;
- if ( FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
while (FActiveContent.Browser.ReadyState <> READYSTATE_COMPLETE) and
(FActiveContent.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
- Application.ProcessMessages;
+ // \83\81\83b\83Z\81[\83W\82ð\8eó\82¯\8eæ\82ç\82È\82¢\82æ\82¤\82É\83X\83\8a\81[\83v\82É\95Ï\8dX
+ Sleep(1);
end;
end;
item := BBSsFindThreadFromURL( GikoSys.Setting.LastCloseTabURL );
+ GikoSys.Setting.LastCloseTabURL := '';
if (item <> nil) and (item.IsLogFile) then begin
OpenThreadItem(item, item.URL);
end;
- GikoSys.Setting.LastCloseTabURL := '';
+ //ShowWindow(Self.Handle, SW_SHOW);
end;
end;
-
- //ActionList\82ÌGroupIndex\82ð\8c³\82É\96ß\82·
- SetGroupIndex(GikoDM.GikoFormActionList);
-
- FStartUp := false;
end;
end;
Application.UnhookMainWindow(Hook);
//\83A\83v\83\8a\83P\81[\83V\83\87\83\93\8fI\97¹\82Ì\91O\82É\83_\83E\83\93\83\8d\81[\83h\83X\83\8c\83b\83h\82É\90³\8fí\8fI\97¹\82ð\91£\82·
+ FControlThread.DownloadAbort;
FControlThread.Terminate;
//OnDestory\82¾\82Æ\8dÄ\8bN\93®\82ð\82©\82¯\82½\82Æ\82«\82È\82Ç\82É\95Û\91¶\82³\82ê\82È\82¢\82Ì\82ÅOnCloseQuery\82Å\90Ý\92è\95Û\91¶
GikoSys.Setting.ResRange := FResRangeMenuSelect;
except
end;
-
- //\88ê\8e\9e\93I\82É\92Ê\8fí\83X\83^\83C\83\8b\82É\96ß\82µ\82ÄCoolBar\82Ì\88Ê\92u\81A\83E\83B\83\93\83h\83E\82Ì\88Ê\92u\82ð\95Û\91¶
- //\81¦\92\8d\88Ó\81FOnDestroy\81AOnCloseQuery\82Å\8eg\82¤\82±\82Æ\82µ\82©\8dl\97¶\82³\82ê\82Ä\82¢\82È\82¢
- if WindowState <> wsNormal then begin
- WindowState := wsNormal;
- end;
-
- try
- SaveCoolBarSettings;
- except
- end;
-
- try
- GikoSys.Setting.WriteWindowSettingFile;
- GikoSys.Setting.WriteNameMailSettingFile;
- except
- end;
-
+ //\8d¡\82Ìwinodw\82Ì\83X\83^\83C\83\8b\82ÅCoolBar\82Ì\88Ê\92u\81A\83E\83B\83\93\83h\83E\82Ì\88Ê\92u\82ð\95Û\91¶
+ SaveCoolBarSettings;
+ GikoSys.Setting.WriteWindowSettingFile;
+ // \96¼\91O\82Æ\83\81\81[\83\8b\82Ì\95Û\91¶\82È\82Ì\82Å\83G\83f\83B\83^\82ª\95Â\82¶\82½\8cã\82È\82ç\82¢\82Â\82Å\82à\82¢\82¢
+ GikoSys.Setting.WriteNameMailSettingFile;
+ // \96`\8c¯\82Ì\8f\91\82Ì\95Û\91¶
+ GikoSys.Setting.WriteBoukenSettingFile;
//\93ü\97Í\83A\83V\83X\83g\8b@\8d\\82Ì\90Ý\92è\82Ì\95Û\91¶
InputAssistDM.SaveToFile(GikoSys.GetInputAssistFileName);
RoundList.SaveRoundFile;
except
end;
+
+ // \83^\83X\83N\83g\83\8c\83C\82Ì\83A\83C\83R\83\93\8dí\8f\9c
+ if (FIconData.uID <> 0) then begin
+ Shell_NotifyIcon(NIM_DELETE, @FIconData);
+ end;
+
end;
procedure TGikoForm.FormDestroy(Sender: TObject);
i : Integer;
tmpBool : Boolean;
begin
- // \83^\83X\83N\83g\83\8c\83C\82Ì\83A\83C\83R\83\93\8dí\8f\9c
- if (FIconData.uID <> 0) then begin
- Shell_NotifyIcon(NIM_DELETE, @FIconData);
+ //\88ê\8e\9e\93I\82É\92Ê\8fí\83X\83^\83C\83\8b\82É\96ß\82µ\82ÄCoolBar\82Ì\88Ê\92u\81A\83E\83B\83\93\83h\83E\82Ì\88Ê\92u\82ð\95Û\91¶
+ //\81¦\92\8d\88Ó\81FOnDestroy\82Å\8eg\82¤\82±\82Æ\82µ\82©\8dl\97¶\82³\82ê\82Ä\82¢\82È\82¢
+ // \91¼\82Å\82â\82é\82Æ\8dÄ\95`\89æ\82ª\94\90¶\82·\82é
+ if WindowState <> wsNormal then begin
+ WindowState := wsNormal;
+ try
+ SaveCoolBarSettings;
+ GikoSys.Setting.WriteWindowSettingFile;
+ except
+ end;
end;
// \83}\83E\83X\83W\83F\83X\83`\83\83\81[\8aJ\95ú
try
try
- FControlThread.DownloadAbort;
+ //FControlThread.DownloadAbort;
FControlThread.Terminate;
FControlThread.WaitFor;
except
end;
except
end;
+
+ // Update\82ª\82¢\82ê\82Î\8eÀ\8ds\82·\82é
+ if FileExists(FUpdateExePath) then begin
+ // \83A\83b\83v\83f\81[\83g\8eÀ\8ds
+ GikoSys.CreateProcess(FUpdateExePath, FUpdateExeArgs);
+ end;
end;
// \8ae\8f\8a\82É\82 \82é\83L\83\83\83r\83l\83b\83g\81E BBS \83\81\83j\83\85\81[\82ð\83Z\83b\83g\81^\8dX\90V
s := '';
Ext := AnsiLowerCase(ExtractFileExt(Text2));
if (Pos('http://', Text2) = 1) and (GikoSys.Setting.PreviewVisible) and
- ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) then begin
+ ((Ext = '.jpg') or (Ext = '.jpeg') or (Ext = '.gif') or (Ext = '.png')) or
+ (Pos('http://www.nicovideo.jp/watch/', Text2) = 1) then begin
if FPreviewBrowser = nil then begin
FPreviewBrowser := TPreviewBrowser.Create(Self);
ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
{$IFDEF DEBUG}
Writeln(URL);
{$ENDIF}
+ FKokoPopupThreadItem := nil;
if Pos(kMenuName, URL) <> 0 then begin
sNo := Copy( URL, Pos( kMenuName, URL ) + Length( kMenuName ), Length( URL ) );
-
+
if not GikoSys.IsNumeric(sNo) then Exit;
Cancel := True;
KokoPopupMenu.PopupComponent := nil;
if (Sender is TComponent) then
KokoPopupMenu.PopupComponent := TComponent(Sender);
+ // \8cë\94\9a\91Î\8dô \83N\83\8a\83b\83N\82µ\82½\83u\83\89\83E\83U\82Æ\88Ù\82È\82é\82Æ\82«\82É\8fÁ\82·\8f\88\97\9d\82ð\92Ç\89Á
+ if not (Sender is TResPopupBrowser) then begin
+ if (FResPopupBrowser <> nil) and (FResPopupBrowser.CurrentBrowser.Visible = True) then begin
+ FResPopupBrowser.Clear;
+ end;
+ end else begin
+ if (Sender <> FResPopupBrowser.CurrentBrowser) then begin
+ TResPopupBrowser(Sender).ChildClear;
+ end;
+ end;
+ FKokoPopupThreadItem := GetActiveContent(true);
KokoPopupMenu.Tag := StrToInt(sNo);
KokoPopupMenu.Popup(p.x, p.y);
end else if Pos('mailto', LowerCase(URL)) <> 0 then begin
TreeSelectFavoriteAddPupupMenu.Visible := False;
TreeSelectLogDeleteSeparator.Visible := False;
TreeSelectLogDeletePopupMenu.Visible := False;
+ SearchBoardName.Visible := False;
end else if TObject(FClickNode.Data) is TBoard then begin
TreeSelectThreadPupupMenu.Visible := False;
TreeSelectBoardPupupMenu.Visible := True;
TreeSelectFavoriteAddPupupMenu.Visible := True;
TreeSelectLogDeleteSeparator.Visible := False;
TreeSelectLogDeletePopupMenu.Visible := False;
+ SearchBoardName.Visible := True;
end else if TObject(FClickNode.Data) is TFavoriteBoardItem then begin
TreeSelectThreadPupupMenu.Visible := False;
TreeSelectBoardPupupMenu.Visible := True;
TreeSelectFavoriteAddPupupMenu.Visible := True;
TreeSelectLogDeleteSeparator.Visible := False;
TreeSelectLogDeletePopupMenu.Visible := False;
+ SearchBoardName.Visible := False;
end else if (TObject(FClickNode.Data) is TThreadItem) then begin
TreeSelectThreadPupupMenu.Visible := True;
TreeSelectBoardPupupMenu.Visible := False;
TreeSelectFavoriteAddPupupMenu.Visible := True;
TreeSelectLogDeleteSeparator.Visible := True;
TreeSelectLogDeletePopupMenu.Visible := True;
+ SearchBoardName.Visible := False;
end else if (TObject(FClickNode.Data) is TFavoriteThreadItem) then begin
TreeSelectThreadPupupMenu.Visible := True;
TreeSelectBoardPupupMenu.Visible := False;
TreeSelectFavoriteAddPupupMenu.Visible := True;
TreeSelectLogDeleteSeparator.Visible := True;
TreeSelectLogDeletePopupMenu.Visible := True;
+ SearchBoardName.Visible := False;
end else if (TObject(FClickNode.Data) is TCategory) then begin
TreeSelectThreadPupupMenu.Visible := False;
TreeSelectBoardPupupMenu.Visible := False;
TreeSelectFavoriteAddPupupMenu.Visible := False;
TreeSelectLogDeleteSeparator.Visible := False;
TreeSelectLogDeletePopupMenu.Visible := False;
+ SearchBoardName.Visible := True;
end else if FClickNode.IsFirstNode then begin
TreeSelectThreadPupupMenu.Visible := False;
TreeSelectBoardPupupMenu.Visible := False;
TreeSelectFavoriteAddPupupMenu.Visible := False;
TreeSelectLogDeleteSeparator.Visible := False;
TreeSelectLogDeletePopupMenu.Visible := False;
+ SearchBoardName.Visible := True;
end else begin
TreeSelectThreadPupupMenu.Visible := False;
TreeSelectBoardPupupMenu.Visible := False;
TreeSelectFavoriteAddPupupMenu.Visible := False;
TreeSelectLogDeleteSeparator.Visible := False;
TreeSelectLogDeletePopupMenu.Visible := False;
+ SearchBoardName.Visible := False;
end;
end;
var
threadItem : TThreadItem;
begin
- if ParentName <> 'dummy1' then begin
+ if ParentName <> 'RoundItem' then begin
SetSelectItemRound(RoundFlag, RoundName);
end else begin
threadItem := GetActiveContent;
end;
end;
-procedure TGikoForm.MoveToURL(const inURL: string);
+procedure TGikoForm.MoveToURL(const inURL: string; KeyMask: Boolean = False);
var
protocol, host, path, document, port, bookmark : string;
URL, protocol2, host2, path2, document2, port2, bookmark2 : string;
GikoSys.ParseURI( inURL, protocol, host, path, document, port, bookmark );
GikoSys.Parse2chURL( inURL, path, document, BBSID, BBSKey );
-
-
- shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
- ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001);
- if shiftDown then begin
- GikoSys.OpenBrowser(inURL, gbtUserApp);
- Exit;
- end else if ctrlDown then begin
- GikoSys.OpenBrowser(inURL, gbtIE);
- Exit;
- end;
+ // \83A\83N\83V\83\87\83\93\82©\82ç\8cÄ\82Î\82ê\82é\82Æshift/ctrl\82Í\82¨\82µ\82Á\82Ï\82Ì\8fê\8d\87\82ª\82Ù\82Æ\82ñ\82Ç\82È\82Ì\82Å\83}\83X\83N\82·\82é
+ if not KeyMask then begin
+ shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
+ ctrlDown := GetAsyncKeyState(VK_CONTROL) = Smallint($8001);
+ if shiftDown then begin
+ GikoSys.OpenBrowser(inURL, gbtUserApp);
+ Exit;
+ end else if ctrlDown then begin
+ GikoSys.OpenBrowser(inURL, gbtIE);
+ Exit;
+ end;
+ end;
//===== \83v\83\89\83O\83C\83\93
try
senderBrowser := TWebBrowser( Message.WParam );
BrowserDocumentComplete( senderBrowser, senderBrowser.Parent, url );
end;
- USER_RESPOPUPCLEAR:
+ USER_POPUPCLEAR:
if (TObject(Message.WParam) is TResPopupBrowser) then begin
try
TResPopupBrowser( Message.WParam ).Clear;
except
end;
+ end else if (TObject(Message.WParam) is TPreviewBrowser) then begin
+ if FPreviewBrowser <> nil then begin
+ ShowWindow(FPreviewBrowser.Handle, SW_HIDE);
+ end;
end;
end;
procedure TGikoForm.BrowserTabPopupMenuPopup(Sender: TObject);
+var
+ i:Integer;
begin
- AddRoundNameMenu(dummy1);
- AddMenuSameBoardThread;
+ for i := 0 to BrowserTabPopupMenu.Items.Count - 1 do begin
+ if (BrowserTabPopupMenu.Items[i].Name='RoundItem') then begin
+ AddRoundNameMenu(BrowserTabPopupMenu.Items[i]);
+ end else if (BrowserTabPopupMenu.Items[i].Name='BoardThreadItem') then begin
+ AddMenuSameBoardThread(BrowserTabPopupMenu.Items[i])
+ end;
+ end;
end;
//! \83A\83N\83e\83B\83u\82È\83^\83u\82Æ\93¯\82¶\94Â\82Ì\8aJ\82¢\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\83\81\83j\83\85\81[\83A\83C\83e\83\80\82É\92Ç\89Á
-procedure TGikoForm.AddMenuSameBoardThread;
+procedure TGikoForm.AddMenuSameBoardThread(MenuItem: TMenuItem);
var
i: Integer;
Item: TMenuItem;
begin
- SameBoardThreadItem.Clear;
+ MenuItem.Clear;
for i := 0 to BrowserTab.Tabs.Count - 1 do begin
// \93¯\82¶\94Â\82©\82Ç\82¤\82©
if (FActiveContent.Thread.ParentBoard =
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread then begin
Item := TMenuItem.Create(Self);
Item.Caption := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.Title;
+ Item.Hint := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.URL;
Item.OnClick := SameBoardThreadSubItemOnClick;
- SameBoardThreadItem.Add(Item);
+ MenuItem.Add(Item);
end;
end;
end;
// \89½\82à\96³\82¢\82È\82ç\8eg\97p\82Å\82«\82È\82¢\82æ\82¤\82É\82·\82é
- SameBoardThreadItem.Enabled := SameBoardThreadItem.Count > 0;
+ MenuItem.Enabled := MenuItem.Count > 0;
end;
//! \83A\83N\83e\83B\83u\82È\83^\83u\82Æ\93¯\82¶\94Â\82Ì\8aJ\82¢\82Ä\82¢\82é\83X\83\8c\83b\83h\83N\83\8a\83b\83N\83C\83x\83\93\83g
procedure TGikoForm.SameBoardThreadSubItemOnClick(Sender: TObject);
var
- i, j: Integer;
+ i: Integer;
MenuItem: TMenuItem;
begin
if Sender is TMenuItem then begin
try
- j := 0;
MenuItem := TMenuItem(Sender);
for i := 0 to BrowserTab.Tabs.Count - 1 do begin
// \93¯\82¶\94Â\82©\82Ç\82¤\82©
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ParentBoard) then begin
if FActiveContent.Thread <>
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread then begin
- if (SameBoardThreadItem.Items[j] = MenuItem) then begin
- MoveToURL( TBrowserRecord(BrowserTab.Tabs.Objects[i])
- .Thread.URL);
+ if (MenuItem.Hint = TBrowserRecord(BrowserTab.Tabs.Objects[i])
+ .Thread.URL) then begin
+ MoveToURL( MenuItem.Hint);
Exit;
end;
- Inc(j);
end;
end;
end;
begin
No := KokoPopupMenu.Tag;
if No = 0 then Exit;
- ThreadItem := GetActiveContent(True);
+ ThreadItem := GikoForm.KokoPopupThreadItem;
if ThreadItem = nil then Exit;
id := GikoSys.GetResID(No, ThreadItem);
begin
No := KokoPopupMenu.Tag;
if No = 0 then Exit;
- ThreadItem := GetActiveContent(True);
+ ThreadItem := GikoForm.KokoPopupThreadItem;
if ThreadItem = nil then Exit;
body := TStringList.Create;
try
GikoSys.Setting.GetAppDir + ICONTOOL, clPurple);
end;
end;
+//! \83|\83b\83v\83A\83b\83v\83\81\83j\83\85\81[\93Ç\82Ý\8d\9e\82Ý
+procedure TGikoForm.LoadPopupMenu();
+begin
+
+
+end;
initialization
OleInitialize(nil);