pidgin/purple-plugin-pack
Clone
Summary
Browse
Changes
Graph
Clean up some 'ISO C90 forbids mixed declarations and code' warnings.
2010-12-04, John Bailey
fa2a61b3ed19
Clean up some 'ISO C90 forbids mixed declarations and code' warnings.
#ifndef __XTEXT_H__
#define __XTEXT_H__
#include
<gtk/gtkadjustment.h>
#ifdef USE_XFT
#include
<X11/Xft/Xft.h>
#endif
#ifdef USE_SHM
#include
<X11/Xlib.h>
#include
<sys/ipc.h>
#include
<sys/shm.h>
#include
<X11/extensions/XShm.h>
#endif
#define GTK_TYPE_XTEXT (gtk_xtext_get_type ())
#define GTK_XTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_XTEXT, GtkXText))
#define GTK_XTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_XTEXT, GtkXTextClass))
#define GTK_IS_XTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GTK_TYPE_XTEXT))
#define GTK_IS_XTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_XTEXT))
#define GTK_XTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_XTEXT, GtkXTextClass))
#define ATTR_BOLD '\002'
#define ATTR_COLOR '\003'
#define ATTR_BLINK '\006'
#define ATTR_BEEP '\007'
#define ATTR_ITALICS2 '\011'
#define ATTR_RESET '\017'
#define ATTR_REVERSE '\026'
#define ATTR_ITALICS '\035'
#define ATTR_UNDERLINE '\037'
/* these match palette.h */
#define XTEXT_MIRC_COLS 32
#define XTEXT_COLS 37
/* 32 plus 5 for extra stuff below */
#define XTEXT_MARK_FG 32
/* for marking text */
#define XTEXT_MARK_BG 33
#define XTEXT_FG 34
#define XTEXT_BG 35
#define XTEXT_MARKER 36
/* for marker line */
typedef
struct
_GtkXText
GtkXText
;
typedef
struct
_GtkXTextClass
GtkXTextClass
;
typedef
struct
textentry
textentry
;
typedef
struct
{
GtkXText
*
xtext
;
/* attached to this widget */
gfloat
old_value
;
/* last known adj->value */
textentry
*
text_first
;
textentry
*
text_last
;
guint16
grid_offset
[
256
];
textentry
*
last_ent_start
;
/* this basically describes the last rendered */
textentry
*
last_ent_end
;
/* selection. */
int
last_offset_start
;
int
last_offset_end
;
int
last_pixel_pos
;
int
pagetop_line
;
int
pagetop_subline
;
textentry
*
pagetop_ent
;
/* what's at xtext->adj->value */
int
num_lines
;
int
indent
;
/* position of separator (pixels) from left */
textentry
*
marker_pos
;
int
window_width
;
/* window size when last rendered. */
int
window_height
;
unsigned
int
time_stamp
:
1
;
unsigned
int
scrollbar_down
:
1
;
unsigned
int
needs_recalc
:
1
;
unsigned
int
grid_dirty
:
1
;
unsigned
int
marker_seen
:
1
;
unsigned
int
reset_marker_pos
:
1
;
}
xtext_buffer
;
struct
_GtkXText
{
GtkWidget
widget
;
xtext_buffer
*
buffer
;
xtext_buffer
*
orig_buffer
;
xtext_buffer
*
selection_buffer
;
#ifdef USE_SHM
XShmSegmentInfo
shminfo
;
#endif
GtkAdjustment
*
adj
;
GdkPixmap
*
pixmap
;
/* 0 = use palette[19] */
GdkDrawable
*
draw_buf
;
/* points to ->window */
GdkCursor
*
hand_cursor
;
GdkCursor
*
resize_cursor
;
int
pixel_offset
;
/* amount of pixels the top line is chopped by */
int
last_win_x
;
int
last_win_y
;
int
last_win_h
;
int
last_win_w
;
int
tint_red
;
int
tint_green
;
int
tint_blue
;
GdkGC
*
bgc
;
/* backing pixmap */
GdkGC
*
fgc
;
/* text foreground color */
GdkGC
*
light_gc
;
/* sep bar */
GdkGC
*
dark_gc
;
GdkGC
*
thin_gc
;
GdkGC
*
marker_gc
;
gulong
palette
[
XTEXT_COLS
];
gint
io_tag
;
/* for delayed refresh events */
gint
add_io_tag
;
/* "" when adding new text */
gint
scroll_tag
;
/* marking-scroll timeout */
gulong
vc_signal_tag
;
/* signal handler for "value_changed" adj */
int
select_start_adj
;
/* the adj->value when the selection started */
int
select_start_x
;
int
select_start_y
;
int
select_end_x
;
int
select_end_y
;
int
max_lines
;
int
col_fore
;
int
col_back
;
int
depth
;
/* gdk window depth */
char
num
[
8
];
/* for parsing mirc color */
int
nc
;
/* offset into xtext->num */
textentry
*
hilight_ent
;
int
hilight_start
;
int
hilight_end
;
guint16
fontwidth
[
128
];
/* each char's width, only the ASCII ones */
#ifdef USE_XFT
XftColor
color
[
XTEXT_COLS
];
XftColor
*
xft_fg
;
XftColor
*
xft_bg
;
/* both point into color[20] */
XftDraw
*
xftdraw
;
XftFont
*
font
;
XftFont
*
ifont
;
/* italics */
#else
struct
pangofont
{
PangoFontDescription
*
font
;
PangoFontDescription
*
ifont
;
/* italics */
int
ascent
;
int
descent
;
}
*
font
,
pango_font
;
PangoLayout
*
layout
;
#endif
int
fontsize
;
int
space_width
;
/* width (pixels) of the space " " character */
int
stamp_width
;
/* width of "[88:88:88]" */
int
max_auto_indent
;
unsigned
char
scratch_buffer
[
4096
];
void
(
*
error_function
)
(
int
type
);
int
(
*
urlcheck_function
)
(
GtkWidget
*
xtext
,
char
*
word
,
int
len
);
int
jump_out_offset
;
/* point at which to stop rendering */
int
jump_in_offset
;
/* "" start rendering */
int
ts_x
;
/* ts origin for ->bgc GC */
int
ts_y
;
int
clip_x
;
/* clipping (x directions) */
int
clip_x2
;
/* from x to x2 */
int
clip_y
;
/* clipping (y directions) */
int
clip_y2
;
/* from y to y2 */
unsigned
int
auto_indent
:
1
;
unsigned
int
moving_separator
:
1
;
unsigned
int
word_or_line_select
:
1
;
unsigned
int
color_paste
:
1
;
unsigned
int
thinline
:
1
;
unsigned
int
parsing_backcolor
:
1
;
unsigned
int
parsing_color
:
1
;
unsigned
int
backcolor
:
1
;
unsigned
int
button_down
:
1
;
unsigned
int
hilighting
:
1
;
unsigned
int
bold
:
1
;
unsigned
int
underline
:
1
;
unsigned
int
italics
:
1
;
unsigned
int
transparent
:
1
;
unsigned
int
marker
:
1
;
unsigned
int
separator
:
1
;
unsigned
int
shaded
:
1
;
unsigned
int
wordwrap
:
1
;
unsigned
int
dont_render
:
1
;
unsigned
int
dont_render2
:
1
;
unsigned
int
cursor_hand
:
1
;
unsigned
int
cursor_resize
:
1
;
unsigned
int
skip_border_fills
:
1
;
unsigned
int
skip_stamp
:
1
;
unsigned
int
render_hilights_only
:
1
;
unsigned
int
in_hilight
:
1
;
unsigned
int
un_hilight
:
1
;
unsigned
int
recycle
:
1
;
unsigned
int
avoid_trans
:
1
;
unsigned
int
overdraw
:
1
;
unsigned
int
indent_changed
:
1
;
unsigned
int
shm
:
1
;
};
struct
_GtkXTextClass
{
GtkWidgetClass
parent_class
;
void
(
*
word_click
)
(
GtkXText
*
xtext
,
char
*
word
,
GdkEventButton
*
event
);
};
GtkWidget
*
gtk_xtext_new
(
GdkColor
palette
[],
int
separator
);
void
gtk_xtext_append
(
xtext_buffer
*
buf
,
unsigned
char
*
text
,
int
len
);
void
gtk_xtext_append_indent
(
xtext_buffer
*
buf
,
unsigned
char
*
left_text
,
int
left_len
,
int
left_color
,
unsigned
char
*
right_text
,
int
right_len
,
int
right_color
);
int
gtk_xtext_set_font
(
GtkXText
*
xtext
,
char
*
name
);
void
gtk_xtext_set_background
(
GtkXText
*
xtext
,
GdkPixmap
*
pixmap
,
gboolean
trans
);
void
gtk_xtext_set_palette
(
GtkXText
*
xtext
,
GdkColor
palette
[]);
void
gtk_xtext_clear
(
xtext_buffer
*
buf
);
void
gtk_xtext_save
(
GtkXText
*
xtext
,
int
fh
);
void
gtk_xtext_refresh
(
GtkXText
*
xtext
,
int
do_trans
);
textentry
*
gtk_xtext_search
(
GtkXText
*
xtext
,
const
gchar
*
text
,
textentry
*
start
,
gboolean
case_match
,
gboolean
backward
);
void
gtk_xtext_reset_marker_pos
(
GtkXText
*
xtext
);
void
gtk_xtext_check_marker_visibility
(
GtkXText
*
xtext
);
gboolean
gtk_xtext_is_empty
(
xtext_buffer
*
buf
);
typedef
void
(
*
GtkXTextForeach
)
(
GtkXText
*
xtext
,
unsigned
char
*
text
,
void
*
data
);
void
gtk_xtext_foreach
(
xtext_buffer
*
buf
,
GtkXTextForeach
func
,
void
*
data
);
void
gtk_xtext_set_error_function
(
GtkXText
*
xtext
,
void
(
*
error_function
)
(
int
));
void
gtk_xtext_set_indent
(
GtkXText
*
xtext
,
gboolean
indent
);
void
gtk_xtext_set_max_indent
(
GtkXText
*
xtext
,
int
max_auto_indent
);
void
gtk_xtext_set_max_lines
(
GtkXText
*
xtext
,
int
max_lines
);
void
gtk_xtext_set_show_marker
(
GtkXText
*
xtext
,
gboolean
show_marker
);
void
gtk_xtext_set_show_separator
(
GtkXText
*
xtext
,
gboolean
show_separator
);
void
gtk_xtext_set_thin_separator
(
GtkXText
*
xtext
,
gboolean
thin_separator
);
void
gtk_xtext_set_time_stamp
(
xtext_buffer
*
buf
,
gboolean
timestamp
);
void
gtk_xtext_set_tint
(
GtkXText
*
xtext
,
int
tint_red
,
int
tint_green
,
int
tint_blue
);
void
gtk_xtext_set_urlcheck_function
(
GtkXText
*
xtext
,
int
(
*
urlcheck_function
)
(
GtkWidget
*
,
char
*
,
int
));
void
gtk_xtext_set_wordwrap
(
GtkXText
*
xtext
,
gboolean
word_wrap
);
xtext_buffer
*
gtk_xtext_buffer_new
(
GtkXText
*
xtext
);
void
gtk_xtext_buffer_free
(
xtext_buffer
*
buf
);
void
gtk_xtext_buffer_show
(
GtkXText
*
xtext
,
xtext_buffer
*
buf
,
int
render
);
GtkType
gtk_xtext_get_type
(
void
);
/**
* Set the foreground color for the widget.
*/
void
gtk_xtext_set_foreground_color
(
GtkXText
*
xtext
,
GdkColor
*
color
);
/**
* Set the background color for the widget.
*/
void
gtk_xtext_set_background_color
(
GtkXText
*
xtext
,
GdkColor
*
color
);
#endif