diff --git a/src/zmapControl/zmapControlWindowButtons.c b/src/zmapControl/zmapControlWindowButtons.c index ce9ddb2ccfddc49ea1b7d7fe9910075ee4f9b099..65d979d8bb1930af8cd0f644940cf14acc98da8b 100755 --- a/src/zmapControl/zmapControlWindowButtons.c +++ b/src/zmapControl/zmapControlWindowButtons.c @@ -23,28 +23,33 @@ * Ed Griffiths (Sanger Institute, UK) edgrif@sanger.ac.uk and * Simon Kelley (Sanger Institute, UK) srk@sanger.ac.uk * - * Description: - * Exported functions: See XXXXXXXXXXXXX.h + * Description: Implement the buttons on the zmap. + * + * Exported functions: See zmapControl_P.h * HISTORY: - * Last edited: Jul 2 19:16 2004 (edgrif) + * Last edited: Jul 9 17:43 2004 (edgrif) * Created: Thu Jul 24 14:36:27 2003 (edgrif) - * CVS info: $Id: zmapControlWindowButtons.c,v 1.7 2004-07-02 18:23:42 edgrif Exp $ + * CVS info: $Id: zmapControlWindowButtons.c,v 1.8 2004-07-14 09:07:09 edgrif Exp $ *------------------------------------------------------------------- */ #include <string.h> #include <ZMap/zmapWindow.h> #include <zmapControl_P.h> -#include <zmapControlSplit.h> static void newCB(GtkWidget *widget, gpointer cb_data) ; static void loadCB(GtkWidget *widget, gpointer cb_data) ; static void stopCB(GtkWidget *widget, gpointer cb_data) ; +static void zoomInCB(GtkWindow *widget, gpointer cb_data) ; +static void zoomOutCB(GtkWindow *widget, gpointer cb_data) ; +static void splitPaneCB(GtkWidget *widget, gpointer data) ; +static void splitHPaneCB(GtkWidget *widget, gpointer data) ; static void quitCB(GtkWidget *widget, gpointer cb_data) ; + GtkWidget *zmapControlWindowMakeButtons(ZMap zmap) { GtkWidget *frame ; @@ -75,22 +80,22 @@ GtkWidget *zmapControlWindowMakeButtons(ZMap zmap) hsplit_button = gtk_button_new_with_label("H-Split"); gtk_signal_connect(GTK_OBJECT(hsplit_button), "clicked", - GTK_SIGNAL_FUNC(splitPane), (gpointer)zmap) ; + GTK_SIGNAL_FUNC(splitPaneCB), (gpointer)zmap) ; gtk_box_pack_start(GTK_BOX(hbox), hsplit_button, FALSE, FALSE, 0) ; vsplit_button = gtk_button_new_with_label("V-Split"); gtk_signal_connect(GTK_OBJECT(vsplit_button), "clicked", - GTK_SIGNAL_FUNC(splitHPane), (gpointer)zmap) ; + GTK_SIGNAL_FUNC(splitHPaneCB), (gpointer)zmap) ; gtk_box_pack_start(GTK_BOX(hbox), vsplit_button, FALSE, FALSE, 0) ; zoomin_button = gtk_button_new_with_label("Zoom In"); gtk_signal_connect(GTK_OBJECT(zoomin_button), "clicked", - GTK_SIGNAL_FUNC(zoomIn), (gpointer)zmap); + GTK_SIGNAL_FUNC(zoomInCB), (gpointer)zmap); gtk_box_pack_start(GTK_BOX(hbox), zoomin_button, FALSE, FALSE, 0) ; zoomout_button = gtk_button_new_with_label("Zoom Out"); gtk_signal_connect(GTK_OBJECT(zoomout_button), "clicked", - GTK_SIGNAL_FUNC(zoomOut), (gpointer)zmap); + GTK_SIGNAL_FUNC(zoomOutCB), (gpointer)zmap); gtk_box_pack_start(GTK_BOX(hbox), zoomout_button, FALSE, FALSE, 0) ; quit_button = gtk_button_new_with_label("Quit") ; @@ -162,11 +167,74 @@ static void quitCB(GtkWidget *widget, gpointer cb_data) { ZMap zmap = (ZMap)cb_data ; - if (zmap->panesTree) - g_node_destroy(zmap->panesTree); - zmapControlTopLevelKillCB(zmap) ; return ; } +void zoomInCB(GtkWindow *widget, gpointer cb_data) +{ + ZMap zmap = (ZMap)cb_data ; + ZMapPane pane = zmap->focuspane ; + + zMapWindowZoom(zMapViewGetWindow(pane->curr_view_window), 2.0) ; + + return; +} + + +void zoomOutCB(GtkWindow *widget, gpointer cb_data) +{ + ZMap zmap = (ZMap)cb_data ; + ZMapPane pane = zmap->focuspane ; + + zMapWindowZoom(zMapViewGetWindow(pane->curr_view_window), 0.5) ; + + return; +} + + +static void splitPaneCB(GtkWidget *widget, gpointer data) +{ + ZMap zmap = (ZMap)data ; + ZMapPane pane ; + GtkWidget *parent_widget = NULL ; + ZMapViewWindow view_window ; + + /* this all needs to do view stuff here and return a parent widget............ */ + parent_widget = splitPane(zmap) ; + + pane = zmap->focuspane ; + + view_window = zMapViewAddWindow(zMapViewGetView(pane->curr_view_window), parent_widget) ; + + pane->curr_view_window = view_window ; /* new focus window ?? */ + + /* We'll need to update the display..... */ + gtk_widget_show_all(zmap->toplevel) ; + + return ; +} + + +static void splitHPaneCB(GtkWidget *widget, gpointer data) +{ + ZMap zmap = (ZMap)data ; + ZMapPane pane ; + GtkWidget *parent_widget = NULL ; + ZMapViewWindow view_window ; + + /* this all needs to do view stuff here and return a parent widget............ */ + parent_widget = splitHPane(zmap) ; + + pane = zmap->focuspane ; + + view_window = zMapViewAddWindow(zMapViewGetView(pane->curr_view_window), parent_widget) ; + + pane->curr_view_window = view_window ; /* new focus window ?? */ + + /* We'll need to update the display..... */ + gtk_widget_show_all(zmap->toplevel) ; + + return ; +}