read changelog

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@557 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2000-02-15 14:28:15 +00:00
parent 3923262592
commit 56e007b94e
17 changed files with 112 additions and 1267 deletions

View File

@ -1,3 +1,13 @@
2000-02-15 Lars Gullik Bjønnes <larsbj@lyx.org>
* src/toolbar.C (set): use fl_set_object_helper for the tooltop
(bubble tip), this removes our special handling of this.
* Remove all code that is unused now that we have the new
workarea. (Code that are not active when NEW_WA is defined.)
* Make the uses of XSync not conditionalized on define USE_XSYNC.
2000-02-15 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr> 2000-02-15 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* src/lyxfunc.C (Dispatch): fix LFUN_LAYOUT when giving a * src/lyxfunc.C (Dispatch): fix LFUN_LAYOUT when giving a

File diff suppressed because it is too large Load Diff

View File

@ -21,8 +21,6 @@
#include "LaTeX.h" #include "LaTeX.h"
#include "undo.h" #include "undo.h"
#define NEW_WA 1
class LyXView; class LyXView;
class Buffer; class Buffer;
class LyXScreen; class LyXScreen;
@ -43,19 +41,12 @@ public:
/// ///
Painter & painter(); Painter & painter();
#endif #endif
#ifdef NEW_WA
/// ///
WorkArea * getWorkArea() { return workarea; } WorkArea * getWorkArea() { return workarea; }
#else
///
FL_OBJECT * getWorkArea() { return work_area; }
#endif
/// ///
void buffer(Buffer * b); void buffer(Buffer * b);
#ifdef NEW_WA
/// ///
void resize(int, int, int, int); void resize(int, int, int, int);
#endif
/// ///
void resize(); void resize();
/// ///
@ -195,23 +186,14 @@ private:
/// Update pixmap of screen /// Update pixmap of screen
void updateScreen(); void updateScreen();
#ifdef NEW_WA
/// ///
void workAreaExpose(); void workAreaExpose();
/// ///
void ScrollUpOnePage(); void ScrollUpOnePage();
/// ///
void ScrollDownOnePage(); void ScrollDownOnePage();
#else
/// ///
int workAreaExpose(); void create_view();
///
void ScrollUpOnePage(long /*time*/);
///
void ScrollDownOnePage(long /*time*/);
#endif
///
void create_view(int, int, int, int);
/// ///
Inset * checkInsetHit(int & x, int & y); Inset * checkInsetHit(int & x, int & y);
/// ///
@ -220,8 +202,6 @@ private:
int ScrollDown(long time); int ScrollDown(long time);
public: public:
#ifdef NEW_WA
/// ///
bool focus() const; bool focus() const;
/// ///
@ -234,28 +214,20 @@ public:
void ScrollCB(double); void ScrollCB(double);
/// A callback for the down arrow in the scrollbar. /// A callback for the down arrow in the scrollbar.
void DownCB(long time, int button); void DownCB(long time, int button);
#else
/// A callback for the up arrow in the scrollbar.
static void UpCB(FL_OBJECT * ob, long);
/// A callback for the slider in the scrollbar.
static void ScrollCB(FL_OBJECT * ob, long);
/// A callback for the down arrow in the scrollbar.
static void DownCB(FL_OBJECT * ob, long);
#endif
/// ///
static void CursorToggleCB(FL_OBJECT * ob, long); static void CursorToggleCB(FL_OBJECT * ob, long);
#if 0
/** Work area free object handler /** Work area free object handler
*/ */
static int work_area_handler(FL_OBJECT *, int event, static int work_area_handler(FL_OBJECT *, int event,
FL_Coord, FL_Coord, int key, void *xev); FL_Coord, FL_Coord, int key, void *xev);
#endif
/// ///
void SetState(); void SetState();
private: private:
#ifdef NEW_WA
/// ///
void WorkAreaMotionNotify(int x, int y, unsigned int state); void WorkAreaMotionNotify(int x, int y, unsigned int state);
/// ///
@ -264,27 +236,6 @@ private:
void WorkAreaButtonRelease(int x, int y, unsigned int button); void WorkAreaButtonRelease(int x, int y, unsigned int button);
/// ///
void WorkAreaSelectionNotify(Window win, XEvent * event); void WorkAreaSelectionNotify(Window win, XEvent * event);
#else
///
int WorkAreaMotionNotify(FL_OBJECT * ob,
Window win,
int w, int h,
XEvent * ev, void * d);
///
int WorkAreaButtonPress(FL_OBJECT * ob,
Window win,
int w, int h,
XEvent * ev, void * d);
///
int WorkAreaButtonRelease(FL_OBJECT * ob,
Window win,
int w, int h,
XEvent * ev, void * d);
///
int WorkAreaSelectionNotify(FL_OBJECT *, Window win,
int /*w*/, int /*h*/,
XEvent * event, void * /*d*/);
#endif
/// ///
LyXView * owner_; LyXView * owner_;
/// ///
@ -297,16 +248,6 @@ private:
bool lyx_focus; bool lyx_focus;
/// ///
bool work_area_focus; bool work_area_focus;
#ifndef NEW_WA
///
FL_OBJECT * work_area;
///
FL_OBJECT * scrollbar;
///
FL_OBJECT * button_down;
///
FL_OBJECT * button_up;
#endif
/// ///
FL_OBJECT * figinset_canvas; FL_OBJECT * figinset_canvas;
/// ///
@ -315,10 +256,8 @@ private:
BackStack backstack; BackStack backstack;
/// ///
int last_click_x, last_click_y; int last_click_x, last_click_y;
#ifdef NEW_WA
/// ///
WorkArea * workarea; WorkArea * workarea;
#endif
}; };
#endif #endif

View File

@ -337,8 +337,6 @@ int LyXView::KeyPressMask_raw_callback(FL_FORM * fl, void * xev)
LyXView * view = static_cast<LyXView*>(fl->u_vdata); LyXView * view = static_cast<LyXView*>(fl->u_vdata);
int retval = 0; // 0 means XForms should have a look at this event int retval = 0; // 0 means XForms should have a look at this event
#define USE_XSYNC 1
#ifdef USE_XSYNC
XKeyEvent * xke = static_cast<XKeyEvent*>(xev); XKeyEvent * xke = static_cast<XKeyEvent*>(xev);
static Time last_time_pressed = 0; static Time last_time_pressed = 0;
static Time last_time_released = 0; static Time last_time_released = 0;
@ -346,36 +344,23 @@ int LyXView::KeyPressMask_raw_callback(FL_FORM * fl, void * xev)
static unsigned int last_key_released = 0; static unsigned int last_key_released = 0;
static unsigned int last_state_pressed = 0; static unsigned int last_state_pressed = 0;
static unsigned int last_state_released = 0; static unsigned int last_state_released = 0;
#endif
// funny. Even though the raw_callback is registered with KeyPressMask, // funny. Even though the raw_callback is registered with KeyPressMask,
// also KeyRelease-events are passed through:-( // also KeyRelease-events are passed through:-(
// [It seems that XForms puts them in pairs... (JMarc)] // [It seems that XForms puts them in pairs... (JMarc)]
if (static_cast<XEvent*>(xev)->type == KeyPress if (static_cast<XEvent*>(xev)->type == KeyPress
#ifdef NEW_WA
&& view->bufferview->focus() && view->bufferview->focus()
&& view->bufferview->active()) && view->bufferview->active())
#else
&& view->bufferview->getWorkArea()->focus
&& view->bufferview->getWorkArea()->active)
#endif
{ {
#ifdef USE_XSYNC
last_time_pressed = xke->time; last_time_pressed = xke->time;
last_key_pressed = xke->keycode; last_key_pressed = xke->keycode;
last_state_pressed = xke->state; last_state_pressed = xke->state;
#endif
retval = view->getLyXFunc() retval = view->getLyXFunc()
->processKeyEvent(static_cast<XEvent*>(xev)); ->processKeyEvent(static_cast<XEvent*>(xev));
} }
#ifdef USE_XSYNC
else if (static_cast<XEvent*>(xev)->type == KeyRelease else if (static_cast<XEvent*>(xev)->type == KeyRelease
#ifdef NEW_WA
&& view->bufferview->focus() && view->bufferview->focus()
&& view->bufferview->active()) && view->bufferview->active())
#else
&& view->bufferview->getWorkArea()->focus
&& view->bufferview->getWorkArea()->active)
#endif
{ {
last_time_released = xke->time; last_time_released = xke->time;
last_key_released = xke->keycode; last_key_released = xke->keycode;
@ -396,7 +381,6 @@ int LyXView::KeyPressMask_raw_callback(FL_FORM * fl, void * xev)
// purging of XEvents can cause any harm...after some testing // purging of XEvents can cause any harm...after some testing
// I can see no problems, but I'd like other reports too. // I can see no problems, but I'd like other reports too.
} }
#endif
return retval; return retval;
} }

View File

@ -186,10 +186,10 @@ lyx_SOURCES = \
vspace.C \ vspace.C \
vspace.h vspace.h
lyx_main.o: lyx_main.C lyx_main.h config.h version.h debug.h gettext.h \ lyx_main.o: lyx_main.C lyx_main.h config.h version.h lyx_gui.h \
lyx_gui.h lyx_gui_misc.h lyxrc.h support/path.h support/filetools.h \ lyx_gui_misc.h lyxrc.h support/path.h support/filetools.h \
bufferlist.h support/FileInfo.h lastfiles.h intl.h \ bufferlist.h debug.h support/FileInfo.h lastfiles.h intl.h \
lyxserver.h layout.h gettext.h lyxserver.h layout.h gettext.h kbmap.h
$(CXXCOMPILE) -DLYX_DIR=\"$(pkgdatadir)\" \ $(CXXCOMPILE) -DLYX_DIR=\"$(pkgdatadir)\" \
-DTOP_SRCDIR=\"$(top_srcdir)\" -c $(top_srcdir)/src/lyx_main.C -DTOP_SRCDIR=\"$(top_srcdir)\" -c $(top_srcdir)/src/lyx_main.C

View File

@ -22,9 +22,7 @@
#include "support/lstrings.h" #include "support/lstrings.h"
#include "BufferView.h" #include "BufferView.h"
#ifdef NEW_WA
FL_OBJECT * figinset_canvas; FL_OBJECT * figinset_canvas;
#endif
static inline static inline
void waitForX() void waitForX()

View File

@ -85,34 +85,6 @@ public:
} }
/// ///
Pixmap getPixmap() const { return workareapixmap; } Pixmap getPixmap() const { return workareapixmap; }
///
//Signal2<long, int> up;
///
//Signal2<long, int> down;
///
//Signal1<double> scroll;
///
//Signal0 expose;
///
//Signal3<int, int, unsigned int> buttonPress;
///
//Signal3<int, int, unsigned int> buttonRelease;
///
//Signal3<int, int, unsigned int> motion;
///
//Signal0 focus;
///
//Signal0 unfocus;
///
//Signal0 enter;
///
//Signal0 leave;
///
//Signal3<int, int, unsigned int> doubleclick;
///
//Signal3<int, int, unsigned int> trippleclick;
///
//Signal2<Window, XEvent *> selection;
/// xforms callback /// xforms callback
static int work_area_handler(FL_OBJECT *, int event, static int work_area_handler(FL_OBJECT *, int event,
FL_Coord, FL_Coord, FL_Coord, FL_Coord,

View File

@ -514,24 +514,39 @@ void InsetLatexAccent::draw(Painter & pain, LyXFont const & font,
} }
// now the rest - draw within (x, y, x+wid, y+hg) // now the rest - draw within (x, y, x+wid, y+hg)
switch (modtype) { switch (modtype) {
case ACUTE: // acute case ACUTE: // acute 0xB4
{ {
#if 0
pain.line(int(x2), int(y + hg), pain.line(int(x2), int(y + hg),
int(x2 + hg35), y + hg35); int(x2 + hg35), y + hg35);
#else
pain.text(x2 - font.width(0xB4) / 2, baseline,
char(0xB4), font);
#endif
break; break;
} }
case GRAVE: // grave case GRAVE: // grave 0x60
{ {
#if 0
pain.line(int(x2), int(y + hg), pain.line(int(x2), int(y + hg),
int(x2 - hg35), y + hg35); int(x2 - hg35), y + hg35);
#else
pain.text(x2 - font.width(0x60) / 2, baseline,
char(0x60), font);
#endif
break; break;
} }
case MACRON: // macron case MACRON: // macron
{ {
#if 0
pain.line(int(x2 - wid * 0.4), pain.line(int(x2 - wid * 0.4),
int(y + hg), int(y + hg),
int(x2 + wid * 0.4), int(x2 + wid * 0.4),
int(y + hg)); int(y + hg));
#else
pain.text(x2 - font.width(0xAF) / 2, baseline,
char(0xAF), font);
#endif
break; break;
} }
case TILDE: // tilde case TILDE: // tilde
@ -557,20 +572,26 @@ void InsetLatexAccent::draw(Painter & pain, LyXFont const & font,
#else #else
pain.text(x2 - font.width('~') / 2, pain.text(x2 - font.width('~') / 2,
baseline - font.ascent('~'), baseline - font.ascent('~'),
"~", 1, font); '~', font);
#endif #endif
break; break;
} }
case UNDERBAR: // underbar case UNDERBAR: // underbar 0x5F
{ {
#if 0
pain.line(int(x2 - wid * 0.4), pain.line(int(x2 - wid * 0.4),
y + hg / 2.0, y + hg / 2.0,
int(x2 + wid * 0.4), int(x2 + wid * 0.4),
y + hg / 2.0); y + hg / 2.0);
#else
pain.text(x2 - font.width(0x5F) / 2, baseline,
char(0x5F), font);
#endif
break; break;
} }
case CEDILLA: // cedilla case CEDILLA: // cedilla
{ {
#if 0
int xp[4], yp[4]; int xp[4], yp[4];
xp[0] = int(x2); xp[0] = int(x2);
@ -586,6 +607,11 @@ void InsetLatexAccent::draw(Painter & pain, LyXFont const & font,
yp[3] = y + int(hg); yp[3] = y + int(hg);
pain.lines(xp, yp, 4); pain.lines(xp, yp, 4);
#else
pain.text(x2 - font.width(0xB8) / 2, baseline,
char(0xB8), font);
#endif
break; break;
} }
case UNDERDOT: // underdot case UNDERDOT: // underdot
@ -606,9 +632,14 @@ void InsetLatexAccent::draw(Painter & pain, LyXFont const & font,
case CIRCLE: // circle case CIRCLE: // circle
{ {
#if 0
pain.arc(int(x2 - (hg / 2.0)), pain.arc(int(x2 - (hg / 2.0)),
y + (hg / 2.0), hg, hg , 0, y + (hg / 2.0), hg, hg , 0,
360 * 64); 360 * 64);
#else
pain.text(x2 - font.width(0xB0) / 2, baseline,
char(0xB0), font);
#endif
break; break;
} }
case TIE: // tie case TIE: // tie
@ -694,18 +725,23 @@ void InsetLatexAccent::draw(Painter & pain, LyXFont const & font,
} }
#else #else
pain.text(x2 - font.width('¨') / 2, baseline, pain.text(x2 - font.width('¨') / 2, baseline,
"¨", 1, font); '¨', font);
#endif #endif
break; break;
} }
case CIRCUMFLEX: // circumflex case CIRCUMFLEX: // circumflex
{ {
#if 0
int xp[3], yp[3]; int xp[3], yp[3];
xp[0] = int(x2 - hg35); yp[0] = y + int(hg); xp[0] = int(x2 - hg35); yp[0] = y + int(hg);
xp[1] = int(x2); yp[1] = int(y + hg35); xp[1] = int(x2); yp[1] = int(y + hg35);
xp[2] = int(x2 + hg35); yp[2] = y + int(hg); xp[2] = int(x2 + hg35); yp[2] = y + int(hg);
pain.lines(xp, yp, 3); pain.lines(xp, yp, 3);
#else
pain.text(x2 - font.width(0x5E) / 2, baseline,
char(0x5E), font);
#endif
break; break;
} }
case OGONEK: // ogonek case OGONEK: // ogonek

View File

@ -244,7 +244,8 @@ void AllowInput()
if (fd_form_character->form_character->visible) if (fd_form_character->form_character->visible)
XUndefineCursor(fl_display, XUndefineCursor(fl_display,
fd_form_character->form_character->window); fd_form_character->form_character->window);
#ifndef NEW_WA #if 0
// What to do about this? (Lgb)
if (current_view->getWorkArea()->belowmouse) if (current_view->getWorkArea()->belowmouse)
SetXtermCursor(current_view->owner()->getForm()->window); SetXtermCursor(current_view->owner()->getForm()->window);
#endif #endif

View File

@ -266,13 +266,9 @@ bool LyXFindReplace1::SearchCB(bool fForward)
result = false; result = false;
} }
#ifdef NEW_WA
if (current_view->focus()) if (current_view->focus())
current_view->getScreen()->ShowCursor(); current_view->getScreen()->ShowCursor();
#else
if (current_view->getWorkArea()->focus)
current_view->getScreen()->ShowCursor();
#endif
return result; return result;
} }

View File

@ -663,19 +663,11 @@ string LyXFunc::Dispatch(int ac,
case LFUN_CENTER: // this is center and redraw. case LFUN_CENTER: // this is center and redraw.
owner->view()->beforeChange(); owner->view()->beforeChange();
if (owner->view()->text->cursor.y > if (owner->view()->text->cursor.y >
#ifdef NEW_WA
owner->view()->getWorkArea()->height() / 2) owner->view()->getWorkArea()->height() / 2)
#else
owner->view()->getWorkArea()->h / 2)
#endif
{ {
owner->view()->getScreen()-> owner->view()->getScreen()->
Draw(owner->view()->text->cursor.y - Draw(owner->view()->text->cursor.y -
#ifdef NEW_WA
owner->view()->getWorkArea()->height() / 2 owner->view()->getWorkArea()->height() / 2
#else
owner->view()->getWorkArea()->h / 2
#endif
); );
} else { // <= } else { // <=
owner->view()->getScreen()-> owner->view()->getScreen()->
@ -2017,19 +2009,11 @@ string LyXFunc::Dispatch(int ac,
// Recenter screen // Recenter screen
owner->view()->beforeChange(); owner->view()->beforeChange();
if (owner->view()->text->cursor.y > if (owner->view()->text->cursor.y >
#ifdef NEW_WA
owner->view()->getWorkArea()->height() / 2 owner->view()->getWorkArea()->height() / 2
#else
owner->view()->getWorkArea()->h / 2
#endif
) { ) {
owner->view()->getScreen()-> owner->view()->getScreen()->
Draw(owner->view()->text->cursor.y - Draw(owner->view()->text->cursor.y -
#ifdef NEW_WA
owner->view()->getWorkArea()->height() / 2 owner->view()->getWorkArea()->height() / 2
#else
owner->view()->getWorkArea()->h / 2
#endif
); );
} else { // <= } else { // <=
owner->view()->getScreen()-> owner->view()->getScreen()->

View File

@ -31,8 +31,6 @@ typedef unsigned short Dimension;
class BufferView; class BufferView;
#define NEW_WA 1
/** The class LyXScreen is used for the main Textbody. /** The class LyXScreen is used for the main Textbody.
Concretely, the screen is held in a pixmap. This pixmap is kept up to Concretely, the screen is held in a pixmap. This pixmap is kept up to
date and used to optimize drawing on the screen. date and used to optimize drawing on the screen.
@ -42,9 +40,7 @@ class LyXScreen {
public: public:
/// ///
LyXScreen(BufferView *, Window window, LyXScreen(BufferView *, Window window,
#ifdef NEW_WA
Pixmap p, Pixmap p,
#endif
Dimension width, Dimension width,
Dimension height, Dimension height,
Dimension offset_x, Dimension offset_x,

View File

@ -46,12 +46,8 @@ void MiniBuffer::ExecutingCB(FL_OBJECT * ob, long)
{ {
MiniBuffer * obj = static_cast<MiniBuffer*>(ob->u_vdata); MiniBuffer * obj = static_cast<MiniBuffer*>(ob->u_vdata);
lyxerr.debug() << "Getting ready to execute: " << obj->cur_cmd << endl; lyxerr.debug() << "Getting ready to execute: " << obj->cur_cmd << endl;
#ifdef NEW_WA
obj->owner->view()->focus(true); obj->owner->view()->focus(true);
#else
fl_set_focus_object(obj->owner->getForm(),
obj->owner->view()->getWorkArea());
#endif
if (obj->cur_cmd.empty()) { if (obj->cur_cmd.empty()) {
obj->Init(); obj->Init();
return ; return ;
@ -104,12 +100,7 @@ int MiniBuffer::peek_event(FL_OBJECT * ob, int event, FL_Coord, FL_Coord,
case 27: case 27:
case XK_Escape: case XK_Escape:
// Abort // Abort
#ifdef NEW_WA
mini->owner->view()->focus(true); mini->owner->view()->focus(true);
#else
fl_set_focus_object(mini->owner->getForm(),
mini->owner->view()->getWorkArea());
#endif
mini->Init(); mini->Init();
return 1; return 1;
case 13: case 13:

View File

@ -49,9 +49,7 @@ GC createGC()
// Constructor // Constructor
LyXScreen::LyXScreen(BufferView * o, Window window, LyXScreen::LyXScreen(BufferView * o, Window window,
#ifdef NEW_WA
Pixmap p, Pixmap p,
#endif
Dimension width, Dimension width,
Dimension height, Dimension height,
Dimension offset_x, Dimension offset_x,
@ -68,14 +66,8 @@ LyXScreen::LyXScreen(BufferView * o, Window window,
screen_refresh_y = -1; screen_refresh_y = -1;
/* create the foreground pixmap */ /* create the foreground pixmap */
#ifdef NEW_WA
foreground = p; foreground = p;
#else
foreground = XCreatePixmap (fl_display,
fl_root,
_width, _height,
fl_get_visual_depth());
#endif
cursor_pixmap = 0; cursor_pixmap = 0;
cursor_pixmap_x = 0; cursor_pixmap_x = 0;
cursor_pixmap_y = 0; cursor_pixmap_y = 0;
@ -90,12 +82,7 @@ LyXScreen::LyXScreen(BufferView * o, Window window,
// Destructor // Destructor
LyXScreen::~LyXScreen() LyXScreen::~LyXScreen() {}
{
#ifndef NEW_WA
XFreePixmap(fl_display, foreground);
#endif
}
void LyXScreen::Redraw() void LyXScreen::Redraw()

View File

@ -4,6 +4,8 @@ LIBS =
ETAGS_ARGS = --c++ ETAGS_ARGS = --c++
INCLUDES = -I${srcdir}/../ INCLUDES = -I${srcdir}/../
EXTRA_DIST = lyxstring.C lyxstring.h regex.c lyxregex.h
if USE_LYXSTRING if USE_LYXSTRING
LYXSTRING = lyxstring.C lyxstring.h LYXSTRING = lyxstring.C lyxstring.h
endif endif

View File

@ -93,6 +93,7 @@
#include "layout_std.xpm" #include "layout_std.xpm"
#include "build.xpm" #include "build.xpm"
// this one is not "C" because combox callbacks are really C++ %-| // this one is not "C" because combox callbacks are really C++ %-|
extern void LayoutsCB(int, void *); extern void LayoutsCB(int, void *);
extern char const ** get_pixmap_from_symbol(char const * arg, int, int); extern char const ** get_pixmap_from_symbol(char const * arg, int, int);
@ -122,7 +123,9 @@ Toolbar::Toolbar(Toolbar const &rct, LyXView *o, int x, int y)
: owner(o), sxpos(x), sypos(y) : owner(o), sxpos(x), sypos(y)
{ {
combox = 0; combox = 0;
#if FL_REVISION < 89
bubble_timer = 0; bubble_timer = 0;
#endif
reset(); reset();
// extracts the toolbar struct form rct. // extracts the toolbar struct form rct.
@ -136,6 +139,7 @@ Toolbar::Toolbar(Toolbar const &rct, LyXView *o, int x, int y)
} }
#if FL_REVISION < 89
// timer-cb for bubble-help (Matthias) // timer-cb for bubble-help (Matthias)
void Toolbar::BubbleTimerCB(FL_OBJECT *, long data) void Toolbar::BubbleTimerCB(FL_OBJECT *, long data)
{ {
@ -180,6 +184,7 @@ extern "C" int C_Toolbar_BubblePost(FL_OBJECT * ob, int event,
{ {
return Toolbar::BubblePost(ob, event, 0, 0, key, xev); return Toolbar::BubblePost(ob, event, 0, 0, key, xev);
} }
#endif
void Toolbar::activate() void Toolbar::activate()
@ -212,7 +217,11 @@ void Toolbar::deactivate()
void Toolbar::ToolbarCB(FL_OBJECT * ob, long ac) void Toolbar::ToolbarCB(FL_OBJECT * ob, long ac)
{ {
#if FL_REVISION >= 89
Toolbar * t = static_cast<Toolbar*>(ob->u_vdata);
#else
Toolbar * t = reinterpret_cast<Toolbar*>(ob->u_ldata); Toolbar * t = reinterpret_cast<Toolbar*>(ob->u_ldata);
#endif
string res = t->owner->getLyXFunc()->Dispatch(int(ac)); string res = t->owner->getLyXFunc()->Dispatch(int(ac));
if(!res.empty()) if(!res.empty())
@ -287,10 +296,12 @@ void Toolbar::set(bool doingmain)
fl_addto_form(owner->getForm()); fl_addto_form(owner->getForm());
} }
#if FL_REVISION < 89
// add the time if it don't exist // add the time if it don't exist
if (bubble_timer == 0) if (bubble_timer == 0)
bubble_timer = fl_add_timer(FL_HIDDEN_TIMER, bubble_timer = fl_add_timer(FL_HIDDEN_TIMER,
xpos, ypos, 0, 0, "Timer"); xpos, ypos, 0, 0, "Timer");
#endif
while(item != 0) { while(item != 0) {
switch(item->action){ switch(item->action){
@ -328,6 +339,14 @@ void Toolbar::set(bool doingmain)
fl_set_pixmapbutton_focus_outline(obj, 0); fl_set_pixmapbutton_focus_outline(obj, 0);
// set the bubble-help (Matthias) // set the bubble-help (Matthias)
#if FL_REVISION >= 89
// Set the tooltip
fl_set_object_helper(obj, item->help.c_str());
// The toolbar that this object belongs too.
obj->u_vdata = this;
#else
#ifdef WITH_WARNINGS #ifdef WITH_WARNINGS
#warning This is dangerous! #warning This is dangerous!
#endif #endif
@ -337,6 +356,7 @@ void Toolbar::set(bool doingmain)
obj->u_ldata = reinterpret_cast<long>(this); obj->u_ldata = reinterpret_cast<long>(this);
fl_set_object_posthandler(obj, C_Toolbar_BubblePost); fl_set_object_posthandler(obj, C_Toolbar_BubblePost);
#endif
fl_set_pixmapbutton_data(obj, const_cast<char**>(item->pixmap)); fl_set_pixmapbutton_data(obj, const_cast<char**>(item->pixmap));
item = item->next; item = item->next;
@ -487,8 +507,7 @@ void Toolbar::add(int action, bool doclean)
// adds an item to the list // adds an item to the list
if (pixmap != 0 if (pixmap != 0
|| action == TOOL_SEPARATOR || action == TOOL_SEPARATOR
|| action == TOOL_LAYOUTS) || action == TOOL_LAYOUTS) {
{
newItem = new toolbarItem; newItem = new toolbarItem;
newItem->action = action; newItem->action = action;
newItem->pixmap = pixmap; newItem->pixmap = pixmap;
@ -503,9 +522,6 @@ void Toolbar::add(int action, bool doclean)
} else } else
toollist = newItem; toollist = newItem;
} }
//if (action == TOOL_LAYOUTS) {
// combox = new Combox(FL_COMBOX_DROPLIST);
//}
} }

View File

@ -38,7 +38,9 @@ public:
owner = 0; owner = 0;
sxpos = 0; sxpos = 0;
sypos = 0; sypos = 0;
#if FL_REVISION < 89
bubble_timer = 0; bubble_timer = 0;
#endif
combox = 0; combox = 0;
reset(); reset();
init(); // set default toolbar. init(); // set default toolbar.
@ -88,11 +90,14 @@ public:
/// ///
static void ToolbarCB(FL_OBJECT *, long); static void ToolbarCB(FL_OBJECT *, long);
#if FL_REVISION < 89
/// ///
static void BubbleTimerCB(FL_OBJECT *, long); static void BubbleTimerCB(FL_OBJECT *, long);
/// ///
static int BubblePost(FL_OBJECT * ob, int event, static int BubblePost(FL_OBJECT * ob, int event,
FL_Coord mx, FL_Coord my, int key, void * xev); FL_Coord mx, FL_Coord my, int key, void * xev);
#endif
private: private:
/// ///
@ -132,8 +137,10 @@ private:
toolbarItem * toollist; toolbarItem * toollist;
/// ///
LyXView * owner; LyXView * owner;
#if FL_REVISION < 89
/// ///
FL_OBJECT * bubble_timer; FL_OBJECT * bubble_timer;
#endif
/// Starting position /// Starting position
int sxpos, sypos; int sxpos, sypos;
/// ///