From 63eadd0582724e2626dddf0729ec991c1979b8cc Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 14 Feb 2020 17:03:29 +0100 Subject: Skeleton GUI and CrystFELImageView --- src/crystfelimageview.h | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/crystfelimageview.h (limited to 'src/crystfelimageview.h') diff --git a/src/crystfelimageview.h b/src/crystfelimageview.h new file mode 100644 index 00000000..9dd69d0d --- /dev/null +++ b/src/crystfelimageview.h @@ -0,0 +1,84 @@ +/* + * crystfelimageview.h + * + * CrystFEL's image viewer widget + * + * Copyright © 2020 Deutsches Elektronen-Synchrotron DESY, + * a research centre of the Helmholtz Association. + * + * Authors: + * 2020 Thomas White + * + * This file is part of CrystFEL. + * + * CrystFEL is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CrystFEL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with CrystFEL. If not, see . + * + */ + +#ifndef CRYSTFELIMAGEVIEW_H +#define CRYSTFELIMAGEVIEW_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#define CRYSTFEL_TYPE_IMAGE_VIEW (crystfel_image_view_get_type()) + +#define CRYSTFEL_IMAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + CRYSTFEL_TYPE_IMAGE_VIEW, CrystFELImageView)) + +#define CRYSTFEL_IS_IMAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + CRYSTFEL_TYPE_IMAGE_VIEW)) + +#define CRYSTFEL_IMAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((obj), \ + CRYSTFEL_TYPE_IMAGE_VIEW, CrystFELImageView)) + +#define CRYSTFEL_IS_IMAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((obj), \ + CRYSTFEL_TYPE_IMAGE_VIEW)) + +#define CRYSTFEL_IMAGE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \ + CRYSTFEL_TYPE_IMAGE_VIEW, CrystFELImageView)) + +struct _crystfelimageview +{ + GtkDrawingArea parent_instance; + + /*< private >*/ + GtkIMContext *im_context; + + int w; /* Surface size in pixels */ + int h; + + /* Redraw/scroll stuff */ + GtkScrollablePolicy hpol; + GtkScrollablePolicy vpol; + GtkAdjustment *hadj; + GtkAdjustment *vadj; + double x_scroll_pos; + double y_scroll_pos; +}; + +struct _crystfelimageviewclass +{ + GtkDrawingAreaClass parent_class; +}; + +typedef struct _crystfelimageview CrystFELImageView; +typedef struct _crystfelimageviewclass CrystFELImageViewClass; + +extern GType crystfel_image_view_get_type(void); +extern GtkWidget *crystfel_image_view_new(void); + + +#endif /* CRYSTFELIMAGEVIEW_H */ -- cgit v1.2.3