[Libreoffice-commits] core.git: 3 commits - extras/source starmath/inc starmath/source starmath/uiconfig starmath/UIConfig_smath.mk vcl/source

Caolán McNamara caolanm at redhat.com
Wed May 22 09:35:02 PDT 2013


 extras/source/glade/libreoffice-catalog.xml.in |    6 
 starmath/UIConfig_smath.mk                     |    1 
 starmath/inc/dialog.hxx                        |   86 +++--
 starmath/inc/helpids.h                         |    1 
 starmath/inc/starmath.hrc                      |    1 
 starmath/source/dialog.cxx                     |  395 +++++++++++++------------
 starmath/source/smres.src                      |   83 -----
 starmath/uiconfig/smath/ui/catalogdialog.ui    |  207 +++++++++++++
 vcl/source/control/combobox.cxx                |    2 
 vcl/source/control/lstbox.cxx                  |    2 
 10 files changed, 476 insertions(+), 308 deletions(-)

New commits:
commit 102c6164cd3003f935f6a041113897d68cb83a27
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 22 12:07:21 2013 +0100

    adapt code to catalog .ui conversion
    
    Change-Id: If34cef7eef5ab26f52420685f54a85fcff2a0c12

diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index 91a087d..772ec0b 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -60,6 +60,12 @@
     <glade-widget-class title="Font Preview" name="svxlo-SvxFontPrevWindow"
                         generic-name="Font Preview Window" parent="GtkDrawingArea"
                         icon-name="widget-gtk-drawingarea"/>
+    <glade-widget-class title="Show Math Symbol" name="smlo-SmShowSymbol"
+                        generic-name="Show Math Symbol" parent="GtkDrawingArea"
+                        icon-name="widget-gtk-drawingarea"/>
+    <glade-widget-class title="Math Symbol Selection" name="smlo-SmShowSymbolSet"
+                        generic-name="Math Symbol Selection" parent="GtkDrawingArea"
+                        icon-name="widget-gtk-drawingarea"/>
     <glade-widget-class title="Number Preview" name="cuilo-SvxNumberPreview"
                         generic-name="Number Preview Window" parent="GtkDrawingArea"
                         icon-name="widget-gtk-drawingarea"/>
