[gnome-maps/wip/routing2: 4/9] WIP! Initial routing sidebar code.



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]