[gnome-weather] Use the header bar as the window titlebar
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-weather] Use the header bar as the window titlebar
- Date: Wed, 5 Jun 2013 19:34:24 +0000 (UTC)
commit 2bb7bee1c10df02b453f4eab4b181d28e4152230
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Sun Jun 2 17:04:08 2013 +0200
Use the header bar as the window titlebar
This way, we follow the new 3.10 design and we don't lose the X
button when maximized.
data/window.ui | 199 +++++++++++++++++++++++++++++++------------------------
src/window.js | 10 ++-
2 files changed, 120 insertions(+), 89 deletions(-)
---
diff --git a/data/window.ui b/data/window.ui
index dd3e683..f37848f 100644
--- a/data/window.ui
+++ b/data/window.ui
@@ -53,114 +53,139 @@
<class name="selection-menu"/>
</style>
</object>
- <object class="GtkGrid" id="main-panel">
+ <object class="GtkHeaderBar" id="header-bar">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="vexpand">False</property>
<child>
- <object class="GtkHeaderBar" id="header-bar">
+ <object class="GtkButton" id="new-button">
<property name="visible">True</property>
- <property name="vexpand">False</property>
- <child>
- <object class="GtkButton" id="new-button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">New</property>
- <property name="action-name">win.new-location</property>
- <property name="valign">center</property>
- <style>
- <class name="text-button"/>
- </style>
- </object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="action-name">win.new-location</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="text-button"/>
+ </style>
+ </object>
+ <packing>
+ <property name="pack_type">start</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="world-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">World Weather</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="text-button"/>
+ </style>
+ </object>
+ <packing>
+ <property name="pack_type">start</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="select-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="action-name">win.selection-mode</property>
+ <property name="action-target">true</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="image-button"/>
+ </style>
<child>
- <object class="GtkButton" id="world-button">
+ <object class="GtkImage" id="select-button-image">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">World Weather</property>
- <property name="valign">center</property>
- <style>
- <class name="text-button"/>
- </style>
+ <property name="can_focus">False</property>
+ <property name="icon-name">object-select-symbolic</property>
+ <property name="icon-size">1</property>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
- <child>
- <object class="GtkButton" id="select-button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="action-name">win.selection-mode</property>
- <property name="action-target">true</property>
- <property name="valign">center</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage" id="select-button-image">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon-name">object-select-symbolic</property>
- <property name="icon-size">1</property>
- </object>
- </child>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="done-button">
+ <property name="visible">True</property>
+ <property name="no_show_all">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Cancel</property>
+ <property name="valign">center</property>
+ <property name="action-name">win.selection-mode</property>
+ <property name="action-target">false</property>
+ <style>
+ <class name="text-button"/>
+ <class name="suggested-action"/>
+ </style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
- </child>
+ </child>
+ <child>
+ <object class="GtkButton" id="refresh-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="action-name">win.refresh</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="image-button"/>
+ </style>
<child>
- <object class="GtkButton" id="done-button">
+ <object class="GtkImage" id="refresh-button-image">
<property name="visible">True</property>
- <property name="no_show_all">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Cancel</property>
- <property name="valign">center</property>
- <property name="action-name">win.selection-mode</property>
- <property name="action-target">false</property>
- <style>
- <class name="text-button"/>
- <class name="suggested-action"/>
- </style>
+ <property name="can_focus">False</property>
+ <property name="icon-name">view-refresh-symbolic</property>
+ <property name="icon-size">1</property>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="close-button-separator">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="valign">fill</property>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="close-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">center</property>
+ <property name="relief">none</property>
+ <property name="action-name">win.close</property>
+ <style>
+ <class name="image-button"/>
+ </style>
<child>
- <object class="GtkButton" id="refresh-button">
+ <object class="GtkImage" id="close-button-image">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="action-name">win.refresh</property>
- <property name="valign">center</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage" id="refresh-button-image">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="icon-name">view-refresh-symbolic</property>
- <property name="icon-size">1</property>
- </object>
- </child>
+ <property name="can_focus">False</property>
+ <property name="icon_name">window-close-symbolic</property>
+ <property name="icon_size">1</property>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
+ <property name="pack_type">end</property>
</packing>
</child>
+ </object>
+ <object class="GtkGrid" id="main-panel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
<child>
<object class="GtkStack" id="main-stack">
<property name="transition-type">crossfade</property>
@@ -173,7 +198,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">1</property>
+ <property name="top-attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -206,7 +231,7 @@
</object>
<packing>
<property name="left-attach">0</property>
- <property name="top-attach">2</property>
+ <property name="top-attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
diff --git a/src/window.js b/src/window.js
index 815b243..64ee7b9 100644
--- a/src/window.js
+++ b/src/window.js
@@ -83,8 +83,7 @@ const MainWindow = new Lang.Class({
Extends: Gtk.ApplicationWindow,
_init: function(params) {
- params = Params.fill(params, { hide_titlebar_when_maximized: true,
- width_request: 700,
+ params = Params.fill(params, { width_request: 700,
height_request: 520 });
this.parent(params);
@@ -98,6 +97,8 @@ const MainWindow = new Lang.Class({
activate: this._newLocation },
{ name: 'about',
activate: this._showAbout },
+ { name: 'close',
+ activate: this._close },
{ name: 'new-location',
activate: this._newLocation },
{ name: 'selection-mode',
@@ -118,6 +119,7 @@ const MainWindow = new Lang.Class({
let grid = builder.get_object('main-panel');
this._header = builder.get_object('header-bar');
+ this.set_titlebar(this._header);
let newButton = builder.get_object('new-button');
this._pageWidgets[Page.WORLD].push(newButton);
@@ -320,5 +322,9 @@ const MainWindow = new Lang.Class({
}
this._worldView.iconView.selection_mode = false;
+ },
+
+ _close: function() {
+ this.destroy();
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]