summaryrefslogtreecommitdiff
path: root/amiga/gui.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/gui.c')
-rwxr-xr-xamiga/gui.c202
1 files changed, 111 insertions, 91 deletions
diff --git a/amiga/gui.c b/amiga/gui.c
index 22d7064d7..c8128af1f 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -202,80 +202,13 @@ STRPTR ami_locale_langs(void)
return acceptlangs;
}
-/** Normal entry point from OS */
-int main(int argc, char** argv)
-{
- setbuf(stderr, NULL);
- return netsurf_main(argc, argv);
-}
-
-void gui_init(int argc, char** argv)
+void ami_messages_load(void)
{
struct Locale *locale;
char lang[100];
- STRPTR tempacceptlangs;
- bool found=FALSE;
int i;
- BPTR lock = 0, amiupdatefh = 0;
-
- msgport = AllocSysObjectTags(ASOT_PORT,
- ASO_NoTrack,FALSE,
- TAG_DONE);
-
- tioreq= (struct TimeRequest *)AllocSysObjectTags(ASOT_IOREQUEST,
- ASOIOR_Size,sizeof(struct TimeRequest),
- ASOIOR_ReplyPort,msgport,
- ASO_NoTrack,FALSE,
- TAG_DONE);
-
- OpenDevice("timer.device",UNIT_WAITUNTIL,(struct IORequest *)tioreq,0);
-
- TimerBase = (struct Device *)tioreq->Request.io_Device;
- ITimer = (struct TimerIFace *)GetInterface((struct Library *)TimerBase,"main",1,NULL);
-
- if(!(appport = AllocSysObjectTags(ASOT_PORT,
- ASO_NoTrack,FALSE,
- TAG_DONE))) die(messages_get("NoMemory"));
-
- if(!(sport = AllocSysObjectTags(ASOT_PORT,
- ASO_NoTrack,FALSE,
- TAG_DONE))) die(messages_get("NoMemory"));
-
- ami_print_init();
-
- if(PopupMenuBase = OpenLibrary("popupmenu.class",0))
- {
- IPopupMenu = (struct PopupMenuIFace *)GetInterface(PopupMenuBase,"main",1,NULL);
- }
-
- if(KeymapBase = OpenLibrary("keymap.library",37))
- {
- IKeymap = (struct KeymapIFace *)GetInterface(KeymapBase,"main",1,NULL);
- }
-
- if(ApplicationBase = OpenLibrary("application.library",50))
- {
- IApplication = (struct ApplicationIFace *)GetInterface(ApplicationBase,"application",1,NULL);
- }
-
- urlStringClass = MakeStringClass();
-
- ami_clipboard_init();
-
- win_destroyed = false;
-
- options_read("PROGDIR:Resources/Options");
-
- verbose_log = option_verbose_log;
-
- filereq = (struct FileRequester *)AllocAslRequest(ASL_FileRequest,NULL);
- savereq = (struct FileRequester *)AllocAslRequestTags(ASL_FileRequest,
- ASLFR_DoSaveMode,TRUE,
- ASLFR_RejectIcons,TRUE,
- ASLFR_InitialDrawer,option_download_dir,
- TAG_DONE);
-
- nsscreentitle = ASPrintf("NetSurf %s",netsurf_version);
+ BPTR lock = 0;
+ bool found=FALSE;
if(lock=Lock("PROGDIR:Resources/LangNames",ACCESS_READ))
{
@@ -314,20 +247,63 @@ void gui_init(int argc, char** argv)
CloseLocale(locale);
messages_load(lang);
+}
- default_stylesheet_url = "file:///PROGDIR:Resources/amiga.css";
- quirks_stylesheet_url = "file:///PROGDIR:Resources/quirks.css";
- adblock_stylesheet_url = "file:///PROGDIR:Resources/adblock.css";
+void ami_open_resources(void)
+{
+ /* Allocate ports/ASL and open libraries and devices */
- if(hubbub_initialise("PROGDIR:Resources/Aliases",myrealloc,NULL) != HUBBUB_OK)
+ if(PopupMenuBase = OpenLibrary("popupmenu.class",0))
{
- die(messages_get("NoMemory"));
+ IPopupMenu = (struct PopupMenuIFace *)GetInterface(PopupMenuBase,"main",1,NULL);
}
- nscss_screen_dpi = INTTOFIX(72);
- scroll_widget_fg_colour = 0x00aaaaaa;
- scroll_widget_bg_colour = 0x00833c3c;
- scroll_widget_arrow_colour = 0x00d6d6d6;
+ if(KeymapBase = OpenLibrary("keymap.library",37))
+ {
+ IKeymap = (struct KeymapIFace *)GetInterface(KeymapBase,"main",1,NULL);
+ }
+
+ if(ApplicationBase = OpenLibrary("application.library",50))
+ {
+ IApplication = (struct ApplicationIFace *)GetInterface(ApplicationBase,"application",1,NULL);
+ }
+
+ urlStringClass = MakeStringClass();
+
+ msgport = AllocSysObjectTags(ASOT_PORT,
+ ASO_NoTrack,FALSE,
+ TAG_DONE);
+
+ tioreq = (struct TimeRequest *)AllocSysObjectTags(ASOT_IOREQUEST,
+ ASOIOR_Size,sizeof(struct TimeRequest),
+ ASOIOR_ReplyPort,msgport,
+ ASO_NoTrack,FALSE,
+ TAG_DONE);
+
+ OpenDevice("timer.device",UNIT_WAITUNTIL,(struct IORequest *)tioreq,0);
+
+ TimerBase = (struct Device *)tioreq->Request.io_Device;
+ ITimer = (struct TimerIFace *)GetInterface((struct Library *)TimerBase,"main",1,NULL);
+
+ if(!(appport = AllocSysObjectTags(ASOT_PORT,
+ ASO_NoTrack,FALSE,
+ TAG_DONE))) die(messages_get("NoMemory"));
+
+ if(!(sport = AllocSysObjectTags(ASOT_PORT,
+ ASO_NoTrack,FALSE,
+ TAG_DONE))) die(messages_get("NoMemory"));
+
+ filereq = (struct FileRequester *)AllocAslRequest(ASL_FileRequest,NULL);
+ savereq = (struct FileRequester *)AllocAslRequestTags(ASL_FileRequest,
+ ASLFR_DoSaveMode,TRUE,
+ ASLFR_RejectIcons,TRUE,
+ ASLFR_InitialDrawer,option_download_dir,
+ TAG_DONE);
+}
+
+void ami_set_options(void)
+{
+ STRPTR tempacceptlangs;
/* The following line disables the popupmenu.class select menu
** This will become a user option when/if popupmenu.class is
@@ -398,11 +374,11 @@ void gui_init(int argc, char** argv)
if(!option_window_width) option_window_width = 800;
if(!option_window_height) option_window_height = 600;
+}
- ami_init_fonts();
-
- plot=amiplot;
-
+void ami_amiupdate(void)
+{
+ BPTR lock = 0, amiupdatefh = 0;
/* AmiUpdate */
if(((lock = Lock("ENVARC:AppPaths",SHARED_LOCK)) == 0))
{
@@ -422,6 +398,50 @@ void gui_init(int argc, char** argv)
FClose(amiupdatefh);
}
/* end Amiupdate */
+}
+
+/** Normal entry point from OS */
+int main(int argc, char** argv)
+{
+ setbuf(stderr, NULL);
+ return netsurf_main(argc, argv);
+}
+
+void gui_init(int argc, char** argv)
+{
+ BPTR lock = 0;
+
+ ami_open_resources(); /* alloc ports/asl reqs, open libraries/devices */
+ ami_print_init();
+ ami_clipboard_init();
+
+ options_read("PROGDIR:Resources/Options");
+ ami_messages_load();
+ ami_set_options(); /* check options and set defaults where required */
+
+ win_destroyed = false;
+ verbose_log = option_verbose_log;
+
+ nsscreentitle = ASPrintf("NetSurf %s",netsurf_version);
+
+ default_stylesheet_url = "file:///PROGDIR:Resources/amiga.css";
+ quirks_stylesheet_url = "file:///PROGDIR:Resources/quirks.css";
+ adblock_stylesheet_url = "file:///PROGDIR:Resources/adblock.css";
+
+ if(hubbub_initialise("PROGDIR:Resources/Aliases",myrealloc,NULL) != HUBBUB_OK)
+ {
+ die(messages_get("NoMemory"));
+ }
+
+ nscss_screen_dpi = INTTOFIX(72);
+ scroll_widget_fg_colour = 0x00aaaaaa;
+ scroll_widget_bg_colour = 0x00833c3c;
+ scroll_widget_arrow_colour = 0x00d6d6d6;
+
+ ami_amiupdate(); /* set env-vars for AmiUpdate */
+ ami_init_fonts();
+
+ plot=amiplot;
ami_init_menulabs();
if(option_context_menu) ami_context_menu_init();
@@ -462,17 +482,17 @@ void ami_openscreen(void)
if(screenmodereq = AllocAslRequest(ASL_ScreenModeRequest,NULL))
{
- AslRequestTags(screenmodereq,
+ if(AslRequestTags(screenmodereq,
ASLSM_MinDepth,16,
ASLSM_MaxDepth,32,
- TAG_DONE);
-
- id = screenmodereq->sm_DisplayID;
- option_modeid = malloc(20);
- sprintf(option_modeid,"0x%lx",id);
-
+ TAG_DONE))
+ {
+ id = screenmodereq->sm_DisplayID;
+ option_modeid = malloc(20);
+ sprintf(option_modeid,"0x%lx",id);
+ options_write("PROGDIR:Resources/Options");
+ }
FreeAslRequest(screenmodereq);
- options_write("PROGDIR:Resources/Options");
}
}