1 /*
2  *  This file is part of XForms.
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
15  *  License along with XForms; see the file COPYING.  If not, write to
16  *  the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
17  *  MA 02111-1307, USA.
18  */
19 
20 
21 /*
22  * This demo shows the basic browsers browsers
23  *
24  * This file is part of xforms package
25  * M. Overmars and T.C. Zhao  (1997)
26  *
27  */
28 
29 #ifdef HAVE_CONFIG_H
30 #include "config.h"
31 #endif
32 #include "include/forms.h"
33 
34 
35 FL_FORM *form;
36 FL_OBJECT *browserobj,
37           *inputobj, *exitobj;
38 
39 
40 /***************************************
41  ***************************************/
42 
43 void
addit(FL_OBJECT * obj FL_UNUSED_ARG,long arg FL_UNUSED_ARG)44 addit( FL_OBJECT * obj  FL_UNUSED_ARG,
45        long        arg  FL_UNUSED_ARG )
46 {
47     /* append and show the last line. Don't use this if you just want
48      * to add some lines. use fl_add_browser_line */
49 
50     fl_addto_browser( browserobj, fl_get_input( inputobj ) );
51 }
52 
53 
54 /***************************************
55  ***************************************/
56 
57 void
insertit(FL_OBJECT * obj FL_UNUSED_ARG,long arg FL_UNUSED_ARG)58 insertit( FL_OBJECT * obj  FL_UNUSED_ARG,
59           long        arg  FL_UNUSED_ARG )
60 {
61     fl_insert_browser_line( browserobj,
62                             fl_get_browser( browserobj ),
63                             fl_get_input( inputobj ) );
64 }
65 
66 
67 /***************************************
68  ***************************************/
69 
70 void
replaceit(FL_OBJECT * obj FL_UNUSED_ARG,long arg FL_UNUSED_ARG)71 replaceit( FL_OBJECT * obj  FL_UNUSED_ARG,
72            long        arg  FL_UNUSED_ARG )
73 {
74     int n;
75 
76     if ( ( n = fl_get_browser( browserobj ) ) )
77         fl_replace_browser_line( browserobj, n, fl_get_input( inputobj ) );
78 }
79 
80 
81 /***************************************
82  ***************************************/
83 
84 void
deleteit(FL_OBJECT * obj FL_UNUSED_ARG,long arg FL_UNUSED_ARG)85 deleteit( FL_OBJECT * obj  FL_UNUSED_ARG,
86           long        arg  FL_UNUSED_ARG )
87 {
88     int n;
89 
90     if ( ( n = fl_get_browser( browserobj ) ) )
91         fl_delete_browser_line( browserobj, n );
92 }
93 
94 
95 /***************************************
96  ***************************************/
97 
clearit(FL_OBJECT * obj FL_UNUSED_ARG,long arg FL_UNUSED_ARG)98 void clearit( FL_OBJECT * obj  FL_UNUSED_ARG,
99               long        arg  FL_UNUSED_ARG )
100 {
101     fl_clear_browser( browserobj );
102 }
103 
104 
105 /***************************************
106  ***************************************/
107 
108 void
create_form(void)109 create_form( void )
110 {
111     FL_OBJECT *obj;
112 
113     form = fl_bgn_form( FL_UP_BOX, 390, 420 );
114 
115     browserobj = fl_add_browser( FL_HOLD_BROWSER, 20, 20, 210, 330, "" );
116     fl_set_object_dblbuffer( browserobj, 1 );
117 
118     inputobj = fl_add_input( FL_NORMAL_INPUT, 20, 370, 210, 30, "" );
119     fl_set_object_return( inputobj, FL_RETURN_CHANGED );
120 
121     obj = fl_add_button( FL_NORMAL_BUTTON, 250, 20, 120, 30, "Add" );
122     fl_set_object_callback( obj, addit, 0 );
123 
124     obj = fl_add_button( FL_NORMAL_BUTTON, 250, 60, 120, 30, "Insert" );
125     fl_set_object_callback( obj, insertit, 0 );
126 
127     obj = fl_add_button( FL_NORMAL_BUTTON, 250, 100, 120, 30, "Replace" );
128     fl_set_object_callback( obj, replaceit, 0 );
129 
130     obj = fl_add_button( FL_NORMAL_BUTTON, 250, 160, 120, 30, "Delete" );
131     fl_set_object_callback( obj, deleteit, 0 );
132 
133     obj = fl_add_button( FL_NORMAL_BUTTON, 250, 200, 120, 30, "Clear" );
134     fl_set_object_callback( obj, clearit, 0 );
135 
136     exitobj = fl_add_button( FL_NORMAL_BUTTON, 250, 370, 120, 30, "Exit" );
137 
138     fl_end_form( );
139 }
140 
141 
142 /***************************************
143  ***************************************/
144 
145 int
main(int argc,char * argv[])146 main( int    argc,
147       char * argv[ ] )
148 {
149     fl_initialize( &argc, argv, "FormDemo", 0, 0 );
150 
151     create_form( );
152 
153     fl_show_form( form, FL_PLACE_CENTER, FL_TRANSIENT, "Browser Op" );
154 
155 	while ( fl_do_forms( ) != exitobj )
156 		/* empty */ ;
157 
158 	fl_finish( );
159     return 0;
160 }
161 
162 
163 /*
164  * Local variables:
165  * tab-width: 4
166  * indent-tabs-mode: nil
167  * End:
168  */
169