Wrap GtkListStore
[xonotic/netradiant.git] / contrib / bobtoolz / lists.cpp
1 /*
2    BobToolz plugin for GtkRadiant
3    Copyright (C) 2001 Gordon Biggans
4
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with this library; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19
20 #include "lists.h"
21
22 #ifdef WIN32
23 #pragma warning(disable : 4786)
24 #endif
25
26 #include <glib.h>
27 #include <gtk/gtk.h>
28
29 #include "misc.h"
30
31 bool LoadExclusionList( char* filename, std::list<Str>* exclusionList ){
32         FILE* eFile = fopen( filename, "r" );
33         if ( eFile ) {
34                 char buffer[256];
35                 int cnt = 0;
36                 while ( !feof( eFile ) )
37                 {
38                         memset( buffer, 0, 256 );
39                         fscanf( eFile, "%s\n", buffer );
40
41                         if ( strlen( buffer ) > 0 ) {
42                                 exclusionList->push_back( buffer );
43                         }
44                         else{
45                                 cnt++;
46                         }
47                 }
48
49                 fclose( eFile );
50
51                 return TRUE;
52         }
53
54         globalErrorStream() << "Failed To Load Exclusion List: " << filename << "\n";
55         return FALSE;
56 }
57
58 bool LoadGList( char* filename, ui::ListStore loadlist ){
59         FILE* eFile = fopen( filename, "r" );
60         if ( eFile ) {
61                 char buffer[256];
62                 int cnt = 0;
63                 while ( !feof( eFile ) )
64                 {
65                         memset( buffer, 0, 256 );
66                         fscanf( eFile, "%s\n", buffer );
67
68                         if ( strlen( buffer ) > 0 ) {
69                                 char* buffer2 = new char[strlen( buffer ) + 1];
70                                 strcpy( buffer2, buffer );
71                                 GtkTreeIter iter;
72                                 gtk_list_store_append(loadlist, &iter);
73                                 gtk_list_store_set(loadlist, &iter, 0, buffer2, -1);
74                         }
75                         else{
76                                 cnt++;
77                         }
78                 }
79
80                 fclose( eFile );
81
82                 return TRUE;
83         }
84
85         globalErrorStream() << "Failed To Load GList: " << filename << "\n";
86         return FALSE;
87 }