diff --git a/starmath/UIConfig_smath.mk b/starmath/UIConfig_smath.mk
index 83a127a..9c42043 100644
--- a/starmath/UIConfig_smath.mk
+++ b/starmath/UIConfig_smath.mk
@@ -25,6 +25,7 @@ $(eval $(call gb_UIConfig_add_toolbarfiles,modules/smath,\
 
 $(eval $(call gb_UIConfig_add_uifiles,modules/smath,\
 	starmath/uiconfig/smath/ui/alignmentdialog \
+	starmath/uiconfig/smath/ui/catalogdialog \
 	starmath/uiconfig/smath/ui/printeroptions \
 ))
 
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index 34511b9..89eec63 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -287,35 +287,56 @@ public:
 
 /**************************************************************************/
 
-class SmShowSymbolSet : public Control
+class SmShowSymbolSetWindow : public Control
 {
+    ScrollBar*  m_pVScrollBar;
     SymbolPtrVec_t aSymbolSet;
-    ScrollBar   aVScrollBar;
-    Size        aOutputSize;
     Link        aSelectHdlLink;
     Link        aDblClickHdlLink;
-    sal_uInt16      nLen;
-    sal_uInt16      nRows, nColumns;
-    sal_uInt16      nSelectSymbol;
+    sal_uInt16  nLen;
+    sal_uInt16  nRows, nColumns;
+    sal_uInt16  nXOffset, nYOffset;
+    sal_uInt16  nSelectSymbol;
+
+    void SetScrollBarRange();
+    Point OffsetPoint(const Point &rPoint) const;
 
     virtual void    Paint(const Rectangle&);
     virtual void    MouseButtonDown(const MouseEvent& rMEvt);
     virtual void    KeyInput(const KeyEvent& rKEvt);
+    virtual void    Resize();
+    virtual Size    GetOptimalSize() const;
 
     DECL_LINK( ScrollHdl, ScrollBar* );
-
 public:
-    SmShowSymbolSet(Window *pParent, const ResId& rResId);
-
-    void    SetSymbolSet(const SymbolPtrVec_t& rSymbolSet);
-
+    SmShowSymbolSetWindow(Window *pParent, WinBits nStyle);
+    void setScrollbar(ScrollBar *pVScrollBar);
+    void calccols();
     void    SelectSymbol(sal_uInt16 nSymbol);
     sal_uInt16  GetSelectSymbol() const { return nSelectSymbol; }
-
+    void SetSymbolSet(const SymbolPtrVec_t& rSymbolSet);
     void SetSelectHdl(const Link& rLink)   { aSelectHdlLink = rLink; }
     void SetDblClickHdl(const Link& rLink) { aDblClickHdlLink = rLink; }
 };
 
+class SmShowSymbolSet : public VclHBox
+{
+    SmShowSymbolSetWindow aSymbolWindow;
+    ScrollBar   aVScrollBar;
+    Size        aOutputSize;
+
+public:
+    SmShowSymbolSet(Window *pParent);
+
+    void    SetSymbolSet(const SymbolPtrVec_t& rSymbolSet) { aSymbolWindow.SetSymbolSet(rSymbolSet); }
+
+    void    SelectSymbol(sal_uInt16 nSymbol) { aSymbolWindow.SelectSymbol(nSymbol); }
+    sal_uInt16  GetSelectSymbol() const { return aSymbolWindow.GetSelectSymbol(); }
+
+    void SetSelectHdl(const Link& rLink)   { aSymbolWindow.SetSelectHdl(rLink); }
+    void SetDblClickHdl(const Link& rLink) { aSymbolWindow.SetDblClickHdl(rLink); }
+};
+
 ////////////////////////////////////////////////////////////////////////////////
 
 class SmShowSymbol : public Control
@@ -324,10 +345,15 @@ class SmShowSymbol : public Control
 
     virtual void    Paint(const Rectangle&);
     virtual void    MouseButtonDown(const MouseEvent& rMEvt);
+    virtual void    Resize();
+
+    void setFontSize(Font &rFont) const;
 
 public:
-    SmShowSymbol(Window *pParent, const ResId& rResId) :
-        Control(pParent, rResId) {}
+    SmShowSymbol(Window *pParent, WinBits nStyle)
+        : Control(pParent, nStyle)
+    {
+    }
 
     void    SetSymbol(const SmSym *pSymbol);
     void    SetDblClickHdl(const Link &rLink) { aDblClickHdlLink = rLink; }
@@ -339,15 +365,12 @@ class SmSymDefineDialog;
 
 class SmSymbolDialog : public ModalDialog
 {
-    FixedText       aSymbolSetText;
-    ListBox         aSymbolSets;
-    SmShowSymbolSet aSymbolSetDisplay;
-    FixedText       aSymbolName;
-    SmShowSymbol    aSymbolDisplay;
-    HelpButton      aHelpBtn;
-    PushButton      aGetBtn;
-    PushButton      aCloseBtn;
-    PushButton      aEditBtn;
+    ListBox*         m_pSymbolSets;
+    SmShowSymbolSet* m_pSymbolSetDisplay;
+    FixedText*       m_pSymbolName;
+    SmShowSymbol*    m_pSymbolDisplay;
+    PushButton*      m_pGetBtn;
+    PushButton*      m_pEditBtn;
 
     SmViewShell        &rViewSh;
     SmSymbolManager    &rSymbolMgr;
@@ -357,13 +380,11 @@ class SmSymbolDialog : public ModalDialog
 
     OutputDevice       *pFontListDev;
 
-    DECL_LINK(SymbolSetChangeHdl, ListBox *);
-    DECL_LINK(SymbolChangeHdl, SmShowSymbolSet *);
-    DECL_LINK(SymbolDblClickHdl, SmShowSymbolSet *);
-    DECL_LINK(CloseClickHdl, Button *);
-    DECL_LINK(EditClickHdl, Button *);
-    DECL_LINK(GetClickHdl, Button *);
-    DECL_LINK(HelpButtonClickHdl, Button *);
+    DECL_LINK(SymbolSetChangeHdl, void*);
+    DECL_LINK(SymbolChangeHdl, void*);
+    DECL_LINK(SymbolDblClickHdl, void*);
+    DECL_LINK(EditClickHdl, void*);
+    DECL_LINK(GetClickHdl, void*);
 
     void            FillSymbolSets(bool bDeleteText = true);
     void            SetSymbolSetManager(SmSymbolManager &rMgr);
@@ -374,12 +395,11 @@ class SmSymbolDialog : public ModalDialog
 
 public:
     SmSymbolDialog(Window * pParent, OutputDevice *pFntListDevice,
-            SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell, bool bFreeRes = true);
-    virtual ~SmSymbolDialog();
+            SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell);
 
     bool    SelectSymbolSet(const OUString &rSymbolSetName);
     void    SelectSymbol(sal_uInt16 nSymbolPos);
-    sal_uInt16  GetSelectedSymbol() const   { return aSymbolSetDisplay.GetSelectSymbol(); }
+    sal_uInt16  GetSelectedSymbol() const   { return m_pSymbolSetDisplay->GetSelectSymbol(); }
 };
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/starmath/inc/helpids.h b/starmath/inc/helpids.h
index 34fd0db..7c06d77 100644
--- a/starmath/inc/helpids.h
+++ b/starmath/inc/helpids.h
@@ -23,7 +23,6 @@
 #define HID_SMA_FONTSIZEDIALOG                            "STARMATH_HID_SMA_FONTSIZEDIALOG"
 #define HID_SMA_FONTTYPEDIALOG                            "STARMATH_HID_SMA_FONTTYPEDIALOG"
 #define HID_SMA_DISTANCEDIALOG                            "STARMATH_HID_SMA_DISTANCEDIALOG"
-#define HID_SMA_SYMBOLDIALOG                              "STARMATH_HID_SMA_SYMBOLDIALOG"
 #define HID_SMA_SYMDEFINEDIALOG                           "STARMATH_HID_SMA_SYMDEFINEDIALOG"
 #define HID_SMA_WIN_DOCUMENT                              "STARMATH_HID_SMA_WIN_DOCUMENT"
 #define HID_SMA_COMMAND_WIN_EDIT                          "STARMATH_HID_SMA_COMMAND_WIN_EDIT"
diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc
index c9dc005..165ecce 100644
--- a/starmath/inc/starmath.hrc
+++ b/starmath/inc/starmath.hrc
@@ -86,7 +86,6 @@
 #define RID_FONTTYPEDIALOG          (RID_APP_START + 4)
 #define RID_DISTANCEDIALOG          (RID_APP_START + 5)
 #define RID_PRINTOPTIONPAGE         (RID_APP_START + 7)
-#define RID_SYMBOLDIALOG            (RID_APP_START + 8)
 #define RID_SYMDEFINEDIALOG         (RID_APP_START + 9)
 #define RID_PRINTUIOPTIONS          (RID_APP_START + 11)
 
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index 435911a..4abdcba 100644
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -23,6 +23,7 @@
 #include <svl/intitem.hxx>
 #include <svl/stritem.hxx>
 #include <sfx2/app.hxx>
+#include <vcl/builder.hxx>
 #include <vcl/msgbox.hxx>
 #include <svtools/ctrltool.hxx>
 #include <sfx2/printer.hxx>
@@ -381,19 +382,28 @@ SmFontDialog::SmFontDialog(Window * pParent,
     }
 }
 
-void SmFontDialog::InitColor_Impl()
+namespace
 {
-#if OSL_DEBUG_LEVEL > 1
-    Color aBC( GetDisplayBackground().GetColor() );
-#endif
-    ColorData   nBgCol  = COL_WHITE,
-                nTxtCol = COL_BLACK;
-    const StyleSettings &rS = GetSettings().GetStyleSettings();
-    if (rS.GetHighContrastMode())
+    void getColors(Window &rRef, ColorData &rBgCol, ColorData &rTxtCol)
     {
-        nBgCol  = rS.GetFieldColor().GetColor();
-        nTxtCol = rS.GetFieldTextColor().GetColor();
+        const StyleSettings &rS = rRef.GetSettings().GetStyleSettings();
+        if (rS.GetHighContrastMode())
+        {
+            rBgCol  = rS.GetFieldColor().GetColor();
+            rTxtCol = rS.GetFieldTextColor().GetColor();
+        }
+        else
+        {
+            rBgCol  = COL_WHITE;
+            rTxtCol = COL_BLACK;
+        }
     }
+}
+
+void SmFontDialog::InitColor_Impl()
+{
+    ColorData nBgCol, nTxtCol;
+    getColors(*this, nBgCol, nTxtCol);
 
     Color aTmpColor( nBgCol );
     Wallpaper aWall( aTmpColor );
@@ -1127,17 +1137,34 @@ void SmAlignDialog::WriteTo(SmFormat &rFormat) const
 }
 
 
