summaryrefslogtreecommitdiff
path: root/fpicker/source/win32/filepicker/FileOpenDlg.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'fpicker/source/win32/filepicker/FileOpenDlg.hxx')
-rw-r--r--fpicker/source/win32/filepicker/FileOpenDlg.hxx293
1 files changed, 0 insertions, 293 deletions
diff --git a/fpicker/source/win32/filepicker/FileOpenDlg.hxx b/fpicker/source/win32/filepicker/FileOpenDlg.hxx
deleted file mode 100644
index 28b01da16ce2..000000000000
--- a/fpicker/source/win32/filepicker/FileOpenDlg.hxx
+++ /dev/null
@@ -1,293 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_FPICKER_SOURCE_WIN32_FILEPICKER_FILEOPENDLG_HXX
-#define INCLUDED_FPICKER_SOURCE_WIN32_FILEPICKER_FILEOPENDLG_HXX
-
-#include <sal/types.h>
-
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include "platform_xp.h"
-#include "getfilenamewrapper.hxx"
-
-// because we don't want to import the new W2k platform sdk
-// into our build environment if have stolen the definition
-// for the new OPENFILENAME structure from the new headers
-
-typedef struct {
- DWORD lStructSize;
- HWND hwndOwner;
- HINSTANCE hInstance;
- LPCSTR lpstrFilter;
- LPSTR lpstrCustomFilter;
- DWORD nMaxCustFilter;
- DWORD nFilterIndex;
- LPSTR lpstrFile;
- DWORD nMaxFile;
- LPSTR lpstrFileTitle;
- DWORD nMaxFileTitle;
- LPCSTR lpstrInitialDir;
- LPCSTR lpstrTitle;
- DWORD Flags;
- WORD nFileOffset;
- WORD nFileExtension;
- LPCSTR lpstrDefExt;
- LPARAM lCustData;
- LPOFNHOOKPROC lpfnHook;
- LPCSTR lpTemplateName;
-#ifdef _MAC
- LPEDITMENU lpEditInfo;
- LPCSTR lpstrPrompt;
-#endif
- void * pvReserved;
- DWORD dwReserved;
- DWORD FlagsEx;
-} OPENFILENAMEA_, *LPOPENFILENAMEA_;
-
-typedef struct {
- DWORD lStructSize;
- HWND hwndOwner;
- HINSTANCE hInstance;
- LPCWSTR lpstrFilter;
- LPWSTR lpstrCustomFilter;
- DWORD nMaxCustFilter;
- DWORD nFilterIndex;
- LPWSTR lpstrFile;
- DWORD nMaxFile;
- LPWSTR lpstrFileTitle;
- DWORD nMaxFileTitle;
- LPCWSTR lpstrInitialDir;
- LPCWSTR lpstrTitle;
- DWORD Flags;
- WORD nFileOffset;
- WORD nFileExtension;
- LPCWSTR lpstrDefExt;
- LPARAM lCustData;
- LPOFNHOOKPROC lpfnHook;
- LPCWSTR lpTemplateName;
- void * pvReserved;
- DWORD dwReserved;
- DWORD FlagsEx;
-} OPENFILENAMEW_, *LPOPENFILENAMEW_;
-
-#ifdef UNICODE
-typedef OPENFILENAMEW_ OPENFILENAME_;
-typedef LPOPENFILENAMEW_ LPOPENFILENAME_;
-#else
-typedef OPENFILENAMEA_ OPENFILENAME_;
-typedef LPOPENFILENAMEA_ LPOPENFILENAME_;
-#endif // UNICODE
-
-// A simple wrapper class around the Win32 GetOpenFileName API.
-// This class is not thread-safe and only one instance at a
-// time is allowed
-
-
-class CFileOpenDialog
-{
-public:
- // ctor
- // bFileOpenDialog indicates if we want a FileOpen or FileSave
- // dialog
- // dwFlags see OPENFILENAME
- // dwTemplateId - an ID for custom templates
- // hInstance - an instance handle for the module
- // which provides the custom template, unused if dwTemplateId
- // is 0
- CFileOpenDialog(
- bool bFileOpenDialog = true,
- sal_uInt32 dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
- sal_uInt32 dwTemplateId = 0,
- HINSTANCE hInstance = nullptr);
-
- virtual ~CFileOpenDialog();
-
- virtual void SAL_CALL setTitle(const OUString& aTitle);
-
- // to set a filter string using the M$ format
- // e.g. FltName\0*.txt;*.rtf\0...\0\0
- void SAL_CALL setFilter(const OUString& aFilter);
-
- // set the index of the current filter when the
- // dialog is about to shown, the index starts with 1
- // the function succeeded if the given filter index
- // is greater than zero and is a valid position
- // within filter string that was previously set
- bool SAL_CALL setFilterIndex(sal_uInt32 aIndex);
-
- // get the index of the currently selected filter
- // the index of the returned filter starts with 1
- sal_uInt32 SAL_CALL getSelectedFilterIndex() const;
-
- // set the name and optional the path of the
- // file that will be initially be shown when
- // the dialog will be displayed
- virtual void SAL_CALL setDefaultName(const OUString& aName);
-
- // set the initial directory
- virtual void SAL_CALL setDisplayDirectory(const OUString& aDirectory);
-
- // returns only the path of the selected file
- virtual OUString SAL_CALL getLastDisplayDirectory() const;
-
- // returns the full file name including drive letter, path
- // file name and file extension
- virtual OUString SAL_CALL getFullFileName() const;
-
- // returns the file name and the file extension without
- // drive letter and path
- OUString SAL_CALL getFileName() const;
-
- // returns the file extension of the selected file
- OUString SAL_CALL getFileExtension();
-
- // set a default extension, only the first three letters of
- // the given extension will be used; the given extension
- // should not contain a '.'
- void SAL_CALL setDefaultFileExtension(const OUString& aExtension);
-
- // enables or disables the multiselection mode for
- // the FileOpen/FileSave dialog
- void SAL_CALL setMultiSelectionMode(bool bMode);
-
- // returns whether multi-selection mode is enabled or not
- bool SAL_CALL getMultiSelectionMode() const;
-
- // shows the dialog, calls preModal before
- // showing the dialog and postModal after
- // showing the dialog
- // the method returns:
- // 0 - when the dialog was canceled by the user
- // 1 - when the dialog was closed with ok
- // -1 - when an error occurred
- sal_Int16 SAL_CALL doModal();
-
- // returns the last dialog error that occurred
- static sal_uInt32 SAL_CALL getLastDialogError();
-
- // retrievs the currently selected file
- // including path and drive information
- // can be called only if the dialog is
- // already displayed
- OUString SAL_CALL getCurrentFilePath() const;
-
- // retrievs the currently selected folder
- OUString SAL_CALL getCurrentFolderPath() const;
-
- // retrievs the currently selected file name
- // without drive and path
- OUString SAL_CALL getCurrentFileName() const;
-
-protected:
- // have to be overwritten when subclasses
- // want to do special pre- and post-modal
- // processing
-
- // if preModal return true processing will
- // continue else doModal exit without showing
- // a dialog and returns -1
- virtual bool SAL_CALL preModal();
-
- // post modal processing
- // the function should accept only values returned from
- // doModal and act appropriately
- virtual void SAL_CALL postModal(sal_Int16 nDialogResult);
-
- // message handler, to be overwritten by subclasses
- virtual sal_uInt32 SAL_CALL onShareViolation(const OUString& aPathName);
- virtual sal_uInt32 SAL_CALL onFileOk();
- virtual void SAL_CALL onSelChanged(HWND hwndListBox);
- virtual void SAL_CALL onHelp();
-
- // only called back if OFN_EXPLORER is set
- virtual void SAL_CALL onInitDone();
- virtual void SAL_CALL onFolderChanged();
- virtual void SAL_CALL onTypeChanged(sal_uInt32 nFilterIndex);
-
- virtual void SAL_CALL onInitDialog(HWND hwndDlg) = 0;
-
- virtual sal_uInt32 SAL_CALL onCtrlCommand(HWND hwndDlg, sal_uInt16 ctrlId, sal_uInt16 notifyCode);
-
- sal_uInt32 SAL_CALL onWMNotify(HWND hwndChild, LPOFNOTIFYW lpOfNotify);
-
- // we use non-virtual functions to do necessary work before
- // calling the virtual functions (see Gamma: Template method)
- void SAL_CALL handleInitDialog(HWND hwndDlg, HWND hwndChild);
-
-protected:
-
- // handle to the window of the
- // FileOpen/FileSave dialog
- // will be set on message
- // WM_INITDIALOG, before this
- // value is undefined
- HWND m_hwndFileOpenDlg;
- HWND m_hwndFileOpenDlgChild;
-
- OPENFILENAME_ m_ofn;
-
- // we connect the instance with the dialog window using
- // SetProp, with this function we can reconnect from
- // callback functions to this instance
- static CFileOpenDialog* SAL_CALL getCurrentInstance(HWND hwnd);
-
- void SAL_CALL centerPositionToParent() const;
-
-private:
- // FileOpen or FileSaveDialog
- bool m_bFileOpenDialog;
- OUString m_dialogTitle;
- OUString m_displayDirectory;
- OUString m_defaultExtension;
-
- mutable OUStringBuffer m_filterBuffer;
- mutable OUStringBuffer m_fileTitleBuffer;
- mutable OUStringBuffer m_helperBuffer;
- mutable OUStringBuffer m_fileNameBuffer;
-
- CGetFileNameWrapper m_GetFileNameWrapper;
-
- WNDPROC m_pfnBaseDlgProc;
-
- // callback function
- static UINT_PTR CALLBACK ofnHookProc(
- HWND hChildDlg, // handle to child dialog box
- UINT uiMsg, // message identifier
- WPARAM wParam, // message parameter
- LPARAM lParam // message parameter
- );
-
- // we have to subclass the dialog in order
- // to clean up the window property we are
- // using to connect the window with a class
- // instance in WM_NCDESTROY
- static LRESULT CALLBACK BaseDlgProc(
- HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam );
-
-private:
- // avoid copy and assignment
- CFileOpenDialog(const CFileOpenDialog&);
- CFileOpenDialog& operator=(const CFileOpenDialog&);
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */