22#include <com/sun/star/ui/dialogs/FilePicker.hpp>
23#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
41 maButtonText(
SvlResId(STR_FILECTRL_BUTTONTEXT) ),
69 maEdit->SetStyle( (
maEdit->GetStyle() & ~nAlignmentStyle ) | ( nStyle & nAlignmentStyle ) );
77 nStyle &= ~WB_TABSTOP;
109 if (
nType == StateChangedType::Enable )
114 else if (
nType == StateChangedType::Zoom )
119 else if (
nType == StateChangedType::Style )
123 else if (
nType == StateChangedType::ControlFont )
132 else if (
nType == StateChangedType::ControlForeground )
137 else if (
nType == StateChangedType::ControlBackground )
142 Window::StateChanged(
nType );
157 ( nButtonTextWidth < aOutSz.
Width()/3 ) )
163 OUString aSmallText(
"..." );
165 nButtonTextWidth =
maButton->GetTextWidth( aSmallText );
187 maEdit->SetModifyHdl(rLink);
208 Reference < dialogs::XFilePicker3 > xFilePicker = dialogs::FilePicker::createWithMode( xContext, dialogs::TemplateDescription::FILEOPEN_SIMPLE );
210 OUString sSystemNotation = GetText(), sFileURL;
211 oslFileError nError = osl_getFileURLFromSystemPath( sSystemNotation.pData, &sFileURL.pData );
212 if ( nError == osl_File_E_INVAL )
213 sFileURL = GetText();
217 if ( osl_getSystemPathFromFileURL( sFileURL.pData, &aTmp.pData ) == osl_File_E_None )
220 xFilePicker->setDisplayDirectory( sFileURL );
223 if ( xFilePicker->execute() )
225 Sequence < OUString > aPathSeq = xFilePicker->getSelectedFiles();
227 if ( aPathSeq.hasElements() )
229 OUString aNewText = aPathSeq[0];
234 maEdit->GetModifyHdl().Call( *maEdit );
240 TOOLS_WARN_EXCEPTION(
"toolkit",
"FileControl::ImplBrowseFile: caught an exception while executing the file picker!" );
virtual void Draw(OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags) override
void SetText(const OUString &rStr) override
virtual void dispose() override
FileControl(vcl::Window *pParent, WinBits nStyle)
WinBits ImplInitStyle(WinBits nStyle)
void StateChanged(StateChangedType nType) override
OUString GetText() const override
void SetEditModifyHdl(const Link< Edit &, void > &rLink)
void Draw(OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags) override
virtual ~FileControl() override
FileControlMode_Internal mnInternalFlags
VclPtr< PushButton > maButton
OUString PathToFileName() const
INetProtocol GetProtocol() const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
void SetFontSize(const Size &)
void SetStyle(WinBits nStyle)
void SetControlForeground()
virtual void SetSizePixel(const Size &rNewSize)
const Color & GetControlForeground() const
void SetControlBackground()
const Fraction & GetZoom() const
vcl::Font GetControlFont() const
void SetZoom(const Fraction &rZoom)
virtual Size GetSizePixel() const
Size GetOutputSizePixel() const
const Color & GetControlBackground() const
void SetCompoundControl(bool bCompound)
#define TOOLS_WARN_EXCEPTION(area, stream)
virtual void SetText(const OUString &rStr) override
IMPL_LINK_NOARG(FileControl, ButtonHdl, Button *, void)
#define LINK(Instance, Class, Member)
sal_uInt16 GetFontSize(sal_uInt16 nPos)
Reference< XComponentContext > getProcessComponentContext()
SVL_DLLPUBLIC OUString SvlResId(TranslateId sContextAndId)
const tools::Long nButtonWidth
WinBits const WB_DIALOGCONTROL
WinBits const WB_NOTABSTOP
WinBits const WB_NOPOINTERFOCUS
WinBits const WB_NOLIGHTBORDER
WinBits const WB_NOBORDER