1 /* $Id: rangeset.h,v 1.5 2004/02/09 09:45:36 tksoh Exp $ */
2 /*******************************************************************************
4 * rangeset.h -- Nirvana Editor rangest header *
6 * Copyright (C) 1999 Mark Edel *
8 * This is free software; you can redistribute it and/or modify it under the *
9 * terms of the GNU General Public License as published by the Free Software *
10 * Foundation; either version 2 of the License, or (at your option) any later *
13 * This software is distributed in the hope that it will be useful, but WITHOUT *
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
18 * You should have received a copy of the GNU General Public License along with *
19 * software; if not, write to the Free Software Foundation, Inc., 59 Temple *
20 * Place, Suite 330, Boston, MA 02111-1307 USA *
22 * Nirvana Text Editor *
25 * Written by Tony Balinski with contributions from Andrew Hood *
30 *******************************************************************************/
31 #ifndef rangeset_h_DEFINED
32 #define rangeset_h_DEFINED
36 #define N_RANGESETS 63
38 typedef struct _Range Range
;
39 typedef struct _Rangeset Rangeset
;
41 void RangesetRefreshRange(Rangeset
*rangeset
, int start
, int end
);
42 void RangesetEmpty(Rangeset
*rangeset
);
43 void RangesetInit(Rangeset
*rangeset
, int label
, textBuffer
*buf
);
44 int RangesetChangeModifyResponse(Rangeset
*rangeset
, char *name
);
45 int RangesetFindRangeNo(Rangeset
*rangeset
, int index
, int *start
, int *end
);
46 int RangesetFindRangeOfPos(Rangeset
*rangeset
, int pos
, int incl_end
);
47 int RangesetCheckRangeOfPos(Rangeset
*rangeset
, int pos
);
48 int RangesetInverse(Rangeset
*p
);
49 int RangesetAdd(Rangeset
*origSet
, Rangeset
*plusSet
);
50 int RangesetAddBetween(Rangeset
*rangeset
, int start
, int end
);
51 int RangesetRemove(Rangeset
*origSet
, Rangeset
*minusSet
);
52 int RangesetRemoveBetween(Rangeset
*rangeset
, int start
, int end
);
53 int RangesetGetNRanges(Rangeset
*rangeset
);
54 void RangesetGetInfo(Rangeset
*rangeset
, int *defined
, int *label
,
55 int *count
, char **color
, char **name
, char **mode
);
56 void RangesetSetMaxpos(Rangeset
*rangeset
, int maxpos
);
57 RangesetTable
*RangesetTableAlloc(textBuffer
*buf
);
58 RangesetTable
*RangesetTableFree(RangesetTable
*table
);
59 RangesetTable
*RangesetTableClone(RangesetTable
*srcTable
,
60 textBuffer
*destBuffer
);
61 int RangesetFindIndex(RangesetTable
*table
, int label
, int must_be_active
);
62 int RangesetLabelOK(int label
);
63 int RangesetCreate(RangesetTable
*table
);
64 int nRangesetsAvailable(RangesetTable
*table
);
65 Rangeset
*RangesetForget(RangesetTable
*table
, int label
);
66 Rangeset
*RangesetFetch(RangesetTable
*table
, int label
);
67 unsigned char * RangesetGetList(RangesetTable
*table
);
68 void RangesetTableUpdatePos(RangesetTable
*table
, int pos
, int n_ins
, int n_del
);
69 void RangesetBufModifiedCB(int pos
, int nInserted
, int nDeleted
, int nRestyled
,
70 char *deletedText
, void *cbArg
);
71 int RangesetIndex1ofPos(RangesetTable
*table
, int pos
, int needs_color
);
72 int RangesetAssignColorName(Rangeset
*rangeset
, char *color_name
);
73 int RangesetAssignColorPixel(Rangeset
*rangeset
, Pixel color
, int ok
);
74 char *RangesetGetColorName(Rangeset
*rangeset
);
75 char *RangesetGetName(Rangeset
*rangeset
);
76 int RangesetAssignName(Rangeset
*rangeset
, char *name
);
77 int RangesetGetColorValid(Rangeset
*rangeset
, Pixel
*color
);
78 char *RangesetTableGetColorName(RangesetTable
*table
, int index
);
79 int RangesetTableGetColorValid(RangesetTable
*table
, int index
, Pixel
*color
);
80 int RangesetTableAssignColorPixel(RangesetTable
*table
, int index
, Pixel color
,
83 #endif /* rangeset_h_DEFINED */