lyx_mirror/src/LyXView.h

173 lines
3.3 KiB
C
Raw Normal View History

// -*- C++ -*-
/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2000 The LyX Team.
*
* ====================================================== */
#ifndef LyXView_H
#define LyXView_H
#ifdef __GNUG__
#pragma interface
#endif
#include FORMS_H_LOCATION
#include "Timeout.h"
#include "support/utility.hpp"
// uncomment this line to try out the new menus
#define NEW_MENUBAR 1
class LyXFunc;
class Toolbar;
class MiniBuffer;
class Intl;
class Buffer;
#ifdef NEW_MENUBAR
class Menubar;
#else
class Menus;
#endif
class BufferView;
class Dialogs;
#ifdef SIGC_CXX_NAMESPACES
using SigC::Object;
#endif
/**
This class is the form containing the view of the buffer. The actual buffer
view is supposed (at least IMHO) to be another class, that shows its output
in one or more LyXView's.
*/
class LyXView : public Object, public noncopyable {
public:
/// constructor
LyXView(int w, int h);
/// destructor
~LyXView();
/// Where to place the form.
void setPosition(int, int);
/// Show the main form.
void show(int, int, char const * t = "LyX");
/// init (should probably be removed later) (Lgb)
void init();
/// Redraw the main form.
void redraw();
/// returns the buffer currently shown in the main form.
Buffer * buffer() const;
///
BufferView * view() const;
/// returns a pointer to the form.
FL_FORM * getForm() const;
/// return a pointer to the toolbar
Toolbar * getToolbar() const;
/// sets the layout in the toolbar layout combox
void setLayout(int layout);
/// update the toolbar
void updateToolbar();
/// return a pointer to the lyxfunc
LyXFunc * getLyXFunc() const;
/// return a pointer to the minibuffer
MiniBuffer * getMiniBuffer() const;
#ifdef NEW_MENUBAR
///
Menubar * getMenubar() const;
///
void updateMenubar();
#else
///
Menus * getMenus() const;
#endif
///
Intl * getIntl() const;
///
Dialogs * getDialogs() { return dialogs_; }
///
void updateLayoutChoice();
/// Updates the title of the window
void updateWindowTitle();
/// Show state (toolbar and font in minibuffer)
void showState();
/// Reset autosave timer
void resetAutosaveTimer();
private:
///
LyXFunc * lyxfunc;
///
Toolbar * toolbar;
///
MiniBuffer * minibuffer;
#ifdef NEW_MENUBAR
///
Menubar * menubar;
#else
///
Menus * menus;
#endif
///
Intl * intl;
///
Dialogs * dialogs_;
/** This is supposed to be a pointer or a list of pointers to the
BufferViews currently being shown in the LyXView. So far
this is not used, but that should change pretty soon. (Lgb) */
BufferView * bufferview;
///
void invalidateLayoutChoice();
///
void UpdateDocumentClassChoice();
public:
#if FL_REVISION < 89
///
static int KeyPressMask_raw_callback(FL_FORM *, void * xev);
#endif
/** This callback is run when a close event is sent from the
window manager. */
static int atCloseMainFormCB(FL_FORM *, void *);
/// A callback
void AutoSave();
private:
///
Timeout autosave_timeout;
/// makes the main form.
void create_form_form_main(int width, int height);
/// A pointer to the form.
FL_FORM * form_;
/** The last textclass layout list in the layout choice selector
This should probably be moved to the toolbar, but for now it's
here. (Asger) */
int last_textclass;
};
#endif