#include "FuncStatus.h"
#include "Lexer.h"
#include "OutputParams.h"
+#include "output_xhtml.h"
#include "TextClass.h"
#include "TocBackend.h"
namespace lyx {
-InsetBranch::InsetBranch(Buffer const & buf, InsetBranchParams const & params)
+InsetBranch::InsetBranch(Buffer * buf, InsetBranchParams const & params)
: InsetCollapsable(buf, InsetText::DefaultLayout), params_(params)
{}
}
-docstring InsetBranch::editMessage() const
-{
- return _("Opened Branch Inset");
-}
-
-
void InsetBranch::write(ostream & os) const
{
params_.write(os);
}
-docstring InsetBranch::toolTip(BufferView const &, int, int) const
+docstring InsetBranch::toolTip(BufferView const & bv, int x, int y) const
{
docstring const status = isBranchSelected() ?
_("active") : _("non-active");
- return support::bformat(_("Branch (%1$s): %2$s"),
- status,
- params_.branch);
+ docstring const heading =
+ support::bformat(_("Branch (%1$s): %2$s"), status, params_.branch);
+ docstring const contents = InsetCollapsable::toolTip(bv, x, y);
+ if (isOpen(bv) || contents.empty())
+ return heading;
+ else
+ return heading + from_ascii("\n") + contents;
}
docstring s = _("Branch: ") + params_.branch;
Buffer const & realbuffer = *buffer().masterBuffer();
BranchList const & branchlist = realbuffer.params().branchlist();
- if (!branchlist.find(params_.branch))
+ if (!branchlist.find(params_.branch)
+ && buffer().params().branchlist().find(params_.branch))
s = _("Branch (child only): ") + params_.branch;
+ else if (!branchlist.find(params_.branch))
+ s = _("Branch (undefined): ") + params_.branch;
if (!params_.branch.empty()) {
// FIXME UNICODE
ColorCode c = lcolor.getFromLyXName(to_utf8(params_.branch));
}
-ColorCode InsetBranch::backgroundColor() const
+ColorCode InsetBranch::backgroundColor(PainterInfo const & pi) const
{
if (params_.branch.empty())
- return Inset::backgroundColor();
+ return Inset::backgroundColor(pi);
// FIXME UNICODE
ColorCode c = lcolor.getFromLyXName(to_utf8(params_.branch));
if (c == Color_none)
InsetBranchParams params;
InsetBranch::string2params(to_utf8(cmd.argument()), params);
params_.branch = params.branch;
- setLayout(cur.buffer()->params());
break;
}
- case LFUN_MOUSE_PRESS:
- if (cmd.button() != mouse_button::button3)
- InsetCollapsable::doDispatch(cur, cmd);
- else
- cur.undispatched();
- break;
-
case LFUN_INSET_DIALOG_UPDATE:
cur.bv().updateDialog("branch", params2string(params()));
break;
case LFUN_BRANCH_ACTIVATE:
case LFUN_BRANCH_DEACTIVATE: {
// FIXME: I do not like this cast, but have no other idea...
- Buffer * realbuffer = const_cast<Buffer *>(buffer().masterBuffer());
- BranchList & branchlist = realbuffer->params().branchlist();
- Branch * ourBranch = branchlist.find(params_.branch);
- if (!ourBranch)
- break;
- ourBranch->setSelected(cmd.action == LFUN_BRANCH_ACTIVATE);
+ Buffer const * buf = buffer().masterBuffer();
+ BranchList const & branchlist = buf->params().branchlist();
+ Branch * our_branch = const_cast<Branch *>(branchlist.find(params_.branch));
+ if (!our_branch) {
+ // child only?
+ our_branch = buffer().params().branchlist().find(params_.branch);
+ if (!our_branch)
+ break;
+ }
+ our_branch->setSelected(cmd.action == LFUN_BRANCH_ACTIVATE);
break;
}
Buffer const & realbuffer = *buffer().masterBuffer();
BranchList const & branchlist = realbuffer.params().branchlist();
Branch const * ourBranch = branchlist.find(params_.branch);
- if (!ourBranch)
- return false;
+
+ if (!ourBranch) {
+ // this branch is defined in child only
+ ourBranch = buffer().params().branchlist().find(params_.branch);
+ if (!ourBranch)
+ return false;
+ }
return ourBranch->isSelected();
}
}
+docstring InsetBranch::xhtml(XHTMLStream & xs, OutputParams const & rp) const
+{
+ if (isBranchSelected())
+ return InsetText::xhtml(xs, rp);
+ return docstring();
+}
+
+
void InsetBranch::tocString(odocstream & os) const
{
if (isBranchSelected())