Commit f2e87cae authored by Diederik van Arkel's avatar Diederik van Arkel

Final? changes for Clean 2.0 release

parent cf9c89f2
......@@ -115,7 +115,7 @@ vShowCursor =
getFontInfo >>>= \fontInfo ->
getText >>>= \text ->
setCursorVisibility True >>>
vDraw (vDrawCursor end height text fontInfo)
vDraw (vDrawCursor True end height text fontInfo)
)
)
ELSE (skip)
......@@ -131,7 +131,7 @@ vHideCursor =
getText >>>= \text ->
getSelection >>>= \{end} ->
setCursorVisibility False >>>
vDraw (vDrawCursor end height text fontInfo)
vDraw (vDrawCursor False end height text fontInfo)
)
ELSE
( skip )
......@@ -157,14 +157,16 @@ vUpdateCursor visible end height fontInfo text viewFrame rectangles =
ELSE
id
vDrawCursor :: Position Int Text FontInfo -> (*Picture -> *Picture)
vDrawCursor end cursorHeight text fontInfo =
vDrawCursor :: Bool Position Int Text FontInfo -> (*Picture -> *Picture)
vDrawCursor show end cursorHeight text fontInfo =
let
p = positionToPoint end text fontInfo
{x,y} = p
in
( appXorPicture (seq
[ setPenColour Black
// ( appXorPicture (seq
// [ setPenColour Black
( (seq
[ setPenColour (if show Black fontInfo.syntaxColours.backgroundColour)
, drawLine { x=x, y=y }
{ x=x, y=y+cursorHeight - 1 }
])
......
......@@ -112,7 +112,7 @@ Start world
= Batch stup force_update proj_path pub world
where
setupKeyMap world
# ((km,ok,_),world) = accFiles (ReadKeyMapFile (applicationpath "default.km")) world
# ((km,ok,_),world) = accFiles (ReadKeyMapFile (applicationpath "Config\\default.km")) world
# keymap = if ok km macKeyMapping
= (keymap,world)
setupToolBar show world // need to conditionalise for Mac...
......@@ -190,20 +190,20 @@ where
] ps
# (prefs,ps) = getPrefs ps
# (ide_vers,ide_name,ide_path) = GetVNP
// <<< can move this into first_run module
// as function :: (reg_prefs,ps) -> (reg_prefs,ps)
# pcl_name = prefs.reg_prefs.tp_name
# pcl_path = prefs.reg_prefs.tp_path
# hcl_name = prefs.reg_prefs.hp_name
# hcl_path = prefs.reg_prefs.hp_path
# flags = prefs.reg_prefs.rp_flags
# (res,ps) = first_run ide_vers ide_name ide_path pcl_name pcl_path hcl_name hcl_path flags ps
# (res,flag,ps) = first_run pcl_name pcl_path hcl_name hcl_path flags ps
# ps = case res of
True # flags = take 10 [(ide_name,ide_path,ide_vers):flags]
True # flags = take 10 [flag:flags]
# prefs = {prefs & reg_prefs.rp_flags = flags}
-> setPrefs prefs ps
_ -> ps
// >>>
# (fhRecId,ps) = getFHI ps
# (phRecId,ps) = getPHI ps
# (menuIds,ps) = getMenuIds ps
......
......@@ -10,7 +10,7 @@ import Directory, StdTuple
//-- export
IDE_VERSION
:== "v2.0 build 2001-12-07 "
:== "v2.0 build 2001-12-18 "
// want link(?) date/time to be automatically entered...
+++. PLATFORM
+++. CLEAN_VERSION
......
......@@ -117,7 +117,7 @@ changeCV cv ps
= setPrefs prefs ps
//import dodebug
import first_run, UtilIO
import first_run, UtilIO, PmPath
setTP tpId ps
# (prefs,ps) = getPrefs ps
......@@ -128,14 +128,16 @@ setTP tpId ps
# short = case GetShortPathName full of
(True,short) -> short
_ -> full
# path = GetFilePath short
# ps = appPIO (setControlText tpId (path +++ name)) ps
# prefs = {prefs & reg_prefs.tp_name = name, reg_prefs.tp_path = path}
# rpath = GetFilePath short
# (app_path,ps) = getStup ps
# spath = symAppPath app_path (GetFilePath full)
# ps = appPIO (setControlText tpId (spath +++ name)) ps
# prefs = {prefs & reg_prefs.tp_name = name, reg_prefs.tp_path = spath}
# ps = setPrefs prefs ps
# (ide_name,ide_path,ide_vers,errs)
= get_ide_from_registry
| not (isEmpty errs) || ide_name == "" || ide_path == "" || ide_vers == "" = ps
# errs = change_pcl_registry_fun ide_name ide_path name path
# errs = change_pcl_registry_fun ide_name ide_path name rpath
| errs == [] = ps
= ps
......@@ -148,14 +150,16 @@ setHP hpId ps
# short = case GetShortPathName full of
(True,short) -> short
_ -> full
# path = GetFilePath short
# ps = appPIO (setControlText hpId (path +++ name)) ps
# prefs = {prefs & reg_prefs.hp_name = name, reg_prefs.hp_path = path}
# rpath = GetFilePath short
# (app_path,ps) = getStup ps
# spath = symAppPath app_path (GetFilePath full)
# ps = appPIO (setControlText hpId (spath +++ name)) ps
# prefs = {prefs & reg_prefs.hp_name = name, reg_prefs.hp_path = spath}
# ps = setPrefs prefs ps
# (ide_name,ide_path,ide_vers,errs)
= get_ide_from_registry
| not (isEmpty errs) || ide_name == "" || ide_path == "" || ide_vers == "" = ps
# errs = change_hcl_registry_fun ide_name ide_path name path
# errs = change_hcl_registry_fun ide_name ide_path name rpath
| errs == [] = ps
= ps
......@@ -168,9 +172,11 @@ setPR prId ps
# short = case GetShortPathName full of
(True,short) -> short
_ -> full
# path = GetFilePath short
# ps = appPIO (setControlText prId (path +++ name)) ps
# prefs = {prefs & reg_prefs.pr_name = name, reg_prefs.pr_path = path}
# rpath = GetFilePath short
# (app_path,ps) = getStup ps
# spath = symAppPath app_path (GetFilePath full)
# ps = appPIO (setControlText prId (spath +++ name)) ps
# prefs = {prefs & reg_prefs.pr_name = name, reg_prefs.pr_path = spath}
= setPrefs prefs ps
clearRegistry ps
......
......@@ -2,7 +2,7 @@ implementation module tools
import StdBool, StdFunc, StdFile, StdPStClass, StdSystem
import ExtNotice, StdPathname
import IdeState, UtilIO
import IdeState, UtilIO, PmPath
//-- call out to supporting applications...
......@@ -23,7 +23,16 @@ shoprofun ps
// should still take into account max filename length
# profpath = quoted_string (RemoveSuffix` execpath +++ timepsuf)
# (prefs,ps) = getPrefs ps
# timepapp = quoted_string (prefs.reg_prefs.tp_path +++ prefs.reg_prefs.tp_name)
# pcl_path = prefs.reg_prefs.tp_path
# (app_path,ps) = accFiles GetFullApplicationPath ps
# app_path = GetLongPathName app_path
# pcl_path = fulAppPath app_path pcl_path
# pcl_path = case GetShortPathName pcl_path of
(True,pcl_path) -> pcl_path
_ -> pcl_path
# timepapp = quoted_string (pcl_path +++ prefs.reg_prefs.tp_name)
# sp = timepapp +++ timeparg +++ profpath
# stup = RemoveFilename execpath
# (ok,ps) = accFiles (FExists stup) ps
......@@ -41,7 +50,16 @@ shoheapfun ps
// should still take into account max filename length
# profpath = quoted_string (RemoveSuffix` execpath +++ heappsuf)
# (prefs,ps) = getPrefs ps
# heappapp = quoted_string (prefs.reg_prefs.hp_path +++ prefs.reg_prefs.hp_name)
# pcl_path = prefs.reg_prefs.hp_path
# (app_path,ps) = accFiles GetFullApplicationPath ps
# app_path = GetLongPathName app_path
# pcl_path = fulAppPath app_path pcl_path
# pcl_path = case GetShortPathName pcl_path of
(True,pcl_path) -> pcl_path
_ -> pcl_path
# heappapp = quoted_string (pcl_path +++ prefs.reg_prefs.hp_name)
# sp = heappapp +++ heapparg +++ profpath
# stup = RemoveFilename execpath
# (ok,ps) = accFiles (FExists stup) ps
......@@ -56,7 +74,16 @@ provefun ps
# (pathname,ps) = getPath ps
# pr_path = quoted_string (RemoveSuffix` pathname +++. proofsuf)
# (prefs,ps) = getPrefs ps
# proofapp = quoted_string (prefs.reg_prefs.pr_path +++ prefs.reg_prefs.pr_name)
# pcl_path = prefs.reg_prefs.pr_path
# (app_path,ps) = accFiles GetFullApplicationPath ps
# app_path = GetLongPathName app_path
# pcl_path = fulAppPath app_path pcl_path
# pcl_path = case GetShortPathName pcl_path of
(True,pcl_path) -> pcl_path
_ -> pcl_path
# proofapp = quoted_string (pcl_path +++ prefs.reg_prefs.pr_name)
# cps = proofapp +++ proofarg +++ pr_path
# stup = RemoveFilename pathname
# (ok,ps) = accFiles (FExists stup) ps
......
......@@ -12,7 +12,7 @@ EnvsFileName :== "IDEEnvs"
emptyTargets
// = [t_StdEnv13,t_StdIO13] // 1.3
= [t_StdEnv20] // 2.0
= [t_StdEnv20,t_StdIO20] // 2.0
t_StdEnv :: !Target
t_StdEnv
......@@ -180,32 +180,6 @@ t_StdEnv13 =
, target_meth = CompileSync
}
t_StdEnv20 :: !Target
t_StdEnv20 =
{ target_name = "StdEnv"
, target_path =
( "{Application}\\StdEnv"
:! Nil
)
, target_libs = PlatformDependant
// ( "{Application}\\StdEnv\\Clean System Files\\user_library"
// :! "{Application}\\StdEnv\\Clean System Files\\gdi_library"
// :! "{Application}\\StdEnv\\Clean System Files\\comdlg_library"
// :! Nil
( Nil
) // Win
( Nil ) // Mac
, target_objs = Nil
, target_stat = Nil
, target_comp = "cocl.exe"
, target_cgen = "cg.exe"
, target_link = "StaticLinker.exe"
, target_dynl = "DynamicLinker.exe"
, target_vers = 916
, target_redc = False
, target_meth = CompilePers
}
t_StdIO13 =
{ target_name = "IO 0.8.2"
, target_path =
......@@ -232,32 +206,39 @@ t_StdIO13 =
, target_meth = CompileSync
}
t_StdIO20 =
{ target_name = "IO 0.8.2"
t_StdEnv20 :: !Target
t_StdEnv20 =
{ target_name = "StdEnv"
, target_path =
( "{Application}\\StdEnv"
:! "{Application}\\IOInterface 0.8.2"
( "{Application}\\Libraries\\StdEnv 2.0"
:! Nil
)
, target_libs = PlatformDependant
// ( "{Application}\\StdEnv\\Clean System Files\\user_library"
// :! "{Application}\\StdEnv\\Clean System Files\\gdi_library"
// :! "{Application}\\StdEnv\\Clean System Files\\comdlg_library"
// :! Nil
( Nil
) // Win
( Nil ) // Win
( Nil ) // Mac
, target_objs = Nil
, target_stat = Nil
, target_comp = "cocl.exe"
, target_cgen = "cg.exe"
, target_link = "StaticLinker.exe"
, target_dynl = "DynamicLinker.exe"
, target_comp = "Tools\\Clean System 2.0.0\\CleanCompiler200.exe"
, target_cgen = "Tools\\Clean System 2.0.0\\CodeGenerator200.exe"
, target_link = "Tools\\Clean System 2.0.0\\StaticLinker11.exe"
, target_dynl = "Tools\\Clean System 2.0.0\\DynamicLinker11.exe"
, target_vers = 916
, target_redc = False
, target_meth = CompilePers
}
t_StdIO20 =
{ t_StdEnv20
& target_name = "Object IO"
, target_path =
( "{Application}\\Libraries\\StdEnv 2.0"
:! "{Application}\\Libraries\\StdLib 2.0"
:! "{Application}\\Libraries\\ObjectIO 1.2.2"
:! "{Application}\\Libraries\\ObjectIO 1.2.2\\OS Windows"
:! Nil
)
}
//--
......
......@@ -137,13 +137,13 @@ emptyPrefs =
emptyRegPrefs =
{ rp_flags = []
, tp_name = "ShowTimeProfile.exe"
, tp_path = "C:\\CLEAN\\TOOLS\\TIMEPR~1\\"
, tp_path = "{Application}\\Tools\\Time Profiler 2.0\\"
, hp_name = "ShowHeapProfile.exe"
, hp_path = "C:\\CLEAN\\TOOLS\\HEAPPR~1\\"
, hp_path = "{Application}\\Tools\\Heap Profiler 2.0\\"
, pr_name = "Sparkle.exe"
, pr_path = "C:\\CLEAN\\TOOLS\\SPARKLE\\"
, ve_name = ""
, ve_path = ""
, pr_path = "{Application}\\Tools\\Sparkle 0.0.2a\\"
, ve_name = "VisualEditor.exe"
, ve_path = "{Application}\\Tools\\Visual Editor\\"
}
emptyTypPrefs =
......
......@@ -2,7 +2,7 @@ definition module first_run
from StdPSt import :: PSt
first_run :: !String !String !String !String !String !String !String ![(String,String,String)] !(PSt .ls) -> (!Bool,!PSt .ls)
first_run :: !String !String !String !String ![(String,String,String)] !(PSt .ls) -> (!Bool,(String,String,String),!PSt .ls)
change_hcl_registry_fun :: !String !String !String !String -> [String]
change_pcl_registry_fun :: !String !String !String !String -> [String]
GetVNP :: (String,String,String)
......
......@@ -3,7 +3,7 @@ implementation module first_run
import StdEnv, StdMaybe
import StdDebug
import registry, version
import UtilIO
import UtilIO, PmPath
//==
......@@ -26,7 +26,7 @@ where
app_vers = ReadVersionInfo
//==
/*
Start`` w = startIO NDI Void pinit [ProcessClose closeProcess] w
pinit ps
......@@ -49,7 +49,7 @@ where
pcl_path = "C:\\CLEAN\\TOOLS\\TIMEPR~1\\"
hcl_name = "ShowHeapProfile.exe"
hcl_path = "C:\\CLEAN\\TOOLS\\HEAPPR~1\\"
*/
GetFileName :: !String -> String;
GetFileName path
| found = (path % (inc position, dec (size path)));
......@@ -144,37 +144,49 @@ where
| No
| Never
first_run :: !String !String !String !String !String !String !String ![(String,String,String)] !(PSt .ls) -> (!Bool,!PSt .ls)
first_run ide_vers ide_name ide_path pcl_name pcl_path hcl_name hcl_path flags ps
first_run :: !String !String !String !String ![(String,String,String)] !(PSt .ls) -> (!Bool,(String,String,String),!PSt .ls)
first_run pcl_name pcl_path hcl_name hcl_path flags ps
# (ide_vers,ide_name,ide_path) = GetVNP
# (app_path,ps) = accFiles GetFullApplicationPath ps
# app_path = GetLongPathName app_path
# pcl_path = fulAppPath app_path pcl_path
# pcl_path = case GetShortPathName pcl_path of
(True,pcl_path) -> pcl_path
_ -> pcl_path
# hcl_path = fulAppPath app_path hcl_path
# hcl_path = case GetShortPathName hcl_path of
(True,hcl_path) -> hcl_path
_ -> hcl_path
# (run,ps) = check_flags ide_vers ide_path ide_name flags ps
| not run
= (False,ps)
= (False,(ide_name,ide_path,ide_vers),ps)
# (res,ps) = check_registry ide_name ide_path ide_vers ps
= case res of
MyEntry -> (False,ps)
MyEntry -> (False,(ide_name,ide_path,ide_vers),ps)
NoEntry
# (res,ps) = init_dialog ps
-> case res of
Yes # (err,ps) = set_registry ide_vers ide_name ide_path pcl_name pcl_path hcl_name hcl_path ps
| err <> ""
# ps = err_dialog False err ps
= (False,ps)
= (False,ps)
No -> (False,ps)
Never -> (True,ps)
-> (False,(ide_name,ide_path,ide_vers),ps)
-> (False,(ide_name,ide_path,ide_vers),ps)
No -> (False,(ide_name,ide_path,ide_vers),ps)
Never -> (True,(ide_name,ide_path,ide_vers),ps)
DiffEntry
# (res,ps) = delta_dialog ps
-> case res of
Yes # (err,ps) = set_registry ide_vers ide_name ide_path pcl_name pcl_path hcl_name hcl_path ps
| err <> ""
# ps = err_dialog False err ps
= (False,ps)
= (False,ps)
No -> (False,ps)
Never -> (True,ps)
-> (False,(ide_name,ide_path,ide_vers),ps)
-> (False,(ide_name,ide_path,ide_vers),ps)
No -> (False,(ide_name,ide_path,ide_vers),ps)
Never -> (True,(ide_name,ide_path,ide_vers),ps)
ErrEntry err
# ps = err_dialog True err ps
= (False,ps)
-> (False,(ide_name,ide_path,ide_vers),ps)
uninstall :: !(PSt .ls) -> (![String],!PSt .ls)
uninstall ps
......
......@@ -8,6 +8,7 @@ initPlatformCommandLine :: !*(PSt .l) -> (![String],!*PSt .l)
installPlatformEventHandlers :: !*(PSt .l) -> *(PSt .l)
openPlatformWindowMenu :: !*(PSt .l) -> *(PSt .l)
ToolsDir :: String
TooltempDir :: String
EnvsDir :: String
PrefsDir :: String
......@@ -69,20 +69,30 @@ inifilename
=: apppath%(0,s-4) +++. "ini\0"
section =: "Paths\0"
toolkey =: "tooltemp\0"
toolkey =: "tooldir\0"
tooltempkey =: "tooltemp\0"
envskey =: "envsdir\0"
prefskey =: "prefsdir\0"
tooldefault =: StartUpDir +++. "\\Temp\0"
tooldefault =: StartUpDir +++. "\\Tools\0"
tooltempdefault =: StartUpDir +++. "\\Temp\0"
envsdefault =: StartUpDir +++. "\\Config\0"
prefsdefault =: StartUpDir +++. "\\Config\0"
ToolsDir :: String
ToolsDir =:
let
(has_arg,arg) = get_arg "-tooldir"
(has_env,env) = get_env "TOOLDIR"
ini = get_ini inifilename section toolkey tooldefault
in if has_arg arg (if has_env env ini)
TooltempDir :: String
TooltempDir =:
let
(has_arg,arg) = get_arg "-tooltemp"
(has_env,env) = get_env "TOOLTEMP"
ini = get_ini inifilename section toolkey tooldefault
ini = get_ini inifilename section tooltempkey tooltempdefault
in if has_arg arg (if has_env env ini)
EnvsDir :: String
......
......@@ -259,14 +259,23 @@ GetLongPathName short_path = expand_8_3_names_in_path short_path;
GetShortPathName :: !String -> (!Bool,!String);
GetShortPathName long_path
#! s_short_path
= GetShortPathName_ long_path "\0" 0;
#! short_path
= createArray s_short_path '\0';
#! result
= GetShortPathName_ long_path short_path s_short_path;
#! long_path = if null_terminated long_path (long_path+++."\0")
#! (result,short_path) = Helper long_path
#! short_path = if null_terminated short_path (short_path%(0,size short_path - 2))
= (result <> 0,short_path);
where
lsize = size long_path
null_terminated = long_path.[lsize-1] == '\0'
Helper long_path
#! s_short_path
= GetShortPathName_ long_path "\0" 0;
#! short_path
= createArray s_short_path '\0';
#! result
= GetShortPathName_ long_path short_path s_short_path;
= (result,short_path)
GetShortPathName_ :: !String !String !Int -> !Int;
GetShortPathName_ long_path short_path s_short_path
= code {
......
......@@ -36,3 +36,4 @@ listToString :: [x] -> String | toString x
//instance toString (WItemHandle .ls .ps)
instance toString WElementHandle`
instance toString WItemHandle`
instance toString UpdateInfo
\ No newline at end of file
......@@ -190,3 +190,10 @@ instance toString WRecursiveKind where
toString IsWListLSHandle = "IsWListLSHandle"
toString IsWExtendLSHandle = "IsWExtendLSHandle"
toString IsWChangeLSHandle = "IsWChangeLSHandle"
instance toString UpdateInfo where
toString info = "{" +++ toString info.updWIDS.wPtr +++
"," +++ toString info.updWindowArea+++
// "," +++ toString info.updControls+++
"," +++ toString info.updGContext+++
"}"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment