1/* $NetBSD$ *>/ 2#ifndef __GTK_VI_SCREEN_H__ 3#define __GTK_VI_SCREEN_H__ 4 5#include <sys/types.h> 6#include "config.h" 7#include "port.h" 8#include "../common/multibyte.h" 9 10#ifdef HAVE_PANGO 11#include <pango/pango.h> 12#include <pango/pangox.h> 13#else 14#define xthickness klass->xthickness 15#define ythickness klass->ythickness 16#define GTK_CLASS_TYPE(class) class->type 17#endif 18 19#define GTK_TYPE_VI_SCREEN (gtk_vi_screen_get_type ()) 20#define GTK_VI_SCREEN(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_VI_SCREEN, GtkViScreen)) 21#define GTK_VI_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_VI_SCREEN, GtkViScreenClass)) 22#define GTK_IS_VI_SCREEN(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_VI_SCREEN)) 23#define GTK_IS_VI_SCREEN_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_VI_SCREEN)) 24 25typedef struct _GtkViScreen GtkViScreen; 26typedef struct _GtkViScreenClass GtkViScreenClass; 27 28struct _GtkViScreen 29{ 30 GtkWidget widget; 31 32 GdkWindow *text_area; 33 34 GtkAdjustment *vadj; 35 36 GdkGC *gc; 37 GdkGC *reverse_gc; 38 39 CHAR_T *chars; 40 guchar *endcol; 41 guchar *reverse; 42 guchar color; 43 44 gint cols, rows; 45 gint ch_width, ch_height, ch_ascent; 46 gint curx, cury; /* character position */ 47 gint lastx, lasty; 48 gint marked_x, marked_y, marked_maxx, marked_maxy; 49 50#ifdef HAVE_PANGO 51 PangoContext *conx; 52 PangoAttrList* alist; 53#endif 54}; 55 56struct _GtkViScreenClass 57{ 58 GtkWidgetClass parent_class; 59 60 void (*rename) (GtkViScreen *vi, gchar *name, gint len); 61 void (*resized) (GtkViScreen *vi, gint width, gint height); 62}; 63 64GtkType gtk_vi_screen_get_type (void); 65GtkWidget* gtk_vi_screen_new (GtkAdjustment *vadj); 66void gtk_vi_screen_set_adjustment (GtkViScreen *vi_screen, 67 GtkAdjustment *vadj); 68void gtk_vi_screen_move (GtkViScreen *vi, gint row, gint col); 69void gtk_vi_screen_clrtoel (GtkViScreen *vi); 70void gtk_vi_screen_attribute(GtkViScreen *vi, gint attribute, gint on); 71void gtk_vi_screen_addstr (GtkViScreen *vi, const char *str, int len); 72void gtk_vi_screen_deleteln (GtkViScreen *vi); 73void gtk_vi_screen_insertln (GtkViScreen *vi); 74void gtk_vi_screen_refresh (GtkViScreen *vi); 75void gtk_vi_screen_rewrite (GtkViScreen *vi, gint row); 76 77#endif /* __GTK_VI_SCREEN_H__ */ 78