Skip to content
Snippets Groups Projects
macro.js 1.34 KiB
Newer Older
/* $Id$ */

////////////////////////////////////////
//           Macro widget             //
////////////////////////////////////////

/**
 * Widget handler.
 */
Drupal.gmap.addHandler('macrotext', function(elem) {
  var obj = this;
  obj.macrostorage = {};

  obj.bind("widthchange", function(w){
    obj.macrostorage.width = w;
  });
  obj.bind("heightchange", function(h){
    obj.macrostorage.height = h;
  });

  // Basic macros.
  obj.bind('buildmacro',function(add) {
    add.push('zoom='+obj.vars.zoom);
    add.push('center='+obj.vars.latitude+','+obj.vars.longitude);
    add.push('width='+obj.macrostorage.width);
    add.push('height='+obj.macrostorage.height);
    if (obj.vars.macro_mapid && obj.vars.macro_mapid != '') {
      add.push('id='+obj.vars.macro_mapid);
    }
    add.push('control='+obj.vars.controltype);
    // @@@ Use maptype instead, accept old and new.
    add.push('type='+obj.vars.maptype);
  });


  // Update macro every time something happens.
  obj.bind('all',function(name){
    if (name != 'buildmacro') {
      var add = [];
      // Collect macro pieces.
      obj.change('buildmacro',-1,add);
      elem.value = '[gmap ' + add.join(' |') + ']';
    }
  });
});

/**
 * Extensible macros @@@
 */
Drupal.gmap.map.prototype.parse = function(m) {
  // Trim off outside tag
  if (m.substr(0,5)=='[gmap') {
    m = m.slice(6,-1);
  }
};