summaryrefslogtreecommitdiff
path: root/fpicker/source/aqua
diff options
context:
space:
mode:
Diffstat (limited to 'fpicker/source/aqua')
-rw-r--r--fpicker/source/aqua/AquaFilePickerDelegate.hxx60
-rw-r--r--fpicker/source/aqua/AquaFilePickerDelegate.mm123
-rw-r--r--fpicker/source/aqua/CFStringUtilities.cxx124
-rw-r--r--fpicker/source/aqua/CFStringUtilities.hxx164
-rw-r--r--fpicker/source/aqua/ControlHelper.cxx1022
-rw-r--r--fpicker/source/aqua/ControlHelper.hxx199
-rw-r--r--fpicker/source/aqua/FPServiceInfo.hxx53
-rw-r--r--fpicker/source/aqua/FPentry.cxx114
-rw-r--r--fpicker/source/aqua/FilterHelper.cxx545
-rw-r--r--fpicker/source/aqua/FilterHelper.hxx139
-rw-r--r--fpicker/source/aqua/NSString_OOoAdditions.hxx46
-rw-r--r--fpicker/source/aqua/NSString_OOoAdditions.mm77
-rw-r--r--fpicker/source/aqua/NSURL_OOoAdditions.hxx51
-rw-r--r--fpicker/source/aqua/NSURL_OOoAdditions.mm112
-rw-r--r--fpicker/source/aqua/SalAquaConstants.h65
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.cxx809
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.hxx250
-rw-r--r--fpicker/source/aqua/SalAquaFolderPicker.cxx290
-rw-r--r--fpicker/source/aqua/SalAquaFolderPicker.hxx133
-rw-r--r--fpicker/source/aqua/SalAquaPicker.cxx265
-rw-r--r--fpicker/source/aqua/SalAquaPicker.hxx103
-rw-r--r--fpicker/source/aqua/fps_aqua.component37
-rw-r--r--fpicker/source/aqua/fps_aqua.xml78
-rw-r--r--fpicker/source/aqua/makefile.mk93
-rw-r--r--fpicker/source/aqua/resourceprovider.cxx239
-rw-r--r--fpicker/source/aqua/resourceprovider.hxx70
26 files changed, 0 insertions, 5261 deletions
diff --git a/fpicker/source/aqua/AquaFilePickerDelegate.hxx b/fpicker/source/aqua/AquaFilePickerDelegate.hxx
deleted file mode 100644
index e3afccb814..0000000000
--- a/fpicker/source/aqua/AquaFilePickerDelegate.hxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _AQUAFILEPICKERDELEGATE_HXX_
-#define _AQUAFILEPICKERDELEGATE_HXX_
-
-#include <premac.h>
-#include <Cocoa/Cocoa.h>
-#include <postmac.h>
-
-class SalAquaFilePicker;
-class FilterHelper;
-
-@interface AquaFilePickerDelegate : NSObject
-{
- SalAquaFilePicker* filePicker;
- FilterHelper* filterHelper;
-}
-
-- (id)initWithFilePicker:(SalAquaFilePicker*)fPicker;
-
-- (void)setFilterHelper:(FilterHelper*)filterHelper;
-
-- (BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename;
-- (void)panelSelectionDidChange:(id)sender;
-- (void)panel:(id)sender directoryDidChange:(NSString *)path;
-
-- (void)filterSelectedAtIndex:(id)sender;
-- (void)autoextensionChanged:(id)sender;
-
-@end
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/AquaFilePickerDelegate.mm b/fpicker/source/aqua/AquaFilePickerDelegate.mm
deleted file mode 100644
index d5c9062814..0000000000
--- a/fpicker/source/aqua/AquaFilePickerDelegate.mm
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <com/sun/star/uno/Any.hxx>
-
-#ifndef _SALAQUAFILEPICKER_HXX_
-#include "SalAquaFilePicker.hxx"
-#endif
-
-#ifndef _FILTERHELPER_HXX_
-#include "FilterHelper.hxx"
-#endif
-
-#include "AquaFilePickerDelegate.hxx"
-
-@implementation AquaFilePickerDelegate
-
-- (id)initWithFilePicker:(SalAquaFilePicker*)fPicker
-{
- if ((self = [super init])) {
- filePicker = fPicker;
- filterHelper = NULL;
- return self;
- }
- return nil;
-}
-
-- (void)setFilterHelper:(FilterHelper*)helper
-{
- filterHelper = helper;
-}
-
-#pragma mark NSSavePanel delegate methods
-
-- (BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename
-{
- if( filterHelper == NULL )
- return true;
- if( filename == nil )
- return false;
- return filterHelper->filenameMatchesFilter(filename);
-}
-
-- (void)panelSelectionDidChange:(id)sender
-{
- if (filePicker != NULL) {
- ::com::sun::star::ui::dialogs::FilePickerEvent evt;
- filePicker->fileSelectionChanged(evt);
- }
-}
-
-- (void)panel:(id)sender directoryDidChange:(NSString *)path
-{
- if (filePicker != NULL) {
- ::com::sun::star::ui::dialogs::FilePickerEvent evt;
- filePicker->directoryChanged(evt);
- }
-}
-
-
-#pragma mark UIActions
-- (void)filterSelectedAtIndex:(id)sender
-{
- if (sender == nil) {
- return;
- }
-
- if ([sender class] != [NSPopUpButton class]) {
- return;
- }
-
- if (filterHelper == NULL) {
- return;
- }
-
- NSPopUpButton *popup = (NSPopUpButton*)sender;
- unsigned int selectedIndex = [popup indexOfSelectedItem];
-
- filterHelper->SetFilterAtIndex(selectedIndex);
-
- filePicker->filterControlChanged();
-}
-
-- (void)autoextensionChanged:(id)sender
-{
- if (sender == nil) {
- return;
- }
-
- if ([sender class] != [NSButton class]) {
- return;
- }
- uno::Any aValue;
- aValue <<= ([((NSButton*)sender) state] == NSOnState);
-
- filePicker->setValue(::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION, 0, aValue);
-}
-
-@end
diff --git a/fpicker/source/aqua/CFStringUtilities.cxx b/fpicker/source/aqua/CFStringUtilities.cxx
deleted file mode 100644
index 06fa7fc949..0000000000
--- a/fpicker/source/aqua/CFStringUtilities.cxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <osl/diagnose.h>
-#include "CFStringUtilities.hxx"
-
-rtl::OUString CFStringToOUString(const CFStringRef sOrig) {
- //DBG_PRINT_ENTRY("CFStringUtilities", __func__, "sOrig", sOrig);
-
- if (NULL == sOrig) {
- return rtl::OUString();
- }
-
- CFRetain(sOrig);
- CFIndex nFileNameLength = CFStringGetLength(sOrig);
- //OSL_TRACE("FH: string length: %d", (int)(nFileNameLength));
- UniChar unichars[nFileNameLength+1];
- //'close' the string buffer correctly
- unichars[nFileNameLength] = '\0';
-
- CFStringGetCharacters (sOrig, CFRangeMake(0,nFileNameLength), unichars);
-
- //we no longer need the original string
- CFRelease(sOrig);
-
- //DBG_PRINT_EXIT("CFStringUtilities", __func__, unichars);
-
- return rtl::OUString(unichars);
-}
-
-CFStringRef CFStringCreateWithOUString(const rtl::OUString& aString) {
- //DBG_PRINT_ENTRY("CFStringUtilities", __func__);
-
- CFStringRef ref = CFStringCreateWithCharacters(kCFAllocatorDefault, aString.getStr(), aString.getLength());
-
- //DBG_PRINT_EXIT("CFStringUtilities", __func__, ref);
-
- return ref;
-}
-
-rtl::OUString FSRefToOUString(FSRef fsRef, InfoType info)
-{
- //DBG_PRINT_ENTRY("CFStringUtilities", __func__);
-
- CFURLRef aUrlRef = CFURLCreateFromFSRef(NULL, &fsRef);
-
- rtl::OUString sResult = CFURLRefToOUString(aUrlRef, info);
-
- //we no longer need the CFURLRef
- CFRelease(aUrlRef);
-
- //DBG_PRINT_EXIT("CFStringUtilities", __func__, OUStringToOString(sResult, RTL_TEXTENCODING_UTF8).getStr());
-
- return sResult;
-}
-
-rtl::OUString CFURLRefToOUString(CFURLRef aUrlRef, InfoType info)
-{
- //DBG_PRINT_ENTRY("CFStringUtilities", __func__);
-
- CFStringRef sURLString = NULL;
-
- switch(info) {
- case FULLPATH:
- OSL_TRACE("Extracting the full path of an item");
- sURLString = CFURLGetString(aUrlRef);
- CFRetain(sURLString);
- break;
- case FILENAME:
- OSL_TRACE("Extracting the file name of an item");
- CFStringRef fullString = CFURLGetString(aUrlRef);
- CFURLRef dirRef = CFURLCreateCopyDeletingLastPathComponent(NULL,aUrlRef);
- CFIndex dirLength = CFStringGetLength(CFURLGetString(dirRef));
- CFRelease(dirRef);
- CFIndex fullLength = CFStringGetLength(fullString);
- CFRange substringRange = CFRangeMake(dirLength, fullLength - dirLength);
- sURLString = CFStringCreateWithSubstring(NULL, fullString, substringRange);
- break;
- case PATHWITHOUTLASTCOMPONENT:
- OSL_TRACE("Extracting the last but one component of an item's path");
- CFURLRef directoryRef = CFURLCreateCopyDeletingLastPathComponent(NULL,aUrlRef);
- sURLString = CFURLGetString(directoryRef);
- CFRetain(sURLString);
- CFRelease(directoryRef);
- break;
- default:
- break;
- }
-
- rtl::OUString sResult = CFStringToOUString(sURLString);
-
- CFRelease(sURLString);
-
- //DBG_PRINT_EXIT("CFStringUtilities", __func__, OUStringToOString(sResult, RTL_TEXTENCODING_UTF8).getStr());
-
- return sResult;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/CFStringUtilities.hxx b/fpicker/source/aqua/CFStringUtilities.hxx
deleted file mode 100644
index 09f3dadcd2..0000000000
--- a/fpicker/source/aqua/CFStringUtilities.hxx
+++ /dev/null
@@ -1,164 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CFSTRINGUTILITIES_HXX_
-#define _CFSTRINGUTILITIES_HXX_
-
-#include <premac.h>
-#include <Carbon/Carbon.h>
-#include <Cocoa/Cocoa.h>
-#include <postmac.h>
-#include <rtl/ustring.hxx>
-#include <sal/types.h>
-#include <osl/diagnose.h>
-
-enum InfoType {
- FULLPATH,
- FILENAME,
- PATHWITHOUTLASTCOMPONENT
-};
-
-rtl::OUString CFStringToOUString(const CFStringRef sOrig);
-rtl::OUString FSRefToOUString(FSRef fsRef, InfoType info = FULLPATH);
-rtl::OUString CFURLRefToOUString(CFURLRef aUrlRef, InfoType info);
-CFStringRef CFStringCreateWithOUString(const rtl::OUString& aString);
-
-//debug utils
-#define PARAMFILLER "\n "
-
-inline void DBG_PRINT_ENTRY() {
- OSL_TRACE(">>> %s", __func__);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname) {
- OSL_TRACE(">>> %s::%s", classname, methodname);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1) {
- OSL_TRACE(">>> %s::%s%s%s = %s", classname, methodname, PARAMFILLER, param1, value1);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1) {
- OSL_TRACE(">>> %s::%s%s%s = %s", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr());
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const CFStringRef value1) {
- OSL_TRACE(">>> %s::%s%s%s =", classname, methodname, PARAMFILLER, param1);
-#if OSL_DEBUG_LEVEL > 1
- CFShow(value1);
-#endif
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const NSString* value1) {
- OSL_TRACE(">>> %s::%s%s%s =", classname, methodname, PARAMFILLER, param1);
-#if OSL_DEBUG_LEVEL > 1
- NSLog(value1);
-#endif
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1) {
- OSL_TRACE(">>> %s::%s%s%s = %d", classname, methodname, PARAMFILLER, param1, value1);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1, const char* param2, const int value2) {
- OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %d", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1, const char* param2, const char* value2) {
- OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %s", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const int value2) {
- OSL_TRACE(">>> %s::%s%s%s = %d%s%s = %d", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const char* value2) {
- OSL_TRACE(">>> %s::%s%s%s = %d%s%s = %s", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const CFStringRef value2) {
- OSL_TRACE(">>> %s::%s%s%s = %d%s%s =", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
-#if OSL_DEBUG_LEVEL > 1
- CFShow(value2);
-#endif
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const NSString* value2) {
- OSL_TRACE(">>> %s::%s%s%s = %d%s%s =", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2);
-#if OSL_DEBUG_LEVEL > 1
- NSLog(value2);
-#endif
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1, const char* param2, const rtl::OUString& value2) {
- OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %s", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr(), PARAMFILLER, param2, OUStringToOString(value2, RTL_TEXTENCODING_UTF8).getStr());
-}
-
-inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1, const char* param2, const int value2) {
- OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %d", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr(), PARAMFILLER, param2, value2);
-}
-
-//exit method debugs
-
-inline void DBG_PRINT_EXIT() {
- OSL_TRACE("<<< %s", __func__);
-}
-
-inline void DBG_PRINT_EXIT(const char * classname, const char * methodname) {
- OSL_TRACE("<<< %s::%s", classname, methodname);
-}
-
-inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const char* retVal) {
- OSL_TRACE("<<< %s::%s%sreturnValue = %s", classname, methodname, PARAMFILLER, retVal);
-}
-
-inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, int retVal) {
- OSL_TRACE("<<< %s::%s%sreturnValue = %d", classname, methodname, PARAMFILLER, retVal);
-}
-
-inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const CFStringRef retVal) {
- OSL_TRACE("<<< %s::%s%sreturnValue = ", classname, methodname, PARAMFILLER);
-#if OSL_DEBUG_LEVEL > 1
- CFShow(retVal);
-#endif
-}
-
-inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const NSString* retVal) {
- OSL_TRACE("<<< %s::%s%sreturnValue = ", classname, methodname, PARAMFILLER);
-#if OSL_DEBUG_LEVEL > 1
- NSLog(retVal);
-#endif
-}
-
-inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const rtl::OUString& retVal) {
- OSL_TRACE("<<< %s::%s%sreturnValue = %s", classname, methodname, PARAMFILLER, OUStringToOString(retVal, RTL_TEXTENCODING_UTF8).getStr());
-}
-
-#endif //_CFSTRINGUTILITIES_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/ControlHelper.cxx b/fpicker/source/aqua/ControlHelper.cxx
deleted file mode 100644
index de224e3191..0000000000
--- a/fpicker/source/aqua/ControlHelper.cxx
+++ /dev/null
@@ -1,1022 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ControlActions.hpp>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include "CFStringUtilities.hxx"
-#include "resourceprovider.hxx"
-#include "NSString_OOoAdditions.hxx"
-
-#include "ControlHelper.hxx"
-
-#pragma mark DEFINES
-#define CLASS_NAME "ControlHelper"
-#define POPUP_WIDTH_MIN 200
-#define POPUP_WIDTH_MAX 350
-
-using namespace ::com::sun::star::ui::dialogs;
-using namespace ::com::sun::star::ui::dialogs::TemplateDescription;
-using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
-using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
-using namespace ::rtl;
-
-#pragma mark Constructor / Destructor
-//------------------------------------------------------------------------------------
-// Constructor / Destructor
-//------------------------------------------------------------------------------------
-ControlHelper::ControlHelper()
-: m_pUserPane(NULL)
-, m_pFilterControl(nil)
-, m_bUserPaneNeeded( false )
-, m_bIsUserPaneLaidOut(false)
-, m_bIsFilterControlNeeded(false)
-, m_pFilterHelper(NULL)
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- int i;
-
- for( i = 0; i < TOGGLE_LAST; i++ ) {
- m_bToggleVisibility[i] = false;
- }
-
- for( i = 0; i < LIST_LAST; i++ ) {
- m_bListVisibility[i] = false;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-ControlHelper::~ControlHelper()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
-
- if (NULL != m_pUserPane) {
- [m_pUserPane release];
- }
-
- for(std::list<NSControl *>::iterator control = m_aActiveControls.begin(); control != m_aActiveControls.end(); ++control) {
- NSControl* pControl = (*control);
- NSString* sLabelName = m_aMapListLabels[pControl];
- if (sLabelName != nil) {
- [sLabelName release];
- }
- if ([pControl class] == [NSPopUpButton class]) {
- NSTextField* pField = m_aMapListLabelFields[(NSPopUpButton*)pControl];
- if (pField != nil) {
- [pField release];
- }
- }
- [pControl release];
- }
-
- if (m_pFilterControl != NULL) {
- [m_pFilterControl setTarget:nil];
- }
-
- [pool release];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XInitialization delegate
-//------------------------------------------------
-// XInitialization delegate
-//------------------------------------------------
-void ControlHelper::initialize( sal_Int16 nTemplateId )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "templateId", nTemplateId);
-
- switch( nTemplateId )
- {
- case FILESAVE_AUTOEXTENSION_PASSWORD:
- m_bToggleVisibility[AUTOEXTENSION] = true;
- m_bToggleVisibility[PASSWORD] = true;
- break;
- case FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS:
- m_bToggleVisibility[AUTOEXTENSION] = true;
- m_bToggleVisibility[PASSWORD] = true;
- m_bToggleVisibility[FILTEROPTIONS] = true;
- break;
- case FILESAVE_AUTOEXTENSION_SELECTION:
- m_bToggleVisibility[AUTOEXTENSION] = true;
- m_bToggleVisibility[SELECTION] = true;
- break;
- case FILESAVE_AUTOEXTENSION_TEMPLATE:
- m_bToggleVisibility[AUTOEXTENSION] = true;
- m_bListVisibility[TEMPLATE] = true;
- break;
- case FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE:
- m_bToggleVisibility[LINK] = true;
- m_bToggleVisibility[PREVIEW] = true;
- m_bListVisibility[IMAGE_TEMPLATE] = true;
- break;
- case FILEOPEN_READONLY_VERSION:
- m_bToggleVisibility[READONLY] = true;
- m_bListVisibility[VERSION] = true;
- break;
- case FILEOPEN_LINK_PREVIEW:
- m_bToggleVisibility[LINK] = true;
- m_bToggleVisibility[PREVIEW] = true;
- break;
- case FILESAVE_AUTOEXTENSION:
- m_bToggleVisibility[AUTOEXTENSION] = true;
- break;
- }
-
- createControls();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XFilePickerControlAccess delegates
-//------------------------------------------------------------------------------------
-// XFilePickerControlAccess functions
-//------------------------------------------------------------------------------------
-
-void ControlHelper::enableControl( const sal_Int16 nControlId, const sal_Bool bEnable ) const
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "enable", bEnable);
-
- SolarMutexGuard aGuard;
-
- if (nControlId == ExtendedFilePickerElementIds::CHECKBOX_PREVIEW) {
- OSL_TRACE(" preview checkbox cannot be changed");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- NSControl* pControl = getControl(nControlId);
-
- if( pControl != nil ) {
- if( bEnable ) {
- OSL_TRACE( "enable" );
- } else {
- OSL_TRACE( "disable" );
- }
- [pControl setEnabled:bEnable];
- } else {
- OSL_TRACE("enable unknown control %d", nControlId );
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-OUString ControlHelper::getLabel( sal_Int16 nControlId )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId);
-
- SolarMutexGuard aGuard;
-
- NSControl* pControl = getControl( nControlId );
-
- if( pControl == nil ) {
- OSL_TRACE("Get label for unknown control %d", nControlId);
- return OUString();
- }
-
- rtl::OUString retVal;
- if ([pControl class] == [NSPopUpButton class]) {
- NSString *temp = m_aMapListLabels[pControl];
- if (temp != nil)
- retVal = [temp OUString];
- }
- else {
- NSString* sLabel = [[pControl cell] title];
- retVal = [sLabel OUString];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
-
- return retVal;
-}
-
-void ControlHelper::setLabel( sal_Int16 nControlId, const NSString* aLabel )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "label", aLabel);
-
- SolarMutexGuard aGuard;
-
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
-
- NSControl* pControl = getControl(nControlId);
-
- if (nil != pControl) {
- if ([pControl class] == [NSPopUpButton class]) {
- NSString *sOldName = m_aMapListLabels[pControl];
- if (sOldName != NULL && sOldName != aLabel) {
- [sOldName release];
- }
-
- m_aMapListLabels[pControl] = [aLabel retain];
- } else if ([pControl class] == [NSButton class]) {
- [[pControl cell] setTitle:aLabel];
- }
- } else {
- OSL_TRACE("Control not found to set label for");
- }
-
- layoutControls();
-
- [pool release];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void ControlHelper::setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const uno::Any& rValue )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "controlAction", nControlAction);
-
- SolarMutexGuard aGuard;
-
- if (nControlId == ExtendedFilePickerElementIds::CHECKBOX_PREVIEW) {
- OSL_TRACE(" value for preview is unchangeable");
- }
- else {
- NSControl* pControl = getControl( nControlId );
-
- if( pControl == nil ) {
- OSL_TRACE("enable unknown control %d", nControlId);
- } else {
- if( [pControl class] == [NSPopUpButton class] ) {
- HandleSetListValue(pControl, nControlAction, rValue);
- } else if( [pControl class] == [NSButton class] ) {
- sal_Bool bChecked = false;
- rValue >>= bChecked;
- OSL_TRACE(" value is a bool: %d", bChecked);
- [(NSButton*)pControl setState:(bChecked ? NSOnState : NSOffState)];
- } else
- {
- OSL_TRACE("Can't set value on button / list %d %d",
- nControlId, nControlAction);
- }
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-uno::Any ControlHelper::getValue( sal_Int16 nControlId, sal_Int16 nControlAction ) const
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId, "controlAction", nControlAction);
-
- SolarMutexGuard aGuard;
- uno::Any aRetval;
-
- NSControl* pControl = getControl( nControlId );
-
- if( pControl == nil ) {
- OSL_TRACE("get value for unknown control %d", nControlId);
- aRetval <<= sal_True;
- } else {
- if( [pControl class] == [NSPopUpButton class] ) {
- aRetval = HandleGetListValue(pControl, nControlAction);
- } else if( [pControl class] == [NSButton class] ) {
- //NSLog(@"control: %@", [[pControl cell] title]);
- sal_Bool bValue = [(NSButton*)pControl state] == NSOnState ? sal_True : sal_False;
- aRetval <<= bValue;
- OSL_TRACE("value is a bool (checkbox): %d", bValue);
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return aRetval;
-}
-
-void ControlHelper::createUserPane()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (m_bUserPaneNeeded == false) {
- OSL_TRACE("no user pane needed");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- if (nil != m_pUserPane) {
- OSL_TRACE("user pane already exists");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- if (m_bIsFilterControlNeeded == true && m_pFilterControl == nil) {
- createFilterControl();
- }
-
- NSRect minRect = NSMakeRect(0,0,300,33);
- m_pUserPane = [[NSView alloc] initWithFrame:minRect];
-
- int currentHeight = kAquaSpaceBoxFrameViewDiffTop + kAquaSpaceBoxFrameViewDiffBottom;
- int currentWidth = 300;
-
- sal_Bool bPopupControlPresent = NO;
- sal_Bool bButtonControlPresent = NO;
-
- int nCheckboxMaxWidth = 0;
- int nPopupMaxWidth = 0;
- int nPopupLabelMaxWidth = 0;
-
- for (::std::list<NSControl*>::iterator child = m_aActiveControls.begin(); child != m_aActiveControls.end(); child++) {
- OSL_TRACE("currentHeight: %d", currentHeight);
-
- NSControl* pControl = *child;
-
- //let the control calculate its size
- [pControl sizeToFit];
-
- NSRect frame = [pControl frame];
- OSL_TRACE("frame for control %s is {%f, %f, %f, %f}", [[pControl description] UTF8String], frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
-
- int nControlHeight = frame.size.height;
- int nControlWidth = frame.size.width;
-
- // Note: controls are grouped by kind, first all popup menus, then checkboxes
- if ([pControl class] == [NSPopUpButton class]) {
- if (bPopupControlPresent == YES) {
- //this is not the first popup
- currentHeight += kAquaSpaceBetweenPopupMenus;
- }
- else if (child != m_aActiveControls.begin()){
- currentHeight += kAquaSpaceBetweenControls;
- }
-
- bPopupControlPresent = YES;
-
- // we have to add the label text width
- NSString *label = m_aMapListLabels[pControl];
-
- NSTextField *textField = createLabelWithString(label);
- [textField sizeToFit];
- m_aMapListLabelFields[(NSPopUpButton*)pControl] = textField;
- [m_pUserPane addSubview:textField];
-
- NSRect tfRect = [textField frame];
- OSL_TRACE("frame for textfield %s is {%f, %f, %f, %f}", [[textField description] UTF8String], tfRect.origin.x, tfRect.origin.y, tfRect.size.width, tfRect.size.height);
-
- int tfWidth = tfRect.size.width;
-
- if (nPopupLabelMaxWidth < tfWidth) {
- nPopupLabelMaxWidth = tfWidth;
- }
-
- frame.origin.x += (kAquaSpaceBetweenControls - kAquaSpaceLabelFrameBoundsDiffH - kAquaSpacePopupMenuFrameBoundsDiffLeft) + tfWidth;
-
- if (nControlWidth < POPUP_WIDTH_MIN) {
- nControlWidth = POPUP_WIDTH_MIN;
- frame.size.width = nControlWidth;
- [pControl setFrame:frame];
- }
-
- if (nControlWidth > POPUP_WIDTH_MAX) {
- nControlWidth = POPUP_WIDTH_MAX;
- frame.size.width = nControlWidth;
- [pControl setFrame:frame];
- }
-
- //set the max size
- if (nPopupMaxWidth < nControlWidth) {
- nPopupMaxWidth = nControlWidth;
- }
-
- nControlWidth += tfWidth + kAquaSpaceBetweenControls - kAquaSpaceLabelFrameBoundsDiffH - kAquaSpacePopupMenuFrameBoundsDiffLeft;
- if (nControlHeight < kAquaPopupButtonDefaultHeight) {
- //maybe the popup has no menu item yet, so set a default height
- nControlHeight = kAquaPopupButtonDefaultHeight;
- }
-
- nControlHeight -= kAquaSpacePopupMenuFrameBoundsDiffV;
- }
- else if ([pControl class] == [NSButton class]) {
- if (child != m_aActiveControls.begin()){
- currentHeight += kAquaSpaceBetweenControls;
- }
-
- if (nCheckboxMaxWidth < nControlWidth) {
- nCheckboxMaxWidth = nControlWidth;
- }
-
- bButtonControlPresent = YES;
- nControlWidth -= 2 * kAquaSpaceSwitchButtonFrameBoundsDiff;
- nControlHeight -= 2 * kAquaSpaceSwitchButtonFrameBoundsDiff;
- }
-
- // if ((nControlWidth + 2 * kAquaSpaceInsideGroupH) > currentWidth) {
- // currentWidth = nControlWidth + 2 * kAquaSpaceInsideGroupH;
- // }
-
- currentHeight += nControlHeight;
-
- [m_pUserPane addSubview:pControl];
- }
-
- OSL_TRACE("height after adding all controls: %d", currentHeight);
-
- if (bPopupControlPresent && bButtonControlPresent)
- {
- //after a popup button (array) and before a different kind of control we need some extra space instead of the standard
- currentHeight -= kAquaSpaceBetweenControls;
- currentHeight += kAquaSpaceAfterPopupButtonsV;
- OSL_TRACE("popup extra space added, currentHeight: %d", currentHeight);
- }
-
- int nLongestPopupWidth = nPopupMaxWidth + nPopupLabelMaxWidth + kAquaSpaceBetweenControls - kAquaSpacePopupMenuFrameBoundsDiffLeft - kAquaSpaceLabelFrameBoundsDiffH;
-
- currentWidth = nLongestPopupWidth > nCheckboxMaxWidth ? nLongestPopupWidth : nCheckboxMaxWidth;
- OSL_TRACE("longest control width: %d", currentWidth);
-
- currentWidth += 2* kAquaSpaceInsideGroupH;
-
- if (currentWidth < minRect.size.width)
- currentWidth = minRect.size.width;
-
- if (currentHeight < minRect.size.height)
- currentHeight = minRect.size.height;
-
- NSRect upRect = NSMakeRect(0, 0, currentWidth, currentHeight );
- OSL_TRACE("setting user pane rect to {%f, %f, %f, %f}",upRect.origin.x, upRect.origin.y, upRect.size.width, upRect.size.height);
-
- [m_pUserPane setFrame:upRect];
-
- layoutControls();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark Private / Misc
-//------------------------------------------------------------------------------------
-// Private / Misc
-//------------------------------------------------------------------------------------
-void ControlHelper::createControls()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- CResourceProvider aResProvider;
- for (int i = 0; i < LIST_LAST; i++) {
- if (true == m_bListVisibility[i]) {
- m_bUserPaneNeeded = true;
-
- int elementName = getControlElementName([NSPopUpButton class], i);
- NSString* sLabel = aResProvider.getResString(elementName);
-
- m_pListControls[i] = [NSPopUpButton new];
-
-#define MAP_LIST_( elem ) \
- case elem: \
- setLabel(ExtendedFilePickerElementIds::LISTBOX_##elem, sLabel); \
- break
-
- switch(i) {
- MAP_LIST_(VERSION);
- MAP_LIST_(TEMPLATE);
- MAP_LIST_(IMAGE_TEMPLATE);
- }
-
- m_aActiveControls.push_back(m_pListControls[i]);
- } else {
- m_pListControls[i] = nil;
- }
- }
-
- for (int i = 0/*#i102102*/; i < TOGGLE_LAST; i++) {
- if (true == m_bToggleVisibility[i]) {
- m_bUserPaneNeeded = true;
-
- int elementName = getControlElementName([NSButton class], i);
- NSString* sLabel = aResProvider.getResString(elementName);
-
- NSButton *button = [NSButton new];
- [button setTitle:sLabel];
-
- [button setButtonType:NSSwitchButton];
-
- [button setState:NSOffState];
-
- if (i == AUTOEXTENSION) {
- [button setTarget:m_pDelegate];
- [button setAction:@selector(autoextensionChanged:)];
- }
-
- m_pToggles[i] = button;
-
- m_aActiveControls.push_back(m_pToggles[i]);
- } else {
- m_pToggles[i] = nil;
- }
- }
-
- //preview is always on with Mac OS X
- NSControl *pPreviewBox = m_pToggles[PREVIEW];
- if (pPreviewBox != nil) {
- [pPreviewBox setEnabled:NO];
- [(NSButton*)pPreviewBox setState:NSOnState];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#define TOGGLE_ELEMENT( elem ) \
-case elem: \
- nReturn = CHECKBOX_##elem; \
- DBG_PRINT_EXIT(CLASS_NAME, __func__, nReturn); \
- return nReturn
-#define LIST_ELEMENT( elem ) \
-case elem: \
- nReturn = LISTBOX_##elem##_LABEL; \
- DBG_PRINT_EXIT(CLASS_NAME, __func__, nReturn); \
- return nReturn
-
-int ControlHelper::getControlElementName(const Class aClazz, const int nControlId) const
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "aClazz", [[aClazz description] UTF8String], "controlId", nControlId);
-
- int nReturn = -1;
- if (aClazz == [NSButton class])
- {
- switch (nControlId) {
- TOGGLE_ELEMENT( AUTOEXTENSION );
- TOGGLE_ELEMENT( PASSWORD );
- TOGGLE_ELEMENT( FILTEROPTIONS );
- TOGGLE_ELEMENT( READONLY );
- TOGGLE_ELEMENT( LINK );
- TOGGLE_ELEMENT( PREVIEW );
- TOGGLE_ELEMENT( SELECTION );
- }
- }
- else if (aClazz == [NSPopUpButton class])
- {
- switch (nControlId) {
- LIST_ELEMENT( VERSION );
- LIST_ELEMENT( TEMPLATE );
- LIST_ELEMENT( IMAGE_TEMPLATE );
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, nReturn);
-
- return nReturn;
-}
-
-void ControlHelper::HandleSetListValue(const NSControl* pControl, const sal_Int16 nControlAction, const uno::Any& rValue)
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlAction", nControlAction);
-
- if ([pControl class] != [NSPopUpButton class]) {
- OSL_TRACE("not a popup menu");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- NSPopUpButton *pButton = (NSPopUpButton*)pControl;
- NSMenu *rMenu = [pButton menu];
- if (nil == rMenu) {
- OSL_TRACE("button has no menu");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- switch (nControlAction)
- {
- case ControlActions::ADD_ITEM:
- {
- OSL_TRACE("ADD_ITEMS");
- OUString sItem;
- rValue >>= sItem;
-
- NSString* sCFItem = [NSString stringWithOUString:sItem];
- OSL_TRACE("Adding menu item: %s", OUStringToOString(sItem, RTL_TEXTENCODING_UTF8).getStr());
- [pButton addItemWithTitle:sCFItem];
- }
- break;
- case ControlActions::ADD_ITEMS:
- {
- OSL_TRACE("ADD_ITEMS");
- uno::Sequence< OUString > aStringList;
- rValue >>= aStringList;
- sal_Int32 nItemCount = aStringList.getLength();
- for (sal_Int32 i = 0; i < nItemCount; ++i)
- {
- NSString* sCFItem = [NSString stringWithOUString:aStringList[i]];
- OSL_TRACE("Adding menu item: %s", OUStringToOString(aStringList[i], RTL_TEXTENCODING_UTF8).getStr());
- [pButton addItemWithTitle:sCFItem];
- }
- }
- break;
- case ControlActions::DELETE_ITEM:
- {
- OSL_TRACE("DELETE_ITEM");
- sal_Int32 nPos = -1;
- rValue >>= nPos;
- OSL_TRACE("Deleting item at position %d", (nPos));
- [rMenu removeItemAtIndex:nPos];
- }
- break;
- case ControlActions::DELETE_ITEMS:
- {
- OSL_TRACE("DELETE_ITEMS");
- int nItems = [rMenu numberOfItems];
- if (nItems == 0) {
- OSL_TRACE("no menu items to delete");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
- for(sal_Int32 i = 0; i < nItems; i++) {
- [rMenu removeItemAtIndex:i];
- }
- }
- break;
- case ControlActions::SET_SELECT_ITEM:
- {
- sal_Int32 nPos = -1;
- rValue >>= nPos;
- OSL_TRACE("Selecting item at position %d", nPos);
- [pButton selectItemAtIndex:nPos];
- }
- break;
- default:
- OSL_TRACE("undocumented/unimplemented ControlAction for a list");
- break;
- }
-
- layoutControls();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-
-uno::Any ControlHelper::HandleGetListValue(const NSControl* pControl, const sal_Int16 nControlAction) const
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlAction", nControlAction);
-
- uno::Any aAny;
-
- if ([pControl class] != [NSPopUpButton class]) {
- OSL_TRACE("not a popup button");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return aAny;
- }
-
- NSPopUpButton *pButton = (NSPopUpButton*)pControl;
- NSMenu *rMenu = [pButton menu];
- if (nil == rMenu) {
- OSL_TRACE("button has no menu");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return aAny;
- }
-
- switch (nControlAction)
- {
- case ControlActions::GET_ITEMS:
- {
- OSL_TRACE("GET_ITEMS");
- uno::Sequence< OUString > aItemList;
-
- int nItems = [rMenu numberOfItems];
- if (nItems > 0) {
- aItemList.realloc(nItems);
- }
- for (int i = 0; i < nItems; i++) {
- NSString* sCFItem = [pButton itemTitleAtIndex:i];
- if (nil != sCFItem) {
- aItemList[i] = [sCFItem OUString];
- OSL_TRACE("Return value[%d]: %s", (i - 1), OUStringToOString(aItemList[i - 1], RTL_TEXTENCODING_UTF8).getStr());
- }
- }
-
- aAny <<= aItemList;
- }
- break;
- case ControlActions::GET_SELECTED_ITEM:
- {
- OSL_TRACE("GET_SELECTED_ITEM");
- NSString* sCFItem = [pButton titleOfSelectedItem];
- if (nil != sCFItem) {
- OUString sString = [sCFItem OUString];
- OSL_TRACE("Return value: %s", OUStringToOString(sString, RTL_TEXTENCODING_UTF8).getStr());
- aAny <<= sString;
- }
- }
- break;
- case ControlActions::GET_SELECTED_ITEM_INDEX:
- {
- OSL_TRACE("GET_SELECTED_ITEM_INDEX");
- sal_Int32 nActive = [pButton indexOfSelectedItem];
- OSL_TRACE("Return value: %d", nActive);
- aAny <<= nActive;
- }
- break;
- default:
- OSL_TRACE("undocumented/unimplemented ControlAction for a list");
- break;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return aAny;
-}
-
-
-// cf. offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl
-NSControl* ControlHelper::getControl( const sal_Int16 nControlId ) const
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "controlId", nControlId);
-
- NSControl* pWidget = nil;
-
-#define MAP_TOGGLE( elem ) \
-case ExtendedFilePickerElementIds::CHECKBOX_##elem: \
- pWidget = m_pToggles[elem]; \
- break
-
-#define MAP_BUTTON( elem ) \
-case ExtendedFilePickerElementIds::PUSHBUTTON_##elem: \
- pWidget = m_pButtons[elem]; \
- break
-
-#define MAP_LIST( elem ) \
-case ExtendedFilePickerElementIds::LISTBOX_##elem: \
- pWidget = m_pListControls[elem]; \
- break
-
-#define MAP_LIST_LABEL( elem ) \
-case ExtendedFilePickerElementIds::LISTBOX_##elem##_LABEL: \
- pWidget = m_pListControls[elem]; \
- break
-
- switch( nControlId )
- {
- MAP_TOGGLE( AUTOEXTENSION );
- MAP_TOGGLE( PASSWORD );
- MAP_TOGGLE( FILTEROPTIONS );
- MAP_TOGGLE( READONLY );
- MAP_TOGGLE( LINK );
- MAP_TOGGLE( PREVIEW );
- MAP_TOGGLE( SELECTION );
- //MAP_BUTTON( PLAY );
- MAP_LIST( VERSION );
- MAP_LIST( TEMPLATE );
- MAP_LIST( IMAGE_TEMPLATE );
- MAP_LIST_LABEL( VERSION );
- MAP_LIST_LABEL( TEMPLATE );
- MAP_LIST_LABEL( IMAGE_TEMPLATE );
- default:
- OSL_TRACE("Handle unknown control %d", nControlId);
- break;
- }
-#undef MAP
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return pWidget;
-}
-
-void ControlHelper::layoutControls()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- if (nil == m_pUserPane) {
- OSL_TRACE("no user pane to layout");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- if (m_bIsUserPaneLaidOut == true) {
- OSL_TRACE("user pane already laid out");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- NSRect userPaneRect = [m_pUserPane frame];
- OSL_TRACE("userPane frame: {%f, %f, %f, %f}",userPaneRect.origin.x, userPaneRect.origin.y, userPaneRect.size.width, userPaneRect.size.height);
-
- int nUsableWidth = userPaneRect.size.width;
-
- //NOTE: NSView's coordinate system starts in the lower left hand corner but we start adding controls from the top,
- // so we subtract from the vertical position as we make our way down the pane.
- int currenttop = userPaneRect.size.height;
- int nCheckboxMaxWidth = 0;
- int nPopupMaxWidth = 0;
- int nPopupLabelMaxWidth = 0;
-
- //first loop to determine max sizes
- for (::std::list<NSControl*>::iterator child = m_aActiveControls.begin(); child != m_aActiveControls.end(); child++) {
- NSControl* pControl = *child;
-
- NSRect controlRect = [pControl frame];
- int nControlWidth = controlRect.size.width;
-
- Class aSubType = [pControl class];
- if (aSubType == [NSPopUpButton class]) {
- if (nPopupMaxWidth < nControlWidth) {
- nPopupMaxWidth = nControlWidth;
- }
- NSTextField *label = m_aMapListLabelFields[(NSPopUpButton*)pControl];
- NSRect labelFrame = [label frame];
- int nLabelWidth = labelFrame.size.width;
- if (nPopupLabelMaxWidth < nLabelWidth) {
- nPopupLabelMaxWidth = nLabelWidth;
- }
- } else {
- if (nCheckboxMaxWidth < nControlWidth) {
- nCheckboxMaxWidth = nControlWidth;
- }
- }
- }
-
- int nLongestPopupWidth = nPopupMaxWidth + nPopupLabelMaxWidth + kAquaSpaceBetweenControls - kAquaSpacePopupMenuFrameBoundsDiffLeft - kAquaSpaceLabelFrameBoundsDiffH;
- OSL_TRACE("longest popup width: %d", nLongestPopupWidth);
-
- NSControl* previousControl = nil;
-
- int nDistBetweenControls = 0;
-
- for (::std::list<NSControl*>::iterator child = m_aActiveControls.begin(); child != m_aActiveControls.end(); child++) {
- NSControl* pControl = *child;
-
- //get the control's bounds
- NSRect controlRect = [pControl frame];
- int nControlHeight = controlRect.size.height;
- int nControlWidth = controlRect.size.width;
-
- //subtract the height from the current vertical position, because the control's bounds origin rect will be its lower left hand corner
- currenttop -= nControlHeight;
-
- Class aSubType = [pControl class];
-
- //add space between the previous control and this control according to Apple's HIG
- nDistBetweenControls = getVerticalDistance(previousControl, pControl);
- OSL_TRACE("vertical distance: %d", nDistBetweenControls);
- currenttop -= nDistBetweenControls;
-
- previousControl = pControl;
-
- if (aSubType == [NSPopUpButton class]) {
- //move vertically up some pixels to space the controls between their real (visual) bounds
- currenttop += kAquaSpacePopupMenuFrameBoundsDiffTop;//from top
-
- //get the corresponding popup label
- NSTextField *label = m_aMapListLabelFields[(NSPopUpButton*)pControl];
- NSRect labelFrame = [label frame];
- int totalWidth = nPopupMaxWidth + labelFrame.size.width + kAquaSpaceBetweenControls - kAquaSpacePopupMenuFrameBoundsDiffLeft - kAquaSpaceLabelFrameBoundsDiffH;
- OSL_TRACE("totalWidth: %d", totalWidth);
- //let's center popups
- int left = (nUsableWidth + nLongestPopupWidth) / 2 - totalWidth;
- OSL_TRACE("left: %d", left);
- labelFrame.origin.x = left;
- labelFrame.origin.y = currenttop + kAquaSpaceLabelPopupDiffV;
- OSL_TRACE("setting label at: {%f, %f, %f, %f}",labelFrame.origin.x, labelFrame.origin.y, labelFrame.size.width, labelFrame.size.height);
- [label setFrame:labelFrame];
-
- controlRect.origin.x = left + labelFrame.size.width + kAquaSpaceBetweenControls - kAquaSpaceLabelFrameBoundsDiffH - kAquaSpacePopupMenuFrameBoundsDiffLeft;
- controlRect.origin.y = currenttop;
- controlRect.size.width = nPopupMaxWidth;
- OSL_TRACE("setting popup at: {%f, %f, %f, %f}",controlRect.origin.x, controlRect.origin.y, controlRect.size.width, controlRect.size.height);
- [pControl setFrame:controlRect];
-
- //add some space to place the vertical position right below the popup's visual bounds
- currenttop += kAquaSpacePopupMenuFrameBoundsDiffBottom;
- } else {
- currenttop += kAquaSpaceSwitchButtonFrameBoundsDiff;//from top
-
- nControlWidth = nCheckboxMaxWidth;
- int left = (nUsableWidth - nCheckboxMaxWidth) / 2;
- controlRect.origin.x = left;
- controlRect.origin.y = currenttop;
- controlRect.size.width = nPopupMaxWidth;
- [pControl setFrame:controlRect];
- OSL_TRACE("setting checkbox at: {%f, %f, %f, %f}",controlRect.origin.x, controlRect.origin.y, controlRect.size.width, controlRect.size.height);
-
- currenttop += kAquaSpaceSwitchButtonFrameBoundsDiff;
- }
- }
-
- m_bIsUserPaneLaidOut = true;
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void ControlHelper::createFilterControl() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- CResourceProvider aResProvider;
- NSString* sLabel = aResProvider.getResString(CommonFilePickerElementIds::LISTBOX_FILTER_LABEL);
-
- m_pFilterControl = [NSPopUpButton new];
-
- [m_pFilterControl setAction:@selector(filterSelectedAtIndex:)];
- [m_pFilterControl setTarget:m_pDelegate];
-
- NSMenu *menu = [m_pFilterControl menu];
-
- for (NSStringList::iterator iter = m_pFilterHelper->getFilterNames()->begin(); iter != m_pFilterHelper->getFilterNames()->end(); iter++) {
- NSString *filterName = *iter;
- OSL_TRACE("adding filter name: %s", [filterName UTF8String]);
- if ([filterName isEqualToString:@"-"]) {
- [menu addItem:[NSMenuItem separatorItem]];
- }
- else {
- [m_pFilterControl addItemWithTitle:filterName];
- }
- }
-
- // always add the filter as first item
- m_aActiveControls.push_front(m_pFilterControl);
- m_aMapListLabels[m_pFilterControl] = [sLabel retain];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-NSTextField* ControlHelper::createLabelWithString(const NSString* labelString) {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "label", labelString);
-
- NSTextField *textField = [NSTextField new];
- [textField setEditable:NO];
- [textField setSelectable:NO];
- [textField setDrawsBackground:NO];
- [textField setBordered:NO];
- [[textField cell] setTitle:labelString];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return textField;
-}
-
-int ControlHelper::getVerticalDistance(const NSControl* first, const NSControl* second)
-{
- if (first == nil) {
- return kAquaSpaceBoxFrameViewDiffTop;
- }
- else if (second == nil) {
- return kAquaSpaceBoxFrameViewDiffBottom;
- }
- else {
- Class firstClass = [first class];
- Class secondClass = [second class];
-
- if (firstClass == [NSPopUpButton class]) {
- if (secondClass == [NSPopUpButton class]) {
- return kAquaSpaceBetweenPopupMenus;
- }
- else {
- return kAquaSpaceAfterPopupButtonsV;
- }
- }
-
- return kAquaSpaceBetweenControls;
- }
-}
-
-void ControlHelper::updateFilterUI()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (m_bIsFilterControlNeeded == false || m_pFilterHelper == NULL) {
- OSL_TRACE("no filter control needed or no filter helper present");
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return;
- }
-
- int index = m_pFilterHelper->getCurrentFilterIndex();
-
- if (m_pFilterControl == nil) {
- createFilterControl();
- }
-
- [m_pFilterControl selectItemAtIndex:index];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/ControlHelper.hxx b/fpicker/source/aqua/ControlHelper.hxx
deleted file mode 100644
index 145ba707f4..0000000000
--- a/fpicker/source/aqua/ControlHelper.hxx
+++ /dev/null
@@ -1,199 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CONTROLHELPER_HXX_
-#define _CONTROLHELPER_HXX_
-
-#include <rtl/ustring.hxx>
-#include <com/sun/star/uno/Any.hxx>
-
-#include <list>
-#include <map>
-
-#include <premac.h>
-#include <Cocoa/Cocoa.h>
-#include <postmac.h>
-#include "SalAquaConstants.h"
-#include "FilterHelper.hxx"
-#include "AquaFilePickerDelegate.hxx"
-
-using namespace com::sun::star;
-
-using ::rtl::OUString;
-
-class ControlHelper {
-
-public:
-
- //------------------------------------------------------------------------------------
- // Constructor / Destructor
- //------------------------------------------------------------------------------------
- ControlHelper();
- virtual ~ControlHelper();
-
- //------------------------------------------------
- // XInitialization delegate
- //------------------------------------------------
- void initialize( sal_Int16 templateId );
-
- //------------------------------------------------------------------------------------
- // XFilePickerControlAccess function delegates
- //------------------------------------------------------------------------------------
- void setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const uno::Any& rValue );
- uno::Any getValue( sal_Int16 nControlId, sal_Int16 nControlAction ) const;
- void enableControl( sal_Int16 nControlId, sal_Bool bEnable ) const;
- OUString getLabel( sal_Int16 nControlId );
- void setLabel( sal_Int16 nControlId, const NSString* aLabel );
-
- //------------------------------------------------------------------------------------
- // other stuff
- //------------------------------------------------------------------------------------
- void updateFilterUI();
-
- //------------------------------------------------------------------------------------
- // Type definitions
- //------------------------------------------------------------------------------------
- enum ToggleType {
- AUTOEXTENSION, //but autoextension is handled differently on MacOSX
- PASSWORD,
- FILTEROPTIONS,
- READONLY,
- LINK,
- PREVIEW,
- SELECTION,
- TOGGLE_LAST
- };
-
- enum ListType {
- VERSION,
- TEMPLATE,
- IMAGE_TEMPLATE,
- LIST_LAST
- };
-
- //------------------------------------------------------------------------------------
- // inline functions
- //------------------------------------------------------------------------------------
- inline NSView* getUserPane() {
- if (m_bIsUserPaneLaidOut == false) {
- createUserPane();
- }
- return m_pUserPane;
- }
-
- inline bool getVisibility(ToggleType tToggle) {
- return m_bToggleVisibility[tToggle];
- }
-
- inline void setFilterControlNeeded(bool bNeeded) {
- m_bIsFilterControlNeeded = bNeeded;
- if (bNeeded == true) {
- m_bUserPaneNeeded = true;
- }
- }
-
- inline void setFilterHelper(FilterHelper* pFilterHelper) {
- m_pFilterHelper = pFilterHelper;
- }
-
- inline void setFilePickerDelegate(AquaFilePickerDelegate* pDelegate) {
- m_pDelegate = pDelegate;
- }
-
- inline bool isAutoExtensionEnabled() {
- return ([((NSButton*) m_pToggles[AUTOEXTENSION]) state] == NSOnState);
- }
-
-private:
- //------------------------------------------------------------------------------------
- // private member variables
- //------------------------------------------------------------------------------------
-
- /** the native view object */
- NSView* m_pUserPane;
-
- /** the checkbox controls */
- NSControl* m_pToggles[ TOGGLE_LAST ];
-
- /** the visibility flags for the checkboxes */
- bool m_bToggleVisibility[TOGGLE_LAST];
-
- /** the special filter control */
- NSPopUpButton *m_pFilterControl;
-
- /** the popup menu controls (except for the filter control) */
- NSControl* m_pListControls[ LIST_LAST ];
-
- /** a map to store a control's label text */
- ::std::map<NSControl *, NSString *> m_aMapListLabels;
-
- /** a map to store a popup menu's label text field */
- ::std::map<NSPopUpButton *, NSTextField *> m_aMapListLabelFields;
-
- /** the visibility flags for the popup menus */
- bool m_bListVisibility[ LIST_LAST ];
-
- /** indicates if a user pane is needed */
- bool m_bUserPaneNeeded;
-
- /** indicates if the user pane was laid out already */
- bool m_bIsUserPaneLaidOut;
-
- /** indicates if a filter control is needed */
- bool m_bIsFilterControlNeeded;
-
- /** a list with all actively used controls */
- ::std::list<NSControl*> m_aActiveControls;
-
- /** the filter helper */
- FilterHelper *m_pFilterHelper;
-
- /** the save or open panel's delegate */
- AquaFilePickerDelegate *m_pDelegate;
-
- //------------------------------------------------------------------------------------
- // private methods
- //------------------------------------------------------------------------------------
- void HandleSetListValue(const NSControl* pControl, const sal_Int16 nControlAction, const uno::Any& rValue);
- uno::Any HandleGetListValue(const NSControl* pControl, const sal_Int16 nControlAction) const;
-
- void createControls();
- void createFilterControl();
- void createUserPane();
- NSTextField* createLabelWithString(const NSString* label);
-
- int getControlElementName(const Class clazz, const int nControlId) const;
- NSControl* getControl( const sal_Int16 nControlId ) const;
- static int getVerticalDistance(const NSControl* first, const NSControl* second);
-
- void layoutControls();
-};
-
-#endif //_CONTROLHELPER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/FPServiceInfo.hxx b/fpicker/source/aqua/FPServiceInfo.hxx
deleted file mode 100644
index 57de03afa7..0000000000
--- a/fpicker/source/aqua/FPServiceInfo.hxx
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _FPSERVICEINFO_HXX_
-#define _FPSERVICEINFO_HXX_
-
-//------------------------------------------------------------------------
-// defines
-//------------------------------------------------------------------------
-
-// the service names
-#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.AquaFilePicker"
-#define FOLDER_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.AquaFolderPicker"
-
-// the implementation names
-#define FILE_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.SalAquaFilePicker"
-#define FOLDER_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.SalAquaFolderPicker"
-
-// the registry key names
-// a key under which this service will be registered,
-// Format: -> "/ImplName/UNO/SERVICES/ServiceName"
-// <Implementation-Name></UNO/SERVICES/><Service-Name>
-#define FILE_PICKER_REGKEY_NAME "/com.sun.star.ui.dialogs.SalAquaFilePicker/UNO/SERVICES/com.sun.star.ui.dialogs.AquaFilePicker"
-#define FOLDER_PICKER_REGKEY_NAME "/com.sun.star.ui.dialogs.SalAquaFolderPicker/UNO/SERVICES/com.sun.star.ui.dialogs.AquaFolderPicker"
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/FPentry.cxx b/fpicker/source/aqua/FPentry.cxx
deleted file mode 100644
index f1f74cd527..0000000000
--- a/fpicker/source/aqua/FPentry.cxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <cppuhelper/factory.hxx>
-#include <com/sun/star/container/XSet.hpp>
-
-#include "SalAquaFilePicker.hxx"
-#include "SalAquaFolderPicker.hxx"
-
-#include "FPServiceInfo.hxx"
-
-
-using namespace ::rtl;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-using namespace ::cppu;
-using ::com::sun::star::ui::dialogs::XFilePicker;
-using ::com::sun::star::ui::dialogs::XFolderPicker;
-
-
-static Reference< XInterface > SAL_CALL createFileInstance(
- const Reference< XMultiServiceFactory >& rServiceManager )
-{
- return Reference< XInterface >(
- *new SalAquaFilePicker( rServiceManager ) );
-}
-
-static Reference< XInterface > SAL_CALL createFolderInstance(
- const Reference< XMultiServiceFactory >& rServiceManager )
-{
- return Reference< XInterface >(
- *new SalAquaFolderPicker( rServiceManager ) );
-}
-
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
- const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* /*pRegistryKey*/ )
-{
- void* pRet = 0;
-
- if( pSrvManager )
- {
- // FIXME: PJ: when we do not need native file and folder picker...
- if (0) return 0;
-
- Reference< XSingleServiceFactory > xFactory;
-
- if (0 == rtl_str_compare(pImplName, FILE_PICKER_IMPL_NAME))
- {
- Sequence< OUString > aSNS( 1 );
- aSNS.getArray( )[0] =
- OUString(RTL_CONSTASCII_USTRINGPARAM(FILE_PICKER_SERVICE_NAME));
-
- xFactory = createSingleFactory(
- reinterpret_cast< XMultiServiceFactory* > ( pSrvManager ),
- OUString::createFromAscii( pImplName ),
- createFileInstance,
- aSNS );
- }
- else if (0 == rtl_str_compare(pImplName, FOLDER_PICKER_IMPL_NAME))
- {
- Sequence< OUString > aSNS( 1 );
- aSNS.getArray( )[0] =
- OUString(RTL_CONSTASCII_USTRINGPARAM(FOLDER_PICKER_SERVICE_NAME));
-
- xFactory = createSingleFactory(
- reinterpret_cast< XMultiServiceFactory* > ( pSrvManager ),
- OUString::createFromAscii( pImplName ),
- createFolderInstance,
- aSNS );
- }
-
- if ( xFactory.is() )
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
-
- return pRet;
-}
-
-} // extern "C"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/FilterHelper.cxx b/fpicker/source/aqua/FilterHelper.cxx
deleted file mode 100644
index c67d1e8565..0000000000
--- a/fpicker/source/aqua/FilterHelper.cxx
+++ /dev/null
@@ -1,545 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <functional>
-#include <algorithm>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-
-#include "CFStringUtilities.hxx"
-#include "NSString_OOoAdditions.hxx"
-#include "NSURL_OOoAdditions.hxx"
-
-#include "FilterHelper.hxx"
-
-#pragma mark DEFINES
-#define CLASS_NAME "FilterEntry"
-
-#pragma mark FilterEntry
-//---------------------------------------------------------------------
-FilterEntry::FilterEntry( const rtl::OUString& _rTitle, const UnoFilterList& _rSubFilters )
-:m_sTitle( _rTitle )
-,m_aSubFilters( _rSubFilters )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", _rTitle);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-//---------------------------------------------------------------------
-sal_Bool FilterEntry::hasSubFilters() const
-{
-// OSL_TRACE(">>> FilterEntry::%s", __func__);
- sal_Bool bReturn = ( 0 < m_aSubFilters.getLength() );
-// OSL_TRACE("<<< FilterEntry::%s retVal: %d", __func__, bReturn);
- return bReturn;
-}
-
-//---------------------------------------------------------------------
-sal_Int32 FilterEntry::getSubFilters( UnoFilterList& _rSubFilterList )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- _rSubFilterList = m_aSubFilters;
- sal_Int32 nReturn = m_aSubFilters.getLength();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, nReturn);
-
- return nReturn;
-}
-
-#pragma mark statics
-static bool
-isFilterString( const rtl::OUString& rFilterString, const char *pMatch )
-{
- sal_Int32 nIndex = 0;
- rtl::OUString aToken;
- bool bIsFilter = true;
-
- rtl::OUString aMatch(rtl::OUString::createFromAscii(pMatch));
-
- do
- {
- aToken = rFilterString.getToken( 0, ';', nIndex );
- if( !aToken.match( aMatch ) )
- {
- bIsFilter = false;
- break;
- }
- }
- while( nIndex >= 0 );
-
- return bIsFilter;
-}
-
-//=====================================================================
-
-static rtl::OUString
-shrinkFilterName( const rtl::OUString aFilterName, bool bAllowNoStar = false )
-{
- // DBG_PRINT_ENTRY(CLASS_NAME, "shrinkFilterName", "filterName", aFilterName);
-
- int i;
- int nBracketLen = -1;
- int nBracketEnd = -1;
- rtl::OUString rFilterName = aFilterName;
- const sal_Unicode *pStr = rFilterName;
- rtl::OUString aRealName = rFilterName;
-
- for( i = aRealName.getLength() - 1; i > 0; i-- )
- {
- if( pStr[i] == ')' )
- nBracketEnd = i;
- else if( pStr[i] == '(' )
- {
- nBracketLen = nBracketEnd - i;
- if( nBracketEnd <= 0 )
- continue;
- if( isFilterString( rFilterName.copy( i + 1, nBracketLen - 1 ), "*." ) )
- aRealName = aRealName.replaceAt( i, nBracketLen + 1, rtl::OUString() );
- else if (bAllowNoStar)
- {
- if( isFilterString( rFilterName.copy( i + 1, nBracketLen - 1 ), ".") )
- aRealName = aRealName.replaceAt( i, nBracketLen + 1, rtl::OUString() );
- }
- }
- }
-
- return aRealName;
-}
-
-//------------------------------------------------------------------------------------
-namespace {
- //................................................................................
- struct FilterTitleMatch : public ::std::unary_function< FilterEntry, bool >
- {
-protected:
- const rtl::OUString rTitle;
-
-public:
- FilterTitleMatch( const rtl::OUString _rTitle ) : rTitle( _rTitle ) { }
-
- //............................................................................
- bool operator () ( const FilterEntry& _rEntry )
- {
- sal_Bool bMatch;
- if( !_rEntry.hasSubFilters() ) {
- //first try the complete filter name
- rtl::OUString title = _rEntry.getTitle();
- bMatch = ( title.equals(rTitle) );
- if (!bMatch) {
- //we didn't find a match using the full name, let's give it another
- //try using the shrunk version
- rtl::OUString aShrunkName = shrinkFilterName( _rEntry.getTitle() ).trim();
- bMatch = ( aShrunkName.equals(rTitle) );
- }
- }
- else
- // a filter group -> search the sub filters
- bMatch =
- _rEntry.endSubFilters() != ::std::find_if(
- _rEntry.beginSubFilters(),
- _rEntry.endSubFilters(),
- *this
- );
-
- return bMatch ? true : false;
- }
-
- bool operator () ( const UnoFilterEntry& _rEntry )
- {
- rtl::OUString aShrunkName = shrinkFilterName( _rEntry.First );
- bool retVal = aShrunkName.equals(rTitle);
- return retVal;
- }
- };
-}
-
-#undef CLASS_NAME
-#define CLASS_NAME "FilterHelper"
-
-FilterHelper::FilterHelper()
-: m_pFilterList(NULL)
-, m_pFilterNames(NULL)
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-FilterHelper::~FilterHelper()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
-
- if (NULL != m_pFilterList) {
- delete m_pFilterList;
- }
-
- if (NULL != m_pFilterNames) {
- //we called retain when we added the strings to the list, so we should release them now
- for (NSStringList::iterator iter = m_pFilterNames->begin(); iter != m_pFilterNames->end(); iter++) {
- [*iter release];
- }
- delete m_pFilterNames;
- }
-
- [pool release];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-//------------------------------------------------------------------------------------
-sal_Bool FilterHelper::FilterNameExists( const rtl::OUString rTitle )
-{
- sal_Bool bRet = sal_False;
-
- if( m_pFilterList )
- bRet =
- m_pFilterList->end() != ::std::find_if(
- m_pFilterList->begin(),
- m_pFilterList->end(),
- FilterTitleMatch( rTitle )
- );
-
- return bRet;
-}
-
-//------------------------------------------------------------------------------------
-sal_Bool FilterHelper::FilterNameExists( const UnoFilterList& _rGroupedFilters )
-{
- sal_Bool bRet = sal_False;
-
- if( m_pFilterList )
- {
- const UnoFilterEntry* pStart = _rGroupedFilters.getConstArray();
- const UnoFilterEntry* pEnd = pStart + _rGroupedFilters.getLength();
- for( ; pStart != pEnd; ++pStart )
- if( m_pFilterList->end() != ::std::find_if(
- m_pFilterList->begin(),
- m_pFilterList->end(),
- FilterTitleMatch( pStart->First ) ) )
- break;
-
- bRet = (pStart != pEnd);
- }
-
- return bRet;
-}
-
-//------------------------------------------------------------------------------------
-void FilterHelper::ensureFilterList( const ::rtl::OUString& _rInitialCurrentFilter )
-{
- //OSL_TRACE(">>> FilterHelper::%s", __func__);
- if( NULL == m_pFilterList )
- {
- m_pFilterList = new FilterList;
-
- // set the first filter to the current filter
- m_aCurrentFilter = _rInitialCurrentFilter;
- OSL_TRACE("ensureFilterList filter:%s", OUStringToOString(m_aCurrentFilter, RTL_TEXTENCODING_UTF8).getStr());
- }
- //OSL_TRACE("<<< FilterHelper::%s", __func__);
-}
-
-void FilterHelper::SetCurFilter( const rtl::OUString& rFilter )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "filter", rFilter);
-
- SolarMutexGuard aGuard;
-
- if(m_aCurrentFilter.equals(rFilter) == false)
- {
- m_aCurrentFilter = rFilter;
- }
-
- //only for output purposes
-#if OSL_DEBUG_LEVEL > 1
- FilterList::iterator aFilter = ::std::find_if(m_pFilterList->begin(), m_pFilterList->end(), FilterTitleMatch(m_aCurrentFilter));
- if (aFilter != m_pFilterList->end()) {
- OUStringList suffixes = aFilter->getFilterSuffixList();
- if (!suffixes.empty()) {
- OSL_TRACE("Current active suffixes: ");
- OUStringList::iterator suffIter = suffixes.begin();
- while(suffIter != suffixes.end()) {
- OSL_TRACE("%s", OUStringToOString((*suffIter), RTL_TEXTENCODING_UTF8).getStr());
- suffIter++;
- }
- }
- } else {
- OSL_TRACE("No filter entry was found for that name!");
- }
-#endif
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void FilterHelper::SetFilters()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- // set the default filter
- if( m_aCurrentFilter.getLength() > 0 )
- {
- OSL_TRACE( "Setting current filter to %s", OUStringToOString(m_aCurrentFilter, RTL_TEXTENCODING_UTF8).getStr());
-
- SetCurFilter( m_aCurrentFilter );
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void FilterHelper::appendFilter(const ::rtl::OUString& aTitle, const ::rtl::OUString& aFilterString)
-throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException ) {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle, "filter", aFilterString);
-
- SolarMutexGuard aGuard;
-
- if( FilterNameExists( aTitle ) ) {
- throw com::sun::star::lang::IllegalArgumentException();
- }
-
- // ensure that we have a filter list
- ensureFilterList( aTitle );
-
- // append the filter
- OUStringList suffixList;
- fillSuffixList(suffixList, aFilterString);
- m_pFilterList->push_back(FilterEntry( aTitle, suffixList ) );
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void FilterHelper::setCurrentFilter( const ::rtl::OUString& aTitle )
-throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException ) {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "aTitle", OUStringToOString(aTitle, RTL_TEXTENCODING_UTF8).getStr());
-
- SetCurFilter(aTitle);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-::rtl::OUString SAL_CALL FilterHelper::getCurrentFilter( )
-throw( ::com::sun::star::uno::RuntimeException ) {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- ::rtl::OUString sReturn = (m_aCurrentFilter);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, OUStringToOString(sReturn, RTL_TEXTENCODING_UTF8).getStr());
-
- return sReturn;
-}
-
-void SAL_CALL FilterHelper::appendFilterGroup( const ::rtl::OUString& sGroupTitle, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair >& aFilters )
-throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) {
-
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", OUStringToOString(sGroupTitle, RTL_TEXTENCODING_UTF8).getStr());
-
- SolarMutexGuard aGuard;
-
- //add a separator if this is not the first group to be added
- sal_Bool bPrependSeparator = m_pFilterList != NULL;
-
- // ensure that we have a filter list
- ::rtl::OUString sInitialCurrentFilter;
- if( aFilters.getLength() > 0)
- sInitialCurrentFilter = aFilters[0].First;
- ensureFilterList( sInitialCurrentFilter );
-
- // append the filter
- if (bPrependSeparator) {
- rtl::OUString dash(RTL_CONSTASCII_USTRINGPARAM("-"));
- OUStringList emptyList;
- m_pFilterList->push_back(FilterEntry(dash, emptyList));
- }
-
- const com::sun::star::beans::StringPair* pSubFilters = aFilters.getConstArray();
- const com::sun::star::beans::StringPair* pSubFiltersEnd = pSubFilters + aFilters.getLength();
- for( ; pSubFilters != pSubFiltersEnd; ++pSubFilters ) {
- appendFilter(pSubFilters->First, pSubFilters->Second);
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-sal_Bool FilterHelper::filenameMatchesFilter(NSString* sFilename)
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (m_aCurrentFilter == NULL) {
- OSL_TRACE("filter name is null");
- return sal_True;
- }
-
- NSFileManager *manager = [NSFileManager defaultManager];
- NSDictionary* pAttribs = [manager fileAttributesAtPath: sFilename traverseLink: NO];
- if( pAttribs )
- {
- NSObject* pType = [pAttribs objectForKey: NSFileType];
- if( pType && [pType isKindOfClass: [NSString class]] )
- {
- NSString* pT = (NSString*)pType;
- if( [pT isEqualToString: NSFileTypeDirectory] ||
- [pT isEqualToString: NSFileTypeSymbolicLink] )
- return sal_True;
- }
- }
-
- FilterList::iterator filter = ::std::find_if(m_pFilterList->begin(), m_pFilterList->end(), FilterTitleMatch(m_aCurrentFilter));
- if (filter == m_pFilterList->end()) {
- OSL_TRACE("filter not found in list");
- return sal_True;
- }
-
- OUStringList suffixList = filter->getFilterSuffixList();
-
- {
- rtl::OUString aName = [sFilename OUString];
- rtl::OUString allMatcher(RTL_CONSTASCII_USTRINGPARAM(".*"));
- for(OUStringList::iterator iter = suffixList.begin(); iter != suffixList.end(); iter++) {
- if (aName.matchIgnoreAsciiCase(*iter, aName.getLength() - (*iter).getLength()) || ((*iter).equals(allMatcher))) {
- return sal_True;
- }
- }
- }
-
- // might be an alias
- NSString* pResolved = resolveAlias( sFilename );
- if( pResolved )
- {
- sal_Bool bResult = filenameMatchesFilter( pResolved );
- [pResolved autorelease];
- if( bResult )
- return sal_True;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return sal_False;
-}
-
-FilterList* FilterHelper::getFilterList() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return m_pFilterList;
-}
-
-NSStringList* FilterHelper::getFilterNames() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (NULL == m_pFilterList)
- return NULL;
- if (NULL == m_pFilterNames) {
- //build filter names list
- m_pFilterNames = new NSStringList;
- for (FilterList::iterator iter = m_pFilterList->begin(); iter != m_pFilterList->end(); iter++) {
- m_pFilterNames->push_back([[NSString stringWithOUString:iter->getTitle()] retain]);
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return m_pFilterNames;
-}
-
-void FilterHelper::SetFilterAtIndex(unsigned index) {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "index", index);
-
- if (m_pFilterList->size() <= index) {
- index = 0;
- }
- FilterEntry entry = m_pFilterList->at(index);
- SetCurFilter(entry.getTitle());
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void FilterHelper::fillSuffixList(OUStringList& aSuffixList, const ::rtl::OUString& suffixString) {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "aSuffixList", suffixString);
-
- sal_Int32 nIndex = 0;
- do {
- rtl::OUString aToken = suffixString.getToken( 0, ';', nIndex );
- aSuffixList.push_back(aToken.copy(1));
- } while ( nIndex >= 0 );
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-int FilterHelper::getCurrentFilterIndex() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- int result = 0;//default to first filter
- if (m_aCurrentFilter.getLength() > 0) {
- int i = 0;
- for (FilterList::iterator iter = m_pFilterList->begin(); iter != m_pFilterList->end(); iter++, i++) {
- rtl::OUString aTitle = iter->getTitle();
- if (m_aCurrentFilter.equals(aTitle)) {
- result = i;
- break;
- } else {
- aTitle = shrinkFilterName(aTitle).trim();
- if (m_aCurrentFilter.equals(aTitle)) {
- result = i;
- break;
- }
- }
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, result);
-
- return result;
-}
-
-OUStringList FilterHelper::getCurrentFilterSuffixList() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- OUStringList retVal;
- if (m_aCurrentFilter.getLength() > 0) {
- for (FilterList::iterator iter = m_pFilterList->begin(); iter != m_pFilterList->end(); iter++) {
- rtl::OUString aTitle = iter->getTitle();
- if (m_aCurrentFilter.equals(aTitle)) {
- retVal = iter->getFilterSuffixList();
- break;
- } else {
- aTitle = shrinkFilterName(aTitle).trim();
- if (m_aCurrentFilter.equals(aTitle)) {
- retVal = iter->getFilterSuffixList();
- break;
- }
- }
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return retVal;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/FilterHelper.hxx b/fpicker/source/aqua/FilterHelper.hxx
deleted file mode 100644
index e4e6cb7bc1..0000000000
--- a/fpicker/source/aqua/FilterHelper.hxx
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _FILTERHELPER_HXX_
-#define _FILTERHELPER_HXX_
-
-#include <com/sun/star/beans/StringPair.hpp>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-
-#include <com/sun/star/uno/RuntimeException.hpp>
-
-#include <list>
-#include <vector>
-
-#include <premac.h>
-#include <Cocoa/Cocoa.h>
-#include <postmac.h>
-
-typedef ::com::sun::star::beans::StringPair UnoFilterEntry;
-typedef ::com::sun::star::uno::Sequence< UnoFilterEntry > UnoFilterList; // can be transported more effectively
-typedef ::std::list<NSString *> NSStringList;
-typedef ::std::list<rtl::OUString> OUStringList;
-
-struct FilterEntry
-{
-protected:
- rtl::OUString m_sTitle;
- OUStringList m_sFilterSuffixList;
- UnoFilterList m_aSubFilters;
-
-public:
- FilterEntry( const rtl::OUString& _rTitle, const OUStringList _rFilter )
- : m_sTitle( _rTitle )
- , m_sFilterSuffixList( _rFilter )
- {
- }
-
- FilterEntry( const rtl::OUString& _rTitle, const UnoFilterList& _rSubFilters );
-
- rtl::OUString getTitle() const { return m_sTitle; }
- OUStringList getFilterSuffixList() const { return m_sFilterSuffixList; }
-
- /// determines if the filter has sub filter (i.e., the filter is a filter group in real)
- sal_Bool hasSubFilters( ) const;
-
- /** retrieves the filters belonging to the entry
- @return
- the number of sub filters
- */
- sal_Int32 getSubFilters( UnoFilterList& _rSubFilterList );
-
- // helpers for iterating the sub filters
- const UnoFilterEntry* beginSubFilters() const { return m_aSubFilters.getConstArray(); }
- const UnoFilterEntry* endSubFilters() const { return m_aSubFilters.getConstArray() + m_aSubFilters.getLength(); }
-};
-
-typedef ::std::vector < FilterEntry > FilterList;
-
-class FilterHelper {
-
-public:
- FilterHelper();
- virtual ~FilterHelper();
-
- //XFilterManager delegates
- void SAL_CALL appendFilter( const ::rtl::OUString& aTitle, const ::rtl::OUString& aFilter )
- throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
-
- void SAL_CALL setCurrentFilter( const ::rtl::OUString& aTitle )
- throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
-
- ::rtl::OUString SAL_CALL getCurrentFilter( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //XFilterGroupManager delegates
- void SAL_CALL appendFilterGroup( const ::rtl::OUString& sGroupTitle, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair >& aFilters )
- throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
-
- //accessor
- FilterList* getFilterList();
- NSStringList* getFilterNames();
-
- //misc
- void SetCurFilter( const rtl::OUString& rFilter );
- void SetFilterAtIndex(unsigned index);
- OUStringList getCurrentFilterSuffixList();
- int getCurrentFilterIndex();
- void SetFilters();
- sal_Bool filenameMatchesFilter(NSString * sFilename);
-
-private:
- FilterList *m_pFilterList;
- rtl::OUString m_aCurrentFilter;
- NSStringList *m_pFilterNames;
-
- int implAddFilter( const rtl::OUString rFilter, const OUStringList rSuffixList);
- int implAddFilterGroup( const rtl::OUString rFilter,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair>& _rFilters );
-
- sal_Bool FilterNameExists( const rtl::OUString rTitle );
- sal_Bool FilterNameExists( const UnoFilterList& _rGroupedFilters );
-
- void ensureFilterList( const ::rtl::OUString& _rInitialCurrentFilter );
-
- void fillSuffixList(OUStringList& aSuffixList, const ::rtl::OUString& suffixString);
-
-};
-
-#endif //_FILTERHELPER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/NSString_OOoAdditions.hxx b/fpicker/source/aqua/NSString_OOoAdditions.hxx
deleted file mode 100644
index a3f141bbe1..0000000000
--- a/fpicker/source/aqua/NSString_OOoAdditions.hxx
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _NSSTRING_OOOADDITIONS_HXX_
-#define _NSSTRING_OOOADDITIONS_HXX_
-
-#include <premac.h>
-#import <Cocoa/Cocoa.h>
-#include <postmac.h>
-#include <rtl/ustring.hxx>
-
-//for Cocoa types
-@interface NSString (OOoAdditions)
-+ (id) stringWithOUString:(const rtl::OUString&)ouString;
-- (id) initWithOUString:(const rtl::OUString&)ouString;
-- (rtl::OUString) OUString;
-@end
-
-#endif // _NSSTRING_OOOADDITIONS_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/NSString_OOoAdditions.mm b/fpicker/source/aqua/NSString_OOoAdditions.mm
deleted file mode 100644
index 6707cff4c8..0000000000
--- a/fpicker/source/aqua/NSString_OOoAdditions.mm
+++ /dev/null
@@ -1,77 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _CFSTRINGUTILITIES_HXX_
-#include "CFStringUtilities.hxx"
-#endif
-
-#include "NSString_OOoAdditions.hxx"
-
-#define CLASS_NAME "NSString"
-
-@implementation NSString (OOoAdditions)
-
-+ (id) stringWithOUString:(const rtl::OUString&)ouString
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "ouString", ouString);
-
- NSString *string = [[NSString alloc] initWithOUString:ouString];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, string);
- return [string autorelease];
-}
-
-- (id) initWithOUString:(const rtl::OUString&)ouString
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "ouString", ouString);
- if ((self = [super init])) {
- self = [self initWithCharacters:ouString.getStr() length:ouString.getLength()];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, self);
-
- return self;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, self);
- return nil;
-}
-
-- (rtl::OUString) OUString
-{
- unsigned int nFileNameLength = [self length];
-
- UniChar unichars[nFileNameLength+1];
-
- //'close' the string buffer correctly
- unichars[nFileNameLength] = '\0';
-
- [self getCharacters:unichars];
-
- return rtl::OUString(unichars);
-}
-
-@end
diff --git a/fpicker/source/aqua/NSURL_OOoAdditions.hxx b/fpicker/source/aqua/NSURL_OOoAdditions.hxx
deleted file mode 100644
index 5198db8466..0000000000
--- a/fpicker/source/aqua/NSURL_OOoAdditions.hxx
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _NSURL_OOOADDITIONS_HXX_
-#define _NSURL_OOOADDITIONS_HXX_
-
-#include <premac.h>
-#include <CoreFoundation/CoreFoundation.h>
-#include <postmac.h>
-#include "CFStringUtilities.hxx"
-#include <rtl/ustring.hxx>
-
-@interface NSURL (OOoAdditions)
-- (rtl::OUString) OUStringForInfo:(InfoType)info;
-@end
-
-/*
- returns the resolved string if there was an alias
- if there was no alias, nil is returned
-*/
-
-NSString* resolveAlias( NSString* i_pSystemPath );
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/NSURL_OOoAdditions.mm b/fpicker/source/aqua/NSURL_OOoAdditions.mm
deleted file mode 100644
index 6be80a7652..0000000000
--- a/fpicker/source/aqua/NSURL_OOoAdditions.mm
+++ /dev/null
@@ -1,112 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _NSSTRING_OOOADDITIONS_HXX_
-#include "NSString_OOoAdditions.hxx"
-#endif
-
-#include "NSURL_OOoAdditions.hxx"
-
-@implementation NSURL (OOoAdditions)
-- (rtl::OUString) OUStringForInfo:(InfoType)info
-{
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
-
- NSString *sURLString = nil;
-
- switch(info) {
- case FULLPATH:
- OSL_TRACE("Extracting the full path of an item");
- sURLString = [self absoluteString];
- [sURLString retain];
- break;
- case FILENAME:
- OSL_TRACE("Extracting the file name of an item");
- NSString *path = [self path];
- if (path == nil) {
- sURLString = @"";
- }
- else {
- sURLString = [path lastPathComponent];
- }
- [sURLString retain];
- break;
- case PATHWITHOUTLASTCOMPONENT:
- OSL_TRACE("Extracting the last but one component of an item's path");
- path = [self absoluteString];
- if (path == nil) {
- sURLString = @"";
- }
- else {
- NSString* lastComponent = [path lastPathComponent];
- unsigned int lastLength = [lastComponent length];
- sURLString = [path substringToIndex:([path length] - lastLength)];
- }
- [sURLString retain];
- break;
- default:
- break;
- }
-
- rtl::OUString sResult = [sURLString OUString];
- [sURLString release];
-
- [pool release];
-
- return sResult;
-}
-@end
-
-NSString* resolveAlias( NSString* i_pSystemPath )
-{
- NSString* pResolvedPath = nil;
- CFURLRef rUrl = CFURLCreateWithFileSystemPath( kCFAllocatorDefault,
- (CFStringRef)i_pSystemPath,
- kCFURLPOSIXPathStyle, false);
- if( rUrl != NULL )
- {
- FSRef rFS;
- if( CFURLGetFSRef( rUrl, &rFS ) )
- {
- Boolean bIsFolder = false;
- Boolean bAlias = false;
- OSErr err = FSResolveAliasFile( &rFS, true, &bIsFolder, &bAlias);
- if( (err == noErr) && bAlias )
- {
- CFURLRef rResolvedUrl = CFURLCreateFromFSRef( kCFAllocatorDefault, &rFS );
- if( rResolvedUrl != NULL )
- {
- pResolvedPath = (NSString*)CFURLCopyFileSystemPath( rResolvedUrl, kCFURLPOSIXPathStyle );
- CFRelease( rResolvedUrl );
- }
- }
- }
- CFRelease( rUrl );
- }
-
- return pResolvedPath;
-}
diff --git a/fpicker/source/aqua/SalAquaConstants.h b/fpicker/source/aqua/SalAquaConstants.h
deleted file mode 100644
index 30db99b9af..0000000000
--- a/fpicker/source/aqua/SalAquaConstants.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SALAQUACONSTANTS_H_
-#define _SALAQUACONSTANTS_H_
-
-#define kAppFourCharCode 'LibO'
-#define kControlPropertyTracking 'Trck'
-#define kControlPropertyLastPartCode 'LsPc'
-#define kControlPropertySubType 'SuTy'
-#define kPopupControlPropertyTitleWidth 'PoTW'
-
-#define kAquaSpaceBetweenControls (8)
-#define kAquaSpaceBetweenPopupMenus (10)
-
-#define kAquaSpaceInsideGroupH (16)
-#define kAquaSpaceInsideGroupV (11)
-
-#define kAquaSpaceBoxFrameViewDiffTop (7)
-#define kAquaSpaceBoxFrameViewDiffLeft (7)
-#define kAquaSpaceBoxFrameViewDiffBottom (9)
-#define kAquaSpaceBoxFrameViewDiffRight (7)
-
-#define kAquaSpaceButtonFrameBoundsDiff (6)
-#define kAquaSpaceSwitchButtonFrameBoundsDiff (2)
-
-#define kAquaSpacePopupMenuFrameBoundsDiffTop (2)
-#define kAquaSpacePopupMenuFrameBoundsDiffBottom (4)
-#define kAquaSpacePopupMenuFrameBoundsDiffV (kAquaSpacePopupMenuFrameBoundsDiffTop + kAquaSpacePopupMenuFrameBoundsDiffBottom)
-#define kAquaSpacePopupMenuFrameBoundsDiffLeft (3)
-
-#define kAquaSpaceLabelFrameBoundsDiffH (3)
-#define kAquaSpaceLabelPopupDiffV (6)
-#define kAquaSpaceAfterPopupButtonsV (20)
-
-#define kAquaPopupButtonDefaultHeight (26)
-
-#endif //_SALAQUACONSTANTS_H_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/SalAquaFilePicker.cxx b/fpicker/source/aqua/SalAquaFilePicker.cxx
deleted file mode 100644
index ea798295c7..0000000000
--- a/fpicker/source/aqua/SalAquaFilePicker.cxx
+++ /dev/null
@@ -1,809 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <cppuhelper/interfacecontainer.h>
-#include <osl/diagnose.h>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/ui/dialogs/ControlActions.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <FPServiceInfo.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-
-#include <tools/urlobj.hxx>
-#include "resourceprovider.hxx"
-
-#include <tools/rc.hxx>
-#include <osl/file.hxx>
-#include "CFStringUtilities.hxx"
-#include "NSString_OOoAdditions.hxx"
-#include "NSURL_OOoAdditions.hxx"
-
-#include <iostream>
-
-#include "SalAquaFilePicker.hxx"
-
-
-#pragma mark DEFINES
-
-#define LABEL_TOGGLE( elem ) \
-case elem : \
-aLabel = aResProvider.getResString( CHECKBOX_##elem ); \
- setLabel( CHECKBOX_##elem, aLabel ); \
- break
-
-#define CLASS_NAME "SalAquaFilePicker"
-
-//------------------------------------------------------------------------
-// namespace directives
-//------------------------------------------------------------------------
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::ui::dialogs;
-using namespace ::com::sun::star::ui::dialogs::TemplateDescription;
-using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
-using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::uno;
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-namespace
-{
- // controling event notifications
- const bool STARTUP_SUSPENDED = true;
- const bool STARTUP_ALIVE = false;
-
- uno::Sequence<rtl::OUString> SAL_CALL FilePicker_getSupportedServiceNames()
- {
- uno::Sequence<rtl::OUString> aRet(3);
- aRet[0] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.FilePicker" ));
- aRet[1] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.SystemFilePicker" ));
- aRet[2] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.AquaFilePicker" ));
- return aRet;
- }
-}
-
-#pragma mark Constructor
-//-----------------------------------------------------------------------------------------
-// constructor
-//-----------------------------------------------------------------------------------------
-
-SalAquaFilePicker::SalAquaFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) :
-cppu::WeakComponentImplHelper8<XFilterManager, XFilterGroupManager, XFilePickerControlAccess, XFilePickerNotifier,
- lang::XInitialization, util::XCancellable, lang::XEventListener, lang::XServiceInfo>( m_rbHelperMtx )
-, m_xServiceMgr( xServiceMgr )
-, m_pFilterHelper( NULL )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- m_pDelegate = [[AquaFilePickerDelegate alloc] initWithFilePicker:this];
- m_pControlHelper->setFilePickerDelegate(m_pDelegate);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-SalAquaFilePicker::~SalAquaFilePicker()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (NULL != m_pFilterHelper)
- delete m_pFilterHelper;
-
- [m_pDelegate release];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-
-#pragma mark XFilePickerNotifier
-//------------------------------------------------------------------------------------
-// XFilePickerNotifier
-//------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
- m_xListener = xListener;
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SAL_CALL SalAquaFilePicker::removeFilePickerListener( const uno::Reference<XFilePickerListener>& )
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
- m_xListener.clear();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XAsynchronousExecutableDialog
-//-----------------------------------------------------------------------------------------
-// XExecutableDialog functions
-//-----------------------------------------------------------------------------------------
-void SAL_CALL SalAquaFilePicker::setTitle( const rtl::OUString& aTitle ) throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle);
-
- SolarMutexGuard aGuard;
- implsetTitle(aTitle);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-sal_Int16 SAL_CALL SalAquaFilePicker::execute() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- sal_Int16 retVal = 0;
-
- implInitialize();
-
- // if m_pDialog is nil after initialization, something must have gone wrong before
- // or there was no initialization (see issue http://www.openoffice.org/issues/show_bug.cgi?id=100214)
- if (m_pDialog == nil) {
- m_nDialogType = NAVIGATIONSERVICES_OPEN;
- }
-
- if (m_pFilterHelper) {
- m_pFilterHelper->SetFilters();
- }
-
- if (m_nDialogType == NAVIGATIONSERVICES_SAVE) {
- if (m_sSaveFileName.getLength() == 0) {
- //if no filename is set, NavigationServices will set the name to "untitled". We don't want this!
- //So let's try to get the window title to get the real untitled name
- NSWindow *frontWindow = [NSApp keyWindow];
- if (NULL != frontWindow) {
- NSString *windowTitle = [frontWindow title];
- if (windowTitle != nil) {
- rtl::OUString ouName = [windowTitle OUString];
- //a window title will typically be something like "Untitled1 - OpenOffice.org Writer"
- //but we only want the "Untitled1" part of it
- sal_Int32 indexOfDash = ouName.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - ")));
- if (indexOfDash > -1) {
- m_sSaveFileName = ouName.copy(0,indexOfDash);
- if (m_sSaveFileName.getLength() > 0) {
- setDefaultName(m_sSaveFileName);
- }
- } else {
- OSL_TRACE("no dash present in window title");
- }
- } else {
- OSL_TRACE("couldn't get window title");
- }
- } else {
- OSL_TRACE("no front window found");
- }
- }
- }
-
- //Set the delegate to be notified of certain events
- [m_pDialog setDelegate:m_pDelegate];
-
- int nStatus = runandwaitforresult();
-
- [m_pDialog setDelegate:nil];
-
- switch( nStatus )
- {
- case NSOKButton:
- OSL_TRACE("The dialog returned OK");
- retVal = ExecutableDialogResults::OK;
- break;
-
- case NSCancelButton:
- OSL_TRACE("The dialog was cancelled by the user!");
- retVal = ExecutableDialogResults::CANCEL;
- break;
-
- default:
- throw uno::RuntimeException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("The dialog returned with an unknown result!")), static_cast< XFilePicker* >( this ));
- break;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
-
- return retVal;
-}
-
-
-#pragma mark XFilePicker
-//-----------------------------------------------------------------------------------------
-// XFilePicker functions
-//-----------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::setMultiSelectionMode( sal_Bool bMode ) throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "multiSelectable?", bMode);
-
- SolarMutexGuard aGuard;
-
- if (m_nDialogType == NAVIGATIONSERVICES_OPEN) {
- [(NSOpenPanel*)m_pDialog setAllowsMultipleSelection:YES];
- OSL_TRACE("dialog allows multi-selection? %d", [(NSOpenPanel*)m_pDialog allowsMultipleSelection]);
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SAL_CALL SalAquaFilePicker::setDefaultName( const rtl::OUString& aName )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "name", aName);
-
- SolarMutexGuard aGuard;
-
- m_sSaveFileName = aName;
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SAL_CALL SalAquaFilePicker::setDisplayDirectory( const rtl::OUString& rDirectory )
-throw( lang::IllegalArgumentException, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "directory", rDirectory);
-
- SolarMutexGuard aGuard;
-
- implsetDisplayDirectory(rDirectory);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-rtl::OUString SAL_CALL SalAquaFilePicker::getDisplayDirectory() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- rtl::OUString retVal = implgetDisplayDirectory();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
- return retVal;
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SalAquaFilePicker::getFiles() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- // OSL_TRACE("starting work");
- /*
- * If more than one file is selected in an OpenDialog, then the first result
- * is the directory and the remaining results contain just the files' names
- * without the basedir path.
- */
- NSArray *files = nil;
- if (m_nDialogType == NAVIGATIONSERVICES_OPEN) {
- files = [(NSOpenPanel*)m_pDialog URLs];
- }
- else if (m_nDialogType == NAVIGATIONSERVICES_SAVE) {
- files = [NSArray arrayWithObjects:[m_pDialog URL], nil];
- }
-
- long nFiles = [files count];
- OSL_TRACE("# of items: %d", nFiles);
-
- uno::Sequence< rtl::OUString > aSelectedFiles(nFiles > 1 ? nFiles + 1 : nFiles);
-
- for(int nIndex = 0; nIndex < nFiles; nIndex += 1)
- {
- NSURL *url = [files objectAtIndex:nIndex];
- OSL_TRACE("handling %s", [[url description] UTF8String]);
- InfoType info = FULLPATH;
- if (nFiles > 1) {
- //just get the file's name (only in OpenDialog)
- info = FILENAME;
- }
- OUString sFileOrDirURL = [url OUStringForInfo:info];
-
- //get the directory information, only on the first file processed
- if (nIndex == 0) {
- OUString sDirectoryURL = [url OUStringForInfo:PATHWITHOUTLASTCOMPONENT];
-
- if (nFiles > 1) {
- aSelectedFiles[0] = OUString(sDirectoryURL);
- }
- }
-
- short nSequenceIndex = nFiles > 1 ? nIndex + 1 : nIndex;
- aSelectedFiles[nSequenceIndex] = sFileOrDirURL;
-
- OSL_TRACE("Returned file in getFiles: \"%s\".", OUStringToOString(sFileOrDirURL, RTL_TEXTENCODING_UTF8).getStr());
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return aSelectedFiles;
-}
-
-#pragma mark XFilterManager
-//-----------------------------------------------------------------------------------------
-// XFilterManager functions
-//-----------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::appendFilter( const rtl::OUString& aTitle, const rtl::OUString& aFilter )
-throw( lang::IllegalArgumentException, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- ensureFilterHelper();
- m_pFilterHelper->appendFilter( aTitle, aFilter );
- m_pControlHelper->setFilterControlNeeded(YES);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SAL_CALL SalAquaFilePicker::setCurrentFilter( const rtl::OUString& aTitle )
-throw( lang::IllegalArgumentException, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- OSL_TRACE( "Setting current filter to %s",
- OUStringToOString( aTitle, RTL_TEXTENCODING_UTF8 ).getStr() );
-
- SolarMutexGuard aGuard;
-
- ensureFilterHelper();
- m_pFilterHelper->setCurrentFilter(aTitle);
- updateFilterUI();
-
- updateSaveFileNameExtension();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-rtl::OUString SAL_CALL SalAquaFilePicker::getCurrentFilter() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- SolarMutexGuard aGuard;
-
- ensureFilterHelper();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return m_pFilterHelper->getCurrentFilter();
-}
-
-#pragma mark XFilterGroupManager
-//-----------------------------------------------------------------------------------------
-// XFilterGroupManager functions
-//-----------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::appendFilterGroup( const rtl::OUString& sGroupTitle, const uno::Sequence<beans::StringPair>& aFilters )
-throw( lang::IllegalArgumentException, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- SolarMutexGuard aGuard;
-
- ensureFilterHelper();
- m_pFilterHelper->appendFilterGroup(sGroupTitle, aFilters);
- m_pControlHelper->setFilterControlNeeded(YES);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XFilePickerControlAccess
-//------------------------------------------------------------------------------------
-// XFilePickerControlAccess functions
-//------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const uno::Any& rValue )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- m_pControlHelper->setValue(nControlId, nControlAction, rValue);
-
- if (nControlId == ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION && m_nDialogType == NAVIGATIONSERVICES_SAVE) {
- updateSaveFileNameExtension();
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-uno::Any SAL_CALL SalAquaFilePicker::getValue( sal_Int16 nControlId, sal_Int16 nControlAction )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- uno::Any aValue = m_pControlHelper->getValue(nControlId, nControlAction);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return aValue;
-}
-
-void SAL_CALL SalAquaFilePicker::enableControl( sal_Int16 nControlId, sal_Bool bEnable )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- m_pControlHelper->enableControl(nControlId, bEnable);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SAL_CALL SalAquaFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUString& aLabel )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- NSString* sLabel = [NSString stringWithOUString:aLabel];
- m_pControlHelper->setLabel( nControlId, sLabel ) ;
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-rtl::OUString SAL_CALL SalAquaFilePicker::getLabel( sal_Int16 nControlId )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return m_pControlHelper->getLabel(nControlId);
-}
-
-#pragma mark XInitialization
-//------------------------------------------------------------------------------------
-// XInitialization
-//------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::initialize( const uno::Sequence<uno::Any>& aArguments )
-throw( uno::Exception, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "arguments size", aArguments.getLength());
-
- SolarMutexGuard aGuard;
-
- // parameter checking
- uno::Any aAny;
- if( 0 == aArguments.getLength() )
- throw lang::IllegalArgumentException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "no arguments" )),
- static_cast<XFilePicker*>( this ), 1 );
-
- aAny = aArguments[0];
-
- if( ( aAny.getValueType() != ::getCppuType( ( sal_Int16* )0 ) ) &&
- (aAny.getValueType() != ::getCppuType( ( sal_Int8* )0 ) ) )
- throw lang::IllegalArgumentException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "invalid argument type" )),
- static_cast<XFilePicker*>( this ), 1 );
-
- sal_Int16 templateId = -1;
- aAny >>= templateId;
-
- switch( templateId )
- {
- case FILEOPEN_SIMPLE:
- m_nDialogType = NAVIGATIONSERVICES_OPEN;
- OSL_TRACE( "Template: FILEOPEN_SIMPLE" );
- break;
- case FILESAVE_SIMPLE:
- m_nDialogType = NAVIGATIONSERVICES_SAVE;
- OSL_TRACE( "Template: FILESAVE_SIMPLE" );
- break;
- case FILESAVE_AUTOEXTENSION_PASSWORD:
- m_nDialogType = NAVIGATIONSERVICES_SAVE;
- OSL_TRACE( "Template: FILESAVE_AUTOEXTENSION_PASSWORD" );
- break;
- case FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS:
- m_nDialogType = NAVIGATIONSERVICES_SAVE;
- OSL_TRACE( "Template: FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS" );
- break;
- case FILESAVE_AUTOEXTENSION_SELECTION:
- m_nDialogType = NAVIGATIONSERVICES_SAVE;
- OSL_TRACE( "Template: FILESAVE_AUTOEXTENSION_SELECTION" );
- break;
- case FILESAVE_AUTOEXTENSION_TEMPLATE:
- m_nDialogType = NAVIGATIONSERVICES_SAVE;
- OSL_TRACE( "Template: FILESAVE_AUTOEXTENSION_TEMPLATE" );
- break;
- case FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE:
- m_nDialogType = NAVIGATIONSERVICES_OPEN;
- OSL_TRACE( "Template: FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE" );
- break;
- case FILEOPEN_PLAY:
- m_nDialogType = NAVIGATIONSERVICES_OPEN;
- OSL_TRACE( "Template: FILEOPEN_PLAY" );
- break;
- case FILEOPEN_READONLY_VERSION:
- m_nDialogType = NAVIGATIONSERVICES_OPEN;
- OSL_TRACE( "Template: FILEOPEN_READONLY_VERSION" );
- break;
- case FILEOPEN_LINK_PREVIEW:
- m_nDialogType = NAVIGATIONSERVICES_OPEN;
- OSL_TRACE( "Template: FILEOPEN_LINK_PREVIEW" );
- break;
- case FILESAVE_AUTOEXTENSION:
- m_nDialogType = NAVIGATIONSERVICES_SAVE;
- OSL_TRACE( "Template: FILESAVE_AUTOEXTENSION" );
- break;
- default:
- throw lang::IllegalArgumentException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Unknown template" )),
- static_cast< XFilePicker* >( this ),
- 1 );
- }
-
- m_pControlHelper->initialize(templateId);
-
- implInitialize();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XCancellable
-//------------------------------------------------------------------------------------
-// XCancellable
-//------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::cancel() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- if (m_pDialog != nil) {
- [m_pDialog cancel:nil];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XEventListener
-//------------------------------------------------
-// XEventListener
-//------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::disposing( const lang::EventObject& aEvent ) throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- uno::Reference<XFilePickerListener> xFilePickerListener( aEvent.Source, ::com::sun::star::uno::UNO_QUERY );
-
- if( xFilePickerListener.is() )
- removeFilePickerListener( xFilePickerListener );
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-#pragma mark XServiceInfo
-// -------------------------------------------------
-// XServiceInfo
-// -------------------------------------------------
-
-rtl::OUString SAL_CALL SalAquaFilePicker::getImplementationName()
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- rtl::OUString retVal(RTL_CONSTASCII_USTRINGPARAM( FILE_PICKER_IMPL_NAME ));
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
-
- return retVal;
-}
-
-sal_Bool SAL_CALL SalAquaFilePicker::supportsService( const rtl::OUString& sServiceName )
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "service name", sServiceName);
-
- sal_Bool retVal = sal_False;
-
- uno::Sequence <rtl::OUString> supportedServicesNames = FilePicker_getSupportedServiceNames();
-
- for( sal_Int32 n = supportedServicesNames.getLength(); n--; ) {
- if( supportedServicesNames[n].compareTo( sServiceName ) == 0) {
- retVal = sal_True;
- break;
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return retVal;
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SalAquaFilePicker::getSupportedServiceNames()
-throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return FilePicker_getSupportedServiceNames();
-}
-
-#pragma mark Misc/Private
-//-----------------------------------------------------------------------------------------
-// FilePicker Event functions
-//-----------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFilePicker::fileSelectionChanged( FilePickerEvent aEvent )
-{
- OSL_TRACE( "file selection changed");
- if (m_xListener.is())
- m_xListener->fileSelectionChanged( aEvent );
-}
-
-void SAL_CALL SalAquaFilePicker::directoryChanged( FilePickerEvent aEvent )
-{
- OSL_TRACE("directory changed");
- if (m_xListener.is())
- m_xListener->directoryChanged( aEvent );
-}
-
-void SAL_CALL SalAquaFilePicker::controlStateChanged( FilePickerEvent aEvent )
-{
- OSL_TRACE("control state changed");
- if (m_xListener.is())
- m_xListener->controlStateChanged( aEvent );
-}
-
-void SAL_CALL SalAquaFilePicker::dialogSizeChanged()
-{
- OSL_TRACE("dialog size changed");
- if (m_xListener.is())
- m_xListener->dialogSizeChanged();
-}
-
-//------------------------------------------------------------------------------------
-
-#define MAP_TOGGLE( elem ) \
-case ExtendedFilePickerElementIds::CHECKBOX_##elem: \
- pWidget = m_pToggles[elem]; \
- break
-
-#define MAP_BUTTON( elem ) \
-case ExtendedFilePickerElementIds::PUSHBUTTON_##elem: \
- pWidget = m_pButtons[elem]; \
- break
-#undef MAP_LIST
-#define MAP_LIST( elem ) \
-case ExtendedFilePickerElementIds::LISTBOX_##elem: \
- pWidget = m_pListControls[elem]; if (isAList != NULL) *isAList = sal_True; \
- break
-
-#define MAP_LIST_LABEL( elem ) \
-case ExtendedFilePickerElementIds::LISTBOX_##elem##_LABEL: \
- pWidget = m_pListControls[elem]; \
- break
-
-//--------------------------------------------------
-// Misc
-//-------------------------------------------------
-void SalAquaFilePicker::ensureFilterHelper() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- if (NULL == m_pFilterHelper) {
- m_pFilterHelper = new FilterHelper;
- m_pControlHelper->setFilterHelper(m_pFilterHelper);
- [m_pDelegate setFilterHelper:m_pFilterHelper];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SalAquaFilePicker::implInitialize()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- //call super
- SalAquaPicker::implInitialize();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SalAquaFilePicker::updateFilterUI() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- m_pControlHelper->updateFilterUI();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SalAquaFilePicker::updateSaveFileNameExtension() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (m_nDialogType != NAVIGATIONSERVICES_SAVE) {
- return;
- }
-
- // we need to set this here again because initial setting does
- //[m_pDialog setExtensionHidden:YES];
-
- SolarMutexGuard aGuard;
-
- if (m_pControlHelper->isAutoExtensionEnabled() == false) {
- OSL_TRACE("allowing other file types");
- [m_pDialog setAllowedFileTypes:nil];
- [m_pDialog setAllowsOtherFileTypes:YES];
- } else {
- ensureFilterHelper();
-
- OUStringList aStringList = m_pFilterHelper->getCurrentFilterSuffixList();
- if( aStringList.empty()) // #i9328#
- return;
-
- rtl::OUString suffix = (*(aStringList.begin())).copy(1);
- NSString *requiredFileType = [NSString stringWithOUString:suffix];
-
- [m_pDialog setRequiredFileType:requiredFileType];
-
- OSL_TRACE("disallowing other file types");
- [m_pDialog setAllowsOtherFileTypes:NO];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SalAquaFilePicker::filterControlChanged() {
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- if (m_pDialog == nil) {
- return;
- }
-
- SolarMutexGuard aGuard;
-
- updateSaveFileNameExtension();
-
- [m_pDialog validateVisibleColumns];
-
- FilePickerEvent evt;
- evt.ElementId = LISTBOX_FILTER;
- controlStateChanged( evt );
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/SalAquaFilePicker.hxx b/fpicker/source/aqua/SalAquaFilePicker.hxx
deleted file mode 100644
index cc08f96581..0000000000
--- a/fpicker/source/aqua/SalAquaFilePicker.hxx
+++ /dev/null
@@ -1,250 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SALAQUAFILEPICKER_HXX_
-#define _SALAQUAFILEPICKER_HXX_
-
-//_______________________________________________________________________________________________________________________
-// includes of other projects
-//_______________________________________________________________________________________________________________________
-
-#include <cppuhelper/compbase8.hxx>
-#include <com/sun/star/util/XCancellable.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
-#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
-#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp>
-#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
-#include <com/sun/star/beans/StringPair.hpp>
-
-#include "SalAquaPicker.hxx"
-
-#include <memory>
-#include <list>
-
-#include <rtl/ustring.hxx>
-#include "FilterHelper.hxx"
-#include "AquaFilePickerDelegate.hxx"
-
-//----------------------------------------------------------
-// Implementation class for the XFilePicker Interface
-//----------------------------------------------------------
-
-//----------------------------------------------------------
-// forward declarations
-//----------------------------------------------------------
-using ::rtl::OUString;
-
-//----------------------------------------------------------
-// class declaration
-//----------------------------------------------------------
-
-class SalAquaFilePicker :
- public SalAquaPicker,
- public cppu::WeakComponentImplHelper8<
- ::com::sun::star::ui::dialogs::XFilterManager,
- ::com::sun::star::ui::dialogs::XFilterGroupManager,
- ::com::sun::star::ui::dialogs::XFilePickerControlAccess,
- ::com::sun::star::ui::dialogs::XFilePickerNotifier,
- ::com::sun::star::lang::XInitialization,
- ::com::sun::star::util::XCancellable,
- ::com::sun::star::lang::XEventListener,
- ::com::sun::star::lang::XServiceInfo >
-{
-public:
-
- // constructor
- SalAquaFilePicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
-
- //------------------------------------------------------------------------------------
- // XFilePickerNotifier
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
- throw( ::com::sun::star::uno::RuntimeException );
- virtual void SAL_CALL removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------------------------------------------
- // XExecutableDialog functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL setTitle( const ::rtl::OUString& aTitle )
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual sal_Int16 SAL_CALL execute( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------------------------------------------
- // XFilePicker functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL setMultiSelectionMode( sal_Bool bMode )
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL setDefaultName( const ::rtl::OUString& aName )
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL setDisplayDirectory( const ::rtl::OUString& aDirectory )
- throw( com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException );
-
- virtual ::rtl::OUString SAL_CALL getDisplayDirectory( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------------------------------------------
- // XFilterManager functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL appendFilter( const ::rtl::OUString& aTitle, const ::rtl::OUString& aFilter )
- throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL setCurrentFilter( const ::rtl::OUString& aTitle )
- throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
-
- virtual ::rtl::OUString SAL_CALL getCurrentFilter( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------------------------------------------
- // XFilterGroupManager functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL appendFilterGroup( const ::rtl::OUString& sGroupTitle, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair >& aFilters )
- throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- //------------------------------------------------------------------------------------
- // XFilePickerControlAccess functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const ::com::sun::star::uno::Any& aValue )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Any SAL_CALL getValue( sal_Int16 aControlId, sal_Int16 aControlAction )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL enableControl( sal_Int16 nControlId, sal_Bool bEnable )
- throw(::com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL setLabel( sal_Int16 nControlId, const ::rtl::OUString& aLabel )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual ::rtl::OUString SAL_CALL getLabel( sal_Int16 nControlId )
- throw (::com::sun::star::uno::RuntimeException);
-
- //------------------------------------------------
- // XInitialization
- //------------------------------------------------
-
- virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
- throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
- //------------------------------------------------
- // XCancellable
- //------------------------------------------------
-
- virtual void SAL_CALL cancel( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------
- // XEventListener
- //------------------------------------------------
-
- using cppu::WeakComponentImplHelperBase::disposing;
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent )
- throw(::com::sun::star::uno::RuntimeException);
-
- //------------------------------------------------
- // XServiceInfo
- //------------------------------------------------
-
- virtual ::rtl::OUString SAL_CALL getImplementationName( )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( )
- throw(::com::sun::star::uno::RuntimeException);
-
- //------------------------------------------------------------------------------------
- // FilePicker Event functions
- //------------------------------------------------------------------------------------
-
- void SAL_CALL fileSelectionChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
- void SAL_CALL directoryChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
- // rtl::OUString SAL_CALL helpRequested( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent ) const;
- void SAL_CALL controlStateChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
- void SAL_CALL dialogSizeChanged( );
-
- inline AquaFilePickerDelegate * getDelegate() {
- return m_pDelegate;
- }
-
- inline rtl::OUString getSaveFileName() {
- return m_sSaveFileName;
- }
-
-private:
- // prevent copy and assignment
- SalAquaFilePicker( const SalAquaFilePicker& );
- SalAquaFilePicker& operator=( const SalAquaFilePicker& );
-
- virtual void ensureFilterHelper();
-
- // to instantiate own services
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceMgr;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >
- m_xListener;
-
- FilterHelper *m_pFilterHelper;
-
- rtl::OUString m_sSaveFileName;
-
- AquaFilePickerDelegate *m_pDelegate;
-
- void updateFilterUI();
- void updateSaveFileNameExtension();
-
-public:
-
- virtual ~SalAquaFilePicker();
-
- void filterControlChanged();
-
- void implInitialize();
-
-};
-
-#endif // _SALAQUAFILEPICKER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/SalAquaFolderPicker.cxx b/fpicker/source/aqua/SalAquaFolderPicker.cxx
deleted file mode 100644
index bad373aec8..0000000000
--- a/fpicker/source/aqua/SalAquaFolderPicker.cxx
+++ /dev/null
@@ -1,290 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <cppuhelper/interfacecontainer.h>
-#include <osl/diagnose.h>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <FPServiceInfo.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include "SalAquaFolderPicker.hxx"
-
-#include <tools/urlobj.hxx>
-#include <iostream>
-
-#include "resourceprovider.hxx"
-
-#include <tools/rc.hxx>
-
-#include <osl/file.hxx>
-#include "CFStringUtilities.hxx"
-#include "NSString_OOoAdditions.hxx"
-#include "NSURL_OOoAdditions.hxx"
-
-#pragma mark DEFINES
-#define CLASS_NAME "SalAquaFolderPicker"
-
-//------------------------------------------------------------------------
-// namespace directives
-//------------------------------------------------------------------------
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::ui::dialogs;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::uno;
-
-//------------------------------------------------------------------------
-// helper functions
-//------------------------------------------------------------------------
-
-namespace
-{
- // controling event notifications
- uno::Sequence<rtl::OUString> SAL_CALL FolderPicker_getSupportedServiceNames()
- {
- uno::Sequence<rtl::OUString> aRet(2);
- aRet[0] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.SystemFolderPicker" ));
- aRet[1] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ui.dialogs.AquaFolderPicker" ));
- return aRet;
- }
-}
-
-//-----------------------------------------------------------------------------------------
-// constructor
-//-----------------------------------------------------------------------------------------
-SalAquaFolderPicker::SalAquaFolderPicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr ) :
- m_xServiceMgr( xServiceMgr )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- m_nDialogType = NAVIGATIONSERVICES_DIRECTORY;
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-//-----------------------------------------------------------------------------------------
-// XExecutableDialog functions
-//-----------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFolderPicker::setTitle( const rtl::OUString& aTitle ) throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle);
-
- SolarMutexGuard aGuard;
-
- implsetTitle(aTitle);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-sal_Int16 SAL_CALL SalAquaFolderPicker::execute() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- sal_Int16 retVal = 0;
-
- int nResult = runandwaitforresult();
-
- switch( nResult )
- {
- case NSOKButton:
- OSL_TRACE("Dialog returned with OK");
- retVal = ExecutableDialogResults::OK;
- break;
-
- case NSCancelButton:
- OSL_TRACE("Dialog was cancelled!");
- retVal = ExecutableDialogResults::CANCEL;
- break;
-
- default:
- throw uno::RuntimeException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("The dialog returned with an unknown result!")), static_cast< XFolderPicker* >( this ));
- break;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return retVal;
-}
-
-//------------------------------------------------------------------------------------
-// XFolderPicker functions
-//------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFolderPicker::setDisplayDirectory( const rtl::OUString& aDirectory )
- throw( lang::IllegalArgumentException, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "directory", aDirectory);
-
- SolarMutexGuard aGuard;
-
- implsetDisplayDirectory(aDirectory);
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-rtl::OUString SAL_CALL SalAquaFolderPicker::getDisplayDirectory() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- OUString aDirectory = implgetDisplayDirectory();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, aDirectory);
-
- return aDirectory;
-}
-
-rtl::OUString SAL_CALL SalAquaFolderPicker::getDirectory() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- NSArray *files = nil;
- if (m_nDialogType == NAVIGATIONSERVICES_DIRECTORY) {
- files = [(NSOpenPanel*)m_pDialog URLs];
- }
-
- long nFiles = [files count];
- OSL_TRACE("# of items: %d", nFiles);
-
- if (nFiles < 1) {
- throw uno::RuntimeException(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("no directory selected")), static_cast< XFolderPicker* >( this ));
- }
-
- rtl::OUString aDirectory;
-
- NSURL *url = [files objectAtIndex:0];
- OSL_TRACE("handling %s", [[url description] UTF8String]);
-
- aDirectory = [url OUStringForInfo:FULLPATH];
-
- implsetDisplayDirectory(aDirectory);
-
- OSL_TRACE("dir url: %s", OUStringToOString(aDirectory, RTL_TEXTENCODING_UTF8).getStr());
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
- return aDirectory;
-}
-
-void SAL_CALL SalAquaFolderPicker::setDescription( const rtl::OUString& rDescription )
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "description", rDescription);
-
- [m_pDialog setMessage:[NSString stringWithOUString:rDescription]];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-// -------------------------------------------------
-// XServiceInfo
-// -------------------------------------------------
-
-rtl::OUString SAL_CALL SalAquaFolderPicker::getImplementationName()
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- rtl::OUString retVal(RTL_CONSTASCII_USTRINGPARAM( FOLDER_PICKER_IMPL_NAME ));
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
-
- return retVal;
-}
-
-sal_Bool SAL_CALL SalAquaFolderPicker::supportsService( const rtl::OUString& sServiceName )
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "serviceName", sServiceName);
-
- sal_Bool retVal = sal_False;
- uno::Sequence <rtl::OUString> supportedServicesNames = FolderPicker_getSupportedServiceNames();
-
- for( sal_Int32 n = supportedServicesNames.getLength(); n--; ) {
- if( supportedServicesNames[n].compareTo( sServiceName ) == 0) {
- retVal = sal_True;
- break;
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
- return retVal;
-}
-
-uno::Sequence<rtl::OUString> SAL_CALL SalAquaFolderPicker::getSupportedServiceNames()
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-
- return FolderPicker_getSupportedServiceNames();
-}
-
-//------------------------------------------------------------------------------------
-// XCancellable
-//------------------------------------------------------------------------------------
-
-void SAL_CALL SalAquaFolderPicker::cancel() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- [m_pDialog cancel:nil];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-// -------------------------------------------------
-// XEventListener
-// -------------------------------------------------
-
-void SAL_CALL SalAquaFolderPicker::disposing( const lang::EventObject& )
- throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/SalAquaFolderPicker.hxx b/fpicker/source/aqua/SalAquaFolderPicker.hxx
deleted file mode 100644
index 8922f77d7b..0000000000
--- a/fpicker/source/aqua/SalAquaFolderPicker.hxx
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SALAQUAFOLDERPICKER_HXX_
-#define _SALAQUAFOLDERPICKER_HXX_
-
-//_______________________________________________________________________________________________________________________
-// includes of other projects
-//_______________________________________________________________________________________________________________________
-
-#include <cppuhelper/implbase4.hxx>
-#include <com/sun/star/util/XCancellable.hpp>
-#include <com/sun/star/lang/XEventListener.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
-
-#include "SalAquaPicker.hxx"
-
-#include <memory>
-
-#include <rtl/ustring.hxx>
-
-#include <list>
-
-//----------------------------------------------------------
-// class declaration
-//----------------------------------------------------------
-
-class SalAquaFolderPicker :
- public SalAquaPicker,
- public cppu::WeakImplHelper4<
- ::com::sun::star::ui::dialogs::XFolderPicker,
- ::com::sun::star::lang::XServiceInfo,
- ::com::sun::star::lang::XEventListener,
- ::com::sun::star::util::XCancellable >
-{
-public:
-
- // constructor
- SalAquaFolderPicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
-
- //------------------------------------------------------------------------------------
- // XExecutableDialog functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL setTitle( const ::rtl::OUString& aTitle )
- throw( ::com::sun::star::uno::RuntimeException );
-
- virtual sal_Int16 SAL_CALL execute( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------------------------------------------
- // XFolderPicker functions
- //------------------------------------------------------------------------------------
-
- virtual void SAL_CALL setDisplayDirectory( const rtl::OUString& rDirectory )
- throw( com::sun::star::lang::IllegalArgumentException, com::sun::star::uno::RuntimeException );
-
- virtual rtl::OUString SAL_CALL getDisplayDirectory( )
- throw( com::sun::star::uno::RuntimeException );
-
- virtual rtl::OUString SAL_CALL getDirectory( )
- throw( com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL setDescription( const rtl::OUString& rDescription )
- throw( com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------
- // XServiceInfo
- //------------------------------------------------
-
- virtual ::rtl::OUString SAL_CALL getImplementationName( )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( )
- throw(::com::sun::star::uno::RuntimeException);
-
- //------------------------------------------------
- // XCancellable
- //------------------------------------------------
-
- virtual void SAL_CALL cancel( )
- throw( ::com::sun::star::uno::RuntimeException );
-
- //------------------------------------------------
- // XEventListener
- //------------------------------------------------
-
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& aEvent )
- throw(::com::sun::star::uno::RuntimeException);
-
-private:
- // prevent copy and assignment
- SalAquaFolderPicker( const SalAquaFolderPicker& );
- SalAquaFolderPicker& operator=( const SalAquaFolderPicker& );
-
- // to instantiate own services
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceMgr;
-
-};
-
-#endif // _SALAQUAFOLDERPICKER_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/SalAquaPicker.cxx b/fpicker/source/aqua/SalAquaPicker.cxx
deleted file mode 100644
index c970b35740..0000000000
--- a/fpicker/source/aqua/SalAquaPicker.cxx
+++ /dev/null
@@ -1,265 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <cppuhelper/interfacecontainer.h>
-#include <osl/diagnose.h>
-#include <com/sun/star/uno/Any.hxx>
-#include <FPServiceInfo.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include "SalAquaPicker.hxx"
-#include <tools/urlobj.hxx>
-#include <osl/file.hxx>
-#include "CFStringUtilities.hxx"
-#include "NSString_OOoAdditions.hxx"
-
-#include "NSURL_OOoAdditions.hxx"
-
-#include "SalAquaFilePicker.hxx"
-
-#include <stdio.h>
-
-#pragma mark DEFINES
-#define CLASS_NAME "SalAquaPicker"
-#define kSetHideExtensionStateKey @"NSNavLastUserSetHideExtensionButtonState"
-
-//------------------------------------------------------------------------
-// namespace directives
-//------------------------------------------------------------------------
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::uno;
-
-// constructor
-SalAquaPicker::SalAquaPicker()
-: m_pDialog(NULL)
-, m_pControlHelper(new ControlHelper())
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-SalAquaPicker::~SalAquaPicker()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
-
- if (NULL != m_pControlHelper)
- delete m_pControlHelper;
-
- if (NULL != m_pDialog)
- [m_pDialog release];
-
- [pool release];
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-void SAL_CALL SalAquaPicker::implInitialize()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- if (m_pDialog != nil) {
- return;
- }
-
- switch (m_nDialogType)
- {
- case NAVIGATIONSERVICES_OPEN:
- OSL_TRACE("NAVIGATIONSERVICES_OPEN");
- m_pDialog = [NSOpenPanel openPanel];
- [(NSOpenPanel*)m_pDialog setCanChooseDirectories:NO];
- [(NSOpenPanel*)m_pDialog setCanChooseFiles:YES];
- break;
-
- case NAVIGATIONSERVICES_SAVE:
- OSL_TRACE("NAVIGATIONSERVICES_SAVE");
- m_pDialog = [NSSavePanel savePanel];
- [(NSSavePanel*)m_pDialog setCanSelectHiddenExtension:NO]; //changed for issue #102102
- /* I would have loved to use
- * [(NSSavePanel*)m_pDialog setExtensionHidden:YES];
- * here but unfortunately this
- * a) only works when the dialog is already displayed because it seems to act on the corresponding checkbox (that we don't show but that doesn't matter)
- * b) Mac OS X saves this setting on an application-based level which means that the last state is always being restored again when the app runs for the next time
- *
- * So the only reliable way seems to be using the NSUserDefaults object because that is where that value is stored and
- * to just overwrite it if it has the wrong value.
- */
- NSUserDefaults *pDefaults = [NSUserDefaults standardUserDefaults];
- NSNumber *pExtn = [pDefaults objectForKey:kSetHideExtensionStateKey];
- if(pExtn == nil || [pExtn boolValue] == NO) {
- OSL_TRACE("Hiding extension");
- [pDefaults setBool:YES forKey:kSetHideExtensionStateKey];
- }
- break;
-
- case NAVIGATIONSERVICES_DIRECTORY:
- OSL_TRACE("NAVIGATIONSERVICES_DIRECTORY");
- m_pDialog = [NSOpenPanel openPanel];
- [(NSOpenPanel*)m_pDialog setCanChooseDirectories:YES];
- [(NSOpenPanel*)m_pDialog setCanChooseFiles:NO];
- break;
-
- default:
- OSL_TRACE("m_nDialogType is UNKNOWN: %d", m_nDialogType);
- break;
- }
-
- if (m_pDialog == nil) {
- OSL_TRACE("An error occurred while creating the dialog!");
- }
- else {
- [(NSOpenPanel*)m_pDialog setCanCreateDirectories:YES];
- //Retain the dialog instance or it will go away immediately
- [m_pDialog retain];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-int SalAquaPicker::run()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- NSAutoreleasePool *pool = [NSAutoreleasePool new];
-
- if (m_pDialog == NULL) {
- //this is the case e.g. for the folder picker at this stage
- implInitialize();
- }
-
- NSView *userPane = m_pControlHelper->getUserPane();
- if (userPane != NULL) {
- [m_pDialog setAccessoryView:userPane];
- }
-
- int retVal = 0;
-
- NSString *startDirectory;
- if (m_sDisplayDirectory.getLength() > 0) {
- NSString *temp = [NSString stringWithOUString:m_sDisplayDirectory];
- NSURL *url = [NSURL URLWithString:temp];
- startDirectory = [url path];
-
- OSL_TRACE("start dir: %s", [startDirectory UTF8String]);
- // NSLog(@"%@", startDirectory);
- }
- else {
- startDirectory = NSHomeDirectory();
- }
-
- switch(m_nDialogType) {
- case NAVIGATIONSERVICES_DIRECTORY:
- case NAVIGATIONSERVICES_OPEN:
- retVal = [(NSOpenPanel*)m_pDialog runModalForDirectory:startDirectory file:nil types:nil];
- break;
- case NAVIGATIONSERVICES_SAVE:
- retVal = [m_pDialog runModalForDirectory:startDirectory file:[NSString stringWithOUString:((SalAquaFilePicker*)this)->getSaveFileName()]/*[m_pDialog saveFilename]*/];
- break;
- // [m_pDialog beginSheetForDirectory:startDirectory file:[m_pDialog saveFilename] modalForWindow:[NSApp keyWindow] modalDelegate:((SalAquaFilePicker*)this)->getDelegate() didEndSelector:@selector(savePanelDidEnd:returnCode:contextInfo:) contextInfo:nil];
- default:
- break;
- }
-
- if (retVal == NSFileHandlingPanelOKButton) {
- NSString* pDir = [m_pDialog directory];
- if (pDir) {
- implsetDisplayDirectory([[NSURL fileURLWithPath:pDir] OUStringForInfo:FULLPATH]);
- }
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
-
- [pool release];
-
- return retVal;
-}
-
-int SalAquaPicker::runandwaitforresult()
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
-
- SolarMutexGuard aGuard;
-
- int status = this->run();
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__, status);
- return status;
-}
-
-void SAL_CALL SalAquaPicker::implsetDisplayDirectory( const rtl::OUString& aDirectory )
- throw( lang::IllegalArgumentException, uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "directory", aDirectory);
-
- SolarMutexGuard aGuard;
-
- if (aDirectory != m_sDisplayDirectory) {
- m_sDisplayDirectory = aDirectory;
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-rtl::OUString SAL_CALL SalAquaPicker::implgetDisplayDirectory() throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__);
- DBG_PRINT_EXIT(CLASS_NAME, __func__, m_sDisplayDirectory);
-
- return m_sDisplayDirectory;
-}
-
-void SAL_CALL SalAquaPicker::implsetTitle( const rtl::OUString& aTitle ) throw( uno::RuntimeException )
-{
- DBG_PRINT_ENTRY(CLASS_NAME, __func__, "title", aTitle);
-
- SolarMutexGuard aGuard;
-
- if (m_pDialog != nil) {
- [m_pDialog setTitle:[NSString stringWithOUString:aTitle]];
- }
-
- DBG_PRINT_EXIT(CLASS_NAME, __func__);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/SalAquaPicker.hxx b/fpicker/source/aqua/SalAquaPicker.hxx
deleted file mode 100644
index e39709abb6..0000000000
--- a/fpicker/source/aqua/SalAquaPicker.hxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SALAQUAFPICKER_HXX_
-#define _SALAQUAFPICKER_HXX_
-
-//_____________________________________________________________________________
-// includes of other projects
-//_____________________________________________________________________________
-
-#include <osl/mutex.hxx>
-
-#include <rtl/ustring.hxx>
-
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-
-#include <com/sun/star/uno/RuntimeException.hpp>
-#include "ControlHelper.hxx"
-
-#include <premac.h>
-#import <Cocoa/Cocoa.h>
-#include <postmac.h>
-
-//----------------------------------------------------------
-// class declaration
-//----------------------------------------------------------
-
-class SalAquaPicker
-{
-public:
- // constructor
- SalAquaPicker();
- virtual ~SalAquaPicker();
-
- int run();
- int runandwaitforresult();
-
- inline rtl::OUString getDisplayDirectory() { return m_sDisplayDirectory; }
-
- inline ControlHelper* getControlHelper() const {
- return m_pControlHelper;
- }
-
-protected:
-
- rtl::OUString m_sDisplayDirectory;
-
- NSSavePanel *m_pDialog;
-
- ControlHelper *m_pControlHelper;
-
- osl::Mutex m_rbHelperMtx;
-
- // The type of dialog
- enum NavigationServices_DialogType {
- NAVIGATIONSERVICES_OPEN,
- NAVIGATIONSERVICES_SAVE,
- NAVIGATIONSERVICES_DIRECTORY
- };
-
- NavigationServices_DialogType m_nDialogType;
-
- void implsetTitle( const ::rtl::OUString& aTitle )
- throw( ::com::sun::star::uno::RuntimeException );
-
- void implsetDisplayDirectory( const rtl::OUString& rDirectory )
- throw( com::sun::star::lang::IllegalArgumentException, com::sun::star::uno::RuntimeException );
-
- rtl::OUString implgetDisplayDirectory( )
- throw( com::sun::star::uno::RuntimeException );
-
- void implInitialize( );
-
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/fps_aqua.component b/fpicker/source/aqua/fps_aqua.component
deleted file mode 100644
index a04443e37f..0000000000
--- a/fpicker/source/aqua/fps_aqua.component
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--**********************************************************************
-*
-* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-*
-* Copyright 2000, 2010 Oracle and/or its affiliates.
-*
-* OpenOffice.org - a multi-platform office productivity suite
-*
-* This file is part of OpenOffice.org.
-*
-* OpenOffice.org is free software: you can redistribute it and/or modify
-* it under the terms of the GNU Lesser General Public License version 3
-* only, as published by the Free Software Foundation.
-*
-* OpenOffice.org is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License version 3 for more details
-* (a copy is included in the LICENSE file that accompanied this code).
-*
-* You should have received a copy of the GNU Lesser General Public License
-* version 3 along with OpenOffice.org. If not, see
-* <http://www.openoffice.org/license.html>
-* for a copy of the LGPLv3 License.
-*
-**********************************************************************-->
-
-<component loader="com.sun.star.loader.SharedLibrary"
- xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.ui.dialogs.SalAquaFilePicker">
- <service name="com.sun.star.ui.dialogs.AquaFilePicker"/>
- </implementation>
- <implementation name="com.sun.star.ui.dialogs.SalAquaFolderPicker">
- <service name="com.sun.star.ui.dialogs.AquaFolderPicker"/>
- </implementation>
-</component>
diff --git a/fpicker/source/aqua/fps_aqua.xml b/fpicker/source/aqua/fps_aqua.xml
deleted file mode 100644
index 955ad4e328..0000000000
--- a/fpicker/source/aqua/fps_aqua.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
- <module-name>fps</module-name>
- <component-description>
- <author>Florian Heckl, Pavel Janík</author>
- <name>com.sun.star.comp.ui.dialogs.FilePicker</name>
- <description>
- The native Mac OS X (Aqua) implementation of the FilePicker service.
- </description>
- <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
- <language>c++</language>
- <status value="beta"/>
- <supported-service>com.sun.star.ui.dialogs.FilePicker</supported-service>
- <service-dependency>...</service-dependency>
- <type>com.sun.star.ui.dialogs.XExecutableDialog</type>
- <type>com.sun.star.ui.dialogs.XFilePicker</type>
- <type>com.sun.star.ui.dialogs.XFilterManager</type>
- <type>com.sun.star.ui.dialogs.XFilterGroupManager</type>
- <type>com.sun.star.ui.dialogs.XFilePickerListener</type>
- <type>com.sun.star.ui.dialogs.ExecutableDialogException</type>
- <type>com.sun.star.ui.dialogs.XFilePickerNotifier</type>
- <type>com.sun.star.ui.dialogs.XFilePickerControlAccess</type>
- <type>com.sun.star.ui.dialogs.ExtendedFilePickerElementIds</type>
- <type>com.sun.star.ui.dialogs.ExecutableDialogResults</type>
- <type>com.sun.star.ui.dialogs.FilePickerEvent</type>
- <type>com.sun.star.ui.dialogs.CommonFilePickerElementIds</type>
- <type>com.sun.star.ui.dialogs.ListboxControlActions</type>
- <type>com.sun.star.ui.dialogs.TemplateDescription</type>
- <type>com.sun.star.ui.dialogs.FilePreviewImageFormats</type>
- <type>com.sun.star.util.XCancellable</type>
- <type>com.sun.star.lang.XComponent</type>
- <type>com.sun.star.lang.XMultiServiceFactory</type>
- <type>com.sun.star.lang.XSingleServiceFactory</type>
- <type>com.sun.star.lang.XServiceInfo</type>
- <type>com.sun.star.lang.XTypeProvider</type>
- <type>com.sun.star.lang.IllegalArgumentException</type>
- <type>com.sun.star.uno.TypeClass</type>
- <type>com.sun.star.uno.XWeak</type>
- <type>com.sun.star.uno.XAggregation</type>
- <type>com.sun.star.registry.XRegistryKey</type>
- <type>com.sun.star.container.XSet</type>
- </component-description>
- <component-description>
- <author>Florian Heckl, Pavel Janík</author>
- <name>com.sun.star.comp.ui.dialogs.FolderPicker</name>
- <description>
- The native Mac OS X (Aqua) implementation of the FolderPicker service.
- </description>
- <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
- <language>c++</language>
- <status value="beta"/>
- <supported-service>com.sun.star.ui.dialogs.FolderPicker</supported-service>
- <service-dependency>...</service-dependency>
- <type>com.sun.star.ui.dialogs.XExecutableDialog</type>
- <type>com.sun.star.ui.dialogs.XFolderPicker</type>
- <type>com.sun.star.ui.dialogs.ExecutableDialogException</type>
- <type>com.sun.star.ui.dialogs.ExecutableDialogResults</type>
- <type>com.sun.star.util.XCancellable</type>
- <type>com.sun.star.lang.XComponent</type>
- <type>com.sun.star.lang.XMultiServiceFactory</type>
- <type>com.sun.star.lang.XSingleServiceFactory</type>
- <type>com.sun.star.lang.XServiceInfo</type>
- <type>com.sun.star.lang.XTypeProvider</type>
- <type>com.sun.star.lang.IllegalArgumentException</type>
- <type>com.sun.star.uno.TypeClass</type>
- <type>com.sun.star.uno.XWeak</type>
- <type>com.sun.star.uno.XAggregation</type>
- <type>com.sun.star.registry.XRegistryKey</type>
- <type>com.sun.star.container.XSet</type>
- </component-description>
- <project-build-dependency>cppuhelper</project-build-dependency>
- <project-build-dependency>cppu</project-build-dependency>
- <project-build-dependency>sal</project-build-dependency>
- <runtime-module-dependency>cppuhelper</runtime-module-dependency>
- <runtime-module-dependency>cppu2</runtime-module-dependency>
- <runtime-module-dependency>sal2</runtime-module-dependency>
-</module-description>
diff --git a/fpicker/source/aqua/makefile.mk b/fpicker/source/aqua/makefile.mk
deleted file mode 100644
index ff0473c8a7..0000000000
--- a/fpicker/source/aqua/makefile.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=fpicker
-TARGET=fps_aqua.uno
-TARGETTYPE=GUI
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-DLLPRE=
-
-# ------------------------------------------------------------------
-
-.IF "$(GUIBASE)" != "aqua"
-
-dummy:
- @echo "Nothing to build. GUIBASE == $(GUIBASE)"
-
-.ELSE # we build for aqua
-CFLAGSCXX+=$(OBJCXXFLAGS)
-
-# --- Files --------------------------------------------------------
-
-SLOFILES =\
- $(SLO)$/resourceprovider.obj \
- $(SLO)$/FPentry.obj \
- $(SLO)$/SalAquaPicker.obj \
- $(SLO)$/SalAquaFilePicker.obj \
- $(SLO)$/SalAquaFolderPicker.obj \
- $(SLO)$/CFStringUtilities.obj \
- $(SLO)$/FilterHelper.obj \
- $(SLO)$/ControlHelper.obj \
- $(SLO)$/NSString_OOoAdditions.obj \
- $(SLO)$/NSURL_OOoAdditions.obj \
- $(SLO)$/AquaFilePickerDelegate.obj
-
-SHL1NOCHECK=TRUE
-SHL1TARGET= $(TARGET)
-SHL1OBJS= $(SLOFILES)
-SHL1STDLIBS=\
- $(VCLLIB) \
- $(TOOLSLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(SALLIB)
-
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
-SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-DEF1NAME=$(SHL1TARGET)
-
-.ENDIF # "$(GUIBASE)" != "aqua"
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
-ALLTAR : $(MISC)/fps_aqua.component
-
-$(MISC)/fps_aqua.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
- fps_aqua.component
- $(XSLTPROC) --nonet --stringparam uri \
- '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
- $(SOLARENV)/bin/createcomponent.xslt fps_aqua.component
diff --git a/fpicker/source/aqua/resourceprovider.cxx b/fpicker/source/aqua/resourceprovider.cxx
deleted file mode 100644
index 8681492be3..0000000000
--- a/fpicker/source/aqua/resourceprovider.cxx
+++ /dev/null
@@ -1,239 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-#include <osl/diagnose.h>
-#include <rtl/ustrbuf.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <tools/resmgr.hxx>
-#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-
-#include <svtools/svtools.hrc>
-
-#include <svtools/filedlg2.hrc>
-#include "NSString_OOoAdditions.hxx"
-
-#include "resourceprovider.hxx"
-
-//------------------------------------------------------------
-// namespace directives
-//------------------------------------------------------------
-
-using rtl::OUString;
-using namespace ::com::sun::star::ui::dialogs::ExtendedFilePickerElementIds;
-using namespace ::com::sun::star::ui::dialogs::CommonFilePickerElementIds;
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-static const char* RES_NAME = "fps_office";
-static const char* OTHER_RES_NAME = "svt";
-
-//------------------------------------------------------------
-// we have to translate control ids to resource ids
-//------------------------------------------------------------
-
-struct _Entry
-{
- sal_Int32 ctrlId;
- sal_Int16 resId;
-};
-
-_Entry CtrlIdToResIdTable[] = {
- { CHECKBOX_AUTOEXTENSION, STR_SVT_FILEPICKER_AUTO_EXTENSION },
- { CHECKBOX_PASSWORD, STR_SVT_FILEPICKER_PASSWORD },
- { CHECKBOX_FILTEROPTIONS, STR_SVT_FILEPICKER_FILTER_OPTIONS },
- { CHECKBOX_READONLY, STR_SVT_FILEPICKER_READONLY },
- { CHECKBOX_LINK, STR_SVT_FILEPICKER_INSERT_AS_LINK },
- { CHECKBOX_PREVIEW, STR_SVT_FILEPICKER_SHOW_PREVIEW },
- { PUSHBUTTON_PLAY, STR_SVT_FILEPICKER_PLAY },
- { LISTBOX_VERSION_LABEL, STR_SVT_FILEPICKER_VERSION },
- { LISTBOX_TEMPLATE_LABEL, STR_SVT_FILEPICKER_TEMPLATES },
- { LISTBOX_IMAGE_TEMPLATE_LABEL, STR_SVT_FILEPICKER_IMAGE_TEMPLATE },
- { CHECKBOX_SELECTION, STR_SVT_FILEPICKER_SELECTION },
- { FOLDERPICKER_TITLE, STR_SVT_FOLDERPICKER_DEFAULT_TITLE },
- { FOLDER_PICKER_DEF_DESCRIPTION, STR_SVT_FOLDERPICKER_DEFAULT_DESCRIPTION },
- { FILE_PICKER_OVERWRITE, STR_SVT_ALREADYEXISTOVERWRITE },
- { LISTBOX_FILTER_LABEL, STR_SVT_FILEPICKER_FILTER_TITLE}
-};
-
-_Entry OtherCtrlIdToResIdTable[] = {
- { FILE_PICKER_TITLE_OPEN, STR_FILEDLG_OPEN },
- { FILE_PICKER_TITLE_SAVE, STR_FILEDLG_SAVE },
- { FILE_PICKER_FILE_TYPE, STR_FILEDLG_TYPE }
-};
-
-
-const sal_Int32 SIZE_TABLE = SAL_N_ELEMENTS( CtrlIdToResIdTable );
-const sal_Int32 OTHER_SIZE_TABLE = SAL_N_ELEMENTS( OtherCtrlIdToResIdTable );
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-sal_Int16 CtrlIdToResId( sal_Int32 aControlId )
-{
- sal_Int16 aResId = -1;
-
- for ( sal_Int32 i = 0; i < SIZE_TABLE; i++ )
- {
- if ( CtrlIdToResIdTable[i].ctrlId == aControlId )
- {
- aResId = CtrlIdToResIdTable[i].resId;
- break;
- }
- }
-
- return aResId;
-}
-
-sal_Int16 OtherCtrlIdToResId( sal_Int32 aControlId )
-{
- sal_Int16 aResId = -1;
-
- for ( sal_Int32 i = 0; i < OTHER_SIZE_TABLE; i++ )
- {
- if ( OtherCtrlIdToResIdTable[i].ctrlId == aControlId )
- {
- aResId = OtherCtrlIdToResIdTable[i].resId;
- break;
- }
- }
-
- return aResId;
-}
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-class CResourceProvider_Impl
-{
-public:
-
- //-------------------------------------
- //
- //-------------------------------------
-
- CResourceProvider_Impl( )
- {
- m_ResMgr = ResMgr::CreateResMgr( RES_NAME );
- m_OtherResMgr = ResMgr::CreateResMgr( OTHER_RES_NAME );
- }
-
- //-------------------------------------
- //
- //-------------------------------------
-
- ~CResourceProvider_Impl( )
- {
- delete m_ResMgr;
- delete m_OtherResMgr;
- }
-
- //-------------------------------------
- //
- //-------------------------------------
-
- NSString* getResString( sal_Int16 aId )
- {
- String aResString;
- OUString aResOUString;
-
- const SolarMutexGuard aGuard;
-
- try
- {
- OSL_ASSERT( m_ResMgr && m_OtherResMgr );
-
- // translate the control id to a resource id
- sal_Int16 aResId = CtrlIdToResId( aId );
- if ( aResId > -1 )
- aResString = String( ResId( aResId, *m_ResMgr ) );
- else
- {
- aResId = OtherCtrlIdToResId( aId );
- if ( aResId > -1 ) {
- aResString = String( ResId( aResId, *m_OtherResMgr ) );
- }
- }
- if ( aResId > -1 )
- aResOUString = OUString( aResString );
- }
- catch(...)
- {
- }
-
- return [NSString stringWithOUString:aResOUString];
- }
-
-public:
- ResMgr* m_ResMgr;
- ResMgr* m_OtherResMgr;
-};
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-CResourceProvider::CResourceProvider( ) :
- m_pImpl( new CResourceProvider_Impl() )
-{
-}
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-CResourceProvider::~CResourceProvider( )
-{
- delete m_pImpl;
-}
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-NSString* CResourceProvider::getResString( sal_Int32 aId )
-{
- NSString* sImmutable = m_pImpl->getResString( aId );
- NSMutableString *sMutableString = [NSMutableString stringWithString:sImmutable];
- [sMutableString replaceOccurrencesOfString:@"~" withString:@"" options:0 range:NSMakeRange(0, [sMutableString length])];
-
- NSString *result = [NSString stringWithString:sMutableString];
-
- return result;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/fpicker/source/aqua/resourceprovider.hxx b/fpicker/source/aqua/resourceprovider.hxx
deleted file mode 100644
index fb0007ba12..0000000000
--- a/fpicker/source/aqua/resourceprovider.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#ifndef _RESOURCEPROVIDER_HXX_
-#define _RESOURCEPROVIDER_HXX_
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-#include <sal/types.h>
-
-#include <premac.h>
-#include <Cocoa/Cocoa.h>
-#include <postmac.h>
-
-#define FOLDERPICKER_TITLE 500
-#define FOLDER_PICKER_DEF_DESCRIPTION 501
-#define FILE_PICKER_TITLE_OPEN 502
-#define FILE_PICKER_TITLE_SAVE 503
-#define FILE_PICKER_FILE_TYPE 504
-#define FILE_PICKER_OVERWRITE 505
-
-//------------------------------------------------------------------------
-// declarations
-//------------------------------------------------------------------------
-
-class CResourceProvider_Impl;
-
-class CResourceProvider
-{
-public:
- CResourceProvider( );
- ~CResourceProvider( );
-
- NSString* getResString( sal_Int32 aId );
-
-private:
- CResourceProvider_Impl* m_pImpl;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */