display: initial implementation of the new design
Add an initial implementation of the new design for the display panel. The display previews and presentation mode are not yet fully implemented. https://bugzilla.gnome.org/show_bug.cgi?id=706115
This commit is contained in:
parent
b5900fc179
commit
b4a16be646
6 changed files with 1501 additions and 1894 deletions
|
@ -94,7 +94,7 @@ NETWORK_MANAGER_REQUIRED_VERSION=0.9.8
|
|||
NETWORK_MANAGER_APPLET_REQUIRED_VERSION=0.9.7.995
|
||||
MODEM_MANAGER_REQUIRED_VERSION=0.7
|
||||
LIBNOTIFY_REQUIRED_VERSION=0.7.3
|
||||
GNOME_DESKTOP_REQUIRED_VERSION=3.9.0
|
||||
GNOME_DESKTOP_REQUIRED_VERSION=3.9.90
|
||||
SCHEMAS_REQUIRED_VERSION=3.7.2.2
|
||||
LIBWACOM_REQUIRED_VERSION=0.7
|
||||
CLUTTER_REQUIRED_VERSION=1.11.3
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -24,6 +24,8 @@
|
|||
#define _CC_DISPLAY_PANEL_H
|
||||
|
||||
#include <shell/cc-panel.h>
|
||||
#define GNOME_DESKTOP_USE_UNSTABLE_API
|
||||
#include <libgnome-desktop/gnome-rr-config.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
@ -66,6 +68,7 @@ struct _CcDisplayPanelClass
|
|||
};
|
||||
|
||||
GType cc_display_panel_get_type (void) G_GNUC_CONST;
|
||||
gint cc_display_panel_get_output_id (GnomeRROutputInfo *output);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
@ -38,13 +38,13 @@
|
|||
#endif
|
||||
|
||||
#include "cc-rr-labeler.h"
|
||||
#include "cc-display-panel.h"
|
||||
|
||||
struct _CcRRLabelerPrivate {
|
||||
GnomeRRConfig *config;
|
||||
|
||||
int num_outputs;
|
||||
|
||||
GdkRGBA *palette;
|
||||
GtkWidget **windows;
|
||||
|
||||
GdkScreen *screen;
|
||||
|
@ -179,8 +179,6 @@ cc_rr_labeler_finalize (GObject *object)
|
|||
g_free (labeler->priv->windows);
|
||||
}
|
||||
|
||||
g_free (labeler->priv->palette);
|
||||
|
||||
G_OBJECT_CLASS (cc_rr_labeler_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
@ -196,45 +194,6 @@ count_outputs (GnomeRRConfig *config)
|
|||
return i;
|
||||
}
|
||||
|
||||
static void
|
||||
make_palette (CcRRLabeler *labeler)
|
||||
{
|
||||
/* The idea is that we go around an hue color wheel. We want to start
|
||||
* at red, go around to green/etc. and stop at blue --- because magenta
|
||||
* is evil. Eeeeek, no magenta, please!
|
||||
*
|
||||
* Purple would be nice, though. Remember that we are watered down
|
||||
* (i.e. low saturation), so that would be like Like berries with cream.
|
||||
* Mmmmm, berries.
|
||||
*/
|
||||
double start_hue;
|
||||
double end_hue;
|
||||
int i;
|
||||
|
||||
g_assert (labeler->priv->num_outputs > 0);
|
||||
|
||||
labeler->priv->palette = g_new (GdkRGBA, labeler->priv->num_outputs);
|
||||
|
||||
start_hue = 0.0; /* red */
|
||||
end_hue = 2.0/3; /* blue */
|
||||
|
||||
for (i = 0; i < labeler->priv->num_outputs; i++) {
|
||||
double h, s, v;
|
||||
double r, g, b;
|
||||
|
||||
h = start_hue + (end_hue - start_hue) / labeler->priv->num_outputs * i;
|
||||
s = 1.0 / 3;
|
||||
v = 1.0;
|
||||
|
||||
gtk_hsv_to_rgb (h, s, v, &r, &g, &b);
|
||||
|
||||
labeler->priv->palette[i].red = r;
|
||||
labeler->priv->palette[i].green = g;
|
||||
labeler->priv->palette[i].blue = b;
|
||||
labeler->priv->palette[i].alpha = 1.0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
rounded_rectangle (cairo_t *cr,
|
||||
gint x,
|
||||
|
@ -274,7 +233,9 @@ rounded_rectangle (cairo_t *cr,
|
|||
cairo_close_path (cr);
|
||||
}
|
||||
|
||||
#define LABEL_WINDOW_EDGE_THICKNESS 2
|
||||
#define LABEL_WINDOW_SIZE 80
|
||||
#define LABEL_WINDOW_MARGIN 14
|
||||
#define LABEL_WINDOW_EDGE_THICKNESS 1
|
||||
#define LABEL_WINDOW_PADDING 12
|
||||
/* Look for panel-corner in:
|
||||
* http://git.gnome.org/browse/gnome-shell/tree/data/theme/gnome-shell.css
|
||||
|
@ -285,10 +246,9 @@ static void
|
|||
label_draw_background_and_frame (GtkWidget *widget, cairo_t *cr, gboolean for_shape)
|
||||
{
|
||||
GdkRGBA shape_color = { 0, 0, 0, 1 };
|
||||
GdkRGBA *rgba;
|
||||
GdkRGBA black = { 0, 0, 0, 0.75 };
|
||||
GtkAllocation allocation;
|
||||
|
||||
rgba = g_object_get_data (G_OBJECT (widget), "rgba");
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
|
||||
cairo_save (cr);
|
||||
|
@ -298,7 +258,7 @@ label_draw_background_and_frame (GtkWidget *widget, cairo_t *cr, gboolean for_sh
|
|||
if (for_shape)
|
||||
gdk_cairo_set_source_rgba (cr, &shape_color);
|
||||
else
|
||||
cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
|
||||
cairo_set_source_rgba (cr, 0.75, 0.75, 0.75, 0.75);
|
||||
|
||||
rounded_rectangle (cr,
|
||||
LABEL_WINDOW_EDGE_THICKNESS / 2.0,
|
||||
|
@ -313,8 +273,7 @@ label_draw_background_and_frame (GtkWidget *widget, cairo_t *cr, gboolean for_sh
|
|||
if (for_shape) {
|
||||
gdk_cairo_set_source_rgba (cr, &shape_color);
|
||||
} else {
|
||||
rgba->alpha = 0.75;
|
||||
gdk_cairo_set_source_rgba (cr, rgba);
|
||||
gdk_cairo_set_source_rgba (cr, &black);
|
||||
}
|
||||
|
||||
rounded_rectangle (cr,
|
||||
|
@ -362,7 +321,8 @@ position_window (CcRRLabeler *labeler,
|
|||
&monitor);
|
||||
gdk_rectangle_intersect (&monitor, &workarea, &workarea);
|
||||
|
||||
gtk_window_move (GTK_WINDOW (window), workarea.x, workarea.y);
|
||||
gtk_window_move (GTK_WINDOW (window), workarea.x + LABEL_WINDOW_MARGIN,
|
||||
workarea.y + LABEL_WINDOW_MARGIN);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -386,17 +346,21 @@ label_window_composited_changed_cb (GtkWidget *widget, CcRRLabeler *labeler)
|
|||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_label_window (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *rgba)
|
||||
create_label_window (CcRRLabeler *labeler, GnomeRROutputInfo *output)
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *widget;
|
||||
char *str;
|
||||
const char *display_name;
|
||||
GdkRGBA black = { 0, 0, 0, 1.0 };
|
||||
int x, y;
|
||||
GdkRGBA white = { 1, 1, 1, 1 };
|
||||
int x, y, display_num;
|
||||
GdkScreen *screen;
|
||||
GdkVisual *visual;
|
||||
|
||||
display_num = cc_display_panel_get_output_id (output);
|
||||
|
||||
if (display_num == 0)
|
||||
return NULL;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_POPUP);
|
||||
gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_TOOLTIP);
|
||||
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
|
||||
|
@ -407,13 +371,8 @@ create_label_window (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *r
|
|||
if (visual != NULL)
|
||||
gtk_widget_set_visual (window, visual);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), LABEL_WINDOW_PADDING + LABEL_WINDOW_EDGE_THICKNESS);
|
||||
|
||||
/* This is semi-dangerous. The color is part of the labeler->palette
|
||||
* array. Note that in cc_rr_labeler_finalize(), we are careful to
|
||||
* free the palette only after we free the windows.
|
||||
*/
|
||||
g_object_set_data (G_OBJECT (window), "rgba", rgba);
|
||||
gtk_widget_set_size_request (window, LABEL_WINDOW_SIZE,
|
||||
LABEL_WINDOW_SIZE);
|
||||
|
||||
g_signal_connect (window, "draw",
|
||||
G_CALLBACK (label_window_draw_event_cb), labeler);
|
||||
|
@ -422,30 +381,18 @@ create_label_window (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *r
|
|||
g_signal_connect (window, "composited-changed",
|
||||
G_CALLBACK (label_window_composited_changed_cb), labeler);
|
||||
|
||||
if (gnome_rr_config_get_clone (labeler->priv->config)) {
|
||||
/* Keep this string in sync with gnome-control-center/capplets/display/xrandr-capplet.c:get_display_name() */
|
||||
|
||||
/* Translators: this is the feature where what you see on your
|
||||
* laptop's screen is the same as your external projector.
|
||||
* Here, "Mirrored" is being used as an adjective. For example,
|
||||
* the Spanish translation could be "Pantallas en Espejo".
|
||||
*/
|
||||
display_name = _("Mirrored Displays");
|
||||
} else
|
||||
display_name = gnome_rr_output_info_get_display_name (output);
|
||||
|
||||
str = g_strdup_printf ("<b>%s</b>", display_name);
|
||||
str = g_strdup_printf ("<span size='xx-large' font-weight='bold'>%d</span>", display_num);
|
||||
widget = gtk_label_new (NULL);
|
||||
gtk_label_set_markup (GTK_LABEL (widget), str);
|
||||
g_free (str);
|
||||
|
||||
/* Make the label explicitly black. We don't want it to follow the
|
||||
* theme's colors, since the label is always shown against a light
|
||||
* pastel background. See bgo#556050
|
||||
/* Make the label explicitly white. We don't want it to follow the
|
||||
* theme's colors, since the label is always shown against a black
|
||||
* background. See bgo#556050
|
||||
*/
|
||||
gtk_widget_override_color (widget,
|
||||
gtk_widget_get_state_flags (widget),
|
||||
&black);
|
||||
&white);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (window), widget);
|
||||
|
||||
|
@ -463,8 +410,6 @@ setup_from_config (CcRRLabeler *labeler)
|
|||
{
|
||||
labeler->priv->num_outputs = count_outputs (labeler->priv->config);
|
||||
|
||||
make_palette (labeler);
|
||||
|
||||
cc_rr_labeler_show (labeler);
|
||||
}
|
||||
|
||||
|
@ -497,7 +442,6 @@ void
|
|||
cc_rr_labeler_show (CcRRLabeler *labeler)
|
||||
{
|
||||
int i;
|
||||
gboolean created_window_for_clone;
|
||||
GnomeRROutputInfo **outputs;
|
||||
|
||||
g_return_if_fail (GNOME_IS_RR_LABELER (labeler));
|
||||
|
@ -505,18 +449,16 @@ cc_rr_labeler_show (CcRRLabeler *labeler)
|
|||
if (labeler->priv->windows != NULL)
|
||||
return;
|
||||
|
||||
labeler->priv->windows = g_new (GtkWidget *, labeler->priv->num_outputs);
|
||||
|
||||
created_window_for_clone = FALSE;
|
||||
if (gnome_rr_config_get_clone (labeler->priv->config))
|
||||
return;
|
||||
|
||||
outputs = gnome_rr_config_get_outputs (labeler->priv->config);
|
||||
|
||||
for (i = 0; i < labeler->priv->num_outputs; i++) {
|
||||
if (!created_window_for_clone && gnome_rr_output_info_is_active (outputs[i])) {
|
||||
labeler->priv->windows[i] = create_label_window (labeler, outputs[i], labeler->priv->palette + i);
|
||||
labeler->priv->windows = g_new (GtkWidget *, labeler->priv->num_outputs);
|
||||
|
||||
if (gnome_rr_config_get_clone (labeler->priv->config))
|
||||
created_window_for_clone = TRUE;
|
||||
for (i = 0; i < labeler->priv->num_outputs; i++) {
|
||||
if (gnome_rr_output_info_is_active (outputs[i])) {
|
||||
labeler->priv->windows[i] = create_label_window (labeler, outputs[i]);
|
||||
} else
|
||||
labeler->priv->windows[i] = NULL;
|
||||
}
|
||||
|
@ -549,37 +491,3 @@ cc_rr_labeler_hide (CcRRLabeler *labeler)
|
|||
g_free (priv->windows);
|
||||
priv->windows = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* cc_rr_labeler_get_rgba_for_output:
|
||||
* @labeler: A #CcRRLabeler
|
||||
* @output: Output device (i.e. monitor) to query
|
||||
* @rgba_out: (out): Color of selected monitor.
|
||||
*
|
||||
* Get the color used for the label on a given output (monitor).
|
||||
*/
|
||||
void
|
||||
cc_rr_labeler_get_rgba_for_output (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *rgba_out)
|
||||
{
|
||||
int i;
|
||||
GnomeRROutputInfo **outputs;
|
||||
|
||||
g_return_if_fail (GNOME_IS_RR_LABELER (labeler));
|
||||
g_return_if_fail (GNOME_IS_RR_OUTPUT_INFO (output));
|
||||
g_return_if_fail (rgba_out != NULL);
|
||||
|
||||
outputs = gnome_rr_config_get_outputs (labeler->priv->config);
|
||||
|
||||
for (i = 0; i < labeler->priv->num_outputs; i++)
|
||||
if (outputs[i] == output) {
|
||||
*rgba_out = labeler->priv->palette[i];
|
||||
return;
|
||||
}
|
||||
|
||||
g_warning ("trying to get the color for unknown GnomeOutputInfo %p; returning magenta!", output);
|
||||
|
||||
rgba_out->red = 1.0;
|
||||
rgba_out->green = 0;
|
||||
rgba_out->blue = 1.0;
|
||||
rgba_out->alpha = 1.0;
|
||||
}
|
||||
|
|
|
@ -59,6 +59,4 @@ void cc_rr_labeler_show (CcRRLabeler *labeler);
|
|||
|
||||
void cc_rr_labeler_hide (CcRRLabeler *labeler);
|
||||
|
||||
void cc_rr_labeler_get_rgba_for_output (CcRRLabeler *labeler, GnomeRROutputInfo *output, GdkRGBA *rgba_out);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,312 +1,518 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk+" version="2.16"/>
|
||||
<!-- interface-naming-policy toplevel-contextual -->
|
||||
<!-- interface-requires gtk+ 3.10 -->
|
||||
<object class="GtkWindow" id="window1">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="display-panel">
|
||||
<object class="GtkFrame" id="frame1">
|
||||
<property name="visible">True</property>
|
||||
<property name="border_width">10</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="margin-left">6</property>
|
||||
<property name="margin-right">6</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">134</property>
|
||||
<property name="margin_right">134</property>
|
||||
<property name="margin_top">22</property>
|
||||
<property name="margin_bottom">22</property>
|
||||
<property name="label_xalign">0</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="align">
|
||||
<object class="GtkListBox" id="listbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
<object class="GtkListBoxRow" id="listboxrow1">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_bottom">67</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkWindow" id="window2">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox1">
|
||||
<object class="GtkBox" id="box1">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox1">
|
||||
<object class="GtkFrame" id="frame2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">39</property>
|
||||
<property name="margin_right">39</property>
|
||||
<property name="margin_top">22</property>
|
||||
<property name="margin_bottom">22</property>
|
||||
<property name="label_xalign">0</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="listbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="listboxrow3">
|
||||
<property name="width_request">100</property>
|
||||
<property name="height_request">80</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox3">
|
||||
<object class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkEventBox" id="current_monitor_event_box">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="current_monitor_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">10</property>
|
||||
<property name="ypad">5</property>
|
||||
<property name="label" translatable="yes">Monitor</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Primary</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="monitor_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment1">
|
||||
<object class="GtkLabel" id="label4">
|
||||
<property name="width_request">260</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<object class="GtkTable" id="table1">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">3</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="column_spacing">12</property>
|
||||
<property name="row_spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment4">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options"></property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">_Resolution</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">resolution_combo</property>
|
||||
<property name="label" translatable="yes">Show the top bar and Activities Overview on this display</property>
|
||||
<property name="wrap">True</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="listboxrow2">
|
||||
<property name="width_request">100</property>
|
||||
<property name="height_request">80</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label5">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">1</property>
|
||||
<property name="label" translatable="yes">R_otation</property>
|
||||
<property name="mnemonic_widget">rotation_combo</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Presentation</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label6">
|
||||
<property name="width_request">260</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Show slideshows and media only</property>
|
||||
<property name="wrap">True</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="resolution_combo">
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="rotation_combo">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext1"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment2">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox2">
|
||||
<object class="GtkListBoxRow" id="listboxrow4">
|
||||
<property name="width_request">100</property>
|
||||
<property name="height_request">80</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="clone_checkbox">
|
||||
<property name="label" translatable="yes" comments="Note that mirror is a verb in this string">_Mirror displays</property>
|
||||
<object class="GtkLabel" id="label7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="clone_resolution_warning_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Note: may limit resolution options</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Mirror</property>
|
||||
<attributes>
|
||||
<attribute name="style" value="italic"/>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment3">
|
||||
<property name="visible">True</property>
|
||||
<property name="top_padding">10</property>
|
||||
<child>
|
||||
<object class="GtkHButtonBox" id="hbuttonbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="spacing">6</property>
|
||||
<property name="layout_style">end</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="apply_button">
|
||||
<property name="label">gtk-apply</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="detect_displays_button">
|
||||
<property name="label" translatable="yes">_Detect Displays</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
<property name="secondary">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label8">
|
||||
<property name="width_request">260</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Show your primary display on this screen also</property>
|
||||
<property name="wrap">True</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="listboxrow5">
|
||||
<property name="width_request">100</property>
|
||||
<property name="height_request">80</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label9">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Combine</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label10">
|
||||
<property name="width_request">260</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Join with the primary display to create an extra space</property>
|
||||
<property name="wrap">True</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="listboxrow6">
|
||||
<property name="width_request">100</property>
|
||||
<property name="height_request">80</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="box6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">12</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label11">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="label" translatable="yes">Turn Off</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label12">
|
||||
<property name="width_request">260</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Don't use the display</property>
|
||||
<property name="wrap">True</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">2</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkGrid" id="grid1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">67</property>
|
||||
<property name="margin_right">67</property>
|
||||
<property name="margin_top">22</property>
|
||||
<property name="margin_bottom">22</property>
|
||||
<property name="row_spacing">12</property>
|
||||
<property name="column_spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="drawingarea1">
|
||||
<property name="height_request">100</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">2</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box8">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<style>
|
||||
<class name="linked"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkButton" id="button2">
|
||||
<property name="name">rotate-left-button</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="halign">end</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="icon_name">object-rotate-left-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="button3">
|
||||
<property name="name">rotate-right-button</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="halign">start</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="icon_name">object-rotate-right-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">2</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label13">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="label" translatable="yes">Model</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label14">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="label" translatable="yes">Aspect Ratio</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="label" translatable="yes">Resolution</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label16">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="label" translatable="yes">Refresh Rate</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="model-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="aspect-ratio-label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="resolution-combobox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="refresh-rate-comboboxtext">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue