/[graveman]/graveman/current/src/support.c
ViewVC logotype

Diff of /graveman/current/src/support.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by scresto, Sat Feb 12 16:41:07 2005 UTC revision 1.5 by scresto, Thu Feb 17 01:22:53 2005 UTC
# Line 164  void unset_cursor(GtkWidget *Awindow) Line 164  void unset_cursor(GtkWidget *Awindow)
164    gdk_cursor_unref(_cursor);    gdk_cursor_unref(_cursor);
165  }  }
166    
167    /* mise a jour d'une barre d'avancement */
168    void maj_progress(GtkProgressBar *AprogressBar, gdouble Apourcent)
169    {
170      gchar Lsbuf[40];
171    
172      gtk_progress_bar_set_fraction(AprogressBar, Apourcent);
173      g_snprintf(Lsbuf, sizeof(Lsbuf)-1, "%.0f%%", Apourcent*100);
174      gtk_progress_bar_set_text(AprogressBar, Lsbuf);
175    }
176    
177    /* traitement Twidget */
178    Tgrave *sc_grave_load(gchar *Aname)
179    {
180      Tgrave *Agrave = g_malloc0(sizeof(Tgrave));
181      gchar Lfullname[MAXPATHLEN];
182    
183      g_snprintf(Lfullname, sizeof(Lfullname)-1, "%s/%s/%s", PACKAGE_DATA_DIR, PACKAGE, Aname);
184      
185      Agrave->xml = glade_xml_new(Lfullname, NULL, NULL);
186    
187      if (!Agrave->xml) {
188        g_free(Agrave);
189        g_critical(_("error cannot load '%s': %s"), Lfullname, g_strerror(errno));
190        return FALSE;
191      }
192    
193      Agrave->data = g_hash_table_new(g_str_hash, g_str_equal);
194      
195      return Agrave;
196    }
197    
198    Tgrave *sc_grave_destroy(Tgrave *Agrave)
199    {
200      g_return_val_if_fail(Agrave != NULL, NULL);
201    
202      g_free(Agrave->xml);
203      if (Agrave->data) g_hash_table_destroy(Agrave->data);
204    
205      g_free(Agrave);
206    
207      return NULL;
208    }
209    
210    GtkWidget *sc_grave_get_widget(Tgrave *Agrave, gchar *Aname)
211    {
212      g_return_val_if_fail(Agrave != NULL && Agrave->xml != NULL, NULL);
213    
214      return glade_xml_get_widget(Agrave->xml, Aname);
215    }
216    
217    GtkWidget *sc_grave_get_widgetv(Tgrave *Agrave, gchar *Aformat, ...)
218    {
219      va_list Largs;
220      gchar *Lfname;
221      GtkWidget *Lptr;
222    
223      va_start(Largs, Aformat);
224      Lfname = g_strdup_printf(Lfname, Largs);
225      va_end(Largs);
226      Lptr = sc_grave_get_widget(Agrave, Lfname);
227      g_free(Lfname);
228    
229      return Lptr;
230    }
231    
232    gpointer sc_grave_get_data(Tgrave *Agrave, gchar *Aname)
233    {
234      g_return_val_if_fail(Agrave != NULL && Agrave->data != NULL, NULL);
235    
236      return g_hash_table_lookup(Agrave->data, Aname);
237    }
238    
239    gpointer sc_grave_get_datav(Tgrave *Agrave, gchar *Aformat, ...)
240    {
241      va_list Largs;
242      gchar *Lfname;
243      gpointer Lptr;
244    
245      va_start(Largs, Aformat);
246      Lfname = g_strdup_printf(Lfname, Largs);
247      va_end(Largs);
248      Lptr = sc_grave_get_data(Agrave, Lfname);
249      g_free(Lfname);
250    
251      return Lptr;
252    }
253    
254    gpointer sc_grave_set_data(Tgrave *Agrave, gpointer Aptr, gchar *Aname)
255    {
256      g_return_val_if_fail(Agrave != NULL && Agrave->data != NULL, NULL);
257    
258      g_hash_table_insert(Agrave->data, Aname, Aptr);
259    
260      return Aptr;
261    }
262    
263    gpointer sc_grave_set_datav(Tgrave *Agrave, gpointer Aptr, gchar *Aformat, ...)
264    {
265      va_list Largs;
266      gchar *Lfname;
267    
268      va_start(Largs, Aformat);
269      Lfname = g_strdup_printf(Lfname, Largs);
270      va_end(Largs);
271      sc_grave_set_data(Agrave, Aptr, Lfname);
272      g_free(Lfname);
273    
274      return Aptr;
275    }
276    
277    gpointer sc_grave_replace_data(Tgrave *Agrave, gpointer Aptr, gchar *Aname)
278    {
279      g_return_val_if_fail(Agrave != NULL && Agrave->data != NULL, NULL);
280    
281      g_hash_table_insert(Agrave->data, Aname, Aptr);
282    
283      return Aptr;
284    }
285    
286    gpointer sc_grave_replace_datav(Tgrave *Agrave, gpointer Aptr, gchar *Aformat, ...)
287    {
288      va_list Largs;
289      gchar *Lfname;
290    
291      va_start(Largs, Aformat);
292      Lfname = g_strdup_printf(Lfname, Largs);
293      va_end(Largs);
294      sc_grave_replace_data(Agrave, Aptr, Lfname);
295      g_free(Lfname);
296    
297      return Aptr;
298    }
299    
300    gpointer sc_grave_del_data(Tgrave *Agrave, gchar *Aname)
301    {
302      g_return_val_if_fail(Agrave != NULL && Agrave->data != NULL, NULL);
303    
304      g_hash_table_remove(Agrave->data, Aname);
305    
306      return Aptr;
307    }
308    
309    gpointer sc_grave_del_datav(Tgrave *Agrave, gchar *Aformat, ...)
310    {
311      va_list Largs;
312      gchar *Lfname;
313    
314      va_start(Largs, Aformat);
315      Lfname = g_strdup_printf(Lfname, Largs);
316      va_end(Largs);
317      sc_grave_del_data(Agrave, Lfname);
318      g_free(Lfname);
319    
320      return Aptr;
321    }
322    
323    gpointer sc_grave_ref_wtd(Tgrave *Agrave, gchar *Awidgetsrc, gchar *Adatadst)
324    {
325      GtkWidget *Awidg;
326      g_return_val_if_fail(Agrave && Agrave->data && Agrave->xml);
327    
328      if (!(Awidg = glade_xml_get_widget(Agrave->xml, Awidgetsrc))) return NULL;
329    
330      g_hash_table_insert(Agrave->data, Adatadst, Awidg);
331    }
332    
333  /*  /*
334   * vim:et:ts=8:sts=2:sw=2   * vim:et:ts=8:sts=2:sw=2
335   */   */

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26