diff options
author | Andreas Kling <kling@serenityos.org> | 2020-09-17 14:34:47 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-09-17 14:34:47 +0200 |
commit | 8055f7a1f5e511e5e4e8c12d98f8799d8c9145eb (patch) | |
tree | 948ca4c56825e5c74c0e261f1c4ace0f94bdac5f /Applications/FileManager | |
parent | 4e8c50d92d0077e3f6cec61cb936db425acefdc8 (diff) | |
download | serenity-8055f7a1f5e511e5e4e8c12d98f8799d8c9145eb.zip |
FileManager: Move the DesktopWidget to its own compilation unit
Diffstat (limited to 'Applications/FileManager')
-rw-r--r-- | Applications/FileManager/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Applications/FileManager/DesktopWidget.cpp | 47 | ||||
-rw-r--r-- | Applications/FileManager/DesktopWidget.h | 45 | ||||
-rw-r--r-- | Applications/FileManager/main.cpp | 19 |
4 files changed, 95 insertions, 17 deletions
diff --git a/Applications/FileManager/CMakeLists.txt b/Applications/FileManager/CMakeLists.txt index d54efc046c..d8d1178538 100644 --- a/Applications/FileManager/CMakeLists.txt +++ b/Applications/FileManager/CMakeLists.txt @@ -1,4 +1,5 @@ set(SOURCES + DesktopWidget.cpp DirectoryView.cpp FileUtils.cpp main.cpp diff --git a/Applications/FileManager/DesktopWidget.cpp b/Applications/FileManager/DesktopWidget.cpp new file mode 100644 index 0000000000..7ea01de9e8 --- /dev/null +++ b/Applications/FileManager/DesktopWidget.cpp @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2020, Andreas Kling <kling@serenityos.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "DesktopWidget.h" +#include <LibGUI/Painter.h> + +namespace FileManager { + +DesktopWidget::DesktopWidget() +{ +} + +DesktopWidget::~DesktopWidget() +{ +} + +void DesktopWidget::paint_event(GUI::PaintEvent& event) +{ + GUI::Painter painter(*this); + painter.add_clip_rect(event.rect()); + painter.clear_rect(event.rect(), Color(0, 0, 0, 0)); +} + +} diff --git a/Applications/FileManager/DesktopWidget.h b/Applications/FileManager/DesktopWidget.h new file mode 100644 index 0000000000..a6fd5b614b --- /dev/null +++ b/Applications/FileManager/DesktopWidget.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2020, Andreas Kling <kling@serenityos.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#pragma once + +#include <LibGUI/Widget.h> + +namespace FileManager { + +class DesktopWidget final : public GUI::Widget { + C_OBJECT(DesktopWidget); + +public: + virtual ~DesktopWidget() override; + +private: + virtual void paint_event(GUI::PaintEvent&) override; + + DesktopWidget(); +}; + +} diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index 2957c4b2fd..3ea266646b 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -24,6 +24,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "DesktopWidget.h" #include "DirectoryView.h" #include "FileUtils.h" #include "PropertiesDialog.h" @@ -120,22 +121,6 @@ int main(int argc, char** argv) return run_in_windowed_mode(move(config), initial_location); } -class DesktopWidget final : public GUI::Widget { - C_OBJECT(DesktopWidget); - -private: - virtual void paint_event(GUI::PaintEvent& event) override - { - GUI::Painter painter(*this); - painter.add_clip_rect(event.rect()); - painter.clear_rect(event.rect(), Color(0, 0, 0, 0)); - } - - DesktopWidget() - { - } -}; - int run_in_desktop_mode(RefPtr<Core::ConfigFile> config) { static constexpr const char* process_name = "FileManager (Desktop)"; @@ -148,7 +133,7 @@ int run_in_desktop_mode(RefPtr<Core::ConfigFile> config) window->set_window_type(GUI::WindowType::Desktop); window->set_has_alpha_channel(true); - auto& desktop_widget = window->set_main_widget<DesktopWidget>(); + auto& desktop_widget = window->set_main_widget<FileManager::DesktopWidget>(); desktop_widget.set_layout<GUI::VerticalBoxLayout>(); auto& directory_view = desktop_widget.add<DirectoryView>(DirectoryView::Mode::Desktop); |