lyx_mirror/src/insets/insetbutton.h

47 lines
1.0 KiB
C
Raw Normal View History

// -*- C++ -*-
/**
* \file insetbutton.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Asger Alstrup Nielsen
* \author J<EFBFBD>rgen Vigna
* \author Lars Gullik Bj<EFBFBD>nnes
*
* Full author contact details are available in file CREDITS
*/
#ifndef INSET_BUTTON_H
#define INSET_BUTTON_H
#include "inset.h"
#include "LString.h"
#include <boost/weak_ptr.hpp>
/** Used to provide an inset that looks like a button.
*/
class InsetButton: public Inset {
public:
///
int ascent(BufferView *, LyXFont const &) const;
///
int descent(BufferView *, LyXFont const &) const;
///
int width(BufferView *, LyXFont const &) const;
///
void draw(BufferView *, LyXFont const &, int, float &, bool) const;
protected:
///
virtual void cache(BufferView *) const;
///
virtual BufferView * view() const;
/// This should provide the text for the button
virtual string const getScreenLabel(Buffer const *) const = 0;
private:
mutable boost::weak_ptr<BufferView> view_;
};
#endif