static int create_dialog( void ) { int error; GtkWidget *hbox, *vbox, *hbox2, *content_area; GtkAccelGroup *accel_group; gtkui_font font; error = gtkui_get_monospaced_font( &font ); if( error ) return error; dialog = gtkstock_dialog_new( "Fuse - Debugger", G_CALLBACK( delete_dialog ) ); content_area = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) ); /* The menu bar */ error = create_menu_bar( GTK_BOX( content_area ), &accel_group ); if( error ) return error; /* Keyboard shortcuts */ gtk_window_add_accel_group( GTK_WINDOW( dialog ), accel_group ); /* Some boxes to contain the things we want to display */ hbox = gtk_box_new( GTK_ORIENTATION_HORIZONTAL, 0 ); gtk_box_pack_start( GTK_BOX( content_area ), hbox, TRUE, TRUE, 5 ); vbox = gtk_box_new( GTK_ORIENTATION_VERTICAL, 5 ); gtk_box_pack_start( GTK_BOX( hbox ), vbox, TRUE, TRUE, 5 ); hbox2 = gtk_box_new( GTK_ORIENTATION_HORIZONTAL, 5 ); gtk_box_pack_start( GTK_BOX( vbox ), hbox2, TRUE, TRUE, 0 ); /* The main display areas */ error = create_register_display( GTK_BOX( hbox2 ), font ); if( error ) return error; error = create_memory_map( GTK_BOX( hbox2 ) ); if( error ) return error; create_breakpoints( GTK_BOX( vbox ) ); create_disassembly( GTK_BOX( hbox ), font ); create_stack_display( GTK_BOX( hbox ), font ); create_events( GTK_BOX( hbox ) ); error = create_command_entry( GTK_BOX( content_area ), accel_group ); if( error ) return error; /* The action buttons */ error = create_buttons( GTK_DIALOG( dialog ), accel_group ); if( error ) return error; gtkui_free_font( font ); dialog_created = 1; return 0; }
int gui_create(application_callback_t run_script_cb, application_callback_t run_command_cb) { GtkWidget *view; GtkWidget *text; GtkWidget *vpaned; GtkWidget *vbox; GtkWidget *entry; GtkWidget *frame1; GtkWidget *frame2; GtkWidget *status; GtkWidget *menu; RUN_LUA_SCRIPT = run_script_cb; RUN_LUA_COMMAND = run_command_cb; MAIN_WINDOW = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(MAIN_WINDOW),600,400); gtk_container_set_border_width (GTK_CONTAINER (MAIN_WINDOW), 0); g_signal_connect (MAIN_WINDOW, "delete_event", gtk_main_quit, NULL); /* dirty */ CARDTREE = cardtree_new(); vbox = gtk_vbox_new (FALSE, 0); vpaned = gtk_vpaned_new (); view = create_view (CARDTREE); frame1 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame1),GTK_SHADOW_ETCHED_IN); gtk_container_add (GTK_CONTAINER(frame1),view); gtk_paned_add1 (GTK_PANED (vpaned), frame1); text = create_text (); SCROLL_TEXT = GTK_SCROLLED_WINDOW(text); frame2 = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame2),GTK_SHADOW_ETCHED_IN); gtk_container_add (GTK_CONTAINER(frame2),text); gtk_paned_add2 (GTK_PANED (vpaned), frame2); log_activate(gui_logfunction); entry = create_command_entry (); status = gtk_statusbar_new (); menu = create_menubar(MAIN_WINDOW); gtk_box_pack_start (GTK_BOX (vbox), menu, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), status, FALSE, TRUE, 0); gtk_container_add (GTK_CONTAINER (MAIN_WINDOW), vbox); gtk_widget_show_all (MAIN_WINDOW); /*gtk_widget_size_request(vpaned,&requisition);*/ gtk_paned_set_position(GTK_PANED (vpaned), 256); return 1; }
static int create_dialog( void ) { int error; GtkWidget *hbox, *vbox, *hbox2; GtkAccelGroup *accel_group; debugger_pane i; gtkui_font font; error = gtkui_get_monospaced_font( &font ); if( error ) return error; dialog = gtkstock_dialog_new( "Fuse - Debugger", GTK_SIGNAL_FUNC( delete_dialog ) ); /* Keyboard shortcuts */ accel_group = gtk_accel_group_new(); gtk_window_add_accel_group( GTK_WINDOW( dialog ), accel_group ); /* The menu bar */ error = create_menu_bar( GTK_BOX( GTK_DIALOG( dialog )->vbox ), accel_group ); if( error ) return error; /* Some boxes to contain the things we want to display */ hbox = gtk_hbox_new( FALSE, 0 ); gtk_box_pack_start( GTK_BOX( GTK_DIALOG( dialog )->vbox ), hbox, TRUE, TRUE, 5 ); vbox = gtk_vbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( hbox ), vbox, TRUE, TRUE, 5 ); hbox2 = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start_defaults( GTK_BOX( vbox ), hbox2 ); /* The main display areas */ error = create_register_display( GTK_BOX( hbox2 ), font ); if( error ) return error; error = create_memory_map( GTK_BOX( hbox2 ) ); if( error ) return error; error = create_breakpoints( GTK_BOX( vbox ) ); if( error ) return error; error = create_disassembly( GTK_BOX( hbox ), font ); if( error ) return error; error = create_stack_display( GTK_BOX( hbox ), font ); if( error ) return error; error = create_events( GTK_BOX( hbox ) ); if( error ) return error; error = create_command_entry( GTK_BOX( GTK_DIALOG( dialog )->vbox ), accel_group ); if( error ) return error; /* The action buttons */ error = create_buttons( GTK_DIALOG( dialog ), accel_group ); if( error ) return error; /* Initially, have all the panes visible */ for( i = DEBUGGER_PANE_BEGIN; i < DEBUGGER_PANE_END; i++ ) { GtkCheckMenuItem *check_item; check_item = get_pane_menu_item( i ); if( !check_item ) break; gtk_check_menu_item_set_active( check_item, TRUE ); } gtkui_free_font( font ); dialog_created = 1; return 0; }