1 /* 2 * This file is part of the XForms library package. 3 * 4 * XForms is free software; you can redistribute it and/or modify it 5 * under the terms of the GNU Lesser General Public License as 6 * published by the Free Software Foundation; either version 2.1, or 7 * (at your option) any later version. 8 * 9 * XForms is distributed in the hope that it will be useful, but 10 * WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public License 15 * along with XForms. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 /********************** crop here for forms.h **********************/ 19 20 /* 21 * \file browser.h 22 * 23 * Object class Browser 24 */ 25 26 #ifndef FL_BROWSER_H 27 #define FL_BROWSER_H 28 29 30 /***** Types *****/ 31 32 typedef enum { 33 FL_NORMAL_BROWSER, 34 FL_SELECT_BROWSER, 35 FL_HOLD_BROWSER, 36 FL_MULTI_BROWSER, 37 FL_DESELECTABLE_HOLD_BROWSER 38 } FL_BROWSER_TYPE; 39 40 /***** Defaults *****/ 41 42 #define FL_BROWSER_BOXTYPE FL_DOWN_BOX 43 #define FL_BROWSER_COL1 FL_COL1 44 #define FL_BROWSER_COL2 FL_YELLOW 45 #define FL_BROWSER_LCOL FL_LCOL 46 #define FL_BROWSER_ALIGN FL_ALIGN_BOTTOM 47 48 49 /***** Others *****/ 50 51 #define FL_BROWSER_SLCOL FL_COL1 52 #define FL_BROWSER_FONTSIZE FL_SMALL_SIZE 53 54 55 /* This exists only for backward compatibility and isn't used anymore! */ 56 57 #define FL_BROWSER_LINELENGTH 2048 58 59 60 /***** Routines *****/ 61 62 FL_EXPORT FL_OBJECT * fl_create_browser( int type, 63 FL_Coord x, 64 FL_Coord y, 65 FL_Coord w, 66 FL_Coord h, 67 const char * label ); 68 69 FL_EXPORT FL_OBJECT * fl_add_browser( int type, 70 FL_Coord x, 71 FL_Coord y, 72 FL_Coord w, 73 FL_Coord h, 74 const char * label ); 75 76 FL_EXPORT void fl_clear_browser( FL_OBJECT * ob ); 77 78 FL_EXPORT void fl_add_browser_line( FL_OBJECT * ob, 79 const char * newtext ); 80 81 FL_EXPORT void fl_add_browser_line_f( FL_OBJECT * ob, 82 const char * fmt, 83 ... ); 84 85 86 FL_EXPORT void fl_addto_browser( FL_OBJECT * obj, 87 const char * text ); 88 89 FL_EXPORT void fl_addto_browser_f( FL_OBJECT * obj, 90 const char * fmt, 91 ...); 92 93 #define fl_append_browser fl_addto_browser_chars 94 FL_EXPORT void fl_addto_browser_chars( FL_OBJECT * ob, 95 const char * str ); 96 97 FL_EXPORT void fl_addto_browser_chars_f( FL_OBJECT * ob, 98 const char * fmt, 99 ... ); 100 101 #define fl_append_browser_f fl_addto_browser_chars_f 102 FL_EXPORT void fl_insert_browser_line( FL_OBJECT * ob, 103 int linenumb, 104 const char * newtext ); 105 106 FL_EXPORT void fl_insert_browser_line_f( FL_OBJECT * ob, 107 int linenumb, 108 const char * fmt, 109 ... ); 110 111 FL_EXPORT void fl_delete_browser_line( FL_OBJECT * ob, 112 int linenumb ); 113 114 FL_EXPORT void fl_replace_browser_line( FL_OBJECT * ob, 115 int linenumb, 116 const char * newtext ); 117 118 FL_EXPORT void fl_replace_browser_line_f( FL_OBJECT * ob, 119 int linenumb, 120 const char * fmt, 121 ... ); 122 123 FL_EXPORT const char *fl_get_browser_line( FL_OBJECT * ob, 124 int linenumb ); 125 126 FL_EXPORT int fl_load_browser( FL_OBJECT * ob, 127 const char * filename ); 128 129 FL_EXPORT void fl_select_browser_line( FL_OBJECT * ob, 130 int line ); 131 132 FL_EXPORT void fl_deselect_browser_line( FL_OBJECT * ob, 133 int line ); 134 135 FL_EXPORT void fl_deselect_browser( FL_OBJECT * ob ); 136 137 FL_EXPORT int fl_isselected_browser_line( FL_OBJECT * ob, 138 int line ); 139 140 FL_EXPORT int fl_get_browser_topline( FL_OBJECT * ob ); 141 142 FL_EXPORT int fl_get_browser( FL_OBJECT * ob ); 143 144 FL_EXPORT int fl_get_browser_maxline( FL_OBJECT * ob ); 145 146 FL_EXPORT int fl_get_browser_screenlines( FL_OBJECT * ob ); 147 148 FL_EXPORT void fl_set_browser_topline( FL_OBJECT * ob, 149 int line ); 150 151 FL_EXPORT void fl_set_browser_bottomline( FL_OBJECT * ob, 152 int line ); 153 154 FL_EXPORT void fl_set_browser_fontsize( FL_OBJECT * ob, 155 int size ); 156 157 FL_EXPORT void fl_set_browser_fontstyle( FL_OBJECT * ob, 158 int style ); 159 160 FL_EXPORT void fl_set_browser_specialkey( FL_OBJECT * ob, 161 int specialkey ); 162 163 FL_EXPORT void fl_set_browser_vscrollbar( FL_OBJECT * ob, 164 int on ); 165 166 FL_EXPORT void fl_set_browser_hscrollbar( FL_OBJECT * ob, 167 int on ); 168 169 FL_EXPORT void fl_set_browser_line_selectable( FL_OBJECT * ob, 170 int line, 171 int flag ); 172 173 FL_EXPORT void fl_get_browser_dimension( FL_OBJECT * ob, 174 FL_Coord * x, 175 FL_Coord * y, 176 FL_Coord * w, 177 FL_Coord * h ); 178 179 FL_EXPORT void fl_set_browser_dblclick_callback( FL_OBJECT * ob, 180 FL_CALLBACKPTR cb, 181 long a ); 182 183 FL_EXPORT FL_Coord fl_get_browser_xoffset( FL_OBJECT * ob ); 184 185 FL_EXPORT double fl_get_browser_rel_xoffset( FL_OBJECT * ob ); 186 187 FL_EXPORT void fl_set_browser_xoffset( FL_OBJECT * ob, 188 FL_Coord npixels ); 189 190 FL_EXPORT void fl_set_browser_rel_xoffset( FL_OBJECT * ob, 191 double val ); 192 193 FL_EXPORT FL_Coord fl_get_browser_yoffset( FL_OBJECT * ob ); 194 195 FL_EXPORT double fl_get_browser_rel_yoffset( FL_OBJECT * ob ); 196 197 FL_EXPORT void fl_set_browser_yoffset( FL_OBJECT * ob, 198 FL_Coord npixels ); 199 200 FL_EXPORT void fl_set_browser_rel_yoffset( FL_OBJECT * ob, 201 double val ); 202 203 FL_EXPORT void fl_set_browser_scrollbarsize( FL_OBJECT * ob, 204 int hh, 205 int vw ); 206 207 FL_EXPORT void fl_show_browser_line( FL_OBJECT * ob, 208 int j ); 209 210 FL_EXPORT int fl_set_default_browser_maxlinelength( int n ); 211 212 #ifndef FL_BROWSER_SCROLL_CALLBACKt 213 #define FL_BROWSER_SCROLL_CALLBACKt 214 typedef void ( * FL_BROWSER_SCROLL_CALLBACK )( FL_OBJECT *, 215 int, 216 void * ); 217 #endif 218 219 FL_EXPORT void 220 fl_set_browser_hscroll_callback( FL_OBJECT *, 221 FL_BROWSER_SCROLL_CALLBACK, 222 void * ); 223 224 FL_EXPORT void 225 fl_set_browser_vscroll_callback( FL_OBJECT *, 226 FL_BROWSER_SCROLL_CALLBACK, 227 void * ); 228 229 FL_EXPORT int fl_get_browser_line_yoffset( FL_OBJECT *, 230 int ); 231 232 FL_EXPORT FL_BROWSER_SCROLL_CALLBACK 233 fl_get_browser_hscroll_callback( FL_OBJECT * ); 234 235 FL_EXPORT FL_BROWSER_SCROLL_CALLBACK 236 fl_get_browser_vscroll_callback( FL_OBJECT * ); 237 238 FL_EXPORT int fl_get_browser_scrollbar_repeat( FL_OBJECT * ); 239 240 FL_EXPORT void fl_set_browser_scrollbar_repeat( FL_OBJECT *, 241 int ); 242 243 #endif /* ! defined FL_BROWSER_H */ 244