mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-20 19:43:01 +00:00
2557c517b1
Thu Aug 12 21:38:53 BST 1999 Andy Thomas <alt@gimp.org> * app/commands.c * app/commands.h * app/disp_callbacks.c * app/gdisplay.c * app/gdisplay.h * app/info_dialog.c * app/info_dialog.h * app/info_window.c * app/info_window.h * app/menus.c * app/scale.c * app/scroll.c * app/scroll.h * app/nav_window.c (new) * app/nav_window.h (new) * pixmap/dropper.xpm (new) New "navigator" image (accessed via <Image>/Window Nav..). This gives an outline of the location of the current view on an image. Eg if your image window is only showing part of an image then the Window Navigation window will outline the area viewed. You can "drag" the outlined square around the viewport and the main image will scroll. Additional a single click outside the square will center the image at that location. Also started to add additional information to a new page inside the Window information dialog (currently only pixel value is shown). Both these features are currently work in progress and unfinished. In particular the Navigator does not keep in step with changes to the basic image (however it does keep in step with image size changes and if you modify the size of the image viewing window). It also does not display the transparent areas of images very nicely.
121 lines
3.5 KiB
C
121 lines
3.5 KiB
C
/* The GIMP -- an image manipulation program
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
*
|
|
* This program 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 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program 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 this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
#ifndef __INFO_DIALOG_H__
|
|
#define __INFO_DIALOG_H__
|
|
|
|
#include "gtk/gtk.h"
|
|
|
|
#include "libgimp/gimpsizeentry.h"
|
|
#include "libgimp/gimpunit.h"
|
|
|
|
typedef enum {
|
|
INFO_LABEL,
|
|
INFO_ENTRY,
|
|
INFO_SCALE,
|
|
INFO_SPINBUTTON,
|
|
INFO_SIZEENTRY
|
|
} InfoFieldType;
|
|
|
|
typedef struct _InfoField InfoField;
|
|
typedef struct _InfoDialog InfoDialog;
|
|
|
|
struct _InfoField
|
|
{
|
|
InfoFieldType field_type;
|
|
|
|
GtkObject *obj;
|
|
void *value_ptr;
|
|
|
|
GtkSignalFunc callback;
|
|
gpointer client_data;
|
|
};
|
|
|
|
struct _InfoDialog
|
|
{
|
|
GtkWidget *shell;
|
|
GtkWidget *vbox;
|
|
GtkWidget *info_table;
|
|
GtkWidget *info_notebook;
|
|
|
|
GSList *field_list;
|
|
int nfields;
|
|
|
|
void *user_data;
|
|
};
|
|
|
|
/* Info Dialog functions */
|
|
|
|
InfoDialog *info_dialog_new (gchar *title);
|
|
InfoDialog *info_dialog_notebook_new (gchar *title);
|
|
void info_dialog_free (InfoDialog *idialog);
|
|
|
|
void info_dialog_popup (InfoDialog *idialog);
|
|
void info_dialog_popdown (InfoDialog *idialog);
|
|
|
|
void info_dialog_update (InfoDialog *idialog);
|
|
|
|
GtkWidget *info_dialog_add_label (InfoDialog *idialog,
|
|
gchar *title,
|
|
gchar *text_ptr);
|
|
|
|
GtkWidget *info_dialog_add_entry (InfoDialog *idialog,
|
|
gchar *title,
|
|
gchar *text_ptr,
|
|
GtkSignalFunc callback,
|
|
gpointer data);
|
|
|
|
GtkWidget *info_dialog_add_scale (InfoDialog *idialog,
|
|
gchar *title,
|
|
gdouble *value_ptr,
|
|
gfloat lower,
|
|
gfloat upper,
|
|
gfloat step_increment,
|
|
gfloat page_increment,
|
|
gfloat page_size,
|
|
gint digits,
|
|
GtkSignalFunc callback,
|
|
gpointer data);
|
|
|
|
GtkWidget *info_dialog_add_spinbutton (InfoDialog *idialog,
|
|
gchar *title,
|
|
gdouble *value_ptr,
|
|
gfloat lower,
|
|
gfloat upper,
|
|
gfloat step_increment,
|
|
gfloat page_increment,
|
|
gfloat page_size,
|
|
gfloat climb_rate,
|
|
gint digits,
|
|
GtkSignalFunc callback,
|
|
gpointer data);
|
|
|
|
GtkWidget *info_dialog_add_sizeentry (InfoDialog *idialog,
|
|
gchar *title,
|
|
gdouble *value_ptr,
|
|
gint nfields,
|
|
GUnit unit,
|
|
gchar *unit_format,
|
|
gboolean menu_show_pixels,
|
|
gboolean menu_show_percent,
|
|
gboolean show_refval,
|
|
GimpSizeEntryUP update_policy,
|
|
GtkSignalFunc callback,
|
|
gpointer data);
|
|
|
|
#endif /* __INFO_DIALOG_H__ */
|