static gboolean button_press_event(GtkWidget * widget,
GdkEventButton * event, gpointer data)
{
- if (view->graphCount)
+ if (view->graphCount)
{
if (glCompSetClick(view->widgets, (int) event->x, (int) event->y))
expose_event(view->drawing_area, NULL, NULL);
{
view->FontSizeConst=GetOGLDistance(14);
+
if (event->button == 1) //left click release
{
if (glCompSetRelease
return FALSE;
}
+static scroll_event(GtkWidget * widget,
+ GdkEventScroll * event, gpointer data)
+{
+ if(event->direction==0)
+ view->mouse.dx = -30;
+ if(event->direction==1)
+ view->mouse.dx = 30;
+ glmotion_zoom(view);
+ glexpose();
+}
+
/*
when mouse is moved over glcanvas this function is called
params:gtk opgn gl canvas , GdkEventMotion object and custom data
gboolean redraw = FALSE;
- dx = x - begin_x;
+
+ dx = x - begin_x;
dy = y - begin_y;
view->mouse.dx = dx;
GDK_POINTER_MOTION_MASK|
GDK_BUTTON_PRESS_MASK |GDK_KEY_PRESS |
GDK_BUTTON_RELEASE_MASK |
+ GDK_SCROLL |
GDK_VISIBILITY_NOTIFY_MASK);
g_signal_connect_after(G_OBJECT(view->drawing_area), "realize",
g_signal_connect(G_OBJECT(view->drawing_area), "button_press_event",
G_CALLBACK(button_press_event), NULL);
+ g_signal_connect(G_OBJECT(view->drawing_area), "2button_press_event",
+ G_CALLBACK(button_press_event), NULL);
+
g_signal_connect(G_OBJECT(view->drawing_area), "button_release_event",
G_CALLBACK(button_release_event), NULL);
g_signal_connect(G_OBJECT(view->drawing_area), "key_release_event",
G_CALLBACK(button_release_event), NULL);
g_signal_connect(G_OBJECT(view->drawing_area), "key_press_event",
G_CALLBACK(button_release_event), NULL);
+ g_signal_connect(G_OBJECT(view->drawing_area), "scroll_event",
+ G_CALLBACK(scroll_event), NULL);
+
g_signal_connect(G_OBJECT(view->drawing_area), "motion_notify_event",
G_CALLBACK(motion_notify_event), NULL);
+
+
gtk_box_pack_start(GTK_BOX(vbox), view->drawing_area, TRUE, TRUE, 0);
gtk_widget_show(view->drawing_area);
{
static float dotsize;
if (view->active_camera==-1)
- dotsize = (float)GL_DOTSIZE_CONSTANT / view->zoom;
+// dotsize = (float)GL_DOTSIZE_CONSTANT / view->zoom;
+ dotsize = 2.00;
else
dotsize = (float)GL_DOTSIZE_CONSTANT / view->cameras[view->active_camera]->r*(float)-1;
else if (view->defaultnodeshape==1)
{
draw_sphere(v->distorted_x - ddx,
- v->distorted_y - ddy, v->distorted_z - ddz,0.25);
+ v->distorted_y - ddy, v->distorted_z - ddz,0.0025);
}
}