TazWeb - SliTaz Web Browser
================================================================================


TazWeb is a modern, radically simple and very light web browser providing all
needed functions for daily browsing on the internet. TazWeb is aware of users
privacy, it handle cookies but will NOT store any passwords or other user info. 

It consists of a single window with one small toolbar using buttons, a URL and 
search entry, but no menubar. Please keep the code simple and clean. If you are 
motivated and want to add some more functionality, please talk to the AUTHOR 
before committing anything in the repos.

This application has been created for Tazpanel and future SliTaz integrated
Web applications and it's become a daily usable browser. The idea with TazWeb 
is to have a minimal interface, the approach is to build all of the GUI with 
xHTML and CSS like in TazPanel or well-known web applications.

For general and end-user documentation have a look at doc/tazweb.html.
TazWeb is published, like webkit source under a free BSD license.

Major features:

    * Tabbed browsing (under development: 2.0 next generation)
    * Cookie support
    * Download support
    * Text based config file
    * Search engine entry box
    * Bookmarks manager
    * Print, including to pdf
    * Rich contextual menu
    * Private browsing


Build and install
--------------------------------------------------------------------------------
TazWeb depends on GTK and libwebkit. To build and test, simply:

  $ make
  $ ./tazweb

Generate translation files:

  $ make msgfmt

Install with 'make install' (PREFIX and DESTDIR are supported for packaging).


Qt Build and install
--------------------------------------------------------------------------------
The Qt port is actually only a little toy to play with!

  $ make qt
  $ ./tazweb-qt


TazWeb helper script
--------------------------------------------------------------------------------
TazWeb uses a set of SHell functions from /usr/lib/tazweb/helper.sh. These
functions are used to handle bookmarks and cookies. The GTK gui parts use
yad and some functions will generate html files to be used by tazweb menu
or buttons.


Coding notes
--------------------------------------------------------------------------------

    * To get the filename of a WebKitDownload:
      file = webkit_download_get_suggested_filename (download);
      
    * Check mime-type before download (needs a callback function)
      g_signal_connect (web_view, "mime-type-policy-decision-requested",
              G_CALLBACK (mime_type_decision_cb), webview);

    * Get user config directory path in $HOME:
      config = g_strdup_printf ("%s/.config/tazweb", g_get_home_dir ());

    * Change font of a widget:
      PangoFontDescription *font;
      font = pango_font_description_from_string("8");
      gtk_widget_modify_font(urientry, font);
      pango_font_description_free(font);

    * Change size of a widget:
      gtk_widget_set_size_request(toolbar, 0, 28);

    * Append a string
      g_string_append(string, " - TazWeb");

    * Editable webview
      webkit_web_view_set_editable (webview, TRUE);


Translation (i18n)
--------------------------------------------------------------------------------
Internationalization of TazWeb was introduced since version 1.6.4.
Its standard GLib technique is described in developer notes:
http://developer.gnome.org/glib/2.32/glib-I18N.html

Translation template (tazweb.pot) and all translations (xx.po) contained
in the po/ folder. To start a new translation use msginit from the
po/ directory. Example for French/France locale (fr_FR):

$ msginit -l fr_FR -o fr.po -i tazpanel.pot

If you run msginit directly without any parameters, locale settings of your
system will be used.

To update pot file from a newly updated sources:

$ make pot

To update all translations from a newly updated pot file:

$ make msgmerge

To clear the distro from temporary compiled and generated files:

$ make clean

================================================================================
