]> git.lyx.org Git - lyx.git/blobdiff - src/LyXView.h
Applied Angus patch to compile on DEC C++ and to avoid name clashes
[lyx.git] / src / LyXView.h
index 8bc0463db88ecd2db857b72a94bd0a301ecb58e0..d82a83c504cf65ef5ab4f2028ed6379eafdbd931 100644 (file)
@@ -1,53 +1,45 @@
 // -*- C++ -*-
 /* This file is part of
-* ======================================================
-* 
-*           LyX, The Document Processor
-*        
-*           Copyright (C) 1995 Matthias Ettrich
-*           Copyright (C) 1995-1998 The LyX Team.
-*
-*======================================================*/
-
-#ifndef _LyXView_H_
-#define _LyXView_H_
+ * ====================================================== 
+ 
+ *           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 <config.h>
 #include FORMS_H_LOCATION
-#include "lyx.h"
-#include "buffer.h"
-#include "menus.h"
-#include "BufferView.h"
+
+#include "LString.h"
+#include "frontends/Timeout.h"
+#include <boost/utility.hpp>
+#include "layout.h"
+
 class LyXFunc;
 class Toolbar;
 class MiniBuffer;
 class Intl;
+class Buffer;
+class Menubar;
 
-///
-struct  FD_form_main {
-       ///
-       FL_FORM *form_main;
-       ///
-       FL_OBJECT *timer_autosave;
-       ///
-       FL_OBJECT *timer_update;
-       ///
-       void *vdata;
-       ///
-       long ldata;
-};
-
-
+class BufferView;
+class Dialogs;
 
 /**
   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 {
+class LyXView : public SigC::Object, public boost::noncopyable {
 public:
        /// constructor
        LyXView(int w, int h);
@@ -59,7 +51,7 @@ public:
        void setPosition(int, int);
 
        /// Show the main form.
-       void show(int, int, char const* t= "LyX");
+       void show(int, int, string const & t = string("LyX"));
 
        /// init (should probably be removed later) (Lgb)
        void init();
@@ -68,28 +60,40 @@ public:
        void redraw();
 
        /// returns the buffer currently shown in the main form.
-       Buffer *currentBuffer(){ return bufferview->currentBuffer();}
+       Buffer * buffer() const;
 
        ///
-       BufferView *currentView() { return bufferview; }
+       BufferView * view() const;
 
        /// returns a pointer to the form.
-       FL_FORM *getForm() { return _form; }
+       FL_FORM * getForm() const;
 
        /// return a pointer to the toolbar
-       Toolbar *getToolbar() { return toolbar; }
+       Toolbar * getToolbar() const;
+
+       /// sets the layout in the toolbar layout combox
+       void setLayout(LyXTextClass::size_type layout);
+
+       /// update the toolbar
+       void updateToolbar();
 
        /// return a pointer to the lyxfunc
-       LyXFunc *getLyXFunc() { return lyxfunc; }
+       LyXFunc * getLyXFunc() const;
 
        /// return a pointer to the minibuffer
-       MiniBuffer *getMiniBuffer() { return minibuffer; }
+       MiniBuffer * getMiniBuffer() const;
+
+       ///
+       Menubar * getMenubar() const;
+
+       ///
+       void updateMenubar();
 
        ///
-       Menus *getMenus() { return menus; }
+       Intl * getIntl() const;
 
        ///
-       Intl *getIntl() { return intl; }
+       Dialogs * getDialogs() { return dialogs_; }
 
        ///
        void updateLayoutChoice();
@@ -97,50 +101,48 @@ public:
        /// 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;
+       LyXFunc * lyxfunc;
        /// 
-       Toolbar *toolbar;
+       Toolbar * toolbar;
        /// 
-       MiniBuffer *minibuffer;
+       MiniBuffer * minibuffer;
        ///
-       Menus *menus;
+       Menubar * menubar;
        ///
-       Intl *intl;
+       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;
+       BufferView * bufferview;
        ///
        void invalidateLayoutChoice();
-       ///
-       void UpdateDocumentClassChoice();
-       ///
-       static int KeyPressMask_raw_callback(FL_FORM *, void *xev);
-       /// makes the main form.
-       FD_form_main *create_form_form_main(int width, int height);
-
+public:
        /** This callback is run when a close event is sent from the
          window manager. */
        static int atCloseMainFormCB(FL_FORM *, void *);
        /// A callback
-       static void AutosaveTimerCB(FL_OBJECT *, long);
-       /// A callback
-       static void UpdateTimerCB(FL_OBJECT *, long);
-       /// A pointer to the form.      
-       FD_form_main *_form_main;
+       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;
-
+       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