13 #include <document.hxx>
50 OUString convertNumberToString(
double nVal,
const ScDocument* pDoc)
71 : GenericDialogController(pParent,
"modules/scalc/ui/databaroptions.ui",
"DataBarOptions")
72 , mpNumberFormatter(pDoc->GetFormatTable())
75 , mxBtnOk(m_xBuilder->weld_button(
"ok"))
76 , mxBtnCancel(m_xBuilder->weld_button(
"cancel"))
77 , mxLbPos(new
ColorListBox(m_xBuilder->weld_menu_button(
"positive_colour"), pParent))
78 , mxLbNeg(new
ColorListBox(m_xBuilder->weld_menu_button(
"negative_colour"), pParent))
79 , mxLbAxisCol(new
ColorListBox(m_xBuilder->weld_menu_button(
"axis_colour"), pParent))
80 , mxLbFillType(m_xBuilder->weld_combo_box(
"fill_type"))
81 , mxLbTypeMin(m_xBuilder->weld_combo_box(
"min"))
82 , mxLbTypeMax(m_xBuilder->weld_combo_box(
"max"))
83 , mxLbAxisPos(m_xBuilder->weld_combo_box(
"axis_pos"))
84 , mxEdMin(m_xBuilder->weld_entry(
"min_value"))
85 , mxEdMax(m_xBuilder->weld_entry(
"max_value"))
86 , mxLenMin(m_xBuilder->weld_entry(
"min_length"))
87 , mxLenMax(m_xBuilder->weld_entry(
"max_length"))
88 , mxCbOnlyBar(m_xBuilder->weld_check_button(
"only_bar"))
89 , mxStrSameValueFT(m_xBuilder->weld_label(
"str_same_value"))
133 mxLbPos->SelectEntry(0x2a6099);
162 double nMinValue = 0;
163 sal_uInt32 nIndex = 0;
166 double nMaxValue = 0;
197 int nSelectMin = mxLbTypeMin->get_active();
200 int nSelectMax = mxLbTypeMax->get_active();
205 OUString aMinString = mxLenMin->get_text();
206 OUString aMaxString = mxLenMax->get_text();
207 double nMinValue = 0;
208 sal_uInt32 nIndex = 0;
209 (
void)mpNumberFormatter->IsNumberFormat(aMinString, nIndex, nMinValue);
211 double nMaxValue = 0;
212 (
void)mpNumberFormatter->IsNumberFormat(aMaxString, nIndex, nMaxValue);
213 if(rtl::math::approxEqual(nMinValue, nMaxValue) || nMinValue > nMaxValue || nMaxValue > 100 || nMinValue < 0)
216 if (!bWarn && mxLbTypeMin->get_active() == mxLbTypeMax->get_active())
221 OUString aMinString = mxEdMin->get_text();
222 OUString aMaxString = mxEdMax->get_text();
223 double nMinValue = 0;
224 sal_uInt32 nIndex = 0;
225 (
void)mpNumberFormatter->IsNumberFormat(aMinString, nIndex, nMinValue);
227 double nMaxValue = 0;
228 (
void)mpNumberFormatter->IsNumberFormat(aMaxString, nIndex, nMaxValue);
229 if(rtl::math::approxEqual(nMinValue, nMaxValue) || nMinValue > nMaxValue)
238 VclMessageType::Warning, VclButtonsType::Ok,
239 maStrWarnSameValue));
250 int nSelectMin = mxLbTypeMin->get_active();
252 mxEdMin->set_sensitive(
false);
255 mxEdMin->set_sensitive(
true);
256 if(mxEdMin->get_text().isEmpty())
259 mxEdMin->set_text(OUString::number(50));
261 mxEdMin->set_text(OUString::number(0));
265 int nSelectMax = mxLbTypeMax->get_active();
267 mxEdMax->set_sensitive(
false);
270 mxEdMax->set_sensitive(
true);
271 if (mxEdMax->get_text().isEmpty())
274 mxEdMax->set_text(OUString::number(50));
276 mxEdMax->set_text(OUString::number(0));
283 int axisPos = mxLbAxisPos->get_active();
284 if(axisPos != 2 && axisPos != 1)
286 mxLenMin->set_sensitive(
false);
287 mxLenMax->set_sensitive(
false);
291 mxLenMin->set_sensitive(
true);
292 mxLenMax->set_sensitive(
true);
293 if(mxLenMin->get_text().isEmpty())
295 mxLenMin->set_text(OUString::number(0));
296 mxLenMax->set_text(OUString::number(100));
#define LINK(Instance, Class, Member)
std::unique_ptr< weld::Entry > mxLenMin
std::unique_ptr< weld::ComboBox > mxLbTypeMin
std::unique_ptr< weld::ComboBox > mxLbFillType
SvNumberFormatter * mpNumberFormatter
std::unique_ptr< ContentProperties > pData
std::unique_ptr< weld::Entry > mxLenMax
std::unique_ptr< weld::CheckButton > mxCbOnlyBar
std::unique_ptr< ColorListBox > mxLbNeg
virtual ~ScDataBarSettingsDlg() override
void SetValue(double nValue)
virtual int get_active() const =0
virtual void set_text(const OUString &rText)=0
std::unique_ptr< weld::Entry > mxEdMax
const ScTokenArray * GetFormula() const
ScDataBarFormatData * GetData()
ScColorScaleEntryType GetType() const
std::unique_ptr< weld::ComboBox > mxLbAxisPos
std::unique_ptr< weld::Label > mxStrSameValueFT
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_LIGHTRED
std::unique_ptr< weld::Entry > mxEdMin
SC_DLLPUBLIC SvNumberFormatter * GetFormatTable() const
virtual void set_active(int pos)=0
ScDataBarSettingsDlg(weld::Window *pParent, const ScDataBarFormatData &rData, ScDocument *pDoc, const ScAddress &rPos)
std::unique_ptr< ColorListBox > mxLbAxisCol
void SetFormula(const OUString &rFormula, ScDocument &rDoc, const ScAddress &rAddr, formula::FormulaGrammar::Grammar eGrammar=formula::FormulaGrammar::GRAM_DEFAULT)
virtual OUString get_text() const =0
Reference< XExecutableDialog > m_xDialog
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
std::unique_ptr< weld::Button > mxBtnOk
std::unique_ptr< weld::ComboBox > mxLbTypeMax
void SetType(ScColorScaleEntryType eType)
OUString maStrWarnSameValue
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, bool bMobile=false)
std::unique_ptr< ColorListBox > mxLbPos