/* * dbMetrix Database Tool v0.1 * Copyright (c) 1998 David E. Storey * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _GLOBAL_H_ #define _GLOBAL_H_ #include #ifdef GTK_HAVE_FEATURES_1_1_0 #define GtkAcceleratorTable GtkAccelGroup #define gtk_accelerator_table_new gtk_accel_group_new #define gtk_widget_install_accelerator gtk_widget_install_accel #define gtk_menu_set_accelerator_table gtk_menu_set_accel_group #define gtk_window_add_accelerator_table gtk_window_add_accel_group #endif /* enums */ typedef enum { None #ifdef HAVE_MYSQL , MySQL #endif #ifdef HAVE_MSQL , mSQL #endif #ifdef HAVE_PGSQL , pgSQL #endif #ifdef HAVE_SOLID , Solid #endif #ifdef HAVE_ORACLE , Oracle #endif } dsClass; typedef enum { Host, Database, Table, Field } dsType; /** typedefs & structures **/ typedef void (*dbxSignalFunc)(void); #define DBX_SIGNAL_FUNC(f) ((dbxSignalFunc) f) typedef struct { char *name; dsClass class; unsigned connected : 1; void *info; } dataSource; typedef struct { char *file; unsigned int lock : 1; unsigned int structures : 1; unsigned int data : 1; unsigned int complete_inserts : 1; } export_options; typedef struct node_ds { char *name; dsType type; dataSource *conn; struct node_ds *parent; } node_ds; typedef struct { char *path; char *accelerator; void (*callback)(void); gpointer data; GtkWidget *widget; } dbxMenuEntry; typedef struct { int (*create_db)(dataSource *, char *); void (*close)(dataSource *); void (*create_dsEntry)(GtkWidget *); void (*create_dsDialog)(GtkWidget *, GtkWidget *, int *); int (*drop_db)(dataSource *, char *); void (*exec_query)(dataSource *, char *); int (*export)(node_ds *, export_options *); void (*refresh)(GtkWidget *, gpointer); } ds_funcs; typedef struct { GtkWidget *host; GtkWidget *database; GtkWidget *table; } ds_menus; typedef struct { char *text; char *dbKey; gboolean pass; } dbx_Dialog; /** some prototypes **/ #ifdef HAVE_MYSQL /* mysql.c */ void init_MySQL(void); #endif #ifdef HAVE_MSQL /* msql.c */ void init_mSQL(void); #endif #ifdef HAVE_PGSQL /* pgsql.c */ void init_pgSQL(void); #endif #ifdef HAVE_SOLID /* solid.c */ void init_Solid(void); #endif #ifdef HAVE_ORACLE /* oracle.c */ void init_Oracle(void); #endif /* main.c */ void ds_close(gpointer, gpointer); void create_dialogs(GtkWidget *, GtkWidget *, int *, dsClass, char *, dbx_Dialog *, int); /* gtk.c */ GtkWidget *add_subtree(GtkWidget *); void add_to_menu_bar(GtkWidget *, GtkWidget *, char *, int); void create_dbDialog(GtkWidget *, gpointer); GtkWidget *create_treeItem_with_pixmap(char *, char **); void drop_db(GtkWidget *treeItem, gpointer data); GtkWidget *ds_add(char *, void *, dsClass, dsType); void ds_export(GtkWidget *widget, gpointer data); void ds_prune_tree(gpointer widget, gpointer data); int fetch_ds_key(char *); node_ds *fetch_selected(); char *get_entry_text(GtkWidget *, char *, int); GtkWidget *get_widget(GtkWidget *, char *); GtkWidget *new_dialog(char *, char *); void on_dbTree_clicked(GtkWidget *, GdkEventButton *, gpointer); void on_dbTree_select(GtkWidget *, gpointer); int s_print(char *); GtkWidget *set_menu(dbxMenuEntry *, int); void tree_refresh(GtkWidget *, node_ds *, int, char *); /* query.c */ void query_close(GtkWidget *, gpointer); void query_execute(GtkWidget *, gpointer); void query_new(GtkWidget *, gpointer); void query_open(GtkWidget *, gpointer); void query_save(GtkWidget *, gpointer); void query_save_as(GtkWidget *, gpointer); void query_window(GtkWidget *); /* dbtree.c */ void ds_tree_node_destroy(node_ds **); node_ds *ds_tree_node_new(node_ds *, char *, dsType, dataSource *); /* prefs.c */ void pref_init(int, char **); void *pref_get(char *); /* global variable(s) */ extern GtkWidget *dbTree; extern GtkWidget *mainWindow; extern GtkWidget *qbNotebook; extern GtkWidget *statusBar; extern ds_funcs *dsFuncs; extern ds_menus *dsMenus; /* 1998-09-27 add by k_tsuka */ typedef struct _dbAlias { char alias[32]; char host[32]; char user[32]; char pass[32]; char dbname[32]; char nport[32]; } dbAlias; dbAlias infAlias[64]; extern int cntAlias; extern char fnameAlias[256]; extern char crntAlias[256]; extern GtkWidget *Gentry[5]; extern char *Ghidden; void regist_db_alias (int, char*, char*, char*, char*, char*); void save_db_alias (void); void load_db_alias (void); void on_combo1_activate (GtkWidget*, gpointer); #endif /* _GLOBAL_H_ */