Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
window-locator.hpp
Go to the documentation of this file.
1/*
2 WINDOW-LOCATOR.hpp - manage all top level windows
3
4 Copyright (C)
5 2008, Joel Holdsworth <joel@airwebreathe.org.uk>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
26#ifndef STAGE_CTRL_WINDOW_LOCATOR_H
27#define STAGE_CTRL_WINDOW_LOCATOR_H
28
29#include "stage/gtk-base.hpp"
31#include "lib/depend-inject.hpp"
32#include "lib/nocopy.hpp"
33
34#include <memory>
35#include <list>
36
37
38namespace stage {
39
40 namespace model { class Project; }
41 namespace controller { class Controller; }
42
43namespace workspace { class WorkspaceWindow; }
44namespace model {
45 class ElementAccess;
46}
47namespace ctrl {
48
49 class GlobalCtx;
50 class ElemAccessDir;
51 using std::list;
52
53
54
60 {
61 using PWindow = std::shared_ptr<workspace::WorkspaceWindow>;
63
65 list<PWindow> windowList_;
67
69
70
71 public:
74
75 bool empty() const;
76
77 void newWindow();
78 void closeWindow();
79
82
84
85
86 private:
87
89 bool on_window_closed (GdkEventAny* event);
90
91
100
101
102
103 private:
104
105 };
106
107
108
109 inline bool
111 {
112 return windowList_.empty();
113 }
114
115
116
117}}// namespace stage::ctrl
118#endif /*STAGE_CTRL_WINDOW_LOCATOR_H*/
Configuration handle to expose a service implementation through the Depend<SRV> front-end.
Low-level service to navigate the internals of the Lumiera GTK UI.
A global circle of top-level UI management facilities.
Service to access, locate or place panels within top-level windows Access- and query front-end to the...
A centralised manager of all top level application windows.
workspace::WorkspaceWindow & findFocusWindow()
similar to findActiveWindow(), for the 'has_focus' property
std::shared_ptr< workspace::WorkspaceWindow > PWindow
Service_ElementAccess elementAccess_
void updateCloseWindowInMenus()
On creating and closing of any window, handle enabling or disabling of the Window/Close Window menu o...
void closeWindow()
close (and thus destroy) the current active window.
workspace::WorkspaceWindow & findActiveWindow()
find and retrieve a WorkspaceWindow (top-level window) marked as 'active' by GTK.
bool on_window_closed(GdkEventAny *event)
Event handler for when a window has been closed.
The main Lumiera workspace window.
Any copy and copy construction prohibited.
Definition nocopy.hpp:38
Per type specific configuration of instances created as service dependencies.
A set of basic GTK includes for the UI.
Lumiera GTK UI implementation root.
Definition guifacade.cpp:37
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Access and query front-end to locate, access and place docking panels.