Lines Matching refs:ctx
31 static void win_cb_destroy(GtkWidget *win, struct browser_context *ctx) in win_cb_destroy() argument
34 if (ctx->gtk_main_started) in win_cb_destroy()
39 static void browser_update_title(struct browser_context *ctx) in browser_update_title() argument
43 if (ctx->hover_link) { in browser_update_title()
44 gtk_window_set_title(GTK_WINDOW(ctx->win), ctx->hover_link); in browser_update_title()
48 if (ctx->progress == 100) { in browser_update_title()
49 gtk_window_set_title(GTK_WINDOW(ctx->win), in browser_update_title()
50 ctx->title ? ctx->title : in browser_update_title()
55 snprintf(buf, sizeof(buf), "[%d%%] %s", ctx->progress, in browser_update_title()
56 ctx->title ? ctx->title : "Hotspot 2.0 client"); in browser_update_title()
57 gtk_window_set_title(GTK_WINDOW(ctx->win), buf); in browser_update_title()
61 static void process_request_starting_uri(struct browser_context *ctx, in process_request_starting_uri() argument
67 ctx->success = atoi(uri + 6); in process_request_starting_uri()
74 ctx->success = 1; in process_request_starting_uri()
79 if (ctx->gtk_main_started) { in process_request_starting_uri()
81 ctx->gtk_main_started = 0; in process_request_starting_uri()
83 ctx->quit_gtk_main = 1; in process_request_starting_uri()
93 struct browser_context *ctx) in view_cb_notify_estimated_load_progress() argument
95 ctx->progress = 100 * webkit_web_view_get_estimated_load_progress(view); in view_cb_notify_estimated_load_progress()
97 ctx->progress); in view_cb_notify_estimated_load_progress()
98 browser_update_title(ctx); in view_cb_notify_estimated_load_progress()
105 struct browser_context *ctx) in view_cb_resource_load_starting() argument
110 process_request_starting_uri(ctx, uri); in view_cb_resource_load_starting()
117 struct browser_context *ctx) in view_cb_decide_policy() argument
146 process_request_starting_uri(ctx, uri); in view_cb_decide_policy()
160 struct browser_context *ctx) in view_cb_mouse_target_changed() argument
173 os_free(ctx->hover_link); in view_cb_mouse_target_changed()
175 ctx->hover_link = os_strdup(uri); in view_cb_mouse_target_changed()
177 ctx->hover_link = NULL; in view_cb_mouse_target_changed()
179 browser_update_title(ctx); in view_cb_mouse_target_changed()
184 struct browser_context *ctx) in view_cb_notify_title() argument
188 title = webkit_web_view_get_title(ctx->view); in view_cb_notify_title()
190 os_free(ctx->title); in view_cb_notify_title()
191 ctx->title = os_strdup(title); in view_cb_notify_title()
192 browser_update_title(ctx); in view_cb_notify_title()
198 struct browser_context *ctx) in view_cb_notify_progress() argument
200 ctx->progress = 100 * webkit_web_view_get_progress(view); in view_cb_notify_progress()
202 ctx->progress); in view_cb_notify_progress()
203 browser_update_title(ctx); in view_cb_notify_progress()
208 struct browser_context *ctx) in view_cb_notify_load_status() argument
213 if (ctx->quit_gtk_main) { in view_cb_notify_load_status()
215 ctx->gtk_main_started = 0; in view_cb_notify_load_status()
225 struct browser_context *ctx) in view_cb_resource_request_starting() argument
233 process_request_starting_uri(ctx, uri); in view_cb_resource_request_starting()
240 struct browser_context *ctx) in view_cb_mime_type_policy_decision() argument
255 struct browser_context *ctx) in view_cb_download_requested() argument
265 gchar *uri, struct browser_context *ctx) in view_cb_hovering_over_link() argument
269 os_free(ctx->hover_link); in view_cb_hovering_over_link()
271 ctx->hover_link = os_strdup(uri); in view_cb_hovering_over_link()
273 ctx->hover_link = NULL; in view_cb_hovering_over_link()
275 browser_update_title(ctx); in view_cb_hovering_over_link()
281 struct browser_context *ctx) in view_cb_title_changed() argument
284 os_free(ctx->title); in view_cb_title_changed()
285 ctx->title = os_strdup(title); in view_cb_title_changed()
286 browser_update_title(ctx); in view_cb_title_changed()
302 struct browser_context ctx; in hs20_web_browser() local
304 memset(&ctx, 0, sizeof(ctx)); in hs20_web_browser()
316 ctx.win = gtk_window_new(GTK_WINDOW_TOPLEVEL); in hs20_web_browser()
317 gtk_window_set_role(GTK_WINDOW(ctx.win), "Hotspot 2.0 client"); in hs20_web_browser()
318 gtk_window_set_default_size(GTK_WINDOW(ctx.win), 800, 600); in hs20_web_browser()
324 g_signal_connect(G_OBJECT(ctx.win), "destroy", in hs20_web_browser()
325 G_CALLBACK(win_cb_destroy), &ctx); in hs20_web_browser()
328 ctx.view = view; in hs20_web_browser()
332 &ctx); in hs20_web_browser()
334 G_CALLBACK(view_cb_resource_load_starting), &ctx); in hs20_web_browser()
336 G_CALLBACK(view_cb_decide_policy), &ctx); in hs20_web_browser()
338 G_CALLBACK(view_cb_mouse_target_changed), &ctx); in hs20_web_browser()
340 G_CALLBACK(view_cb_notify_title), &ctx); in hs20_web_browser()
343 G_CALLBACK(view_cb_notify_load_status), &ctx); in hs20_web_browser()
345 G_CALLBACK(view_cb_notify_progress), &ctx); in hs20_web_browser()
347 G_CALLBACK(view_cb_resource_request_starting), &ctx); in hs20_web_browser()
349 G_CALLBACK(view_cb_mime_type_policy_decision), &ctx); in hs20_web_browser()
351 G_CALLBACK(view_cb_download_requested), &ctx); in hs20_web_browser()
353 G_CALLBACK(view_cb_hovering_over_link), &ctx); in hs20_web_browser()
355 G_CALLBACK(view_cb_title_changed), &ctx); in hs20_web_browser()
359 gtk_container_add(GTK_CONTAINER(ctx.win), GTK_WIDGET(scroll)); in hs20_web_browser()
362 gtk_widget_show_all(ctx.win); in hs20_web_browser()
393 ctx.gtk_main_started = 1; in hs20_web_browser()
395 gtk_widget_destroy(ctx.win); in hs20_web_browser()
399 free(ctx.hover_link); in hs20_web_browser()
400 free(ctx.title); in hs20_web_browser()
401 return ctx.success; in hs20_web_browser()