⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 session.tcl

📁 rtai-3.1-test3的源代码(Real-Time Application Interface )
💻 TCL
字号:
#  This file is part of the XENOMAI project.##  Copyright (C) 2001,2002 Philippe Gerum <rpm@xenomai.org>.##  This program is free software; you can redistribute it and/or#  modify it under the terms of the GNU General Public License 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.#set Workspace:optNames {ktrace itrace utrace brkwarn popwarn linenums \			evbubbles autoraise brkalert threadqual \			glyphcursor forcefocus vtime}set Workspace:opt2var(ktrace)      Project:settings(Options,traceKernel)set Workspace:opt2var(itrace)      Project:settings(Options,traceIface)set Workspace:opt2var(utrace)      Project:settings(Options,traceApp)set Workspace:opt2var(brkwarn)     Project:settings(Options,breakOnWarnings)set Workspace:opt2var(popwarn)     Project:settings(Options,popupOnWarnings)set Workspace:opt2var(linenums)    Project:settings(Options,lineNumbering)set Workspace:opt2var(evbubbles)   Project:settings(Options,evalBubbles)set Workspace:opt2var(autoraise)   Project:settings(Options,autoRaise)set Workspace:opt2var(brkalert)    Project:settings(Options,breakOnAlerts)set Workspace:opt2var(threadqual)  Project:settings(Options,threadQualify)set Workspace:opt2var(glyphcursor) Project:settings(Options,useGlyphCursor)set Workspace:opt2var(forcefocus)  Project:settings(Options,forceFocusOnBreak)set Workspace:opt2var(vtime)       Project:settings(Options,virtualTime)# An associative array storing the session settings.set Workspace:session(CurrentProject) {}set Workspace:session(RecentProjects) {}set Workspace:session(DefaultProjectDir) {}set Workspace:session(DefaultExecdir) {}set Workspace:session(DesktopGeometry) 800x600+150+80proc Project:resetSettings {} {    global Project:settings    # Project:settings is an associative array storing the    # miscellaneous simulation and system settings for the current    # project.    set Project:settings(SimulationTime) {0 usc}    set Project:settings(WarmupTime) {0 usc}    set Project:settings(SampleCount) 1     set Project:settings(DisplayTick) {0 usc}    set Project:settings(TimeUnit) usc    set Project:settings(WarpFactor) 3.0    set Project:settings(ServerPort) 6545    set Project:settings(Watchdog) 30    set Project:settings(WorkingDir) {}    set Project:settings(SourceDirs) {}    set Project:settings(PrintCmd) "lpr -c %f"    set Project:settings(Options,traceKernel)        0    set Project:settings(Options,traceIface)         0    set Project:settings(Options,traceApp)           1    set Project:settings(Options,breakOnWarnings)    1    set Project:settings(Options,popupOnWarnings)    1    set Project:settings(Options,lineNumbering)      0    set Project:settings(Options,evalBubbles)        1    set Project:settings(Options,autoRaise)          0    set Project:settings(Options,breakOnAlerts)      1    set Project:settings(Options,threadQualify)      1    set Project:settings(Options,useGlyphCursor)     0    set Project:settings(Options,forceFocusOnBreak)  0    set Project:settings(Options,virtualTime)        0    set Project:settings(LocalArgs) {}    set Project:settings(GdbPath) gdb    set Project:settings(TraceLogSize) 200    set Project:settings(Preferences,displaywp) 1    set Project:settings(Preferences,wallpaper) bgndDefault    set Project:settings(Executable) {}}proc Session:save {context {updateGeometry true}} {    global Workspace:session    if {$updateGeometry == "true"} {	# Save desktop geometry	set Workspace:session(DesktopGeometry) [wm geometry $context]    }    set rcfile [glob ~]/.mvmrc    if {[catch {open $rcfile w} fh]} {	# File can't be written.	return    }    foreach name [array names Workspace:session *] {	puts $fh "$name [list [set Workspace:session($name)]]"    }    close $fh}proc Session:restore {context {projfile {}}} {    global Workspace:session    set rcfile [glob ~]/.mvmrc    if {$projfile == {}} {	if {[catch {open $rcfile r} fh]} {	    # File can't be read.	    return {}	}	while {[gets $fh s] >= 0} {	    if {$s != {}} {		set name [lindex $s 0]		set value [lindex $s 1]		set Workspace:session($name) $value	    }	}	close $fh    }    if {[set Workspace:session(DesktopGeometry)] != {}} {	wm geometry $context [set Workspace:session(DesktopGeometry)]    }    if {$projfile == {}} {	set projfile [set Workspace:session(CurrentProject)]    } {	set projfile [getAbsolutePath $projfile]    }    Workspace:updateRecentProjects $context    if {$projfile != {}} {	Workspace:openProject $context $projfile    }}proc Workspace:saveProject {context {projfile {}} {execfile {}}} {    global Workspace:session Project:settings    if {$projfile == {}} {	set projfile [set Workspace:session(CurrentProject)]    } {	set projfile [getAbsolutePath $projfile]	set Workspace:session(CurrentProject) $projfile    }    if {$execfile != {}} {	set Project:settings(Executable) [getAbsolutePath $execfile]    }    if {$projfile == {}} {	return true    }    if {[catch {open $projfile w} fh]} {	return false    }    foreach name [array names Project:settings *] {	puts $fh "$name [list [set Project:settings($name)]]"    }    close $fh    return true}proc Workspace:restoreProject {context projfile} {    global Workspace:session Project:settings    if {[catch {open $projfile r} fh]} {	return false    }    while {[gets $fh s] >= 0} {	if {$s != {}} {	    set name [lindex $s 0]	    set value [lindex $s 1]	    set Project:settings($name) $value	}    }    close $fh    set Workspace:session(CurrentProject) $projfile    return true}proc Project:setResource {name value} {    global Project:settings    set name [stringMap {" " _} $name]    set Project:settings(Resources,$name) $value}proc Project:getResource {name} {    global Project:settings    set name [stringMap {" " _} $name]    if {![info exists Project:settings(Resources,$name)]} {	return {}    }    return [set Project:settings(Resources,$name)]}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -