lyx_mirror/src/BackStack.h
Lars Gullik Bjønnes 9ce32d63e5 several small and larger changes, read the Changelog
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@529 a592a061-630c-0410-9148-cb99ea01b6c8
2000-02-04 09:38:32 +00:00

61 lines
1.0 KiB
C++

// -*- C++ -*-
/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 1997-2000 The LyX Team.
*
* ====================================================== */
#ifndef BACK_STACK_H
#define BACK_STACK_H
#include <stack>
using std::stack;
#include "LString.h"
// Created by Alejandro Aguilar Sierra, 970806
/** Utility to get back from a reference or from a child document.
*/
class BackStack {
private:
///
struct BackStackItem {
///
BackStackItem(string const & f, int xx, int yy)
: fname(f), x(xx), y(yy) {}
/// Filename
string fname;
/// Cursor x-position
int x;
/// Cursor y-position
int y;
};
public:
///
void push(string f, int x, int y) {
BackStackItem bit(f, x, y);
stakk.push(bit);
}
///
string pop(int * x, int * y) {
BackStackItem bit = stakk.top();
*x = bit.x;
*y = bit.y;
stakk.pop();
return bit.fname;
}
///
bool empty() const {
return stakk.empty();
}
private:
///
stack<BackStackItem> stakk;
};
#endif