N83: TMenuItem;
UpdateGikonaviAction1: TMenuItem;
N84: TMenuItem;
+ N85: TMenuItem;
+ URL2: TMenuItem;
+ URLPATHINFO1: TMenuItem;
+ URLQUERYSTRING1: TMenuItem;
+ N86: TMenuItem;
+ K4: TMenuItem;
+ WikiFAQ1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure SaveSettingAll();
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;
+ FCwSave: Word; // 8087CW\92l\95Û\91¶
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 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';
Writeln('============================================================');
{$ENDIF}
//try
+ // \83[\83\8d\8a\84\97á\8aO\82Ì\8c»\8dÝ\82Ì\90Ý\92è\82ð\95Û\91¶\82·\82é
+ FCwSave := Get8087CW;
+ if ( AnsiPos('9.0', GikoSys.GetIEVersion()) = 1 ) then begin
+ // IE 9\82Ì\8fê\8d\87\82¾\82¯\81A\96³\8cø\83r\83b\83g\82ð\97§\82Ä\82é
+ Set8087CW(FCwSave or $0004);
+ end;
Sort.SetSortDate(Now());
FTreeType := gttNone;
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;
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);
// \83A\83b\83v\83f\81[\83g\8eÀ\8ds
GikoSys.CreateProcess(FUpdateExePath, FUpdateExeArgs);
end;
+ // \83[\83\8d\8a\84\97á\8aO\82ð\8c³\82É\96ß\82·
+ Set8087CW(FCwSave);
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
if FResPopupBrowser <> nil then begin
if not(Sender is TResPopupBrowser) then begin
- if (FResPopupBrowser.Visible) then begin
+ if ((doc <> nil) and (FResPopupBrowser.Visible)) then begin
if ResPopupClearTimer.Interval > 0 then begin
ResPopupClearTimer.Enabled := True;
ResPopupClearTimer.Tag := 0;
end;
s := '';
Ext := AnsiLowerCase(ExtractFileExt(Text2));
- if (Pos('http://', Text2) = 1) and (GikoSys.Setting.PreviewVisible) and
+// if (Pos('http://', Text2) = 1) and (GikoSys.Setting.PreviewVisible) and
+ if ((Pos('http://', Text2) = 1) or (Pos('https://', Text2) = 1)) and (GikoSys.Setting.PreviewVisible) and
((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
{$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;
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
SenderNode.Selected := False;
FavoriteDragDrop( SenderNode, Source );
- SetLinkBar;
-
+ PostMessage( Handle, USER_SETLINKBAR, 0, 0 );
end;
procedure TGikoForm.LinkToolButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
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);