mysql.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /* $Id: mysql.h,v 1.11 2001/05/03 23:17:47 kilobug Exp $ */
  2. #ifndef __PROLO_MCLIENT_MYSQL_H__
  3. #define __PROLO_MCLIENT_MYSQL_H__
  4. #define MYSQL_BUFFER_SIZE 1000
  5. #include <mysql/mysql.h>
  6. int mysql_query_gtk(MYSQL *mysql, const char *query);
  7. int mysql_get_int(MYSQL *mysql, const char *query, ...);
  8. char *mysql_get_str(MYSQL *mysql, const char *query, ...);
  9. void mysql_do_query(MYSQL *mysql, const char *query, ...);
  10. typedef struct _sql_list_t sql_list_t;
  11. typedef char *ml_cvt_func_t(const char *val, void *data);
  12. typedef GdkColor *ml_color_func_t(const sql_list_t *list, int id, void *data);
  13. typedef struct _sql_item_t
  14. {
  15. ml_cvt_func_t *cvt_func;
  16. GtkDestroyNotify destroy_func;
  17. void *data;
  18. } sql_item_t;
  19. struct _sql_list_t
  20. {
  21. const char *query;
  22. int nb_fields;
  23. sql_item_t *items;
  24. GtkCList *clist;
  25. ml_color_func_t *color_func;
  26. void *color_func_data;
  27. };
  28. typedef struct _sql_add_item_t
  29. {
  30. const char *field;
  31. enum { sql_add_str, sql_add_num, sql_add_flag, sql_add_file } type;
  32. void *param;
  33. GtkWidget *widget;
  34. const char *tooltip, *label;
  35. } sql_add_item_t;
  36. typedef struct _sql_add_t
  37. {
  38. const char *table;
  39. GSList *items;
  40. GtkWidget *widget;
  41. GtkSignalFunc callback;
  42. int id;
  43. } sql_add_t;
  44. void mysql_list_set_color_func(sql_list_t *list, ml_color_func_t *callback,
  45. void *data);
  46. void mysql_list_refresh(const sql_list_t *l, const char *where);
  47. void mysql_list_remove(const char *table, GtkCList *clist,
  48. GtkSignalFunc refresh_callback);
  49. /* Syntax: make_mysql_list(query, nb_fields, clist,
  50. num1, convert_callback1, destroy_callback1, data1,
  51. num2, convert_callback2, destroy_callback2, data2,
  52. ..., -1); */
  53. sql_list_t *mysql_list_make(const char *query, int nb_fields, GtkCList *clist,
  54. ...);
  55. /* Syntax: make_mysql_adder(table, window_title, callback, nb_fields,
  56. label1, field_name1, tooltip, type1, { args1 },
  57. label2, field_name2, tooltip, type2, { args2 },
  58. ...);
  59. Args:
  60. int => min, max, def
  61. str => length
  62. file => path
  63. check => default
  64. */
  65. sql_add_t *mysql_adder_make(const char *table, const char *title,
  66. GtkSignalFunc callback, int nb, ...);
  67. void mysql_list_edit(const char *title, const GtkCList *sel,
  68. const sql_add_t *adder,
  69. GtkSignalFunc refresh_callback);
  70. #endif