-/**************************************************************************/
+SmShowSymbolSetWindow::SmShowSymbolSetWindow(Window *pParent, WinBits nStyle)
+    : Control(pParent, nStyle)
+    , m_pVScrollBar(0)
+    , nSelectSymbol(SYMBOL_NONE)
+{
+    ColorData nBgCol, nTxtCol;
+    getColors(*this, nBgCol, nTxtCol);
 
+    Color aTmpColor( nBgCol );
+    Wallpaper aWall( aTmpColor );
+    Color aTxtColor( nTxtCol );
+    SetBackground( aWall );
+    SetTextColor( aTxtColor );
+}
 
-void SmShowSymbolSet::Paint(const Rectangle&)
+Point SmShowSymbolSetWindow::OffsetPoint(const Point &rPoint) const
+{
+    return Point(rPoint.X() + nXOffset, rPoint.Y() + nYOffset);
+}
+
+void SmShowSymbolSetWindow::Paint(const Rectangle&)
 {
     Push(PUSH_MAPMODE);
 
     // set MapUnit for which 'nLen' has been calculated
     SetMapMode(MapMode(MAP_PIXEL));
 
-    sal_uInt16 v        = sal::static_int_cast< sal_uInt16 >((aVScrollBar.GetThumbPos() * nColumns));
+    sal_uInt16 v        = sal::static_int_cast< sal_uInt16 >((m_pVScrollBar->GetThumbPos() * nColumns));
     size_t nSymbols = aSymbolSet.size();
 
     Color aTxtColor( GetTextColor() );
@@ -1159,41 +1186,49 @@ void SmShowSymbolSet::Paint(const Rectangle&)
         OUString aText(&cChar, 1);
         Size  aSize( GetTextWidth( aText ), GetTextHeight());
 
-        DrawText(Point((nIV % nColumns) * nLen + (nLen - aSize.Width()) / 2,
-                       (nIV / nColumns) * nLen + (nLen - aSize.Height()) / 2),
-                 aText);
+        Point aPoint((nIV % nColumns) * nLen + (nLen - aSize.Width()) / 2,
+                       (nIV / nColumns) * nLen + (nLen - aSize.Height()) / 2);
+
+        DrawText(OffsetPoint(aPoint), aText);
     }
 
     if (nSelectSymbol != SYMBOL_NONE)
     {
-        Invert(Rectangle(Point(((nSelectSymbol - v) % nColumns) * nLen,
-                                 ((nSelectSymbol - v) / nColumns) * nLen),
-                           Size(nLen, nLen)));
+        Point aPoint(((nSelectSymbol - v) % nColumns) * nLen,
+                                 ((nSelectSymbol - v) / nColumns) * nLen);
+
+        Invert(Rectangle(OffsetPoint(aPoint), Size(nLen, nLen)));
+
     }
 
     Pop();
 }
 
 
-void SmShowSymbolSet::MouseButtonDown(const MouseEvent& rMEvt)
+void SmShowSymbolSetWindow::MouseButtonDown(const MouseEvent& rMEvt)
 {
     GrabFocus();
 
+    Size aOutputSize(nColumns * nLen, nRows * nLen);
+    Point aPoint(rMEvt.GetPosPixel());
+    aPoint.X() -= nXOffset;
+    aPoint.Y() -= nYOffset;
+
     if (rMEvt.IsLeft() && Rectangle(Point(0, 0), aOutputSize).IsInside(rMEvt.GetPosPixel()))
     {
-        long nPos = (rMEvt.GetPosPixel().Y() / nLen) * nColumns + (rMEvt.GetPosPixel().X() / nLen) +
-                      aVScrollBar.GetThumbPos() * nColumns;
+        long nPos = (aPoint.Y() / nLen) * nColumns + (aPoint.X() / nLen) +
+                      m_pVScrollBar->GetThumbPos() * nColumns;
         SelectSymbol( sal::static_int_cast< sal_uInt16 >(nPos) );
 
         aSelectHdlLink.Call(this);
 
-        if (rMEvt.GetClicks() > 1) aDblClickHdlLink.Call(this);
+        if (rMEvt.GetClicks() > 1)
+            aDblClickHdlLink.Call(this);
     }
-    else Control::MouseButtonDown (rMEvt);
 }
 
 
-void SmShowSymbolSet::KeyInput(const KeyEvent& rKEvt)
+void SmShowSymbolSetWindow::KeyInput(const KeyEvent& rKEvt)
 {
     sal_uInt16 n = nSelectSymbol;
 
@@ -1222,10 +1257,10 @@ void SmShowSymbolSet::KeyInput(const KeyEvent& rKEvt)
         n = nSelectSymbol;
 
     // adjust scrollbar
-    if ((n < (sal_uInt16) (aVScrollBar.GetThumbPos() * nColumns)) ||
-        (n >= (sal_uInt16) ((aVScrollBar.GetThumbPos() + nRows) * nColumns)))
+    if ((n < (sal_uInt16) (m_pVScrollBar->GetThumbPos() * nColumns)) ||
+        (n >= (sal_uInt16) ((m_pVScrollBar->GetThumbPos() + nRows) * nColumns)))
     {
-        aVScrollBar.SetThumbPos(n / nColumns);
+        m_pVScrollBar->SetThumbPos(n / nColumns);
         Invalidate();
         Update();
     }
@@ -1234,72 +1269,87 @@ void SmShowSymbolSet::KeyInput(const KeyEvent& rKEvt)
     aSelectHdlLink.Call(this);
 }
 
+void SmShowSymbolSetWindow::setScrollbar(ScrollBar *pVScrollBar)
+{
+    m_pVScrollBar = pVScrollBar;
+    m_pVScrollBar->Enable(false);
+    m_pVScrollBar->Show();
+    m_pVScrollBar->SetScrollHdl(LINK(this, SmShowSymbolSetWindow, ScrollHdl));
+}
 
-SmShowSymbolSet::SmShowSymbolSet(Window *pParent, const ResId& rResId) :
-    Control(pParent, rResId),
-    aVScrollBar(this, WinBits(WB_VSCROLL))
+SmShowSymbolSet::SmShowSymbolSet(Window *pParent)
+    : VclHBox(pParent, false, 6)
+    , aSymbolWindow(this, WB_TABSTOP)
+    , aVScrollBar(this, WinBits(WB_VSCROLL))
 {
-    nSelectSymbol = SYMBOL_NONE;
+    aSymbolWindow.set_hexpand(true);
+    aSymbolWindow.set_vexpand(true);
+    aSymbolWindow.setScrollbar(&aVScrollBar);
+    aSymbolWindow.calccols();
+    aSymbolWindow.Show();
+}
 
