From aad55fedb97c67e1a468860744d81746abefe0d1 Mon Sep 17 00:00:00 2001 From: anthony Date: Sat, 19 Dec 2020 21:45:08 +0000 Subject: [PATCH] Add basic outline for history window --- frontends/gnustep/AppDelegate.h | 2 ++ frontends/gnustep/AppDelegate.m | 11 +++++++++++ frontends/gnustep/DownloadsWindowController.m | 1 + frontends/gnustep/HistoryWindowController.h | 7 +++++++ frontends/gnustep/HistoryWindowController.m | 18 ++++++++++++++++++ frontends/gnustep/Makefile | 2 ++ .../gnustep/res/History.gorm/data.classes | 18 ++++++++++++++++++ frontends/gnustep/res/History.gorm/data.info | Bin 0 -> 184 bytes .../gnustep/res/History.gorm/objects.gorm | Bin 0 -> 4649 bytes frontends/gnustep/res/Menu.gorm/data.classes | 6 ++++-- frontends/gnustep/res/Menu.gorm/objects.gorm | Bin 12271 -> 12760 bytes 11 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 frontends/gnustep/HistoryWindowController.h create mode 100644 frontends/gnustep/HistoryWindowController.m create mode 100644 frontends/gnustep/res/History.gorm/data.classes create mode 100644 frontends/gnustep/res/History.gorm/data.info create mode 100644 frontends/gnustep/res/History.gorm/objects.gorm diff --git a/frontends/gnustep/AppDelegate.h b/frontends/gnustep/AppDelegate.h index 79e204bdc..7e95284e5 100644 --- a/frontends/gnustep/AppDelegate.h +++ b/frontends/gnustep/AppDelegate.h @@ -22,10 +22,12 @@ along with this program. If not, see . @private id downloadsWindowController; id findPanelController; +id historyWindowController; } -(void)showFindPanel: (id)sender; -(void)showDownloadsWindow: (id)sender; +-(void)showHistoryWindowController: (id)sender; -(NSURL*)requestDownloadDestination; @end diff --git a/frontends/gnustep/AppDelegate.m b/frontends/gnustep/AppDelegate.m index a4493e4c1..1eb7d6c2a 100644 --- a/frontends/gnustep/AppDelegate.m +++ b/frontends/gnustep/AppDelegate.m @@ -12,6 +12,7 @@ #import "netsurf/browser_window.h" #import "DownloadsWindowController.h" #import "FindPanelController.h" +#import "HistoryWindowController.h" /** * Set option defaults for (taken from the cocoa frontend) @@ -77,6 +78,16 @@ static nserror set_defaults(struct nsoption_s *defaults) } } +-(void)showHistoryWindowController: (id)sender { + NSLog(@"Showing history ..."); + if (!historyWindowController) { + historyWindowController = [[HistoryWindowController alloc] init]; + [historyWindowController loadWindow]; + } else { + [historyWindowController showWindow: self]; + } +} + -(NSURL*)requestDownloadDestination { NSSavePanel *savePanel = [NSOpenPanel savePanel]; [savePanel setDirectory: NSHomeDirectory()]; diff --git a/frontends/gnustep/DownloadsWindowController.m b/frontends/gnustep/DownloadsWindowController.m index 6fb8acad9..e172107f4 100644 --- a/frontends/gnustep/DownloadsWindowController.m +++ b/frontends/gnustep/DownloadsWindowController.m @@ -24,6 +24,7 @@ -(void)awakeFromNib { NSLog(@"Awoke from nib..."); + [[self window] makeKeyAndOrderFront: self]; [[DownloadManager defaultDownloadManager] setDelegate: self]; } diff --git a/frontends/gnustep/HistoryWindowController.h b/frontends/gnustep/HistoryWindowController.h new file mode 100644 index 000000000..9a3b44527 --- /dev/null +++ b/frontends/gnustep/HistoryWindowController.h @@ -0,0 +1,7 @@ +#import + +@interface HistoryWindowController: NSWindowController { + id outlineView; +} + +@end \ No newline at end of file diff --git a/frontends/gnustep/HistoryWindowController.m b/frontends/gnustep/HistoryWindowController.m new file mode 100644 index 000000000..01d1f32bb --- /dev/null +++ b/frontends/gnustep/HistoryWindowController.m @@ -0,0 +1,18 @@ +#import +#import "HistoryWindowController.h" + +@implementation HistoryWindowController + +-(id)init { + if (self = [super initWithWindowNibName: @"History"]) { + // ..... + } + return self; +} + +-(void)awakeFromNib { + NSLog(@"Awoke from nib..."); + [[self window] makeKeyAndOrderFront: self]; +} + +@end \ No newline at end of file diff --git a/frontends/gnustep/Makefile b/frontends/gnustep/Makefile index 0958348e6..647d0568f 100644 --- a/frontends/gnustep/Makefile +++ b/frontends/gnustep/Makefile @@ -46,6 +46,7 @@ S_FRONTEND := \ NetsurfCallback.m \ ProgressBarCell.m \ FindPanelController.m \ + HistoryWindowController.m \ tables/misc.m \ tables/bitmap.m \ tables/clipboard.m \ @@ -72,6 +73,7 @@ R_RESOURCES := \ Browser.gorm \ Downloads.gorm \ Find.gorm \ + History.gorm \ R_RESOURCES := $(addprefix $(FRONTEND_RESOURCES_DIR)/,$(R_RESOURCES)) diff --git a/frontends/gnustep/res/History.gorm/data.classes b/frontends/gnustep/res/History.gorm/data.classes new file mode 100644 index 000000000..abe309615 --- /dev/null +++ b/frontends/gnustep/res/History.gorm/data.classes @@ -0,0 +1,18 @@ +{ + "## Comment" = "Do NOT change this file, Gorm maintains it"; + FirstResponder = { + Actions = ( + "search:" + ); + Super = NSObject; + }; + HistoryWindowController = { + Actions = ( + "search:" + ); + Outlets = ( + outlineView + ); + Super = NSWindowController; + }; +} \ No newline at end of file diff --git a/frontends/gnustep/res/History.gorm/data.info b/frontends/gnustep/res/History.gorm/data.info new file mode 100644 index 0000000000000000000000000000000000000000..c2d6894a68792c008546fbacbbbe83769b7db8bd GIT binary patch literal 184 zcmZ?w3oR~5El@}-O3uhEOEoYsNHZ}qF|YzMK)@J-0hD4iWMmL=&o9b#%gjj)C`wH$ z_D#%7OiwLh00KiM1`fYq|D>$co9kQpQ%TvC*omktzVWKaW=e5yc# tRTRWx@<}X7EiO?AOD!tS%+E7m-pCA6!2?&p!xU0kkeZ?ZG$J)I7XW){C$Sl1mtwjn+>mAYq%`{u#^R(C1-Q{8@J-oI{;d0 z2r?z-g9ER;U3VQxx0Jyvgh)S8evVvdU=1} zIV|t(i6%NZsZy-W@mjUU4l~L@qc0Mfo~6fV5=!8}U8q3=s?dZ(HOc};12GJ#F|bR{ z9e01P*{I5~31D&X^LhKm5rAFD0p#uCpF|daID+%EH}Mj4(BchV{P_rQSfyd4==Y4cQR3LaSAN$YLr3sgl!qH8-~SvKFS)I0Nle zTFrVru*Hh5!_r+!39>=9&~mRWqivgAlw>_g98+0Hm&hNry+8{@S`28v3O-Mc2%pV9 zEuG~qEtpmlFiw$k;MFOXI#8+{J7|j|Cs-O*lQ2fwDd^~)WKaxldJC`E(b99p&T?Ei z=(J9wZ7yl9f*Cc%E-kus){z7pZ>Jao@G+~Vd25XqAtm8z z9_)1quB7k#gBW_&EV5(57@T0QBrvCD7(aok*sLGyHpDobGxaOI4#tb)!!IT2x8)Xte?^&KaqZP--MeyANR>Jd)YPV`hIU z+@DI4T$8GhN9XW)4m_ZQfQa1E~o1h>AhmiPj7}TeOA_IL#NtGcouiBu6agAvK^~JZp9& zOk`);@+jg~%9U?-TFrw-Ra}Sjg3}p1XV}LWCt)8Gc46WSc`m^7`52#chOs2F3@3* z^7is$I&GQOxobsHgfF)sH(vm3_=+t5Y(g63WO>@)hc(I)o+rml1 z_{h}cXO0FRu?yFQ09Sopk8##np%3f=IU;(ncl4`NHIzCfGtfajjGnnl_S zubLDFu60+1U4k*7IHfpZP1HseE~2E?nb)w^bv2tg&NUYeH=8)HSfzPW}dB zs$gQ!FnEyfEV?{CR&3;Co;0o)o=m7MV})}Mb6mn=|0%J-i+OUm`g9(30pD%U;F{rzd#y<$u8@M6 zfFF?SO8u@YOT-U!-R6JnI=vyV-)`si&Hn+!9~$sv#FaeEMLEXb5u8I;@J>I(JmK)> zFgpF49mx!Cna%MqhsUkx!n1FSswed__3Pj?``vYMuUF6kWU1fU6%Edk9XVi z`i@@q@e?Ap^c^2RC8D6WeEf_EM;CnjoQNV5Ul6g%#Fs?eV&W?zR#@sD5g+OmAHP=T zU`Et&`Efm}U~#1dy@X|Rg>-m@v{fy8Wv6-2s<^n_K1ceOuwuAm;uj!Ct*Tphcj&hh stP;Pp;vy4#XXAZgTgDy3CLKnO8nF)L#~6IjJ|o%k7jePCH~;_u literal 0 HcmV?d00001 diff --git a/frontends/gnustep/res/Menu.gorm/data.classes b/frontends/gnustep/res/Menu.gorm/data.classes index 2b74ba10f..dd6d4ea98 100644 --- a/frontends/gnustep/res/Menu.gorm/data.classes +++ b/frontends/gnustep/res/Menu.gorm/data.classes @@ -4,7 +4,8 @@ Actions = ( "didTapNewWindow:", "showDownloadsWindow:", - "showFindPanel:" + "showFindPanel:", + "showHistoryWindowController:" ); Outlets = ( ); @@ -15,8 +16,9 @@ "didTapNewWindow:", "findNext:", "findPrevious:", - "removeAll:", + "showHistoryWindowController:", "remove:", + "removeAll:", "showAll:", "showDownloadsWindow:", "showFindPanel:" diff --git a/frontends/gnustep/res/Menu.gorm/objects.gorm b/frontends/gnustep/res/Menu.gorm/objects.gorm index 04bf6ad09575f04d857c85eb30accad1cc1ebd0f..9cb00d2b2f7328bb4e929459cc4410bfd5ead871 100644 GIT binary patch literal 12760 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 literal 12271 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 r=t^1CJl