static void open_cb (GtkWidget *w, gpointer d) { GtkWidget *dlg, *cnt, *lbl, *entry; dlg = gtk_dialog_new_with_buttons (_("Open URI"), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_default_size (GTK_WINDOW (dlg), 350, -1); cnt = gtk_dialog_get_content_area (GTK_DIALOG (dlg)); lbl = gtk_label_new (_("Enter URI or file name:")); gtk_label_set_xalign (GTK_LABEL (lbl), 0); gtk_widget_show (lbl); gtk_box_pack_start (GTK_BOX (cnt), lbl, TRUE, FALSE, 2); entry = gtk_entry_new (); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, "gtk-directory"); gtk_widget_show (entry); gtk_box_pack_start (GTK_BOX (cnt), entry, TRUE, FALSE, 2); g_signal_connect (G_OBJECT (entry), "icon-press", G_CALLBACK (select_file_cb), NULL); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (do_open_cb), dlg); if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_ACCEPT) load_uri (gtk_entry_get_text (GTK_ENTRY (entry))); gtk_widget_destroy (dlg); }
static HRESULT WINAPI PersistHistory_LoadHistory(IPersistHistory *iface, IStream *pStream, IBindCtx *pbc) { HTMLDocument *This = impl_from_IPersistHistory(iface); ULONG str_len, read; WCHAR *uri_str; IUri *uri; HRESULT hres; TRACE("(%p)->(%p %p)\n", This, pStream, pbc); if(!This->window) { FIXME("No current window\n"); return E_UNEXPECTED; } if(pbc) FIXME("pbc not supported\n"); if(This->doc_obj->client) { IOleCommandTarget *cmdtrg = NULL; hres = IOleClientSite_QueryInterface(This->doc_obj->client, &IID_IOleCommandTarget, (void**)&cmdtrg); if(SUCCEEDED(hres)) { IOleCommandTarget_Exec(cmdtrg, &CGID_ShellDocView, 138, 0, NULL, NULL); IOleCommandTarget_Release(cmdtrg); } } hres = IStream_Read(pStream, &str_len, sizeof(str_len), &read); if(FAILED(hres)) return hres; if(read != sizeof(str_len)) return E_FAIL; uri_str = heap_alloc((str_len+1)*sizeof(WCHAR)); if(!uri_str) return E_OUTOFMEMORY; hres = IStream_Read(pStream, uri_str, str_len*sizeof(WCHAR), &read); if(SUCCEEDED(hres) && read != str_len*sizeof(WCHAR)) hres = E_FAIL; if(SUCCEEDED(hres)) { uri_str[str_len] = 0; hres = create_uri(uri_str, 0, &uri); } heap_free(uri_str); if(FAILED(hres)) return hres; hres = load_uri(This->window, uri, BINDING_FROMHIST); IUri_Release(uri); return hres; }
gboolean completion_select_cb(GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, struct tab *t) { gchar *value; gtk_tree_model_get(model, iter, 0, &value, -1); load_uri(t, value); g_free(value); return (FALSE); }
static JSBool smjs_load_uri(JSContext *ctx, uintN argc, jsval *rval) { jsval *argv = JS_ARGV(ctx, rval); struct smjs_load_uri_hop *hop; struct download *download; JSString *jsstr; unsigned char *uri_string; struct uri *uri; if (argc < 2) return JS_FALSE; jsstr = JS_ValueToString(smjs_ctx, argv[0]); uri_string = JS_EncodeString(smjs_ctx, jsstr); uri = get_uri(uri_string, 0); if (!uri) return JS_FALSE; download = mem_alloc(sizeof(*download)); if (!download) { done_uri(uri); return JS_FALSE; } hop = mem_alloc(sizeof(*hop)); if (!hop) { mem_free(download); done_uri(uri); return JS_FALSE; } hop->callback = argv[1]; hop->ses = smjs_ses; if (!JS_AddNamedValueRoot(smjs_ctx, &hop->callback, "smjs_load_uri_hop.callback")) { mem_free(hop); mem_free(download); done_uri(uri); return JS_FALSE; } download->data = hop; download->callback = (download_callback_T *) smjs_loading_callback; load_uri(uri, NULL, download, PRI_MAIN, CACHE_MODE_NORMAL, -1); done_uri(uri); return JS_TRUE; }
GtkWidget * html_create_widget (GtkWidget * dlg) { GtkWidget *sw; WebKitWebSettings *settings; SoupSession *sess; const gchar *enc; sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); view = WEBKIT_WEB_VIEW (webkit_web_view_new ()); gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (view)); settings = webkit_web_view_get_settings (view); g_get_charset (&enc); g_object_set (G_OBJECT (settings), "default-encoding", enc); g_signal_connect (view, "hovering-over-link", G_CALLBACK (link_hover_cb), NULL); g_signal_connect (view, "navigation-policy-decision-requested", G_CALLBACK (link_cb), NULL); if (options.html_data.browser) g_signal_connect (view, "context-menu", G_CALLBACK (menu_cb), NULL); else g_signal_connect (view, "document-load-finished", G_CALLBACK (loaded_cb), NULL); sess = webkit_get_default_session (); soup_session_add_feature_by_type (sess, SOUP_TYPE_PROXY_RESOLVER_DEFAULT); g_object_set (G_OBJECT (sess), SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, TRUE, NULL); gtk_widget_show_all (sw); gtk_widget_grab_focus (GTK_WIDGET (view)); if (options.html_data.uri) load_uri (options.html_data.uri); else if (!options.html_data.browser) { GIOChannel *ch; inbuf = g_string_new (NULL); ch = g_io_channel_unix_new (0); g_io_channel_set_encoding (ch, NULL, NULL); g_io_channel_set_flags (ch, G_IO_FLAG_NONBLOCK, NULL); g_io_add_watch (ch, G_IO_IN | G_IO_HUP, handle_stdin, NULL); } return sw; }
void ses_load(struct session *ses, struct uri *uri, unsigned char *target_frame, struct location *target_location, enum cache_mode cache_mode, enum task_type task_type) { ses->loading.callback = (download_callback_T *) loading_callback; ses->loading.data = ses; ses->loading_uri = uri; ses->task.type = task_type; mem_free_set(&ses->task.target.frame, null_or_stracpy(target_frame)); ses->task.target.location = target_location; load_uri(ses->loading_uri, ses->referrer, &ses->loading, PRI_MAIN, cache_mode, -1); }
int main (int argc, char* argv[]) { gtk_init (&argc, &argv); if (!g_thread_supported ()) g_thread_init (NULL); printf("Uzbl start location: %s\n", argv[0]); strcpy(executable_path,argv[0]); strcat ((char *) XDG_CONFIG_HOME_default, getenv ("HOME")); strcat ((char *) XDG_CONFIG_HOME_default, "/.config"); GError *error = NULL; GOptionContext* context = g_option_context_new ("- some stuff here maybe someday"); g_option_context_add_main_entries (context, entries, NULL); g_option_context_add_group (context, gtk_get_option_group (TRUE)); g_option_context_parse (context, &argc, &argv, &error); /* initialize hash table */ bindings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, free_action); soup_session = webkit_get_default_session(); keycmd = g_string_new(""); settings_init (); commands_hash (); if (always_insert_mode) insert_mode = TRUE; GtkWidget* vbox = gtk_vbox_new (FALSE, 0); if (status_top) gtk_box_pack_start (GTK_BOX (vbox), create_mainbar (), FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_browser (), TRUE, TRUE, 0); if (!status_top) gtk_box_pack_start (GTK_BOX (vbox), create_mainbar (), FALSE, TRUE, 0); main_window = create_window (); gtk_container_add (GTK_CONTAINER (main_window), vbox); load_uri (web_view, uri); gtk_widget_grab_focus (GTK_WIDGET (web_view)); gtk_widget_show_all (main_window); xwin = GDK_WINDOW_XID (GTK_WIDGET (main_window)->window); printf("window_id %i\n",(int) xwin); printf("pid %i\n", getpid ()); printf("name: %s\n", instance_name); scbar_v = (GtkScrollbar*) gtk_vscrollbar_new (NULL); bar_v = gtk_range_get_adjustment((GtkRange*) scbar_v); scbar_h = (GtkScrollbar*) gtk_hscrollbar_new (NULL); bar_h = gtk_range_get_adjustment((GtkRange*) scbar_h); gtk_widget_set_scroll_adjustments ((GtkWidget*) web_view, bar_h, bar_v); if (!show_status) gtk_widget_hide(mainbar); if (fifo_dir) create_fifo (); if (socket_dir) create_socket(); gtk_main (); g_string_free(keycmd, TRUE); if (fifo_dir) unlink (fifo_path); if (socket_dir) unlink (socket_path); g_hash_table_destroy(bindings); g_hash_table_destroy(commands); return 0; }
GtkWidget * html_create_widget (GtkWidget * dlg) { GtkWidget *sw; WebKitSettings *settings; SoupSession *sess; sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), options.hscroll_policy, options.vscroll_policy); view = WEBKIT_WEB_VIEW (webkit_web_view_new ()); gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (view)); settings = webkit_web_view_get_settings (view); g_object_set (G_OBJECT(settings), "user-agent", "YAD3/" VERSION " (KHTML, like Gecko)", NULL); g_object_set (G_OBJECT(settings), "default-charset", "utf-8", NULL); g_object_set (G_OBJECT(settings), "enable-fullscreen", options.data.fullscreen, NULL); g_signal_connect (view, "decide-policy", G_CALLBACK (policy_cb), NULL); if (options.html_data.browser) { g_signal_connect (view, "context-menu", G_CALLBACK (menu_cb), NULL); if (!options.data.dialog_title) g_signal_connect (view, "notify::title", G_CALLBACK (title_cb), dlg); if (strcmp (options.data.window_icon, "yad") == 0) g_signal_connect (view, "notify::favicon", G_CALLBACK (icon_cb), dlg); } else { g_object_set (G_OBJECT(settings), "enable-caret-browsing", FALSE, NULL); g_object_set (G_OBJECT(settings), "enable-developer-extras", FALSE, NULL); g_object_set (G_OBJECT(settings), "enable-html5-database", FALSE, NULL); g_object_set (G_OBJECT(settings), "enable-html5-local-storage", FALSE, NULL); g_object_set (G_OBJECT(settings), "enable-offline-web-application-cache", FALSE, NULL); g_object_set (G_OBJECT(settings), "enable-page-cache", FALSE, NULL); g_object_set (G_OBJECT(settings), "enable-plugins", FALSE, NULL); g_object_set (G_OBJECT (settings), "enable-private-browsing", TRUE, NULL); g_signal_connect (view, "load-changed", G_CALLBACK (loaded_cb), NULL); } #if 0 sess = webkit_get_default_session (); soup_session_add_feature_by_type (sess, SOUP_TYPE_PROXY_RESOLVER_DEFAULT); g_object_set (G_OBJECT (sess), SOUP_SESSION_ACCEPT_LANGUAGE_AUTO, TRUE, NULL); #endif gtk_widget_show_all (sw); gtk_widget_grab_focus (GTK_WIDGET (view)); if (options.html_data.uri) load_uri (options.html_data.uri); else if (!options.html_data.browser) { GIOChannel *ch; inbuf = g_string_new (NULL); ch = g_io_channel_unix_new (0); g_io_channel_set_encoding (ch, NULL, NULL); g_io_channel_set_flags (ch, G_IO_FLAG_NONBLOCK, NULL); g_io_add_watch (ch, G_IO_IN | G_IO_HUP, handle_stdin, NULL); } return sw; }