Re: Movable line via mouse

From: Date: Wed, 07 Dec 2005 18:36:13 +0000
Subject: Re: Movable line via mouse
References: 1  Groups: php.gtk.general 
Request: Send a blank email to php-gtk-general+get-6368@lists.php.net to get a copy of this message
I'm doing something similar in an app where I monitor time/temp profiling (graphing) in real time and ability to recall graphs. Users can select to "zoom" to a portion of the graph and it can display up to 6 channels of temperature data. I probably didn't get all code related in here but should get you going... email me if you need more info. I'm using a drawing area: $drawingarea = &new GtkDrawingArea(); //$drawingarea->size(560, 330); $drawingarea->size(1800, 330); $drawingarea->set_events(GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); $newstyle = &new GtkStyle(); $newstyle->bg[GTK_STATE_NORMAL] = gdk::color_parse('gray'); $drawingarea->set_style($newstyle); $pbox->put($drawingarea, 20, 0); $drawingarea->realize(); $style = $drawingarea->style; $mydrawable = $drawingarea->window; I use buttons for movable/draggable bars $moveable_bar1 = &new GtkButton(''); $moveable_bar1->set_usize(4,300); $pbox->put($moveable_bar1, 249, 30); $drawingarea->connect('drag-data-received', 'dragDataReceived'); and I have functions to deal with changing things when bars are moved: /***** DRAGDATAGET() *****/ function dragDataGet($bar, $context, $selection_data, $info, $time, $name) { global $pwindow, $pbox, $button, $vbar1, $vbar2, $moveable_bar1, $moveable_bar2; $location = $pwindow->get_pointer(); if($name == 1) { $vbar1 = $location[0] - 30; } if($name == 2) { $vbar2 = $location[0] - 30; } ClearGraph(0); RedrawIt(); $pbox->move($moveable_bar1, ($vbar1 + 19), 30); $pbox->move($moveable_bar2, ($vbar2 + 19), 30); $pwindow->set_focus($button); } function DragAids() { global $drag_state, $moveable_bar1, $moveable_bar2; if($drag_state == 1) { $moveable_bar1->hide(); $moveable_bar2->hide(); $drag_state = 0; } else { $moveable_bar1->show(); $moveable_bar2->show(); $drag_state = 1; } return 1; } Tabber Watts wrote: > I in now way need/require anyone to completely solve this issue but > need ideas on how this might be accomplished. > > Situation: > I have data on six different sites, and each collect data period has a > +/- 30 minute skew for each site. I need to allow users to see these > data collection periods for a given day and select when they want to > look at data for all six sites. > > I can solve this problem without using graphics and just displaying > text times and having the user enter in the times manually but I would > like todo it with graphics. > > My idea: > Generate a timeline in a window, with the sites listed on the left > side of the window. Then there will be two vertical lines that a user > could click on and drag to the appropriate times they want to start > and stop looking at the data. > > What I know I can do: > Generation of the window with the full timeline and placement of data > lines for each site in a GtkLayout. > > What I don't know how to do: > Clicking and dragging of the line. The closest thing I could find to > this functionally is the colorselector.php demo using > GtkColorSelectionDialog. > > Any help or pointing in the right direction would be helpfull. > > Mahalo, > Tabber Watts -- Brian Stumm ETS - Energy Technology Systems, Inc bstumm@energytechnologysystems.com http://energytechnologysystems.com

« previous php.gtk.general (#6368) next »