summaryrefslogtreecommitdiff
path: root/gdb/gdbtk/library/download.itb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/gdbtk/library/download.itb')
-rw-r--r--gdb/gdbtk/library/download.itb284
1 files changed, 0 insertions, 284 deletions
diff --git a/gdb/gdbtk/library/download.itb b/gdb/gdbtk/library/download.itb
deleted file mode 100644
index afe3c1d599c..00000000000
--- a/gdb/gdbtk/library/download.itb
+++ /dev/null
@@ -1,284 +0,0 @@
-# Download class implementation for Insight.
-# Copyright 1999, 2001 Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License (GPL) 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.
-
-
-# ----------------------------------------------------------------------
-# Download window and associated procs
-#
-# ----------------------------------------------------------------------
-
-itcl::body Download::constructor {args} {
- global gdb_pretty_name
- debug $args
- eval itk_initialize $args
- window_name "Download Status" "Download"
- add_hook download_progress_hook "$this update_download"
-
- label $itk_interior.dload -text "Downloading $filename to $gdb_pretty_name"
-
- label $itk_interior.stat
- set f [frame $itk_interior.f]
-
- set i 0
- while {$i <$num_sections} {
- iwidgets::feedback $f.meter$i -steps $num_steps -fraction 0.0
- grid forget [$f.meter$i component percentage]
- label $f.sec$i -text [lindex $section(names) $i] -anchor w
- label $f.num$i -text $bytes($i) -anchor e
- grid $f.sec$i $f.meter$i $f.num$i -padx 4 -pady 4 -sticky news
- incr i
- }
- grid columnconfigure $f 1 -weight 1
-
- button $itk_interior.cancel -text Cancel -command "$this cancel" \
- -state active -width 10
-
- pack $itk_interior.dload -padx 5 -pady 5 -side top -fill x -expand yes
- pack $itk_interior.stat -padx 5 -pady 5 -expand yes
- pack $itk_interior.f -padx 5 -pady 5 -fill x -expand yes
-
- pack $itk_interior.cancel -padx 5 -pady 5 -side bottom
- ::update idletasks
-}
-
-# ------------------------------------------------------------------
-# METHOD: update_download - update the download meters
-# ------------------------------------------------------------------
-itcl::body Download::update_download { sec num tot } {
-
- # Loop through all the sections, marking each as either done or
- # updating its meter. This will mark all previous sections prior to
- # SEC as complete.
- foreach s $section(names) {
- set i $section($s)
-
- if {$s == $sec} {
- set f [expr {$num / $bytes($i)}]
- $itk_interior.f.meter$i configure -fraction $f
- break
- } else {
- $itk_interior.f.meter$i configure -fraction 1.0
- }
- }
-
- ::update
-}
-
-# ------------------------------------------------------------------
-# METHOD: done - notification that the download is really complete
-# ------------------------------------------------------------------
-itcl::body Download::done { {msg ""} } {
- bell
-
- if {$msg == ""} {
- # download finished
- set secs [expr {[clock seconds] - $::download_start_time}]
- if {$secs == 0} { incr secs }
- $itk_interior.cancel config -state disabled
- set bps [expr {8 * $total_bytes / $secs / 1000}]
- $itk_interior.stat config -text "$total_bytes bytes in $secs seconds ($bps kbps)"
-
- # set all indicators to FULL
- foreach sec $section(names) {
- set i $section($sec)
- $itk_interior.f.meter$i configure -fraction 1.0
- }
- } else {
- # download failed
- if {$msg != "CANCEL"} {
- $itk_interior.stat config -text $msg
- }
- }
-
- # enable OK button
- $itk_interior.cancel config -state active -text OK -command "delete object $this"
- ::update
-}
-
-# ------------------------------------------------------------------
-# METHOD: cancel - cancel the download
-# ------------------------------------------------------------------
-itcl::body Download::cancel {} {
- debug "canceling the download"
- set ::download_cancel_ok 1
-}
-
-# ------------------------------------------------------------------
-# DESTRUCTOR - destroy window containing widget
-# ------------------------------------------------------------------
-itcl::body Download::destructor {} {
- remove_hook download_progress_hook "$this update_download"
-}
-
-itcl::body Download::do_download_hooks {} {
- set ::download_timer(ok) 1
-}
-
-itcl::body Download::download_hash { section num } {
- global download_timer
- debug "sec=$section num=$num tot=$total_bytes ok=$::download_cancel_ok"
- ::update
- # Only run the timer at discrete times...
- if {[info exists download_timer(timer)]} {
- after cancel $download_timer(timer)
- }
-
- set download_timer(timer) [after 100 Download::do_download_hooks]
- if {![info exists download_timer(ok)] || $download_timer(ok)} {
- run_hooks download_progress_hook $section $num $total_bytes
- ::update
- unset download_timer(timer)
- set download_timer(ok) 0
- }
-
- return $::download_cancel_ok
-}
-
-# Download the executable. Return zero for success, and non-zero for error.
-itcl::body Download::download_it { } {
- global gdb_exe_name gdb_downloading gdb_loaded
- global gdb_target_name gdb_pretty_name
- global gdb_running
- global tcl_platform
-
- debug "exe=$gdb_exe_name downloading=$gdb_downloading"
- debug " loaded=$gdb_loaded target=$gdb_target_name running=$gdb_running"
-
- if {$gdb_downloading || $gdb_exe_name == ""} {
- return 0
- }
-
- set gdb_downloading 1
- set gdb_loaded 0
- # Make sure the source window has had time to be created
- ::update
-
- gdbtk_busy
-
- # Only places that load files should do set_exe
- #set_exe
- switch [set_target] {
- ERROR {
- # target command failed
- set gdb_downloading 0
- gdbtk_idle
- return 0
- }
- CANCELED {
- # command cancelled by user
- set gdb_downloading 0
- if {$gdb_running} {
- # Run the idle hooks (free the UI)
- gdbtk_update
- gdbtk_idle
- } else {
- gdbtk_idle
- }
- return 1
- }
- }
-
- if {[string compare $tcl_platform(platform) "windows"] == 0} {
- set f [ide_cygwin_path to_win32 $gdb_exe_name]
- } else {
- set f $gdb_exe_name
- }
- if {! [file exists $f]} {
- tk_messageBox -icon error -title GDB -type ok \
- -message "Request to download non-existent executable $gdb_exe_name"
- set gdb_downloading 0
- gdbtk_idle
- return 0
- }
-
- debug "downloading $gdb_exe_name"
-
- set target $gdb_target_name
-
- # get load info and total up number of bytes
- if {[catch {gdb_load_info $gdb_exe_name} val]} {
- set result "$gdb_exe_name: $val"
- tk_dialog .load_warn "" "$result" error 0 Ok
- return 0
- }
- set i 0
- set total_bytes 0
- set section(names) {}
- foreach x $val {
- set s [lindex $x 0]
- lappend section(names) $s
- set section($s) $i
- set b [lindex $x 1]
- set bytes($i) [expr {double($b)}]
- incr total_bytes $b
- incr i
- }
- set num_sections $i
-
- set ::download_cancel_ok 0
- set ::download_start_time [clock seconds]
-
- if {[pref getd gdb/load/$target-verbose] == "1"} {
- # open a detailed download dialog window
- set download_dialog [ManagedWin::open Download -transient -filename $gdb_exe_name]
- } else {
- # raise source windows
- foreach src [ManagedWin::find SrcWin] {
- $src reveal
- $src toolbar downloading
- }
- set download_dialog ""
- }
-
- set download_error ""
- debug "starting load"
- ::update idletasks
- if {[catch {gdb_cmd "load $gdb_exe_name"} errTxt]} {
- debug "load returned $errTxt"
- if {[regexp -nocase cancel $errTxt]} {
- set download_error "CANCEL"
- } else {
- set download_error $errTxt
- }
- set ::download_cancel_ok 1
- }
-
- debug "Done loading"
-
- set gdb_downloading 0
- if {$::download_cancel_ok} {
- set gdb_loaded 0
- if {$download_dialog != ""} {
- catch {$download_dialog done $download_error}
- }
- } else {
- set gdb_loaded 1
- if {$download_dialog != ""} {
- catch {$download_dialog done}
- }
- }
-
- foreach src [ManagedWin::find SrcWin] {
- if {$download_error == "CANCEL"} {
- $src download_progress CANCEL 1 1
- } else {
- $src download_progress DONE 0 $total_bytes $download_error
- }
- }
-
- set ::download_cancel_ok 0
- set download_dialog ""
-
- gdbtk_idle
- return 0
-}