| ZConf-DevTemplate documentation | Contained in the ZConf-DevTemplate distribution. |
ZConf::template::GUI -
Version 0.0.0
Quick summary of what the module does.
Perhaps a little code snippet.
use ZConf::template::GUI;
my $foogui = ZConf::template::GUI->new();
...
This is object returned by %%%PARENT%%%.
my $foogui=ZConf::template::GUI->new({obj=>$obj});
if($foogui->{error}){
print "Error!\n";
}
Runs some application.
$foogui->app;
if($foogui->{error}){
warn('error '.$foogui->error.': '.$foogui->errorString);
}
If this returns true, it means it has a application.
my $hasApp=$foogui->hasApp;
if($foogui->{error}){
warn('error '.$foogui->error.': '.$foogui->errorString);
}else{
if($hasApp){
print "Yes\n";
}
}
This returns a array of available dialogs.
my @dialogs=$foogui->dialogs;
if($foogui->{error}){
warn('error '.$foogui->error.': '.$foogui->errorString);
}
This checks if the loaded backend supports a specific dialog.
my $supported=$foogui->hasDialog($dialogName);
if($foogui->error){
warn('error '.$foogui->error.': '.$foogui->errorString);
}
if(!supported){
warn($dialogName.' is not supported');
}
This checks if the loaded backend supports a specific window.
my $supported=$foogui->hasWindow($windowName);
if($foogui->error){
warn('error '.$foogui->error.': '.$foogui->errorString);
}
if(!supported){
warn($windowName.' is not supported');
}
This returns a array of available dialogs.
my @windows=$foogui->windows;
if($foogui->{error}){
warn('error '.$foogui->error.': '.$foogui->errorString);
}
This returns the current error code if one is set. If undef/evaulates as false then no error is present. Other wise one is.
if($foogui->error){
warn('error '.$foogui->error.': '.$foogui->errorString);
}
This returns the current error string. A return of "" means no error is present.
my $errorString=$foogui->errorString;
This blanks the error storage and is only meant for internal usage.
It does the following.
$foogui->{error}=undef;
$foogui->{errorString}="";
Failed to initiate %%%PARENT%%%.
Failed to initiate ZConf::GUI.
Failed to get the preferred.
Failed to initiate the backend.
Backend errored.
No backend found via ZConf::GUI->which.
No dialog specified.
%%%AUTHOR%%%, <%%%EMAIL%%%>
Please report any bugs or feature requests to bug-zconf-devtemplate at rt.cpan.org, or through
the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=ZConf-template. I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc ZConf::template::GUI
You can also look for information at:
Copyright 2009 %%%AUTHOR%%%, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| ZConf-DevTemplate documentation | Contained in the ZConf-DevTemplate distribution. |
package ZConf::template::GUI; use warnings; use strict; use ZConf::GUI; use ZConf::template;
our $VERSION = '0.0.0';
sub new{ my %args; if(defined($_[1])){ %args= %{$_[1]}; } my $method='new'; my $self={error=>undef, perror=>undef, errorString=>undef, module=>'ZConf-template-GUI', }; bless $self; #gets the object or initiate it if (!defined($args{obj})) { $self->{obj}=ZConf::template->new; if ($self->{obj}) { $self->{error}=1; $self->{perror}=1; $self->{errorString}='Failed to initiate %%%PARENT%%%. error="'. $self->{obj}->{error}.'" errorString="'.$self->{obj}->{errorString}.'"'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); return $self; } }else { $self->{obj}=$args{obj}; } #gets the zconf object $self->{zconf}=$self->{obj}->{zconf}; #gets the gui $self->{gui}=ZConf::GUI->new({zconf=>$self->{zconf}}); if ($self->{obj}) { $self->{error}=2; $self->{perror}=1; $self->{errorString}='Failed to initiate ZConf::GUI. error="'. $self->{gui}->{error}.'" errorString="'.$self->{gui}->{errorString}.'"'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); return $self; } $self->{useX}=$self->{gui}->useX('%%%PARENT%%%'); my @preferred=$self->{gui}->which('%%%PARENT%%%'); if ($self->{gui}->{error}) { $self->{error}=3; $self->{perror}=1; $self->{errorString}='Failed to get the preferred backend list. error="'. $self->{gui}->{error}.'" errorString="'.$self->{gui}->{errorString}.'"'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); return $self; } #make sure we have something if (!defined($preferred[0])) { $self->{error}=6; $self->{perror}=1; $self->{errorString}='Which did not return any preferred backends'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); return $self; } #try the backends till we get one my $int=0; my $loop=1; while ($loop) { if (defined($preferred[0])) { #initiate the backend my $toeval='use ZConf::template::GUI::'.$preferred[$int].';'."\n". '$self->{be}=ZConf::template::GUI::'.$preferred[$int]. '->new({zconf=>$self->{zconf}, useX=>$self->{useX},'. 'zcgui=>$self->{gui}, zcrunner=>$self->{zcr}}); return 1'; my $er=eval($toeval); }else { $loop=0; } #if it returned something, see if it errored if (defined($self->{be})) { if (!$self->{be}->{error}) { #stop the loop and continue that we loaded a working one $loop=0; } } $int++; } #failed to initiate the backend if (!defined($self->{be})) { $self->{error}=4; $self->{perror}=1; $self->{errorString}='The backend returned undefined'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); return $self; } #backend errored if (!$self->{be}->{error}) { $self->{error}=4; $self->{perror}=1; $self->{errorString}='The backend returned undefined. error="'. $self->{be}->{error}.'" errorString="'.$self->{be}->{errorString}.'"'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); return $self; } return $self; }
sub app{ my $self=$_[0]; my $method='app'; $self->errorblank; if ($self->{error}) { warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } $self->{be}->app; }
sub hasApp{ my $self=$_[0]; my $method='hasApp'; $self->errorblank; if ($self->{error}) { warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } my $hasApp=$self->{be}->hasApp; if ($self->{be}->{error}) { $self->{error}=5; $self->{errorString}='The backend errored. error="'. $self->{be}->{error}.'" errorString="'.$self->{be}->{errorString}.'"'; warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } return $hasApp; }
sub dialogs{ my $self=$_[0]; my $method='dialogs'; $self->errorblank; if ($self->{error}) { warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } my @dialogs=$self->{be}->dialogs; if ($self->{be}->{error}) { $self->{error}=5; $self->{errorString}='The backend errored. error="'. $self->{be}->{error}.'" errorString="'.$self->{be}->{errorString}.'"'; warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } return @dialogs; }
sub hasDialog{ my $self=$_[0]; my $dialog=$_[1]; my $method='hasDialog'; $self->errorblank; if ($self->{error}) { warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } if (!defined($dialog)) { $self->{error}=7; $self->{errorString}='No dialog specified'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); } #try to fetch the supported dialogs my @dialogs=$self->dialogs; if ($self->error) { warn($self->{module}.' '.$method.': $self->dialogs errored'); return undef; } #look for a match my $int=0; while (defined($dialogs[$int])) { #return true if a match is found if ($dialogs[$int] eq $dialog) { return 1; } $int++; } return 0; }
sub hasWindow{ my $self=$_[0]; my $dialog=$_[1]; my $method='hasDialog'; $self->errorblank; if ($self->{error}) { warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } if (!defined($dialog)) { $self->{error}=7; $self->{errorString}='No dialog specified'; warn($self->{module}.' '.$method.':'.$self->{error}.': '.$self->{errorString}); } #try to fetch the supported dialogs my @dialogs=$self->dialogs; if ($self->error) { warn($self->{module}.' '.$method.': $self->dialogs errored'); return undef; } #look for a match my $int=0; while (defined($dialogs[$int])) { #return true if a match is found if ($dialogs[$int] eq $dialog) { return 1; } $int++; } return 0; }
sub windows{ my $self=$_[0]; my $method='windows'; $self->errorblank; if ($self->{error}) { warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } my @windows=$self->{be}->windows; if ($self->{be}->{error}) { $self->{error}=5; $self->{errorString}='The backend errored. error="'. $self->{be}->{error}.'" errorString="'.$self->{be}->{errorString}.'"'; warn($self->{module}.' '.$method.': A permanent error is set. error="'.$self->{error}.'" errorString="'.$self->{errorString}.'"'); return undef; } return @windows; }
sub error{ return $_[0]->{error}; }
sub errorString{ return $_[0]->{errorString}; }
#blanks the error flags sub errorblank{ my $self=$_[0]; if ($self->{perror}) { warn('ZConf-DevTemplate errorblank: A permanent error is set'); return undef; } $self->{error}=undef; $self->{errorString}=""; return 1; }
1; # End of ZConf::template::GUI