Kaydet (Commit) a0329f7c authored tarafından Caolán McNamara's avatar Caolán McNamara

weld SmSymbolDialog

Change-Id: I163a309fdf79e3eeadeb15b2a1c042666def339f
Reviewed-on: https://gerrit.libreoffice.org/53633Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst d0f7b123
......@@ -251,18 +251,12 @@
<glade-widget-class title="Mark Preview" name="swuilo-SwMarkPreview"
generic-name="Mark 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="Gallery Preview" name="svxcorelo-GalleryPreview"
generic-name="Gallery Preview" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/>
<glade-widget-class title="Show Math Font" name="smlo-SmShowFont"
generic-name="Show Math Font" 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"/>
......
......@@ -258,91 +258,70 @@ public:
/**************************************************************************/
class SmShowSymbolSetWindow : public Control
class SmShowSymbolSet
{
VclPtr<ScrollBar> m_pVScrollBar;
Size m_aSize;
Size m_aOldSize;
SymbolPtrVec_t aSymbolSet;
Link<SmShowSymbolSetWindow&,void> aSelectHdlLink;
Link<SmShowSymbolSetWindow&,void> aDblClickHdlLink;
Link<SmShowSymbolSet&,void> aSelectHdlLink;
Link<SmShowSymbolSet&,void> aDblClickHdlLink;
long nLen;
long nRows, nColumns;
long nXOffset, nYOffset;
sal_uInt16 nSelectSymbol;
std::unique_ptr<weld::DrawingArea> m_xDrawingArea;
std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow;
void SetScrollBarRange();
Point OffsetPoint(const Point &rPoint) const;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override;
virtual void MouseButtonDown(const MouseEvent& rMEvt) override;
virtual void KeyInput(const KeyEvent& rKEvt) override;
virtual void Resize() override;
virtual Size GetOptimalSize() const override;
DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void);
DECL_LINK(DoMouseButtonDown, const MouseEvent& rMEvt, void);
DECL_LINK(DoKeyDown, const KeyEvent& rKEvt, bool);
DECL_LINK(DoResize, const Size& rSize, void);
DECL_LINK(ScrollHdl, weld::ScrolledWindow&, void);
DECL_LINK( ScrollHdl, ScrollBar*, void );
public:
SmShowSymbolSetWindow(vcl::Window *pParent, WinBits nStyle);
virtual ~SmShowSymbolSetWindow() override;
virtual void dispose() override;
void setScrollbar(ScrollBar *pVScrollBar);
void calccols();
SmShowSymbolSet(weld::DrawingArea* pDrawingArea, weld::ScrolledWindow* pScrolledWindow);
void calccols(vcl::RenderContext& rRenderContext);
void SelectSymbol(sal_uInt16 nSymbol);
sal_uInt16 GetSelectSymbol() const { return nSelectSymbol; }
void SetSymbolSet(const SymbolPtrVec_t& rSymbolSet);
void SetSelectHdl(const Link<SmShowSymbolSetWindow&,void>& rLink) { aSelectHdlLink = rLink; }
void SetDblClickHdl(const Link<SmShowSymbolSetWindow&,void>& rLink) { aDblClickHdlLink = rLink; }
void SetSelectHdl(const Link<SmShowSymbolSet&,void>& rLink) { aSelectHdlLink = rLink; }
void SetDblClickHdl(const Link<SmShowSymbolSet&,void>& rLink) { aDblClickHdlLink = rLink; }
};
class SmShowSymbolSet : public VclHBox
class SmShowSymbol
{
VclPtr<SmShowSymbolSetWindow> aSymbolWindow;
VclPtr<ScrollBar> aVScrollBar;
public:
SmShowSymbolSet(vcl::Window *pParent);
virtual ~SmShowSymbolSet() override;
virtual void dispose() override;
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<SmShowSymbolSetWindow&,void>& rLink) { aSymbolWindow->SetSelectHdl(rLink); }
void SetDblClickHdl(const Link<SmShowSymbolSetWindow&,void>& rLink) { aSymbolWindow->SetDblClickHdl(rLink); }
};
private:
Size m_aSize;
vcl::Font m_aFont;
OUString m_aText;
std::unique_ptr<weld::DrawingArea> m_xDrawingArea;
class SmShowSymbol : public Control
{
Link<SmShowSymbol&,void> aDblClickHdlLink;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override;
virtual void ApplySettings(vcl::RenderContext& rRenderContext) override;
virtual void MouseButtonDown(const MouseEvent& rMEvt) override;
virtual void Resize() override;
DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void);
DECL_LINK(DoMouseButtonDown, const MouseEvent& rMEvt, void);
DECL_LINK(DoResize, const Size& rSize, void);
void setFontSize(vcl::Font &rFont) const;
public:
SmShowSymbol(vcl::Window *pParent, WinBits nStyle)
: Control(pParent, nStyle)
{
}
SmShowSymbol(weld::DrawingArea* pDrawingArea);
void SetText(const OUString& rText) { m_aText = rText; }
const OUString& GetText() const { return m_aText; }
void SetFont(const vcl::Font& rFont) { m_aFont = rFont; }
const vcl::Font& GetFont() const { return m_aFont; }
void SetSymbol(const SmSym *pSymbol);
void SetDblClickHdl(const Link<SmShowSymbol&,void> &rLink) { aDblClickHdlLink = rLink; }
};
class SmSymbolDialog : public ModalDialog
class SmSymbolDialog : public weld::GenericDialogController
{
VclPtr<ListBox> m_pSymbolSets;
VclPtr<SmShowSymbolSet> m_pSymbolSetDisplay;
VclPtr<FixedText> m_pSymbolName;
VclPtr<SmShowSymbol> m_pSymbolDisplay;
VclPtr<PushButton> m_pGetBtn;
VclPtr<PushButton> m_pEditBtn;
SmViewShell &rViewSh;
SmSymbolManager &rSymbolMgr;
......@@ -351,30 +330,33 @@ class SmSymbolDialog : public ModalDialog
VclPtr<OutputDevice> pFontListDev;
DECL_LINK(SymbolSetChangeHdl, ListBox&, void);
DECL_LINK(SymbolChangeHdl, SmShowSymbolSetWindow&, void);
std::unique_ptr<weld::ComboBoxText> m_xSymbolSets;
std::unique_ptr<SmShowSymbolSet> m_xSymbolSetDisplay;
std::unique_ptr<weld::Label> m_xSymbolName;
std::unique_ptr<SmShowSymbol> m_xSymbolDisplay;
std::unique_ptr<weld::Button> m_xGetBtn;
std::unique_ptr<weld::Button> m_xEditBtn;
DECL_LINK(SymbolSetChangeHdl, weld::ComboBoxText&, void);
DECL_LINK(SymbolChangeHdl, SmShowSymbolSet&, void);
DECL_LINK(SymbolDblClickHdl, SmShowSymbol&, void);
DECL_LINK(SymbolDblClickHdl2, SmShowSymbolSetWindow&, void);
DECL_LINK(EditClickHdl, Button*, void);
DECL_LINK(GetClickHdl, Button*, void);
DECL_LINK(SymbolDblClickHdl2, SmShowSymbolSet&, void);
DECL_LINK(EditClickHdl, weld::Button&, void);
DECL_LINK(GetClickHdl, weld::Button&, void);
void SymbolDblClickHdl();
void FillSymbolSets();
const SmSym *GetSymbol() const;
virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
public:
SmSymbolDialog(vcl::Window * pParent, OutputDevice *pFntListDevice,
SmSymbolDialog(weld::Window* pParent, OutputDevice *pFntListDevice,
SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell);
virtual ~SmSymbolDialog() override;
virtual void dispose() override;
bool SelectSymbolSet(const OUString &rSymbolSetName);
void SelectSymbol(sal_uInt16 nSymbolPos);
};
class SmShowChar
{
private:
......
This diff is collapsed.
......@@ -1798,7 +1798,8 @@ void SmViewShell::Execute(SfxRequest& rReq)
SAL_WARN_IF( !pDev, "starmath", "device for font list missing" );
SmModule *pp = SM_MOD();
ScopedVclPtrInstance<SmSymbolDialog>( nullptr, pDev, pp->GetSymbolManager(), *this )->Execute();
SmSymbolDialog aDialog(pWin ? pWin->GetFrameWeld() : nullptr, pDev, pp->GetSymbolManager(), *this);
aDialog.run();
}
break;
}
......
......@@ -2,13 +2,13 @@
<!-- Generated with glade 3.20.4 -->
<interface domain="sm">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkDialog" id="CatalogDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="catalogdialog|CatalogDialog">Symbols</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox5">
......@@ -95,6 +95,7 @@
<property name="vexpand">True</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
......@@ -120,39 +121,78 @@
</packing>
</child>
<child>
<object class="smlo-SmShowSymbolSet" id="symbolsetdisplay">
<object class="GtkLabel" id="symbolname">
<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>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="catalogdialog|symbolname">Unknown</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="smlo-SmShowSymbol" id="preview:border">
<object class="GtkScrolledWindow" id="scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="vscrollbar_policy">always</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkDrawingArea" id="symbolsetdisplay">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="symbolname">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="catalogdialog|symbolname">Unknown</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="hscrollbar_policy">never</property>
<property name="vscrollbar_policy">never</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkDrawingArea" id="preview">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
......@@ -174,7 +214,6 @@
</object>
</child>
<action-widgets>
<action-widget response="0">edit</action-widget>
<action-widget response="-5">ok</action-widget>
<action-widget response="-7">close</action-widget>
<action-widget response="-11">help</action-widget>
......@@ -183,19 +222,4 @@
<placeholder/>
</child>
</object>
<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>
<object class="GtkListStore" id="liststore1"/>
</interface>
......@@ -679,7 +679,7 @@ void SvxShowCharSet::RecalculateFont(vcl::RenderContext& rRenderContext)
nX = aSize.Width() / COLUMN_COUNT;
nY = aSize.Height() / ROW_COUNT;
int nLastRow = (mxFontCharMap->GetCharCount() - 1 + COLUMN_COUNT) / COLUMN_COUNT;
const int nLastRow = (mxFontCharMap->GetCharCount() - 1 + COLUMN_COUNT) / COLUMN_COUNT;
mxScrollArea->vadjustment_configure(mxScrollArea->vadjustment_get_value(), 0, nLastRow, 1, ROW_COUNT - 1, ROW_COUNT);
// restore last selected unicode
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment