58 alignmentManager(alnMgr), viewerWindow(window), currentDisplay(
NULL)
60 if (!window)
ERRORMSG(
"ViewerBase::ViewerBase() - got NULL handle");
72 (*viewerWindow)->KillWindow();
80 (*viewerWindow)->SetWindowTitle();
95 ERRORMSG(
"ViewerBase::EnableStacks() - already enabled!");
107 ERRORMSG(
"ViewerBase::Save() - stacks not enabled, or no alignment/display data");
124 WARNINGMSG(
"max undo stack size exceeded - deleting next-from-bottom item");
138 newAlignmentMap[*
a] = newAlignment;
150 ERRORMSG(
"ViewerBase::Undo() - stacks disabled, or no more undo data");
162 ERRORMSG(
"ViewerBase::Redo() - stacks disabled, or no more redo data");
187 DisplayStack::reverse_iterator ds =
displayStack.rbegin();
195 AlignmentList::const_iterator
a, ae = as->end();
196 for (
a=as->begin();
a!=ae; ++
a) {
199 newAlignmentMap[*
a] = newAlignment;
225 ERRORMSG(
"ViewerBase::Revert() - stacks disabled!");
271 if (*
viewerWindow) (*viewerWindow)->SetupFontFromRegistry();
280 (*viewerWindow)->GetCurrentJustification(), &
column, &row))
281 (*viewerWindow)->MakeCellVisible(
column, row);
286 if (*
viewerWindow) (*viewerWindow)->MakeSequenceVisible(identifier);
291 if (*
viewerWindow) (*viewerWindow)->SaveDialog(prompt,
false);
void CalculateSelfHitScores(const BlockMultipleAlignment *multiple)
BlockMultipleAlignment * Clone(void) const
SequenceDisplay * Clone(const Old2NewAlignmentMap &newAlignments) const
bool GetDisplayCoordinates(const Molecule *molecule, unsigned int seqIndex, BlockMultipleAlignment::eUnalignedJustification justification, unsigned int *column, unsigned int *row)
void RemoveBlockBoundaryRows(void)
AlignmentStack alignmentStack
void SetWindowTitle(void) const
virtual ~ViewerBase(void)
AlignmentList currentAlignments
std::list< BlockMultipleAlignment * > AlignmentList
void MakeSequenceVisible(const MoleculeIdentifier *identifier)
void SetUndoRedoMenuStates(void)
AlignmentManager * alignmentManager
void RemoveBlockBoundaryRows(void)
DisplayStack displayStack
bool EditorIsOn(void) const
SequenceDisplay * currentDisplay
void InitData(const AlignmentList *alignments, SequenceDisplay *display)
virtual void SaveDialog(bool prompt)
void CalculateSelfHitScores(const BlockMultipleAlignment *multiple)
ViewerBase(ViewerWindowBase **window, AlignmentManager *alnMgr)
static const unsigned int MAX_UNDO_STACK_SIZE
ViewerWindowBase **const viewerWindow
void MakeResidueVisible(const Molecule *molecule, int seqIndex)
void CopyDataFromStack(void)
bool EditorIsOn(void) const
Include a standard set of the NCBI C++ Toolkit most basic headers.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
std::map< BlockMultipleAlignment *, BlockMultipleAlignment * > Old2NewAlignmentMap
static const char * column
#define DELETE_ALL_AND_CLEAR(container, ContainerType)