/*=======================================*\ | ____ ____ | | / \ /\ | | | \____ / \ |____ | | \ /____\ | | | \____/prite / \nimation |____ditor | | | | Copyleft Vasily_Makarov 2011 | | | \*=======================================*/ #ifndef MAIN_H #define MAIN_H #include #include #include #include #include #include #include "common.h" #include "xml.h" #include "config.h" #include "sae.h" #include "search.h" const int MIN_WIDTH = 600; const int MIN_HEIGHT = 600; const gchar *DIR_GROUNDS = "grounds"; const gchar *DIR_PLAYERS = "races/"; const gchar *FILE_ICON = "icon.svg"; const int IMAGESET_PREVIEW_WINDOW_WIDTH = 200; const int IMAGESET_PREVIEW_WINDOW_HEIGHT = 300; GtkWidget *win = NULL; GtkWidget *darea = NULL; GtkWidget *data_folder_chooser_button = NULL; GtkWidget *xml_file_chooser_button = NULL; GtkWidget *xml_file_open_button = NULL; GtkWidget *xml_file_save_button = NULL; GtkWidget *imageset_preview_menu_item = NULL; GtkWidget *show_grid_menu_item = NULL; GtkWidget *source_view = NULL; GtkWidget *about_dialog = NULL; GtkWidget *parsing_error_dialog = NULL; GtkSourceBuffer *source_buffer = NULL; SAEInfo *gen_sae_info = NULL; SAEInfo *player = NULL; GdkPixbuf *icon = NULL; Options *paths; Keys *config; //Cairo functions cairo_surface_t *get_grid_surface(int w, int h); gboolean darea_draw_event(GtkWidget *widget, cairo_t *cr, SAEInfo *sae_info); //Common functions gchar *markup_bold(gchar *str); void format_src_string(gchar *src); GtkTextIter *gtk_source_buffer_highlight_line(GtkSourceBuffer *buffer, int line_number); //File working void open_xml_file(GtkButton *button); void save_to_xml_file(gchar *filename); //SAEInfo functions void free_imagesets(SAEInfo *sae_info); void free_actions(SAEInfo *sae_info); void free_animations(SAEInfo *sae_info); void free_imageset(SAEInfo *sae_info); void free_lists(SAEInfo *sae_info); void free_current_info(); //Callbacks void data_folder_set_callback(GtkFileChooserButton *widget, gpointer data); void parsing_error_warning(SAEInfo *sae_info, const gchar *message); void show_grid_menu_item_toggled_callback(GtkCheckMenuItem *checkmenuitem, gpointer user_data); void actions_combo_box_changed_callback(GtkComboBoxText *widget, gpointer user_data); void imagesets_combo_box_changed_callback(GtkComboBoxText *widget, gpointer user_data); void animations_combo_box_changed_callback(GtkComboBoxText *widget, gpointer user_data); void open_menu_item_activate_callback(GtkMenuItem *menuitem, GtkFileChooserDialog *fcdialog); gboolean frame_image_button_press_event_callback(GtkWidget *widget, GdkEventButton *button, int index); //>Toolbar callbacks void toolbar_to_first_clicked_callback(GtkToolButton *toolbutton, gpointer user_data); void toolbar_prev_frame_clicked_callback(GtkToolButton *toolbutton, gpointer user_data); void toolbar_play_clicked_callback(GtkToolButton *toolbutton, gpointer user_data); void toolbar_pause_clicked_callback(GtkToolButton *toolbutton, gpointer user_data); void toolbar_next_frame_clicked_callback(GtkToolButton *toolbutton, gpointer user_data); void toolbar_to_last_clicked_callback(GtkToolButton *toolbutton, gpointer user_data); //Dialogs void show_imageset_dialog(); void show_about_dialog(); void set_sprite_by_index(size_t index, SAEInfo *sae_info); void set_up_actions_by_imageset_name(gchar *imageset_name, SAEInfo *sae_info); gboolean set_up_imagesets(SAEInfo *sae_info); gboolean show_general_animation(SAEInfo *sae_info); gboolean set_up_action_by_name(const gchar *name, SAEInfo *sae_info); void set_up_imageset_by_name(const gchar* name, SAEInfo *sae_info); void parse_xml_buffer(GtkWidget *button, GtkSourceBuffer *buffer); void set_up_interface(); void load_config(); void save_config_and_quit(); void load_options(); void parse_xml_text(gchar *text, SAEInfo *sae_info); void show_sprite(SAEInfo *sae_info); void show_animation(SAEInfo *sae_info); #endif