]> granicus.if.org Git - graphviz/commitdiff
more smyrna improvemenets including windows gvpr support, mouse wheel zoom
authorarif <devnull@localhost>
Mon, 4 May 2009 18:07:45 +0000 (18:07 +0000)
committerarif <devnull@localhost>
Mon, 4 May 2009 18:07:45 +0000 (18:07 +0000)
cmd/smyrna/gltemplate.c
cmd/smyrna/gui/menucallbacks.c
cmd/smyrna/gui/menucallbacks.h
cmd/smyrna/main.c
cmd/smyrna/selection.c
cmd/smyrna/smyrna.vcproj
cmd/smyrna/topview.c
cmd/smyrna/viewport.c

index 650ca8bbd72ecb3bf9c7a14b4ec829c0f46989be..44a11d76f7caaafcd13e62eebddc5dec3c409afe 100755 (executable)
@@ -261,7 +261,7 @@ static gboolean key_press_event(GtkWidget * widget, GdkEventKey * event,
 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);
@@ -311,6 +311,7 @@ static gboolean button_release_event(GtkWidget * widget,
 {
        view->FontSizeConst=GetOGLDistance(14);
 
+
        if (event->button == 1) //left click release
     {
                if (glCompSetRelease
@@ -377,6 +378,17 @@ static gboolean button_release_event(GtkWidget * widget,
     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
@@ -392,7 +404,8 @@ static gboolean motion_notify_event(GtkWidget * widget,
 
 
     gboolean redraw = FALSE;
-    dx = x - begin_x;
+
+       dx = x - begin_x;
     dy = y - begin_y;
 
     view->mouse.dx = dx;
@@ -598,6 +611,7 @@ void create_window(GdkGLConfig * glconfig, GtkWidget * vbox)
                           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",
@@ -609,16 +623,24 @@ void create_window(GdkGLConfig * glconfig, GtkWidget * vbox)
 
     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);
index cf718c84d4b9eb0e86ceddcb85f5edd960494423..cfedb5cae68cb28740f4173ff6fcfd5af5236cf9 100755 (executable)
@@ -391,3 +391,8 @@ void change_cursor(GdkCursorType C)
     gdk_cursor_destroy(cursor);
        return;
 }
+void mTestgvpr(GtkWidget * widget, gpointer user_data)
+{
+       apply_gvpr(view->g[view->activeGraph],"c:/graphviz-ms/bin/makered.g");
+       
+}
index 4b0f6e14b14250cdf07fbb532be631ad5fc62b66..6f4338714b5cec0ac0003aa42754f879efe841fa 100755 (executable)
@@ -77,6 +77,7 @@ _BB void mSelectAreaXSlot(GtkWidget * widget, gpointer user_data);
 //help
 _BB void mAbout(GtkWidget * widget, gpointer user_data);
 _BB void mHelp(GtkWidget * widget, gpointer user_data);
+_BB void mTestgvpr(GtkWidget * widget, gpointer user_data);
 void change_cursor(GdkCursorType C);
 int show_close_nosavedlg(void);
 
index 9e8eb13393c1a18cd624600706ed28f7d3194cda..bd5b252227f8dbfe1c86d175fd54be3f5bf22eea 100755 (executable)
@@ -32,7 +32,7 @@
 #include "menucallbacks.h"
 #include "gltemplate.h"
 #include "memory.h"
-#include "md5.h"
+#include "gvprpipe.h"
 #ifdef ENABLE_NLS
 #include "libintl.h"
 #endif
index f3e45a47455b75e098f2533dbffd0fdcbe76192d..0fe7cae2c2ddd4835979d7f3b2c31ed3e3058161 100755 (executable)
@@ -413,7 +413,6 @@ view->Topview->Graphdata.selectedEdges =
 static void update_cgraph_pos(topview_node* N)
 {
     char buf[512];
-    double x, y;
     Agsym_t* pos;
        Agnode_t* obj=N->Node;
 
index 32068743e036ccef78389bef4a27d1fb66e3f0cd..193aac7d36379fbf6f20559ae35f57a019775813 100644 (file)
                                RelativePath=".\gui\gui.c"
                                >
                        </File>
+                       <File
+                               RelativePath=".\gvprpipe.c"
+                               >
+                       </File>
                        <File
                                RelativePath=".\hier.c"
                                >
index 8004ad0acb71e5fd7d3bf7d6d9eb72c29a276d72..75c9138094c4bfcfe682e21c9fde1f2d25aff51d 100755 (executable)
@@ -319,7 +319,8 @@ static float set_gl_dot_size(topview * t)
 {
        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;
 
@@ -487,7 +488,7 @@ static int drawtopviewnodes(Agraph_t * g)
                        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);
 
                        }
            }
index 0c7688d14b37567a80d3cf79b31e780c46fe1886..9bfe96def36ee306a654f11c68bb896275f51df6 100755 (executable)
@@ -1041,5 +1041,11 @@ void please_dont_wait(void)
     gtk_widget_hide(glade_xml_get_widget(xml, "frmWait"));
 }
 
+int apply_gvpr(Agraph_t* g,char* prog)
+{
+#ifdef WIN32   
+       Agraph_t* a=exec_gvpr(prog,g);
+#endif
+}