nkeynes@30: /** nkeynes@167: * $Id: gui.h,v 1.15 2006-06-19 11:00:42 nkeynes Exp $ nkeynes@30: * nkeynes@30: * General GUI definitions nkeynes@30: * nkeynes@30: * Copyright (c) 2005 Nathan Keynes. nkeynes@30: * nkeynes@30: * This program is free software; you can redistribute it and/or modify nkeynes@30: * it under the terms of the GNU General Public License as published by nkeynes@30: * the Free Software Foundation; either version 2 of the License, or nkeynes@30: * (at your option) any later version. nkeynes@30: * nkeynes@30: * This program is distributed in the hope that it will be useful, nkeynes@30: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@30: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@30: * GNU General Public License for more details. nkeynes@1: */ nkeynes@30: nkeynes@1: #ifndef dream_gui_H nkeynes@1: #define dream_gui_H 1 nkeynes@1: nkeynes@1: #include nkeynes@1: #include "dream.h" nkeynes@30: #include "cpu.h" nkeynes@25: #include "gui/interface.h" nkeynes@1: nkeynes@1: #ifdef __cplusplus nkeynes@1: extern "C" { nkeynes@1: #if 0 nkeynes@1: } nkeynes@1: #endif nkeynes@1: #endif nkeynes@1: nkeynes@27: void gtk_gui_init(void); nkeynes@27: void gtk_gui_update(void); nkeynes@27: extern struct dreamcast_module gtk_gui_module; nkeynes@2: nkeynes@9: typedef struct debug_info_struct *debug_info_t; nkeynes@9: extern debug_info_t main_debug; nkeynes@9: nkeynes@18: typedef int (*file_callback_t)( const gchar *filename ); nkeynes@167: void open_file_dialog( char *title, file_callback_t file_handler, char *pattern, char *patname, const gchar *initial_dir ); nkeynes@167: void save_file_dialog( char *title, file_callback_t file_handler, char *pattern, char *patname, const gchar *initial_dir ); nkeynes@18: nkeynes@1: void update_mmr_win( void ); nkeynes@1: void init_mmr_win( void ); nkeynes@30: nkeynes@30: debug_info_t init_debug_win(GtkWidget *, const cpu_desc_t *cpu ); nkeynes@30: debug_info_t get_debug_info(GtkWidget *widget); nkeynes@9: void update_registers( debug_info_t debug ); nkeynes@9: void update_icount( debug_info_t debug ); nkeynes@9: void dump_win_update_all(); nkeynes@9: void set_disassembly_region( debug_info_t debug, unsigned int page ); nkeynes@9: void set_disassembly_pc( debug_info_t debug, unsigned int pc, gboolean select ); nkeynes@26: void set_disassembly_cpu( debug_info_t debug, const gchar *cpu_name ); nkeynes@9: void jump_to_disassembly( debug_info_t debug, unsigned int addr, gboolean select ); nkeynes@9: void jump_to_pc( debug_info_t debug, gboolean select ); nkeynes@28: void debug_win_set_running( debug_info_t debug, gboolean isRunning ); nkeynes@30: void debug_win_single_step( debug_info_t debug ); nkeynes@45: void debug_win_toggle_breakpoint( debug_info_t debug, int row ); nkeynes@45: void debug_win_set_oneshot_breakpoint( debug_info_t debug, int row ); nkeynes@9: uint32_t row_to_address( debug_info_t debug, int row ); nkeynes@9: int address_to_row( debug_info_t debug, uint32_t address ); nkeynes@1: nkeynes@2: extern PangoFontDescription *fixed_list_font; nkeynes@2: extern GdkColor clrNormal, clrChanged, clrError, clrWarn, nkeynes@43: clrPC, clrDebug, clrTrace, clrBreak, clrTempBreak, clrWhite; nkeynes@1: nkeynes@1: void mmr_open_win( void ); nkeynes@1: void mmr_close_win( void ); nkeynes@2: uint32_t gtk_entry_get_hex_value( GtkEntry *entry, uint32_t defaultValue ); nkeynes@2: void gtk_entry_set_hex_value( GtkEntry *entry, uint32_t value ); nkeynes@1: nkeynes@1: #ifdef __cplusplus nkeynes@1: } nkeynes@1: #endif nkeynes@1: #endif