Skip to content
Snippets Groups Projects
Commit cf4bd517 authored by rnc's avatar rnc
Browse files

converted to use customised foocanvas instead of gnomecanvas

parent d52164c3
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
/* Last edited: May 14 10:34 2004 (rnc) */
/* file: zmapcontrol.h
* Author: Simon Kelley (srk@sanger.ac.uk)
* Copyright (c) Sanger Institute, 2003
......@@ -19,83 +20,96 @@
*-------------------------------------------------------------------
* This file is part of the ZMap genome database package
* and was written by
* Rob Clack (Sanger Institute, UK) rnc@sanger.ac.uk,
* Rob Clack (Sanger Institute, UK) rnc@sanger.ac.uk,
* Ed Griffiths (Sanger Institute, UK) edgrif@sanger.ac.uk and
* Simon Kelley (Sanger Institute, UK) srk@sanger.ac.uk
*/
typedef struct zMapLook ZMapLook;
typedef struct zMapRoot ZMapRoot;
#ifndef ZMAPCONTROL_H
#define ZMAPCONTROL_H
#include <gtk/gtk.h>
#include <libfoocanvas/libfoocanvas.h>
#include <zmapcommon.h>
#include <seqregion.h>
typedef struct zMapWindow ZMapWindow;
typedef struct zMapPane ZMapPane;
typedef int VisibleCoord;
typedef int VisibleCoord;
typedef float ScreenCoord;
typedef char *Base;
BOOL zmIsOnScreen(ZMapWindow *window, Coord coord1, Coord coord2);
VisibleCoord zmVisibleCoord(ZMapRoot *root, Coord coord);
ScreenCoord zmScreenCoord(ZMapWindow *window, Coord coord);
Coord zmCoordFromScreen(ZMapWindow *window, ScreenCoord coord);
struct zMapLook {
struct zMapWindow {
/* Data associated with whole window. */
STORE_HANDLE handle;
ZMapRoot *root1, *root2;
GtkWidget *gexWindow;
GtkWidget *vbox;
STORE_HANDLE handle;
GtkWidget *window;
GtkWidget *vbox1;
GtkItemFactory *itemFactory;
GtkWidget *buttonBar;
GtkWidget *infoSpace;
GtkWidget *pane;
};
struct zMapRoot {
/* Data associated with whole window. */
ZMapLook *look; /* parent */
ZMapWindow *window1, *window2; /* linked list */
Graph navigator;
SeqRegion *region;
InvarCoord origin; /* that base which is VisibleCoord 1 */
GtkWidget *hbox, *vbox;
GtkWidget *pane;
GtkWidget *splitButton;
GtkWidget *infoSpace;
Graph navigator;
FooCanvas *navcanvas;
InvarCoord origin; /* that base which is VisibleCoord 1 */
GtkWidget *zoomvbox;
GtkWidget *toolbar;
GtkWidget *hbox;
GtkWidget *hpane; /* allows the user to minimise the navigator pane */
GNode *panesTree;
ZMapPane *focuspane;
BOOL firstTime;
/* navigator stuff */
Coord navStart, navEnd; /* Start drawing the Nav bar from here */
ScreenCoord scaleOffset;
Coord navStart, navEnd; /* Start drawing the Nav bar from here */
ScreenCoord scaleOffset;
};
struct zMapWindow {
/* Data associated with one scrolling window. */
ZMapLook *look; /* parent */
ZMapRoot *root; /* parent */
Graph graph;
GtkWidget *graphWidget;
GtkWidget *scrolledWindow;
GtkWidget *vbox;
GtkWidget *combo;
int basesPerLine;
InvarCoord centre;
int graphHeight;
int dragBox, scrollBox;
Array cols;
Array box2seg, box2col;
struct zMapPane {
/* Data associated with one scrolling pane. */
ZMapWindow *window; /* parent */
ZMapRegion *zMapRegion; /* the region holding all the SEGS */
Graph graph;
GtkWidget *graphWidget;
GtkWidget *vbox;
GtkWidget *pane;
GtkWidget *frame;
GtkWidget *scrolledWindow;
FooCanvas *canvas; /* where we paint the display */
FooCanvasItem *background;
FooCanvasItem *group;
GtkWidget *combo;
int basesPerLine;
InvarCoord centre;
int graphHeight;
int dragBox, scrollBox;
Array cols;
Array box2seg, box2col;
STORE_HANDLE drawHandle; /* gets freed on each redraw. */
int DNAwidth;
int DNAwidth;
double zoomFactor;
int step_increment;
gulong hid1, hid2, hid3;
};
struct zMapColumn;
typedef struct zMapColumn ZMapColumn;
void zmRegBox(ZMapWindow *window, int box, ZMapColumn *col, void *seg);
typedef void (*colDrawFunc)(ZMapWindow *window, ZMapColumn *col,
float *offset, int frame);
typedef void (*colConfFunc)(void);
typedef void (*colInitFunc)(ZMapWindow *window, ZMapColumn *col);
typedef void (*colSelectFunc)(ZMapWindow *window, ZMapColumn *col,
void *seg, int box, double x, double y,
/* callback function prototypes********************************
* These must be here as they're referred to in zMapColumn below
*/
typedef void (*colDrawFunc) (ZMapPane *pane, ZMapColumn *col,
float *offset, int frame);
typedef void (*colConfFunc) (void);
typedef void (*colInitFunc) (ZMapPane *pane, ZMapColumn *col);
typedef void (*colSelectFunc)(ZMapPane *pane, ZMapColumn *col,
void *seg, int box,
double x, double y,
BOOL isSelect);
/**************************************************************/
struct zMapColumn {
ZMapWindow *window;
ZMapPane *pane;
colInitFunc initFunc;
colDrawFunc drawFunc;
colConfFunc configFunc;
......@@ -121,17 +135,50 @@ struct ZMapColDefs {
};
/* Column drawing code. */
void zMapFeatureColumn(ZMapWindow *window, ZMapColumn *col,
float *offset, int frame);
void zMapDNAColumn(ZMapWindow *window, ZMapColumn *col,
float *offsetp, int frame);
void buildCols(ZMapWindow *window);
void makezMapDefaultColumns(ZMapWindow *window);
float zmDrawScale(float offset, int start, int end);
void nbcInit(ZMapWindow *window, ZMapColumn *col);
void nbcSelect(ZMapWindow *window, ZMapColumn *col,
void *seg, int box, double x, double y, BOOL isSelect);
void zMapGeneDraw(ZMapWindow *window, ZMapColumn *col, float *offset, int frame);
void geneSelect(ZMapWindow *window, ZMapColumn *col,
void *arg, int box, double x, double y, BOOL isSelect);
typedef struct {
ZMapWindow *window; /* the window pane */
Calc_cb calc_cb; /* callback routine */
void *seqRegion; /* AceDB region */
} ZMapCallbackData;
/* function prototypes ************************************/
BOOL zMapDisplay(Activate_cb act_cb,
Calc_cb calc_cb,
void *region,
char *seqspec,
char *fromspec,
BOOL isOldGraph);
void zmRegBox(ZMapPane *pane, int box, ZMapColumn *col, void *seg);
/* Column drawing code ************************************/
void zMapFeatureColumn(ZMapPane *pane, ZMapColumn *col,
float *offset, int frame);
void zMapDNAColumn (ZMapPane *pane, ZMapColumn *col,
float *offsetp, int frame);
void buildCols (ZMapPane *pane);
void makezMapDefaultColumns(ZMapPane *pane);
/*float zmDrawScale (FooCanvas *canvas, float offset, int start, int end);*/
float zmDrawScale (float offset, int start, int end);
void nbcInit (ZMapPane *pane, ZMapColumn *col);
void nbcSelect (ZMapPane *pane, ZMapColumn *col,
void *seg, int box, double x, double y, BOOL isSelect);
void zMapGeneDraw (ZMapPane *pane, ZMapColumn *col, float *offset, int frame);
void geneSelect (ZMapPane *pane, ZMapColumn *col,
void *arg, int box, double x, double y, BOOL isSelect);
/* other routines *****************************************/
BOOL zmIsOnScreen (ZMapPane *pane, Coord coord1, Coord coord2);
VisibleCoord zmVisibleCoord (ZMapWindow *window , Coord coord);
ScreenCoord zmScreenCoord (ZMapPane *pane, Coord coord);
Coord zmCoordFromScreen(ZMapPane *pane, ScreenCoord coord);
void addPane (ZMapWindow *window, char orientation);
BOOL Quit (GtkWidget *widget, gpointer data);
#endif
/************************** end of file **********************************/
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment