[Libreoffice-commits] core.git: 3 commits - extras/source sc/inc sc/source sc/uiconfig sc/UIConfig_scalc.mk

Caolán McNamara caolanm at redhat.com
Wed Apr 17 06:30:42 PDT 2013


 extras/source/glade/libreoffice-catalog.xml.in |    4 
 sc/UIConfig_scalc.mk                           |    1 
 sc/inc/globstr.hrc                             |    5 
 sc/inc/sc.hrc                                  |    2 
 sc/source/ui/inc/optsolver.hrc                 |   55 -
 sc/source/ui/inc/optsolver.hxx                 |  109 +--
 sc/source/ui/miscdlgs/optsolver.cxx            |  347 +++++-----
 sc/source/ui/src/globstr.src                   |    8 
 sc/source/ui/src/optsolver.src                 |  421 ------------
 sc/uiconfig/scalc/ui/solverdlg.ui              |  849 +++++++++++++++++++++++++
 10 files changed, 1108 insertions(+), 693 deletions(-)

New commits:
commit e983759ee1eedc2397de4ebd248a514e1ae50788
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Apr 17 13:03:19 2013 +0100

    adapt code to solver dialog .ui conversion
    
    The vertical scrollbar remains a bit whacky in how it scales and operates when
    scrolled, this is unchanged.
    
    Change-Id: I468a87c75f1c1927d0387c4af64c7ad87f4e1922

diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 6992dc0f..c736ad0 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -163,6 +163,10 @@
                         generic-name="Reference Edit" parent="GtkEntry"
                         icon-name="widget-gtk-textentry"/>
 
+    <glade-widget-class title="Cursor Reference Edit" name="sclo-ScCursorRefEdit"
+                        generic-name="Cursor Reference Edit" parent="foruilo-RefEdit"
+                        icon-name="widget-gtk-textentry"/>
+
     <glade-widget-class title="Open Document ListBox" name="dbulo-OpenDocumentListBox"
                         generic-name="Open Document ListBox" parent="GtkComboBox"
                         icon-name="widget-gtk-combobox"/>
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index 6392110..2dd3330 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -675,7 +675,10 @@
 #define STR_INVALIDFORM             540
 #define STR_NOFORMULA               541
 
-#define STR_COUNT                   542
+#define STR_INVALIDINPUT            542
+#define STR_INVALIDCONDITION        543
+
+#define STR_COUNT                   544
 
 #endif
 
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 793a746..1832839 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -1070,7 +1070,7 @@
 #define RID_SCDLG_DPNUMGROUP            (SC_DIALOGS_START + 135)
 #define RID_SCDLG_DPDATEGROUP           (SC_DIALOGS_START + 136)
 #define RID_SCDLG_DPSHOWDETAIL          (SC_DIALOGS_START + 137)
-#define RID_SCDLG_OPTSOLVER             (SC_DIALOGS_START + 138)
+
 #define RID_SCDLG_SOLVEROPTIONS         (SC_DIALOGS_START + 139)
 #define RID_SCDLG_SOLVER_INTEGER        (SC_DIALOGS_START + 140)
 #define RID_SCDLG_SOLVER_DOUBLE         (SC_DIALOGS_START + 141)
diff --git a/sc/source/ui/inc/optsolver.hrc b/sc/source/ui/inc/optsolver.hrc
index 23d17ccb..5557cf7 100644
--- a/sc/source/ui/inc/optsolver.hrc
+++ b/sc/source/ui/inc/optsolver.hrc
@@ -19,25 +19,6 @@
 
 #include "sc.hrc"
 
-#define ED_OBJECTIVECELL        1
-#define ED_TARGET               2
-#define ED_VARIABLECELLS        3
-#define ED_LEFT1                4
-#define ED_LEFT2                5
-#define ED_LEFT3                6
-#define ED_LEFT4                7
-#define ED_RIGHT1               8
-#define ED_RIGHT2               9
-#define ED_RIGHT3               10
-#define ED_RIGHT4               11
-
-#define FT_OBJECTIVECELL        1
-#define FT_DIRECTION            2
-#define FT_VARIABLECELLS        3
-#define FT_CELLREF              4
-#define FT_OPERATOR             5
-#define FT_CONSTRAINT           6
-
 #define FT_PROGRESS             7
 #define FT_TIMELIMIT            8
 #define FT_NOSOLUTION           9
@@ -49,41 +30,9 @@
 #define FL_CONDITIONS           1
 #define FL_BUTTONS              2
 
-#define IB_OBJECTIVECELL        1
-#define IB_TARGET               2
-#define IB_VARIABLECELLS        3
-#define IB_LEFT1                4
-#define IB_LEFT2                5
-#define IB_LEFT3                6
-#define IB_LEFT4                7
-#define IB_RIGHT1               8
-#define IB_RIGHT2               9
-#define IB_RIGHT3               10
-#define IB_RIGHT4               11
-#define IB_DELETE1              12
-#define IB_DELETE2              13
-#define IB_DELETE3              14
-#define IB_DELETE4              15
-
-#define LB_OP1                  1
-#define LB_OP2                  2
-#define LB_OP3                  3
-#define LB_OP4                  4
-
-#define RB_MAX                  1
-#define RB_MIN                  2
-#define RB_VALUE                3
-
-#define SB_SCROLL               1
-
-#define BTN_OPTIONS             1
 #define BTN_HELP                2
 #define BTN_CLOSE               3
-#define BTN_SOLVE               4
-#define BTN_OK                  5
-#define BTN_CANCEL              6
-
-#define STR_INVALIDINPUT        1
-#define STR_INVALIDCONDITION    2
+#define BTN_OK                  4
+#define BTN_CANCEL              5
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/optsolver.hxx b/sc/source/ui/inc/optsolver.hxx
index 70b2882..b731728 100644
--- a/sc/source/ui/inc/optsolver.hxx
+++ b/sc/source/ui/inc/optsolver.hxx
@@ -43,6 +43,7 @@ class ScCursorRefEdit : public formula::RefEdit
 
 public:
             ScCursorRefEdit( ScAnyRefDlg* pParent, Window *pLabel, const ResId& rResId );
+            ScCursorRefEdit( Window* pParent, Window *pLabel );
     void    SetCursorLinks( const Link& rUp, const Link& rDown );
 
 protected:
@@ -106,62 +107,56 @@ public:
     virtual sal_Bool    Close();
 
 private:
-    FixedText       maFtObjectiveCell;
-    formula::RefEdit       maEdObjectiveCell;
-    formula::RefButton     maRBObjectiveCell;
-
-    FixedText       maFtDirection;
-    RadioButton     maRbMax;
-    RadioButton     maRbMin;
-    RadioButton     maRbValue;
-    formula::RefEdit       maEdTargetValue;
-    formula::RefButton     maRBTargetValue;
-
-    FixedText       maFtVariableCells;
-    formula::RefEdit       maEdVariableCells;
-    formula::RefButton     maRBVariableCells;
-
-    FixedLine       maFlConditions;
-
-    FixedText       maFtCellRef;        // labels are together with controls for the first row
-    ScCursorRefEdit maEdLeft1;
-    formula::RefButton     maRBLeft1;
-    FixedText       maFtOperator;
-    ListBox         maLbOp1;
-    FixedText       maFtConstraint;
-    ScCursorRefEdit maEdRight1;
-    formula::RefButton     maRBRight1;
-    ImageButton     maBtnDel1;
-
-    ScCursorRefEdit maEdLeft2;
-    formula::RefButton     maRBLeft2;
-    ListBox         maLbOp2;
-    ScCursorRefEdit maEdRight2;
-    formula::RefButton     maRBRight2;
-    ImageButton     maBtnDel2;
-
-    ScCursorRefEdit maEdLeft3;
-    formula::RefButton     maRBLeft3;
-    ListBox         maLbOp3;
-    ScCursorRefEdit maEdRight3;
-    formula::RefButton     maRBRight3;
-    ImageButton     maBtnDel3;
-
-    ScCursorRefEdit maEdLeft4;
-    formula::RefButton     maRBLeft4;
-    ListBox         maLbOp4;
-    ScCursorRefEdit maEdRight4;
-    formula::RefButton     maRBRight4;
-    ImageButton     maBtnDel4;
-
-    ScrollBar       maScrollBar;
-
-    FixedLine       maFlButtons;
-
-    PushButton      maBtnOpt;
-    HelpButton      maBtnHelp;
-    CancelButton    maBtnCancel;
-    PushButton      maBtnSolve;
+    FixedText*       m_pFtObjectiveCell;
+    formula::RefEdit*    m_pEdObjectiveCell;
+    formula::RefButton*  m_pRBObjectiveCell;
+
+    RadioButton*     m_pRbMax;
+    RadioButton*     m_pRbMin;
+    RadioButton*     m_pRbValue;
+    formula::RefEdit*   m_pEdTargetValue;
+    formula::RefButton* m_pRBTargetValue;
+
+    FixedText*       m_pFtVariableCells;
+    formula::RefEdit*   m_pEdVariableCells;
+    formula::RefButton* m_pRBVariableCells;
+
+    FixedText*       m_pFtCellRef; // labels are together with controls for the first row
+    ScCursorRefEdit* m_pEdLeft1;
+    formula::RefButton* m_pRBLeft1;
+    FixedText*       m_pFtOperator;
+    ListBox*         m_pLbOp1;
+    FixedText*       m_pFtConstraint;
+    ScCursorRefEdit* m_pEdRight1;
+    formula::RefButton* m_pRBRight1;
+    PushButton*      m_pBtnDel1;
+
+    ScCursorRefEdit* m_pEdLeft2;
+    formula::RefButton* m_pRBLeft2;
+    ListBox*         m_pLbOp2;
+    ScCursorRefEdit* m_pEdRight2;
+    formula::RefButton* m_pRBRight2;
+    PushButton*      m_pBtnDel2;
+
+    ScCursorRefEdit* m_pEdLeft3;
+    formula::RefButton* m_pRBLeft3;
+    ListBox*         m_pLbOp3;
+    ScCursorRefEdit* m_pEdRight3;
+    formula::RefButton* m_pRBRight3;
+    PushButton*      m_pBtnDel3;
+
+    ScCursorRefEdit* m_pEdLeft4;
+    formula::RefButton* m_pRBLeft4;
+    ListBox*         m_pLbOp4;
+    ScCursorRefEdit* m_pEdRight4;
+    formula::RefButton* m_pRBRight4;
+    PushButton*      m_pBtnDel4;
+
+    ScrollBar*       m_pScrollBar;
+
+    PushButton*      m_pBtnOpt;
+    PushButton*      m_pBtnCancel;
+    PushButton*      m_pBtnSolve;
 
     String          maInputError;
     String          maConditionError;
@@ -178,7 +173,7 @@ private:
     ScCursorRefEdit* mpRightEdit[EDIT_ROW_COUNT];
     formula::RefButton*     mpRightButton[EDIT_ROW_COUNT];
     ListBox*         mpOperator[EDIT_ROW_COUNT];
-    ImageButton*     mpDelButton[EDIT_ROW_COUNT];
+    PushButton*      mpDelButton[EDIT_ROW_COUNT];
 
     std::vector<ScOptConditionRow> maConditions;
     long            nScrollPos;
diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx
index e51fea6..d9bba10 100644
--- a/sc/source/ui/miscdlgs/optsolver.cxx
+++ b/sc/source/ui/miscdlgs/optsolver.cxx
@@ -22,6 +22,7 @@
 #include <sfx2/bindings.hxx>
 #include <sfx2/imagemgr.hxx>
 #include <svl/zforlist.hxx>
+#include <vcl/builder.hxx>
 #include <vcl/msgbox.hxx>
 #include <vcl/svapp.hxx>
 
@@ -36,6 +37,7 @@
 #include "unonames.hxx"
 #include "solveroptions.hxx"
 #include "solverutil.hxx"
+#include "globstr.hrc"
 #include "optsolver.hrc"
 
 #include "optsolver.hxx"
@@ -120,6 +122,17 @@ ScCursorRefEdit::ScCursorRefEdit( ScAnyRefDlg* pParent, Window *pLabel, const Re
 {
 }
 
+ScCursorRefEdit::ScCursorRefEdit( Window* pParent, Window *pLabel )
+    : formula::RefEdit( pParent, pLabel )
+{
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeScCursorRefEdit(Window *pParent,
+    VclBuilder::stringmap &)
+{
+    return new ScCursorRefEdit(pParent, NULL);
+}
+
 void ScCursorRefEdit::SetCursorLinks( const Link& rUp, const Link& rDown )
 {
     maCursorUpLink = rUp;
@@ -168,110 +181,121 @@ ScOptSolverSave::ScOptSolverSave( const String& rObjective, sal_Bool bMax, sal_B
 ScOptSolverDlg::ScOptSolverDlg( SfxBindings* pB, SfxChildWindow* pCW, Window* pParent,
                           ScDocShell* pDocSh, ScAddress aCursorPos )
 
-    :   ScAnyRefDlg( pB, pCW, pParent, "SolverDialog", "modules/scalc/ui/solverdlg.ui" )
-
-    ,
-
-        //
-        maFtObjectiveCell   ( this, ScResId( FT_OBJECTIVECELL ) ),
-        maEdObjectiveCell   ( this, this, &maFtObjectiveCell, ScResId( ED_OBJECTIVECELL ) ),
-        maRBObjectiveCell   ( this, ScResId( IB_OBJECTIVECELL ), &maEdObjectiveCell, this ),
-        maFtDirection       ( this, ScResId( FT_DIRECTION ) ),
-        maRbMax             ( this, ScResId( RB_MAX ) ),
-        maRbMin             ( this, ScResId( RB_MIN ) ),
-        maRbValue           ( this, ScResId( RB_VALUE ) ),
-        maEdTargetValue     ( this, this, NULL, ScResId( ED_TARGET ) ),
-        maRBTargetValue     ( this, ScResId( IB_TARGET ), &maEdTargetValue, this ),
-        maFtVariableCells   ( this, ScResId( FT_VARIABLECELLS ) ),
-        maEdVariableCells   ( this, this, &maFtVariableCells, ScResId( ED_VARIABLECELLS ) ),
-        maRBVariableCells   ( this, ScResId( IB_VARIABLECELLS ), &maEdVariableCells, this),
-        maFlConditions      ( this, ScResId( FL_CONDITIONS ) ),
-        maFtCellRef         ( this, ScResId( FT_CELLREF ) ),
-        maEdLeft1           ( this, NULL, ScResId( ED_LEFT1 ) ),
-        maRBLeft1           ( this, ScResId( IB_LEFT1 ), &maEdLeft1, this ),
-        maFtOperator        ( this, ScResId( FT_OPERATOR ) ),
-        maLbOp1             ( this, ScResId( LB_OP1 ) ),
-        maFtConstraint      ( this, ScResId( FT_CONSTRAINT ) ),
-        maEdRight1          ( this, NULL, ScResId( ED_RIGHT1 ) ),
-        maRBRight1          ( this, ScResId( IB_RIGHT1 ), &maEdRight1, this ),
-        maBtnDel1           ( this, ScResId( IB_DELETE1 ) ),
-        maEdLeft2           ( this, NULL, ScResId( ED_LEFT2 ) ),
-        maRBLeft2           ( this, ScResId( IB_LEFT2 ), &maEdLeft2, this ),
-        maLbOp2             ( this, ScResId( LB_OP2 ) ),
-        maEdRight2          ( this, NULL, ScResId( ED_RIGHT2 ) ),
-        maRBRight2          ( this, ScResId( IB_RIGHT2 ), &maEdRight2, this ),
-        maBtnDel2           ( this, ScResId( IB_DELETE2 ) ),
-        maEdLeft3           ( this, NULL, ScResId( ED_LEFT3 ) ),
-        maRBLeft3           ( this, ScResId( IB_LEFT3 ), &maEdLeft3, this ),
-        maLbOp3             ( this, ScResId( LB_OP3 ) ),
-        maEdRight3          ( this, NULL, ScResId( ED_RIGHT3 ) ),
-        maRBRight3          ( this, ScResId( IB_RIGHT3 ), &maEdRight3, this ),
-        maBtnDel3           ( this, ScResId( IB_DELETE3 ) ),
-        maEdLeft4           ( this, NULL, ScResId( ED_LEFT4 ) ),
-        maRBLeft4           ( this, ScResId( IB_LEFT4 ), &maEdLeft4, this ),
-        maLbOp4             ( this, ScResId( LB_OP4 ) ),
-        maEdRight4          ( this, NULL, ScResId( ED_RIGHT4 ) ),
-        maRBRight4          ( this, ScResId( IB_RIGHT4 ), &maEdRight4, this ),
-        maBtnDel4           ( this, ScResId( IB_DELETE4 ) ),
-        maScrollBar         ( this, ScResId( SB_SCROLL ) ),
-        maFlButtons         ( this, ScResId( FL_BUTTONS ) ),
-        maBtnOpt            ( this, ScResId( BTN_OPTIONS ) ),
-        maBtnHelp           ( this, ScResId( BTN_HELP ) ),
-        maBtnCancel         ( this, ScResId( BTN_CLOSE ) ),
-        maBtnSolve          ( this, ScResId( BTN_SOLVE ) ),
-        maInputError        ( ScResId( STR_INVALIDINPUT ) ),
-        maConditionError    ( ScResId( STR_INVALIDCONDITION ) ),
-        //
-        mpDocShell          ( pDocSh ),
-        mpDoc               ( pDocSh->GetDocument() ),
-        mnCurTab            ( aCursorPos.Tab() ),
-        mpEdActive          ( NULL ),
-        mbDlgLostFocus      ( false ),
-        nScrollPos          ( 0 )
+    : ScAnyRefDlg(pB, pCW, pParent, "SolverDialog", "modules/scalc/ui/solverdlg.ui")
+    , maInputError(ScGlobal::GetRscString(STR_INVALIDINPUT))
+    , maConditionError(ScGlobal::GetRscString(STR_INVALIDCONDITION))
+    //
+    , mpDocShell(pDocSh)
+    , mpDoc(pDocSh->GetDocument())
+    , mnCurTab(aCursorPos.Tab())
+    , mpEdActive(NULL)
+    , mbDlgLostFocus(false)
+    , nScrollPos(0)
 {
-    mpLeftEdit[0]    = &maEdLeft1;
-    mpLeftButton[0]  = &maRBLeft1;
-    mpRightEdit[0]   = &maEdRight1;
-    mpRightButton[0] = &maRBRight1;
-    mpOperator[0]    = &maLbOp1;
-    mpDelButton[0]   = &maBtnDel1;
-
-    mpLeftEdit[1]    = &maEdLeft2;
-    mpLeftButton[1]  = &maRBLeft2;
-    mpRightEdit[1]   = &maEdRight2;
-    mpRightButton[1] = &maRBRight2;
-    mpOperator[1]    = &maLbOp2;
-    mpDelButton[1]   = &maBtnDel2;
-
-    mpLeftEdit[2]    = &maEdLeft3;
-    mpLeftButton[2]  = &maRBLeft3;
-    mpRightEdit[2]   = &maEdRight3;
-    mpRightButton[2] = &maRBRight3;
-    mpOperator[2]    = &maLbOp3;
-    mpDelButton[2]   = &maBtnDel3;
-
-    mpLeftEdit[3]    = &maEdLeft4;
-    mpLeftButton[3]  = &maRBLeft4;
-    mpRightEdit[3]   = &maEdRight4;
-    mpRightButton[3] = &maRBRight4;
-    mpOperator[3]    = &maLbOp4;
-    mpDelButton[3]   = &maBtnDel4;
-
-    maRbMax.SetAccessibleRelationMemberOf(&maFtDirection);
-    maRbMin.SetAccessibleRelationMemberOf(&maFtDirection);
-    maRbValue.SetAccessibleRelationMemberOf(&maFtDirection);
-    maEdLeft2.SetAccessibleName(maFtCellRef.GetText());
-    maLbOp2.SetAccessibleName(maFtOperator.GetText());
-    maEdRight2.SetAccessibleName(maFtConstraint.GetText());
-    maEdLeft3.SetAccessibleName(maFtCellRef.GetText());
-    maLbOp3.SetAccessibleName(maFtOperator.GetText());
-    maEdRight3.SetAccessibleName(maFtConstraint.GetText());
-    maEdLeft4.SetAccessibleName(maFtCellRef.GetText());
-    maLbOp4.SetAccessibleName(maFtOperator.GetText());
-    maEdRight4.SetAccessibleName(maFtConstraint.GetText());
+    get(m_pFtObjectiveCell, "targetlabel");
+    get(m_pEdObjectiveCell, "targetedit");
+    m_pEdObjectiveCell->SetReferences(this, m_pFtObjectiveCell);
+    get(m_pRBObjectiveCell, "targetbutton");
+    m_pRBObjectiveCell->SetReferences(this, m_pEdObjectiveCell);
+    get(m_pRbMax, "max");
+    get(m_pRbMin, "min");
+    get(m_pRbValue, "value");
+    get(m_pEdTargetValue, "valueedit");
+    m_pEdTargetValue->SetReferences(this, get<FixedText>("result"));
+    get(m_pRBTargetValue, "valuebutton");
+    m_pRBTargetValue->SetReferences(this, m_pEdTargetValue);
+    get(m_pFtVariableCells, "changelabel");
+    get(m_pEdVariableCells, "changeedit");
+    m_pEdVariableCells->SetReferences(this, m_pFtVariableCells);
+    get(m_pRBVariableCells, "changebutton");
+    m_pRBVariableCells->SetReferences(this, m_pEdVariableCells);
+    get(m_pFtCellRef, "cellreflabel");
+    get(m_pEdLeft1, "ref1edit");
+    m_pEdLeft1->SetReferences(this, m_pFtCellRef);
+    get(m_pRBLeft1, "ref1button");
+    m_pRBLeft1->SetReferences(this, m_pEdLeft1);
+    get(m_pFtOperator, "oplabel");
+    get(m_pLbOp1, "op1list");
+    get(m_pFtConstraint, "constraintlabel");
+    get(m_pEdRight1, "val1edit");
+    m_pEdRight1->SetReferences(this, m_pFtConstraint);
+    get(m_pRBRight1, "val1button");
+    m_pRBRight1->SetReferences(this, m_pEdRight1);
+    get(m_pBtnDel1, "del1");
+    get(m_pEdLeft2, "ref2edit");
+    m_pEdLeft2->SetReferences(this, m_pFtCellRef);
+    get(m_pRBLeft2, "ref2button");
+    m_pRBLeft2->SetReferences(this, m_pEdLeft2);
+    get(m_pLbOp2, "op2list");
+    get(m_pEdRight2, "val2edit");
+    m_pEdRight2->SetReferences(this, m_pFtConstraint);
+    get(m_pRBRight2, "val2button");
+    m_pRBRight2->SetReferences(this, m_pEdRight2);
+    get(m_pBtnDel2, "del2");
+    get(m_pEdLeft3, "ref3edit");
+    m_pEdLeft3->SetReferences(this, m_pFtCellRef);
+    get(m_pRBLeft3, "ref3button");
+    m_pRBLeft3->SetReferences(this, m_pEdLeft3);
+    get(m_pLbOp3, "op3list");
+    get(m_pEdRight3, "val3edit");
+    m_pEdRight3->SetReferences(this, m_pFtConstraint);
+    get(m_pRBRight3, "val3button");
+    m_pRBRight3->SetReferences(this, m_pEdRight3);
+    get(m_pBtnDel3, "del3");
+    get(m_pEdLeft4, "ref4edit");
+    m_pEdLeft4->SetReferences(this, m_pFtCellRef);
+    get(m_pRBLeft4, "ref4button");
+    m_pRBLeft4->SetReferences(this, m_pEdLeft4);
+    get(m_pLbOp4, "op4list");
+    get(m_pEdRight4, "val4edit");
+    m_pEdRight4->SetReferences(this, m_pFtConstraint);
+    get(m_pRBRight4, "val4button");
+    m_pRBRight4->SetReferences(this, m_pEdRight4);
+    get(m_pBtnDel4, "del4");
+    get(m_pScrollBar, "scrollbar");
+    get(m_pBtnOpt, "options");
+    get(m_pBtnCancel, "close");
+    get(m_pBtnSolve, "solve");
+
+    mpLeftEdit[0]    = m_pEdLeft1;
+    mpLeftButton[0]  = m_pRBLeft1;
+    mpRightEdit[0]   = m_pEdRight1;
+    mpRightButton[0] = m_pRBRight1;
+    mpOperator[0]    = m_pLbOp1;
+    mpDelButton[0]   = m_pBtnDel1;
+
+    mpLeftEdit[1]    = m_pEdLeft2;
+    mpLeftButton[1]  = m_pRBLeft2;
+    mpRightEdit[1]   = m_pEdRight2;
+    mpRightButton[1] = m_pRBRight2;
+    mpOperator[1]    = m_pLbOp2;
+    mpDelButton[1]   = m_pBtnDel2;
+
+    mpLeftEdit[2]    = m_pEdLeft3;
+    mpLeftButton[2]  = m_pRBLeft3;
+    mpRightEdit[2]   = m_pEdRight3;
+    mpRightButton[2] = m_pRBRight3;
+    mpOperator[2]    = m_pLbOp3;
+    mpDelButton[2]   = m_pBtnDel3;
+
+    mpLeftEdit[3]    = m_pEdLeft4;
+    mpLeftButton[3]  = m_pRBLeft4;
+    mpRightEdit[3]   = m_pEdRight4;
+    mpRightButton[3] = m_pRBRight4;
+    mpOperator[3]    = m_pLbOp4;
+    mpDelButton[3]   = m_pBtnDel4;
+
+    m_pEdLeft2->SetAccessibleName(m_pFtCellRef->GetText());
+    m_pLbOp2->SetAccessibleName(m_pFtOperator->GetText());
+    m_pEdRight2->SetAccessibleName(m_pFtConstraint->GetText());
+    m_pEdLeft3->SetAccessibleName(m_pFtCellRef->GetText());
+    m_pLbOp3->SetAccessibleName(m_pFtOperator->GetText());
+    m_pEdRight3->SetAccessibleName(m_pFtConstraint->GetText());
+    m_pEdLeft4->SetAccessibleName(m_pFtCellRef->GetText());
+    m_pLbOp4->SetAccessibleName(m_pFtOperator->GetText());
+    m_pEdRight4->SetAccessibleName(m_pFtConstraint->GetText());
 
     Init( aCursorPos );
-    FreeResource();
 }
 
 //----------------------------------------------------------------------------
@@ -297,18 +321,18 @@ void ScOptSolverDlg::Init(const ScAddress& rCursorPos)
         mpDelButton[nRow]->SetModeImage( aDelNm );
     }
 
-    maBtnOpt.SetClickHdl( LINK( this, ScOptSolverDlg, BtnHdl ) );
-    maBtnCancel.SetClickHdl( LINK( this, ScOptSolverDlg, BtnHdl ) );
-    maBtnSolve.SetClickHdl( LINK( this, ScOptSolverDlg, BtnHdl ) );
+    m_pBtnOpt->SetClickHdl( LINK( this, ScOptSolverDlg, BtnHdl ) );
+    m_pBtnCancel->SetClickHdl( LINK( this, ScOptSolverDlg, BtnHdl ) );
+    m_pBtnSolve->SetClickHdl( LINK( this, ScOptSolverDlg, BtnHdl ) );
 
     Link aLink = LINK( this, ScOptSolverDlg, GetFocusHdl );
-    maEdObjectiveCell.SetGetFocusHdl( aLink );
-    maRBObjectiveCell.SetGetFocusHdl( aLink );
-    maEdTargetValue.SetGetFocusHdl( aLink );
-    maRBTargetValue.SetGetFocusHdl( aLink );
-    maEdVariableCells.SetGetFocusHdl( aLink );
-    maRBVariableCells.SetGetFocusHdl( aLink );
-    maRbValue.SetGetFocusHdl( aLink );
+    m_pEdObjectiveCell->SetGetFocusHdl( aLink );
+    m_pRBObjectiveCell->SetGetFocusHdl( aLink );
+    m_pEdTargetValue->SetGetFocusHdl( aLink );
+    m_pRBTargetValue->SetGetFocusHdl( aLink );
+    m_pEdVariableCells->SetGetFocusHdl( aLink );
+    m_pRBVariableCells->SetGetFocusHdl( aLink );
+    m_pRbValue->SetGetFocusHdl( aLink );
     for ( sal_uInt16 nRow = 0; nRow < EDIT_ROW_COUNT; ++nRow )
     {
         mpLeftEdit[nRow]->SetGetFocusHdl( aLink );
@@ -319,12 +343,12 @@ void ScOptSolverDlg::Init(const ScAddress& rCursorPos)
     }
 
     aLink = LINK( this, ScOptSolverDlg, LoseFocusHdl );
-    maEdObjectiveCell.SetLoseFocusHdl( aLink );
-    maRBObjectiveCell.SetLoseFocusHdl( aLink );
-    maEdTargetValue.  SetLoseFocusHdl( aLink );
-    maRBTargetValue.  SetLoseFocusHdl( aLink );
-    maEdVariableCells.SetLoseFocusHdl( aLink );
-    maRBVariableCells.SetLoseFocusHdl( aLink );
+    m_pEdObjectiveCell->SetLoseFocusHdl( aLink );
+    m_pRBObjectiveCell->SetLoseFocusHdl( aLink );
+    m_pEdTargetValue->SetLoseFocusHdl( aLink );
+    m_pRBTargetValue-> SetLoseFocusHdl( aLink );
+    m_pEdVariableCells->SetLoseFocusHdl( aLink );
+    m_pRBVariableCells->SetLoseFocusHdl( aLink );
     for ( sal_uInt16 nRow = 0; nRow < EDIT_ROW_COUNT; ++nRow )
     {
         mpLeftEdit[nRow]->SetLoseFocusHdl( aLink );
@@ -345,14 +369,14 @@ void ScOptSolverDlg::Init(const ScAddress& rCursorPos)
         mpDelButton[nRow]->SetClickHdl( LINK( this, ScOptSolverDlg, DelBtnHdl ) );
         mpOperator[nRow]->SetSelectHdl( LINK( this, ScOptSolverDlg, SelectHdl ) );
     }
-    maEdTargetValue.SetModifyHdl( LINK( this, ScOptSolverDlg, TargetModifyHdl ) );
+    m_pEdTargetValue->SetModifyHdl( LINK( this, ScOptSolverDlg, TargetModifyHdl ) );
 
-    maScrollBar.SetEndScrollHdl( LINK( this, ScOptSolverDlg, ScrollHdl ) );
-    maScrollBar.SetScrollHdl( LINK( this, ScOptSolverDlg, ScrollHdl ) );
+    m_pScrollBar->SetEndScrollHdl( LINK( this, ScOptSolverDlg, ScrollHdl ) );
+    m_pScrollBar->SetScrollHdl( LINK( this, ScOptSolverDlg, ScrollHdl ) );
 
-    maScrollBar.SetPageSize( EDIT_ROW_COUNT );
-    maScrollBar.SetVisibleSize( EDIT_ROW_COUNT );
-    maScrollBar.SetLineSize( 1 );
+    m_pScrollBar->SetPageSize( EDIT_ROW_COUNT );
+    m_pScrollBar->SetVisibleSize( EDIT_ROW_COUNT );
+    m_pScrollBar->SetLineSize( 1 );
     // Range is set in ShowConditions
 
     // get available solver implementations
@@ -363,30 +387,30 @@ void ScOptSolverDlg::Init(const ScAddress& rCursorPos)
     const ScOptSolverSave* pOldData = mpDocShell->GetSolverSaveData();
     if ( pOldData )
     {
-        maEdObjectiveCell.SetRefString( pOldData->GetObjective() );
-        maRbMax.Check( pOldData->GetMax() );
-        maRbMin.Check( pOldData->GetMin() );
-        maRbValue.Check( pOldData->GetValue() );
-        maEdTargetValue.SetRefString( pOldData->GetTarget() );
-        maEdVariableCells.SetRefString( pOldData->GetVariable() );
+        m_pEdObjectiveCell->SetRefString( pOldData->GetObjective() );
+        m_pRbMax->Check( pOldData->GetMax() );
+        m_pRbMin->Check( pOldData->GetMin() );
+        m_pRbValue->Check( pOldData->GetValue() );
+        m_pEdTargetValue->SetRefString( pOldData->GetTarget() );
+        m_pEdVariableCells->SetRefString( pOldData->GetVariable() );
         maConditions = pOldData->GetConditions();
         maEngine = pOldData->GetEngine();
         maProperties = pOldData->GetProperties();
     }
     else
     {
-        maRbMax.Check();
+        m_pRbMax->Check();
         OUString aCursorStr;
         if ( !mpDoc->GetRangeAtBlock( ScRange(rCursorPos), &aCursorStr ) )
             rCursorPos.Format( aCursorStr, SCA_ABS, NULL, mpDoc->GetAddressConvention() );
-        maEdObjectiveCell.SetRefString( aCursorStr );
+        m_pEdObjectiveCell->SetRefString( aCursorStr );
         if ( nImplCount > 0 )
             maEngine = maImplNames[0];  // use first implementation
     }
     ShowConditions();
 
-    maEdObjectiveCell.GrabFocus();
-    mpEdActive = &maEdObjectiveCell;
+    m_pEdObjectiveCell->GrabFocus();
+    mpEdActive = m_pEdObjectiveCell;
 }
 
 //----------------------------------------------------------------------------
@@ -433,8 +457,8 @@ void ScOptSolverDlg::ShowConditions()
     // allow to scroll one page behind the visible or stored rows
     long nVisible = nScrollPos + EDIT_ROW_COUNT;
     long nMax = std::max( nVisible, (long) maConditions.size() );
-    maScrollBar.SetRange( Range( 0, nMax + EDIT_ROW_COUNT ) );
-    maScrollBar.SetThumbPos( nScrollPos );
+    m_pScrollBar->SetRange( Range( 0, nMax + EDIT_ROW_COUNT ) );
+    m_pScrollBar->SetThumbPos( nScrollPos );
 
     EnableButtons();
 }
@@ -482,7 +506,7 @@ void ScOptSolverDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
             RefInputStart(mpEdActive);
 
         // "target"/"value": single cell
-        bool bSingle = ( mpEdActive == &maEdObjectiveCell || mpEdActive == &maEdTargetValue );
+        bool bSingle = ( mpEdActive == m_pEdObjectiveCell || mpEdActive == m_pEdTargetValue );
 
         String aStr;
         ScAddress aAdr = rRef.aStart;
@@ -503,7 +527,7 @@ void ScOptSolverDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
         }
 
         // variable cells can be several ranges, so only the selection is replaced
-        if ( mpEdActive == &maEdVariableCells )
+        if ( mpEdActive == m_pEdVariableCells )
         {
             String aVal = mpEdActive->GetText();
             Selection aSel = mpEdActive->GetSelection();
@@ -521,8 +545,8 @@ void ScOptSolverDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
         EnableButtons();
 
         // select "Value of" if a ref is input into "target" edit
-        if ( mpEdActive == &maEdTargetValue )
-            maRbValue.Check();
+        if ( mpEdActive == m_pEdTargetValue )
+            m_pRbValue->Check();
     }
 }
 
@@ -538,9 +562,9 @@ sal_Bool ScOptSolverDlg::IsRefInputMode() const
 
 IMPL_LINK( ScOptSolverDlg, BtnHdl, PushButton*, pBtn )
 {
-    if ( pBtn == &maBtnSolve || pBtn == &maBtnCancel )
+    if ( pBtn == m_pBtnSolve || pBtn == m_pBtnCancel )
     {
-        bool bSolve = ( pBtn == &maBtnSolve );
+        bool bSolve = ( pBtn == m_pBtnSolve );
 
         SetDispatcherLock( false );
         SwitchToDocument();
@@ -554,8 +578,8 @@ IMPL_LINK( ScOptSolverDlg, BtnHdl, PushButton*, pBtn )
             // Close: write dialog settings to DocShell for subsequent calls
             ReadConditions();
             ScOptSolverSave aSave(
-                maEdObjectiveCell.GetText(), maRbMax.IsChecked(), maRbMin.IsChecked(), maRbValue.IsChecked(),
-                maEdTargetValue.GetText(), maEdVariableCells.GetText(), maConditions, maEngine, maProperties );
+                m_pEdObjectiveCell->GetText(), m_pRbMax->IsChecked(), m_pRbMin->IsChecked(), m_pRbValue->IsChecked(),
+                m_pEdTargetValue->GetText(), m_pEdVariableCells->GetText(), maConditions, maEngine, maProperties );
             mpDocShell->SetSolverSaveData( aSave );
             Close();
         }
@@ -565,7 +589,7 @@ IMPL_LINK( ScOptSolverDlg, BtnHdl, PushButton*, pBtn )
             SetDispatcherLock( sal_True );
         }
     }
-    else if ( pBtn == &maBtnOpt )
+    else if ( pBtn == m_pBtnOpt )
     {
         //! move options dialog to UI lib?
         ScSolverOptionsDialog* pOptDlg =
@@ -588,12 +612,12 @@ IMPL_LINK( ScOptSolverDlg, GetFocusHdl, Control*, pCtrl )
     Edit* pEdit = NULL;
     mpEdActive = NULL;
 
-    if( pCtrl == &maEdObjectiveCell || pCtrl == &maRBObjectiveCell )
-        pEdit = mpEdActive = &maEdObjectiveCell;
-    else if( pCtrl == &maEdTargetValue || pCtrl == &maRBTargetValue )
-        pEdit = mpEdActive = &maEdTargetValue;
-    else if( pCtrl == &maEdVariableCells || pCtrl == &maRBVariableCells )
-        pEdit = mpEdActive = &maEdVariableCells;
+    if( pCtrl == m_pEdObjectiveCell || pCtrl == m_pRBObjectiveCell )
+        pEdit = mpEdActive = m_pEdObjectiveCell;
+    else if( pCtrl == m_pEdTargetValue || pCtrl == m_pRBTargetValue )
+        pEdit = mpEdActive = m_pEdTargetValue;
+    else if( pCtrl == m_pEdVariableCells || pCtrl == m_pRBVariableCells )
+        pEdit = mpEdActive = m_pEdVariableCells;
     for ( sal_uInt16 nRow = 0; nRow < EDIT_ROW_COUNT; ++nRow )
     {
         if( pCtrl == mpLeftEdit[nRow] || pCtrl == mpLeftButton[nRow] )
@@ -603,8 +627,8 @@ IMPL_LINK( ScOptSolverDlg, GetFocusHdl, Control*, pCtrl )
         else if( pCtrl == mpOperator[nRow] )    // focus on "operator" list box
             mpEdActive = mpRightEdit[nRow];     // use right edit for ref input, but don't change selection
     }
-    if( pCtrl == &maRbValue )                   // focus on "Value of" radio button
-        mpEdActive = &maEdTargetValue;          // use value edit for ref input, but don't change selection
+    if( pCtrl == m_pRbValue )                   // focus on "Value of" radio button
+        mpEdActive = m_pEdTargetValue;          // use value edit for ref input, but don't change selection
 
     if( pEdit )
         pEdit->SetSelection( Selection( 0, SELECTION_MAX ) );
@@ -656,8 +680,8 @@ IMPL_LINK_NOARG(ScOptSolverDlg, TargetModifyHdl)
 {
     // modify handler for the target edit:
     //  select "Value of" if something is input into the edit
-    if ( !maEdTargetValue.GetText().isEmpty() )
-        maRbValue.Check();
+    if ( !m_pEdTargetValue->GetText().isEmpty() )
+        m_pRbValue->Check();
     return 0;
 }
 
@@ -680,7 +704,7 @@ IMPL_LINK_NOARG(ScOptSolverDlg, SelectHdl)
 IMPL_LINK_NOARG(ScOptSolverDlg, ScrollHdl)
 {
     ReadConditions();
-    nScrollPos = maScrollBar.GetThumbPos();
+    nScrollPos = m_pScrollBar->GetThumbPos();
     ShowConditions();
     if( mpEdActive )
         mpEdActive->SetSelection( Selection( 0, SELECTION_MAX ) );
@@ -825,18 +849,18 @@ bool ScOptSolverDlg::CallSolver()       // return true -> close dialog after cal
     uno::Reference<sheet::XSpreadsheetDocument> xDocument( mpDocShell->GetModel(), uno::UNO_QUERY );
 
     ScRange aObjRange;
-    if ( !ParseRef( aObjRange, maEdObjectiveCell.GetText(), false ) )
+    if ( !ParseRef( aObjRange, m_pEdObjectiveCell->GetText(), false ) )
     {
-        ShowError( false, &maEdObjectiveCell );
+        ShowError( false, m_pEdObjectiveCell );
         return false;
     }
     table::CellAddress aObjective( aObjRange.aStart.Tab(), aObjRange.aStart.Col(), aObjRange.aStart.Row() );
 
     // "changing cells" can be several ranges
     ScRangeList aVarRanges;
-    if ( !ParseWithNames( aVarRanges, maEdVariableCells.GetText(), mpDoc ) )
+    if ( !ParseWithNames( aVarRanges, m_pEdVariableCells->GetText(), mpDoc ) )
     {
-        ShowError( false, &maEdVariableCells );
+        ShowError( false, m_pEdVariableCells );
         return false;
     }
     uno::Sequence<table::CellAddress> aVariables;
@@ -927,8 +951,8 @@ bool ScOptSolverDlg::CallSolver()       // return true -> close dialog after cal
         }
     }
 
-    sal_Bool bMaximize = maRbMax.IsChecked();
-    if ( maRbValue.IsChecked() )
+    sal_Bool bMaximize = m_pRbMax->IsChecked();
+    if ( m_pRbValue->IsChecked() )
     {
         // handle "value of" with an additional constraint (and then minimize)
 
@@ -936,7 +960,7 @@ bool ScOptSolverDlg::CallSolver()       // return true -> close dialog after cal
         aConstraint.Left     = aObjective;
         aConstraint.Operator = sheet::SolverConstraintOperator_EQUAL;
 
-        String aValStr = maEdTargetValue.GetText();
+        String aValStr = m_pEdTargetValue->GetText();
         ScRange aRightRange;
         if ( ParseRef( aRightRange, aValStr, false ) )
             aConstraint.Right <<= table::CellAddress( aRightRange.aStart.Tab(),
@@ -949,7 +973,7 @@ bool ScOptSolverDlg::CallSolver()       // return true -> close dialog after cal
                 aConstraint.Right <<= fValue;
             else
             {
-                ShowError( false, &maEdTargetValue );
+                ShowError( false, m_pEdTargetValue );
                 return false;
             }
         }
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index a545d40..2cb9d4d 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -2080,6 +2080,14 @@ Resource RID_GLOBSTR
     {
         Text [ en-US ] = "Cell must contain a formula." ;
     };
+    String STR_INVALIDINPUT
+    {
+        Text [ en-US ] = "Invalid input." ;
+    };
+    String STR_INVALIDCONDITION
+    {
+        Text [ en-US ] = "Invalid condition." ;
+    };
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/src/optsolver.src b/sc/source/ui/src/optsolver.src
index 53de274..477baad 100644
--- a/sc/source/ui/src/optsolver.src
+++ b/sc/source/ui/src/optsolver.src
@@ -19,427 +19,6 @@
 
 #include "optsolver.hrc"
 
-ModelessDialog RID_SCDLG_OPTSOLVER
-{
-    OutputSize = TRUE ;
-    HelpId = CMD_SID_OPENDLG_OPTSOLVER ;
-    Hide = TRUE ;
-    SVLook = TRUE ;
-    Size = MAP_APPFONT ( 250 , 210 ) ;
-    Text [ en-US ] = "Solver" ;
-    Moveable = TRUE ;
-    Closeable = FALSE ;
-
-    FixedText FT_OBJECTIVECELL
-    {
-        Pos = MAP_APPFONT ( 6 , 8 ) ;
-        Size = MAP_APPFONT ( 59 , 8 ) ;
-        Text [ en-US ] = "Target cell" ;
-    };
-    Edit ED_OBJECTIVECELL
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_OBJECTIVECELL";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 87 , 6 ) ;
-        Size = MAP_APPFONT ( 130 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_OBJECTIVECELL
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_OBJECTIVECELL";
-        Pos = MAP_APPFONT ( 219 , 5 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-
-    FixedText FT_DIRECTION
-    {
-        Pos = MAP_APPFONT ( 6 , 24 ) ;
-        Size = MAP_APPFONT ( 79 , 8 ) ;
-        Text [ en-US ] = "Optimize result to" ;
-    };
-    RadioButton RB_MAX
-    {
-        HelpID = "sc:RadioButton:RID_SCDLG_OPTSOLVER:RB_MAX";
-        Pos = MAP_APPFONT ( 87 , 24 ) ;
-        Size = MAP_APPFONT ( 50 , 10 ) ;
-        Text [ en-US ] = "Maximum" ;
-        TabStop = TRUE ;
-    };
-    RadioButton RB_MIN
-    {
-        HelpID = "sc:RadioButton:RID_SCDLG_OPTSOLVER:RB_MIN";
-        Pos = MAP_APPFONT ( 87 , 38 ) ;
-        Size = MAP_APPFONT ( 50 , 10 ) ;
-        Text [ en-US ] = "Minimum" ;
-        TabStop = TRUE ;
-    };
-    RadioButton RB_VALUE
-    {
-        HelpID = "sc:RadioButton:RID_SCDLG_OPTSOLVER:RB_VALUE";
-        Pos = MAP_APPFONT ( 87 , 52 ) ;
-        Size = MAP_APPFONT ( 59 , 10 ) ;
-        Text [ en-US ] = "Value of" ;
-        TabStop = TRUE ;
-    };
-    Edit ED_TARGET
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_TARGET";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 148 , 50 ) ;
-        Size = MAP_APPFONT ( 69 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_TARGET
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_TARGET";
-        Pos = MAP_APPFONT ( 219 , 49 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-
-    FixedText FT_VARIABLECELLS
-    {
-        Pos = MAP_APPFONT ( 6 , 68 ) ;
-        Size = MAP_APPFONT ( 79 , 8 ) ;
-        Text [ en-US ] = "By changing cells" ;
-    };
-    Edit ED_VARIABLECELLS
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_VARIABLECELLS";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 87 , 66 ) ;
-        Size = MAP_APPFONT ( 130 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_VARIABLECELLS
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_VARIABLECELLS";
-        Pos = MAP_APPFONT ( 219 , 65 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-
-    FixedLine FL_CONDITIONS
-    {
-        Pos = MAP_APPFONT ( 6 , 88 ) ;
-        Size = MAP_APPFONT ( 221 , 8 ) ;
-        Text [ en-US ] = "Limiting conditions" ;
-    };
-
-    FixedText FT_CELLREF
-    {
-        Pos = MAP_APPFONT ( 12 , 102 ) ;
-        Size = MAP_APPFONT ( 70 , 8 ) ;
-        Text [ en-US ] = "Cell reference" ;
-    };
-    FixedText FT_OPERATOR
-    {
-        Pos = MAP_APPFONT ( 104 , 102 ) ;
-        Size = MAP_APPFONT ( 38 , 8 ) ;
-        Text [ en-US ] = "Operator" ;
-    };
-    FixedText FT_CONSTRAINT
-    {
-        Pos = MAP_APPFONT ( 148 , 102 ) ;
-        Size = MAP_APPFONT ( 70 , 8 ) ;
-        Text [ en-US ] = "Value" ;
-    };
-
-    Edit ED_LEFT1
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT1";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 114 ) ;
-        Size = MAP_APPFONT ( 73 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_LEFT1
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT1";
-        Pos = MAP_APPFONT ( 87 , 113 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ListBox LB_OP1
-    {
-        HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP1";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 104 , 114 ) ;
-        Size = MAP_APPFONT ( 38 , 56 ) ;
-        TabStop = TRUE ;
-        DropDown = TRUE ;
-        StringList [ en-US ] =
-        {
-            < "<=" ; Default ; > ;
-            < "=" ; Default ; > ;
-            < ">=" ; Default ; > ;
-            < "Integer" ; Default ; > ;
-            < "Binary" ; Default ; > ;
-        };
-    };
-    Edit ED_RIGHT1
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT1";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 148 , 114 ) ;
-        Size = MAP_APPFONT ( 53 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_RIGHT1
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT1";
-        Pos = MAP_APPFONT ( 203 , 113 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ImageButton IB_DELETE1
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE1";
-        Pos = MAP_APPFONT ( 219 , 113 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = TRUE ;
-        QuickHelpText [ en-US ] = "Remove" ;
-        // image is set dynamically
-    };
-
-    Edit ED_LEFT2
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT2";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 129 ) ;
-        Size = MAP_APPFONT ( 73 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_LEFT2
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT2";
-        Pos = MAP_APPFONT ( 87 , 128 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ListBox LB_OP2
-    {
-        HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP2";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 104 , 129 ) ;
-        Size = MAP_APPFONT ( 38 , 56 ) ;
-        TabStop = TRUE ;
-        DropDown = TRUE ;
-        StringList [ en-US ] =
-        {
-            < "<=" ; Default ; > ;
-            < "=" ; Default ; > ;
-            < ">=" ; Default ; > ;
-            < "Integer" ; Default ; > ;
-            < "Binary" ; Default ; > ;
-        };
-    };
-    Edit ED_RIGHT2
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT2";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 148 , 129 ) ;
-        Size = MAP_APPFONT ( 53 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_RIGHT2
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT2";
-        Pos = MAP_APPFONT ( 203 , 128 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ImageButton IB_DELETE2
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE2";
-        Pos = MAP_APPFONT ( 219 , 128 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = TRUE ;
-        QuickHelpText [ en-US ] = "Remove" ;
-        // image is set dynamically
-    };
-
-    Edit ED_LEFT3
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT3";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 144 ) ;
-        Size = MAP_APPFONT ( 73 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_LEFT3
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT3";
-        Pos = MAP_APPFONT ( 87 , 143 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ListBox LB_OP3
-    {
-        HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP3";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 104 , 144 ) ;
-        Size = MAP_APPFONT ( 38 , 56 ) ;
-        TabStop = TRUE ;
-        DropDown = TRUE ;
-        StringList [ en-US ] =
-        {
-            < "<=" ; Default ; > ;
-            < "=" ; Default ; > ;
-            < ">=" ; Default ; > ;
-            < "Integer" ; Default ; > ;
-            < "Binary" ; Default ; > ;
-        };
-    };
-    Edit ED_RIGHT3
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT3";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 148 , 144 ) ;
-        Size = MAP_APPFONT ( 53 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_RIGHT3
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT3";
-        Pos = MAP_APPFONT ( 203 , 143 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ImageButton IB_DELETE3
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE3";
-        Pos = MAP_APPFONT ( 219 , 143 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = TRUE ;
-        QuickHelpText [ en-US ] = "Remove" ;
-        // image is set dynamically
-    };
-
-    Edit ED_LEFT4
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_LEFT4";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 12 , 159 ) ;
-        Size = MAP_APPFONT ( 73 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_LEFT4
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_LEFT4";
-        Pos = MAP_APPFONT ( 87 , 158 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ListBox LB_OP4
-    {
-        HelpID = "sc:ListBox:RID_SCDLG_OPTSOLVER:LB_OP4";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 104 , 159 ) ;
-        Size = MAP_APPFONT ( 38 , 56 ) ;
-        TabStop = TRUE ;
-        DropDown = TRUE ;
-        StringList [ en-US ] =
-        {
-            < "<=" ; Default ; > ;
-            < "=" ; Default ; > ;
-            < ">=" ; Default ; > ;
-            < "Integer" ; Default ; > ;
-            < "Binary" ; Default ; > ;
-        };
-    };
-    Edit ED_RIGHT4
-    {
-        HelpID = "sc:Edit:RID_SCDLG_OPTSOLVER:ED_RIGHT4";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 148 , 159 ) ;
-        Size = MAP_APPFONT ( 53 , 12 ) ;
-        TabStop = TRUE ;
-    };
-    ImageButton IB_RIGHT4
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_RIGHT4";
-        Pos = MAP_APPFONT ( 203 , 158 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = FALSE ;
-        QuickHelpText [ en-US ] = "Shrink" ;
-    };
-    ImageButton IB_DELETE4
-    {
-        HelpID = "sc:ImageButton:RID_SCDLG_OPTSOLVER:IB_DELETE4";
-        Pos = MAP_APPFONT ( 219 , 158 ) ;
-        Size = MAP_APPFONT ( 13 , 15 ) ;
-        TabStop = TRUE ;
-        QuickHelpText [ en-US ] = "Remove" ;
-        // image is set dynamically
-    };
-
-    ScrollBar SB_SCROLL
-    {
-        Pos = MAP_APPFONT ( 236, 113 ) ;
-        Size = MAP_APPFONT ( 8 , 59 ) ;
-        VScroll = TRUE ;
-    };
-
-    FixedLine FL_BUTTONS
-    {
-        Pos = MAP_APPFONT ( 0 , 179 ) ;
-        Size = MAP_APPFONT ( 230 , 8 ) ;
-    };
-
-    PushButton BTN_OPTIONS
-    {
-        HelpID = "sc:PushButton:RID_SCDLG_OPTSOLVER:BTN_OPTIONS";
-        Pos = MAP_APPFONT ( 6 , 190 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-        Text [ en-US ] = "Options..." ;
-    };
-    HelpButton BTN_HELP
-    {
-        Pos = MAP_APPFONT ( 69 , 190 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-    };
-    CancelButton BTN_CLOSE
-    {
-        Pos = MAP_APPFONT ( 132 , 190 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-        Text [ en-US ] = "Close" ;
-    };
-    PushButton BTN_SOLVE
-    {
-        HelpID = "sc:PushButton:RID_SCDLG_OPTSOLVER:BTN_SOLVE";
-        Pos = MAP_APPFONT ( 195 , 190 ) ;
-        Size = MAP_APPFONT ( 50 , 14 ) ;
-        TabStop = TRUE ;
-        Text [ en-US ] = "Solve" ;
-        DefButton = TRUE ;
-    };
-
-    String STR_INVALIDINPUT
-    {
-        Text [ en-US ] = "Invalid input." ;
-    };
-    String STR_INVALIDCONDITION
-    {
-        Text [ en-US ] = "Invalid condition." ;
-    };
-};
-
-
 ModelessDialog RID_SCDLG_SOLVER_PROGRESS
 {
     OutputSize = TRUE ;
diff --git a/sc/uiconfig/scalc/ui/solverdlg.ui b/sc/uiconfig/scalc/ui/solverdlg.ui
index 5c6e344..e4702b0 100644
--- a/sc/uiconfig/scalc/ui/solverdlg.ui
+++ b/sc/uiconfig/scalc/ui/solverdlg.ui
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
+  <!-- interface-requires LibreOffice 1.0 -->
   <object class="GtkDialog" id="SolverDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
@@ -86,16 +87,20 @@
           <object class="GtkBox" id="box1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
             <property name="orientation">vertical</property>
             <property name="spacing">12</property>
             <child>
               <object class="GtkGrid" id="grid2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
                 <property name="row_spacing">6</property>
                 <property name="column_spacing">12</property>
+                <property name="row_homogeneous">True</property>
                 <child>
-                  <object class="GtkLabel" id="label5">
+                  <object class="GtkLabel" id="targetlabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -110,7 +115,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label6">
+                  <object class="GtkLabel" id="result">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
@@ -125,13 +130,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label7">
+                  <object class="GtkLabel" id="changelabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="label" translatable="yes">_By changing cells</property>
                     <property name="use_underline">True</property>
-                    <property name="mnemonic_widget">entry11</property>
                   </object>
                   <packing>
                     <property name="left_attach">0</property>
@@ -141,83 +145,28 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkEntry" id="entry11">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="width_chars">32</property>
-                    <property name="invisible_char_set">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">1</property>
-                    <property name="top_attach">4</property>
-                    <property name="width">2</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkImage" id="image15">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="stock">gtk-missing-image</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="top_attach">4</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkImage" id="image14">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="stock">gtk-missing-image</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">3</property>
-                    <property name="top_attach">3</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkRadioButton" id="radiobutton3">
-                    <property name="label" translatable="yes">_Value of</property>
+                  <object class="GtkRadioButton" id="min">
+                    <property name="label" translatable="yes">Minim_um</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="use_underline">True</property>
                     <property name="xalign">0</property>
                     <property name="draw_indicator">True</property>
-                    <property name="group">radiobutton1</property>
+                    <accessibility>
+                      <relation type="member-of" target="result"/>
+                    </accessibility>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
-                    <property name="top_attach">3</property>
-                    <property name="width">1</property>
-                    <property name="height">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="entry10">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="invisible_char_set">True</property>
-                  </object>
-                  <packing>
-                    <property name="left_attach">2</property>
-                    <property name="top_attach">3</property>
+                    <property name="top_attach">2</property>
                     <property name="width">1</property>
                     <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkRadioButton" id="radiobutton2">
-                    <property name="label" translatable="yes">Minim_um</property>
+                  <object class="GtkRadioButton" id="max">
+                    <property name="label" translatable="yes">_Maximum</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -225,58 +174,165 @@
                     <property name="xalign">0</property>
                     <property name="active">True</property>
                     <property name="draw_indicator">True</property>
+                    <property name="group">min</property>
+                    <accessibility>
+                      <relation type="member-of" target="result"/>
+                    </accessibility>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
-                    <property name="top_attach">2</property>
-                    <property name="width">3</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
                     <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkRadioButton" id="radiobutton1">
-                    <property name="label" translatable="yes">_Maximum</property>
+                  <object class="GtkBox" id="box2">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">False</property>
-                    <property name="use_underline">True</property>
-                    <property name="xalign">0</property>
-                    <property name="active">True</property>
-                    <property name="draw_indicator">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="foruilo-RefEdit" id="changeedit">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="width_chars">32</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="foruilo-RefButton" id="changebutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
-                    <property name="top_attach">1</property>
-                    <property name="width">3</property>
+                    <property name="top_attach">4</property>
+                    <property name="width">1</property>
                     <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkImage" id="image13">
+                  <object class="GtkBox" id="box4">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="stock">gtk-missing-image</property>
+                    <property name="hexpand">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <object class="foruilo-RefEdit" id="targetedit">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="width_chars">32</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="foruilo-RefButton" id="targetbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
-                    <property name="left_attach">3</property>
+                    <property name="left_attach">1</property>
                     <property name="top_attach">0</property>
                     <property name="width">1</property>
                     <property name="height">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkEntry" id="entry9">
+                  <object class="GtkBox" id="box5">
                     <property name="visible">True</property>
-                    <property name="can_focus">True</property>
+                    <property name="can_focus">False</property>
                     <property name="hexpand">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="width_chars">32</property>
-                    <property name="invisible_char_set">True</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkRadioButton" id="value">
+                        <property name="label" translatable="yes">_Value of</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                        <property name="group">max</property>
+                        <accessibility>
+                          <relation type="member-of" target="result"/>
+                        </accessibility>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="box3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="foruilo-RefEdit" id="valueedit">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="invisible_char">●</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="foruilo-RefButton" id="valuebutton">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="left_attach">1</property>
-                    <property name="top_attach">0</property>
-                    <property name="width">2</property>
+                    <property name="top_attach">3</property>
+                    <property name="width">1</property>
                     <property name="height">1</property>
                   </packing>
                 </child>
@@ -297,439 +353,460 @@
               <object class="GtkFrame" id="frame1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
                 <property name="label_xalign">0</property>
                 <property name="shadow_type">none</property>
                 <child>
                   <object class="GtkAlignment" id="alignment1">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
+                    <property name="valign">start</property>
+                    <property name="hexpand">True</property>
                     <property name="top_padding">6</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <object class="GtkBox" id="box2">
+                      <object class="GtkGrid" id="grid1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="valign">start</property>
+                        <property name="hexpand">True</property>
+                        <property name="row_spacing">6</property>
+                        <property name="column_spacing">6</property>
                         <child>
-                          <object class="GtkGrid" id="grid1">
+                          <object class="GtkLabel" id="cellreflabel">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="row_spacing">6</property>
-                            <property name="column_spacing">12</property>
-                            <child>
-                              <object class="GtkLabel" id="label2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">_Cell reference</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">_Operator</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label4">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="xalign">0</property>
-                                <property name="label" translatable="yes">V_alue</property>
-                                <property name="use_underline">True</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">0</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry4">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">0</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image4">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">1</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkComboBoxText" id="comboboxtext1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="entry_text_column">0</property>
-                                <property name="id_column">1</property>
-                                <items>
-                                  <item translatable="yes"><=</item>
-                                  <item translatable="yes">=</item>
-                                  <item translatable="yes">=></item>
-                                  <item translatable="yes">Integer</item>
-                                  <item translatable="yes">Binary</item>
-                                </items>
-                              </object>
-                              <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkComboBoxText" id="comboboxtext2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="entry_text_column">0</property>
-                                <property name="id_column">1</property>
-                                <items>
-                                  <item translatable="yes"><=</item>
-                                  <item translatable="yes">=</item>
-                                  <item translatable="yes">=></item>
-                                  <item translatable="yes">Integer</item>
-                                  <item translatable="yes">Binary</item>
-                                </items>
-                              </object>
-                              <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkComboBoxText" id="comboboxtext3">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="entry_text_column">0</property>
-                                <property name="id_column">1</property>
-                                <items>
-                                  <item translatable="yes"><=</item>
-                                  <item translatable="yes">=</item>
-                                  <item translatable="yes">=></item>
-                                  <item translatable="yes">Integer</item>
-                                  <item translatable="yes">Binary</item>
-                                </items>
-                              </object>
-                              <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkComboBoxText" id="comboboxtext4">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="entry_text_column">0</property>
-                                <property name="id_column">1</property>
-                                <items>
-                                  <item translatable="yes"><=</item>
-                                  <item translatable="yes">=</item>
-                                  <item translatable="yes">=></item>
-                                  <item translatable="yes">Integer</item>
-                                  <item translatable="yes">Binary</item>
-                                </items>
-                              </object>
-                              <packing>
-                                <property name="left_attach">2</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry5">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry6">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry7">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkEntry" id="entry8">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="invisible_char">•</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">3</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image5">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image6">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image7">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image8">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">4</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image9">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">1</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image10">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">2</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image11">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">3</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkImage" id="image12">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="stock">gtk-missing-image</property>
-                              </object>
-                              <packing>
-                                <property name="left_attach">5</property>
-                                <property name="top_attach">4</property>
-                                <property name="width">1</property>
-                                <property name="height">1</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Cell reference</property>
+                            <property name="use_underline">True</property>
                           </object>
                           <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">2</property>
+                            <property name="height">1</property>
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkScrollbar" id="scrollbar1">
+                          <object class="GtkLabel" id="oplabel">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">_Operator</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">2</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="constraintlabel">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">6</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">V_alue</property>
+                            <property name="use_underline">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">3</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">4</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="sclo-ScCursorRefEdit" id="ref1edit">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="invisible_char">●</property>
+                            <property name="width_chars">20</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="sclo-ScCursorRefEdit" id="ref2edit">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="invisible_char">●</property>
+                            <property name="width_chars">20</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="sclo-ScCursorRefEdit" id="ref3edit">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="invisible_char">●</property>
+                            <property name="width_chars">20</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">3</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="sclo-ScCursorRefEdit" id="ref4edit">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="invisible_char">●</property>
+                            <property name="width_chars">20</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">4</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="foruilo-RefButton" id="ref1button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="foruilo-RefButton" id="ref2button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="foruilo-RefButton" id="ref3button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">3</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="foruilo-RefButton" id="ref4button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">4</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="op1list">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="entry_text_column">0</property>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list