![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <Window.h>

Classes | |
| struct | Impl |
Public Member Functions | |
| Window (const std::string &title, int flags=0) | |
| Window (const std::string &title, int width, int height, int flags=0) | |
| Window (const std::string &title, int x, int y, int width, int height, int flags=0) | |
| virtual | ~Window () |
| const Theme & | GetTheme () const |
| visualization::rendering::Renderer & | GetRenderer () const |
| Rect | GetOSFrame () const |
| void | SetOSFrame (const Rect &r) |
| const char * | GetTitle () const |
| void | SetTitle (const char *title) |
| void | SizeToFit () |
| void | SetSize (const Size &size) |
| Sets the size of the window in pixels. Includes menubar on Linux. More... | |
| Size | GetSize () const |
| Rect | GetContentRect () const |
| float | GetScaling () const |
| Returns the scaling factor from OS pixels to device pixels. More... | |
| Point | GlobalToWindowCoord (int global_x, int global_y) |
| Returns the global point (in OS pixels) in window local coordinates. More... | |
| bool | IsVisible () const |
| void | Show (bool vis=true) |
| void | Close () |
| void | SetNeedsLayout () |
| Instructs the window to relayout before the next draw. More... | |
| void | PostRedraw () |
| void | SetTopmost (bool topmost) |
| void | RaiseToTop () const |
| bool | IsActiveWindow () const |
| void | SetFocusWidget (Widget *w) |
| Sets. More... | |
| void | AddChild (std::shared_ptr< Widget > w) |
| void | SetOnMenuItemActivated (Menu::ItemId item_id, std::function< void()> callback) |
| void | SetOnTickEvent (std::function< bool()> callback) |
| void | SetOnClose (std::function< bool()> callback) |
| void | SetOnKeyEvent (std::function< bool(const KeyEvent &)> callback) |
| void | ShowDialog (std::shared_ptr< Dialog > dlg) |
| void | CloseDialog () |
| Closes the dialog. More... | |
| void | ShowMessageBox (const char *title, const char *message) |
| void | DestroyWindow () |
| virtual void | OnMenuItemSelected (Menu::ItemId item_id) |
| virtual void | OnDragDropped (const char *path) |
| void | ShowMenu (bool show) |
| int | GetMouseMods () const |
| std::string | GetWebRTCUID () const |
| void | OnDraw () |
| void | OnResize () |
| void | OnMouseEvent (const MouseEvent &e) |
| void | OnKeyEvent (const KeyEvent &e) |
| void | OnTextInput (const TextInputEvent &e) |
| void | OnTickEvent (const TickEvent &e) |
| WindowSystem::OSWindow | GetOSWindow () const |
Static Public Attributes | |
| static const int | FLAG_HIDDEN = (1 << 0) |
| static const int | FLAG_TOPMOST = (1 << 1) |
Protected Member Functions | |
| virtual Size | CalcPreferredSize () |
| virtual void | Layout (const LayoutContext &context) |
| LayoutContext | GetLayoutContext () |
| const std::vector< std::shared_ptr< Widget > > & | GetChildren () const |
|
explicit |
Creates a Window that is auto-sized and centered. Window creation is NOT thread-safe. Window must be created on the same thread that calls Application::Run().
Definition at line 237 of file Window.cpp.
| Window::Window | ( | const std::string & | title, |
| int | width, | ||
| int | height, | ||
| int | flags = 0 |
||
| ) |
Creates a Window that is centered. Window creation is NOT thread-safe. Window must be created on the same thread that calls Application::Run().
Definition at line 240 of file Window.cpp.
| Window::Window | ( | const std::string & | title, |
| int | x, | ||
| int | y, | ||
| int | width, | ||
| int | height, | ||
| int | flags = 0 |
||
| ) |
Creates a Window. Window creation is NOT thread-safe. Window must be created on the same thread that calls Application::Run().
Definition at line 246 of file Window.cpp.
References cloudViewer::visualization::gui::colorToImgui(), FLAG_HIDDEN, cloudViewer::visualization::gui::WindowSystem::FLAG_HIDDEN, FLAG_TOPMOST, cloudViewer::visualization::gui::WindowSystem::FLAG_TOPMOST, cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetTheme(), cloudViewer::visualization::gui::Application::GetWindowSystem(), height, cloudViewer::visualization::gui::KEY_BACKSPACE, cloudViewer::visualization::gui::KEY_DELETE, cloudViewer::visualization::gui::KEY_DOWN, cloudViewer::visualization::gui::KEY_END, cloudViewer::visualization::gui::KEY_ENTER, cloudViewer::visualization::gui::KEY_ESCAPE, cloudViewer::visualization::gui::KEY_HOME, cloudViewer::visualization::gui::KEY_INSERT, cloudViewer::visualization::gui::KEY_LEFT, cloudViewer::visualization::gui::KEY_PAGEDOWN, cloudViewer::visualization::gui::KEY_PAGEUP, cloudViewer::visualization::gui::KEY_RIGHT, cloudViewer::visualization::gui::KEY_TAB, cloudViewer::visualization::gui::KEY_UP, max(), scaling, theme, cloudViewer::visualization::gui::Application::VerifyIsInitialized(), and width.
|
virtual |
Definition at line 400 of file Window.cpp.
References DestroyWindow().
| void Window::AddChild | ( | std::shared_ptr< Widget > | w | ) |
Definition at line 597 of file Window.cpp.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes().
|
protectedvirtual |
Returns the preferred size of the window. The window is not obligated to honor this size. If all children of the window are layouts, this function does not need to be overridden. This function can only be called after MakeDrawContextCurrent() has been called.
Definition at line 475 of file Window.cpp.
References cloudViewer::visualization::gui::Rect::GetBottom(), GetLayoutContext(), cloudViewer::visualization::gui::Rect::GetRight(), and cloudViewer::visualization::gui::Rect::UnionedWith().
Referenced by OnResize(), and SizeToFit().
| void Window::Close | ( | ) |
Closes the window and destroys it (unless the close callback cancels the close)
Definition at line 559 of file Window.cpp.
References cloudViewer::visualization::gui::WindowSystem::CancelUserClose(), cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and cloudViewer::visualization::gui::Application::RemoveWindow().
Referenced by OnKeyEvent(), cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| void Window::CloseDialog | ( | ) |
Closes the dialog.
Definition at line 648 of file Window.cpp.
References PostRedraw(), and SetFocusWidget().
Referenced by cloudViewer::visualization::GuiVisualizer::LoadGeometry(), cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), ShowDialog(), and ShowMessageBox().
| void Window::DestroyWindow | ( | ) |
This is for internal use in rare circumstances when the destructor will not be called in a timely fashion.
Definition at line 409 of file Window.cpp.
References cloudViewer::visualization::gui::WindowSystem::DestroyWindow(), cloudViewer::visualization::gui::Application::GetInstance(), and cloudViewer::visualization::gui::Application::GetWindowSystem().
Referenced by ~Window().
|
protected |
Definition at line 431 of file Window.cpp.
Referenced by cloudViewer::visualization::gui::PyWindow::Layout().
| Rect Window::GetContentRect | ( | ) | const |
Returns the rectangle that is available to widgets to use; excludes the menubar.
Definition at line 526 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetMenubar(), GetSize(), GetTheme(), and size.
Referenced by cloudViewer::visualization::visualizer::O3DVisualizer::Layout(), cloudViewer::visualization::GuiVisualizer::Layout(), Layout(), cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), and ShowDialog().
|
protected |
Definition at line 679 of file Window.cpp.
References GetTheme().
Referenced by CalcPreferredSize(), and ShowDialog().
| int Window::GetMouseMods | ( | ) | const |
Definition at line 416 of file Window.cpp.
| Rect Window::GetOSFrame | ( | ) | const |
Gets the window's size and position in OS pixels, not actual device pixels.
Definition at line 451 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::WindowSystem::GetWindowPos(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and size.
Referenced by OnResize(), cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| WindowSystem::OSWindow Window::GetOSWindow | ( | ) | const |
Definition at line 701 of file Window.cpp.
| visualization::rendering::Renderer & Window::GetRenderer | ( | ) | const |
Definition at line 447 of file Window.cpp.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::GuiVisualizer::SetIBL().
| float Window::GetScaling | ( | ) | const |
Returns the scaling factor from OS pixels to device pixels.
Definition at line 538 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::WindowSystem::GetWindowScaleFactor(), and cloudViewer::visualization::gui::Application::GetWindowSystem().
Referenced by OnResize(), cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| Size Window::GetSize | ( | ) | const |
Returns the total interior size of window, in pixels. On Linux this includes the menubar.
Definition at line 521 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::WindowSystem::GetWindowSizePixels(), and cloudViewer::visualization::gui::Application::GetWindowSystem().
Referenced by GetContentRect(), OnResize(), cloudViewer::visualization::gui::ImguiFilamentBridge::OnWindowResized(), cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| const Theme & Window::GetTheme | ( | ) | const |
Definition at line 445 of file Window.cpp.
Referenced by GetContentRect(), GetLayoutContext(), cloudViewer::visualization::GuiVisualizer::LoadGeometry(), cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::gui::pybind_gui_classes(), and ShowMessageBox().
| const char * Window::GetTitle | ( | ) | const |
Definition at line 464 of file Window.cpp.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| std::string Window::GetWebRTCUID | ( | ) | const |
Returns the window's unique identifier when WebRTCWindowSystem is in use. Returns "window_undefined" if the window system is not WebRTCWindowSystem.
Definition at line 418 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance().
Referenced by cloudViewer::visualization::pybind_o3dvisualizer().
| Point Window::GlobalToWindowCoord | ( | int | global_x, |
| int | global_y | ||
| ) |
Returns the global point (in OS pixels) in window local coordinates.
Definition at line 543 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::WindowSystem::GetWindowPos(), and cloudViewer::visualization::gui::Application::GetWindowSystem().
| bool Window::IsActiveWindow | ( | ) | const |
Definition at line 590 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and cloudViewer::visualization::gui::WindowSystem::IsActiveWindow().
Referenced by cloudViewer::visualization::gui::pybind_gui_classes().
| bool Window::IsVisible | ( | ) | const |
Definition at line 549 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::WindowSystem::GetWindowIsVisible(), and cloudViewer::visualization::gui::Application::GetWindowSystem().
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
|
protectedvirtual |
Lays out all the widgets in the window. If all children of the window are layouts, this function does not need to be overridden.
Reimplemented in cloudViewer::visualization::gui::PyWindow, cloudViewer::visualization::GuiVisualizer, and cloudViewer::visualization::visualizer::O3DVisualizer.
Definition at line 681 of file Window.cpp.
References context, and GetContentRect().
Referenced by cloudViewer::visualization::visualizer::O3DVisualizer::Layout(), cloudViewer::visualization::GuiVisualizer::Layout(), and cloudViewer::visualization::gui::PyWindow::Layout().
|
virtual |
Reimplemented in cloudViewer::visualization::GuiVisualizer.
Definition at line 1224 of file Window.cpp.
| void Window::OnDraw | ( | ) |
Definition at line 925 of file Window.cpp.
References PostRedraw(), cloudViewer::visualization::gui::Widget::REDRAW, cloudViewer::visualization::gui::Widget::RELAYOUT, and result.
| void Window::OnKeyEvent | ( | const KeyEvent & | e | ) |
Definition at line 1154 of file Window.cpp.
References cloudViewer::visualization::gui::ALT, Close(), cloudViewer::visualization::gui::CTRL, cloudViewer::visualization::gui::KeyEvent::DOWN, cloudViewer::visualization::gui::KeyEvent::key, cloudViewer::visualization::gui::KEY_ALT, cloudViewer::visualization::gui::KEY_ESCAPE, cloudViewer::visualization::gui::KEY_LCTRL, cloudViewer::visualization::gui::KEY_LSHIFT, cloudViewer::visualization::gui::KEY_META, cloudViewer::visualization::gui::KEY_RCTRL, cloudViewer::visualization::gui::KEY_RSHIFT, cloudViewer::visualization::gui::META, PostRedraw(), cloudViewer::visualization::gui::SHIFT, cloudViewer::visualization::gui::KeyEvent::type, and cloudViewer::visualization::gui::KeyEvent::UP.
|
virtual |
Reimplemented in cloudViewer::visualization::GuiVisualizer.
Definition at line 693 of file Window.cpp.
References callback, and PostRedraw().
| void Window::OnMouseEvent | ( | const MouseEvent & | e | ) |
Definition at line 1034 of file Window.cpp.
References abs(), cloudViewer::visualization::gui::SceneWidget::BEST, cloudViewer::visualization::gui::MouseEvent::BUTTON_DOWN, cloudViewer::visualization::gui::MouseEvent::BUTTON_UP, cloudViewer::visualization::gui::Widget::CONSUMED, cloudViewer::visualization::gui::Rect::Contains(), context, cloudViewer::visualization::gui::MouseEvent::DRAG, cloudViewer::visualization::gui::MouseEvent::modifiers, cloudViewer::visualization::gui::MouseEvent::MOVE, PostRedraw(), result, SetFocusWidget(), cloudViewer::visualization::gui::MouseEvent::type, cloudViewer::visualization::gui::MouseEvent::WHEEL, cloudViewer::visualization::gui::MouseEvent::wheel, cloudViewer::visualization::gui::MouseEvent::x, and cloudViewer::visualization::gui::MouseEvent::y.
| void Window::OnResize | ( | ) |
Definition at line 956 of file Window.cpp.
References CalcPreferredSize(), cloudViewer::visualization::gui::Application::DEFAULT_FONT_ID, cloudViewer::visualization::gui::SceneWidget::FAST, cloudViewer::visualization::gui::Application::GetInstance(), GetOSFrame(), GetScaling(), cloudViewer::visualization::gui::WindowSystem::GetScreenSize(), GetSize(), cloudViewer::visualization::gui::Application::GetWindowSystem(), cloudViewer::visualization::gui::Rect::height, min(), PostRedraw(), cloudViewer::visualization::gui::WindowSystem::ResizeRenderer(), scaling, size, and cloudViewer::visualization::gui::Rect::width.
| void Window::OnTextInput | ( | const TextInputEvent & | e | ) |
Definition at line 1195 of file Window.cpp.
References PostRedraw(), and cloudViewer::visualization::gui::TextInputEvent::utf8.
| void Window::OnTickEvent | ( | const TickEvent & | e | ) |
Definition at line 1204 of file Window.cpp.
References PostRedraw(), and cloudViewer::visualization::gui::Widget::REDRAW.
| void Window::PostRedraw | ( | ) |
Sends a draw event to the window through the operating system's event queue.
Definition at line 573 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and cloudViewer::visualization::gui::WindowSystem::PostRedrawEvent().
Referenced by CloseDialog(), OnDraw(), OnKeyEvent(), OnMenuItemSelected(), OnMouseEvent(), OnResize(), OnTextInput(), OnTickEvent(), cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), and cloudViewer::visualization::GuiVisualizer::SetIBL().
| void Window::RaiseToTop | ( | ) | const |
Definition at line 585 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and cloudViewer::visualization::gui::WindowSystem::RaiseWindowToTop().
| void Window::SetFocusWidget | ( | Widget * | w | ) |
Sets.
| w | as widget with text focus. |
Definition at line 595 of file Window.cpp.
Referenced by CloseDialog(), OnMouseEvent(), cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::GuiVisualizer::Impl::SetMouseControls().
| void Window::SetNeedsLayout | ( | ) |
Instructs the window to relayout before the next draw.
Definition at line 571 of file Window.cpp.
Referenced by cloudViewer::visualization::visualizer::O3DVisualizer::AddAction(), cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::gui::pybind_gui_classes(), and ShowMenu().
| void Window::SetOnClose | ( | std::function< bool()> | callback | ) |
Sets a callback that will be called immediately before the window is closed. Callback should return true if the window should continue closing or false to cancel the close.
Definition at line 611 of file Window.cpp.
References callback.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| void Window::SetOnKeyEvent | ( | std::function< bool(const KeyEvent &)> | callback | ) |
Sets a callback that will intercept key event dispatching to focused widget. Callback should return true to stop more dispatching or false to dispatch to focused widget.
Definition at line 615 of file Window.cpp.
References callback.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes().
| void Window::SetOnMenuItemActivated | ( | Menu::ItemId | item_id, |
| std::function< void()> | callback | ||
| ) |
Sets a callback for menu items. If you inherit from Window you can also override OnMenuItemSelected(); however, you should choose one or the other, but don't use both.
Definition at line 602 of file Window.cpp.
References callback.
Referenced by cloudViewer::visualization::visualizer::O3DVisualizer::AddAction(), cloudViewer::visualization::visualizer::O3DVisualizer::O3DVisualizer(), and cloudViewer::visualization::gui::pybind_gui_classes().
| void Window::SetOnTickEvent | ( | std::function< bool()> | callback | ) |
Sets a callback that will be called on every UI tick (about 10 msec). Callback should return true if a redraw is required (i.e. the UI or a 3D scene has changed), false otherwise.
Definition at line 607 of file Window.cpp.
References callback.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes().
| void Window::SetOSFrame | ( | const Rect & | r | ) |
Sets the window's size and position in OS pixels, not actual device pixels.
Definition at line 458 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), cloudViewer::visualization::gui::Rect::height, cloudViewer::visualization::gui::WindowSystem::SetWindowPos(), cloudViewer::visualization::gui::Rect::width, cloudViewer::visualization::gui::Rect::x, and cloudViewer::visualization::gui::Rect::y.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| void Window::SetSize | ( | const Size & | size | ) |
Sets the size of the window in pixels. Includes menubar on Linux.
Definition at line 508 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), height, scaling, cloudViewer::visualization::gui::WindowSystem::SetWindowSize(), size, and width.
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), and SizeToFit().
| void Window::SetTitle | ( | const char * | title | ) |
Definition at line 466 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and cloudViewer::visualization::gui::WindowSystem::SetWindowTitle().
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), and cloudViewer::visualization::GuiVisualizer::SetTitle().
| void cloudViewer::visualization::gui::Window::SetTopmost | ( | bool | topmost | ) |
| void Window::Show | ( | bool | vis = true | ) |
Definition at line 554 of file Window.cpp.
References cloudViewer::visualization::gui::Application::GetInstance(), cloudViewer::visualization::gui::Application::GetWindowSystem(), and cloudViewer::visualization::gui::WindowSystem::ShowWindow().
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), and cloudViewer::visualization::gui::Application::RemoveWindow().
| void Window::ShowDialog | ( | std::shared_ptr< Dialog > | dlg | ) |
Shows the dialog. If a dialog is currently being shown it will be closed.
Definition at line 619 of file Window.cpp.
References CloseDialog(), context, GetContentRect(), GetLayoutContext(), and min().
Referenced by cloudViewer::visualization::GuiVisualizer::LoadGeometry(), cloudViewer::visualization::GuiVisualizer::OnMenuItemSelected(), cloudViewer::visualization::gui::pybind_gui_classes(), cloudViewer::visualization::pybind_o3dvisualizer(), and ShowMessageBox().
| void Window::ShowMenu | ( | bool | show | ) |
Definition at line 674 of file Window.cpp.
References SetNeedsLayout().
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| void Window::ShowMessageBox | ( | const char * | title, |
| const char * | message | ||
| ) |
Definition at line 661 of file Window.cpp.
References CloseDialog(), cloudViewer::visualization::gui::Theme::font_size, GetTheme(), cloudViewer::visualization::gui::Horiz::MakeCentered(), and ShowDialog().
Referenced by cloudViewer::visualization::GuiVisualizer::ExportCurrentImage(), cloudViewer::visualization::visualizer::O3DVisualizer::Impl::ExportCurrentImage(), cloudViewer::visualization::GuiVisualizer::LoadGeometry(), cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
| void Window::SizeToFit | ( | ) |
Auto-sizes the window to the results of CalcPreferredSize(), which by default is the size that the layouts of the window want.
Definition at line 500 of file Window.cpp.
References CalcPreferredSize(), and SetSize().
Referenced by cloudViewer::visualization::gui::pybind_gui_classes(), and cloudViewer::visualization::pybind_o3dvisualizer().
|
static |
|
static |
Definition at line 36 of file Window.h.
Referenced by cloudViewer::visualization::gui::Application::ShowMessageBox(), and Window().