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 @@ ...@@ -251,18 +251,12 @@
<glade-widget-class title="Mark Preview" name="swuilo-SwMarkPreview" <glade-widget-class title="Mark Preview" name="swuilo-SwMarkPreview"
generic-name="Mark Preview Window" parent="GtkDrawingArea" generic-name="Mark Preview Window" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/> 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" <glade-widget-class title="Gallery Preview" name="svxcorelo-GalleryPreview"
generic-name="Gallery Preview" parent="GtkDrawingArea" generic-name="Gallery Preview" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/> icon-name="widget-gtk-drawingarea"/>
<glade-widget-class title="Show Math Font" name="smlo-SmShowFont" <glade-widget-class title="Show Math Font" name="smlo-SmShowFont"
generic-name="Show Math Font" parent="GtkDrawingArea" generic-name="Show Math Font" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/> 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" <glade-widget-class title="Number Preview" name="cuilo-SvxNumberPreview"
generic-name="Number Preview Window" parent="GtkDrawingArea" generic-name="Number Preview Window" parent="GtkDrawingArea"
icon-name="widget-gtk-drawingarea"/> icon-name="widget-gtk-drawingarea"/>
......
...@@ -258,91 +258,70 @@ public: ...@@ -258,91 +258,70 @@ public:
/**************************************************************************/ /**************************************************************************/
class SmShowSymbolSetWindow : public Control class SmShowSymbolSet
{ {
VclPtr<ScrollBar> m_pVScrollBar; Size m_aSize;
Size m_aOldSize;
SymbolPtrVec_t aSymbolSet; SymbolPtrVec_t aSymbolSet;
Link<SmShowSymbolSetWindow&,void> aSelectHdlLink; Link<SmShowSymbolSet&,void> aSelectHdlLink;
Link<SmShowSymbolSetWindow&,void> aDblClickHdlLink; Link<SmShowSymbolSet&,void> aDblClickHdlLink;
long nLen; long nLen;
long nRows, nColumns; long nRows, nColumns;
long nXOffset, nYOffset; long nXOffset, nYOffset;
sal_uInt16 nSelectSymbol; sal_uInt16 nSelectSymbol;
std::unique_ptr<weld::DrawingArea> m_xDrawingArea;
std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow;
void SetScrollBarRange(); void SetScrollBarRange();
Point OffsetPoint(const Point &rPoint) const; Point OffsetPoint(const Point &rPoint) const;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override; DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void);
virtual void MouseButtonDown(const MouseEvent& rMEvt) override; DECL_LINK(DoMouseButtonDown, const MouseEvent& rMEvt, void);
virtual void KeyInput(const KeyEvent& rKEvt) override; DECL_LINK(DoKeyDown, const KeyEvent& rKEvt, bool);
virtual void Resize() override; DECL_LINK(DoResize, const Size& rSize, void);
virtual Size GetOptimalSize() const override; DECL_LINK(ScrollHdl, weld::ScrolledWindow&, void);
DECL_LINK( ScrollHdl, ScrollBar*, void );
public: public:
SmShowSymbolSetWindow(vcl::Window *pParent, WinBits nStyle); SmShowSymbolSet(weld::DrawingArea* pDrawingArea, weld::ScrolledWindow* pScrolledWindow);
virtual ~SmShowSymbolSetWindow() override; void calccols(vcl::RenderContext& rRenderContext);
virtual void dispose() override;
void setScrollbar(ScrollBar *pVScrollBar);
void calccols();
void SelectSymbol(sal_uInt16 nSymbol); void SelectSymbol(sal_uInt16 nSymbol);
sal_uInt16 GetSelectSymbol() const { return nSelectSymbol; } sal_uInt16 GetSelectSymbol() const { return nSelectSymbol; }
void SetSymbolSet(const SymbolPtrVec_t& rSymbolSet); void SetSymbolSet(const SymbolPtrVec_t& rSymbolSet);
void SetSelectHdl(const Link<SmShowSymbolSetWindow&,void>& rLink) { aSelectHdlLink = rLink; } void SetSelectHdl(const Link<SmShowSymbolSet&,void>& rLink) { aSelectHdlLink = rLink; }
void SetDblClickHdl(const Link<SmShowSymbolSetWindow&,void>& rLink) { aDblClickHdlLink = rLink; } void SetDblClickHdl(const Link<SmShowSymbolSet&,void>& rLink) { aDblClickHdlLink = rLink; }
}; };
class SmShowSymbolSet : public VclHBox class SmShowSymbol
{ {
VclPtr<SmShowSymbolSetWindow> aSymbolWindow; private:
VclPtr<ScrollBar> aVScrollBar; Size m_aSize;
vcl::Font m_aFont;
public: OUString m_aText;
SmShowSymbolSet(vcl::Window *pParent); std::unique_ptr<weld::DrawingArea> m_xDrawingArea;
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); }
};
class SmShowSymbol : public Control
{
Link<SmShowSymbol&,void> aDblClickHdlLink; Link<SmShowSymbol&,void> aDblClickHdlLink;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override; DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void);
virtual void ApplySettings(vcl::RenderContext& rRenderContext) override; DECL_LINK(DoMouseButtonDown, const MouseEvent& rMEvt, void);
virtual void MouseButtonDown(const MouseEvent& rMEvt) override; DECL_LINK(DoResize, const Size& rSize, void);
virtual void Resize() override;
void setFontSize(vcl::Font &rFont) const; void setFontSize(vcl::Font &rFont) const;
public: public:
SmShowSymbol(vcl::Window *pParent, WinBits nStyle) SmShowSymbol(weld::DrawingArea* pDrawingArea);
: Control(pParent, nStyle)
{ 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 SetSymbol(const SmSym *pSymbol);
void SetDblClickHdl(const Link<SmShowSymbol&,void> &rLink) { aDblClickHdlLink = rLink; } void SetDblClickHdl(const Link<SmShowSymbol&,void> &rLink) { aDblClickHdlLink = rLink; }
}; };
class SmSymbolDialog : public weld::GenericDialogController
class SmSymbolDialog : public ModalDialog
{ {
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; SmViewShell &rViewSh;
SmSymbolManager &rSymbolMgr; SmSymbolManager &rSymbolMgr;
...@@ -351,30 +330,33 @@ class SmSymbolDialog : public ModalDialog ...@@ -351,30 +330,33 @@ class SmSymbolDialog : public ModalDialog
VclPtr<OutputDevice> pFontListDev; VclPtr<OutputDevice> pFontListDev;
DECL_LINK(SymbolSetChangeHdl, ListBox&, void); std::unique_ptr<weld::ComboBoxText> m_xSymbolSets;
DECL_LINK(SymbolChangeHdl, SmShowSymbolSetWindow&, void); 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(SymbolDblClickHdl, SmShowSymbol&, void);
DECL_LINK(SymbolDblClickHdl2, SmShowSymbolSetWindow&, void); DECL_LINK(SymbolDblClickHdl2, SmShowSymbolSet&, void);
DECL_LINK(EditClickHdl, Button*, void); DECL_LINK(EditClickHdl, weld::Button&, void);
DECL_LINK(GetClickHdl, Button*, void); DECL_LINK(GetClickHdl, weld::Button&, void);
void SymbolDblClickHdl(); void SymbolDblClickHdl();
void FillSymbolSets(); void FillSymbolSets();
const SmSym *GetSymbol() const; const SmSym *GetSymbol() const;
virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
public: public:
SmSymbolDialog(vcl::Window * pParent, OutputDevice *pFntListDevice, SmSymbolDialog(weld::Window* pParent, OutputDevice *pFntListDevice,
SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell); SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell);
virtual ~SmSymbolDialog() override; virtual ~SmSymbolDialog() override;
virtual void dispose() override;
bool SelectSymbolSet(const OUString &rSymbolSetName); bool SelectSymbolSet(const OUString &rSymbolSetName);
void SelectSymbol(sal_uInt16 nSymbolPos); void SelectSymbol(sal_uInt16 nSymbolPos);
}; };
class SmShowChar class SmShowChar
{ {
private: private:
......
This diff is collapsed.
...@@ -1798,7 +1798,8 @@ void SmViewShell::Execute(SfxRequest& rReq) ...@@ -1798,7 +1798,8 @@ void SmViewShell::Execute(SfxRequest& rReq)
SAL_WARN_IF( !pDev, "starmath", "device for font list missing" ); SAL_WARN_IF( !pDev, "starmath", "device for font list missing" );
SmModule *pp = SM_MOD(); 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; break;
} }
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
<!-- Generated with glade 3.20.4 --> <!-- Generated with glade 3.20.4 -->
<interface domain="sm"> <interface domain="sm">
<requires lib="gtk+" version="3.18"/> <requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkDialog" id="CatalogDialog"> <object class="GtkDialog" id="CatalogDialog">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="catalogdialog|CatalogDialog">Symbols</property> <property name="title" translatable="yes" context="catalogdialog|CatalogDialog">Symbols</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property> <property name="type_hint">dialog</property>
<child internal-child="vbox"> <child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox5"> <object class="GtkBox" id="dialog-vbox5">
...@@ -95,6 +95,7 @@ ...@@ -95,6 +95,7 @@
<property name="vexpand">True</property> <property name="vexpand">True</property>
<property name="row_spacing">6</property> <property name="row_spacing">6</property>
<property name="column_spacing">12</property> <property name="column_spacing">12</property>
<property name="column_homogeneous">True</property>
<child> <child>
<object class="GtkLabel" id="label1"> <object class="GtkLabel" id="label1">
<property name="visible">True</property> <property name="visible">True</property>
...@@ -120,39 +121,78 @@ ...@@ -120,39 +121,78 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="smlo-SmShowSymbolSet" id="symbolsetdisplay"> <object class="GtkLabel" id="symbolname">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">False</property>
<property name="receives_default">True</property> <property name="label" translatable="yes" context="catalogdialog|symbolname">Unknown</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
<property name="top_attach">2</property> <property name="top_attach">3</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="smlo-SmShowSymbol" id="preview:border"> <object class="GtkScrolledWindow" id="scrolledwindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">True</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<property name="vexpand">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> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">0</property>
<property name="top_attach">2</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkLabel" id="symbolname"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">True</property>
<property name="label" translatable="yes" context="catalogdialog|symbolname">Unknown</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> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">1</property>
<property name="top_attach">3</property> <property name="top_attach">2</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -174,7 +214,6 @@ ...@@ -174,7 +214,6 @@
</object> </object>
</child> </child>
<action-widgets> <action-widgets>
<action-widget response="0">edit</action-widget>
<action-widget response="-5">ok</action-widget> <action-widget response="-5">ok</action-widget>
<action-widget response="-7">close</action-widget> <action-widget response="-7">close</action-widget>
<action-widget response="-11">help</action-widget> <action-widget response="-11">help</action-widget>
...@@ -183,19 +222,4 @@ ...@@ -183,19 +222,4 @@
<placeholder/> <placeholder/>
</child> </child>
</object> </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> </interface>
...@@ -679,7 +679,7 @@ void SvxShowCharSet::RecalculateFont(vcl::RenderContext& rRenderContext) ...@@ -679,7 +679,7 @@ void SvxShowCharSet::RecalculateFont(vcl::RenderContext& rRenderContext)
nX = aSize.Width() / COLUMN_COUNT; nX = aSize.Width() / COLUMN_COUNT;
nY = aSize.Height() / ROW_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); mxScrollArea->vadjustment_configure(mxScrollArea->vadjustment_get_value(), 0, nLastRow, 1, ROW_COUNT - 1, ROW_COUNT);
// restore last selected unicode // 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