Demeter

Description Perl tools for X-ray Absorption Spectroscopy
Demeter > Perl Modules > Demeter::UI::Athena
Source

Every window in Athena is a Wx::Frame. This inserts a method into that namespace which serves as a choke point for writing messages to the status bar. The two purposes served are (1) to apply some color to the text in the status bar and (2) to log all such messages. The neat thing about doing it this way is that each window will write to its own status bar yet all messages get captured to a common log.

  $wxframe->status($text, $type);

where the optional $type is one of "normal", "error", or "wait", each of which corresponds to a different text style in both the status bar and the log buffer. $type of "nobuffer" will display the status message, but not push it into the buffer.

According to the wxWidgets documentation, "Please note that wxCheckListBox uses client data in its implementation, and therefore this is not available to the application." This appears either not to be true on Linux or, perhaps, that the client data is overwritable with no ill effect. On Windows, however, attempting to set client data crashes the application.

On the wxperl-users mailing list Mattia Barbon said: "It's a wxWidgets limitation: it uses the same Win32 client data slot in wxListBox to store client data, in wxCheckListBox to store the boolean state of the item."

Sigh....

These methods are an attempt to replicate the effect of client data by maintaining a list of pointers to data that is indexed to the CheckListBox. This list is stored in the underlying hash of the CheckListBox object. The trick is to keep the list in sync with the displayed content of the CheckListBox at all times.

Yes, this *is* much to complicated.

NAME

Demeter::UI::Athena - XAS data processing

VERSION

This documentation refers to Demeter version 0.9.26.

SYNOPSIS

This short program launches Athena:

  use Wx;
  use Demeter::UI::Athena;
  Wx::InitAllImageHandlers();
  my $window = Demeter::UI::Athena->new;
  $window -> MainLoop;

DESCRIPTION

Athena is a program for XAS data processing and analysis of XANES data.

USE

See the Athena Users' Guide.

CONFIGURATION

Many aspects of Athena and its UI are configurable using the configuration tool built into Athena.

DEPENDENCIES

This is a Wx application. Demeter's dependencies are in the Build.PL file.

BUGS AND LIMITATIONS

Please report problems to the Ifeffit Mailing List (http://cars9.uchicago.edu/mailman/listinfo/ifeffit/)

Patches are welcome.

AUTHOR

Bruce Ravel (http://bruceravel.github.io/home)

http://bruceravel.github.io/demeter/

LICENCE AND COPYRIGHT

Copyright (c) 2006-2018 Bruce Ravel (http://bruceravel.github.io/home). All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlgpl.

This program 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.