~3v1n0/unity/scale-window-cast-protection

1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
1
// -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
2
/*
3
 * Copyright (C) 2010 Canonical Ltd
4
 *
5
 * This program is free software: you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License version 3 as
7
 * published by the Free Software Foundation.
8
 *
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * Authored by: Jason Smith <jason.smith@canonical.com>
18
 *              Tim Penhey <tim.penhey@canonical.com>
19
 */
20
21
#ifndef LAUNCHEROPTIONS_H
22
#define LAUNCHEROPTIONS_H
23
24
#include <memory>
25
#include <vector>
26
#include <sigc++/sigc++.h>
27
28
#include <Nux/Nux.h>
2986.1.1 by Marco Trevisan (Treviño)
LauncherOptions: add an idle to emit the changed signal
29
#include <UnityCore/GLibSource.h>
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
30
31
namespace unity
32
{
33
namespace launcher
34
{
35
2150 by Didier Roche
gord has a fix, reverting the revert
36
enum LauncherHideMode
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
37
{
38
  LAUNCHER_HIDE_NEVER,
39
  LAUNCHER_HIDE_AUTOHIDE,
2150 by Didier Roche
gord has a fix, reverting the revert
40
};
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
41
2150 by Didier Roche
gord has a fix, reverting the revert
42
enum LaunchAnimation
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
43
{
44
  LAUNCH_ANIMATION_NONE,
45
  LAUNCH_ANIMATION_PULSE,
46
  LAUNCH_ANIMATION_BLINK,
2150 by Didier Roche
gord has a fix, reverting the revert
47
};
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
48
2150 by Didier Roche
gord has a fix, reverting the revert
49
enum UrgentAnimation
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
50
{
51
  URGENT_ANIMATION_NONE,
52
  URGENT_ANIMATION_PULSE,
53
  URGENT_ANIMATION_WIGGLE,
2150 by Didier Roche
gord has a fix, reverting the revert
54
};
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
55
2150 by Didier Roche
gord has a fix, reverting the revert
56
enum AutoHideAnimation
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
57
{
58
  FADE_OR_SLIDE,
59
  SLIDE_ONLY,
60
  FADE_ONLY,
61
  FADE_AND_SLIDE,
2150 by Didier Roche
gord has a fix, reverting the revert
62
};
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
63
2150 by Didier Roche
gord has a fix, reverting the revert
64
enum BacklightMode
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
65
{
66
  BACKLIGHT_ALWAYS_ON,
2540.4.2 by Andrea Azzarone
Don't change enum name.
67
  BACKLIGHT_NORMAL,
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
68
  BACKLIGHT_ALWAYS_OFF,
69
  BACKLIGHT_EDGE_TOGGLE,
70
  BACKLIGHT_NORMAL_EDGE_TOGGLE
2150 by Didier Roche
gord has a fix, reverting the revert
71
};
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
72
1901.1.1 by Jason Smith
implement reveal trigger modes
73
enum RevealTrigger
74
{
75
  EDGE,
76
  CORNER,
77
};
78
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
79
class Options : public sigc::trackable
80
{
81
public:
82
  typedef std::shared_ptr<Options> Ptr;
83
84
  Options();
85
86
  nux::Property<LauncherHideMode> hide_mode;
87
  nux::Property<LaunchAnimation> launch_animation;
88
  nux::Property<UrgentAnimation> urgent_animation;
89
  nux::Property<AutoHideAnimation> auto_hide_animation;
90
  nux::Property<BacklightMode> backlight_mode;
1901.1.1 by Jason Smith
implement reveal trigger modes
91
  nux::Property<RevealTrigger> reveal_trigger;
2919.3.10 by Marco Trevisan (Treviño)
LauncherOptions: add Color background property
92
  nux::Property<nux::Color> background_color;
2919.3.20 by Marco Trevisan (Treviño)
Merging with trunk
93
  nux::Property<float> background_alpha;
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
94
  nux::Property<int> icon_size;
95
  nux::Property<int> tile_size;
3212.3.40 by Marco Trevisan (Treviño)
LauncherOptions: use faster Idle and add super-tap-duration
96
  nux::Property<int> super_tap_duration;
1820.1.17 by Jason Smith
merge trunk and make options configurable
97
  nux::Property<int> edge_decay_rate;
98
  nux::Property<int> edge_overcome_pressure;
99
  nux::Property<int> edge_stop_velocity;
100
  nux::Property<int> edge_reveal_pressure;
1884.1.5 by Jason Smith
implement responsiveness as a conglomerate option for changing reveal behavior
101
  nux::Property<float> edge_responsiveness;
2509.1.12 by Marco Trevisan (Treviño)
LauncherOptions: add edge_passed_disabled_time option
102
  nux::Property<unsigned> edge_passed_disabled_ms;
2074.1.1 by Jason Smith
implement mm options for multiple launchers
103
  nux::Property<bool> edge_resist;
2074.1.2 by Jason Smith
ensure that we have the launcher properly reflect the entire desktop rather than just the monitor when in single launcher mode
104
  nux::Property<bool> show_for_all;
3702.3.1 by Chris Townsend
Add option to allow users to restore the scroll over inactive Launcher icon to focus window behavior.
105
  nux::Property<bool> scroll_inactive_icons;
3725.2.2 by Chris Townsend
Add in a CCSM option to enable the click-launcher-icon-to-minimize-window behavior.
106
  nux::Property<bool> minimize_window_on_click;
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
107
108
  sigc::signal<void> option_changed;
2986.1.1 by Marco Trevisan (Treviño)
LauncherOptions: add an idle to emit the changed signal
109
110
private:
111
  glib::Source::UniquePtr changed_idle_;
1820.1.1 by Jason Smith
first attempt at multi-monitor launcher support
112
};
113
114
}
115
}
116
117
#endif // LAUNCHEROPTIONS_H