Added Minipage-Dialog, small fix in LyXTabular::l_getline (removing \r).

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1787 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jürgen Vigna 2001-03-16 15:15:32 +00:00
parent 41a571cabc
commit 3de10d0174
19 changed files with 795 additions and 9 deletions

View File

@ -101,6 +101,9 @@ src/frontends/xforms/form_include.C
src/frontends/xforms/FormIndex.C
src/frontends/xforms/form_index.C
src/frontends/xforms/FormLog.C
src/frontends/xforms/form_minipage.C
src/frontends/xforms/FormMinipage.C
src/frontends/xforms/form_paragraph.C
src/frontends/xforms/FormMaths.C
src/frontends/xforms/form_maths.C
src/frontends/xforms/FormParagraph.C

View File

@ -763,7 +763,8 @@ void BufferView::Pimpl::workAreaButtonRelease(int x, int y,
selection_possible = false;
if (button >= 2) return;
if (button == 2)
return;
bv_->setState();
owner_->showState();

View File

@ -1,3 +1,12 @@
2001-03-16 Juergen Vigna <jug@sad.it>
* BufferView_pimpl.C (workAreaButtonRelease): return only on button==2
otherwise it won't open options-dialogs.
* buffer.C: honor pextraWidth(p) on converting minipages.
* tabular.C (l_getline): changed the functions to strip trailing \r.
2001-03-16 Angus Leeming <a.leeming@ic.ac.uk>
* BufferView_pimpl.C:

View File

@ -512,6 +512,9 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, LyXParagraph *& par,
// parameters to set options in the
// minipage inset.
InsetMinipage::Position imp = static_cast<InsetMinipage::Position>(minipar->params.pextraAlignment());
string pextraWidth = minipar->params.pextraWidth();
string pextraWidthp = minipar->params.pextraWidthp();
bool pextraHfill = minipar->params.pextraHfill();
LyXParagraph * tmp = minipar;
while (tmp) {
tmp->params.pextraType(0);
@ -525,10 +528,13 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, LyXParagraph *& par,
InsetMinipage * mini = new InsetMinipage;
mini->pos(imp);
mini->width(pextraWidth);
mini->widthp(pextraWidthp);
mini->inset->par = minipar;
// Insert the minipage last in the
// previous paragraph.
par->previous()->InsertInset(par->previous()->size(), mini);
#warning insert a hfill-character here if pextraHfill == true
minipar = par;
} else {
lyxerr << "new minipage par" << endl;
@ -568,6 +574,9 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, LyXParagraph *& par,
// do want to use some of these parameters
// to set options in the minipage inset.
InsetMinipage::Position imp = static_cast<InsetMinipage::Position>(minipar->params.pextraAlignment());
string pextraWidth = minipar->params.pextraWidth();
string pextraWidthp = minipar->params.pextraWidthp();
bool pextraHfill = minipar->params.pextraHfill();
LyXParagraph * tmp = minipar;
while (tmp) {
tmp->params.pextraType(0);
@ -581,8 +590,11 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, LyXParagraph *& par,
InsetMinipage * mini = new InsetMinipage;
mini->pos(imp);
mini->width(pextraWidth);
mini->widthp(pextraWidthp);
mini->inset->par = minipar;
par->previous()->InsertInset(par->previous()->size(), mini);
#warning insert a hfill-character here if pextraHfill == true
minipar = 0;
} else if (par->params.pextraType() == LyXParagraph::PEXTRA_MINIPAGE) {

View File

@ -1,3 +1,7 @@
2001-03-16 Juergen Vigna <jug@sad.it>
* Dialogs.h (noncopyable): added minipage signals.
2001-03-15 Lars Gullik Bjønnes <larsbj@trylle.birdstep.com>
* several files: remove CXX_WORKING_NAMESPACES

View File

@ -44,6 +44,7 @@ class InsetInclude;
class InsetInfo;
class InsetTabular;
class InsetCommand;
class InsetMinipage;
/** Container of all dialogs and signals a LyXView needs or uses to access them
The list of dialog signals isn't comprehensive but should be a good guide
@ -149,6 +150,10 @@ public:
///
SigC::Signal0<void> showTabularCreate;
///
SigC::Signal1<void, InsetMinipage *> showMinipage;
///
SigC::Signal1<void, InsetMinipage *> updateMinipage;
///
SigC::Signal1<void, InsetCommand *> showTOC;
///
SigC::Signal1<void, string const &> createTOC;

View File

@ -1,3 +1,13 @@
2001-03-16 Juergen Vigna <jug@sad.it>
* Dialogs.C (Dialogs): create minipage options dialog.
* forms/form_minipage.fd:
* form_minipage.C:
* form_minipage.h:
* FormMinipage.C:
* FormMinipage.h: new files for the minipage options dialog.
2001-03-16 Angus Leeming <a.leeming@ic.ac.uk>
* FormMaths.[Ch]: make the FD_ structs to private. Create appropriate

View File

@ -48,6 +48,7 @@
#include "FormToc.h"
#include "FormUrl.h"
#include "FormVCLog.h"
#include "FormMinipage.h"
// Signal enabling all visible popups to be redrawn if so desired.
// E.g., when the GUI colours have been remapped.
@ -84,6 +85,7 @@ Dialogs::Dialogs(LyXView * lv)
add(new FormToc(lv, this));
add(new FormUrl(lv, this));
add(new FormVCLog(lv, this));
add(new FormMinipage(lv, this));
// reduce the number of connections needed in
// dialogs by a simple connection here.

View File

@ -0,0 +1,135 @@
// -*- C++ -*-
/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 2000 The LyX Team.
*
* ======================================================
*/
/* FormMinipage.C
* FormMinipage Interface Class Implementation
*/
#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "FormMinipage.h"
#include "form_minipage.h"
#include "Dialogs.h"
#include "LyXView.h"
#include "buffer.h"
#include "insets/insetminipage.h"
#include "support/lstrings.h"
FormMinipage::FormMinipage(LyXView * lv, Dialogs * d)
: FormInset(lv, d, _("Minipage Options")),
inset_(0)
{
// let the dialog be shown
// This is a permanent connection so we won't bother
// storing a copy because we won't be disconnecting.
d->showMinipage.connect(slot(this, &FormMinipage::showInset));
d->updateMinipage.connect(slot(this, &FormMinipage::updateInset));
}
FL_FORM * FormMinipage::form() const
{
if (dialog_.get())
return dialog_->form;
return 0;
}
void FormMinipage::connect()
{
bc().valid(true);
FormBaseBD::connect();
}
void FormMinipage::showInset(InsetMinipage * inset)
{
if (inset == 0) return;
// If connected to another inset, disconnect from it.
if (inset_ != inset) {
ih_.disconnect();
ih_ = inset->hideDialog.connect(slot(this, &FormMinipage::hide));
inset_ = inset;
}
show();
}
void FormMinipage::updateInset(InsetMinipage * inset)
{
if (inset == 0 || inset_ == 0) return;
// If connected to another inset, disconnect from it.
if (inset_ != inset) {
ih_.disconnect();
ih_ = inset->hideDialog.connect(slot(this, &FormMinipage::hide));
inset_ = inset;
}
update();
}
void FormMinipage::build()
{
dialog_.reset(build_minipage());
// Workaround dumb xforms sizing bug
minw_ = form()->w;
minh_ = form()->h;
fl_set_input_return(dialog_->input_width, FL_RETURN_CHANGED);
fl_set_input_return(dialog_->input_widthp, FL_RETURN_CHANGED);
// Manage the ok, apply and cancel/close buttons
bc().setOK(dialog_->button_ok);
bc().setApply(dialog_->button_apply);
bc().setCancel(dialog_->button_cancel);
bc().refresh();
}
void FormMinipage::apply()
{
#if 0
int ysize = int(fl_get_slider_value(dialog_->slider_columns) + 0.5);
int xsize = int(fl_get_slider_value(dialog_->slider_rows) + 0.5);
string tmp = tostr(xsize) + " " + tostr(ysize);
lv_->getLyXFunc()->Dispatch(LFUN_INSET_TABULAR, tmp);
#endif
}
void FormMinipage::update()
{
if (!inset_)
return;
fl_set_input(dialog_->input_width, inset_->width().c_str());
fl_set_input(dialog_->input_widthp, tostr(inset_->widthp()).c_str());
switch (inset_->pos()) {
case InsetMinipage::top:
fl_set_button(dialog_->radio_top, 1);
break;
case InsetMinipage::center:
fl_set_button(dialog_->radio_middle, 1);
break;
case InsetMinipage::bottom:
fl_set_button(dialog_->radio_bottom, 1);
break;
}
bc().readOnly(lv_->buffer()->isReadonly());
}

View File

@ -0,0 +1,77 @@
// -*- C++ -*-
/* This file is part of
* ======================================================
*
* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
* Copyright 1995-2000 The LyX Team.
*
*======================================================*/
/* FormMinipage.h
* FormMinipage Interface Class
*/
#ifndef FORMMINIPAGE_H
#define FORMMINIPAGE_H
#include <boost/smart_ptr.hpp>
#ifdef __GNUG__
#pragma interface
#endif
#include "FormInset.h"
#include "xformsBC.h"
class LyXView;
class Dialogs;
class InsetMinipage;
struct FD_form_minipage;
/** This class provides an XForms implementation of the FormMinipage
Dialog.
*/
class FormMinipage : public FormInset {
public:
/// #FormMinipage x(LyXView ..., Dialogs ...);#
FormMinipage(LyXView *, Dialogs *);
private:
/// Pointer to the actual instantiation of the ButtonController.
virtual xformsBC & bc();
/// Connect signals etc.
virtual void connect();
/// Slot launching dialog to an existing inset
void showInset(InsetMinipage *);
/// Slot launching dialog to an existing inset
void updateInset(InsetMinipage *);
/// Apply from dialog
virtual void apply();
/// Update dialog before showing it
virtual void update();
/// Pointer to the actual instantiation of the xforms form
virtual FL_FORM * form() const;
/// Build the dialog
virtual void build();
///
FD_form_minipage * build_minipage();
/// Real GUI implementation.
boost::scoped_ptr<FD_form_minipage> dialog_;
/// The ButtonController
ButtonController<OkApplyCancelReadOnlyPolicy, xformsBC> bc_;
/// pointer to the inset passed through showInset
InsetMinipage * inset_;
};
inline
xformsBC & FormMinipage::bc()
{
return bc_;
}
#endif

View File

@ -90,6 +90,10 @@ libxforms_la_SOURCES = \
FormMaths.h \
form_maths.C \
form_maths.h \
FormMinipage.C \
FormMinipage.h \
form_minipage.C \
form_minipage.h \
FormParagraph.C \
FormParagraph.h \
form_paragraph.C \

View File

@ -0,0 +1,111 @@
// File modified by fdfix.sh for use by lyx (with xforms >= 0.88) and gettext
#include <config.h>
#include "lyx_gui_misc.h"
#include "gettext.h"
/* Form definition file generated with fdesign. */
#include FORMS_H_LOCATION
#include <stdlib.h>
#include "form_minipage.h"
#include "FormMinipage.h"
FD_form_minipage::~FD_form_minipage()
{
if ( form->visible ) fl_hide_form( form );
fl_free_form( form );
}
FD_form_minipage * FormMinipage::build_minipage()
{
FL_OBJECT *obj;
FD_form_minipage *fdui = new FD_form_minipage;
fdui->form = fl_bgn_form(FL_NO_BOX, 430, 170);
fdui->form->u_vdata = this;
obj = fl_add_box(FL_FLAT_BOX, 0, 0, 430, 170, "");
obj = fl_add_frame(FL_ENGRAVED_FRAME, 230, 20, 190, 100, "");
fl_set_object_color(obj, FL_COL1, FL_COL1);
obj = fl_add_frame(FL_ENGRAVED_FRAME, 20, 20, 200, 100, "");
fl_set_object_color(obj, FL_COL1, FL_COL1);
{
char const * const dummy = N_("Length|#L");
fdui->input_width = obj = fl_add_input(FL_NORMAL_INPUT, 100, 30, 110, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
{
// xgettext:no-c-format
char const * const dummy = N_("or %|#o");
fdui->input_widthp = obj = fl_add_input(FL_INT_INPUT, 100, 70, 110, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
obj = fl_add_text(FL_NORMAL_TEXT, 30, 10, 100, 20, _("Width"));
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
obj = fl_add_text(FL_NORMAL_TEXT, 240, 10, 140, 20, _("Alignment"));
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_lalign(obj, FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
fl_set_object_lstyle(obj, FL_BOLD_STYLE);
fdui->group_alignment = fl_bgn_group();
{
char const * const dummy = N_("Top|#T");
fdui->radio_top = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 249, 30, 152, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
{
char const * const dummy = N_("Middle|#d");
fdui->radio_middle = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 249, 60, 152, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
{
char const * const dummy = N_("Bottom|#B");
fdui->radio_bottom = obj = fl_add_checkbutton(FL_RADIO_BUTTON, 249, 90, 152, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0);
fl_end_group();
{
char const * const dummy = N_("Cancel|^[");
fdui->button_cancel = obj = fl_add_button(FL_NORMAL_BUTTON, 330, 130, 90, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedCancelCB, 0);
{
char const * const dummy = N_("Apply|#A");
fdui->button_apply = obj = fl_add_button(FL_NORMAL_BUTTON, 230, 130, 90, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedApplyCB, 0);
fdui->button_ok = obj = fl_add_button(FL_RETURN_BUTTON, 130, 130, 90, 30, _("OK"));
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedOKCB, 0);
{
char const * const dummy = N_("Restore|#R");
fdui->button_restore = obj = fl_add_button(FL_NORMAL_BUTTON, 10, 130, 90, 30, idex(_(dummy)));
fl_set_button_shortcut(obj, scex(_(dummy)), 1);
}
fl_set_object_lsize(obj, FL_NORMAL_SIZE);
fl_set_object_callback(obj, C_FormBaseDeprecatedRestoreCB, 0);
fl_end_form();
fdui->form->fdui = fdui;
return fdui;
}
/*---------------------------------------*/

View File

@ -0,0 +1,32 @@
// File modified by fdfix.sh for use by lyx (with xforms >= 0.88) and gettext
/** Header file generated with fdesign **/
#ifndef FD_form_minipage_h_
#define FD_form_minipage_h_
/** Callbacks, globals and object handlers **/
extern "C" void C_FormBaseDeprecatedInputCB(FL_OBJECT *, long);
extern "C" void C_FormBaseDeprecatedCancelCB(FL_OBJECT *, long);
extern "C" void C_FormBaseDeprecatedApplyCB(FL_OBJECT *, long);
extern "C" void C_FormBaseDeprecatedOKCB(FL_OBJECT *, long);
extern "C" void C_FormBaseDeprecatedRestoreCB(FL_OBJECT *, long);
/**** Forms and Objects ****/
struct FD_form_minipage {
~FD_form_minipage();
FL_FORM *form;
FL_OBJECT *input_width;
FL_OBJECT *input_widthp;
FL_OBJECT *group_alignment;
FL_OBJECT *radio_top;
FL_OBJECT *radio_middle;
FL_OBJECT *radio_bottom;
FL_OBJECT *button_cancel;
FL_OBJECT *button_apply;
FL_OBJECT *button_ok;
FL_OBJECT *button_restore;
};
#endif /* FD_form_minipage_h_ */

View File

@ -0,0 +1,304 @@
Magic: 13000
Internal Form Definition File
(do not change)
Number of forms: 1
Unit of measure: FL_COORD_PIXEL
=============== FORM ===============
Name: form_minipage
Width: 430
Height: 170
Number of Objects: 16
--------------------
class: FL_BOX
type: FLAT_BOX
box: 0 0 430 170
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 230 20 190 100
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_FRAME
type: ENGRAVED_FRAME
box: 20 20 200 100
boxtype: FL_NO_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 100 30 110 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Length|#L
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: input_width
callback: C_FormBaseDeprecatedInputCB
argument: 0
--------------------
class: FL_INPUT
type: INT_INPUT
box: 100 70 110 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: or %|#o
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: input_widthp
callback: C_FormBaseDeprecatedInputCB
argument: 0
--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 30 10 100 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Width
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_TEXT
type: NORMAL_TEXT
box: 240 10 140 20
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT|FL_ALIGN_INSIDE
style: FL_BOLD_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Alignment
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_BEGIN_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: group_alignment
callback:
argument:
--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 249 30 152 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Top|#T
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: radio_top
callback: C_FormBaseDeprecatedInputCB
argument: 0
--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 249 60 152 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Middle|#d
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: radio_middle
callback: C_FormBaseDeprecatedInputCB
argument: 0
--------------------
class: FL_CHECKBUTTON
type: RADIO_BUTTON
box: 249 90 152 30
boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Bottom|#B
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: radio_bottom
callback: C_FormBaseDeprecatedInputCB
argument: 0
--------------------
class: FL_END_GROUP
type: 0
box: 0 0 0 0
boxtype: FL_NO_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_DEFAULT_SIZE
lcol: FL_BLACK
label:
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name:
callback:
argument:
--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 330 130 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Cancel|^[
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_cancel
callback: C_FormBaseDeprecatedCancelCB
argument: 0
--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 230 130 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Apply|#A
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_apply
callback: C_FormBaseDeprecatedApplyCB
argument: 0
--------------------
class: FL_BUTTON
type: RETURN_BUTTON
box: 130 130 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: OK
shortcut: ^M
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_ok
callback: C_FormBaseDeprecatedOKCB
argument: 0
--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 10 130 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Restore|#R
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: button_restore
callback: C_FormBaseDeprecatedRestoreCB
argument: 0
==============================
create_the_forms

View File

@ -42,7 +42,8 @@ SRCS := form_bibitem.fd \
form_tabular.fd \
form_tabular_create.fd \
form_toc.fd \
form_url.fd
form_url.fd \
form_minipage.fd
OBJS := $(SRCS:.fd=.C)

View File

@ -1,3 +1,12 @@
2001-03-16 Juergen Vigna <jug@sad.it>
* insetminipage.C (width): modified with to be a string
(widthp): added widthp (for % width) support functions.
(InsetButtonRelease): added to open the options dialog on button==3.
(~InsetMinipage): added to hide the dialog.
* insetminipage.h: added hideDialog signal
2001-03-15 Lars Gullik Bjønnes <larsbj@trylle.birdstep.com>
* insetminipage.h: change the order or Position to match

View File

@ -17,9 +17,12 @@
#include "gettext.h"
#include "lyxfont.h"
#include "BufferView.h"
#include "LyXView.h"
#include "frontends/Dialogs.h"
#include "lyxtext.h"
#include "insets/insettext.h"
#include "support/LOstream.h"
#include "support/lstrings.h"
#include "debug.h"
using std::ostream;
@ -69,6 +72,12 @@ InsetMinipage::InsetMinipage()
}
InsetMinipage::~InsetMinipage()
{
hideDialog();
}
void InsetMinipage::Write(Buffer const * buf, ostream & os) const
{
os << getInsetName() << "\n";
@ -150,13 +159,52 @@ void InsetMinipage::height(LyXLength const & ll)
}
LyXLength const & InsetMinipage::width() const
string const & InsetMinipage::width() const
{
return width_;
}
void InsetMinipage::width(LyXLength const & ll)
void InsetMinipage::width(string const & ll)
{
width_ = ll;
}
int InsetMinipage::widthp() const
{
return widthp_;
}
void InsetMinipage::widthp(int ll)
{
widthp_ = ll;
}
void InsetMinipage::widthp(string const & ll)
{
widthp_ = strToInt(ll);
}
void InsetMinipage::InsetButtonRelease(BufferView * bv, int x, int y,
int button)
{
if (button == 3) {
#if 0
// we have to check first if we have a locking inset and if this locking inset
// has a popup menu with the 3rd button
if (the_locking_inset) {
UpdatableInset * i;
if ((i=the_locking_inset->GetFirstLockingInsetOfType(TABULAR_CODE))) {
i->InsetButtonRelease(bv, x, y, button);
return;
}
}
#endif
bv->owner()->getDialogs()->showMinipage(this);
return;
}
InsetCollapsable::InsetButtonRelease(bv, x, y, button);
}

View File

@ -18,6 +18,7 @@
#include "insetcollapsable.h"
#include "vspace.h"
#include <sigc++/signal_system.h>
/** The minipage inset
@ -40,6 +41,8 @@ public:
///
InsetMinipage();
///
~InsetMinipage();
///
void Write(Buffer const * buf, std::ostream & os) const;
///
Inset * Clone(Buffer const &) const;
@ -64,9 +67,20 @@ public:
///
void height(LyXLength const &);
///
LyXLength const & width() const;
string const & width() const;
///
void width(LyXLength const &);
void width(string const &);
///
int widthp() const;
///
void widthp(int);
///
void widthp(string const &);
///
SigC::Signal0<void> hideDialog;
///
void InsetButtonRelease(BufferView * bv, int x, int y, int button);
private:
///
Position pos_;
@ -75,7 +89,9 @@ private:
///
LyXLength height_;
///
LyXLength width_;
string width_;
///
int widthp_;
};
#endif

View File

@ -1225,9 +1225,12 @@ bool getTokenValue(string const & str, const char * token, bool & flag)
static inline
void l_getline(istream & is, string & str)
{
getline(is, str);
while(str.empty() || ((str.length()==1) && (str[0] == '\r')))
str = string();
while(str.empty()) {
getline(is, str);
if (!str.empty() && str[str.length()-1] == '\r')
str.erase(str.length()-1);
}
}