weld NavElementBox_Impl Item Window
Change-Id: I72a7cc6d60cb4149838933c3c57982ebefea458d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88677 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
@@ -106,7 +106,9 @@ public:
|
||||
|
||||
virtual void GetFocus() override
|
||||
{
|
||||
m_xWidget->grab_focus();
|
||||
if (m_xWidget)
|
||||
m_xWidget->grab_focus();
|
||||
InterimItemWindow::GetFocus();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -396,9 +398,9 @@ void FindTextFieldControl::set_entry_message_type(weld::EntryMessageType eType)
|
||||
|
||||
void FindTextFieldControl::GetFocus()
|
||||
{
|
||||
if (!m_xWidget)
|
||||
return;
|
||||
m_xWidget->grab_focus();
|
||||
if (m_xWidget)
|
||||
m_xWidget->grab_focus();
|
||||
InterimItemWindow::GetFocus();
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -114,6 +114,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/swriter,\
|
||||
sw/uiconfig/swriter/ui/columndialog \
|
||||
sw/uiconfig/swriter/ui/columnpage \
|
||||
sw/uiconfig/swriter/ui/columnwidth \
|
||||
sw/uiconfig/swriter/ui/combobox \
|
||||
sw/uiconfig/swriter/ui/comboboxfragment \
|
||||
sw/uiconfig/swriter/ui/conditionpage \
|
||||
sw/uiconfig/swriter/ui/converttexttable \
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
manual changes will be rewritten by the next run of update_pch.sh (which presumably
|
||||
also fixes all possible problems, so it's usually better to use it).
|
||||
|
||||
Generated on 2020-01-22 15:58:37 using:
|
||||
Generated on 2020-02-14 09:24:02 using:
|
||||
./bin/update_pch sw msword --cutoff=4 --exclude:system --include:module --include:local
|
||||
|
||||
If after updating build fails, use the following command to locate conflicting headers:
|
||||
@@ -128,6 +128,7 @@
|
||||
#include <vcl/outdev.hxx>
|
||||
#include <vcl/outdevmap.hxx>
|
||||
#include <vcl/outdevstate.hxx>
|
||||
#include <vcl/ptrstyle.hxx>
|
||||
#include <vcl/region.hxx>
|
||||
#include <vcl/salnativewidgets.hxx>
|
||||
#include <vcl/scopedbitmapaccess.hxx>
|
||||
@@ -181,12 +182,12 @@
|
||||
#include <com/sun/star/awt/SystemPointer.hpp>
|
||||
#include <com/sun/star/awt/XBitmap.hpp>
|
||||
#include <com/sun/star/beans/PropertyState.hpp>
|
||||
#include <com/sun/star/beans/PropertyValue.hpp>
|
||||
#include <com/sun/star/beans/XPropertySet.hpp>
|
||||
#include <com/sun/star/beans/XPropertyState.hpp>
|
||||
#include <com/sun/star/container/XEnumeration.hpp>
|
||||
#include <com/sun/star/container/XEnumerationAccess.hpp>
|
||||
#include <com/sun/star/container/XIndexReplace.hpp>
|
||||
#include <com/sun/star/container/XNameAccess.hpp>
|
||||
#include <com/sun/star/container/XNameContainer.hpp>
|
||||
#include <com/sun/star/datatransfer/XTransferable.hpp>
|
||||
#include <com/sun/star/document/EventObject.hpp>
|
||||
@@ -220,6 +221,7 @@
|
||||
#include <com/sun/star/i18n/reservedWords.hpp>
|
||||
#include <com/sun/star/lang/DisposedException.hpp>
|
||||
#include <com/sun/star/lang/EventObject.hpp>
|
||||
#include <com/sun/star/lang/IllegalArgumentException.hpp>
|
||||
#include <com/sun/star/lang/Locale.hpp>
|
||||
#include <com/sun/star/lang/XComponent.hpp>
|
||||
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
|
||||
@@ -227,6 +229,7 @@
|
||||
#include <com/sun/star/lang/XTypeProvider.hpp>
|
||||
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
||||
#include <com/sun/star/rdf/XDocumentMetadataAccess.hpp>
|
||||
#include <com/sun/star/style/LineSpacing.hpp>
|
||||
#include <com/sun/star/style/NumberingType.hpp>
|
||||
#include <com/sun/star/style/ParagraphAdjust.hpp>
|
||||
#include <com/sun/star/style/TabAlign.hpp>
|
||||
@@ -343,7 +346,8 @@
|
||||
#include <o3tl/strong_int.hxx>
|
||||
#include <o3tl/typed_flags_set.hxx>
|
||||
#include <o3tl/underlyingenumvalue.hxx>
|
||||
#include <ooo/vba/word/WdSaveFormat.hpp>
|
||||
#include <ooo/vba/XHelperInterface.hpp>
|
||||
#include <ooo/vba/word/XParagraphFormat.hpp>
|
||||
#include <oox/dllapi.h>
|
||||
#include <oox/drawingml/drawingmltypes.hxx>
|
||||
#include <oox/export/utils.hxx>
|
||||
@@ -485,6 +489,9 @@
|
||||
#include <unotools/transliterationwrapper.hxx>
|
||||
#include <unotools/ucbstreamhelper.hxx>
|
||||
#include <unotools/unotoolsdllapi.h>
|
||||
#include <vbahelper/vbadllapi.h>
|
||||
#include <vbahelper/vbahelper.hxx>
|
||||
#include <vbahelper/vbahelperinterface.hxx>
|
||||
#endif // PCH_LEVEL >= 3
|
||||
#if PCH_LEVEL >= 4
|
||||
#include <IDocumentDrawModelAccess.hxx>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
manual changes will be rewritten by the next run of update_pch.sh (which presumably
|
||||
also fixes all possible problems, so it's usually better to use it).
|
||||
|
||||
Generated on 2020-02-13 21:38:09 using:
|
||||
Generated on 2020-02-14 09:24:22 using:
|
||||
./bin/update_pch sw sw --cutoff=7 --exclude:system --exclude:module --include:local
|
||||
|
||||
If after updating build fails, use the following command to locate conflicting headers:
|
||||
@@ -68,9 +68,6 @@
|
||||
#include <rtl/math.hxx>
|
||||
#include <rtl/ref.hxx>
|
||||
#include <rtl/strbuf.hxx>
|
||||
#include <rtl/string.h>
|
||||
#include <rtl/stringconcat.hxx>
|
||||
#include <rtl/stringutils.hxx>
|
||||
#include <rtl/tencinfo.h>
|
||||
#include <rtl/textenc.h>
|
||||
#include <rtl/unload.h>
|
||||
@@ -93,9 +90,7 @@
|
||||
#include <vcl/commandevent.hxx>
|
||||
#include <vcl/ctrl.hxx>
|
||||
#include <vcl/dllapi.h>
|
||||
#include <vcl/dndhelp.hxx>
|
||||
#include <vcl/dockwin.hxx>
|
||||
#include <vcl/edit.hxx>
|
||||
#include <vcl/errcode.hxx>
|
||||
#include <vcl/errinf.hxx>
|
||||
#include <vcl/event.hxx>
|
||||
@@ -109,18 +104,14 @@
|
||||
#include <vcl/imapobj.hxx>
|
||||
#include <vcl/keycod.hxx>
|
||||
#include <vcl/lstbox.hxx>
|
||||
#include <vcl/menu.hxx>
|
||||
#include <vcl/metric.hxx>
|
||||
#include <vcl/outdev.hxx>
|
||||
#include <vcl/settings.hxx>
|
||||
#include <vcl/svapp.hxx>
|
||||
#include <vcl/textfilter.hxx>
|
||||
#include <vcl/toolbox.hxx>
|
||||
#include <vcl/transfer.hxx>
|
||||
#include <vcl/vclenum.hxx>
|
||||
#include <vcl/vclevent.hxx>
|
||||
#include <vcl/vclptr.hxx>
|
||||
#include <vcl/vclreferencebase.hxx>
|
||||
#include <vcl/virdev.hxx>
|
||||
#include <vcl/weld.hxx>
|
||||
#include <vcl/window.hxx>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
manual changes will be rewritten by the next run of update_pch.sh (which presumably
|
||||
also fixes all possible problems, so it's usually better to use it).
|
||||
|
||||
Generated on 2020-02-01 10:59:00 using:
|
||||
Generated on 2020-02-14 09:24:51 using:
|
||||
./bin/update_pch sw vbaswobj --cutoff=4 --exclude:system --include:module --include:local
|
||||
|
||||
If after updating build fails, use the following command to locate conflicting headers:
|
||||
@@ -193,7 +193,9 @@
|
||||
#include <com/sun/star/lang/XTypeProvider.hpp>
|
||||
#include <com/sun/star/lang/XUnoTunnel.hpp>
|
||||
#include <com/sun/star/rdf/XMetadatable.hpp>
|
||||
#include <com/sun/star/style/LineSpacing.hpp>
|
||||
#include <com/sun/star/style/NumberingType.hpp>
|
||||
#include <com/sun/star/style/ParagraphAdjust.hpp>
|
||||
#include <com/sun/star/style/XStyle.hpp>
|
||||
#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
|
||||
#include <com/sun/star/table/XCellRange.hpp>
|
||||
@@ -252,7 +254,7 @@
|
||||
#include <o3tl/underlyingenumvalue.hxx>
|
||||
#include <ooo/vba/XCollection.hpp>
|
||||
#include <ooo/vba/XHelperInterface.hpp>
|
||||
#include <ooo/vba/word/WdSaveFormat.hpp>
|
||||
#include <ooo/vba/word/XParagraphFormat.hpp>
|
||||
#include <sfx2/Metadatable.hxx>
|
||||
#include <sfx2/dllapi.h>
|
||||
#include <sfx2/shell.hxx>
|
||||
|
||||
@@ -36,8 +36,6 @@
|
||||
#include <cppuhelper/queryinterface.hxx>
|
||||
#include <cppuhelper/supportsservice.hxx>
|
||||
#include <vcl/event.hxx>
|
||||
#include <vcl/fixed.hxx>
|
||||
#include <vcl/lstbox.hxx>
|
||||
#include <vcl/settings.hxx>
|
||||
#include <rtl/ustring.hxx>
|
||||
#include <swabstdlg.hxx>
|
||||
@@ -605,25 +603,42 @@ class NavElementToolBoxControl : public svt::ToolboxController,
|
||||
VclPtr<NavElementBox_Impl> m_pBox;
|
||||
};
|
||||
|
||||
class NavElementBox_Impl : public ListBox
|
||||
class NavElementBox_Impl final : public InterimItemWindow
|
||||
{
|
||||
public:
|
||||
NavElementBox_Impl( vcl::Window* pParent,
|
||||
const uno::Reference< frame::XFrame >& _xFrame,
|
||||
NavElementToolBoxControl& rCtrl );
|
||||
NavElementBox_Impl(vcl::Window* pParent,
|
||||
const uno::Reference<frame::XFrame>& _xFrame,
|
||||
NavElementToolBoxControl& rCtrl);
|
||||
|
||||
virtual void dispose() override
|
||||
{
|
||||
m_xWidget.reset();
|
||||
InterimItemWindow::dispose();
|
||||
}
|
||||
|
||||
virtual void GetFocus() override
|
||||
{
|
||||
if (m_xWidget)
|
||||
m_xWidget->grab_focus();
|
||||
InterimItemWindow::GetFocus();
|
||||
}
|
||||
|
||||
virtual ~NavElementBox_Impl() override
|
||||
{
|
||||
disposeOnce();
|
||||
}
|
||||
|
||||
void Update();
|
||||
|
||||
virtual bool EventNotify( NotifyEvent& rNEvt ) override;
|
||||
|
||||
protected:
|
||||
virtual void Select() override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<weld::ComboBox> m_xWidget;
|
||||
NavElementToolBoxControl* m_pCtrl;
|
||||
bool m_bRelease;
|
||||
uno::Reference< frame::XFrame > m_xFrame;
|
||||
|
||||
DECL_LINK(SelectHdl, weld::ComboBox&, void);
|
||||
DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
|
||||
|
||||
void ReleaseFocus_Impl();
|
||||
};
|
||||
|
||||
@@ -632,19 +647,21 @@ private:
|
||||
NavElementBox_Impl::NavElementBox_Impl(
|
||||
vcl::Window* _pParent,
|
||||
const uno::Reference< frame::XFrame >& _xFrame,
|
||||
NavElementToolBoxControl& _rCtrl ) :
|
||||
|
||||
ListBox( _pParent, WinBits( WB_DROPDOWN ) ),
|
||||
|
||||
m_pCtrl ( &_rCtrl ),
|
||||
m_bRelease ( true ),
|
||||
m_xFrame ( _xFrame )
|
||||
NavElementToolBoxControl& _rCtrl )
|
||||
: InterimItemWindow(_pParent, "modules/swriter/ui/combobox.ui", "ComboBox")
|
||||
, m_xWidget(m_xBuilder->weld_combo_box("combobox"))
|
||||
, m_pCtrl(&_rCtrl)
|
||||
, m_bRelease(true)
|
||||
, m_xFrame(_xFrame)
|
||||
{
|
||||
SetSizePixel( Size( 150, 260 ) );
|
||||
m_xWidget->set_size_request(42, -1); // set to something small so the size set at the .ui takes precedence
|
||||
|
||||
sal_uInt16 i;
|
||||
for ( i = 0; i < NID_COUNT; i++ )
|
||||
InsertEntry( SwResId( aNavigationStrIds[i] ), Image( StockImage::Yes, aNavigationImgIds[i] ) );
|
||||
for (sal_uInt16 i = 0; i < NID_COUNT; ++i)
|
||||
m_xWidget->append("", SwResId(aNavigationStrIds[i]), aNavigationImgIds[i]);
|
||||
m_xWidget->connect_changed(LINK(this, NavElementBox_Impl, SelectHdl));
|
||||
m_xWidget->connect_key_press(LINK(this, NavElementBox_Impl, KeyInputHdl));
|
||||
|
||||
SetSizePixel(m_xContainer->get_preferred_size());
|
||||
}
|
||||
|
||||
void NavElementBox_Impl::ReleaseFocus_Impl()
|
||||
@@ -659,15 +676,13 @@ void NavElementBox_Impl::ReleaseFocus_Impl()
|
||||
m_xFrame->getContainerWindow()->setFocus();
|
||||
}
|
||||
|
||||
void NavElementBox_Impl::Select()
|
||||
IMPL_LINK(NavElementBox_Impl, SelectHdl, weld::ComboBox&, rComboBox, void)
|
||||
{
|
||||
ListBox::Select();
|
||||
|
||||
if ( !IsTravelSelect() )
|
||||
if (rComboBox.changed_by_direct_pick()) // only when picked from the list
|
||||
{
|
||||
SvxSearchDialogWrapper::SetSearchLabel( SearchLabel::Empty );
|
||||
|
||||
sal_uInt16 nPos = GetSelectedEntryPos();
|
||||
sal_uInt16 nPos = rComboBox.get_active();
|
||||
sal_uInt16 nMoveType = aNavigationInsertIds[nPos];
|
||||
SwView::SetMoveType( nMoveType );
|
||||
|
||||
@@ -691,43 +706,39 @@ void NavElementBox_Impl::Update()
|
||||
{
|
||||
const char* id = aNavigationStrIds[i];
|
||||
OUString sText = SwResId( id );
|
||||
SelectEntry( sText );
|
||||
m_xWidget->set_active_text(sText);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool NavElementBox_Impl::EventNotify( NotifyEvent& rNEvt )
|
||||
IMPL_LINK(NavElementBox_Impl, KeyInputHdl, const KeyEvent&, rKEvt, bool)
|
||||
{
|
||||
bool bHandled = false;
|
||||
|
||||
if ( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
|
||||
{
|
||||
vcl::KeyCode aKeyCode = rNEvt.GetKeyEvent()->GetKeyCode();
|
||||
sal_uInt16 nCode = aKeyCode.GetCode();
|
||||
sal_uInt16 nCode = rKEvt.GetKeyCode().GetCode();
|
||||
|
||||
switch ( nCode )
|
||||
switch ( nCode )
|
||||
{
|
||||
case KEY_TAB:
|
||||
{
|
||||
case KEY_TAB:
|
||||
{
|
||||
static_cast<ToolBox*>(GetParent())->ChangeHighlightUpDn( aKeyCode.IsShift() );
|
||||
m_bRelease = false;
|
||||
[[fallthrough]];
|
||||
}
|
||||
case KEY_RETURN:
|
||||
{
|
||||
bHandled = true;
|
||||
Select();
|
||||
break;
|
||||
}
|
||||
case KEY_ESCAPE:
|
||||
ReleaseFocus_Impl();
|
||||
bHandled = true;
|
||||
break;
|
||||
m_bRelease = false;
|
||||
SelectHdl(*m_xWidget);
|
||||
break;
|
||||
}
|
||||
case KEY_RETURN:
|
||||
{
|
||||
bHandled = true;
|
||||
SelectHdl(*m_xWidget);
|
||||
break;
|
||||
}
|
||||
case KEY_ESCAPE:
|
||||
ReleaseFocus_Impl();
|
||||
bHandled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
return bHandled || ListBox::EventNotify( rNEvt );
|
||||
return bHandled || ChildKeyInput(rKEvt);
|
||||
}
|
||||
|
||||
NavElementToolBoxControl::NavElementToolBoxControl( const uno::Reference< uno::XComponentContext >& rxContext )
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.22.1 -->
|
||||
<interface domain="sc">
|
||||
<requires lib="gtk+" version="3.18"/>
|
||||
<object class="GtkListStore" id="liststore4">
|
||||
<columns>
|
||||
<!-- column-name text -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name id -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name image -->
|
||||
<column type="GdkPixbuf"/>
|
||||
<!-- column-name surface -->
|
||||
<column type="CairoSurface"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkBox" id="ComboBox">
|
||||
<property name="width_request">150</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="combobox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="model">liststore4</property>
|
||||
<property name="entry_text_column">0</property>
|
||||
<property name="id_column">1</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext3"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf" id="cellrenderertext4"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -881,12 +881,10 @@ void ToolBox::SetItemBits( sal_uInt16 nItemId, ToolBoxItemBits nBits )
|
||||
|
||||
void ToolBox::SetItemWindowNonInteractive(sal_uInt16 nItemId, bool bNonInteractive)
|
||||
{
|
||||
fprintf(stderr, "attempt\n");
|
||||
ImplToolItems::size_type nPos = GetItemPos( nItemId );
|
||||
|
||||
if ( nPos < GetItemCount() )
|
||||
{
|
||||
fprintf(stderr, "success\n");
|
||||
mpData->m_aItems[nPos].mbNonInteractiveWindow = bNonInteractive;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user