-    aOutputSize = GetOutputSizePixel();
-    long nScrollBarWidth = aVScrollBar.GetSizePixel().Width(),
-         nUseableWidth   = aOutputSize.Width() - nScrollBarWidth;
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSmShowSymbolSet(Window *pParent, VclBuilder::stringmap &)
+{
+    return new SmShowSymbolSet(pParent);
+}
 
+void SmShowSymbolSetWindow::calccols()
+{
     // Height of 16pt in pixels (matching 'aOutputSize')
     nLen = (sal_uInt16) LogicToPixel(Size(0, 16), MapMode(MAP_POINT)).Height();
 
-    nColumns = sal::static_int_cast< sal_uInt16 >(nUseableWidth / nLen);
-    if (nColumns > 2  && nColumns % 2 != 0)
-        nColumns--;
-    nRows    = sal::static_int_cast< sal_uInt16 >(aOutputSize.Height() / nLen);
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(nColumns > 0, "Sm : no columns");
-    OSL_ENSURE(nRows > 0, "Sm : no rows");
-#endif
-
-    // make it fit exactly
-    aOutputSize.Width()  = nColumns * nLen;
-    aOutputSize.Height() = nRows * nLen;
+    Size aOutputSize = GetOutputSizePixel();
 
-    aVScrollBar.SetPosSizePixel(Point(aOutputSize.Width() + 1, -1),
-                                Size(nScrollBarWidth, aOutputSize.Height() + 2));
-    aVScrollBar.Enable(false);
-    aVScrollBar.Show();
-    aVScrollBar.SetScrollHdl(LINK(this, SmShowSymbolSet, ScrollHdl));
+    nColumns = sal::static_int_cast< sal_uInt16 >(aOutputSize.Width() / nLen);
+    if (nColumns > 2  && nColumns % 2 != 0)
+        --nColumns;
+    nRows = sal::static_int_cast< sal_uInt16 >(aOutputSize.Height() / nLen);
+    nColumns = std::max<sal_uInt16>(1, nColumns);
+    nRows = std::max<sal_uInt16>(1, nRows);
 
-    Size WindowSize (aOutputSize);
-    WindowSize.Width() += nScrollBarWidth;
-    SetOutputSizePixel(WindowSize);
+    nXOffset = (aOutputSize.Width() - (nColumns * nLen)) / 2;
+    nYOffset = (aOutputSize.Height() - (nRows * nLen)) / 2;
 
+    SetScrollBarRange();
 }
 
+Size SmShowSymbolSetWindow::GetOptimalSize() const
+{
+    Window *pParent = GetParent();
+    return Size(pParent->approximate_char_width() * 24, pParent->GetTextHeight() * 8);
+}
 
-void SmShowSymbolSet::SetSymbolSet(const SymbolPtrVec_t& rSymbolSet)
+void SmShowSymbolSetWindow::SetSymbolSet(const SymbolPtrVec_t& rSymbolSet)
 {
     aSymbolSet = rSymbolSet;
 
+    SetScrollBarRange();
+}
+
+void SmShowSymbolSetWindow::SetScrollBarRange()
+{
     if (static_cast< sal_uInt16 >(aSymbolSet.size()) > (nColumns * nRows))
     {
-        aVScrollBar.SetRange(Range(0, ((aSymbolSet.size() + (nColumns - 1)) / nColumns) - nRows));
-        aVScrollBar.Enable(true);
+        m_pVScrollBar->SetRange(Range(0, ((aSymbolSet.size() + (nColumns - 1)) / nColumns) - nRows));
+        m_pVScrollBar->Enable(true);
     }
     else
     {
-        aVScrollBar.SetRange(Range(0,0));
-        aVScrollBar.Enable (false);
+        m_pVScrollBar->SetRange(Range(0,0));
+        m_pVScrollBar->Enable (false);
     }
 
     Invalidate();
 }
 
-
-void SmShowSymbolSet::SelectSymbol(sal_uInt16 nSymbol)
+void SmShowSymbolSetWindow::SelectSymbol(sal_uInt16 nSymbol)
 {
-    int v = (int) (aVScrollBar.GetThumbPos() * nColumns);
+    int v = (int) (m_pVScrollBar->GetThumbPos() * nColumns);
 
     if (nSelectSymbol != SYMBOL_NONE)
-        Invalidate(Rectangle(Point(((nSelectSymbol - v) % nColumns) * nLen,
-                                   ((nSelectSymbol - v) / nColumns) * nLen),
+        Invalidate(Rectangle(OffsetPoint(Point(((nSelectSymbol - v) % nColumns) * nLen,
+                                   ((nSelectSymbol - v) / nColumns) * nLen)),
                              Size(nLen, nLen)));
 
     if (nSymbol < aSymbolSet.size())
@@ -1309,26 +1359,59 @@ void SmShowSymbolSet::SelectSymbol(sal_uInt16 nSymbol)
         nSelectSymbol = SYMBOL_NONE;
 
     if (nSelectSymbol != SYMBOL_NONE)
-        Invalidate(Rectangle(Point(((nSelectSymbol - v) % nColumns) * nLen,
-                                   ((nSelectSymbol - v) / nColumns) * nLen),
+        Invalidate(Rectangle(OffsetPoint(Point(((nSelectSymbol - v) % nColumns) * nLen,
+                                   ((nSelectSymbol - v) / nColumns) * nLen)),
                              Size(nLen, nLen)));
 
     Update();
 }
 
+void SmShowSymbolSetWindow::Resize()
+{
+    Control::Resize();
+    calccols();
+}
 
-IMPL_LINK( SmShowSymbolSet, ScrollHdl, ScrollBar*, EMPTYARG /*pScrollBar*/)
+IMPL_LINK( SmShowSymbolSetWindow, ScrollHdl, ScrollBar*, EMPTYARG /*pScrollBar*/)
 {
     Invalidate();
     return 0;
 }
 
-////////////////////////////////////////////////////////////////////////////////
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSmShowSymbol(Window *pParent, VclBuilder::stringmap &rMap)
+{
+    WinBits nWinBits = 0;
+
+    VclBuilder::stringmap::iterator aFind = rMap.find(OString("border"));
+    if (aFind != rMap.end())
+    {
+        if (toBool(aFind->second))
+            nWinBits |= WB_BORDER;
+        rMap.erase(aFind);
+    }
+
+    return new SmShowSymbol(pParent, nWinBits);
+}
+
+void SmShowSymbol::Resize()
+{
+    Control::Resize();
+    Invalidate();
+}
+
+void SmShowSymbol::setFontSize(Font &rFont) const
+{
+    rFont.SetSize(Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3));
+}
 
 void SmShowSymbol::Paint(const Rectangle &rRect)
 {
     Control::Paint( rRect );
 
+    Font aFont(GetFont());
+    setFontSize(aFont);
+    SetFont(aFont);
+
     const OUString &rText = GetText();
     Size            aTextSize(GetTextWidth(rText), GetTextHeight());
 
@@ -1351,7 +1434,7 @@ void SmShowSymbol::SetSymbol(const SmSym *pSymbol)
     if (pSymbol)
     {
         Font aFont (pSymbol->GetFace());
-        aFont.SetSize(Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3));
+        setFontSize(aFont);
         aFont.SetAlign(ALIGN_BASELINE);
         SetFont(aFont);
 
@@ -1372,59 +1455,44 @@ void SmSymbolDialog::FillSymbolSets(bool bDeleteText)
     // populate the entries of possible SymbolsSets in the dialog with
     // current values of the SymbolSet manager but selects none of those
 {
-    aSymbolSets.Clear();
+    m_pSymbolSets->Clear();
     if (bDeleteText)
-        aSymbolSets.SetNoSelection();
+        m_pSymbolSets->SetNoSelection();
 
     std::set< OUString >  aSybolSetNames( rSymbolMgr.GetSymbolSetNames() );
     std::set< OUString >::const_iterator aIt( aSybolSetNames.begin() );
     for ( ; aIt != aSybolSetNames.end(); ++aIt)
-        aSymbolSets.InsertEntry( *aIt );
+        m_pSymbolSets->InsertEntry( *aIt );
 }
 
 
-IMPL_LINK( SmSymbolDialog, SymbolSetChangeHdl, ListBox *, EMPTYARG pListBox )
+IMPL_LINK_NOARG( SmSymbolDialog, SymbolSetChangeHdl )
 {
-    (void) pListBox;
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pListBox == &aSymbolSets, "Sm : wrong argument");
-#endif
-
-    SelectSymbolSet(aSymbolSets.GetSelectEntry());
+    SelectSymbolSet(m_pSymbolSets->GetSelectEntry());
     return 0;
 }
 
 
-IMPL_LINK( SmSymbolDialog, SymbolChangeHdl, SmShowSymbolSet *, EMPTYARG pShowSymbolSet )
+IMPL_LINK_NOARG( SmSymbolDialog, SymbolChangeHdl )
 {
-    (void) pShowSymbolSet;
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pShowSymbolSet == &aSymbolSetDisplay, "Sm : wrong argument");
-#endif
-
-    SelectSymbol(aSymbolSetDisplay.GetSelectSymbol());
+    SelectSymbol(m_pSymbolSetDisplay->GetSelectSymbol());
     return 0;
 }
 
-IMPL_LINK( SmSymbolDialog, EditClickHdl, Button *, EMPTYARG pButton )
+IMPL_LINK_NOARG(SmSymbolDialog, EditClickHdl)
 {
-    (void) pButton;
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pButton == &aEditBtn, "Sm : wrong argument");
-#endif
-
     SmSymDefineDialog *pDialog = new SmSymDefineDialog(this, pFontListDev, rSymbolMgr);
 
     // set current symbol and SymbolSet for the new dialog
-    const OUString  aSymSetName (aSymbolSets.GetSelectEntry()),
-                    aSymName    (aSymbolName.GetText());
+    const OUString  aSymSetName (m_pSymbolSets->GetSelectEntry()),
+                    aSymName    (m_pSymbolName->GetText());
     pDialog->SelectOldSymbolSet(aSymSetName);
     pDialog->SelectOldSymbol(aSymName);
     pDialog->SelectSymbolSet(aSymSetName);
     pDialog->SelectSymbol(aSymName);
 
     // remember old SymbolSet
-    OUString  aOldSymbolSet (aSymbolSets.GetSelectEntry());
+    OUString  aOldSymbolSet (m_pSymbolSets->GetSelectEntry());
 
     sal_uInt16 nSymPos = GetSelectedSymbol();
 
@@ -1436,14 +1504,14 @@ IMPL_LINK( SmSymbolDialog, EditClickHdl, Button *, EMPTYARG pButton )
     }
 
     // if the old SymbolSet doesn't exist anymore, go to the first one SymbolSet (if one exists)
-    if (!SelectSymbolSet(aOldSymbolSet)  &&  aSymbolSets.GetEntryCount() > 0)
-        SelectSymbolSet(aSymbolSets.GetEntry(0));
+    if (!SelectSymbolSet(aOldSymbolSet) && m_pSymbolSets->GetEntryCount() > 0)
+        SelectSymbolSet(m_pSymbolSets->GetEntry(0));
     else
     {
         // just update display of current symbol set
-        OSL_ENSURE( aSymSetName == aSymSetName, "unexpected change in symbol set name" );
-           aSymbolSet      = rSymbolMgr.GetSymbolSet( aSymbolSetName );
-        aSymbolSetDisplay.SetSymbolSet( aSymbolSet );
+        assert(aSymSetName == aSymSetName); //unexpected change in symbol set name
+        aSymbolSet = rSymbolMgr.GetSymbolSet( aSymbolSetName );
+        m_pSymbolSetDisplay->SetSymbolSet( aSymbolSet );
     }
 
     if (nSymPos >= aSymbolSet.size())
@@ -1455,26 +1523,16 @@ IMPL_LINK( SmSymbolDialog, EditClickHdl, Button *, EMPTYARG pButton )
 }
 
 
-IMPL_LINK( SmSymbolDialog, SymbolDblClickHdl, SmShowSymbolSet *, EMPTYARG pShowSymbolSet )
+IMPL_LINK_NOARG( SmSymbolDialog, SymbolDblClickHdl )
 {
-    (void) pShowSymbolSet;
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pShowSymbolSet == &aSymbolSetDisplay, "Sm : wrong argument");
-#endif
-
-    GetClickHdl(&aGetBtn);
+    GetClickHdl(m_pGetBtn);
     EndDialog(RET_OK);
     return 0;
 }
 
 
-IMPL_LINK( SmSymbolDialog, GetClickHdl, Button *, EMPTYARG pButton )
+IMPL_LINK_NOARG( SmSymbolDialog, GetClickHdl )
 {
-    (void) pButton;
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pButton == &aGetBtn, "Sm : wrong button");
-#endif
-
     const SmSym *pSym = GetSymbol();
     if (pSym)
     {
@@ -1490,96 +1548,57 @@ IMPL_LINK( SmSymbolDialog, GetClickHdl, Button *, EMPTYARG pButton )
 }
 
 
-IMPL_LINK_INLINE_START( SmSymbolDialog, CloseClickHdl, Button *, EMPTYARG pButton )
-{
-    (void) pButton;
-#if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pButton == &aCloseBtn, "Sm : wrong button");
-#endif
+SmSymbolDialog::SmSymbolDialog(Window *pParent, OutputDevice *pFntListDevice,
+        SmSymbolManager &rMgr, SmViewShell &rViewShell)
+    : ModalDialog(pParent, "CatalogDialog",
+        "modules/smath/ui/catalogdialog.ui")
 
-    EndDialog(true);
-    return 0;
-}
-IMPL_LINK_INLINE_END( SmSymbolDialog, CloseClickHdl, Button *, pButton )
+    ,
 
-IMPL_LINK( SmSymbolDialog, HelpButtonClickHdl, Button *, EMPTYARG /*pButton*/ )
-{
-    // start help system
-    Help* pHelp = Application::GetHelp();
-    if( pHelp )
-    {
-        pHelp->Start( OUString( "HID_SMA_SYMBOLDIALOG" ), &aHelpBtn );
-    }
-    return 0;
-}
-
-SmSymbolDialog::SmSymbolDialog(Window *pParent, OutputDevice *pFntListDevice,
-        SmSymbolManager &rMgr, SmViewShell &rViewShell, bool bFreeRes) :
-    ModalDialog         (pParent, SmResId(RID_SYMBOLDIALOG)),
-    aSymbolSetText      (this, SmResId(1)),
-    aSymbolSets         (this, SmResId(1)),
-    aSymbolSetDisplay   (this, SmResId(1)),
-    aSymbolName         (this, SmResId(2)),
-    aSymbolDisplay      (this, SmResId(2)),
-    aHelpBtn            (this, SmResId(1)),
-    aGetBtn             (this, SmResId(2)),
-    aCloseBtn           (this, SmResId(3)),
-    aEditBtn            (this, SmResId(1)),
     rViewSh             (rViewShell),
     rSymbolMgr          (rMgr),
     pFontListDev        (pFntListDevice)
 {
-    if (bFreeRes)
-        FreeResource();
+    get(m_pSymbolSets, "symbolset");
+    m_pSymbolSets->SetStyle(m_pSymbolSets->GetStyle()|WB_SORT);
+    get(m_pSymbolName, "symbolname");
+    get(m_pGetBtn, "insert");
+    get(m_pEditBtn, "edit");
+    get(m_pSymbolSetDisplay, "symbolsetdisplay");
+    get(m_pSymbolDisplay, "preview");
 
-    aHelpBtn.SetClickHdl(LINK(this, SmSymbolDialog, HelpButtonClickHdl));
     aSymbolSetName = OUString();
     aSymbolSet.clear();
     FillSymbolSets();
-    if (aSymbolSets.GetEntryCount() > 0)
-        SelectSymbolSet(aSymbolSets.GetEntry(0));
+    if (m_pSymbolSets->GetEntryCount() > 0)
+        SelectSymbolSet(m_pSymbolSets->GetEntry(0));
 
     InitColor_Impl();
 
     // preview like controls should have a 2D look
-    aSymbolDisplay.SetBorderStyle( WINDOW_BORDER_MONO );
+    m_pSymbolDisplay->SetBorderStyle( WINDOW_BORDER_MONO );
 
-    aSymbolSets      .SetSelectHdl  (LINK(this, SmSymbolDialog, SymbolSetChangeHdl));
-    aSymbolSetDisplay.SetSelectHdl  (LINK(this, SmSymbolDialog, SymbolChangeHdl));
-    aSymbolSetDisplay.SetDblClickHdl(LINK(this, SmSymbolDialog, SymbolDblClickHdl));
-    aSymbolDisplay   .SetDblClickHdl(LINK(this, SmSymbolDialog, SymbolDblClickHdl));
-    aCloseBtn        .SetClickHdl   (LINK(this, SmSymbolDialog, CloseClickHdl));
-    aEditBtn         .SetClickHdl   (LINK(this, SmSymbolDialog, EditClickHdl));
-    aGetBtn          .SetClickHdl   (LINK(this, SmSymbolDialog, GetClickHdl));
-}
-
-
-SmSymbolDialog::~SmSymbolDialog()
-{
+    m_pSymbolSets->SetSelectHdl(LINK(this, SmSymbolDialog, SymbolSetChangeHdl));
+    m_pSymbolSetDisplay->SetSelectHdl(LINK(this, SmSymbolDialog, SymbolChangeHdl));
+    m_pSymbolSetDisplay->SetDblClickHdl(LINK(this, SmSymbolDialog, SymbolDblClickHdl));
+    m_pSymbolDisplay->SetDblClickHdl(LINK(this, SmSymbolDialog, SymbolDblClickHdl));
+    m_pEditBtn->SetClickHdl(LINK(this, SmSymbolDialog, EditClickHdl));
+    m_pGetBtn->SetClickHdl(LINK(this, SmSymbolDialog, GetClickHdl));
 }
 
 
 void SmSymbolDialog::InitColor_Impl()
 {
-#if OSL_DEBUG_LEVEL > 1
-    Color aBC( GetDisplayBackground().GetColor() );
-#endif
-    ColorData   nBgCol  = COL_WHITE,
-                nTxtCol = COL_BLACK;
-    const StyleSettings &rS = GetSettings().GetStyleSettings();
-    if (rS.GetHighContrastMode())
-    {
-        nBgCol  = rS.GetFieldColor().GetColor();
-        nTxtCol = rS.GetFieldTextColor().GetColor();
-    }
+    ColorData nBgCol, nTxtCol;
+    getColors(*this, nBgCol, nTxtCol);
 
     Color aTmpColor( nBgCol );
     Wallpaper aWall( aTmpColor );
     Color aTxtColor( nTxtCol );
-    aSymbolDisplay   .SetBackground( aWall );
-    aSymbolDisplay   .SetTextColor( aTxtColor );
-    aSymbolSetDisplay.SetBackground( aWall );
-    aSymbolSetDisplay.SetTextColor( aTxtColor );
+    m_pSymbolDisplay->SetBackground( aWall );
+    m_pSymbolDisplay->SetTextColor( aTxtColor );
+    m_pSymbolSetDisplay->SetBackground( aWall );
+    m_pSymbolSetDisplay->SetTextColor( aTxtColor );
 }
 
 
@@ -1596,13 +1615,13 @@ void SmSymbolDialog::DataChanged( const DataChangedEvent& rDCEvt )
 bool SmSymbolDialog::SelectSymbolSet(const OUString &rSymbolSetName)
 {
     bool    bRet = false;
-    sal_uInt16  nPos = aSymbolSets.GetEntryPos(rSymbolSetName);
+    sal_uInt16  nPos = m_pSymbolSets->GetEntryPos(rSymbolSetName);
 
     aSymbolSetName = OUString();
     aSymbolSet.clear();
     if (nPos != LISTBOX_ENTRY_NOTFOUND)
     {
-        aSymbolSets.SelectEntryPos(nPos);
+        m_pSymbolSets->SelectEntryPos(nPos);
 
         aSymbolSetName  = rSymbolSetName;
         aSymbolSet      = rSymbolMgr.GetSymbolSet( aSymbolSetName );
@@ -1610,14 +1629,14 @@ bool SmSymbolDialog::SelectSymbolSet(const OUString &rSymbolSetName)
         // sort symbols by Unicode position (useful for displaying Greek characters alphabetically)
         std::sort( aSymbolSet.begin(), aSymbolSet.end(), lt_SmSymPtr() );
 
-        aSymbolSetDisplay.SetSymbolSet( aSymbolSet );
+        m_pSymbolSetDisplay->SetSymbolSet( aSymbolSet );
         if (aSymbolSet.size() > 0)
             SelectSymbol(0);
 
         bRet = true;
     }
     else
-        aSymbolSets.SetNoSelection();
+        m_pSymbolSets->SetNoSelection();
 
     return bRet;
 }
@@ -1629,15 +1648,15 @@ void SmSymbolDialog::SelectSymbol(sal_uInt16 nSymbolNo)
     if (!aSymbolSetName.isEmpty()  &&  nSymbolNo < static_cast< sal_uInt16 >(aSymbolSet.size()))
         pSym = aSymbolSet[ nSymbolNo ];
 
-    aSymbolSetDisplay.SelectSymbol(nSymbolNo);
-    aSymbolDisplay.SetSymbol(pSym);
-    aSymbolName.SetText(pSym ? pSym->GetName() : OUString());
+    m_pSymbolSetDisplay->SelectSymbol(nSymbolNo);
+    m_pSymbolDisplay->SetSymbol(pSym);
+    m_pSymbolName->SetText(pSym ? pSym->GetName() : OUString());
 }
 
 
 const SmSym * SmSymbolDialog::GetSymbol() const
 {
-    sal_uInt16 nSymbolNo = aSymbolSetDisplay.GetSelectSymbol();
+    sal_uInt16 nSymbolNo = m_pSymbolSetDisplay->GetSelectSymbol();
     bool bValid = !aSymbolSetName.isEmpty()  &&  nSymbolNo < static_cast< sal_uInt16 >(aSymbolSet.size());
     return bValid ? aSymbolSet[ nSymbolNo ] : NULL;
 }
diff --git a/starmath/source/smres.src b/starmath/source/smres.src
index 91338da..d17398d 100644
--- a/starmath/source/smres.src
+++ b/starmath/source/smres.src
@@ -974,89 +974,6 @@ TabPage RID_PRINTOPTIONPAGE
     };
 };
 
-ModalDialog RID_SYMBOLDIALOG
-{
-    HelpID = "starmath:ModalDialog:RID_SYMBOLDIALOG";
-    OutputSize = TRUE ;
-    SVLook = TRUE ;
-    Closeable = TRUE;   // Close Button in Window Leiste explizit einbauen
-    Size = MAP_APPFONT ( 239 , 123 ) ;
-    Text [ en-US ] = "Symbols" ;
-    Moveable = TRUE ;
-    FixedText 1
-    {
-        Pos = MAP_APPFONT ( 6 , 6 ) ;
-        Size = MAP_APPFONT ( 92 , 8 ) ;
-        Left = TRUE ;
-        Text [ en-US ] = "~Symbol set";
-    };
-    ListBox 1
-    {
-        HelpID = "starmath:ListBox:RID_SYMBOLDIALOG:1";
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 6 , 17 ) ;
-        Size = MAP_APPFONT ( 92, 57 ) ;
-        TabStop = TRUE ;
-        Sort = TRUE ;
-        DropDown = TRUE ;
-        VScroll = TRUE ;
-    };
-    Control 1
-    {
-        HelpID = HID_SMA_CONTROL_SYMBOLSET_VIEW ;
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 6 , 35 ) ;
-        Size = MAP_APPFONT ( 96 , 72 ) ;
-        TabStop = TRUE ;
-    };
-    Control 2
-    {
-        Border = TRUE ;
-        Pos = MAP_APPFONT ( 108 , 35 ) ;
-        Size = MAP_APPFONT ( 63 , 72 ) ;
-    };
-    FixedText 2
-    {
-        Center = TRUE ;
-        Pos = MAP_APPFONT ( 6 , 108 ) ;
-        Size = MAP_APPFONT ( 92 , 8 ) ;
-        Text [ en-US ] = "Unknown" ;
-    };
-    PushButton 2
-    {
-        HelpID = "starmath:PushButton:RID_SYMBOLDIALOG:2";
-        TabStop = TRUE ;
-        Pos = MAP_APPFONT ( 177 , 6 ) ;
-        Size = MAP_APPFONT ( 56 , 14 ) ;
-        DefButton = TRUE ;
-        Text [ en-US ] = "~Insert" ;
-    };
-    PushButton 3
-    {
-        HelpID = "starmath:PushButton:RID_SYMBOLDIALOG:3";
-        Pos = MAP_APPFONT ( 177 , 24 ) ;
-        Size = MAP_APPFONT ( 56 , 14 ) ;
-        TabStop = TRUE ;
-        Text [ en-US ] = "~Close";
-    };
-    PushButton 1
-    {
-        HelpID = "starmath:PushButton:RID_SYMBOLDIALOG:1";
-        TabStop = TRUE ;
-        Pos = MAP_APPFONT ( 177 , 42 ) ;
-        Size = MAP_APPFONT ( 56 , 14 ) ;
-        Text [ en-US ] = "~Edit..." ;
-    };
-    HelpButton 1
-    {
-        Pos = MAP_APPFONT ( 177 , 60 ) ;
-        Size = MAP_APPFONT ( 56 , 14 ) ;
-        TabStop = TRUE ;
-    HelpID = "starmath:HelpButton:RID_SYMBOLDIALOG:1";
-    Text [ en-US ] = "~Help" ;
-    };
-};
-
 ModalDialog RID_SYMDEFINEDIALOG
 {
     HelpID = "starmath:ModalDialog:RID_SYMDEFINEDIALOG";
diff --git a/starmath/uiconfig/smath/ui/catalog.ui b/starmath/uiconfig/smath/ui/catalogdialog.ui
similarity index 50%
rename from starmath/uiconfig/smath/ui/catalog.ui
rename to starmath/uiconfig/smath/ui/catalogdialog.ui
index 0b49e41..8c34bad 100644
--- a/starmath/uiconfig/smath/ui/catalog.ui
+++ b/starmath/uiconfig/smath/ui/catalogdialog.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkDialog" id="catalog">
+  <object class="GtkDialog" id="CatalogDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes">Symbols</property>
@@ -16,12 +16,13 @@
             <property name="orientation">vertical</property>
             <property name="layout_style">start</property>
             <child>
-              <object class="GtkButton" id="button3">
+              <object class="GtkButton" id="insert">
                 <property name="label" translatable="yes">_Insert</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
                 <property name="use_underline">True</property>
               </object>
               <packing>
@@ -31,13 +32,13 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="button1">
-                <property name="label" translatable="yes">_Close</property>
+              <object class="GtkButton" id="close">
+                <property name="label">gtk-close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
                 <property name="use_underline">True</property>
+                <property name="use_stock">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -46,12 +47,11 @@
               </packing>
             </child>
             <child>
-              <object class="GtkButton" id="button2">
+              <object class="GtkButton" id="edit">
                 <property name="label" translatable="yes">_Edit...</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
                 <property name="use_underline">True</property>
               </object>
               <packing>
@@ -66,7 +66,6 @@
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
                 <property name="use_stock">True</property>
               </object>
               <packing>
@@ -84,89 +83,96 @@
           </packing>
         </child>
         <child>
-          <object class="GtkBox" id="box1">
+          <object class="GtkGrid" id="grid1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">18</property>
             <child>
-              <object class="GtkBox" id="box2">
+              <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <child>
-                  <object class="GtkLabel" id="label1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">_Symbol set</property>
-                    <property name="use_underline">True</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkSpinButton" id="spinbutton1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">●</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkScrolledWindow" id="scrolledwindow1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GtkIconView" id="iconview1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="model">liststore1</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="label2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">label</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">_Symbol set</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">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkComboBoxText" id="symbolset">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_bottom">6</property>
+                <property name="entry_text_column">0</property>
+                <property name="id_column">1</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="smlo-SmShowSymbolSet" id="symbolsetdisplay">
+                <property name="label" translatable="yes">button</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</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="GtkImage" id="image1">
+              <object class="smlo-SmShowSymbol" id="preview:border">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
                 <property name="stock">gtk-missing-image</property>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
+                <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="GtkLabel" id="symbolname">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Unknown</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>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -177,11 +183,25 @@
       </object>
     </child>
     <action-widgets>
-      <action-widget response="0">button3</action-widget>
-      <action-widget response="0">button1</action-widget>
-      <action-widget response="0">button2</action-widget>
+      <action-widget response="0">insert</action-widget>
+      <action-widget response="0">close</action-widget>
+      <action-widget response="0">edit</action-widget>
       <action-widget response="0">help</action-widget>
     </action-widgets>
   </object>
   <object class="GtkListStore" id="liststore1"/>
+  <object class="GtkSizeGroup" id="sizegroup1">
+    <property name="mode">vertical</property>
+    <widgets>
+      <widget name="preview:border"/>
+      <widget name="symbolsetdisplay"/>
+    </widgets>
+  </object>
+  <object class="GtkSizeGroup" id="sizegroup2">
+    <widgets>
+      <widget name="preview:border"/>
+      <widget name="symbolsetdisplay"/>
+      <widget name="symbolset"/>
+    </widgets>
+  </object>
 </interface>
commit c19c9dfc69b73ae7dbd7d4b9e68ec0a7c7891913
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 22 16:50:18 2013 +0100

    setting max line count should allow extra values to be added later
    
    Change-Id: Ia693c83b8d27cacbd257f81b5eae2936fc5f8a6f

diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 5234a52..e89bc53 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -569,7 +569,7 @@ void ComboBox::SetDropDownLineCount( sal_uInt16 nLines )
 void ComboBox::AdaptDropDownLineCountToMaximum()
 {
     // adapt to maximum allowed number
-    SetDropDownLineCount(std::min(GetEntryCount(), GetSettings().GetStyleSettings().GetListBoxMaximumLineCount()));
+    SetDropDownLineCount(GetSettings().GetStyleSettings().GetListBoxMaximumLineCount());
 }
 
 // -----------------------------------------------------------------------
diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx
index 741558e..31dfde2 100644
--- a/vcl/source/control/lstbox.cxx
+++ b/vcl/source/control/lstbox.cxx
@@ -593,7 +593,7 @@ void ListBox::SetDropDownLineCount( sal_uInt16 nLines )
 void ListBox::AdaptDropDownLineCountToMaximum()
 {
     // adapt to maximum allowed number
-    SetDropDownLineCount(std::min(GetEntryCount(), GetSettings().GetStyleSettings().GetListBoxMaximumLineCount()));
+    SetDropDownLineCount(GetSettings().GetStyleSettings().GetListBoxMaximumLineCount());
 }
 
 // -----------------------------------------------------------------------
commit d484b12a851df24b2c5779b73c231a20a55a0374
Author: Alia Almusaireae <almusaireae at kacst.edu.sa>
Date:   Mon May 20 10:27:27 2013 +0300

    catalog.ui widget
    
    Change-Id: I1a67c1c9b30b56d3c0739c2f77abfc24a941dad4

diff --git a/starmath/uiconfig/smath/ui/catalog.ui b/starmath/uiconfig/smath/ui/catalog.ui
new file mode 100644
index 0000000..0b49e41
--- /dev/null
+++ b/starmath/uiconfig/smath/ui/catalog.ui
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkDialog" id="catalog">
+    <property name="can_focus">False</property>
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Symbols</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox5">
+        <property name="can_focus">False</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area5">
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <property name="layout_style">start</property>
+            <child>
+              <object class="GtkButton" id="button3">
+                <property name="label" translatable="yes">_Insert</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button1">
+                <property name="label" translatable="yes">_Close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button2">
+                <property name="label" translatable="yes">_Edit...</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="help">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="box1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkBox" id="box2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkLabel" id="label1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">_Symbol set</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="spinbutton1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">●</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="shadow_type">in</property>
+                    <child>
+                      <object class="GtkIconView" id="iconview1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="model">liststore1</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">label</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">3</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</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="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>
+    </child>
+    <action-widgets>
+      <action-widget response="0">button3</action-widget>
+      <action-widget response="0">button1</action-widget>
+      <action-widget response="0">button2</action-widget>
+      <action-widget response="0">help</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkListStore" id="liststore1"/>
+</interface>


More information about the Libreoffice-commits mailing list