[dbox] problem in dbox resizing

myunghwa Hwang mhwang4 at UIUC.EDU
Fri Jan 19 18:45:00 EST 2007


Hello, list!

I'm trying to make dbox resizable.
For that, I assigned ids to several components which should have  
fixed sizes,
then I added a function for recalculating and assigning the dbox size:

   function adjustMapsize() {
   	// test just width adjustment
   	var leftcol_table = document.getElementById("leftcol_table");
   	var tools_table = document.getElementById("tools_table");
   	var move_button = document.getElementById("move_button");
   	var scale_table = document.getElementById("scale_table");
   	var coords_div = document.getElementById("coords_div");
   	var measure_div = document.getElementById("measure_div");
   	var measure_toggle = document.getElementById("measure_toggle");
   	
   	var new_width = document.body.offsetWidth -  
(leftcol_table.offsetWidth + tools_table.offsetWidth +  
move_button.offsetWidth*2);
   	var new_height = document.body.offsetHeight -  
(scale_table.offsetHeight + move_button.offsetHeight*3 +  
coords_div.offsetHeight + measure_div.offsetHeight + 			 
measure_toggle.offsetHeight + document.getElementById 
("ms_url").offsetHeight);
   	var anchor = document.getElementById("main");
   	main.width = anchor.width = new_width;
   	main.height = anchor.height = new_height;
   	main.anchor = xGetElementById("main");
   	ms.width = new_width;
   	ms.height = new_height;
   }

Then, I added this function to onload and onresize event of window:

   window.onresize = function() {

   	// resize map image
   	adjustMapsize();
   	xResizeTo(main.container, main.width, main.height);
   	main.sync();
   	xResizeTo(main.image, main.width, main.height);
   	xMoveTo(main.image, 0, 0);
   	xShow(main.image);
   	xResizeTo(main.canvas, main.width, main.height);
   	xMoveTo(main.canvas, 0, 0);
     xClip(main.canvas, 0, main.width, main.height, 0);
     xShow(main.canvas);
   	ms.draw();
   	
     reference.sync();
     container.sync();
   }

   window.onload = function() {
   	
   	// resize map image
   	adjustMapsize();

     main.initialize();
     reference.initialize();
     container.initialize();

     domouseclick('zoomin');

     // legend setup
     var legend_xml = get_content(config.dlegend_xml_executable + "? 
map=" + config.mapfile + "&server=" + config.dlegend_server);
     legend.initialize("legend_container", legend_xml);
     legend.setHandler(DLEGEND_CLICK, ms.setLayer);
	
	ms.setLayer('ortho', true);
	legend.changeNodeStatus('ortho', true);
     ms.draw();		
   }

My problem is that this solution works when I try to reduce the size  
of window,
but whenever I tried to increase the window size
the size of something on the top of dbox (which consists of  
container, image, canvas, and something else) does not change,
so I get white extra space on the right and bottom side of dbox.
How can I solve this problem?
Maybe someone already asked this problem, if so please let me know  
which post I should check.
I hope my explanation of the problem will be understood well.

from Myunghwa Hwang



More information about the mapserver-users mailing list