about summary refs log tree commit diff
path: root/surf.c
diff options
context:
space:
mode:
authorJens Nyberg <jens.nyberg@gmail.com>2013-02-12 20:36:56 +0100
committerChristoph Lohmann <20h@r-36.net>2013-02-12 21:10:43 +0100
commit3c1ed5d56af13f09a81beb00c59464972c36b2f0 (patch)
tree1e9e05b7d7eb15ae3fa683ee1eceddd0ba5158c5 /surf.c
parentRemove the redundant ctrl-l and ctrl-h description from the man page. (diff)
downloadsurf-3c1ed5d56af13f09a81beb00c59464972c36b2f0.tar.gz
surf-3c1ed5d56af13f09a81beb00c59464972c36b2f0.tar.bz2
surf-3c1ed5d56af13f09a81beb00c59464972c36b2f0.zip
Removed progress indicator
This removes the progress indicator and replaces it with
letters in the window title.

T/U: Trusted, Untrusted
P/-: Proxy, No proxy

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Diffstat (limited to 'surf.c')
-rw-r--r--surf.c78
1 files changed, 13 insertions, 65 deletions
diff --git a/surf.c b/surf.c
index cebd469..1c999dd 100644
--- a/surf.c
+++ b/surf.c
@@ -42,7 +42,7 @@ union Arg {
 };
 
 typedef struct Client {
-	GtkWidget *win, *scroll, *vbox, *indicator, *pane;
+	GtkWidget *win, *scroll, *vbox, *pane;
 	WebKitWebView *view;
 	WebKitWebInspector *inspector;
 	char *title, *linkhover;
@@ -84,6 +84,7 @@ static gboolean showxid = FALSE;
 static char winid[64];
 static gboolean usingproxy = 0;
 static char togglestat[5];
+static char pagestat[2];
 
 static void beforerequest(WebKitWebView *w, WebKitWebFrame *f,
 		WebKitWebResource *r, WebKitNetworkRequest *req,
@@ -113,13 +114,12 @@ static gboolean decidewindow(WebKitWebView *v, WebKitWebFrame *f,
 static void destroyclient(Client *c);
 static void destroywin(GtkWidget* w, Client *c);
 static void die(const char *errstr, ...);
-static void drawindicator(Client *c);
 static void eval(Client *c, const Arg *arg);
-static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c);
 static void find(Client *c, const Arg *arg);
 static void fullscreen(Client *c, const Arg *arg);
 static const char *getatom(Client *c, int a);
 static void gettogglestat(Client *c);
+static void getpagestat(Client *c);
 static char *geturi(Client *c);
 static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c);
 
@@ -370,7 +370,6 @@ destroyclient(Client *c) {
 	Client *p;
 
 	webkit_web_view_stop_loading(c->view);
-	gtk_widget_destroy(c->indicator);
 	gtk_widget_destroy(GTK_WIDGET(c->view));
 	gtk_widget_destroy(c->scroll);
 	gtk_widget_destroy(c->vbox);
@@ -403,51 +402,6 @@ die(const char *errstr, ...) {
 }
 
 static void
-drawindicator(Client *c) {
-	gint width;
-	const char *uri;
-	char *colorname;
-	GtkWidget *w;
-	GdkGC *gc;
-	GdkColor fg;
-
-	uri = geturi(c);
-	w = c->indicator;
-	width = c->progress * w->allocation.width / 100;
-	gc = gdk_gc_new(w->window);
-	if(strstr(uri, "https://") == uri) {
-		if(usingproxy) {
-			colorname = c->sslfailed? progress_proxy_untrust :
-				progress_proxy_trust;
-		} else {
-			colorname = c->sslfailed? progress_untrust :
-				progress_trust;
-		}
-	} else {
-		if(usingproxy) {
-			colorname = progress_proxy;
-		} else {
-			colorname = progress;
-		}
-	}
-
-	gdk_color_parse(colorname, &fg);
-	gdk_gc_set_rgb_fg_color(gc, &fg);
-	gdk_draw_rectangle(w->window,
-			w->style->bg_gc[GTK_WIDGET_STATE(w)],
-			TRUE, 0, 0, w->allocation.width, w->allocation.height);
-	gdk_draw_rectangle(w->window, gc, TRUE, 0, 0, width,
-			w->allocation.height);
-	g_object_unref(gc);
-}
-
-static gboolean
-exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c) {
-	drawindicator(c);
-	return TRUE;
-}
-
-static void
 find(Client *c, const Arg *arg) {
 	const char *s;
 
@@ -739,21 +693,12 @@ newclient(void) {
 			"resource-request-starting",
 			G_CALLBACK(beforerequest), c);
 
-	/* Indicator */
-	c->indicator = gtk_drawing_area_new();
-	gtk_widget_set_size_request(c->indicator, 0, indicator_thickness);
-	g_signal_connect (G_OBJECT (c->indicator), "expose_event",
-			G_CALLBACK (exposeindicator), c);
-
 	/* Arranging */
 	gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view));
 	gtk_container_add(GTK_CONTAINER(c->win), c->pane);
 	gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll);
-	gtk_container_add(GTK_CONTAINER(c->vbox), c->indicator);
 
 	/* Setup */
-	gtk_box_set_child_packing(GTK_BOX(c->vbox), c->indicator, FALSE,
-			FALSE, 0, GTK_PACK_START);
 	gtk_box_set_child_packing(GTK_BOX(c->vbox), c->scroll, TRUE,
 			TRUE, 0, GTK_PACK_START);
 	gtk_widget_grab_focus(GTK_WIDGET(c->view));
@@ -1117,23 +1062,26 @@ gettogglestat(Client *c){
 	togglestat[4] = '\0';
 }
 
+static void
+getpagestat(Client *c) {
+	pagestat[0] = c->sslfailed ? 'U' : 'T';
+	pagestat[1] = usingproxy ? 'P' : '-';
+}
 
 static void
 update(Client *c) {
 	char *t;
 
 	gettogglestat(c);
+	getpagestat(c);
 
 	if(c->linkhover) {
-		t = g_strdup_printf("%s| %s", togglestat, c->linkhover);
+		t = g_strdup_printf("%s:%s | %s", togglestat, pagestat, c->linkhover);
 	} else if(c->progress != 100) {
-		drawindicator(c);
-		gtk_widget_show(c->indicator);
-		t = g_strdup_printf("[%i%%] %s| %s", c->progress, togglestat,
-				c->title);
+		t = g_strdup_printf("[%i%%] %s:%s | %s", c->progress, togglestat,
+			pagestat, c->title);
 	} else {
-		gtk_widget_hide_all(c->indicator);
-		t = g_strdup_printf("%s| %s", togglestat, c->title);
+		t = g_strdup_printf("%s:%s | %s", togglestat, pagestat, c->title);
 	}
 
 	gtk_window_set_title(GTK_WINDOW(c->win), t);