gnome-control-center/panels/display/cc-display-config-manager.c
Jonas Ådahl 21862c3e48 display: Only display configuration options if apply is allowed
org.gnome.Mutter.DisplayConfig contains a new property that tells
whether apply will be allowed to be called or not. Whether it is true or
not depends on policy stored in any of its monitors.xml configuration
files.

In order to make it clearer that configuration is not possible, except
for night light, make sure to hide the unconfigurable parts, leaving
only night light.
2022-01-25 16:43:26 +00:00

67 lines
2 KiB
C

/*
* Copyright (C) 2016 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
*/
#include "cc-display-config-manager.h"
G_DEFINE_TYPE (CcDisplayConfigManager,
cc_display_config_manager,
G_TYPE_OBJECT)
enum
{
CONFIG_MANAGER_CHANGED,
N_CONFIG_MANAGER_SIGNALS,
};
static guint config_manager_signals[N_CONFIG_MANAGER_SIGNALS] = { 0 };
static void
cc_display_config_manager_init (CcDisplayConfigManager *self)
{
}
static void
cc_display_config_manager_class_init (CcDisplayConfigManagerClass *klass)
{
config_manager_signals[CONFIG_MANAGER_CHANGED] =
g_signal_new ("changed",
CC_TYPE_DISPLAY_CONFIG_MANAGER,
G_SIGNAL_RUN_LAST,
0, NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
}
void
_cc_display_config_manager_emit_changed (CcDisplayConfigManager *self)
{
g_signal_emit (self, config_manager_signals[CONFIG_MANAGER_CHANGED], 0);
}
CcDisplayConfig *
cc_display_config_manager_get_current (CcDisplayConfigManager *self)
{
return CC_DISPLAY_CONFIG_MANAGER_GET_CLASS (self)->get_current (self);
}
gboolean
cc_display_config_manager_get_apply_allowed (CcDisplayConfigManager *self)
{
return CC_DISPLAY_CONFIG_MANAGER_GET_CLASS (self)->get_apply_allowed (self);
}