# HG changeset patch # User Christophe Lincoln # Date 1489492870 -3600 # Node ID f4f9f41cf0048ee5602680f6585a87f7bccf8cf8 # Parent 639b611287cb79c03ec2d8b12e54264a5dccd9ee Add src/snippets.c for unused but usable code :-) diff -r 639b611287cb -r f4f9f41cf004 src/snippets.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/snippets.c Tue Mar 14 13:01:10 2017 +0100 @@ -0,0 +1,110 @@ +/* + * TazWeb code snippets: small region of re-usable source code + * + * This file is used for ideas, proposal and to keep removed code under + * the hand. + * + * Copyright (C) 2011-2017 SliTaz GNU/Linux - BSD License + * See AUTHORS and LICENSE for detailed information + * + */ + +/* Cmdline parsing with getopt to handle -p -s */ +while ((c = getopt(argc, argv, "psk:u")) != -1) { + switch (c) { + case 'p': + notoolbar++; + break; + + case 's': + nocookies++; + break; + + case 'k': + kiosk++; + break; + + case 'u': + useragent = optarg; + break; + + default: + help(); + } +} + +/* + * + * Callback + * + * + **********************************************************************/ + +/* Zoom out and in callback function + * + * Not sure zooming is usefull in menu, but with GDK keybinding or + * mouse Ctrl+scroll it would be nice! + * + */ + +static void +zoom_out_cb(GtkWidget *widget, WebKitWebView* webview) +{ + webkit_web_view_zoom_out(webview); +} + +static void +zoom_in_cb(GtkWidget *widget, WebKitWebView* webview) +{ + webkit_web_view_zoom_in(webview); +} + +/* Fullscreen and unfullscreen callback function + * + * Buggy: first window is going fullscreen + * + */ + +static void +fullscreen_cb(GtkWidget* window, gpointer data) +{ + GdkWindowState state; + state = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(mainwindow))); + + if(state & GDK_WINDOW_STATE_FULLSCREEN) + gtk_window_unfullscreen(GTK_WINDOW(mainwindow)); + else + gtk_window_fullscreen(GTK_WINDOW(mainwindow)); +} + +/* Add items to WebKit contextual menu */ +static void +populate_menu_cb(WebKitWebView *webview, GtkMenu *menu, gpointer data) +{ + + /* Zoom in */ + item = gtk_image_menu_item_new_with_label(_("Zoom in")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), + gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + g_signal_connect(item, "activate", G_CALLBACK(zoom_in_cb), webview); + + /* Zoom out */ + item = gtk_image_menu_item_new_with_label(_("Zoom out")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), + gtk_image_new_from_stock(GTK_STOCK_ZOOM_OUT, GTK_ICON_SIZE_MENU)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + g_signal_connect(item, "activate", G_CALLBACK(zoom_out_cb), webview); + + /* Fullscreen */ + item = gtk_image_menu_item_new_with_label(_("Fullscreen mode")); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), + gtk_image_new_from_stock(GTK_STOCK_FULLSCREEN, GTK_ICON_SIZE_MENU)); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + g_signal_connect(item, "activate", G_CALLBACK(fullscreen_cb), webview); + + /* Separator */ + item = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); + +}