From 0951de5c0e864c23fc23bf1c526f437a158ca48c Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sat, 13 Dec 2008 23:25:42 +0000 Subject: Clear display area when switching tabs Remove always_open_tabs Move pointer filenames to theme files svn path=/trunk/netsurf/; revision=5908 --- amiga/gui.c | 131 ++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 87 insertions(+), 44 deletions(-) (limited to 'amiga') diff --git a/amiga/gui.c b/amiga/gui.c index 156202ece..c52ea7490 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -68,6 +68,8 @@ #include #include "amiga/save_complete.h" #include "amiga/fetch_file.h" +#include "amiga/fetch_mailto.h" +#include "amiga/search.h" #ifdef WITH_HUBBUB #include @@ -96,7 +98,6 @@ char *default_stylesheet_url; char *adblock_stylesheet_url; -struct gui_window *search_current_window = NULL; struct MsgPort *appport; struct MsgPort *msgport; @@ -120,26 +121,48 @@ struct BitMap *mouseptrbm[AMI_LASTPOINTER+1]; int mouseptrcurrent=0; char *ptrs[AMI_LASTPOINTER+1] = { - "Resources/Pointers/Default", - "Resources/Pointers/Point", - "Resources/Pointers/Caret", - "Resources/Pointers/Menu", - "Resources/Pointers/Up", - "Resources/Pointers/Down", - "Resources/Pointers/Left", - "Resources/Pointers/Right", - "Resources/Pointers/RightUp", - "Resources/Pointers/LeftDown", - "Resources/Pointers/LeftUp", - "Resources/Pointers/RightDown", - "Resources/Pointers/Cross", - "Resources/Pointers/Move", - "Resources/Pointers/Wait", // not used - "Resources/Pointers/Help", - "Resources/Pointers/NoDrop", - "Resources/Pointers/NotAllowed", - "Resources/Pointers/Progress", - "Resources/Pointers/Blank"}; + "ptr_default", + "ptr_point", + "ptr_caret", + "ptr_menu", + "ptr_up", + "ptr_down", + "ptr_left", + "ptr_right", + "ptr_rightup", + "ptr_leftdown", + "ptr_leftup", + "ptr_rightdown", + "ptr_cross", + "ptr_move", + "ptr_wait", // not used + "ptr_help", + "ptr_nodrop", + "ptr_notallowed", + "ptr_progress", + "ptr_blank"}; + +char *ptrs32[AMI_LASTPOINTER+1] = { + "ptr32_default", + "ptr32_point", + "ptr32_caret", + "ptr32_menu", + "ptr32_up", + "ptr32_down", + "ptr32_left", + "ptr32_right", + "ptr32_rightup", + "ptr32_leftdown", + "ptr32_leftup", + "ptr32_rightdown", + "ptr32_cross", + "ptr32_move", + "ptr32_wait", // not used + "ptr32_help", + "ptr32_nodrop", + "ptr32_notallowed", + "ptr32_progress", + "ptr32_blank"}; void ami_update_throbber(struct gui_window_2 *g,bool redraw); void ami_update_buttons(struct gui_window_2 *); @@ -204,7 +227,6 @@ void gui_init(int argc, char** argv) verbose_log = option_verbose_log; - ami_init_mouse_pointers(); nsscreentitle = ASPrintf("NetSurf %s",netsurf_version); if(lock=Lock("Resources/LangNames",ACCESS_READ)) @@ -255,6 +277,8 @@ void gui_init(int argc, char** argv) } #endif + css_screen_dpi = 72; + if((!option_cookie_file) || (option_cookie_file[0] == '\0')) option_cookie_file = (char *)strdup("Resources/Cookies"); @@ -347,6 +371,8 @@ void gui_init(int argc, char** argv) AddPart(&throbberfile,"Theme",100); messages_load(throbberfile); + ami_init_mouse_pointers(); + ami_get_theme_filename(&throbberfile,"theme_throbber"); throbber_frames=atoi(messages_get("theme_throbber_frames")); @@ -406,6 +432,7 @@ void gui_init2(int argc, char** argv) notalreadyrunning = ami_arexx_init(); ami_fetch_file_register(); + ami_fetch_mailto_register(); InitRastPort(&dummyrp); dummyrp.BitMap = p96AllocBitMap(1,1,32, @@ -590,6 +617,23 @@ void ami_handle_msg(void) continue; } } + else if(node->Type == AMINS_FINDWINDOW) + { + if(ami_search_event()) + { + if(IsMinListEmpty(window_list)) + { + /* last window closed, so exit */ + netsurf_quit = true; + } + break; + } + else + { + node = nnode; + continue; + } + } while((result = RA_HandleInput(gwin->objects[OID_MAIN],&code)) != WMHI_LASTMSG) { @@ -1114,6 +1158,10 @@ void ami_switch_tab(struct gui_window_2 *gwin,bool redraw) if(redraw) { + struct IBox *bbox; + GetAttr(SPACE_AreaBox,gwin->gadgets[GID_BROWSER],(ULONG *)&bbox); + p96RectFill(gwin->win->RPort,bbox->Left,bbox->Top,bbox->Width-1,bbox->Height-1,0xffffffff); + browser_window_update(gwin->bw,false); if((gwin->bw->window->scrollx) || (gwin->bw->window->scrolly)) @@ -1288,16 +1336,6 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, if((bw->browser_window_type == BROWSER_WINDOW_IFRAME) && option_no_iframes) return NULL; - if(option_force_tabs && (bw->browser_window_type == BROWSER_WINDOW_NORMAL)) - { - /* option_force_tabs reverses the new_tab parameter. - * We can still open new windows by setting new_tab to true. - */ - - if(new_tab) new_tab = false; - else new_tab = true; - } - if(option_kiosk_mode) new_tab = false; if(clone) @@ -1801,6 +1839,7 @@ void gui_window_destroy(struct gui_window *g) } curbw = NULL; + if(g->shared->searchwin) ami_search_close(); DisposeObject(g->shared->objects[OID_MAIN]); DeleteLayer(0,g->shared->rp.Layer); @@ -1995,9 +2034,13 @@ void ami_do_redraw(struct gui_window_2 *g) else { */ - content_redraw(c, -hcurrent,-vcurrent,width,height, - 0,0,c->width,c->height, - g->bw->scale,0xFFFFFF); + content_redraw(c, -hcurrent /* * g->bw->scale */, + -vcurrent /* * g->bw->scale */, + width /* * g->bw->scale */, + height /* * g->bw->scale */, + 0,0,c->width /* * g->bw->scale */, + c->height /* * g->bw->scale */, + g->bw->scale,0xFFFFFF); // } @@ -2032,6 +2075,8 @@ void gui_window_set_scroll(struct gui_window *g, int sx, int sy) if(!g) return; if(sx<0) sx=0; if(sy<0) sy=0; + if(sx > g->shared->bw->current_content->width) sx = g->shared->bw->current_content->width; + if(sy > g->shared->bw->current_content->height) sy = g->shared->bw->current_content->height; if(g->tab_node) GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab); @@ -2053,7 +2098,8 @@ void gui_window_set_scroll(struct gui_window *g, int sx, int sy) void gui_window_scroll_visible(struct gui_window *g, int x0, int y0, int x1, int y1) { -// printf("scr vis\n"); + gui_window_set_scroll(g, x0, y0); + ami_do_redraw(g->shared); } void gui_window_position_frame(struct gui_window *g, int x0, int y0, @@ -2218,10 +2264,12 @@ void ami_init_mouse_pointers(void) BPTR ptrfile = 0; mouseptrbm[i] = NULL; mouseptrobj[i] = NULL; + char ptrfname[1024]; if(option_truecolour_mouse_pointers) { - if(dobj = GetIconTags(ptrs[i],ICONGETA_UseFriendBitMap,TRUE,TAG_DONE)) + ami_get_theme_filename(&ptrfname,ptrs32[i]); + if(dobj = GetIconTags(ptrfname,ICONGETA_UseFriendBitMap,TRUE,TAG_DONE)) { if(IconControl(dobj, ICONCTRLA_GetImageDataFormat, &format, TAG_DONE)) { @@ -2272,7 +2320,8 @@ void ami_init_mouse_pointers(void) if(!mouseptrobj[i]) { - if(ptrfile = Open(ptrs[i],MODE_OLDFILE)) + ami_get_theme_filename(&ptrfname,ptrs[i]); + if(ptrfile = Open(ptrfname,MODE_OLDFILE)) { int mx,my; UBYTE *pprefsbuf = AllocVec(1061,MEMF_PRIVATE | MEMF_CLEAR); @@ -2609,12 +2658,6 @@ void gui_launch_url(const char *url) { } -bool gui_search_term_highlighted(struct gui_window *g, - unsigned start_offset, unsigned end_offset, - unsigned *start_idx, unsigned *end_idx) -{ -} - void ami_scroller_hook(struct Hook *hook,Object *object,struct IntuiMessage *msg) { ULONG gid,x,y; -- cgit v1.2.3