Demeter

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

Every window in Artemis 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.

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::Artemis - EXAFS analysis using Feff and Ifeffit/Larch

VERSION

This documentation refers to Demeter version 0.9.26.

SYNOPSIS

This short program launches Artemis:

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

DESCRIPTION

Artemis is a program for EXAFS data analysis using Feff.

USE

See the Artemis Users' Guide.

CONFIGURATION

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

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.