123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- ##########################################################################
- #
- # gmlib.tcl
- #
- # Procedures library for GIS Manager: GUI for GRASS 6
- # Author: Michael Barton (Arizona State University)
- # with contributions by Glynn Clements, Markus Neteler, Lorenzo Moretti,
- # Florian Goessmann, and others
- #
- # January 2008
- #
- # COPYRIGHT: (C) 1999 - 2008 by the GRASS Development Team
- #
- # This program is free software under the GNU General Public
- # License (>=v2). Read the file COPYING that comes with GRASS
- # for details.
- #
- ##########################################################################
- namespace eval GmLib {
- global array filename ;# mon
- }
- ###############################################################################
- #read_moncap
- proc GmLib::color { color } {
-
- if {$color == "white"} {
- set r 255
- set g 255
- set b 255
- } else {
- regexp -- {#(..)(..)(..)} $color x r g b
-
- set r [expr 0x$r ]
- set g [expr 0x$g ]
- set b [expr 0x$b ]
- }
-
- return "$r:$g:$b"
- }
- ###############################################################################
- # Deprecated
- # Use guarantee_xmon and any run command instead.
- proc GmLib::xmon { type cmd } {
- guarantee_xmon
- if { $type == "term" } {
- term_panel $cmd
- } else {
- run_panel $cmd
- }
- return
- }
- ###############################################################################
- # Determine if an element already exists
- proc GmLib::element_exists {elem name} {
- global devnull
- set exists 1
-
- set failure [catch {exec g.findfile element=$elem file=$name >& $devnull}]
- return [expr {! $failure}]
- }
- ###############################################################################
- #open dialog box
- proc GmLib::OpenFileBox { } {
- global filename
- global mon
- # thanks for brace tip to suchenwi from #tcl@freenode
- set types [list \
- [list [G_msg "Map Resource File"] [list ".dm" ".dmrc" ".grc"]] \
- [list [G_msg "All Files"] "*"] \
- ]
- set filename_new [tk_getOpenFile -parent $Gm::mainwindow -filetypes $types \
- -title [G_msg "Open File"] ]
- if { $filename_new == "" } { return}
- set filename($mon) $filename_new
- GmTree::load $filename($mon)
- };
- ###############################################################################
- #save dialog box
- proc GmLib::SaveFileBox { } {
- global filename
- global mon
-
- catch {
- if {[ regexp -- {^Untitled_} $filename($mon) r]} {
- set filename($mon) ""
- }
- }
-
- if { $filename($mon) != "" } {
- GmTree::save $filename($mon)
- } else {
- set types [list \
- [list [G_msg "Map Resource File"] {.grc}] \
- [list [G_msg "DM Resource File"] [list {.dm} {.dmrc}]] \
- [list [G_msg "All Files"] "*"] \
- ]
- set filename($mon) [tk_getSaveFile -parent $Gm::mainwindow -filetypes $types \
- -title [G_msg "Save File"] -defaultextension .grc]
- if { $filename($mon) == "" } { return}
- GmTree::save $filename($mon)
- }
- };
- ###############################################################################
- proc GmLib::errmsg { error args } {
- # send error report and optional message (args) to tk_messageBox
-
- set message ""
-
- if { $args != ""} {
- set message [join $args]
- append message ": "
- }
-
- tk_messageBox -type ok -icon error -title [G_msg "Error"] \
- -message "$message[G_msg $error]"
- uplevel 1 return
-
- };
|