Some minor cleanup + use of scoped_ptr instead of raw pointer,

to reduce diff size


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4374 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
John Levon 2002-06-12 02:54:19 +00:00
parent ae11d20ade
commit ab5f0efdcb
27 changed files with 335 additions and 372 deletions

View File

@ -1,12 +1,11 @@
/* This file is part of
* ======================================================
/**
* \file BufferView.C
* Copyright 1995-2002 the LyX Team
* Read the file COPYING
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
* \author unknown
* \author John Levon <moz@compsoc.man.ac.uk>
*/
#include <config.h>
@ -54,7 +53,7 @@ LyXView * BufferView::owner() const
}
Painter & BufferView::painter()
Painter & BufferView::painter() const
{
return pimpl_->painter();
}
@ -179,19 +178,6 @@ void BufferView::setState()
pimpl_->setState();
}
#if 0
void BufferView::insetSleep()
{
pimpl_->insetSleep();
}
void BufferView::insetWakeup()
{
pimpl_->insetWakeup();
}
#endif
void BufferView::insetUnlock()
{

View File

@ -52,7 +52,7 @@ public:
///
Buffer * buffer() const;
///
Painter & painter();
Painter & painter() const;
///
LScreen & screen() const;
///
@ -117,12 +117,6 @@ public:
int sly;
///
void insetUnlock();
#if 0
///
void insetSleep();
///
void insetWakeup();
#endif
///
void replaceWord(string const & replacestring);
///

View File

@ -576,7 +576,7 @@ void BufferView::showLockedInsetCursor(int x, int y, int asc, int desc)
? LScreen::REVERSED_L_SHAPE
: LScreen::L_SHAPE;
y += cursor.iy() + theLockingInset()->insetInInsetY();
pimpl_->screen_->showManualCursor(text, x, y, asc, desc,
screen().showManualCursor(text, x, y, asc, desc,
shape);
}
}
@ -585,7 +585,7 @@ void BufferView::showLockedInsetCursor(int x, int y, int asc, int desc)
void BufferView::hideLockedInsetCursor()
{
if (theLockingInset() && available()) {
pimpl_->screen_->hideCursor();
screen().hideCursor();
}
}
@ -594,7 +594,7 @@ bool BufferView::fitLockedInsetCursor(int x, int y, int asc, int desc)
{
if (theLockingInset() && available()) {
y += text->cursor.iy() + theLockingInset()->insetInInsetY();
if (pimpl_->screen_->fitManualCursor(text, this, x, y, asc, desc)) {
if (screen().fitManualCursor(text, this, x, y, asc, desc)) {
updateScrollbar();
return true;
}

View File

@ -1,3 +1,11 @@
/**
* \file BufferView_pimpl.C
* Copyright 2002 the LyX Team
* Read the file COPYING
*
* \author various
*/
#include <config.h>
#ifdef __GNUG__
@ -31,7 +39,6 @@
#include "undo_funcs.h"
#include "lyxtextclasslist.h"
#include "insets/insetbib.h"
#include "insets/insettext.h"
#include "insets/inseturl.h"
@ -68,6 +75,7 @@
#include <boost/bind.hpp>
#include <cstdio>
#include <ctime>
#include <unistd.h>
#include <sys/wait.h>
@ -136,7 +144,7 @@ BufferView::Pimpl::Pimpl(BufferView * b, LyXView * o,
int xpos, int ypos, int width, int height)
: bv_(b), owner_(o), buffer_(0),
current_scrollbar_value(0), cursor_timeout(400),
using_xterm_cursor(false), inset_slept(false)
using_xterm_cursor(false)
{
workarea_.reset(new WorkArea(xpos, ypos, width, height));
screen_.reset(new LScreen(workarea()));
@ -181,7 +189,7 @@ LScreen & BufferView::Pimpl::screen() const
}
Painter & BufferView::Pimpl::painter()
Painter & BufferView::Pimpl::painter() const
{
return workarea().getPainter();
}
@ -192,9 +200,6 @@ void BufferView::Pimpl::buffer(Buffer * b)
lyxerr[Debug::INFO] << "Setting buffer in BufferView ("
<< b << ")" << endl;
if (buffer_) {
#if 0
insetSleep();
#endif
buffer_->delUser(bv_);
// Put the old text into the TextCache, but
@ -236,9 +241,6 @@ void BufferView::Pimpl::buffer(Buffer * b)
// require bv_->text.
owner_->getDialogs()->updateBufferDependent(true);
redraw();
#if 0
insetWakeup();
#endif
} else {
lyxerr[Debug::INFO] << " No Buffer!" << endl;
owner_->updateMenubar();
@ -573,6 +575,7 @@ void BufferView::Pimpl::workAreaMotionNotify(int x, int y, mouse_button::state s
int inset_x = font.isVisibleRightToLeft()
? cursor.ix() - width : cursor.ix();
int start_x = inset_x + bv_->theLockingInset()->scroll();
bv_->theLockingInset()->
insetMotionNotify(bv_,
x - start_x,
@ -588,9 +591,7 @@ void BufferView::Pimpl::workAreaMotionNotify(int x, int y, mouse_button::state s
return;
screen().hideCursor();
#if 0
int y_before = bv_->text->cursor.y();
#endif
Row * cursorrow = bv_->text->cursor.row();
bv_->text->setCursorFromCoordinates(bv_, x, y + bv_->text->first_y);
#if 0
@ -627,7 +628,7 @@ void BufferView::Pimpl::workAreaButtonPress(int xpos, int ypos,
if (!buffer_)
return;
// ok ok, this is a hack.
// ok ok, this is a hack (for xforms)
if (button == mouse_button::button4) {
scrollUp(lyxrc.wheel_jump);
@ -664,7 +665,7 @@ void BufferView::Pimpl::workAreaButtonPress(int xpos, int ypos,
otherwise give the event to the inset */
if (inset_hit == bv_->theLockingInset()) {
bv_->theLockingInset()->
insetButtonPress(bv_,xpos, ypos,button);
insetButtonPress(bv_, xpos, ypos, button);
return;
} else {
bv_->unlockInset(bv_->theLockingInset());
@ -1256,11 +1257,13 @@ void BufferView::Pimpl::cursorNext(LyXText * text)
- bv_->text->first_y
+ bv_->theLockingInset()->insetInInsetY());
}
text->getRowNearY(y);
Row * cursorrow = text->cursor.row();
text->setCursorFromCoordinates(bv_, text->cursor.x_fix(), y); // + workarea().workHeight());
finishUndo();
int new_y;
if (cursorrow == bv_->text->cursor.row()) {
// we have a row which is higher than the workarea so we leave the
@ -1381,35 +1384,12 @@ void BufferView::Pimpl::setState()
}
#if 0
void BufferView::Pimpl::insetSleep()
{
if (bv_->theLockingInset() && !inset_slept) {
bv_->theLockingInset()->getCursorPos(bv_, bv_->slx, bv_->sly);
bv_->theLockingInset()->insetUnlock(bv_);
inset_slept = true;
}
}
void BufferView::Pimpl::insetWakeup()
{
if (bv_->theLockingInset() && inset_slept) {
bv_->theLockingInset()->edit(bv_, bv_->slx, bv_->sly, 0);
inset_slept = false;
}
}
#endif
void BufferView::Pimpl::insetUnlock()
{
if (bv_->theLockingInset()) {
if (!inset_slept)
bv_->theLockingInset()->insetUnlock(bv_);
bv_->theLockingInset()->insetUnlock(bv_);
bv_->theLockingInset(0);
finishUndo();
inset_slept = false;
}
}
@ -1530,7 +1510,7 @@ void BufferView::Pimpl::moveCursorUpdate(bool selecting, bool fitcur)
if (!lt->selection.set())
workarea().haveSelection(false);
/* ---> Everytime the cursor is moved, show the current font state. */
// should this too me moved out of this func?
//owner->showState();
@ -2030,7 +2010,7 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
// This is soooo ugly. Isn`t it possible to make
// it simpler? (Lgb)
LyXText * lt = bv_->getLyXText();
bool is_rtl = lt->cursor.par()->isRightToLeftPar(buffer_->params);
bool const is_rtl = lt->cursor.par()->isRightToLeftPar(buffer_->params);
if (!lt->selection.mark())
beforeChange(lt);
update(lt, BufferView::SELECT|BufferView::FITCUR);

View File

@ -1,13 +1,20 @@
// -*- C++ -*-
/**
* \file BufferView_pimpl.h
* Copyright 2002 the LyX Team
* Read the file COPYING
*
* \author various
*/
#ifndef BUFFERVIEW_PIMPL_H
#define BUFFERVIEW_PIMPL_H
#include "BufferView.h"
#include "commandtags.h"
#include "frontends/mouse_state.h"
#include "frontends/key_state.h"
#include "frontends/Timeout.h"
#include "frontends/key_state.h"
#include "frontends/mouse_state.h"
#include "box.h"
#include "insets/insetspecialchar.h"
#include "support/types.h"
@ -32,7 +39,7 @@ struct BufferView::Pimpl : public boost::signals::trackable {
Pimpl(BufferView * i, LyXView * o,
int xpos, int ypos, int width, int height);
///
Painter & painter();
Painter & painter() const;
/// return the work area for this bview
WorkArea & workarea() const;
/// return the screen for this bview
@ -107,12 +114,6 @@ struct BufferView::Pimpl : public boost::signals::trackable {
bool isSavedPosition(unsigned int i);
///
void setState();
#if 0
///
void insetSleep();
///
void insetWakeup();
#endif
///
void insetUnlock();
///
@ -208,7 +209,5 @@ private:
Inset * getInsetByCode(Inset::Code code);
///
void MenuInsertLyXFile(string const & filen);
///
bool inset_slept;
};
#endif

View File

@ -1,3 +1,16 @@
2002-06-12 John Levon <moz@compsoc.man.ac.uk>
* BufferView_pimpl.h:
* BufferView_pimpl.C:
* BufferView.h:
* BufferView.C: make painter() const,
remove dead code
* BufferView2.C: use screen() accessor
* lyx_main.h:
* lyx_main.C: some minor cleanup
2002-06-12 John Levon <moz@compsoc.man.ac.uk>
* BufferView_pimpl.h:

View File

@ -38,4 +38,4 @@ askForText(string const & msg,
}
#endif
#endif // LYX_ALERT_H

View File

@ -1,3 +1,11 @@
2002-06-12 John Levon <moz@compsoc.man.ac.uk>
* Menubar.C:
* Timeout.h:
* Toolbar.C:
* LyXView.h:
* LyXView.C: some cleanup, prefer scoped_ptr
2002-06-12 John Levon <moz@compsoc.man.ac.uk>
* screen.C:

View File

@ -1,12 +1,11 @@
/* This file is part of
* ======================================================
/**
* \file LyXView.C
* Copyright 1995-2002 the LyX Team
* Read the file COPYING
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
* \author Lars Gullik Bjornes
* \author John Levon <moz@compsoc.man.ac.uk>
*/
#include <config.h>
@ -14,7 +13,7 @@
#pragma implementation
#endif
#include "frontends/LyXView.h"
#include "LyXView.h"
#include "minibuffer.h"
#include "debug.h"
#include "intl.h"
@ -22,10 +21,11 @@
#include "lyxtext.h"
#include "buffer.h"
#include "MenuBackend.h"
#include "bufferview_funcs.h" // CurrentState()
#include "gettext.h"
#include "lyxfunc.h"
#include "lyx_cb.h"
#include "BufferView.h"
#include "bufferview_funcs.h"
#include "lyxtextclasslist.h"
#include "frontends/Dialogs.h"
@ -33,7 +33,7 @@
#include "frontends/Timeout.h"
#include "frontends/Menubar.h"
#include "support/filetools.h" // OnlyFilename()
#include "support/filetools.h" // OnlyFilename()
#include <boost/bind.hpp>
@ -51,28 +51,20 @@ string current_layout;
LyXView::LyXView()
{
lyxerr[Debug::INIT] << "Initializing LyXFunc" << endl;
lyxfunc = new LyXFunc(this);
intl = new Intl;
lyxfunc_.reset(new LyXFunc(this));
intl_.reset(new Intl);
// Give the timeout some default sensible value.
autosave_timeout = new Timeout(5000);
autosave_timeout_.reset(new Timeout(5000));
dialogs_ = new Dialogs(this);
dialogs_.reset(new Dialogs(this));
Dialogs::redrawGUI.connect(boost::bind(&LyXView::redraw, this));
}
LyXView::~LyXView()
{
delete menubar;
delete toolbar;
delete bufferview;
delete minibuffer;
delete lyxfunc;
delete intl;
delete autosave_timeout;
delete dialogs_;
}
@ -82,91 +74,90 @@ void LyXView::resize()
}
/// returns the buffer currently shown in the main form.
Buffer * LyXView::buffer() const
{
return bufferview->buffer();
return bufferview_->buffer();
}
BufferView * LyXView::view() const
{
return bufferview;
return bufferview_.get();
}
Toolbar * LyXView::getToolbar() const
{
return toolbar;
return toolbar_.get();
}
void LyXView::setLayout(string const & layout)
{
toolbar->setLayout(layout);
toolbar_->setLayout(layout);
}
void LyXView::updateToolbar()
{
toolbar->update();
toolbar_->update();
}
LyXFunc * LyXView::getLyXFunc() const
{
return lyxfunc;
return lyxfunc_.get();
}
MiniBuffer * LyXView::getMiniBuffer() const
{
return minibuffer;
return minibuffer_.get();
}
void LyXView::message(string const & str)
{
minibuffer->message(str);
minibuffer_->message(str);
}
void LyXView::messagePush(string const & str)
{
minibuffer->messagePush(str);
minibuffer_->messagePush(str);
}
void LyXView::messagePop()
{
minibuffer->messagePop();
minibuffer_->messagePop();
}
Menubar * LyXView::getMenubar() const
{
return menubar;
return menubar_.get();
}
void LyXView::updateMenubar()
{
if ((!view() || !view()->buffer())
&& menubackend.hasMenu("main_nobuffer"))
menubar->set("main_nobuffer");
else
menubar->set("main");
menubar->update();
if (!view()->buffer() && menubackend.hasMenu("main_nobuffer")) {
menubar_->set("main_nobuffer");
} else {
menubar_->set("main");
}
menubar_->update();
}
Intl * LyXView::getIntl() const
{
return intl;
return intl_.get();
}
// Callback for autosave timer
void LyXView::AutoSave()
{
lyxerr[Debug::INFO] << "Running AutoSave()" << endl;
@ -175,49 +166,46 @@ void LyXView::AutoSave()
}
/// Reset autosave timer
void LyXView::resetAutosaveTimer()
{
if (lyxrc.autosave)
autosave_timeout->restart();
autosave_timeout_->restart();
}
void LyXView::invalidateLayoutChoice()
{
last_textclass = -1;
last_textclass_ = -1;
}
void LyXView::updateLayoutChoice()
{
// This has a side-effect that the layouts are not showed when no
// document is loaded.
if (!view() || !view()->buffer()) {
toolbar->clearLayoutList();
// don't show any layouts without a buffer
if (!view()->buffer()) {
toolbar_->clearLayoutList();
return;
}
// Update the layout display
if (last_textclass != int(buffer()->params.textclass)) {
toolbar->updateLayoutList(true);
last_textclass = int(buffer()->params.textclass);
current_layout = textclasslist[last_textclass].defaultLayoutName();
// update the layout display
if (last_textclass_ != int(buffer()->params.textclass)) {
toolbar_->updateLayoutList(true);
last_textclass_ = int(buffer()->params.textclass);
current_layout = textclasslist[last_textclass_].defaultLayoutName();
} else {
toolbar->updateLayoutList(false);
toolbar_->updateLayoutList(false);
}
string const & layout =
bufferview->getLyXText()->cursor.par()->layout();
bufferview_->getLyXText()->cursor.par()->layout();
if (layout != current_layout) {
toolbar->setLayout(layout);
toolbar_->setLayout(layout);
current_layout = layout;
}
}
// Updates the title of the window with the filename of the current document
void LyXView::updateWindowTitle()
{
static string last_title = "LyX";
@ -229,13 +217,14 @@ void LyXView::updateWindowTitle()
if (!cur_title.empty()) {
title += ": " + MakeDisplayPath(cur_title, 30);
if (!buffer()->isLyxClean())
title += _(" (Changed)");
title += _(" (changed)");
if (buffer()->isReadonly())
title += _(" (read only)");
/* Show only the filename if it's available. */
// Show only the filename if it's available
icon_title = OnlyFilename(cur_title);
}
}
if (title != last_title) {
setWindowTitle(title, icon_title);
last_title = title;

View File

@ -1,7 +1,15 @@
// -*- C++ -*-
/**
* \file LyXView.h
* Copyright 1995-2002 the LyX Team
* Read the file COPYING
*
* \author Lars Gullik Bjornes <larsbj@lyx.org>
* \author John Levon <moz@compsoc.man.ac.uk>
*/
#ifndef LYXVIEW_BASE_H
#define LYXVIEW_BASE_H
#ifndef LYXVIEW_H
#define LYXVIEW_H
#ifdef __GNUG__
#pragma interface
@ -12,6 +20,7 @@
#include "support/types.h"
#include <boost/utility.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/signals/trackable.hpp>
class Buffer;
@ -23,9 +32,22 @@ class Menubar;
class BufferView;
class Dialogs;
class LyXFunc;
class LyXFont;
class Timeout;
///
/**
* LyXView - main LyX window
*
* This class represents the main LyX window and provides
* accessor functions to its content.
*
* The eventual intention is that LyX will support a number
* of containing LyXViews. Currently a lot of code still
* relies on there being a single top-level view.
*
* Additionally we would like to support multiple views
* in a single LyXView.
*/
class LyXView : public boost::signals::trackable, boost::noncopyable {
public:
///
@ -50,7 +72,7 @@ public:
///
BufferView * view() const;
/// return a pointer to the toolbar
/// return the toolbar for this view
Toolbar * getToolbar() const;
/// sets the layout in the toolbar layout combox
@ -71,7 +93,7 @@ public:
///
void messagePop();
///
/// return the menubar for this view
Menubar * getMenubar() const;
///
@ -80,8 +102,8 @@ public:
///
Intl * getIntl() const;
///
Dialogs * getDialogs() { return dialogs_; }
/// get access to the dialogs
Dialogs * getDialogs() { return dialogs_.get(); }
///
void updateLayoutChoice();
@ -98,35 +120,51 @@ public:
virtual void prohibitInput() const = 0;
///
virtual void allowInput() const = 0;
protected:
///
Menubar * menubar;
///
Toolbar * toolbar;
/** 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;
///
MiniBuffer * minibuffer;
///
Intl * intl;
///
Timeout * autosave_timeout;
/// A callback
/// view of a buffer. Eventually there will be several.
boost::scoped_ptr<BufferView> bufferview_;
/// view's menubar
boost::scoped_ptr<Menubar> menubar_;
/// view's toolbar
boost::scoped_ptr<Toolbar> toolbar_;
/// view's minibuffer
boost::scoped_ptr<MiniBuffer> minibuffer_;
/// keyboard mapping object
boost::scoped_ptr<Intl> intl_;
/// auto-saving of buffers
boost::scoped_ptr<Timeout> autosave_timeout_;
/// called on timeout
void AutoSave();
///
/// FIXME: GUII - toolbar property
void invalidateLayoutChoice();
private:
///
LyXFunc * lyxfunc;
///
Dialogs * dialogs_;
///
virtual void setWindowTitle(string const &, string const &) = 0;
/** 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;
/**
* setWindowTitle - set title of window
* @param t main window title
* @param it iconified (short) title
*/
virtual void setWindowTitle(string const & t, string const & it) = 0;
/// our function handler
boost::scoped_ptr<LyXFunc> lyxfunc_;
/// dialogs for this view
boost::scoped_ptr<Dialogs> dialogs_;
/**
* 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)
*
* FIXME: GUII
*/
int last_textclass_;
};
#endif
#endif // LYXVIEW_H

View File

@ -1,15 +1,11 @@
// -*- C++ -*-
/* This file is part of
* ======================================================
/**
* \file Menubar.h
* Copyright 1995-2002 the LyX Team
* Read the file COPYING
*
* LyX, The Document Processor
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* This file is Copyright 1996-2001
* Lars Gullik Bjønnes
*
* ====================================================== */
* \author Lars Gullik Bjønnes
*/
#ifndef MENUBAR_H
#define MENUBAR_H
@ -23,9 +19,10 @@
class LyXView;
class MenuBackend;
/** The LyX GUI independent menubar class
The GUI interface is implemented in the corresponding Menubar_pimpl class.
*/
/**
* The LyX GUI independent menubar class
* The GUI interface is implemented in the corresponding Menubar_pimpl class.
*/
class Menubar {
public:
///
@ -49,4 +46,4 @@ private:
///
Pimpl * pimpl_;
};
#endif
#endif // MENUBAR_H

View File

@ -7,6 +7,7 @@
* \author Lars Gullik Bjønnes
* \author John Levon
*/
#ifndef TIMEOUT_H
#define TIMEOUT_H
@ -21,12 +22,10 @@
*/
class Timeout {
public:
///
/// the timeout type
enum Type {
/// one-shot timer
ONETIME,
/// repeating
CONTINUOUS
ONETIME, //< one-shot timer
CONTINUOUS //< repeating
};
///
Timeout(unsigned int msec, Type = ONETIME);

View File

@ -1,17 +1,10 @@
/* This file is part of
* ======================================================
/**
* \file Toolbar.C
* Copyright 1995-2002 the LyX Team
* Read the file COPYING
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* This file is Copyright 1996-1998
* Lars Gullik Bjønnes
*
* ====================================================== */
// Added pseudo-action handling, asierra 180296
* \author Lars Gullik Bjønnes <larsbj@lyx.org>
*/
#include <config.h>

View File

@ -8,7 +8,7 @@
*
* ======================================================
*
* \file ControlButtonss.h
* \file ControlButtons.h
* \author Angus Leeming <a.leeming@ic.ac.uk>
*
* ControlButtons serves only to control the activation of the Ok, Apply, Cancel

View File

@ -1,3 +1,17 @@
2002-06-12 John Levon <moz@compsoc.man.ac.uk>
* xformsGImage.C:
* FontInfo.h:
* FontInfo.C: some cleanup
* XWorkArea.C:
* XFormsView.h:
* XFormsView.C: some minor cleanup, use of
scoped_ptr
* xfont_loader.h:
* xfont_loader.C: rename
2002-06-12 John Levon <moz@compsoc.man.ac.uk>
* XWorkArea.h:

View File

@ -1,12 +1,11 @@
/* This file is part of
* ======================================================
/**
* \file FontInfo.C
* Copyright 1997-2002 the LyX Team
* Read the file COPYING
*
* LyX, The Document Processor
*
* Copyright 1997 Asger Alstrup
* and the LyX Team.
*
* ====================================================== */
* \author Asger Alstrup
* \author John Levon <moz@compsoc.man.ac.uk>
*/
#include <config.h>
@ -21,13 +20,12 @@
#include "support/lstrings.h"
#include "support/lyxlib.h"
#include "frontends/GUIRunTime.h"
#include <cmath> // abs()
using std::endl;
using std::abs;
#include FORMS_H_LOCATION
/// Load font close to this size
string const FontInfo::getFontname(int size)
@ -119,7 +117,7 @@ void FontInfo::query()
char ** list = 0;
if (lyxrc.use_gui)
list = XListFonts(GUIRunTime::x11Display(), pattern.c_str(),
list = XListFonts(fl_get_display(), pattern.c_str(),
100, &matches);
if (list == 0) {

View File

@ -1,13 +1,12 @@
// -*- C++ -*-
/* This file is part of
* ======================================================
/**
* \file FontInfo.h
* Copyright 1997-2002 the LyX Team
* Read the file COPYING
*
* LyX, The Document Processor
*
* Copyright 1997 Asger Alstrup
* and the LyX Team.
*
* ====================================================== */
* \author Asger Alstrup
* \author John Levon <moz@compsoc.man.ac.uk>
*/
#ifndef FONTINFO_H
#define FONTINFO_H

View File

@ -57,11 +57,11 @@ XFormsView::XFormsView(int width, int height)
: LyXView()
{
create_form_form_main(width, height);
fl_set_form_atclose(form_, C_XFormsView_atCloseMainFormCB, 0);
fl_set_form_atclose(getForm(), C_XFormsView_atCloseMainFormCB, 0);
// Connect the minibuffer signals
minibuffer->stringReady.connect(boost::bind(&LyXFunc::miniDispatch, getLyXFunc(), _1));
minibuffer->timeout.connect(boost::bind(&LyXFunc::initMiniBuffer, getLyXFunc()));
minibuffer_->stringReady.connect(boost::bind(&LyXFunc::miniDispatch, getLyXFunc(), _1));
minibuffer_->timeout.connect(boost::bind(&LyXFunc::initMiniBuffer, getLyXFunc()));
// Make sure the buttons are disabled if needed.
updateToolbar();
@ -74,14 +74,14 @@ XFormsView::~XFormsView() {}
/// Redraw the main form.
void XFormsView::redraw() {
lyxerr[Debug::INFO] << "XFormsView::redraw()" << endl;
fl_redraw_form(form_);
fl_redraw_form(getForm());
getMiniBuffer()->redraw();
}
FL_FORM * XFormsView::getForm() const
{
return form_;
return form_.get();
}
@ -95,17 +95,17 @@ int XFormsView::atCloseMainFormCB(FL_FORM *, void *)
void XFormsView::setPosition(int x, int y)
{
fl_set_form_position(form_, x, y);
fl_set_form_position(getForm(), x, y);
}
void XFormsView::show(int place, int border, string const & title)
{
fl_set_form_minsize(form_, form_->w, form_->h);
fl_show_form(form_, place, border, title.c_str());
fl_set_form_minsize(getForm(), getForm()->w, getForm()->h);
fl_show_form(getForm(), place, border, title.c_str());
getLyXFunc()->initMiniBuffer();
#if FL_VERSION < 1 && (FL_REVISION < 89 || (FL_REVISION == 89 && FL_FIXLEVEL < 5))
InitLyXLookup(fl_get_display(), form_->window);
InitLyXLookup(fl_get_display(), getForm()->window);
#endif
}
@ -120,8 +120,8 @@ void XFormsView::create_form_form_main(int width, int height)
*/
{
// the main form
form_ = fl_bgn_form(FL_NO_BOX, width, height);
form_->u_vdata = this;
form_.reset(fl_bgn_form(FL_NO_BOX, width, height));
getForm()->u_vdata = this;
FL_OBJECT * obj = fl_add_box(FL_FLAT_BOX, 0, 0, width, height, "");
fl_set_object_color(obj, FL_MCOL, FL_MCOL);
@ -129,47 +129,23 @@ void XFormsView::create_form_form_main(int width, int height)
int const air = 2;
int const bw = abs(fl_get_border_width());
//
// THE MENUBAR
//
menubar = new Menubar(this, menubackend);
menubar_.reset(new Menubar(this, menubackend));
//
// TOOLBAR
//
toolbar = new Toolbar(this, air, 30 + air + bw, toolbardefaults);
// Setup the toolbar
toolbar->set(true);
//
// WORKAREA
//
toolbar_.reset(new Toolbar(this, air, 30 + air + bw, toolbardefaults));
toolbar_->set(true);
int const ywork = 60 + 2 * air + bw;
int const workheight = height - ywork - (25 + 2 * air);
::current_view = bufferview = new BufferView(this, air, ywork,
width - 3 * air,
workheight);
bufferview_.reset(new BufferView(this, air, ywork,
width - 3 * air, workheight));
::current_view = bufferview_.get();
//
// MINIBUFFER
//
minibuffer_.reset(new MiniBuffer(this, air, height - (25 + air),
width - (2 * air), 25));
minibuffer = new MiniBuffer(this, air, height - (25 + air),
width - (2 * air), 25);
//
// TIMERS
//
autosave_timeout->timeout.connect(boost::bind(&XFormsView::AutoSave, this));
//
// Misc
//
// FIXME: why do this in xforms/ ?
autosave_timeout_->timeout.connect(boost::bind(&XFormsView::AutoSave, this));
// assign an icon to main form
string iconname = LibFileSearch("images", "lyx", "xpm");
@ -184,15 +160,15 @@ void XFormsView::create_form_form_main(int width, int height)
0,
0,
0); // this leaks
fl_set_form_icon(form_, lyx_p, lyx_mask);
fl_set_form_icon(getForm(), lyx_p, lyx_mask);
}
// set min size
fl_set_form_minsize(form_, 50, 50);
fl_set_form_minsize(getForm(), 50, 50);
fl_end_form();
minibuffer->dd_init();
minibuffer_->dd_init();
}
@ -205,17 +181,17 @@ void XFormsView::init()
// Start autosave timer
if (lyxrc.autosave) {
autosave_timeout->setTimeout(lyxrc.autosave * 1000);
autosave_timeout->start();
autosave_timeout_->setTimeout(lyxrc.autosave * 1000);
autosave_timeout_->start();
}
intl->InitKeyMapper(lyxrc.use_kbmap);
intl_->InitKeyMapper(lyxrc.use_kbmap);
}
void XFormsView::setWindowTitle(string const & title, string const & icon_title)
{
fl_set_form_title(form_, title.c_str());
fl_set_form_title(getForm(), title.c_str());
fl_winicontitle(form_->window, icon_title.c_str());
}

View File

@ -21,15 +21,15 @@
#include "frontends/LyXView.h"
/**
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.
* XFormsView - xforms implementation of LyXView
*
* xforms-private implementation of the main LyX window.
*/
class XFormsView : public LyXView {
public:
/// constructor
/// create a main window of the given dimensions
XFormsView(int w, int h);
/// destructor
~XFormsView();
/// Where to place the form.
virtual void setPosition(int, int);
@ -37,23 +37,29 @@ public:
virtual void show(int, int, string const & t = string("LyX"));
/// init (should probably be removed later) (Lgb)
virtual void init();
/// Redraw the main form.
virtual void redraw();
/// returns a pointer to the form.
/// get the xforms main form
FL_FORM * getForm() const;
/// redraw the main form.
virtual void redraw();
///
virtual void prohibitInput() const;
///
virtual void allowInput() const;
/** This callback is run when a close event is sent from the
window manager. */
/// callback for close event from window manager
static int atCloseMainFormCB(FL_FORM *, void *);
private:
/// pass the title, and the iconified title
virtual void setWindowTitle(string const &, string const &);
/**
* setWindowTitle - set title of window
* @param t main window title
* @param it iconified (short) title
*/
virtual void setWindowTitle(string const & t, string const & it);
/// makes the main form.
void create_form_form_main(int width, int height);
/// A pointer to the form.
FL_FORM * form_;
/// the main form.
boost::scoped_ptr<FL_FORM> form_;
};
#endif

View File

@ -134,28 +134,23 @@ extern "C" {
}
WorkArea::WorkArea(int xpos, int ypos, int width, int height)
WorkArea::WorkArea(int x, int y, int w, int h)
: splash_(0), splash_text_(0), workareapixmap(0), painter_(*this)
{
fl_freeze_all_forms();
if (lyxerr.debugging(Debug::WORKAREA))
lyxerr << "Creating work area: +"
<< xpos << '+' << ypos << ' '
<< width << 'x' << height << endl;
//
FL_OBJECT * obj;
int const bw = int(abs(fl_get_border_width()));
// a box
if (lyxerr.debugging(Debug::WORKAREA))
lyxerr << "\tbackground box: +"
<< xpos << '+' << ypos << ' '
<< width - 15 << 'x' << height << endl;
<< x << '+' << y << ' '
<< w - 15 << 'x' << h << endl;
backgroundbox = obj = fl_add_box(FL_BORDER_BOX,
xpos, ypos,
width - 15,
height,"");
x, y,
w - 15,
h,"");
fl_set_object_resize(obj, FL_RESIZE_ALL);
fl_set_object_gravity(obj, NorthWestGravity, SouthEastGravity);
@ -166,8 +161,8 @@ WorkArea::WorkArea(int xpos, int ypos, int width, int height)
if (!splash_file.empty()) {
int const splash_w = 425;
int const splash_h = 290;
int const splash_x = xpos + (width - 15 - splash_w) / 2;
int const splash_y = ypos + (height - splash_h) / 2;
int const splash_x = x + (w - 15 - splash_w) / 2;
int const splash_y = y + (h - splash_h) / 2;
splash_ = obj =
fl_add_pixmapbutton(FL_NORMAL_BUTTON,
splash_x, splash_y,
@ -190,13 +185,9 @@ WorkArea::WorkArea(int xpos, int ypos, int width, int height)
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
}
//
// THE SCROLLBAR
//
scrollbar = obj = fl_add_scrollbar(FL_VERT_SCROLLBAR,
xpos + width - 15,
ypos, 17, height, "");
x + w - 15,
y, 17, h, "");
fl_set_object_boxtype(obj, FL_UP_BOX);
fl_set_object_resize(obj, FL_RESIZE_ALL);
fl_set_object_gravity(obj, NorthEastGravity, SouthEastGravity);
@ -207,21 +198,23 @@ WorkArea::WorkArea(int xpos, int ypos, int width, int height)
///
/// The free object
int const bw = int(abs(fl_get_border_width()));
// Create the workarea pixmap
createPixmap(width - 15 - 2 * bw, height - 2 * bw);
createPixmap(w - 15 - 2 * bw, h - 2 * bw);
// We add this object as late as possible to avoit problems
// with drawing.
if (lyxerr.debugging(Debug::WORKAREA))
lyxerr << "\tfree object: +"
<< xpos + bw << '+' << ypos + bw << ' '
<< width - 15 - 2 * bw << 'x'
<< height - 2 * bw << endl;
<< x + bw << '+' << y + bw << ' '
<< w - 15 - 2 * bw << 'x'
<< h - 2 * bw << endl;
work_area = obj = fl_add_free(FL_ALL_FREE,
xpos + bw, ypos + bw,
width - 15 - 2 * bw, // scrollbarwidth
height - 2 * bw, "",
x + bw, y + bw,
w - 15 - 2 * bw, // scrollbarwidth
h - 2 * bw, "",
C_WorkArea_work_area_handler);
obj->wantkey = FL_KEY_ALL;
obj->u_vdata = this; /* This is how we pass the WorkArea

View File

@ -30,18 +30,18 @@ extern BufferView * current_view;
// The global fontloader
FontLoader fontloader;
xfont_loader fontloader;
// Initialize font loader
FontLoader::FontLoader()
xfont_loader::xfont_loader()
{
reset();
}
// Destroy font loader
FontLoader::~FontLoader()
xfont_loader::~xfont_loader()
{
unload();
}
@ -50,14 +50,14 @@ FontLoader::~FontLoader()
// Update fonts after zoom, dpi, font names, or norm change
// For now, we just ditch all fonts we have. Later, we should
// reuse the ones that are already loaded.
void FontLoader::update()
void xfont_loader::update()
{
unload();
}
// Reset font loader
void FontLoader::reset()
void xfont_loader::reset()
{
// Clear font infos, font structs and font metrics
for (int i1 = 0; i1 < LyXFont::NUM_FAMILIES; ++i1)
@ -72,7 +72,7 @@ void FontLoader::reset()
// Unload all fonts
void FontLoader::unload()
void xfont_loader::unload()
{
// Unload all fonts
for (int i1 = 0; i1 < LyXFont::NUM_FAMILIES; ++i1)
@ -95,7 +95,7 @@ void FontLoader::unload()
// Get font info
/* Takes care of finding which font that can match the given request. Tries
different alternatives. */
void FontLoader::getFontinfo(LyXFont::FONT_FAMILY family,
void xfont_loader::getFontinfo(LyXFont::FONT_FAMILY family,
LyXFont::FONT_SERIES series,
LyXFont::FONT_SHAPE shape)
{
@ -259,7 +259,7 @@ bool dummyXFontStructisGood = false;
} // namespace anon
/// Do load font
XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
XFontStruct * xfont_loader::doLoad(LyXFont::FONT_FAMILY family,
LyXFont::FONT_SERIES series,
LyXFont::FONT_SHAPE shape,
LyXFont::FONT_SIZE size)
@ -326,7 +326,7 @@ XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
}
bool FontLoader::available(LyXFont const & f)
bool xfont_loader::available(LyXFont const & f)
{
if (!lyxrc.use_gui)
return false;

View File

@ -27,13 +27,13 @@ intelligent guesses about matching font size, and it tries different tags
itself in order to match the font loading demands. Later, I plan to extend
this with support for T1Lib, probably via a new class building on this.
(Asger) */
class FontLoader {
class xfont_loader {
public:
///
FontLoader();
xfont_loader();
///
~FontLoader();
~xfont_loader();
/// Update fonts after zoom, dpi, font names, or norm change
void update();
@ -77,6 +77,6 @@ private:
};
///
extern FontLoader fontloader;
extern xfont_loader fontloader;
#endif

View File

@ -17,7 +17,6 @@
#include "LColor.h"
#include "converter.h" // formats
#include "debug.h"
#include "frontends/GUIRunTime.h" // x11Display, x11Screen
#include "support/LAssert.h"
#include "support/lyxfunctional.h" // compare_memfun
@ -127,7 +126,7 @@ xformsGImage::~xformsGImage()
if (image_)
flimage_free(image_);
if (pixmap_)
XFreePixmap(GUIRunTime::x11Display(), pixmap_);
XFreePixmap(fl_get_display(), pixmap_);
}
@ -197,7 +196,7 @@ bool xformsGImage::setPixmap(GParams const & params)
if (!image_ || params.display == GParams::NONE)
return false;
Display * display = GUIRunTime::x11Display();
Display * display = fl_get_display();
if (pixmap_ && pixmap_status_ == PIXMAP_SUCCESS)
XFreePixmap(display, pixmap_);
@ -230,7 +229,7 @@ bool xformsGImage::setPixmap(GParams const & params)
}
image_->xdisplay = display;
Screen * screen = ScreenOfDisplay(display, GUIRunTime::x11Screen());
Screen * screen = ScreenOfDisplay(display, fl_screen);
pixmap_ = flimage_to_pixmap(image_, XRootWindowOfScreen(screen));
pixmap_status_ = pixmap_ ? PIXMAP_SUCCESS : PIXMAP_FAILED;
@ -436,8 +435,8 @@ unsigned int packedcolor(LColor::color c)
{
string const x11color = lcolor.getX11Name(c);
Display * display = GUIRunTime::x11Display();
Colormap cmap = GUIRunTime::x11Colormap();
Display * display = fl_get_display();
Colormap cmap = fl_state[fl_get_vclass()].colormap;
XColor xcol;
XColor ccol;
if (XLookupColor(display, cmap, x11color.c_str(), &xcol, &ccol) == 0)

View File

@ -180,12 +180,6 @@ LyX::LyX(int * argc, char * argv[])
}
// A destructor is always necessary (asierra-970604)
LyX::~LyX()
{
}
extern "C" {
static

View File

@ -1,16 +1,11 @@
// -*- C++ -*-
/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
/* This is the declaration of the LyX class, there should only
* exist _one_ instance of this in the application. */
/**
* \file lyx_main.h
* Copyright 2002 the LyX Team
* Read the file COPYING
*
* \author unknown
*/
#ifndef LYX_MAIN_H
#define LYX_MAIN_H
@ -32,27 +27,20 @@ class LastFiles;
class Buffer;
class kb_keymap;
///
extern string system_lyxdir;
///
extern string user_lyxdir;
///
extern string system_lyxdir;
///
extern string system_tempdir;
///
extern boost::scoped_ptr<LastFiles> lastfiles;
/* we should hopefully be able to move this
* inside the LyX class */
/**
This is the main LyX object it encapsulates most of the other objects.
*/
class LyX : boost::noncopyable {
public:
/// the only allowed constructor
LyX(int * argc, char * argv[]); // constructor
/// Always is useful a destructor
~LyX();
LyX(int * argc, char * argv[]);
/// in the case of failure
static void emergencyCleanup();

View File

@ -13,6 +13,7 @@
#include "lyx_main.h"
#include "gettext.h"
#include "LString.h"
#include "lyx_gui.h"
#include "support/filetools.h"
#include "support/os.h"
#include "frontends/GUIRunTime.h"

View File

@ -56,7 +56,6 @@
using std::endl;
using std::ostream;
using std::vector;
using std::abs;
MathCursor * mathcursor = 0;