3 * Purpose: Declaration of the XForms object bmtable.
4 * Author: Alejandro Aguilar Sierra <asierra@servidor.unam.mx>
5 * Created: November 1995
6 * Description: A bitmap table uses a single bitmap to simulate a 2d array
7 * of bitmap buttons. It can be used to build bitmap menus.
9 * Copyright (C) 1995, 1996 Alejandro Aguilar Sierra
11 * You are free to use and modify this code under the terms of
12 * the GNU General Public Licence version 2 or later.
19 #include FORMS_H_LOCATION
22 #define FL_BMTABLE 1500
23 /// A flat bitmap table
24 #define FL_BMTABLE_FLAT 0
25 /// A grided bitmap table
26 #define FL_BMTABLE_GRID 1
29 /* Same as fl_bitmapbutton */
33 * normal bmtable default
35 #define FL_BMTABLE_BOXTYPE FL_UP_BOX
38 FL_OBJECT *fl_create_bmtable(int, FL_Coord, FL_Coord,
39 FL_Coord, FL_Coord, char const *);
41 FL_OBJECT *fl_add_bmtable(int, FL_Coord, FL_Coord,
42 FL_Coord, FL_Coord, char const *);
44 /** Same as fl_get_button_numb() */
45 int fl_get_bmtable_numb(FL_OBJECT *ob);
47 void fl_set_bmtable(FL_OBJECT *, int pushed, int pos);
49 /** Number of columns and rows, and the background bitmap */
50 void fl_set_bmtable_data(FL_OBJECT *, int, int, int, int , unsigned char *);
52 void fl_set_bmtable_pixmap_data(FL_OBJECT *, int, int, char **);
54 void fl_set_bmtable_file(FL_OBJECT *, int, int, char const *);
56 void fl_set_bmtable_pixmap_file(FL_OBJECT *, int, int, char const *);
58 /** Adjust bitmap origin (ox, oy) and cell dimensions (dx, dy) incrementally */
59 void fl_set_bmtable_adjust(FL_OBJECT *, int ox, int oy, int dx, int dy);
61 /** The number of items is by default nc x nr, but you can change it */
62 void fl_set_bmtable_maxitems(FL_OBJECT *, int);
64 int fl_get_bmtable_maxitems(FL_OBJECT *);
66 /** Returns the index of the selected item or -1 if none was selected */
67 int fl_get_bmtable(FL_OBJECT *);
69 /** Replace an item's sub_bitmap at id position */
70 void fl_replace_bmtable_item(FL_OBJECT *ob, int id, int cw, int ch, char *data);
72 /** Get the sub_bitmap from id position. You must alloc memory for the data. */
73 void fl_get_bmtable_item(FL_OBJECT *ob, int id, int *cw, int *ch, char *data);
75 /** Returns a pixmap from the table, if available. */
76 Pixmap fl_get_bmtable_pixmap(FL_OBJECT *);
78 /** Draws a single item on a drawable */
79 void fl_draw_bmtable_item(FL_OBJECT *ob, int i, Drawable d, int xx, int yy);
81 /** Free the current bitmap in preparation for installing a new one */
82 void fl_free_bmtable_bitmap(FL_OBJECT *ob);
84 /** Free the current pixmap in preparation for installing a new one */
85 void fl_free_bmtable_pixmap(FL_OBJECT *ob);
87 #endif /* BMTABLE_H */