Update url setting API to return nserror code instead of calling warn_user
This commit is contained in:
parent
4b941297aa
commit
7ace528729
|
@ -4774,12 +4774,11 @@ static void gui_window_set_status(struct gui_window *g, const char *text)
|
|||
}
|
||||
}
|
||||
|
||||
static void gui_window_set_url(struct gui_window *g, const char *url)
|
||||
static nserror gui_window_set_url(struct gui_window *g, const char *url)
|
||||
{
|
||||
int cur_tab = 0;
|
||||
|
||||
if(!g) return;
|
||||
if(!url) return;
|
||||
|
||||
if(g->tab_node && (g->shared->tabs > 1)) GetAttr(CLICKTAB_Current,
|
||||
g->shared->objects[GID_TABS], (ULONG *)&cur_tab);
|
||||
|
@ -4791,6 +4790,8 @@ static void gui_window_set_url(struct gui_window *g, const char *url)
|
|||
}
|
||||
|
||||
ami_update_buttons(g->shared);
|
||||
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ EVMULT_OUT aes_event_out;
|
|||
short aes_msg_out[8];
|
||||
|
||||
bool gui_window_get_scroll(struct gui_window *w, int *sx, int *sy);
|
||||
static void gui_window_set_url(struct gui_window *w, const char *url);
|
||||
static nserror gui_window_set_url(struct gui_window *w, const char *url);
|
||||
|
||||
/**
|
||||
* Core atari event processing.
|
||||
|
@ -553,7 +553,7 @@ void gui_window_set_pointer(struct gui_window *gw, gui_pointer_shape shape)
|
|||
}
|
||||
|
||||
|
||||
static void gui_window_set_url(struct gui_window *w, const char *url)
|
||||
static nserror gui_window_set_url(struct gui_window *w, const char *url)
|
||||
{
|
||||
int l;
|
||||
|
||||
|
@ -572,6 +572,8 @@ static void gui_window_set_url(struct gui_window *w, const char *url)
|
|||
if(input_window == w->root->active_gui_window) {
|
||||
toolbar_set_url(w->root->toolbar, url);
|
||||
}
|
||||
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
char * gui_window_get_url(struct gui_window *gw)
|
||||
|
|
|
@ -2166,7 +2166,7 @@ void gui_window_set_status(struct gui_window *_g, const char *text)
|
|||
g->top_view->UnlockLooper();
|
||||
}
|
||||
|
||||
void gui_window_set_url(struct gui_window *_g, const char *url)
|
||||
nserror gui_window_set_url(struct gui_window *_g, const char *url)
|
||||
{
|
||||
struct beos_scaffolding *g = nsbeos_get_scaffold(_g);
|
||||
if (g->top_level != _g) return;
|
||||
|
@ -2178,6 +2178,8 @@ void gui_window_set_url(struct gui_window *_g, const char *url)
|
|||
g->url_bar->SetText(url);
|
||||
|
||||
g->top_view->UnlockLooper();
|
||||
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
void gui_window_start_throbber(struct gui_window* _g)
|
||||
|
|
|
@ -200,7 +200,7 @@ void nsbeos_scaffolding_destroy(nsbeos_scaffolding *scaffold);
|
|||
void nsbeos_scaffolding_popup_menu(nsbeos_scaffolding *g, BPoint where);
|
||||
|
||||
void gui_window_set_title(struct gui_window *_g, const char *title);
|
||||
void gui_window_set_url(struct gui_window *_g, const char *url);
|
||||
nserror gui_window_set_url(struct gui_window *_g, const char *url);
|
||||
void gui_window_set_icon(struct gui_window *_g, hlcache_handle *icon);
|
||||
void gui_window_set_status(struct gui_window *_g, const char *text);
|
||||
void gui_window_start_throbber(struct gui_window* _g);
|
||||
|
|
|
@ -194,9 +194,10 @@ static void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape
|
|||
}
|
||||
}
|
||||
|
||||
static void gui_window_set_url(struct gui_window *g, const char *url)
|
||||
static nserror gui_window_set_url(struct gui_window *g, const char *url)
|
||||
{
|
||||
[(BrowserViewController *)g setUrl: [NSString stringWithUTF8String: url]];
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
static void gui_window_start_throbber(struct gui_window *g)
|
||||
|
|
|
@ -769,7 +769,6 @@ nserror browser_window_create(enum browser_window_create_flags flags,
|
|||
|
||||
|
||||
if ((ret = calloc(1, sizeof(struct browser_window))) == NULL) {
|
||||
warn_user("NoMemory", 0);
|
||||
return NSERROR_NOMEM;
|
||||
}
|
||||
|
||||
|
@ -1784,18 +1783,18 @@ static void browser_window_destroy_internal(struct browser_window *bw)
|
|||
* \param bw Browser window to update URL bar for.
|
||||
* \param url URL for content displayed by bw including any fragment.
|
||||
*/
|
||||
static inline void browser_window_refresh_url_bar_internal(
|
||||
struct browser_window *bw, nsurl *url)
|
||||
static inline nserror
|
||||
browser_window_refresh_url_bar_internal(struct browser_window *bw, nsurl *url)
|
||||
{
|
||||
assert(bw);
|
||||
assert(url);
|
||||
|
||||
if (bw->parent != NULL) {
|
||||
/* Not root window; don't set a URL in GUI URL bar */
|
||||
return;
|
||||
if ((bw->parent != NULL) || (bw->window == NULL)) {
|
||||
/* Not root window or no gui window so do not set a URL */
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
guit->window->set_url(bw->window, nsurl_access(url));
|
||||
return guit->window->set_url(bw->window, nsurl_access(url));
|
||||
}
|
||||
|
||||
|
||||
|
@ -1811,39 +1810,38 @@ void browser_window_destroy(struct browser_window *bw)
|
|||
}
|
||||
|
||||
/* exported interface, documented in desktop/browser.h */
|
||||
void browser_window_refresh_url_bar(struct browser_window *bw)
|
||||
nserror browser_window_refresh_url_bar(struct browser_window *bw)
|
||||
{
|
||||
nserror ret;
|
||||
nsurl *display_url;
|
||||
|
||||
assert(bw);
|
||||
|
||||
if (bw->parent != NULL) {
|
||||
/* Not root window; don't set a URL in GUI URL bar */
|
||||
return;
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
if (bw->current_content == NULL) {
|
||||
/* TODO: set "about:blank"? */
|
||||
return;
|
||||
}
|
||||
|
||||
if (bw->frag_id == NULL) {
|
||||
browser_window_refresh_url_bar_internal(bw,
|
||||
/* no content so return about:blank */
|
||||
ret = browser_window_refresh_url_bar_internal(bw,
|
||||
corestring_nsurl_about_blank);
|
||||
} else if (bw->frag_id == NULL) {
|
||||
ret = browser_window_refresh_url_bar_internal(bw,
|
||||
hlcache_handle_get_url(bw->current_content));
|
||||
} else {
|
||||
nsurl *display_url;
|
||||
nserror error;
|
||||
|
||||
/* Combine URL and Fragment */
|
||||
error = nsurl_refragment(
|
||||
ret = nsurl_refragment(
|
||||
hlcache_handle_get_url(bw->current_content),
|
||||
bw->frag_id, &display_url);
|
||||
if (error != NSERROR_OK) {
|
||||
warn_user("NoMemory", 0);
|
||||
return;
|
||||
if (ret == NSERROR_OK) {
|
||||
ret = browser_window_refresh_url_bar_internal(bw,
|
||||
display_url);
|
||||
nsurl_unref(display_url);
|
||||
}
|
||||
|
||||
browser_window_refresh_url_bar_internal(bw, display_url);
|
||||
nsurl_unref(display_url);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1989,11 +1987,13 @@ nserror browser_window_navigate(struct browser_window *bw,
|
|||
case NSERROR_OK:
|
||||
bw->loading_content = c;
|
||||
browser_window_start_throbber(bw);
|
||||
browser_window_refresh_url_bar_internal(bw, url);
|
||||
error = browser_window_refresh_url_bar_internal(bw, url);
|
||||
break;
|
||||
|
||||
case NSERROR_NO_FETCH_HANDLER: /* no handler for this type */
|
||||
/** @todo does this always try and download even unverifiable content? */
|
||||
/** \todo does this always try and download even
|
||||
* unverifiable content?
|
||||
*/
|
||||
error = guit->browser->launch_url(url);
|
||||
break;
|
||||
|
||||
|
@ -2098,7 +2098,8 @@ const char* browser_window_get_title(struct browser_window *bw)
|
|||
return content_get_title(bw->current_content);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
/* no content so return about:blank */
|
||||
return nsurl_access(corestring_nsurl_about_blank);
|
||||
}
|
||||
|
||||
/* Exported interface, documented in browser.h */
|
||||
|
|
|
@ -357,7 +357,7 @@ void browser_window_set_gadget_filename(struct browser_window *bw,
|
|||
*
|
||||
* \param bw Browser window to update URL bar for.
|
||||
*/
|
||||
void browser_window_refresh_url_bar(struct browser_window *bw);
|
||||
nserror browser_window_refresh_url_bar(struct browser_window *bw);
|
||||
|
||||
/**
|
||||
* Handle mouse clicks in a browser window.
|
||||
|
|
|
@ -42,8 +42,9 @@ static void gui_default_window_set_title(struct gui_window *g, const char *title
|
|||
{
|
||||
}
|
||||
|
||||
static void gui_default_window_set_url(struct gui_window *g, const char *url)
|
||||
static nserror gui_default_window_set_url(struct gui_window *g, const char *url)
|
||||
{
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
static void gui_default_window_start_throbber(struct gui_window *g)
|
||||
|
|
|
@ -184,7 +184,7 @@ struct gui_window_table {
|
|||
* \param gw window to update.
|
||||
* \param url The url to use as icon.
|
||||
*/
|
||||
void (*set_url)(struct gui_window *gw, const char *url);
|
||||
nserror (*set_url)(struct gui_window *gw, const char *url);
|
||||
|
||||
/**
|
||||
* Set a favicon for a gui window.
|
||||
|
|
|
@ -1896,10 +1896,11 @@ gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
static nserror
|
||||
gui_window_set_url(struct gui_window *g, const char *url)
|
||||
{
|
||||
fbtk_set_text(g->url, url);
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -2309,12 +2309,16 @@ void gui_window_set_title(struct gui_window *gw, const char *title)
|
|||
}
|
||||
|
||||
|
||||
void gui_window_set_url(struct gui_window *_g, const char *url)
|
||||
nserror gui_window_set_url(struct gui_window *gw, const char *url)
|
||||
{
|
||||
struct nsgtk_scaffolding *g = nsgtk_get_scaffold(_g);
|
||||
if (g->top_level != _g) return;
|
||||
gtk_entry_set_text(GTK_ENTRY(g->url_bar), url);
|
||||
gtk_editable_set_position(GTK_EDITABLE(g->url_bar), -1);
|
||||
struct nsgtk_scaffolding *g;
|
||||
|
||||
g = nsgtk_get_scaffold(gw);
|
||||
if (g->top_level == gw) {
|
||||
gtk_entry_set_text(GTK_ENTRY(g->url_bar), url);
|
||||
gtk_editable_set_position(GTK_EDITABLE(g->url_bar), -1);
|
||||
}
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
void gui_window_start_throbber(struct gui_window* _g)
|
||||
|
|
|
@ -235,7 +235,7 @@ nserror nsgtk_scaffolding_new_tab(struct gui_window *gw);
|
|||
|
||||
/* core acessors */
|
||||
void gui_window_set_title(struct gui_window *g, const char *title);
|
||||
void gui_window_set_url(struct gui_window *g, const char *url);
|
||||
nserror gui_window_set_url(struct gui_window *g, const char *url);
|
||||
void gui_window_start_throbber(struct gui_window *g);
|
||||
void gui_window_stop_throbber(struct gui_window *g);
|
||||
|
||||
|
|
|
@ -251,10 +251,11 @@ gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
|
|||
fprintf(stdout, "WINDOW SET_POINTER WIN %u POINTER %s\n", g->win_num, ptr_name);
|
||||
}
|
||||
|
||||
static void
|
||||
static nserror
|
||||
gui_window_set_url(struct gui_window *g, const char *url)
|
||||
{
|
||||
fprintf(stdout, "WINDOW SET_URL WIN %u URL %s\n", g->win_num, url);
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
@ -1052,13 +1052,14 @@ void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
|
|||
|
||||
|
||||
/* exported function documented in riscos/window.h */
|
||||
void gui_window_set_url(struct gui_window *g, const char *url)
|
||||
nserror gui_window_set_url(struct gui_window *g, const char *url)
|
||||
{
|
||||
if (!g->toolbar)
|
||||
return;
|
||||
if (g->toolbar) {
|
||||
ro_toolbar_set_url(g->toolbar, url, true, false);
|
||||
ro_gui_url_complete_start(g->toolbar);
|
||||
}
|
||||
|
||||
ro_toolbar_set_url(g->toolbar, url, true, false);
|
||||
ro_gui_url_complete_start(g->toolbar);
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ bool ro_gui_window_check_menu(wimp_menu *menu);
|
|||
* \param g gui_window to update
|
||||
* \param url new url for address bar
|
||||
*/
|
||||
void gui_window_set_url(struct gui_window *g, const char *url);
|
||||
nserror gui_window_set_url(struct gui_window *g, const char *url);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -760,6 +760,8 @@ nsws_window_command(HWND hwnd,
|
|||
int identifier,
|
||||
HWND ctrl_window)
|
||||
{
|
||||
nserror ret;
|
||||
|
||||
LOG(("notification_code %x identifier %x ctrl_window %p",
|
||||
notification_code, identifier, ctrl_window));
|
||||
|
||||
|
@ -781,11 +783,14 @@ nsws_window_command(HWND hwnd,
|
|||
break;
|
||||
|
||||
case IDM_FILE_OPEN_WINDOW:
|
||||
browser_window_create(BW_CREATE_NONE,
|
||||
ret = browser_window_create(BW_CREATE_NONE,
|
||||
NULL,
|
||||
NULL,
|
||||
gw->bw,
|
||||
NULL);
|
||||
if (ret != NSERROR_OK) {
|
||||
warn_user(messages_get_errorcode(ret), 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDM_FILE_CLOSE_WINDOW:
|
||||
|
@ -1657,11 +1662,11 @@ struct nsws_pointers *nsws_get_pointers(void)
|
|||
return &nsws_pointer;
|
||||
}
|
||||
|
||||
static void gui_window_set_url(struct gui_window *w, const char *url)
|
||||
static nserror gui_window_set_url(struct gui_window *w, const char *url)
|
||||
{
|
||||
if (w == NULL)
|
||||
return;
|
||||
SendMessage(w->urlbar, WM_SETTEXT, 0, (LPARAM) url);
|
||||
|
||||
return NSERROR_OK;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue