- if (inset.paragraphs().size() > 1 || (i > 0 && j < p_siz)) {
- la += "...";
- }
- return la.empty() ? l : la;
-}
-
-
-void InsetCollapsable::edit(BufferView * bv, bool left)
-{
- lyxerr << "InsetCollapsable: edit left/right" << endl;
- inset.edit(bv, left);
- open();
- bv->cursor().push(this);
-}
-
-
-void InsetCollapsable::edit(BufferView * bv, int x, int y)
-{
- lyxerr << "InsetCollapsable: edit xy" << endl;
- if (status_ == Collapsed) {
- setStatus(Open);
- } else {
- if (y <= button_dim.y2)
- y = 0;
- else
- y += inset.ascent() - height_collapsed();
- }
- inset.edit(bv, x, y);
- bv->cursor().push(this);
-}
-
-
-DispatchResult
-InsetCollapsable::priv_dispatch(FuncRequest const & cmd, idx_type &, pos_type &)
-{
- //lyxerr << "\nInsetCollapsable::priv_dispatch (begin): cmd: " << cmd
- // << " button y: " << button_dim.y2 << endl;
- switch (cmd.action) {
- case LFUN_MOUSE_PRESS:
- if (status_ == Inlined)
- inset.dispatch(cmd);
- else if (status_ == Open && cmd.y > button_dim.y2)
- inset.dispatch(adjustCommand(cmd));
- return DispatchResult(true, true);
-
- case LFUN_MOUSE_MOTION:
- if (status_ == Inlined)
- inset.dispatch(cmd);
- else if (status_ == Open && cmd.y > button_dim.y2)
- inset.dispatch(adjustCommand(cmd));
- return DispatchResult(true, true);
-
- case LFUN_MOUSE_RELEASE:
- return lfunMouseRelease(cmd);
-
- case LFUN_INSET_TOGGLE:
- if (inset.text_.toggleInset())
- return DispatchResult(true, true);
- if (status_ == Open) {
- setStatus(Inlined);
- return DispatchResult(true, true);
- } else {
- setStatus(Collapsed);
- return DispatchResult(false, FINISHED_RIGHT);
- }
-
- default:
- return inset.dispatch(adjustCommand(cmd));