NAME
Gtk2::Ex::ErrorTextDialog::Handler -- exception handlers using ErrorTextDialog
SYNOPSIS
use Gtk2::Ex::ErrorTextDialog::Handler;
Glib->install_exception_handler
(\&Gtk2::Ex::ErrorTextDialog::Handler::exception_handler);
$SIG{'__WARN__'}
= \&Gtk2::Ex::ErrorTextDialog::Handler::exception_handler;
Glib::Log->set_handler ('My-Domain', ['warning','info'],
\&Gtk2::Ex::ErrorTextDialog::Handler::log_handler);
DESCRIPTION
This module has error and warning handler functions which display their respective messages in an ErrorTextDialog. They're all small and the idea is to keep memory use down by not loading the ErrorTextDialog code or creating a dialog until needed. If your program works then the dialog may never be needed!
FUNCTIONS
Gtk2::Ex::ErrorTextDialog::Handler::exception_handler ($str)
-
A function suitable for use with
Glib->install_exception_handler
(see "EXCEPTIONS" in Glib) or with Perl's$SIG{'__WARN__'}
(see perlipc).Glib->install_exception_handler (\&Gtk2::Ex::ErrorTextDialog::Handler::exception_handler); $SIG{'__WARN__'} = \&Gtk2::Ex::ErrorTextDialog::Handler::exception_handler;
The given
$str
is printed toSTDERR
and displayed in the shared ErrorTextDialog instance.$str
can be an exception object too, such as aGlib::Error
, and will be stringized for display.If
STDERR
only takes raw bytes but$str
has wide characters, then currently they're just printed and will generally provoke a "wide char in print" warning in the normal way. Perhaps this will change in the future.If
STDERR
takes wide chars but$str
is raw bytes, then the bytes are assumed to be in the locale charset and are converted to wide chars the same way the ErrorTextDialogadd_message
does. Gtk2::Ex::ErrorTextDialog::Handler::log_handler ($log_domain, $log_levels, $message)
-
A function suitable for use with
Glib::Log->set_handler
(see Glib::Log). It forms a message similar to the Glib default handler and prints and displays per theexception_handler
function above.Glib::Log->set_handler ('My-Domain', ['warning','info'], \&Gtk2::Ex::ErrorTextDialog::Handler::log_handler);
As of Glib-Perl 1.200, various standard log domains are trapped already and turned into Perl
warn
calls (seegperl_handle_logs_for
in Glib::xsapi). So if you trap$SIG{'__WARN__'}
then you already get Glib and Gtk logs into the ErrorTextDialog without any explicitGlib::Log
handlers.
SEE ALSO
Gtk2::Ex::ErrorTextDialog, "EXCEPTIONS" in Glib, perlipc, Glib::xsapi
HOME PAGE
http://www.geocities.com/user42_kevin/gtk2-ex-errortextdialog/
LICENSE
Gtk2-Ex-ErrorTextDialog is Copyright 2007, 2008, 2009 Kevin Ryde
Gtk2-Ex-ErrorTextDialog is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Gtk2-Ex-ErrorTextDialog is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Gtk2-Ex-ErrorTextDialog. If not, see http://www.gnu.org/licenses/.