28#include <bitmaps.hlst>
29#include <core_resource.hxx>
41 , m_sOptional(
ForResId(STR_OPTIONAL))
42 , m_sRequired(
ForResId(STR_REQUIRED))
43 , m_xBuilder(
Application::CreateBuilder(pParent,
"formula/ui/parameter.ui"))
44 ,
m_xContainer(m_xBuilder->weld_container(
"ParameterPage"))
45 , m_xSlider(m_xBuilder->weld_scrolled_window(
"scrollbar", true))
46 , m_xParamGrid(m_xBuilder->weld_widget(
"paramgrid"))
47 , m_xGrid(m_xBuilder->weld_widget(
"grid"))
48 , m_xFtEditDesc(m_xBuilder->weld_label(
"editdesc"))
49 , m_xFtArgName(m_xBuilder->weld_label(
"parname"))
50 , m_xFtArgDesc(m_xBuilder->weld_label(
"pardesc"))
51 , m_xBtnFx1(m_xBuilder->weld_button(
"FX1"))
52 , m_xBtnFx2(m_xBuilder->weld_button(
"FX2"))
53 , m_xBtnFx3(m_xBuilder->weld_button(
"FX3"))
54 , m_xBtnFx4(m_xBuilder->weld_button(
"FX4"))
55 , m_xFtArg1(m_xBuilder->weld_label(
"FT_ARG1"))
56 , m_xFtArg2(m_xBuilder->weld_label(
"FT_ARG2"))
57 , m_xFtArg3(m_xBuilder->weld_label(
"FT_ARG3"))
58 , m_xFtArg4(m_xBuilder->weld_label(
"FT_ARG4"))
59 , m_xEdArg1(new
ArgEdit(m_xBuilder->weld_entry(
"ED_ARG1")))
60 , m_xEdArg2(new
ArgEdit(m_xBuilder->weld_entry(
"ED_ARG2")))
61 , m_xEdArg3(new
ArgEdit(m_xBuilder->weld_entry(
"ED_ARG3")))
62 , m_xEdArg4(new
ArgEdit(m_xBuilder->weld_entry(
"ED_ARG4")))
63 , m_xRefBtn1(new
RefButton(m_xBuilder->weld_button(
"RB_ARG1")))
64 , m_xRefBtn2(new
RefButton(m_xBuilder->weld_button(
"RB_ARG2")))
65 , m_xRefBtn3(new
RefButton(m_xBuilder->weld_button(
"RB_ARG3")))
66 , m_xRefBtn4(new
RefButton(m_xBuilder->weld_button(
"RB_ARG4")))
70 auto nEditHeight =
m_xFtEditDesc->get_preferred_size().Height();
75 auto nArgHeight =
m_xFtArgDesc->get_preferred_size().Height();
108 nArg = sal::static_int_cast<sal_uInt16>( nArg +
GetSliderPos() );
129 sal_uInt16
nPos = std::min( nArg, nFix );
135 if ( nArg >= nVarArgsStart )
136 aArgName += OUString::number( nArg-nVarArgsStart+1 );
146 nPos = nFix + ( (nArg-nFix) % 2);
152 if ( nArg >= nVarArgsStart )
153 aArgName += OUString::number( (nArg-nVarArgsStart)/2 + 1 );
163 sal_uInt16 nArg = nOffset +
i;
180 sal_uInt16
nPos = std::min( nArg, nFix );
187 if ( nArg >= nVarArgsStart )
190 OUString::number(nArg-nVarArgsStart+1);
203 nPos = nFix + ( (nArg-nFix) % 2);
210 if ( nArg >= nVarArgsStart )
213 OUString::number( (nArg-nVarArgsStart)/2 + 1 );
242 if(nNewEdPos<0 || nNewEdPos>3)
248 nEdFocus=no-
static_cast<sal_uInt16
>(nOffset);
323 m_xSlider->set_vpolicy(VclPolicyType::NEVER);
327 m_xEdArg1->GetWidget()->set_help_id(sHelpId);
328 m_xEdArg2->GetWidget()->set_help_id(sHelpId);
329 m_xEdArg3->GetWidget()->set_help_id(sHelpId);
330 m_xEdArg4->GetWidget()->set_help_id(sHelpId);
421 m_xSlider->set_vpolicy(VclPolicyType::NEVER);
427 m_xSlider->set_vpolicy(VclPolicyType::ALWAYS);
454 return static_cast<sal_uInt16
>(
m_xSlider->vadjustment_get_value());
461 if(
m_xSlider->get_visible() && nOffset!=nSliderPos)
463 m_xSlider->vadjustment_set_value(nSliderPos);
464 for ( sal_uInt16
i=0;
i<4;
i++ )
475 for ( sal_uInt16
i=0;
i<4;
i++ )
497 sal_uInt16 nOffset = GetSliderPos();
501 if(&rPtr == &aArgInput[
nPos])
510 aArgInput[nEdFocus].SelectAll();
511 nActiveLine=nEdFocus+nOffset;
518 sal_uInt16 nOffset = GetSliderPos();
522 if(&rPtr == &aArgInput[
nPos])
531 aArgInput[nEdFocus].SelectAll();
532 UpdateArgDesc( nEdFocus );
533 nActiveLine=nEdFocus+nOffset;
539 sal_uInt16 nOffset = GetSliderPos();
543 if(&rPtr == &aArgInput[
nPos])
552 aArgInput[nEdFocus].SelectAll();
553 UpdateArgDesc( nEdFocus );
554 nActiveLine=nEdFocus+nOffset;
556 aArgInput[nEdFocus].SelectAll();
557 aArgInput[nEdFocus].UpdateAccessibleNames();
568 sal_uInt16 nOffset = GetSliderPos();
572 if(&rPtr == &aArgInput[
nPos])
580 size_t nPara = nEdFocus + nOffset;
581 if (nPara < aParaArray.size())
582 aParaArray[nPara] = aArgInput[nEdFocus].GetArgVal();
585 SAL_WARN(
"formula.ui",
"ParaWin::ModifyHdl - shot in foot: nPara " <<
586 nPara <<
" >= aParaArray.size() " << aParaArray.size() <<
587 " with nEdFocus " << nEdFocus <<
588 " and aArgInput[nEdFocus].GetArgVal() '" << aArgInput[nEdFocus].GetArgVal() <<
"'");
590 UpdateArgDesc( nEdFocus);
591 nActiveLine =
static_cast<sal_uInt16
>(nPara);
constexpr tools::Long Height() const
constexpr tools::Long Width() const
OUString ForResId(TranslateId aId)
#define VAR_ARGS
Used to indicate a variable number of parameters for the Function Wizard.
#define PAIRED_VAR_ARGS
Used to indicate a variable number of paired parameters for the Function Wizard.
#define LINK(Instance, Class, Member)
#define SAL_WARN(area, stream)
#define SAL_N_ELEMENTS(arr)
OString stripStart(const OString &rIn, char c)
Reference< XNameAccess > m_xContainer