[gnome-maps/wip/routing2: 4/9] WIP! Initial routing sidebar code.
- From: Mattias Bengtsson <mattiasb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps/wip/routing2: 4/9] WIP! Initial routing sidebar code.
- Date: Sun, 8 Jun 2014 22:52:02 +0000 (UTC)
commit 2126df417393436831f966e5a75397a9ef8c7c93
Author: Mattias Bengtsson <mattias jc bengtsson gmail com>
Date: Tue Apr 22 04:58:18 2014 +0200
WIP! Initial routing sidebar code.
data/gnome-maps.css | 27 ++++++++++
src/gnome-maps.data.gresource.xml | 5 ++
src/main-window.ui | 10 ++++
src/mainWindow.js | 9 +++-
src/mapView.js | 1 -
src/sidebar.js | 105 ++++++++++++-------------------------
6 files changed, 83 insertions(+), 74 deletions(-)
---
diff --git a/data/gnome-maps.css b/data/gnome-maps.css
index 23e2923..d8e6e57 100644
--- a/data/gnome-maps.css
+++ b/data/gnome-maps.css
@@ -50,6 +50,7 @@
}
#zoom-in-button {
+
background-image: url('zoom-in.png');
border-top-left-radius: 6px;
border-top-right-radius: 6px;
@@ -72,3 +73,29 @@
#zoom-out-button:insensitive {
background-image: url('zoom-out-insensitive.png');
}
+
+#sidebar > * {
+ padding-bottom: 8px;
+ padding-top: 8px;
+}
+
+#sidebar-form > GtkLabel {
+ padding-right: 5px;
+}
+
+#sidebar-form .transportation-mode-button > GtkImage {
+ padding-left: 7px;
+ padding-right: 7px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+
+#sidebar-instruction-list > GtkBox {
+ margin-left: 10px;
+ margin-right: 10px;
+ padding-right: 10px;
+ padding-left: 10px;
+}
+#sidebar-instruction-list GtkImage {
+ margin-right: 5px;
+}
diff --git a/src/gnome-maps.data.gresource.xml b/src/gnome-maps.data.gresource.xml
index 7ee7af1..3fb107c 100644
--- a/src/gnome-maps.data.gresource.xml
+++ b/src/gnome-maps.data.gresource.xml
@@ -6,6 +6,7 @@
<file preprocess="xml-stripblanks">map-location.ui</file>
<file preprocess="xml-stripblanks">zoom-control.ui</file>
<file preprocess="xml-stripblanks">search-popup.ui</file>
+ <file preprocess="xml-stripblanks">sidebar.ui</file>
<file preprocess="xml-stripblanks">context-menu.ui</file>
<file preprocess="xml-stripblanks">layers-popover.ui</file>
<file preprocess="xml-stripblanks">notification.ui</file>
@@ -16,6 +17,10 @@
<file alias="zoom-out-insensitive.png">../data/media/zoom-out-insensitive.png</file>
<file alias="maptype-aerial.png">../data/media/maptype-aerial.png</file>
<file alias="maptype-street.png">../data/media/maptype-street.png</file>
+ <file alias="route-car-symbolic">../data/icons/route-car-symbolic.svg</file>
+ <file alias="route-pedestrian-symbolic">../data/icons/route-pedestrian-symbolic.svg</file>
+ <file alias="route-transit-symbolic">../data/icons/route-transit-symbolic.svg</file>
+ <file alias="route-bike-symbolic">../data/icons/route-bike-symbolic.svg</file>
<file alias="layers-button.svg">../data/icons/layers-button.svg</file>
</gresource>
</gresources>
diff --git a/src/main-window.ui b/src/main-window.ui
index bfc4063..bea1340 100644
--- a/src/main-window.ui
+++ b/src/main-window.ui
@@ -83,5 +83,15 @@
</child>
</object>
</child>
+ <child>
+ <object class="GtkGrid" id="main-grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <!-- <property name="margin_left">7</property> -->
+ <!-- <property name="margin_right">7</property> -->
+ <property name="orientation">horizontal</property>
+ <!-- <property name="row_spacing">10</property> -->
+ </object>
+ </child>
</object>
</interface>
diff --git a/src/mainWindow.js b/src/mainWindow.js
index ddbedaa..4555e7b 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -36,6 +36,7 @@ const LayersPopover = imports.layersPopover;
const SearchPopup = imports.searchPopup;
const ContextMenu = imports.contextMenu;
const PlaceStore = imports.placeStore;
+const Sidebar = imports.sidebar;
const Utils = imports.utils;
const Config = imports.config;
const ZoomControl = imports.zoomControl;
@@ -52,6 +53,7 @@ const MainWindow = new Lang.Class({
_init: function(app, overlay) {
this._configureId = 0;
let ui = Utils.getUIObject('main-window', [ 'app-window',
+ 'main-grid',
'search-entry',
'search-completion',
'layers-button']);
@@ -62,8 +64,11 @@ const MainWindow = new Lang.Class({
this._placeStore = Application.placeStore;
this._overlay = overlay;
- ui.appWindow.add(this._overlay);
-
+ ui.mainGrid.add(this._overlay);
+ let sidebar = new Sidebar.Sidebar();
+ ui.mainGrid.add(sidebar);
+ sidebar.reveal_child = true;
+
this.mapView = new MapView.MapView();
overlay.add(this.mapView);
diff --git a/src/mapView.js b/src/mapView.js
index 5129a40..53354e4 100644
--- a/src/mapView.js
+++ b/src/mapView.js
@@ -34,7 +34,6 @@ const Mainloop = imports.mainloop;
const Signals = imports.signals;
const Application = imports.application;
-const Sidebar = imports.sidebar;
const Utils = imports.utils;
const Path = imports.path;
const MapLocation = imports.mapLocation;
diff --git a/src/sidebar.js b/src/sidebar.js
index b9d873e..07d9b73 100644
--- a/src/sidebar.js
+++ b/src/sidebar.js
@@ -18,83 +18,46 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
+ * Mattias Bengtsson <mattias jc bengtsson gmail com>
*/
-const Clutter = imports.gi.Clutter;
-const Gdk = imports.gi.Gdk;
-const GLib = imports.gi.GLib;
-const Gtk = imports.gi.Gtk;
-const Champlain = imports.gi.Champlain;
-const GtkClutter = imports.gi.GtkClutter;
-const MapView = imports.mapView;
-
-const Lang = imports.lang;
-const Mainloop = imports.mainloop;
+const Lang = imports.lang;
+const Gtk = imports.gi.Gtk;
+const GLib = imports.gi.GLib;
const Utils = imports.utils;
-const _ = imports.gettext.gettext;
+
const Sidebar = new Lang.Class({
Name: 'Sidebar',
-
- _init: function(mapView) {
- this._mapView = mapView;
- this.actor = new Clutter.Actor({ layout_manager: new Clutter.BoxLayout({ spacing: 12 }),
- y_expand: true,
- x_align: Clutter.ActorAlign.END });
-
- let isRtl = (Gtk.Widget.get_default_direction() == Gtk.TextDirection.RTL);
- let prevIconName = isRtl ? 'go-previous-rtl-symbolic' : 'go-previous-symbolic';
- let nextIconName = isRtl ? 'go-next-rtl-symbolic' : 'go-next-symbolic';
-
- // create the button
- let revealImage = new Gtk.Image ({ icon_name: prevIconName,
- icon_size: Gtk.IconSize.MENU });
- let revealButton = new Gtk.Button({ child: revealImage,
- valign: Gtk.Align.CENTER });
- revealButton.get_style_context().add_class('osd');
- revealButton.show();
-
- // then the sidebar itself, packed into the revealer
- let grid = new Gtk.Grid({ vexpand: true,
- hexpand: true,
- margin_top: 32,
- margin_left: 32,
- margin_right: 32,
- row_spacing: 15,
- orientation: Gtk.Orientation.VERTICAL,
- valign: Gtk.Align.FILL });
-
- let container = new Gtk.Frame({ child: grid,
- shadow_type: Gtk.ShadowType.IN,
- width_request: 200 });
- container.get_style_context().add_class('maps-sidebar');
-
- let revealer = new Gtk.Revealer({ child: container,
- reveal_child: false,
- transition_type: Gtk.RevealerTransitionType.CROSSFADE });
- revealer.show_all();
-
- revealButton.connect('clicked', (function() {
- if (revealer.reveal_child) {
- revealer.reveal_child = false;
- revealButton.symbolic_icon_name = prevIconName;
- } else {
- revealer.reveal_child = true;
- revealButton.symbolic_icon_name = nextIconName;
- }
- }).bind(this));
-
- // now create actors
- let buttonActor = new GtkClutter.Actor({ contents: revealButton,
- x_align: Clutter.ActorAlign.END });
- Utils.clearGtkClutterActorBg(buttonActor);
- this.actor.add_child(buttonActor);
-
- let revealerActor = new GtkClutter.Actor({ contents: revealer,
- x_align: Clutter.ActorAlign.END,
- x_expand: true,
- y_expand: true });
- this.actor.add_child(revealerActor);
+ Extends: Gtk.Revealer,
+
+ _init: function() {
+ this.parent({ name: "sidebar",
+ visible: true,
+ width_request: 100,
+ transition_type: Gtk.RevealerTransitionType.SLIDE_LEFT,
+ transition_duration: 400,
+ vexpand: true,
+ hexpand: false,
+ halign: Gtk.Align.START
+ });
+ this._ui = Utils.getUIObject('sidebar', [ 'form',
+ 'instruction-list-scrolled',
+ 'instruction-list',
+ 'to-entry',
+ 'from-entry',
+ 'to-completion',
+ 'from-completion',
+ 'mode-pedestrian-toggle',
+ 'mode-bike-toggle',
+ 'mode-car-toggle']);
+
+ // this._ui.instructionList.connect('row-activated', (function(list, row) {
+ // this.emit('instruction-selected', row.instruction);
+ // }).bind(this));
+
+ this.add(this._ui.form);
+ this.add(this._ui.instructionListScrolled);
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]