DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit c17f6983d5a8e047e8c5d7b95e631ef315b6ad16
parent 378b305c06652f20e840c74a4c387d8df89c4e9b
Author: falkTX <falktx@falktx.com>
Date:   Sun, 13 Jun 2021 15:35:44 +0100

Delete now unused code

Diffstat:
Ddgl/src/WindowFileBrowser.cpp | 223-------------------------------------------------------------------------------
1 file changed, 0 insertions(+), 223 deletions(-)

diff --git a/dgl/src/WindowFileBrowser.cpp b/dgl/src/WindowFileBrowser.cpp @@ -1,223 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2020 Filipe Coelho <falktx@falktx.com> - * Copyright (C) 2019 Jean Pierre Cimalando <jp-dev@inbox.ru> - * Copyright (C) 2019 Robin Gareus <robin@gareus.org> - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "../StandaloneWindow.hpp" - -// static int fib_filter_filename_filter(const char* const name) -// { -// return 1; -// (void)name; -// } - -// TODO use DGL_NAMESPACE for class names - -#ifdef DISTRHO_OS_MAC -@interface FilePanelDelegate : NSObject -{ - void (*fCallback)(NSOpenPanel*, int, void*); - void* fUserData; -} --(id)initWithCallback:(void(*)(NSOpenPanel*, int, void*))callback userData:(void*)userData; --(void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; -@end - -@implementation FilePanelDelegate --(id)initWithCallback:(void(*)(NSOpenPanel*, int, void*))callback userData:(void *)userData -{ - [super init]; - self->fCallback = callback; - self->fUserData = userData; - return self; -} - --(void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo -{ - self->fCallback(sheet, returnCode, self->fUserData); - (void)contextInfo; -} -@end -#endif - -START_NAMESPACE_DGL - -// ----------------------------------------------------------------------- - -bool Window::openFileBrowser(const FileBrowserOptions& options) -{ -#if defined(DISTRHO_OS_WINDOWS) - // the old and compatible dialog API - OPENFILENAMEW ofn; - memset(&ofn, 0, sizeof(ofn)); - - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = pData->hwnd; - - // set initial directory in UTF-16 coding - std::vector<WCHAR> startDirW; - if (options.startDir) - { - startDirW.resize(strlen(options.startDir) + 1); - if (MultiByteToWideChar(CP_UTF8, 0, options.startDir, -1, startDirW.data(), startDirW.size())) - ofn.lpstrInitialDir = startDirW.data(); - } - - // set title in UTF-16 coding - std::vector<WCHAR> titleW; - if (options.title) - { - titleW.resize(strlen(options.title) + 1); - if (MultiByteToWideChar(CP_UTF8, 0, options.title, -1, titleW.data(), titleW.size())) - ofn.lpstrTitle = titleW.data(); - } - - // prepare a buffer to receive the result - std::vector<WCHAR> fileNameW(32768); // the Unicode maximum - ofn.lpstrFile = fileNameW.data(); - ofn.nMaxFile = (DWORD)fileNameW.size(); - - // TODO synchronous only, can't do better with WinAPI native dialogs. - // threading might work, if someone is motivated to risk it. - if (GetOpenFileNameW(&ofn)) - { - // back to UTF-8 - std::vector<char> fileNameA(4 * 32768); - if (WideCharToMultiByte(CP_UTF8, 0, fileNameW.data(), -1, fileNameA.data(), (int)fileNameA.size(), nullptr, nullptr)) - { - // handle it during the next idle cycle (fake async) - pData->fSelectedFile = fileNameA.data(); - } - } - - return true; - -#elif defined(DISTRHO_OS_MAC) - if (pData->fOpenFilePanel) // permit one dialog at most - { - [pData->fOpenFilePanel makeKeyAndOrderFront:nil]; - return false; - } - - NSOpenPanel* panel = [NSOpenPanel openPanel]; - pData->fOpenFilePanel = [panel retain]; - - [panel setCanChooseFiles:YES]; - [panel setCanChooseDirectories:NO]; - [panel setAllowsMultipleSelection:NO]; - - if (options.startDir) - [panel setDirectory:[NSString stringWithUTF8String:options.startDir]]; - - if (options.title) - { - NSString* titleString = [[NSString alloc] - initWithBytes:options.title - length:strlen(options.title) - encoding:NSUTF8StringEncoding]; - [panel setTitle:titleString]; - } - - id delegate = pData->fFilePanelDelegate; - if (!delegate) - { - delegate = [[FilePanelDelegate alloc] initWithCallback:&PrivateData::openPanelDidEnd - userData:pData]; - pData->fFilePanelDelegate = [delegate retain]; - } - - [panel beginSheetForDirectory:nullptr - file:nullptr - modalForWindow:nullptr - modalDelegate:delegate - didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:) - contextInfo:nullptr]; - - return true; - -#elif defined(SOFD_HAVE_X11) - using DISTRHO_NAMESPACE::String; - - // -------------------------------------------------------------------------- - // configure start dir - - // TODO: get abspath if needed - // TODO: cross-platform - - String startDir(options.startDir); - -# ifdef DISTRHO_OS_LINUX - if (startDir.isEmpty()) - { - if (char* const dir_name = get_current_dir_name()) - { - startDir = dir_name; - std::free(dir_name); - } - } -# endif - - DISTRHO_SAFE_ASSERT_RETURN(startDir.isNotEmpty(), false); - - if (! startDir.endsWith('/')) - startDir += "/"; - - DISTRHO_SAFE_ASSERT_RETURN(x_fib_configure(0, startDir) == 0, false); - - // -------------------------------------------------------------------------- - // configure title - - String title(options.title); - - if (title.isEmpty()) - { - title = pData->getTitle(); - - if (title.isEmpty()) - title = "FileBrowser"; - } - - DISTRHO_SAFE_ASSERT_RETURN(x_fib_configure(1, title) == 0, false); - - // -------------------------------------------------------------------------- - // configure filters - - x_fib_cfg_filter_callback(nullptr); //fib_filter_filename_filter); - - // -------------------------------------------------------------------------- - // configure buttons - - x_fib_cfg_buttons(3, options.buttons.listAllFiles-1); - x_fib_cfg_buttons(1, options.buttons.showHidden-1); - x_fib_cfg_buttons(2, options.buttons.showPlaces-1); - - // -------------------------------------------------------------------------- - // show - - return (x_fib_show(pData->xDisplay, pData->xWindow, /*options.width*/0, /*options.height*/0) == 0); - -#else - // not implemented - return false; - - // unused - (void)options; -#endif -} - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL