Wize  Check-in [9703cc6ca0]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:init
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:9703cc6ca004051a091148443decfcc58f179ce94e423121f13449c3f8ed5cc8
User & Date: pmacdona 2018-06-03 01:41:09
Context
2018-06-03
17:54
Add home check-in: 886eb9b108 user: pmacdona tags: trunk
01:41
init check-in: 9703cc6ca0 user: pmacdona tags: trunk
00:19
initial empty check-in check-in: 2d064362a4 user: pmacdona tags: trunk
Changes

Added Apps.Apps.html.



















































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Apps / Apps </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Apps.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Apps.Apps' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Wize.Wize.html'>Wize</a>
</li></ul><hr />
<ul><li><a href='#games'>Games</a>
</li><li><a href='#util'>Utilities</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Apps.html'>Apps</a> /</div>
          <h1 class='pagetitle'>Apps</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>Applications</h1>
<p>Following are some Tk applications.
</p>
<p class='vspace'>Just download and <a class='wikilink' href='Wize.Running.html'>run</a>, eg:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize hangman.zip
</pre>
<p class='vspace'><a name='games' id='games'></a>
</p><h2>Games</h2>
<table border='1' class='optstbl' ><tr ><th  align='center'>Name</th><th  align='center'>Description</th><th  align='center'>Info</th></tr>
<tr ><td  align='left'>Download:backgammon.tcl</td><td  align='left'>The board game backgammon</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:bertspel.tcl</td><td  align='left'>Berts puzzle game</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:breakout.tcl</td><td  align='left'>Arcade style game of breakout</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:frogger.tcl</td><td  align='left'>Frog crosses road</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:hangman.zip</td><td  align='left'>Guess letters in word</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:puzzle.tcl</td><td  align='left'>Sliding puzzle game</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tetris-3.2.zip</td><td  align='left'>The classic game of tetris</td><td  align='left'><a class='urllink' href='/tcl/apps/doc/tetris.html' rel='nofollow'>html</a></td></tr>
</table>
<p class='vspace'><a name='util' id='util'></a>
</p><h2>Utilities</h2>
<table border='1' class='optstbl' ><tr ><th  align='center'>Name</th><th  align='center'>Description</th><th  align='center'>Info</th></tr>
<tr ><td  align='left'>Download:calculator.tcl</td><td  align='left'>A scientific calculator</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:calendar.tcl</td><td  align='left'>A calendar dialog/widget</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:hv3.zip</td><td  align='left'>A web browser</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:impress.zip</td><td  align='left'>Graphics layout program</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tkcon.tcl</td><td  align='left'>Tk command console</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tkdiff.tcl</td><td  align='left'>Diff two files side by side</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tomAmp.tcl</td><td  align='left'>An MP3 player ala freeAmp</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:wavesurfer-1.8.5.zip</td><td  align='left'>A sound visualization tool</td><td >&nbsp;</td></tr>
</table>
<div class='vspace'></div><h1>All Downloads</h1>
<p>(:attachlist:)
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Apps.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on June 12, 2009, at 08:19 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Apps.RecentChanges.html.



















































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Apps / RecentChanges </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Apps.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Apps.RecentChanges' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Wize.Wize.html'>Wize</a>
</li></ul><hr />
<ul><li><a href='#games'>Games</a>
</li><li><a href='#util'>Utilities</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Apps.html'>Apps</a> /</div>
          <h1 class='pagetitle'>RecentChanges</h1></div>
<!--PageText-->
<div id='wikitext'>
<ul><li><a class='wikilink' href='Apps.Apps.html'>Apps</a>  . . . June 12, 2009, at 08:19 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Apps.SideBar.html'>SideBar</a>  . . . June 10, 2009, at 10:03 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li></ul>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Apps.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on June 12, 2009, at 08:19 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Apps.SideBar.html.























































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Apps / SideBar </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Apps.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Apps.SideBar' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Wize.Wize.html'>Wize</a>
</li></ul><hr />
<ul><li><a href='#games'>Games</a>
</li><li><a href='#util'>Utilities</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Apps.html'>Apps</a> /</div>
          <h1 class='pagetitle'>SideBar</h1></div>
<!--PageText-->
<div id='wikitext'>
<ul><li><a class='wikilink' href='Wize.Wize.html'>Wize</a>
</li></ul><hr />
<ul><li><a href='#games'>Games</a>
</li><li><a href='#util'>Utilities</a>
</li></ul>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Apps.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on June 10, 2009, at 10:03 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Apps.html.



















































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Apps / Apps </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Apps.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Apps.Apps' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Wize.Wize.html'>Wize</a>
</li></ul><hr />
<ul><li><a href='#games'>Games</a>
</li><li><a href='#util'>Utilities</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Apps.html'>Apps</a> /</div>
          <h1 class='pagetitle'>Apps</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>Applications</h1>
<p>Following are some Tk applications.
</p>
<p class='vspace'>Just download and <a class='wikilink' href='Wize.Running.html'>run</a>, eg:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize hangman.zip
</pre>
<p class='vspace'><a name='games' id='games'></a>
</p><h2>Games</h2>
<table border='1' class='optstbl' ><tr ><th  align='center'>Name</th><th  align='center'>Description</th><th  align='center'>Info</th></tr>
<tr ><td  align='left'>Download:backgammon.tcl</td><td  align='left'>The board game backgammon</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:bertspel.tcl</td><td  align='left'>Berts puzzle game</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:breakout.tcl</td><td  align='left'>Arcade style game of breakout</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:frogger.tcl</td><td  align='left'>Frog crosses road</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:hangman.zip</td><td  align='left'>Guess letters in word</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:puzzle.tcl</td><td  align='left'>Sliding puzzle game</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tetris-3.2.zip</td><td  align='left'>The classic game of tetris</td><td  align='left'><a class='urllink' href='/tcl/apps/doc/tetris.html' rel='nofollow'>html</a></td></tr>
</table>
<p class='vspace'><a name='util' id='util'></a>
</p><h2>Utilities</h2>
<table border='1' class='optstbl' ><tr ><th  align='center'>Name</th><th  align='center'>Description</th><th  align='center'>Info</th></tr>
<tr ><td  align='left'>Download:calculator.tcl</td><td  align='left'>A scientific calculator</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:calendar.tcl</td><td  align='left'>A calendar dialog/widget</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:hv3.zip</td><td  align='left'>A web browser</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:impress.zip</td><td  align='left'>Graphics layout program</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tkcon.tcl</td><td  align='left'>Tk command console</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tkdiff.tcl</td><td  align='left'>Diff two files side by side</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:tomAmp.tcl</td><td  align='left'>An MP3 player ala freeAmp</td><td >&nbsp;</td></tr>
<tr ><td  align='left'>Download:wavesurfer-1.8.5.zip</td><td  align='left'>A sound visualization tool</td><td >&nbsp;</td></tr>
</table>
<div class='vspace'></div><h1>All Downloads</h1>
<p>(:attachlist:)
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Apps.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on June 12, 2009, at 08:19 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added CAPI.CAPI.html.









































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | CAPI / CAPI </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='CAPI.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='CAPI.CAPI' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Main.HomePage.html'>HomePage</a>
</li><li><a class='wikilink' href='Main.WikiSandbox.html'>WikiSandbox</a>
</li></ul><p class='vspace sidehead'> <a class='wikilink' href='PmWiki.PmWiki.html'>PmWiki</a>
</p><ul><li><a class='wikilink' href='PmWiki.InitialSetupTasks.html'>Initial Setup Tasks</a>  
</li><li><a class='wikilink' href='PmWiki.BasicEditing.html'>Basic Editing</a>
</li><li><a class='wikilink' href='PmWiki.DocumentationIndex.html'>Documentation Index</a>
</li><li><a class='wikilink' href='PmWiki.FAQ.html'>PmWiki FAQ</a>
</li><li><a class='wikilink' href='PmWiki.PmWikiPhilosophy.html'>PmWikiPhilosophy</a>
</li><li><a class='wikilink' href='PmWiki.ReleaseNotes.html'>Release Notes</a>
</li><li><a class='wikilink' href='PmWiki.ChangeLog.html'>ChangeLog</a>
</li></ul><p class='vspace sidehead'> <a class='urllink' href='http://www.pmwiki.org' rel='nofollow'>pmwiki.org</a>
</p><ul><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/CookbookBasics' rel='nofollow'>Cookbook (addons)</a>
</li><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/Skins' rel='nofollow'>Skins (themes)</a>
</li><li><a class='urllink' href='http://www.pmwiki.org/wiki/PITS/PITS' rel='nofollow'>PITS (issue tracking)</a>
</li><li><a class='wikilink' href='PmWiki.MailingLists.html'>Mailing Lists</a>
</li></ul><p class='vspace'  style='text-align: right;'> <span style='font-size:83%'><a class='wikilink' ''>edit SideBar</a></span>
</p>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='CAPI.html'>CAPI</a> /</div>
          <h1 class='pagetitle'>CAPI</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>CAPI</h1>
<p>CAPI is used to translate Tcl to C in order
to use the application programming interface in <a class='wikilink' href='Wize.Wize.html'>Wize</a>.
</p>
<p class='vspace'>CAPI differs from other approaches to auto-extending Tcl
(eg. <em>CRITCL</em>) due to its
focus on Tcl argument interface semantics.
Its goal
is to radically simplify translation and
provide
automatic argument unloading and type checking.
</p>
<p class='vspace'>CAPI accomplishes this by
leveraging on the <a class='wikilink' href='Wize.Types.html'>Types</a> facility built in to Wize.
This allows it to automatically
generates stub C code directly from a <a class='wikilink' href='Mod.Mod.html'>Mod</a> module,
without the writing of an explicit interface description file.
Argument checking comes for free and common
arguments are unloaded automatically.
</p>
<p class='vspace'>For example, suppose the following needs to be translated to C:
</p>
<div class='vspace'></div><pre class='escaped'>
# File math.tcl
package require Mod

namespace eval ::app::math {

  Mod export

  proc add {i j} {#TYPES: . Double Double
    # Add two doubles together.
    return [expr {$i+$j}]
  }

  proc sub {i j} {#TYPES: . Double Double
    # Subtract two doubles.
    return [expr {$i-$j}]
  }

}
</pre>
<p class='vspace'>The C extension can be generated thus:
</p>
<div class='vspace'></div><pre class='escaped'>
  capi math.tcl
  gcc -shared -o libappmath.so math.c
</pre>
<p class='vspace'>This generates the output file math.c which can then
be compiled and loaded into <strong>wize</strong>.
</p>
<div class='vspace'></div><h1>Code Body</h1>
<p>In order to be useful <em>math.c</em> must be edited to provide
required code bodies.  Unfortunately, all changes
will be lost upon regeneration.
</p>
<p class='vspace'>Alternatively, code bodies can be provided via
an array input file.  Thus
for the above example the input file might be:
</p>
<div class='vspace'></div><pre class='escaped'>
# "File main.inc"
::app::math::add {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i + arg_j));
}
::app::math::sub {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i - arg_j));
}
body {
  /* Code for body */
}
lib {
  /* Code for the library Init section. */
}
delete {
  /* Code for delete. */
}
vars {
  /* Custom vars for CmdEntry. */
  int cnt;
}


</pre>
<p class='vspace'>and invoked as:
</p>
<div class='vspace'></div><pre class='escaped'>
  capi math.tcl -impl math.inc
</pre>
<div class='vspace'></div><h1>Using It</h1>
<p>The loaded library will return the namespace.
This can be queried thus:
</p>
<div class='vspace'></div><pre class='escaped'>
  set ns [load ./libappmath.so]
  foreach i [info commands ${ns}::*] {
     puts "$i [extern $i]"
  }
  puts [::app::math::add 9 8]
</pre>
<p class='vspace'>which when run outputs
</p>
<div class='vspace'></div><pre class='escaped'>
  ::app::math::add {i j} {. Double Double} I {Add two doubles together.}
  ::app::math::sub {i j} {. Double Double} I {Subtract two doubles.}
  17
</pre>
<div class='vspace'></div><h1>Warnings</h1>
<p>A major advantage of using CAPI is that code using
it can be <a class='wikilink' href='Wize.Validation.html'>validated</a>, eg.
</p>
<div class='vspace'></div><pre class='escaped'>
# foo.tcl
load ./libappmath.so

proc Foo {} {
   return [app::math add 8 9 9]
}

proc Bar {} {
   return [app::math add x 9]
}
</pre>
<p class='vspace'>When run this outputs:
</p>
<div class='vspace'></div><pre class='escaped'>
  % wize -Wall foo.tcl
  /tmp/foo.tcl:5: warning: too many args, expected parameters
      {i j} for "app::math add 8 9 9" in proc [::Foo] &lt;args,30&gt;.
  /tmp/foo.tcl:9: warning: for argument #1 "i", the value "x"
      does not match type &lt;Double&gt;  for "app::math add x 9" in
      proc [::Bar] &lt;types,4&gt;.
</pre>
<div class='vspace'></div><h1>Options</h1>
<p>Following are the options for the <strong>capi</strong> command.
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><th >Option</th><th >Default</th><th >Description</th></tr>
<tr ><td >-impl</td><td >&nbsp;</td><td >Implementation file</td></tr>
<tr ><td >-iname</td><td >&nbsp;</td><td >Name to use for XXX_Init</td></tr>
<tr ><td >-ns</td><td >&nbsp;</td><td >Namespace to output code for</td></tr>
<tr ><td >-out</td><td >&nbsp;</td><td >Output file</td></tr>
<tr ><td >-wiz</td><td >True</td><td >Use wize typechecking api</td></tr>
</table>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='CAPI.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 16, 2009, at 06:29 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added CAPI.RecentChanges.html.









































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | CAPI / RecentChanges </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='CAPI.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='CAPI.RecentChanges' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Main.HomePage.html'>HomePage</a>
</li><li><a class='wikilink' href='Main.WikiSandbox.html'>WikiSandbox</a>
</li></ul><p class='vspace sidehead'> <a class='wikilink' href='PmWiki.PmWiki.html'>PmWiki</a>
</p><ul><li><a class='wikilink' href='PmWiki.InitialSetupTasks.html'>Initial Setup Tasks</a>  
</li><li><a class='wikilink' href='PmWiki.BasicEditing.html'>Basic Editing</a>
</li><li><a class='wikilink' href='PmWiki.DocumentationIndex.html'>Documentation Index</a>
</li><li><a class='wikilink' href='PmWiki.FAQ.html'>PmWiki FAQ</a>
</li><li><a class='wikilink' href='PmWiki.PmWikiPhilosophy.html'>PmWikiPhilosophy</a>
</li><li><a class='wikilink' href='PmWiki.ReleaseNotes.html'>Release Notes</a>
</li><li><a class='wikilink' href='PmWiki.ChangeLog.html'>ChangeLog</a>
</li></ul><p class='vspace sidehead'> <a class='urllink' href='http://www.pmwiki.org' rel='nofollow'>pmwiki.org</a>
</p><ul><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/CookbookBasics' rel='nofollow'>Cookbook (addons)</a>
</li><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/Skins' rel='nofollow'>Skins (themes)</a>
</li><li><a class='urllink' href='http://www.pmwiki.org/wiki/PITS/PITS' rel='nofollow'>PITS (issue tracking)</a>
</li><li><a class='wikilink' href='PmWiki.MailingLists.html'>Mailing Lists</a>
</li></ul><p class='vspace'  style='text-align: right;'> <span style='font-size:83%'><a class='wikilink' ''>edit SideBar</a></span>
</p>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='CAPI.html'>CAPI</a> /</div>
          <h1 class='pagetitle'>RecentChanges</h1></div>
<!--PageText-->
<div id='wikitext'>
<ul><li><a class='wikilink' href='CAPI.CAPI.html'>CAPI</a>  . . . November 16, 2009, at 06:29 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li></ul>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='CAPI.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 16, 2009, at 06:29 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added CAPI.html.









































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | CAPI / CAPI </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='CAPI.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='CAPI.CAPI' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='wikilink' href='Main.HomePage.html'>HomePage</a>
</li><li><a class='wikilink' href='Main.WikiSandbox.html'>WikiSandbox</a>
</li></ul><p class='vspace sidehead'> <a class='wikilink' href='PmWiki.PmWiki.html'>PmWiki</a>
</p><ul><li><a class='wikilink' href='PmWiki.InitialSetupTasks.html'>Initial Setup Tasks</a>  
</li><li><a class='wikilink' href='PmWiki.BasicEditing.html'>Basic Editing</a>
</li><li><a class='wikilink' href='PmWiki.DocumentationIndex.html'>Documentation Index</a>
</li><li><a class='wikilink' href='PmWiki.FAQ.html'>PmWiki FAQ</a>
</li><li><a class='wikilink' href='PmWiki.PmWikiPhilosophy.html'>PmWikiPhilosophy</a>
</li><li><a class='wikilink' href='PmWiki.ReleaseNotes.html'>Release Notes</a>
</li><li><a class='wikilink' href='PmWiki.ChangeLog.html'>ChangeLog</a>
</li></ul><p class='vspace sidehead'> <a class='urllink' href='http://www.pmwiki.org' rel='nofollow'>pmwiki.org</a>
</p><ul><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/CookbookBasics' rel='nofollow'>Cookbook (addons)</a>
</li><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/Skins' rel='nofollow'>Skins (themes)</a>
</li><li><a class='urllink' href='http://www.pmwiki.org/wiki/PITS/PITS' rel='nofollow'>PITS (issue tracking)</a>
</li><li><a class='wikilink' href='PmWiki.MailingLists.html'>Mailing Lists</a>
</li></ul><p class='vspace'  style='text-align: right;'> <span style='font-size:83%'><a class='wikilink' ''>edit SideBar</a></span>
</p>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='CAPI.html'>CAPI</a> /</div>
          <h1 class='pagetitle'>CAPI</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>CAPI</h1>
<p>CAPI is used to translate Tcl to C in order
to use the application programming interface in <a class='wikilink' href='Wize.Wize.html'>Wize</a>.
</p>
<p class='vspace'>CAPI differs from other approaches to auto-extending Tcl
(eg. <em>CRITCL</em>) due to its
focus on Tcl argument interface semantics.
Its goal
is to radically simplify translation and
provide
automatic argument unloading and type checking.
</p>
<p class='vspace'>CAPI accomplishes this by
leveraging on the <a class='wikilink' href='Wize.Types.html'>Types</a> facility built in to Wize.
This allows it to automatically
generates stub C code directly from a <a class='wikilink' href='Mod.Mod.html'>Mod</a> module,
without the writing of an explicit interface description file.
Argument checking comes for free and common
arguments are unloaded automatically.
</p>
<p class='vspace'>For example, suppose the following needs to be translated to C:
</p>
<div class='vspace'></div><pre class='escaped'>
# File math.tcl
package require Mod

namespace eval ::app::math {

  Mod export

  proc add {i j} {#TYPES: . Double Double
    # Add two doubles together.
    return [expr {$i+$j}]
  }

  proc sub {i j} {#TYPES: . Double Double
    # Subtract two doubles.
    return [expr {$i-$j}]
  }

}
</pre>
<p class='vspace'>The C extension can be generated thus:
</p>
<div class='vspace'></div><pre class='escaped'>
  capi math.tcl
  gcc -shared -o libappmath.so math.c
</pre>
<p class='vspace'>This generates the output file math.c which can then
be compiled and loaded into <strong>wize</strong>.
</p>
<div class='vspace'></div><h1>Code Body</h1>
<p>In order to be useful <em>math.c</em> must be edited to provide
required code bodies.  Unfortunately, all changes
will be lost upon regeneration.
</p>
<p class='vspace'>Alternatively, code bodies can be provided via
an array input file.  Thus
for the above example the input file might be:
</p>
<div class='vspace'></div><pre class='escaped'>
# "File main.inc"
::app::math::add {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i + arg_j));
}
::app::math::sub {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i - arg_j));
}
body {
  /* Code for body */
}
lib {
  /* Code for the library Init section. */
}
delete {
  /* Code for delete. */
}
vars {
  /* Custom vars for CmdEntry. */
  int cnt;
}


</pre>
<p class='vspace'>and invoked as:
</p>
<div class='vspace'></div><pre class='escaped'>
  capi math.tcl -impl math.inc
</pre>
<div class='vspace'></div><h1>Using It</h1>
<p>The loaded library will return the namespace.
This can be queried thus:
</p>
<div class='vspace'></div><pre class='escaped'>
  set ns [load ./libappmath.so]
  foreach i [info commands ${ns}::*] {
     puts "$i [extern $i]"
  }
  puts [::app::math::add 9 8]
</pre>
<p class='vspace'>which when run outputs
</p>
<div class='vspace'></div><pre class='escaped'>
  ::app::math::add {i j} {. Double Double} I {Add two doubles together.}
  ::app::math::sub {i j} {. Double Double} I {Subtract two doubles.}
  17
</pre>
<div class='vspace'></div><h1>Warnings</h1>
<p>A major advantage of using CAPI is that code using
it can be <a class='wikilink' href='Wize.Validation.html'>validated</a>, eg.
</p>
<div class='vspace'></div><pre class='escaped'>
# foo.tcl
load ./libappmath.so

proc Foo {} {
   return [app::math add 8 9 9]
}

proc Bar {} {
   return [app::math add x 9]
}
</pre>
<p class='vspace'>When run this outputs:
</p>
<div class='vspace'></div><pre class='escaped'>
  % wize -Wall foo.tcl
  /tmp/foo.tcl:5: warning: too many args, expected parameters
      {i j} for "app::math add 8 9 9" in proc [::Foo] &lt;args,30&gt;.
  /tmp/foo.tcl:9: warning: for argument #1 "i", the value "x"
      does not match type &lt;Double&gt;  for "app::math add x 9" in
      proc [::Bar] &lt;types,4&gt;.
</pre>
<div class='vspace'></div><h1>Options</h1>
<p>Following are the options for the <strong>capi</strong> command.
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><th >Option</th><th >Default</th><th >Description</th></tr>
<tr ><td >-impl</td><td >&nbsp;</td><td >Implementation file</td></tr>
<tr ><td >-iname</td><td >&nbsp;</td><td >Name to use for XXX_Init</td></tr>
<tr ><td >-ns</td><td >&nbsp;</td><td >Namespace to output code for</td></tr>
<tr ><td >-out</td><td >&nbsp;</td><td >Output file</td></tr>
<tr ><td >-wiz</td><td >True</td><td >Use wize typechecking api</td></tr>
</table>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='CAPI.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 16, 2009, at 06:29 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.About.html.













































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / About </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.About' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>About</h1></div>
<!--PageText-->
<div id='wikitext'>
<h2>About PDQ Interfaces Inc.</h2>
<p><em>PDQ Interfaces</em> is a company specializing in development with <strong>Tcl</strong>.  <em>PDQI</em> produces a number of tools tailored to make development with Tcl and Tk easier, faster and more reliable.  And, because Tcl is written in (and frequently extended by) <strong>C</strong>, <em>PDQI</em> tools also include support for low-level development.
</p>
<p class='vspace'><strong>PDQI</strong> addresses the issue that developers are forced to use too many different languages and environments in delivering applications.   These layers and the interfaces between them result in a top-heavy stack that is at once clumsy and unwieldy.   The problem spans virtually all areas and elements of application development, from desktop and embedded applications through to web development.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 05, 2007, at 07:22 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.AllRecentChanges.html.



































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / AllRecentChanges </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.AllRecentChanges' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>AllRecentChanges</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>Initial Release</h1>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on May 24, 2009, at 09:55 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Desktop.html.





































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Desktop </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Desktop' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Desktop</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>Defragmenting the Linux Desktop</h1>
<p>Several times each year a familiar cycle repeats itself
in the Linux world.
A new Linux distribution-release/widget-set/framework is
announced that is expected to
revolutionize the Linux desktop, and pave the way towards
world domination.
</p>
<p class='vspace'>The reality: Linux is still stuck in the same old rut.
No-one can agree on anything: Ubuntu vs Fedora/SUSE, KDE vs Gnome, 
and lately, Mono vs No-Mono.
It makes you want to scream
"nothing really ever changes".
</p>
<p class='vspace'>From an end users prespective it may seem that the problem
is really just an issue of getting that pesky printer or
camera working.  However, device driver support is really
just a symptom of a broader problem: supporting GUI software
at all in this Babylon we call Open Source.
</p>
<div class='vspace'></div><h1>GUI Bedlam</h1>
<p>Traditionally, Linux/unix evolves from a highly
developed command-line oriented
system.  GUI's are definitely an add on and there is
really no standard GUI to program applications against.
X11 is really to low-level of a protocol and time has proven
it is unsuitable for the development of sophisticated applications.
</p>
<p class='vspace'>This has resulted in the development of diverse widget
sets as a lot of squabbling over which is the best.
</p>
<div class='vspace'></div><h1>Evolving Distributions</h1>
<p>Distributions have evolved into complex beasts.
The've gone from providers of static of package
collections to dynamic repositories containing
many thousands of applications.
This is of necessity because Linux GUI applications
basically have little in the way of binary compatibility.
This means applications must be rebuilt for each distribution
and release.  However,
building applications in Linux typically require
managing many dependancies, and this is a major role
in provided by modern distributions.
</p>
<div class='vspace'></div><h1>The Development Cycle</h1>
<p>In the open source world an
application is updated by commiting it's changes
to the source repository.  Then it must wait for each
distribution to pick up these changes and update their own
repository.  Only then can users running a distribution
update their application.
</p>
<p class='vspace'>The problem here is that application distribution is out
of the developers control.  They can not push out a new release
without interfacing with the distributors.
They also can not easily release
multiple versions and let the user decide which version
to use.
</p>
<p class='vspace'>The process of changing an application in Linux requires that
source changes be picked up by each distribution,
rebuilt and the repositories updated.  It is not feasible
to for a developer to centrally rebuild and redistribute
an application.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on April 01, 2010, at 04:50 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.HomePage.html.













































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Wize / Wize </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Wize.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Wize.Wize' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='http://jsish.sourceforge.net' rel='nofollow'>Jsish</a>
</li><li><a class='selflink' href='Wize.Wize.html'>Wize</a>
<ul><li><a class='wikilink' href='Mod.Demos.html'>Demos</a>
</li><li><a class='wikilink' href='Wize.Features.html'>Features</a>
</li><li><a class='wikilink' href='Wize.Screenshots.html'>Screenshots</a>
</li><li><a class='wikilink' href='Wize.Getting.html'>Download</a>
</li><li><a class='wikilink' href='Wize.Blt.html'>Blt</a>
</li><li><a class='wikilink' href='Wize.Tutorial.html'>Tutorial</a>
</li><li><a class='urllink' href='/man/index.html' rel='nofollow'>Docs</a>
</li><li><a class='wikilink' href='Wize.Faq.html'>Faq</a>
</li><li><a class='wikilink' href='Wize.Sitemap.html'>Sitemap</a>
</li></ul></li><li><a class='wikilink' href='Mod.Mod.html'>Mod</a>
</li><li><a class='wikilink' href='Mod.Apps.html'>Apps</a>
</li><li><a class='createlinktext' rel='nofollow'
    ''>Contact</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Wize.html'>Wize</a> /</div>
          <h1 class='pagetitle'>Wize</h1></div>
<!--PageText-->
<div id='wikitext'>
<p><i>(redirected from <a rel='nofollow' 
    ''>Main.HomePage</a>)</i></p>
<h1>WIZE (Retired)</h1>
<p>Note that WIZE is no longer being worked on and that
<a class='urllink' href='http://jsish.org/jsi' rel='nofollow'>Jsish</a> is the target of all future development.
</p>
<div class='vspace'></div><h2>What is Wize?</h2>
<p><a class='wikilink' href='Wize.Getting.html' title='Click to download wize'>Wize</a> is a simplified application development environment.
It enables scripting of
complex, but portable GUI applications.
Wize is based on a
patched Tcl/Tk 8.5.9 with extensions such as Blt.  Wize uses the <a class='wikilink' href='Wize.License.html'>BSD license</a>.
</p>
<div class='vspace'></div><h2>What is BLT?</h2>
<p><a class='wikilink' href='Wize.Blt.html'>Blt</a> is an extension for Tcl/Tk that
provides a powerful tree widget and a tree data structure, eg.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/tdboptions.gif' rel='nofollow'><img height='100px' src='./w/Download/tdboptions.gif' alt='' /></a> </div>
<p class='vspace'>Blt has been heavily patch and updated for Tcl 8.5, and
is available for download separately from Wize.
</p>
<div class='vspace'></div><h2>What features does Wize provide?</h2>
<table border='1' class='optstbl' ><tr ><td  align='left'><a class='wikilink' href='Mod.Gui.html'>Gui</a></td><td >A User Interface layout and style <em>engine</em></td></tr>
<tr ><td  align='left'><a class='wikilink' href='Wize.Validation.html'>Validation</a></td><td >Builtin code checker</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Debugging.html'>Introspect</a></td><td >Builtin introspection of code and data</td></tr>
</table>
<div class='vspace'></div><h2>What applications does it include?</h2>
<p>The following GUI applications are included with Wize.
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><td  align='left'><a class='wikilink' href='Wize.Tdb.html'>Tdb</a></td><td >a debugger frontend for GDB</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Ted.Ted.html'>Ted</a></td><td >a Tcl-aware editor</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Guild.html'>Guild</a></td><td >a user interface builder for GUI</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Ledger.html'>Ledger</a></td><td >a home/office accounting app.</td></tr>
</table>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Wize.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on February 19, 2017, at 09:24 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.IP.html.











































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / IP </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.IP' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>IP</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>Intellectual Property for Peter MacDonald</h1>
<p>Following lists the software for which I am the author of, and hold copyrights
to, prior to
my employment at Quester Tangent on March 19, 2012:
</p>
<div class='vspace'></div><h2>PDQ:</h2>
<p>An application interface to C struct and enum data in embedded programs.
Features a Tcl enabled interface for accelerating testing and diagnostics
of embedded systems.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Pdq' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Pdq</a>
</p>
<div class='vspace'></div><h2>TNT:</h2>
<p>A Tree data structure for Tcl which provides automatic syncronization of
data to/from an SQLite database.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Tnt' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Tnt</a>
</p>
<div class='vspace'></div><h2>Wize:</h2>
<p>A Code Validator for Tcl.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Wize/Validation' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Wize/Validation</a>
</p><h2>BLT Widget:</h2>
<p>A rewrite of the Tk BLT widget.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Wize/Blt' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Wize/Blt</a>
</p><h2>GUI:</h2>
<p>A Graphical User Interface layout engine for Tk/Wize. 
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Gui' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Mod/Gui</a>.
</p><h2>Guild</h2>
<p>A user interface layout application.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Guild' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Mod/Guild</a>
</p><h2>TDB:</h2>
<p>A GDB debugger interface written in Tk/GUI.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Wize/Tdb' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Wize/Tdb</a>
</p><h2>GSqlite</h2>
<p>A database interface written in GUI/Tk.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Gsqlite' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Mod/Gsqlite</a>
</p><h2>Ledger:</h2>
<p>A finance program written in Tcl and Wize. 
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Ledger' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Mod/Ledger</a>
</p><h2>Browsex Web Browser:</h2>
<p>A Web Browser written in Tcl and using the Tkhtml 2.0 widget of which
I am also the author.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/browsex' rel='nofollow'>http://pdqi.com/browsex</a>
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on March 18, 2012, at 08:54 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.LoginPage.html.





































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / LoginPage </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.LoginPage' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>LoginPage</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:loginform:)
</p>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 30, 2007, at 02:23 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Pdq.html.





























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Pdq </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Pdq' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Pdq</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>PDQ</h1>
<p class='vspace'>The  pdq  command  provides access to enum and struct data from C and Tcl simultaneously.  It also provides hash tables of structs for managing  large  collections  of
data.  Hashes also support appending deltas (sub-struct data) to hash entries.
</p>
<p class='vspace'>Pdq  also  provides  data validation via checksum signatures added to structs.  This
increases application integrity, and simplifies transporting  data  in  and  out  of
closed systems.
</p>
<p class='vspace'>Note:  although  it  is  also possible to use just Tcl (without any C) to create and
manage structs, that is not the intended purpose of pdq.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/man/TclLib/pdq.htm' rel='nofollow'>PDQ Manual</a>
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on March 18, 2012, at 08:40 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.RecentChanges.html.





































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / RecentChanges </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.RecentChanges' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>RecentChanges</h1></div>
<!--PageText-->
<div id='wikitext'>
<ul><li><a class='createlinktext' rel='nofollow'
    ''>ContactPDQI</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . May 01, 2014, at 07:07 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.IP.html'>IP</a>  . . . March 18, 2012, at 08:54 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Tnt.html'>Tnt</a>  . . . March 18, 2012, at 08:43 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Pdq.html'>Pdq</a>  . . . March 18, 2012, at 08:40 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Status11.html'>Status11</a>  . . . November 08, 2011, at 03:11 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.SRED11.html'>SRED11</a>  . . . November 08, 2011, at 02:18 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Sched60.html'>Sched60</a>  . . . November 08, 2011, at 01:44 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Status10.html'>Status10</a>  . . . December 29, 2010, at 10:56 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.SRED10.html'>SRED10</a>  . . . December 09, 2010, at 03:32 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Tcl2010.html'>Tcl2010</a>  . . . November 26, 2010, at 09:17 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Desktop.html'>Desktop</a>  . . . April 01, 2010, at 04:50 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.SRED09.html'>SRED09</a>  . . . January 04, 2010, at 10:24 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Status09.html'>Status09</a>  . . . January 04, 2010, at 09:32 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Status08.html'>Status08</a>  . . . November 30, 2009, at 05:34 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.HomePage.html'>HomePage</a>  . . . June 06, 2009, at 08:09 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.AllRecentChanges.html'>AllRecentChanges</a>  . . . May 24, 2009, at 09:55 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.SideBar.html'>SideBar</a>  . . . May 15, 2009, at 07:13 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.TclMod.html'>TclMod</a>  . . . February 17, 2009, at 10:10 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.SRED08.html'>SRED08</a>  . . . January 27, 2009, at 10:30 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.Status07.html'>Status07</a>  . . . December 19, 2008, at 05:12 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.TclTk.html'>TclTk</a>  . . . September 05, 2008, at 08:54 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>TclIssues</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . September 05, 2008, at 09:06 AM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Status</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . January 23, 2008, at 03:54 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.About.html'>About</a>  . . . November 05, 2007, at 07:22 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Contacts</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . October 08, 2007, at 10:27 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Tcl-Tk</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . October 05, 2007, at 02:29 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>PayPal</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . October 01, 2007, at 09:16 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Register</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . September 30, 2007, at 02:38 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='wikilink' href='Main.LoginPage.html'>LoginPage</a>  . . . September 30, 2007, at 02:23 PM by <a class='wikilink' href='Profiles.Developer.html'>Developer</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Tod</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . September 24, 2007, at 11:30 AM by <a class='createlinktext' rel='nofollow'
    ''>ImportText</a><a rel='nofollow' 
    class='createlink' ''>?</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Ted</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 09, 2007, at 11:49 AM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>AboutAbout</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 09, 2007, at 11:47 AM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>TedTed</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 09, 2007, at 11:46 AM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Featues</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 09, 2007, at 09:17 AM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Keys</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 07, 2007, at 07:22 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>Editor</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 06, 2007, at 07:54 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>TCLDebugger</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 05, 2007, at 02:25 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>WTCLDebugger</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 05, 2007, at 02:05 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>FAQ</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 05, 2007, at 02:01 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>WTCLDEBUGGER</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 05, 2007, at 01:51 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li><li><a class='createlinktext' rel='nofollow'
    ''>TedIDE</a><a rel='nofollow' 
    class='createlink' ''>?</a>  . . . June 05, 2007, at 01:34 PM by <a class='wikilink' href='Profiles.PCM.html'>PCM</a>: 
</li></ul>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on May 01, 2014, at 07:07 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.SRED08.html.

















































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / SRED08 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.SRED08' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>SRED08</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
Source Page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/SRED08' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/SRED08</a>
</p>
<div class='vspace'></div><h1>240. Advancements</h1>
<p><strong>What technological advancements were you trying to achieve.</strong>
</p>
<p class='vspace'>User software in Windows, Linux and other operating systems is hobbled by excessive complexity
associated with implementing Graphical User Interfaces <em>(GUI)</em>.
A GUI is generally implemented by using a
(usually large)
development <strong>environment</strong> such as
<a class='urllink' href='http://www.windows.com' rel='nofollow'>Microsoft Windows</a> or, on the <strong>Linux</strong> side, <a class='urllink' href='http://www.gnome.org' rel='nofollow'>Gnome</a> or <a class='urllink' href='http://www.kde.org' rel='nofollow'>KDE</a>.   This imports a large set of dependencies
that act to undermine stability, maintainability and portability of software.
</p>
<p class='vspace'>In the area of free operating systems software <em>(FOSS)</em>
such as Linux, these dependencies
are proving to be crippling.  This is because, unlike Mac/Windows, a Linux GUI application requires pre-building for each individual distribution and/or release, of which there are hundreds.
Moreover, there is little backward compatibiltiy, meaning that Linux applications require frequent
rewrites as the used environment (<em>KDE</em> or <em>Gnome</em>) evolves.
Worst of all, virtually none of these
applications can be made to easily run on MS Windows, even though
that is where most computer users are.
To emphasize this point, one notes that of
the two most successful
FOSS applications <a class='urllink' href='http://www.firefox.com' rel='nofollow'>Firefox</a> and <a class='urllink' href='http://www.openoffice.org' rel='nofollow'>OpenOffice</a>, neither uses <em>KDE</em> or <em>Gnome</em>.
</p>
<p class='vspace'>Thus the goal of this project
is to develop an idealized GUI framework that enables software developers to escape this complexity and focus more on problems at hand.
To wit, this requires a
GUI implementation that:
</p>
<div class='vspace'></div><ul><li>Reduces dependencies to a single program with some optional DLL's.
</li><li>Provides rapid GUI development using <em>XML/<a class='wikilink' href='Mod.XTL.html'>XTL</a></em> inputs.
</li><li>Separates GUI <em>layout</em> from <em>style</em> in a fashion akin to HTML/CSS.
</li><li>Adds fault tolerance by employing <em>warnings</em> rather than <em>errors</em>.
</li></ul><div class='vspace'></div><h1>242. Obstacles</h1>
<p><strong>What technological obstacles did you need to overcome to achieve those advancements.</strong>
</p>
<p class='vspace'>Tcl/Tk was selected for use in this implementation for it
provides a language with a GUI widget set, and has been included
with most Linux distributions since 1994.
However, Tcl/Tk suffers from 
several long standing issues.  Specifically:
</p>
<div class='vspace'></div><ul><li>The Tcl language has almost no validation facilities.
</li><li>There is no clear modularization for Tcl applications.
</li><li>The Tk widgets are incomplete and difficult to use.
</li><li>A Tk application ends up more not less complex than, say, a compiled KDE one.
</li><li>Tcl/Tk requires a complex install, as does an application written in it.
</li></ul><p class='vspace'>Accordingly, here are the obstacles that must be overcome in this project:
</p>
<div class='vspace'></div><ul><li>Providing validation and type-checking for the Tcl language.
</li><li>Enhancement and addition of widgets to meet requirements of sophisticated GUIs.
</li><li>Implementation of a GUI layout abstraction for reducing complexity.
</li><li>Develop a clear and simple Module application framework.
</li><li>Implement an installation-free executable/zip-archive hybrid.
</li></ul><p class='vspace'>Moreover, beyond simply providing a framework, the project must include
several non-trivial and working demonstration applications.
</p>
<div class='vspace'></div><h1>244. Work</h1>
<p><strong>What work did you perform in the tax year to overcome those technological obstacles.</strong>
</p>
<p class='vspace'>See <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status08' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status08</a>
</p>
<div class='vspace'></div><h1>250. Knowledge</h1>
<p><strong>Describe the scientific knowledge that you were trying to advance.</strong>
</p>
<p class='vspace'>GUI application development has become so difficult that many 
software companies have abandoned it entirely in favor of <em>HTML</em>.
The advantage of the HTML application model is that it is <em>stateless</em> on the client side.
And initially this has proven a boon to developers since it greatly
simplifies the development and deployment problems.  However,
as more and more
sophistication is demanded over time, <em>statefull</em> technologies such as <em>AJAX</em> are adopted,
which leads HTML development to become ever more complex
and intractable on the server side.
And due to this complexity,
HTML and Web technologies do not really offer a comprehensive
replacement for desktop applications.
</p>
<p class='vspace'>Thus the scientific knowledge being sought
in this project is a way
to reducing the complexity
associated with development of desktop GUI applications,
without compromising either their power or performance.  To
impart to desktop applications
some of the simplicity, reliability and portability that has come to be
expected with HTML application development, and make the experience of developing
a GUI applications similar to that of developing in HTML.
Thus, for example, errors in stylistic elements of an application should simply
be treated as inconsequential warnings rather than application terminating events.
</p>
<div class='vspace'></div><h1>252. Summary</h1>
<p><strong>Summarize the work completed in the tax year and explain how that work contributed to the scientific knowledge.</strong>
</p>
<p class='vspace'>Some of the work in this year has arisen from integrating the
discrete components, which were developed in prior years.
This in turn required
a certain amount of re-engineering to ensure that all pieces meshed together
seemlessly.  The changes include rewrites of <a class='createlinktext' rel='nofollow'
    ''>TOD</a><a rel='nofollow' 
    class='createlink' ''>?</a>, <a class='wikilink' href='Mod.Gui.html'>Gui</a> and
<a class='wikilink' href='Mod.Mod.html'>Mod</a>.
</p>
<p class='vspace'>But many of the changes have come about as a result of
development of the new <a class='wikilink' href='Mod.Styles.html'>Styles</a>.
Styles, although modeled loosely after <em>CSS</em>, uses pattern matching
rather than to strict <em>ID</em> and <em>CLASS</em> name comparison.  Furthermore,
styles are hierarchical.  This enables developers
to generate GUI applications that are structured according to patterned templates rather than
fixed declarations.
</p>
<p class='vspace'>Two such applications have been written as demonstration using style:
</p>
<div class='vspace'></div><ul><li>A simple tabbed editor <a class='createlinktext' rel='nofollow'
    ''>geditor</a><a rel='nofollow' 
    class='createlink' ''>?</a>.
</li><li>An Sqlite database GUI front-end <a class='createlinktext' rel='nofollow'
    ''>gsqlite</a><a rel='nofollow' 
    class='createlink' ''>?</a>.
</li></ul><p class='vspace'>Use of <em>style</em> and <em>GUI</em> in these applications reveals just how much
of an application is given over to managing stylistic elements and layout.
Despite the fact that both of these are full functioning applications,
they are under 400 and 700 lines respectively.  And both:
</p>
<div class='vspace'></div><ul><li>support complex use of styles, icons and tiled backgrounds.
</li><li>support multiple instances, private data and dialogs.
</li><li>are written in clearly structured, maintainable and extensible code.
</li><li>run on Windows and Linux unchanged and without compiling.
</li></ul><p class='vspace'>Thus is demonstrated
that, with appropriate choices, it is possible to escape the cycle of complexity
and dependency that plagues GUI applications on the desktop.
That applications can be written once, and run everywhere,
as was promised but not delivered by Java.
And that the propensity to compile GUI applications
against huge framework environments is indeed
short sighted.
</p>
<p class='vspace'>If all this can be achieved, then
developers, and in particular FOSS developers can be freed from the
constraints of excessive complexity.
And much more sophisticated
applications should be developable
and deployable on the
desktop.
And quality
should be higher as a higher percentage of
software users become contributors and maintainers.
Then perhaps at last, Linux can make some serious in-roads into
the desktop segment.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 27, 2009, at 10:30 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.SRED09.html.





































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / SRED09 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.SRED09' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>SRED09</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
Source Page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/SRED09' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/SRED09</a>
</p>
<div class='vspace'></div><h1>240. Advancements</h1>
<p><strong>What technological advancements were you trying to achieve.</strong>
</p>
<p class='vspace'>User software in Windows, Linux and other operating systems is hobbled by excessive complexity
associated with implementing Graphical User Interfaces <em>(GUI)</em>.
A GUI is generally implemented by using a
(usually large)
development <strong>environment</strong> such as
<a class='urllink' href='http://www.windows.com' rel='nofollow'>Microsoft Windows</a> or, on the <strong>Linux</strong> side, <a class='urllink' href='http://www.gnome.org' rel='nofollow'>Gnome</a> or <a class='urllink' href='http://www.kde.org' rel='nofollow'>KDE</a>.   This imports a large set of dependencies
that act to undermine stability, maintainability and portability of software.
</p>
<p class='vspace'>In the area of Free Operating Systems Software <em>(FOSS)</em>
such as Linux, these dependencies
are proving to be crippling.  This is because, unlike the Mac or Windows, Linux has no binary compatibility and
so GUI applications require pre-building for each individual distribution and/or release <em>(of which there are hundreds)</em>.
Moreover, there is really no backward compatibiltiy, which
means Linux applications require frequent
rewrites due to evolutional changes in
<em>KDE</em> or <em>Gnome</em>.
Worst of all, virtually none of these
applications can be made to easily run on MS Windows, even though
that is what most computer users use.
To emphasize this point, one notes that of
the two most successful
FOSS applications <a class='urllink' href='http://www.firefox.com' rel='nofollow'>Firefox</a> and <a class='urllink' href='http://www.openoffice.org' rel='nofollow'>OpenOffice</a>, neither uses <em>KDE</em> or <em>Gnome</em>.
</p>
<p class='vspace'>Thus the goal of this project
is to develop an idealized GUI framework that enables software developers to escape this complexity and focus more on problems at hand.
To wit, this requires a
GUI implementation that:
</p>
<div class='vspace'></div><ul><li>Reduces dependencies to a single program with some optional DLL's.
</li><li>Provides rapid GUI development using <em>XML/<a class='wikilink' href='Mod.XTL.html'>XTL</a></em> inputs.
</li><li>Separates GUI <em>layout</em> from <em>style</em> in a fashion akin to HTML/CSS.
</li><li>Adds fault tolerance by employing <em>warnings</em> rather than <em>errors</em>.
</li><li>Reduces the startup learning curve inherent with GUI environments.
</li></ul><div class='vspace'></div><h1>242. Obstacles</h1>
<p><strong>What technological obstacles did you need to overcome to achieve those advancements.</strong>
</p>
<p class='vspace'>Tcl/Tk was selected for use in this implementation as it
provides a language with a GUI widget set, and has been included
with most Linux distributions since 1994.
However, Tcl/Tk suffers from 
several long standing issues.  Specifically:
</p>
<div class='vspace'></div><ul><li>The Tcl language has almost no validation facilities.
</li><li>There is no clear modularization for Tcl applications.
</li><li>The Tk widgets are incomplete and difficult to use.
</li><li>A Tk application ends up more not less complex than, say, a compiled KDE one.
</li><li>Tcl/Tk requires a complex install, as does an application written in it.
</li></ul><p class='vspace'>Accordingly, the following obstacles had to be overcome:
</p>
<div class='vspace'></div><ul><li>Providing validation and type-checking for the Tcl language.
</li><li>Enhancement and addition of widgets to meet requirements of sophisticated GUIs.
</li><li>Implement a GUI layout abstraction for reducing complexity.
</li><li>Develop a clear and simple Module application framework.
</li><li>Implement an installation-free executable/zip-archive hybrid.
</li></ul><p class='vspace'>Moreover, beyond simply providing a framework, the project must include working demonstrations that provide
a representative range of applications.
</p>
<div class='vspace'></div><h1>244. Work</h1>
<p><strong>What work did you perform in the tax year to overcome those technological obstacles.</strong>
</p>
<p class='vspace'>See <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status09' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status09</a>
</p>
<div class='vspace'></div><h1>250. Knowledge</h1>
<p><strong>Describe the scientific knowledge that you were trying to advance.</strong>
</p>
<p class='vspace'>GUI application development has become so difficult that many 
software companies have abandoned it entirely in favor of <em>HTML</em>.
The advantage of the HTML application model is that it is <em>stateless</em> on the client side.
And initially this has proven a boon to developers since it greatly
simplifies the development and deployment problems.  However,
as more and more
sophistication is demanded over time, <em>stateful</em> technologies such as <em>AJAX</em> are adopted,
which leads HTML development to become ever more complex
and intractable on the server side.
And due to this complexity,
HTML and Web technologies do not really offer a comprehensive
replacement for desktop applications.
</p>
<p class='vspace'>Thus the scientific knowledge being sought
in this project is a way
to reducing the complexity
associated with development of desktop GUI applications,
without compromising either their power or performance.  To
impart to desktop applications
some of the simplicity, reliability and portability that has come to be
expected with HTML application development, and to make the experience of developing
a GUI applications similar to that of developing in HTML.
Thus, for example, errors in stylistic elements of an application should simply
be treated as inconsequential warnings rather than application terminating events.
</p>
<div class='vspace'></div><h1>252. Summary</h1>
<p><strong>Summarize the work completed in the tax year and explain how that work contributed to the scientific knowledge.</strong>
</p>
<p class='vspace'>Much of the work in this year involved integration and
fine tuning components developed in prior years.
This required
a certain amount of re-engineering to ensure that all pieces meshed together
seemlessly.  The changes include rewrites of <a class='wikilink' href='Mod.Gui.html'>Gui</a>, <a class='wikilink' href='Mod.Styles.html'>Styles</a>, and <a class='wikilink' href='Mod.Mod.html'>Mod</a> and the completion of a large number
of support components, and particularly revisions
to <a class='wikilink' href='Wize.TreeView.html'>TreeView</a>.
</p>
<p class='vspace'>This process has been driven by the development of
the following application <a class='wikilink' href='Mod.Demos.html'>Demos</a>:
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><th  align='center'>Application</th><th  align='center'>Description</th></tr>
<tr ><td ><a class='wikilink' href='Mod.Gedit.html'>gedit.tcl</a></td><td >A basic Gui based editor.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Geditor.html'>geditor.tcl</a></td><td >A more sophisticated editor.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Bigtable.html'>bigtable.gui</a></td><td >A large table demo.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gradient.html'>gradient.gui</a></td><td >A gradient image editor</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Top.html'>top.gui</a></td><td >A Gui frontend to unix top</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gsqlite.html'>gsqlite.tcl</a></td><td >A Gui base sqlite manager</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Mail.html'>mail.gui</a></td><td >An email user interface</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Manview.html'>manview.tcl</a></td><td >A unix manpage viewer.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gphoto.html'>gphoto.tcl</a></td><td >Photo viewer</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gexplore.html'>gexplore.tcl</a></td><td >Start of a filesystem viewer</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Round.html'>round.gui</a></td><td >Simple rounded frames demo.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Sframe.html'>sframe.gui</a></td><td >Simple scrolled frames demo.</td></tr>
</table>
<p class='vspace'>These applications represent a wide range of disparate
functionality.  They all:
</p>
<div class='vspace'></div><ul><li>support complex use of styles, icons and tiled backgrounds.
</li><li>support multiple instances, private data and dialogs.
</li><li>are written in clearly structured, maintainable and extensible code.
</li><li>run on Windows and Linux unchanged and without compiling.
</li></ul><p class='vspace'>Gui applications now contain no extraneous details
and the user implementation has been paired down to a few
easily remembered conventions.
</p>
<p class='vspace'>Also achieved in this year is the building up of
documentation at: <a class='urllink' href='http://pdqi.com' rel='nofollow'>http://pdqi.com</a>.
</p>
<p class='vspace'>Thus is demonstrated
that, with appropriate choices, it is possible to escape the cycle of complexity
and dependency that plagues GUI applications on the desktop.
That applications can be written once, and run everywhere,
as was promised but not delivered by Java.
And that the propensity to compile GUI applications
against huge framework environments is indeed
short sighted.
</p>
<p class='vspace'>If all this can be achieved, then
developers, and in particular FOSS developers can be freed from the
constraints of excessive complexity.
And much more sophisticated
applications should be developable
and deployable on the
desktop.
And quality
should be higher as a higher percentage of
software users become contributors and maintainers.
Then perhaps at last, Linux can make some serious in-roads into
the desktop segment.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 04, 2010, at 10:24 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.SRED10.html.









































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / SRED10 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.SRED10' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>SRED10</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
Source Page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/SRED10' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/SRED10</a>
</p>
<div class='vspace'></div><h1>240. Advancements</h1>
<p><strong>What technological advancements were you trying to achieve.</strong>
</p>
<p class='vspace'>User software in Windows, Linux and other operating systems is hobbled by excessive complexity
associated with implementing Graphical User Interfaces <em>(GUI)</em>.
A GUI is generally implemented by using a
(usually large)
development <strong>environment</strong> such as
<a class='urllink' href='http://www.windows.com' rel='nofollow'>Microsoft Windows</a> or, on the <strong>Linux</strong> side, <a class='urllink' href='http://www.gnome.org' rel='nofollow'>Gnome</a> or <a class='urllink' href='http://www.kde.org' rel='nofollow'>KDE</a>.   This imports a large set of dependencies
that act to undermine stability, maintainability and portability of software.
</p>
<p class='vspace'>In the area of Free Operating Systems Software <em>(FOSS)</em>
such as Linux, these dependencies
are proving to be crippling.  This is because, unlike the Mac or Windows, Linux has no binary compatibility and
so GUI applications require pre-building for each individual distribution and/or release <em>(of which there are hundreds)</em>.
Moreover, there is really no backward compatibiltiy, which
means Linux applications require frequent
rewrites due to evolutional changes in
<em>KDE</em> or <em>Gnome</em>.
Worst of all, virtually none of these
applications can be made to easily run on MS Windows, even though
that is what most computer users use.
To emphasize this point, one notes that of
the two most successful
FOSS applications <a class='urllink' href='http://www.firefox.com' rel='nofollow'>Firefox</a> and <a class='urllink' href='http://www.openoffice.org' rel='nofollow'>OpenOffice</a>, neither uses <em>KDE</em> or <em>Gnome</em>.
</p>
<p class='vspace'>Thus the goal of this project
is to develop an idealized GUI framework that enables software developers to escape this complexity and focus more on problems at hand.
To wit, this requires a
GUI implementation that:
</p>
<div class='vspace'></div><ul><li>Reduces dependencies to a single program with some optional DLL's.
</li><li>Provides rapid GUI development using <em>XML/<a class='wikilink' href='Mod.XTL.html'>XTL</a></em> inputs.
</li><li>Separates GUI <em>layout</em> from <em>style</em> in a fashion akin to HTML/CSS.
</li><li>Adds fault tolerance by employing <em>warnings</em> rather than <em>errors</em>.
</li><li>Reduces the startup learning curve inherent with GUI environments.
</li></ul><div class='vspace'></div><h1>242. Obstacles</h1>
<p><strong>What technological obstacles did you need to overcome to achieve those advancements.</strong>
</p>
<p class='vspace'>Tcl/Tk was selected for use in this implementation as it
provides a language with a GUI widget set, and has been included
with most Linux distributions since 1994.
However, Tcl/Tk suffers from 
several long standing issues.  Specifically:
</p>
<div class='vspace'></div><ul><li>The Tcl language has almost no validation facilities.
</li><li>There is no clear modularization for Tcl applications.
</li><li>The Tk widgets are incomplete and difficult to use.
</li><li>A Tk application ends up more not less complex than, say, a compiled KDE one.
</li><li>Tcl/Tk requires a complex install, as does an application written in it.
</li></ul><p class='vspace'>Accordingly, the following obstacles had to be overcome:
</p>
<div class='vspace'></div><ul><li>Providing validation and type-checking for the Tcl language.
</li><li>Enhancement and addition of widgets to meet requirements of sophisticated GUIs.
</li><li>Implement a GUI layout abstraction for reducing complexity.
</li><li>Develop a clear and simple Module application framework.
</li><li>Implement an installation-free executable/zip-archive hybrid.
</li></ul><p class='vspace'>Moreover, beyond simply providing a framework, the project must include working demonstrations that provide
a representative range of applications.
</p>
<div class='vspace'></div><h1>244. Work</h1>
<p><strong>What work did you perform in the tax year to overcome those technological obstacles.</strong>
</p>
<p class='vspace'>See <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status10' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status10</a>
</p>
<div class='vspace'></div><h1>250. Knowledge</h1>
<p><strong>Describe the scientific knowledge that you were trying to advance.</strong>
</p>
<p class='vspace'>GUI application development has become so difficult that many 
software companies have abandoned it entirely in favor of <em>HTML</em>.
The advantage of the HTML application model is that it is <em>stateless</em> on the client side.
And initially this has proven a boon to developers since it greatly
simplifies the development and deployment problems.  However,
as more and more
sophistication is demanded over time, <em>stateful</em> technologies such as <em>AJAX</em> are adopted,
which leads HTML development to become ever more complex
and intractable on the server side.
And due to this complexity,
HTML and Web technologies do not really offer a comprehensive
replacement for desktop applications.
</p>
<p class='vspace'>Thus the scientific knowledge being sought
in this project is a way
to reducing the complexity
associated with development of desktop GUI applications,
without compromising either their power or performance.  To
impart to desktop applications
some of the simplicity, reliability and portability that has come to be
expected with HTML application development, and to make the experience of developing
a GUI applications similar to that of developing in HTML.
Thus, for example, errors in stylistic elements of an application should simply
be treated as inconsequential warnings rather than application terminating events.
</p>
<div class='vspace'></div><h1>252. Summary</h1>
<p><strong>Summarize the work completed in the tax year and explain how that work contributed to the scientific knowledge.</strong>
</p>
<p class='vspace'>Much of the work in this year involved developing applications
using the GUI
framework developed in prior years.  These applications include:
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><td  align='left'><a class='wikilink' href='Wize.Tdb.html'>Tdb</a></td><td >a debugger frontend for GDB</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Ted.Ted.html'>Ted</a></td><td >a Tcl-aware editor</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Guild.html'>Guild</a></td><td >a user interface builder for GUI</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Ledger.html'>Ledger</a></td><td >a home/office accounting app.</td></tr>
</table>
<p class='vspace'>These applications represent a wide range of disparate
functionality.  In turn, the problems and challenges encountered
with this development has fed back changes into the framework itself.
</p>
<p class='vspace'>In addition, new features such as CAPI and TTK have been added to Wize.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on December 09, 2010, at 03:32 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.SRED11.html.























































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / SRED11 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.SRED11' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>SRED11</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
Source Page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/SRED11' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/SRED11</a>
</p>
<div class='vspace'></div><h1>240. Advancements</h1>
<p><strong>What technological advancements were you trying to achieve.</strong>
</p>
<p class='vspace'>User software in Windows, Linux and other operating systems is hobbled by excessive complexity
associated with implementing Graphical User Interfaces <em>(GUI)</em>.
A GUI is generally implemented by using a
(usually large)
development <strong>environment</strong> such as
<a class='urllink' href='http://www.windows.com' rel='nofollow'>Microsoft Windows</a> or, on the <strong>Linux</strong> side, <a class='urllink' href='http://www.gnome.org' rel='nofollow'>Gnome</a> or <a class='urllink' href='http://www.kde.org' rel='nofollow'>KDE</a>.   This imports a large set of dependencies
that act to undermine stability, maintainability and portability of software.
</p>
<p class='vspace'>In the area of Free Operating Systems Software <em>(FOSS)</em>
such as Linux, these dependencies
are proving to be crippling.  This is because, unlike the Mac or Windows, Linux has no binary compatibility and
so GUI applications require pre-building for each individual distribution and/or release <em>(of which there are hundreds)</em>.
Moreover, there is really no backward compatibiltiy, which
means Linux applications require frequent
rewrites due to evolutional changes in
<em>KDE</em> or <em>Gnome</em>.
Worst of all, virtually none of these
applications can be made to easily run on MS Windows, even though
that is what most computer users use.
To emphasize this point, one notes that of
the two most successful
FOSS applications <a class='urllink' href='http://www.firefox.com' rel='nofollow'>Firefox</a> and <a class='urllink' href='http://www.openoffice.org' rel='nofollow'>OpenOffice</a>, neither uses <em>KDE</em> or <em>Gnome</em>.
</p>
<p class='vspace'>Thus the goal of this project
is to develop an idealized GUI framework that enables software developers to escape this complexity and focus more on problems at hand.
To wit, this requires a
GUI implementation that:
</p>
<div class='vspace'></div><ul><li>Reduces dependencies to a single program with some optional DLL's.
</li><li>Provides rapid GUI development using <em>XML/<a class='wikilink' href='Mod.XTL.html'>XTL</a></em> inputs.
</li><li>Separates GUI <em>layout</em> from <em>style</em> in a fashion akin to HTML/CSS.
</li><li>Adds fault tolerance by employing <em>warnings</em> rather than <em>errors</em>.
</li><li>Reduces the startup learning curve inherent with GUI environments.
</li></ul><div class='vspace'></div><h1>242. Obstacles</h1>
<p><strong>What technological obstacles did you need to overcome to achieve those advancements.</strong>
</p>
<p class='vspace'>Tcl/Tk was selected for use in this implementation as it
provides a language with a GUI widget set, and has been included
with most Linux distributions since 1994.
However, Tcl/Tk suffers from 
several long standing issues.  Specifically:
</p>
<div class='vspace'></div><ul><li>The Tcl language has almost no validation facilities.
</li><li>There is no clear modularization for Tcl applications.
</li><li>The Tk widgets are incomplete and difficult to use.
</li><li>A Tk application ends up more not less complex than, say, a compiled KDE one.
</li><li>Tcl/Tk requires a complex install, as does an application written in it.
</li></ul><p class='vspace'>Accordingly, the following obstacles had to be overcome:
</p>
<div class='vspace'></div><ul><li>Providing validation and type-checking for the Tcl language.
</li><li>Enhancement and addition of widgets to meet requirements of sophisticated GUIs.
</li><li>Implement a GUI layout abstraction for reducing complexity.
</li><li>Develop a clear and simple Module application framework.
</li><li>Implement an installation-free executable/zip-archive hybrid.
</li></ul><p class='vspace'>Moreover, beyond simply providing a framework, the project must include working demonstrations that provide
a representative range of applications.
</p>
<div class='vspace'></div><h1>244. Work</h1>
<p><strong>What work did you perform in the tax year to overcome those technological obstacles.</strong>
</p>
<p class='vspace'>See <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status11' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status11</a>
</p>
<div class='vspace'></div><h1>250. Knowledge</h1>
<p><strong>Describe the scientific knowledge that you were trying to advance.</strong>
</p>
<p class='vspace'>GUI application development has become so difficult that many 
software companies have abandoned it entirely in favor of <em>HTML</em>.
The advantage of the HTML application model is that it is <em>stateless</em> on the client side.
And initially this has proven a boon to developers since it greatly
simplifies the development and deployment problems.  However,
as more and more
sophistication is demanded over time, <em>stateful</em> technologies such as <em>AJAX</em> are adopted,
which leads HTML development to become ever more complex
and intractable on the server side.
And due to this complexity,
HTML and Web technologies do not really offer a comprehensive
replacement for desktop applications.
</p>
<p class='vspace'>Thus the scientific knowledge being sought
in this project is a way
to reducing the complexity
associated with development of desktop GUI applications,
without compromising either their power or performance.  To
impart to desktop applications
some of the simplicity, reliability and portability that has come to be
expected with HTML application development, and to make the experience of developing
a GUI applications similar to that of developing in HTML.
Thus, for example, errors in stylistic elements of an application should simply
be treated as inconsequential warnings rather than application terminating events.
</p>
<div class='vspace'></div><h1>252. Summary</h1>
<p><strong>Summarize the work completed in the tax year and explain how that work contributed to the scientific knowledge.</strong>
</p>
<p class='vspace'>The work in this year involved adding
a few new features, fixing bugs, finalizing the packaging and releasing
Wize.  In addition, the following application was added:
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><td  align='left'><a class='wikilink' href='Mod.Slider.html'>Slider</a></td><td >a presentation program.</td></tr>
</table>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 08, 2011, at 02:18 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Sched60.html.























































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Sched60 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Sched60' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Sched60</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>240. Advancements</h1>
<p><strong>What technological advancements were you trying to achieve.</strong>
</p>
<p class='vspace'>Software for Linix and other operating systems is hobbled by excessive complexity
associated with implementing Graphical User Interfaces <em>(GUIs)</em>.
In general, implementing a GUI implies the adoption of a very large
development <strong>environment</strong> such as <em>Microsoft Windows</em> or (on the <em>Linix</em> side) <em>KDE</em> and <em>Gnome</em> .  This in turn imposes a large set of dependancies
which work to undermine the stability, maintainability and portability of
software.
</p>
<p class='vspace'>In the arena of free operating systems software <em>(FOSS)</em>
such as Linux, these dependancies
have turned out to be crippling.  Linux GUI applications now require precompiling,
not only for individual distributions (of which there are hundreds), but also
for each release within a distribution.  Moreover, these applications frequently
require a rewrite as the used environments (<em>KDE</em> or <em>Gnome</em>) evolve.
And worst of all, virtually none of these
applications will work on MS Windows;  This despite the fact that most computer
professionals are required to do so at one time or another.
</p>
<p class='vspace'>To emphasize this point, we can note the fact that neither of
the two most successful
FOSS applications, <strong>Firefox</strong> and <em>OpenOffice</em>' use <em>KDE</em>
no <em>Gnome</em>.
</p>
<p class='vspace'>Therefore, this project is an attempt to right this situation. To eliminate or
minimize these constraints by:
</p>
<div class='vspace'></div><ul><li>Reducing dependancies to a single program with 2 optional DLL's.
</li><li>Providing accelerated GUI development based on an  <em>XML/XTL</em> description.
</li><li>Separation of the <em>layout</em> from the <em>style</em> in a fashion like CSS.
</li><li>Fault tolerance through the use of <em>warnings</em> as opposed to <em>errors</em>.
</li></ul><p class='vspace'>In particular, Tcl/Tk is to be used in implementing this,
and some key ideas borrowed from <em>HTML</em>.
</p>
<div class='vspace'></div><h1>242. Obstacles</h1>
<p><strong>What technological obstacles did you need to overcome to achieve those advancme'nts.</strong>
</p>
<p class='vspace'>Tcl/Tk does provides a language, including a GUI widget set, and has been included
with most Linux distributions since 1994.  However, Tcl/Tk suffers from 
several longstanding issues, specifically:
</p>
<div class='vspace'></div><ul><li>the Tcl language has almost no validation facilities.
</li><li>the Tk widgets are incomplete and far too primitive
</li><li>There is no modularization for a Tcl applications.
</li><li>a Tk application ends up more not less complex than, say, a compiled KDE one.
</li><li>Tcl/Tk requires complex installs, as do any applications written in it.
</li></ul><p class='vspace'>Therefore, the obstacles to overcome in this project include:
</p>
<div class='vspace'></div><ul><li>Adding a typechecking and validation to the Tcl language.
</li><li>Add and enhance widgets to meet requirements of sophisticated GUIs.
</li><li>Implement a GUI abstraction that radically reduces complexity.
</li><li>Determine clear and simple Module based application framework.
</li><li>Implement an installation-free executable/zip-archive hybrid.
</li></ul><p class='vspace'>Moreover, beyond just providing a framework, the project is to include
several working demo applications that clearly demonstrate it's concepts.
</p>
<div class='vspace'></div><h1>244. Work</h1>
<p><strong>What work did you perform in the tax year to overcome those technological obstacles.</strong>
</p>
<p class='vspace'>See <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status08' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status08</a>
</p>
<div class='vspace'></div><h1>250. Knowledge</h1>
<p><strong>Describe the scientific knowledge that you were trying to advance.</strong>
</p>
<p class='vspace'>GUI application development has become so difficult that many 
software companies have abandoned it entirely in favor of <em>HTML</em>.
The advantage of the HTML model is that on the client side it is <em>stateless</em>.
Initially, this provides a boon for developers since it offers a greatly
simplified development model.  However, over time as more and more
sophistication is demanded <em>statefull</em> technologies such as <em>AJAX</em>
appear. Thus, HTML development becomes mired in ever greater levels
of complexity.
And in fact, HTML and Web technologies do not really offer a comprehensive
replacement for desktop applications.
</p>
<p class='vspace'>Thus the scientific goal of this project is to reduce the complexity
associated with developing desktop GUI applications and to
impart to desktop applications
some of the simplicity, reliability and portability that has come to be
expected with HTML application development.  That is, the experience of developing
a GUI applications should be similar in spirit to that of developing in HTML.
For example, errors in stylistic elements of an application should
be treated as just inconsequential warnings rather than allowing
an application to be undermined.
</p>
<p class='vspace'>If this is achieved, then
developers, and in particular FOSS developers will be freed from the
constraints of excessive complexity.
Thus much more sophisticated and comprehensive
applications should become more widely available.  This should
logically follow due to the higher percentage of
software users who are now able to become contributors as well as maintainers.
</p>
<div class='vspace'></div><h1>252. Summary</h1>
<p><strong>Summarize the work completed in the tax year and explain how that work contributed to the scientific knowledge.</strong>
</p>
<p class='vspace'>Work in this year has arisen from the integration of
discrete components, some of which were developed in prior years.
This in turn resulted in
a certain amount of re-engineering to ensure that all pieces meshed together
seemlessly.  The changes include rewrites of <a class='createlinktext' rel='nofollow'
    ''>TOD</a><a rel='nofollow' 
    class='createlink' ''>?</a>, <a class='wikilink' href='Mod.Gui.html'>Gui</a> and
<a class='wikilink' href='Mod.Mod.html'>Mod</a>.
</p>
<p class='vspace'>But many of the changes were as a result of
development of the new <a class='wikilink' href='Mod.Styles.html'>Styles</a>.
Styles, although modelled loosely after <em>CSS</em>, is based on pattern matching
rather than to strict <em>ID</em> and <em>CLASS</em> name comparison.  Furthermore,
styles are hierarchical.  This enables developers to
to generate GUI applications that are structured according to patterns rather than
fixed declarations.
</p>
<p class='vspace'>Two such applications have been written as demonstration uses of style:
</p>
<div class='vspace'></div><ul><li>A simple tabbed editor <a class='createlinktext' rel='nofollow'
    ''>geditor</a><a rel='nofollow' 
    class='createlink' ''>?</a>.
</li><li>An Sqlite database GUI frontend <a class='createlinktext' rel='nofollow'
    ''>gsqlite</a><a rel='nofollow' 
    class='createlink' ''>?</a>.
</li></ul><p class='vspace'>Use of <em>style</em> and <em>GUI</em> in these applications make readily apparent how much
of an application is given over to managing stylistic elements and layout.
Despite the fact that both of these are full functioning applications,
they are under 400 and 700 lines respectively.  And both:
</p>
<div class='vspace'></div><ul><li>support complex use of styles, icons and tiled backgrounds.
</li><li>support multiple instances, private data and dialogs.
</li><li>are written in clearly structured, maintainable and extensible code.
</li><li>run on Windows and Linux unchanged and without compiling.
</li></ul><p class='vspace'>This demonstrates
that with appropriate choices, it is possible to escape the cycle of complexity
and dependancy that plagues GUI applications on the desktop.
That applications can be write once, run everywhere.
And that the propensity to always compile GUI applications may indeed be
short sighted.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 08, 2011, at 01:44 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.SideBar.html.































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / SideBar </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.SideBar' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>SideBar</h1></div>
<!--PageText-->
<div id='wikitext'>
<ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on May 15, 2009, at 07:13 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Status07.html.

































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Status07 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Status07' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Status07</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
<strong>Source for this page:</strong> <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status07' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status07</a>
</p>
<div class='vspace'></div><h1>PDQI Status Report - January 2007</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the first quarter: the period from Oct 1/06 through Dec 31/06.
The objective of this quarter was to begin work on an ''Integrated Development
Environment'' or <strong>IDE</strong> in Tcl that can seemlessly utilize and deliver
the features of PDQI previously developed, particularly tcl_warn and prototypes.
</p>
<div class='vspace'></div><h2>Detail</h2>
<p><strong>PDQI</strong> is divided into two main parts.  The first is Weld, a proprietary
Tcl validation engine written in C as an customization of Tcl.
The others such as Ted and Weld are freeware being developed under A BSD license.
</p>
<div class='vspace'></div><h3>Weld</h3>
<p><a class='createlinktext' rel='nofollow'
    ''>WELD</a><a rel='nofollow' 
    class='createlink' ''>?</a> is a standalone binary for delivering all validation features
of PDQI.
The tcl_warn feature is now delivered as part of Weld.
Weld also implements debugging, either standalone from the commandline
or via the IDE.
Two builds are required,
one for Linux and another for Windows XP.
</p>
<div class='vspace'></div><h3>Ted</h3>
<p><a class='wikilink' href='Ted.Ted.html'>TED</a> is an IDE designed to integrate seemlessly with the Tcl validation
provided by Weld.  
Ted is an editor/IDE designed to run either standalone or
from within weld.  Using it from Weld will deliver all of the functionality
of PDQI, or a subset of it without.
</p>
<div class='vspace'></div><h3>Mod</h3>
<p>Mod is a single Tcl package designed to encapsulate all support
code needed to deliver an arbitrary Tcl application.
The most important of these is the implementation of Modules
and the integration of <a class='createlinktext' rel='nofollow'
    ''>externs</a><a rel='nofollow' 
    class='createlink' ''>?</a>.  All code
not specific to an <em>IDE</em> resides in Ted.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>An initial draft of the Ted editor was completed,
provide a framework for Weld.  In particular, it has the ability to run 
either as an editor or debugger.
</p>
<div class='vspace'></div><h1>PDQI Status Report - April 2007</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the second quarter: the period from Jan 1/07 through Mar 31/07.
The objective of this quarter was to continue and
flesh out the development of Ted.
</p>
<div class='vspace'></div><h2>Details</h2>
<h3>Ctags</h3>
<p><a class='wikilink' href='Ted.CTags.html'>CTags</a> is a symbol navigation system universally used under Unix
for development.  Ted now implements native support for CTags, both
the generation and employing them for navigation within Ted.
</p>
<div class='vspace'></div><h3>Runtcl</h3>
<p><a class='wikilink' href='Ted.Eval.html'>Runtcl</a> is a dialog for running Tcl that acts as the
single entry-point to Weld features within Ted.
</p>
<div class='vspace'></div><h3>Backtrace</h3>
<p>Perhaps the most difficult aspect of working with Tcl is attempting
to manually decode tracebacks from program errors.
<a class='wikilink' href='Mod.Backtrace.html'>Backtrace</a> performs automated decoding of these tracebacks
and presents the user with navigation features.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With the navigation, execution and traceback analysis in place,
the basics of development cycles is now supported in Ted.
</p>
<div class='vspace'></div><h1>PDQI Status Report - July 2007</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the third quarter: the period from Apr 1/06 through Jun 30/06.
The objective of this quarter was to develop automatic generation
of documentation from Tcl source code: Docgen.
</p>
<div class='vspace'></div><h2>Details</h2>
<h3>Uses &amp; Demand-Import</h3>
<p><a class='wikilink' href='Mod.Uses.html'>Uses</a> is used to specify namespaces from which to import
commands, on demand.  These can be either Modules or subcommands within
a namespace.
</p>
<div class='vspace'></div><h3>Versioning</h3>
<p>RCS is a <a class='wikilink' href='Ted.Versioning.html'>versioning</a> system universally available under Unix.
Mod implements native support for RCS.
Ted can uses this RCS as well as
external use of CVS and SVN seemlessly for the user.
</p>
<div class='vspace'></div><h3>Wikitext</h3>
<p><a class='wikilink' href='THT.Wikitext.html'>Wikitext</a> is an implementation of a subset of PmWiki
(<a class='urllink' href='http://pmwiki.org' rel='nofollow'>http://pmwiki.org</a>) 
for use with <a class='wikilink' href='THT.HomePage.html'>THT</a> in supporting simplified online production and
maintainence of documents.  Wikitext outputs to Html.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Demand-uses provides the key piece for developing effectively in Tcl.
It gives the best of both worlds: all in one-big-namespace versus.
Version control is done while documentation is under way.
</p>
<div class='vspace'></div><h1>PDQI Status Report - October 2007</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the fourth quarter: the period from Jul 1/07 through Sept 30/07.
The objective of this quarter was to bring the Ted IDE
a production level of completion.
</p>
<div class='vspace'></div><h2>Detail</h2>
<h3>XTL</h3>
<p><a class='wikilink' href='Mod.XTL.html'>XTL</a>  implements an <strong>XML</strong> map-transform to Tcl lists.
At about 1500 lines of Tcl  provides
an XML parser, checker, query engine, formatter and utilities.
It can be used either programatically
or from the commandline.
</p>
<div class='vspace'></div><h3>Interface Generation</h3>
<p>A key goal of PDQI is to eliminate the tedious and error prone
aspects of programming. The <em>Interface</em> module is used by Ted to
generate <a class='wikilink' href='Ted.Includes.html'>Include</a> or <em>.htcl</em> files.  These are  used by <a class='createlinktext' rel='nofollow'
    ''>Weld</a><a rel='nofollow' 
    class='createlink' ''>?</a>
to validate code.
</p>
<div class='vspace'></div><h3>Docgen</h3>
<p><a class='wikilink' href='Mod.Docgen.html'>Docgen</a> provides the ability to generate documentation directly from
Tcl source code comments and proc signatures.  This generation
is produced from an XTL document index which is produced by
the Interface-generator.
</p>
<div class='vspace'></div><h3>Docview</h3>
<p>Docview provides the ability to render a subset of pmwiki directly
into a Tk text widget.  This elimnation of dependancy on the web.
(server and client) allows PDQI to be used standalone effectively.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With the auto-generation of both headers and documentation complete
Ted is ready for deployment.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on December 19, 2008, at 05:12 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Status08.html.



















































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Status08 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Status08' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Status08</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p>
<p class='vspace'>Source page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status08' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status08</a>
</p>
<div class='vspace'></div><h1>PDQI Status Report - January 2008</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the first quarter: the period from Oct 1/07 through Dec 31/07.
The objective of this quarter is to produce an standardized integrated
Tcl/Tk binary for application deployment.
</p>
<div class='vspace'></div><h3>Detail</h3>
<p>One deficiency in the process of developing for Tcl/Tk is
deployment.  Providing a cogent collection of widgets required
to deliver a complete application is problematic.
To this end <strong>PDQI</strong> provides
<strong>WIZE</strong>, an executable which appends a zip archive containing support scripts.
This enables deploying scripts and executables as a single stand-alone.
</p>
<p class='vspace'>In order for this to be generally useful, however,
two additional requirements must be met:
</p>
<div class='vspace'></div><ul><li>provision of a universal set of widgets, and
</li><li>the addition of interface files for all of these widgets
</li></ul><p class='vspace'>This first requirement means adding widgets such as
<em>tree</em> and <em>notebook</em>.
The second ensure that developers can maintain code once it is written.
</p>
<div class='vspace'></div><h3>BLT</h3>
<p>Two key widgets lacking in Tk are <em>tree</em> and <em>notetab</em>.
The <a class='wikilink' href='Wize.Blt.html'>Blt</a> extension offers these, but has
been largely abandoned.  This project adopts BLT, fixes
it's various problems, extending it where appropriate.
It also adds the capability to tile images across the background
of all widgets.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With a complete set of widgets, PDQI stands capable of use
for developing wide ranging applications.
</p>
<div class='vspace'></div><h1>PDQI Status Report - April 2008</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the second quarter: the period from Jan 1/08 through Mar 31/08.
The objective of this quarter was to further develop the support widgets for
missing functionality and to develop
<em>interface files</em> for all supported widgets in Wize.
</p>
<div class='vspace'></div><h3>Detail</h3>
<p>Support widgets are required to handle things that
Tk can handle at the high level such as
<em>balloon</em> tooltips text, and <em>scrollable</em> frames.
</p>
<p class='vspace'>The main justification for <em>interface files</em> is to enable checking of
Tcl code.  This provides developers
with the ability to validate code without having to necessarily execute
every single line.
</p>
<p class='vspace'>Two steps are involved in creating
interface file.   First is the manual creation of static
<em>extern</em> definitions for all access functions.  The second is to use
Tcl's introspection mechanism to generate
lists of options and arguments taken by these functions.
Further, both of these are to be integrated into
<a class='wikilink' href='Ted.Completion.html'>command completion</a>.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With interface files and support widgets in place,
true cross platform application development is now feasible.
</p>
<div class='vspace'></div><h1>PDQI Status Report - July 2008</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the third quarter: the period from Jan 1/08 through Mar 31/08.
The objective of this quarter was to finish re-factoring Wize
and add two important features:
sound and 3d graphics.
These are requirements for for <em>WIZE</em> to be used in a wide range of applications,
including game development.
</p>
<div class='vspace'></div><h2>Detail</h2>
<p>As code for <strong>Mod</strong> is written entirely in Tcl script, it
is likely to change frequently.  Moreover, Mod can be used with
plain vanilla or unextended Tcl.  Thus Mod is
being separated out as a separate <strong>ZIP</strong>  package that
is automatically acquired by <em>Wize</em> at start-up.
</p>
<p class='vspace'>Two existing extensions offer the requisite features.
<a class='wikilink' href='Wize.Snack.html'>Snack</a> is a sound extension and 
<a class='wikilink' href='Wize.Canvas3d.html'>Canvas3d</a> is an OpenGL extension.
These extensions are not added to wize, but
rather supported as validatable DLLs.  For this, both
require interface files to be created.
In addition, although <em>Snack</em> works out of the box,
<em>Canvas3d</em> requires some work.
</p>
<div class='vspace'></div><h3>Canvas3d</h3>
<p>Several aspects of Canvas3d require attention.  These include:
</p>
<div class='vspace'></div><pre> * adding support for OpenGL image caching, 
 * <em>mipmap</em> images for tiling
 * integration of image and font handling with <em>Tk</em>.
 * interface files.
</pre><p class='vspace'>Also added were <em>GLUT</em> library types as well as support for OpenGL
<em>QUAD</em>, <em>QUADSTRIP</em>, <em>TRIANGLE</em>, etc for polygons.
</p>
<div class='vspace'></div><h2>Snack</h2>
<p>The sound extension <em>Snack</em> is largely application ready.
The only real work required is adding interface files,
and extending this to enable checking of object calls.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<div class='vspace'></div><h1>PDQI Status Report - Oct 2008</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the fourth quarter: the period from Jul 1/08 through Sep 30/08.
The objective of this quarter was to re-factor <em>GUI</em> and integrate
it into the new <em>WIZE/Mod</em>.  This includes a rework of <em>Styles</em>.
</p>
<div class='vspace'></div><h2>Detail</h2>
<h3>GUI</h3>
<p><a class='wikilink' href='Mod.Gui.html'>Gui</a> is a central piece of the PDQI project.  It allows
development of complex graphical user interfaces wherein much of the complexity
has been abstracted away.  Moreover, applications using GUI
are portable while avoiding the crippling dependencies that so hobble
existing unix graphical applications.
</p>
<div class='vspace'></div><h3>Style</h3>
<p><a class='wikilink' href='Mod.Styles.html'>Styles</a> enable most of the details associated with a GUI to
be abstracted away.  This has two primary benefits:
</p>
<div class='vspace'></div><ul><li>reduced complexity
</li><li>simplified configurability.
</li></ul><p class='vspace'>While complexity reduction is clearly important, not enough attention is
paid in unix to the area of customization.  Unlike other platforms,
most unix users are either programmers or computer professionals.
With the introduction of styles,
users can directly edit style files to influence appearance.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With the addition of GUI and Styles to Wize, PDQI
is positioned at last to deliver some of the universality of applications
that other platforms have long enjoyed.  At the same time,
applications in Tcl require the source to run and thus are more
readily augmented.
</p>
<div class='vspace'></div><h1>Remaining Work</h1>
<p>The remainder of the PDQI project needs to look at
two additional areas of development:
</p>
<div class='vspace'></div><ul><li>Automatic generation of <a class='wikilink' href='CAPI.CAPI.html'>CAPI</a>.
</li><li>Strict <a class='wikilink' href='Wize.Declare#strict.html'>type-checking</a> for modules
</li></ul><div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 30, 2009, at 05:34 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Status09.html.













































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Status09 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Status09' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Status09</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>
</p>
<p class='vspace'>Source page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status09' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status09</a>
</p>
<div class='vspace'></div><h1>PDQI Status Report - January 2009</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the first quarter: the period from Oct 1/08 through Dec 31/08.
The objectives of this quarter are:
</p>
<div class='vspace'></div><ul><li>implement a <em>GUI</em> interface for sqlite: <em>Gsqlite</em>.
</li><li>extend Sqlite with a network based API: <em>SOS</em>.
</li><li>add two new extensions: <em>Signal</em> and <em>Compiler</em>.
</li><li>Implement on the fly generation of gradiants:  <em>gradient</em>
</li></ul><div class='vspace'></div><h2>Gsqlite</h2>
<p><a class='wikilink' href='Mod.Gsqlite.html'>Gsqlite</a> is an application providing a user interface to the embedded
Sqlite extension and thereby providing an adminstrative interface.
Since GUI is used, the implemention is extremely small: around 1000 lines.
Despite this, Gsqlite is relatively powerful and full featured and clearly
demonstrates the expressive power of GUI.
</p>
<div class='vspace'></div><h2>SOS: A Networked Sqlite</h2>
<p>Sqlite is widely used as an embedded database (eg. in Firefox 3.5).
However, in the context of desktop application development
distributed databases are the norm.
Thus Wize has developed a Tcl-socket based Client/Server
protocol (<a class='wikilink' href='Mod.SqliteSock.html'>SOS</a>) for use with Sqlite.  It can enable the development of
distributed applications such as inventory control and office management.
</p>
<div class='vspace'></div><h2>Gradient</h2>
<p>Gradients are widely used in application and web pages,
enhancing the appearance of user interfaces. The <a class='wikilink' href='Wize.Gradient.html'>gradient</a> command provides
on-the-fly generation of complex images gradients with a large number of options.
It enables more attractive applications without dependance on external
tools to generate such images.  It also enables the generation of gradients
whose dimensions are dynamic (eg. gradient to fill a window).
</p>
<div class='vspace'></div><h2>Compiler</h2>
<p>A <a class='wikilink' href='Wize.Compiler.html'>Tcl Compiler</a> has been built-in to Wize to support
compiling applications to byte-code.
Sometimes compiling is desirable or necessary
for reasons of security or to protect proprietary code.
</p>
<div class='vspace'></div><h2>Signal</h2>
<p><a class='wikilink' href='Wize.Signal.html'>Signal</a> is an extension that provides support for intercepting Unix signals. Applications might make use of this as an alternative to the send command, or to handle shutdown cleanly.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With the addition of these extensions plus SOS, Wize can be
considered full featured in the context of application development
facilities.
</p>
<div class='vspace'></div><h1>PDQI Status Report - April 2009</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the second quarter: the period from Jan 1/09 through Mar 31/09.
The objective of this quarter was to 
implement the application <em>Introspect</em> allowing full
interactive introspection of Tk applications running on a system.
Also to develop several GUI based applications to validate
the design and implementation of <em>GUI</em>, <em>Styles</em> and <em>TOD</em>.
</p>
<div class='vspace'></div><h2>Introspect</h2>
<p><a class='wikilink' href='Wize.Introspect.html'>Introspect</a> is an application to graphically examine and
modify the
entire program state of any Tk application running on a system.
It uses TreeView to display all resources (Procs, Vars, Widgets, Fonts, etc)
in a tree structure.
It also provides a Sandbox environment of all Tk widgets in Wize,
and a command/option hierarcy for all builtin commands in Wize.
Finally, it provides
access to all online documention, both for the Tcl/Tk commands
and for Tcl's C-programming API.
</p>
<div class='vspace'></div><h2>Top</h2>
<p><a class='wikilink' href='Mod.Top.html'>Top</a> is a <em>GUI</em> interface to the Unix text based system monitoring facility <em>top</em>.
Aside from demonstration, it exercises several key features of Wize.  It load
tests the <em>TreeView</em> widget by repeatedly loading and deleting large
amounts of data.  It also makes extensive use of Styles.
Top demonstrates the relative ease with which system information can
be exposed via GUI.
</p>
<div class='vspace'></div><h2>Mail</h2>
<p><a class='wikilink' href='Mod.Mail.html'>Mail</a> is a <em>GUI</em> based email interface modelled roughly after <strong>kmail</strong>.
It demonstrates that <em>TreeView</em> provides sufficient table/tree functionality
to implement all of a mainstream application.  It also demonstrates and develops
use of internal <em>sub-GUIs</em> and external dialogs within the context
of a main <em>GUI</em>.  These include: a configuration dialog and an
<a class='wikilink' href='Mod.Address.html'>Address Book</a>.
</p>
<div class='vspace'></div><h2>Gradient</h2>
<p><a class='wikilink' href='Mod.Gradient.html'>Gradient</a> is an application for exercising the options of <a class='wikilink' href='Wize.Gradient.html'>Gradient</a>.
It can generate gradient images of virtually infinite variety.  Moreover,
the parameters of these gradient images can directly be
plugged into <em>Styles</em> <strong>@gradientdefs</strong> in a <em>GUI</em> application.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>The above implemented applications indicate that
several issues must be resolved in GUI, foremost: GUI items
integration with Styles.
</p>
<div class='vspace'></div><h1>PDQI Status Report - July 2009</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the third quarter: the period from Jan 1/09 through Mar 31/09.
The objective of this quarter was to
complete the integration
of <em>GUI</em>, <em>Styles</em> and <em>TOD</em> to present a seemless
application development environment for the user.
</p>
<div class='vspace'></div><h2>Gui/Styles/TOD Integration</h2>
<p>Integration of the three main subsystems (GUI, Styles and TOD)
are achieved primarly via implementation of the following applications.
</p>
<div class='vspace'></div><h2>Sframe</h2>
<p><a class='wikilink' href='Mod.Sframe.html'>Sframe</a> is an application demonstrating the scrollable
frames made available via the <strong>-scroll</strong> <em>Frame</em> attribute.
Scrollable frames are not provided natively in Tk, and while
there are addhoc implementations available, they
in practice present implementation challenges for the user.
Sframe demonstrates the superiority of using GUI in the
ease with which
Tk functionality can be extended just by adding custom attributes.
</p>
<div class='vspace'></div><h2>Rounded</h2>
<p><a class='wikilink' href='Mod.Round.html'>Round</a> is an application demonstrating rounded frames.
This is made available via the <strong>-round</strong> <em>Frame</em> attribute.
The implemention just uses a canvas with a polygon item while
employing the <em>-tile</em> extension added by Wize to
deliver an attractive user experience.
As with Frames <strong>-scroll</strong> attribute, the implementation is transparent to
the user.
</p>
<div class='vspace'></div><h2>Bigtable</h2>
<p><a class='wikilink' href='Mod.Bigtable.html'>Bigtable</a> is an application using
the <strong>Table</strong> widget in conjuction with <a class='wikilink' href='Wize.Blt#vectors.html'>vectors</a>.
Bigtable is the first true demonstration of spreedsheet
functionality in Tk, one that is capable of
handling millions of rows.
It also introduces a new feature long missing from <em>Table</em>:
standardized editing.  Editing is enabled via the
<strong>-edit</strong> attribute.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With the completion of a representative
group of applications, GUI has proven itself
to be both powerful and easy to use.
However, several issues
have been exposed with use of GUI and Styles.
These issues will becomes the focus of development in the final quarter.
</p>
<div class='vspace'></div><h1>PDQI Status Report - Oct 2009</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the fourth quarter: the period from Jul 1/09 through Sep 30/09.
The objective of this quarter was to
finalize the runtime model and debugging capablities.
These issues deal with the ease of use and the ease of development with GUI.
</p>
<div class='vspace'></div><h2>Runtime Model</h2>
<p>The ultimate goal of GUI is to enable running
applications in a manner analogous to HTML documents.
Specifically, to be able to execute a <strong>.gui</strong> file directly in Wize.
Code is optional, and if required can be incorporated by
using the <strong>script</strong> tag.  Not only will this make prototyping
of applications extremely easy, it also means that coding
errors will not escalate to application failure. Errors, if they occur,
are automatically demoted to warnings within GUI and Style.
These warnings can be seen only by running the application in warning/check mode.
</p>
<p class='vspace'>Therefore, the objective was two-fold: add support to run <em>.gui</em> files,
and add <em>script</em> and <em>eval</em> tags and attributes to GUI, and 
an <em>@eval</em> macro to Styles.
</p>
<div class='vspace'></div><h2>Debugging and Introspection</h2>
<p>Although <em>Introspect</em> provides global introspection into running programs,
it can be awkward to use when all is needed is the ability to quickly view/change
the currently running application windows
variables and procs.  Part of the problem is the complexity involved with
navigating to the specific widget or namespace involved.
</p>
<p class='vspace'>Wize solves this through the addition of a single key/mouse sequence that
invokes widget <a class='wikilink' href='Mod.Debugging.html'>Debugging</a> for inspection of
Widgets, Variables and Commands.  Thus &lt;Control-Alt-Shift-2&gt; will bring
up the widget editor.  This allows changing any option for that widget, or
view/edit variables or procs implementing that toplevel, or view
the widget tree.
</p>
<p class='vspace'>At the lowest level, this is implemented as
a collection of <a class='wikilink' href='Wize.Explore#editwin.html'>Tk::edit*</a> commands.
These promote seamless transition from Gui to command-line and back
when traversing the state of a program and its widgets.
</p>
<p class='vspace'>Finally, to suport programmers, a collection of macros
(.Warn/.Assert/.Msg/.Break)
are implemented for the development phase.
In production, however, <a class='wikilink' href='Mod.Ndebug.html'>Mod ndebug</a> can be used
to relegate these to NOOPs
that consume no CPU resources, and to disable the debugging interface.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With the final integration of GUI, Styles and TOD in conjunction with
the simplfied runtime model of <em>.gui</em> files and the builtin
debugging and introspection facility, Wize is ready
to be deployed as a coherant and full featured application development
environment.
</p>
<p class='vspace'>This means that Linux, and other alternative Operating Systems
will be well poised to make the transition to mainstream desktop use.
This because it will now be feasible to write applications
that deploy to all such desktops, without dependancy. Moreover,
these same applications can run unmodified on the ubiquitous
Windows operating system, and ultimately the Mac.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 04, 2010, at 09:32 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Status10.html.



































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Status10 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Status10' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Status10</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>
(:toc:)
</p>
<p class='vspace'>Source page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status10' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status10</a>
</p>
<div class='vspace'></div><h1>PDQI Q1 Status Report - January 2010</h1>
<h2>CAPI</h2>
<p><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/CAPI' rel='nofollow'>CAPI</a>
supports automatic conversion of a Tcl module into a C extension.
This feature provides automatic unloading of arguments to C variables,
type checking and validation. 
</p>
<div class='vspace'></div><h2>GUI and Dialogs</h2>
<p>A number of applications have been written or re-written
to use GUI.  These provide test cases to validate
the current implementation of GUI.
</p>
<p class='vspace'>In the original release, GUI applications were able to define a
single toplevel.  Often in an application, however,
multiple dialogs are required to process user input.
Thus GUI was rewritten to support multiple toplevels
and menus per application, all sharing the same id namespace.
To support paritioning, different Tcl namespaces can be assigned
to dialogs.
</p>
<div class='vspace'></div><h2>GUILD</h2>
<p><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Guild' rel='nofollow'>GUILD</a> is builder/designer for GUI user interfaces.
Previously, a GUI user interface was hand written using a text editor.
However, a Gui builder can interactively assist users in
laying out new user interfacess to produce new applications.
This can greatly simplify this process of producing the UI portion
of an application.
Moreover, Guild itself was implemented using GUI.
</p>
<div class='vspace'></div><hr />
<div class='vspace'></div><h1>PDQI Q2 Status Report - April 2010</h1>
<div class='vspace'></div><h2>Style Enhancements</h2>
<p>Styles have been extended to support for per-toplevel or
global styles.
Integration between GUI and Styles has been improved
allowing styles to specify GUI attributes.
A GUI can also be configured to ignore styles.
</p>
<div class='vspace'></div><h2>GUI Ledger</h2>
<p><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Ledger' rel='nofollow'>Ledger</a>
is a home and small business accounting application.
Ledger 2.0 has been rewritten to use GUI and TreeView natively.
The previous releases were complex and difficult to maintain,
and suffered from a number of performance limitations.
The new release abstacts both the user interface and the
data storage, and aids in validating the use of GUI.
</p>
<div class='vspace'></div><h2>GUI Ted</h2>
<p><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Ted/Ted' rel='nofollow'>Ted</a> is a Tcl editor written in Tcl
that has been rewritten to use GUI and Wize natively.
Ted uses a limited number of dialogs, but menus
are used extensively.
Ted has also been redesigned to support a tabbed interface.
This change makes Ted more modern looking as well as easier to maintain.
</p>
<div class='vspace'></div><hr />
<div class='vspace'></div><h1>PDQI Q3 Status Report - July 2010</h1>
<div class='vspace'></div><h2>TDB</h2>
<p><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Wize/Tdb' rel='nofollow'>TDB</a> is a debugger front-end for GDB written using GUI.
It fills a void in the Open Source community where
a generally powerful graphical front-end to GDB is not available.
TDB exposes nearly all features of GDB that are currently
available from the command-line.
TDB is also able to decode GDB MI (the protocol used by GDB) using only Tcl.
This provides a 100% script interface which is totally portable,
even to MS Windows.
</p>
<div class='vspace'></div><h2>Shaped Buttons/Labels</h2>
<p>One criticism leveled at Tk is the lack of support for complex
graphical elements such as shaped buttons and frames that
make for make interesting user interfaces.
Adding shaped border image support is not that difficult
and provides the ability to guarantee a specific look and
feel across platforms, similar to the way HTML does.
</p>
<div class='vspace'></div><hr />
<div class='vspace'></div><h1>PDQI Q4 Status Report - Oct 2010</h1>
<div class='vspace'></div><h2>TTK in GUI</h2>
<p>With the new release of Tcl 8.5 in 2009 TTK was added to
support native widgets on Windows and Mac.
This is important in achieving native look and feel on these platforms.
GUI has now been extended to handle TTK widgets so it can
support native look and feel for applications.
</p>
<div class='vspace'></div><h2>Wize Release</h2>
<p>Wize is scheduled for release near the end of November 2010.
In prepare for its release, Wize is being slimmed down
to remove extraneous components.  The build and deployment
details are also being firmed up. This should enable inclusion
in distributions such as Ubuntu.
</p>
<div class='vspace'></div><h2>Blt Decomposition</h2>
<p>Blt, which is an important core piece of Wize, has been greatly enhanced.
Part of the enhancement was to allow Blt
to provide image tiling facilities to and enhanced Tk.
However, in order for Blt to be used standalone with the standard
Tcl/Tk, dependencies had to be made
dynamically extensible.  This required extensive code cleanups
to make the new package completely independent.
</p>
<div class='vspace'></div><h2>The 2010 Tcl Conference</h2>
<p>Wize and GUI were presented at the 2010 17th international Tcl
conference in Chicago in October.  This half hour presentation
covered most of the major aspects of Wize.  The outline is available here:
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Tcl2010' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Tcl2010</a>
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on December 29, 2010, at 10:56 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Status11.html.































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Status11 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Status11' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Status11</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>
Source page: <a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Status11' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Status11</a>
</p>
<div class='vspace'></div><h1>PDQI Status Report - January 2011</h1>
<h2>Summary</h2>
<p>This document provides a snapshot of progress on the PDQI project for
the first quarter: the period from Oct 1/10 through Dec 31/10.
The objective of this quarter was to add some image handling refinements,
push out the release of Wize 3.2, fix bug reports arising
from the release, create a presentation program and to
present Wize at the 2010 Tcl conference in Chicago.
</p>
<div class='vspace'></div><h2>New Image Operations</h2>
<p>Two new operations have been added to Blt to add enhanced
capabilities in shaped buttons.  These are
image blurs and transparencies.  Together these enable
placing shaped buttons on textured backgrounds.
</p>
<div class='vspace'></div><h2>Slider</h2>
<p>Slider is a presentation program that was developed using Wize.  It was used in giving
the presentation at the 2010 Tcl Conference.
</p>
<p class='vspace'>Slider supports:
</p>
<div class='vspace'></div><ol><li>fonts, colors and images
</li><li>background tiles, shaped borders, and embedded windows.
</li><li>embedded tcl/tk scripting
</li></ol><p class='vspace'>Here is the link to the slider documentation:
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Mod/Slider' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Mod/Slider</a>
</p>
<div class='vspace'></div><h2>Wize Release</h2>
<p>Wize 3.1 was released on Soureforge.com on November 20th.
The release included:
</p>
<div class='vspace'></div><ol><li>Windows and Linux binaries
</li><li>Source for the entire Wize package
</li><li>Source for BLT, broken out.
</li></ol><p class='vspace'>Version 3.2 which included mostly bug fixes
was released on December 1st.
</p>
<div class='vspace'></div><h2>Bug Fix Release</h2>
<p>The 3.1 release was followed by a number of bugs, including:
scrollbars, image overrides, and improved tiling.
These were released as Wize 3.2.
</p>
<div class='vspace'></div><h2>The 2010 Tcl Conference</h2>
<p>Wize and GUI were presented at the 2010 17th international Tcl
conference in Chicago in October.  The presentation
covered most of the major aspects of Wize and is available here:
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/w/pw/pdqi/Main/Tcl2010' rel='nofollow'>http://pdqi.com/w/pw/pdqi/Main/Tcl2010</a>
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>With this release, Wize is considered feature complete, which brings
to completion the active development cycle of this project.
With the 3.2 release, Wize has started to see more wider spread
use.  This include companies such as
Magstar International Inc which is using Wize to develop their next
generation Point of Sale system.  There is also increased
interest in using the BLT widget set for Linux based applications.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 08, 2011, at 03:11 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Tcl2010.html.





























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Tcl2010 </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Tcl2010' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Tcl2010</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p>
<div class='vspace'></div><h1>Tcl/Tk Conference - Chicago 2010</h1>
<h1>Accelerating Tk Development with <strong>Wize 3.1</strong></h1>
<p>By Peter MacDonald, peter@pdqi.com
</p>
<p class='vspace'>PDQ Interfaces Inc,  <a class='urllink' href='http://pdqi.com' rel='nofollow'>http://pdqi.com</a>
</p>
<div class='vspace'></div><h1>Wize</h1>
<p>What is Wize?
</p>
<div class='vspace'></div><ul><li>an attempt at making Tk an unparalleled development environment by:
<ul><li>increasing power while decreasing complexity
</li><li>expanding the class of applications which Tk is suitable for
</li><li>improving non-native appearance (ie. on Linux to)
</li></ul></li></ul><div class='vspace'></div><h1>Wize Features</h1>
<p>What does Wize provide?
</p>
<div class='vspace'></div><ul><li>an abstract Tk layout engine: <em>Gui</em>
</li><li>workhorse widgets: <em>TreeView</em> and <em>Tabset</em>
</li><li>a data extension: <em>tree</em>
</li><li><em>code</em> and <em>data</em> validation for Tcl
</li><li>validation of Tk sub-commands via Class name
</li><li>access to Tk introspection with a single key sequence
</li><li>extended capabilities for <em>Tk</em>
</li><li>a set of common <em>support components</em>
</li><li>running applications directly from a .zip file
</li></ul><div class='vspace'></div><h1>Window Inspector</h1>
<ul><li>Tk already provides extensive introspection facilities
</li><li>Wize's <em>window inspector</em> simply exposes these
</li><li>can be opened on any window with <strong>&lt;Control-Alt-Shift-2&gt;</strong>
</li><li>the inspector also includes a <strong>Menu</strong> with:
<div class='vspace'></div><ul><li>a <strong>proc</strong> browser
</li><li>a <strong>var</strong> browser
</li><li>a <strong>namespace</strong> browser
</li><li>a <strong>window-tree</strong> browser
</li><li>an <strong>introspect</strong> application
</li><li>light and heavyweight <strong>editors</strong>
</li><li>and the venerable Tk <strong>console</strong>
</li></ul></li></ul><div class='vspace'></div><h1>Validation</h1>
<p class='vspace'>What is validation?
</p>
<div class='vspace'></div><ul><li>the force-compiling of <em>proc</em> bodies to do checking
</li><li>the detection of most syntax errors
</li><li>verifying that call parameters match expected number and type
</li><li>reporting calls without preceding <em>proc</em> or <em>extern</em> definitions
</li><li>checking for uninitialized array elements, eg. for <strong>_</strong> and <strong>Declare</strong> arrays
</li><li>compile of <em>code</em> object-args, eg. for <strong>expr</strong> and <strong>catch</strong>
</li></ul><div class='vspace'></div><h1>Warnings</h1>
<p>How do we validate a program?
</p>
<div class='vspace'></div><ul><li>to <em>validate</em> a program we run it with:
</li></ul><div class='vspace'></div><pre class='escaped'>
    wize -Wall myapp.tcl; # or ...
    ./myapp.tcl -Wall arg1 arg2 ...
</pre>
<div class='vspace'></div><h1>Extern</h1>
<div class='vspace'></div><ul><li>validation simply verifies <em>extern</em> definitions, and their <em>types</em>
</li><li>the format for an extern is: 
</li></ul><div class='vspace'></div><pre class='escaped'>
    extern NAME ARGS TYPES CLASS COMMENT
</pre>
<div class='vspace'></div><ul><li>wize provides declarations for all built-ins, eg:
</li></ul><div class='vspace'></div><pre class='escaped'>
    extern incr {varName {amount 1}} {Int var Int} I "Increment variable"
    extern text {w args} {. tkwin {opts -fg -bg -width -height}} I "Text widget"
    extern source {file args} {. {vopts ?-encoding type?} .} I "Evaluate file"
</pre>
<div class='vspace'></div><ul><li>types can also be added to a proc with <em>#TYPES:</em> as in:
</li></ul><div class='vspace'></div><pre class='escaped'>
    proc bad {n} { #TYPES: . Int
    }
</pre>
<div class='vspace'></div><h1>Extern Types</h1>
<ul><li>most extern <em>types</em> are simple such as <strong>int</strong> and <strong>bool</strong>
</li><li>several special types are used extensively by builtin externs:
<div class='vspace'></div><ul><li><strong>opts</strong> - a list of names in the name/value pairs to <em>'args</em>
</li><li><strong>topts</strong> - is like <strong>opts</strong> but each name has an accompanying type
</li><li><strong>vopts</strong> - provides optional prefixing options, eg. <strong>string -strict</strong>
</li></ul><div class='vspace'></div></li><li>here is an example using <strong>topts</strong>:
</li></ul><div class='vspace'></div><pre class='escaped'>
    extern text {w args} {. tkwin {topts -bg tkcolor -width tkpixel}} I
</pre>
<div class='vspace'></div><h1>CAPI</h1>
<p>Inline modules Tcl -&gt; C; enforces <em>extern</em> and unloads args:
</p>
<div class='vspace'></div><pre class='escaped'>
# Build with:  % wize /zvfs/wiz/capi.tcl math.tcl
#              % gcc -g -shared -DUSE_TCL_STUBS -o libAppmath.so math.c
namespace eval ::app::math {
    namespace ensemble create
    namespace export {[a-z]*}

    proc add {i j} {#TYPES: . Double Double
        return [expr {$i+$j}]
        #CBODY:
        Tcl_SetObjResult(interp,
            Tcl_NewDoubleObj(arg_i + arg_j));
    }

    proc sub {i j} {#TYPES: . Double Double
        return [expr {$i-$j}]
        #CBODY:
        Tcl_SetObjResult(interp,
            Tcl_NewDoubleObj(arg_i - arg_j));
    }
}

</pre>
<div class='vspace'></div><h1>GUI</h1>
<ul><li>Gui is an engine for laying out Tk user interfaces:
<ul><li>it use the file extension <strong>.gui</strong>
</li><li>evaluates its content fault-tolerantly
</li><li>models content after <em>HTML/CSS/Javascript</em>
</li></ul></li><li>as with web content there are 3 elements in a <em>Gui</em>:
<ul><li><strong>Layout</strong> - <em>HTML/XML</em>
</li><li><strong>Style</strong> - CSS
</li><li><strong>Script</strong> - Javascript.
</li></ul></li></ul><div class='vspace'></div><h1>Layout</h1>
<p>A Gui <em>layout</em> uses:
</p>
<div class='vspace'></div><ul><li>nested pair-list of tag/attrs + value <em>(these map to/from XML)</em>
</li><li>tags using the Tk class name
</li><li>attributes to control packing, scrollbars, etc.
</li><li>and the <strong>"+"</strong> flag to explicitly indicate a subtree
</li></ul><div class='vspace'></div><h2>Example: layout.gui!!</h2>
<pre class='escaped'>
{Toplevel + -title "Simple Editor"} {
    {Text - -id txt -pos * -scroll *} {}
    {Frame + -pos _ -subpos l} {
        Button Quit
        Button Load
        {Button - -id save} Save
        {Entry - -id status -pos *l} {}
    }
}
</pre>
<div class='vspace'></div><h1>Layout Attributes</h1>
<ul><li>Gui attributes are analogous to <em>HTML</em> attributes.
</li><li>the most commonly used are:
<div class='vspace'></div><ul><li><strong>-pos</strong> : controls pack positioning (<strong>* _ |</strong>)
</li><li><strong>-id</strong> : identifier used for styles and variables
</li><li><strong>-scroll</strong> : adds scrollbars
</li><li><strong>-msg</strong> : event message (ie. proc in the <em>script</em>)
</li><li><strong>-subpos/-subattr/... </strong>: inherited by subtrees
</li></ul></li></ul><div class='vspace'></div><h1>Styles</h1>
<p>A Gui <strong>'style</strong>' uses pattern rules to apply colors, fonts, images, etc, eg.
</p>
<div class='vspace'></div><h2>Example: styles.gui!!</h2>
<pre class='escaped'>
{Toplevel + -title "Simple Editor"} {
    {style} {
        Button  { -bg DarkKhaki }
        .txtwin { -bg Khaki }
    }
    {Text - -id txtwin -pos * -scroll *} {}
    {Frame + -pos _ -subpos l} {
        {Button - -id save} Save
        Button Quit
    }
}
</pre>
<div class='vspace'></div><h1>Style Patterns</h1>
<ul><li>a style <em>pattern</em> is: <strong>Class.id/parentid@group</strong>, with parts:
<div class='vspace'></div><ul><li><strong>Class</strong> =	the widget class (ie. from [winfo class])
</li><li><strong>.id</strong> =	the window name (from a gui <em>-id</em>)
</li><li><strong>/parentid</strong> =	window is a child of parentid
</li><li><strong>@group</strong> =	the group name (from a gui '-gid')
</li></ul><div class='vspace'></div></li><li>each part of the pattern can contain glob wildcards:
</li></ul><div class='vspace'></div><pre class='escaped'>
    style {
        .txt*               {}
        Text.fi*@main       {}
        Label.first*@last*  {}
        T*.[a-e]*@solo      {}
    }
</pre>
<div class='vspace'></div><h1>Style Actions</h1>
<ul><li>style actions are <em>name/value</em> pairs; leading char gives type:
<ul><li><strong>-</strong> : for a Tcl option.
</li><li><strong>*</strong> : for a Tk DB option starting at window.
</li><li><strong>@</strong> : for a macro, eg @tip, @bind, ``@@`` (for gui attributes).
</li><li><strong>=</strong> : to expand a previous definition.
</li></ul></li></ul><div class='vspace'></div><h2>Example: actions.gui</h2>
<pre class='escaped'>
{Toplevel +} {
    style {
        Text           { -bg Cyan  @tip "See manual"  }
        .frm           { *background SteelBlue  }
        Button - Text  { -font "Verdana 10 italic" }
    }
    {Frame + -id frm -subpos l -pos *} {
        Button Ok    Button Cancel
    }
    Text {}
}
</pre>
<div class='vspace'></div><h1>Script</h1>
<ul><li>a <em>script</em> tag contains plain Tcl where:
<div class='vspace'></div><ul><li>the first argument to a proc is an object/array <strong>"_"</strong>
</li><li>the use of <strong>upvar $_ {}</strong> gives access to data elements <em>$(ELEMENT)</em>
</li><li>widgets paths are stored in <em>(w,ID)</em>
</li><li>widget <em>-*variable</em> are in <em>(v,ID)/(t,ID)</em>
</li></ul></li></ul><div class='vspace'></div><h2>Example: script.gui</h2>
<pre class='escaped'>
{Toplevel +} {
    {Button - -id save} Ok
    {Entry - -id status} {}
    {script} {
        proc Ok {_} {
            upvar $_ {}
            Button conf $(w,save) -bg Green
            set (v,status) "Done..."
        }
    }
}
</pre>
<div class='vspace'></div><h1>Main Window</h1>
<ul><li>an application is:
<ul><li>one or more Toplevel windows each with:
<ul><li>an initializer proc <strong>Main</strong>
</li><li>a terminator proc <strong>Cleanup</strong>
</li></ul></li><li>zero or more Menu windows
</li></ul></li></ul><div class='vspace'></div><h1>Main Window Example</h1>
<pre class='escaped'>
{Toplevel + -eventmsg Event} {
    {Text - -id txtwin} {}
    {Button} Go

    {script} {
        proc Event {_ w} {
            upvar $_ {}
            Text insert $(w,txtwin) end "Event: [winfo name $w]\n"
        }
        proc Main {_} {
            upvar $_ {}
            Text insert $(w,txtwin) end "Starting ..."
        }
        proc Cleanup {_} {
            # Nothing to do.
        }
    }
}
</pre>
<div class='vspace'></div><h1>Dialogs</h1>
<ul><li>application popup/dialogs are defined with <em>Toplevel/Menu</em>:
<div class='vspace'></div><ul><li>the <em>-id<strong> namespace is shared with the </strong>main</em> window
</li><li>a Toplevel dialogs may use any <em>id</em> except <strong>main</strong>
</li><li>a Menu dialog <em>id</em> must not match <strong>*mainmenu</strong>.
</li><li>dialogs can be invoked with a style <strong>@bind</strong>
</li></ul></li></ul><div class='vspace'></div><pre class='escaped'>
{Toplevel + -id tlfind} {
    Listbox {}
    Button Ok
}
{Toplevel +} {
    {style} {
        .txtwin { @bind { &lt;Control-f&gt; !tlfind } }
    }
    {Text - -id txtwin} {}
}

</pre>
<div class='vspace'></div><h1>Gui in a .tcl file</h1>
<ul><li>a Gui can be inlined into a <strong>.tcl</strong> file with <strong>Tk::gui::create</strong>
</li><li>to keep the Gui in a separate file use: <strong>include FILE.gui</strong>
</li></ul><div class='vspace'></div><pre class='escaped'>
package require Gui
namespace eval ::mygapp {

    proc Save {_} {
        set fn [tk_getSaveFile]
    }
    proc Main {_} {
        upvar $_ {}
        set (v,status) Starting...
    }
    proc Cleanup {_} {
    }

    Tk::gui::create { include layout.gui }
}
</pre>
<div class='vspace'></div><h1>Guild</h1>
<ul><li><strong>Guild</strong> is a Gui builder that provides:
<div class='vspace'></div><ul><li>a tree-edit oriented Gui builder
</li><li>dynamically list available tags/attributes
</li><li>supports Tk, Ttk, BLT, Table, TreeCtrl, etc.
</li><li>has dialogs for grid, tabset, etc.
</li><li><em>styles</em> and <em>script</em> currently just use an editor
</li><li>can be interactively invoked from the window inspector:
</li></ul></li></ul><div class='vspace'></div><h1>New Widgets:</h1>
<p><strong>BLT</strong> widgets:
</p>
<div class='vspace'></div><ul><li><em>Tabset</em>, a notebook widget
</li><li><em>TreeView</em>, a tree-list widget
</li><li><strong>blt::tile</strong> : <em>label, button, checkbutton, radiobutton</em>
</li><li>and <em>blt::tile::scrollbar</em> with marker icon on the slider
</li></ul><p class='vspace'>}
</p>
<div class='vspace'></div><h1>Tabset</h1>
<p><em>Tabset</em> provides:
</p>
<div class='vspace'></div><ul><li>symbolic names and tearoff panes
</li><li>tabs can be multi-level and/or scrolled
</li><li>tab options: slant, side, rotation and shadow
</li><li>multiple images per tab, and background tiling
</li><li>option to limit length of displayed label
</li><li>widget left/right images, eg. New/Close
</li></ul><div class='vspace'></div><pre class='escaped'>
#!/usr/bin/env wize

script {
    proc DoStart {_} { upvar $_ {}; $(w,txt1) insert end "\nDoStart" }
    proc DoEnd {_} { upvar $_ {}; $(w,txt1) insert end "\nDoEnd" }
    proc Closer {_ w tab} {
        # Handle tab deletion.
        set win [$w tab cget $tab -window]
        destroy $win
        $w delete $tab
    }
}

style {
    Toplevel {
        @defimages { myimg configure }
    }
    Tabset.ts1 {
        @@ {
            -pos * -slant none -closebut {-msg Closer -prompt 1}
            -startimgs {editadd editremove} -endimgs editremove
            -startmsg DoStart -endmsg DoEnd -tiers 2  -accelids txt1
        }
        -image ^myimg
    }

    Tabset.ts2 { @@ {
        -pos * -slant right
    } }


    Tabset::tab { -underline 0 }

    Text { -height 10 @@ {
        -pos * } @eval { %W insert end "%I"
    }}
}

{Tabset + -id ts1} { 
    {tab + -label Able} {    {Text - -id txt1} {} }
    {tab + -label Baker} {   Text {} }
    {tab + -label Charlie} { Text {} }
    {tab + -label Delta} {   Text {} }
    {tab + -label Echo} {    Text {} }
    {tab + -label Foxtrot} { Text {} }
    {tab + -label Romeo} {   Text {} }
    {tab + -label Tango} {   Text {} }
    {tab + -label Zulu} {    Text {} }
}

{Tabset + -id ts2 -side bottom} { 
    {tab + -closebut 1 -label Able} {    Text {} }
    {tab + -closebut 1 -label Baker} {   Text {} }
    {tab + -closebut 1 -label Charlie} { Text {} }
    {tab + -label Delta} {   Text {} }
    {tab + -label Echo} {    Text {} }
    {tab + -label Foxtrot} { Text {} }
    {tab + -label Romeo} {   Text {} }
    {tab + -label Tango} {   Text {} }
    {tab + -label Zulu} {    Text {} }
}
</pre>
<div class='vspace'></div><h1>TreeView</h1>
<p><em>TreeView</em> provides a tree widget with the power
to handle modern applications:
</p>
<div class='vspace'></div><ul><li>auto sized column-width/row-height
</li><li>hide/move columns or rows
</li><li>sorting and editing support built-in
</li><li>styles: automatic and manual
</li><li>tags used for marking/grouping
</li><li>data stored externally in a <em>tree</em>
</li></ul><div class='vspace'></div><h1>TreeView Styles</h1>
<p>TreeView <em>styles</em> make it easy to enhance appearance by:
</p>
<div class='vspace'></div><ul><li>adding colors, fonts, icons and tiled backgrounds
</li><li>applying styles to columns, rows, and/or cells
</li><li>supports automatic styles: rendering style based on location
<ul><li><strong>-levelstyles</strong> : style depends on depth in tree
</li><li><strong>-altrow</strong> : even number rows get this style
</li></ul></li><li>can use a priority to override the default ordering
</li></ul><div class='vspace'></div><h1>TreeView Screenshot</h1>
<ul><li>screenshot demonstrating several capabilities:
</li><li>tiled scrollbars with markers
</li><li>tiled TreeView rows and columns
</li><li>the builtin editing facility and gradient generation
</li></ul><p class='vspace'>^ tdboptions.gif
</p>
<div class='vspace'></div><h1>TreeView Data</h1>
<ul><li><em>TreeView</em> supports an intuitive notation for data access, eg.
</li></ul><div class='vspace'></div><pre class='escaped'>
pack [treeview .t -autocreate 1 -width 300] -fill both -expand y
.t column insert end A B

.t insert end "Menu Dinner" -data "A 10 B {x 20 y 30}"

.t entry incr 0-&gt;Menu-&gt;Dinner A
.t entry set  0-&gt;Menu-&gt;Dinner B(x) 40
</pre>
<div class='vspace'></div><ul><li>of particular interest in this example:
<div class='vspace'></div><ul><li>tree-path indexing, eg. <strong>0-&gt;Menu-&gt;Dinner</strong>
</li><li>dict sub-elements using array notation, eg. <strong>B(x)</strong>
</li></ul></li></ul><div class='vspace'></div><h1>TreeView and Tree</h1>
<ul><li>TreeView can be configured to use an external <em>tree</em>,
</li><li>an external tree can also attach to a TreeView
</li><li>this can extend TreeView capabilities to include:
<div class='vspace'></div><ul><li>dump and restore: part or all of a tree.
</li><li>a set of tag-iterating commands, and a <strong>with</strong> statement
</li><li>a trace facility: read, write, delete, rename, tag, etc.
</li><li>and an <strong>sqlite</strong> interface
</li></ul></li></ul><div class='vspace'></div><pre class='escaped'>
source [file dirname [info script]]/treeview.tcl
set t [tree create]
$t attach [.t cget -tree]
$t insert 0-&gt;Menu -label "Breakfast" -data {A 15 B "x 25 y 35"}
$t set 0-&gt;Menu-&gt;Dinner A 50
$t incr 0-&gt;Menu-&gt;Breakfast B(x) -1
</pre>
<div class='vspace'></div><h1>Sqlite Table Editor</h1>
<ul><li>traces can let us implement a simple <strong>sqlite table editor</strong>:
</li></ul><div class='vspace'></div><pre class='escaped'>
{Toplevel +} {
    {style} {
        .tv { -width 600 -height 400 }
        TreeView::column.tv { -bd 1 -relief raised }
    }
    {script} {
        proc Add {_} {
            upvar $_ {};         $(w,tv) insert end
            update idletasks;    $(w,tv) entry select end
        }
        proc Del {_} { upvar $_ {}; $(w,tv) delete focus }
        proc Main {_ dbfile table} {
            upvar $_ {};
            *sqlsync new [db open $dbfile] $table -treeview $(w,tv)
        }
    }
    {TreeView - -id tv -pos * -scroll * -istable 1 -nice 1 } {}
    {Frame + -subpos l} { Button Add Button Del}
}
</pre>
<div class='vspace'></div><h1>Blt Tile Widgets</h1>
<ul><li><strong>blt::tile</strong> widgets: <em>label, button, checkbutton, radiobutton, scrollbar</em>.
</li><li>they provide new features:
<div class='vspace'></div><ul><li>shaped buttons with complex image tiles
</li><li>widget shadow, text shadow and rotatable text.
</li><li>rounded frames (eg. by packing in <em>label</em>)
</li><li>indicators fully replaceable with 9 icons
</li><li>storing variable/textvariable data in a <em>tree</em> instead of variables.
</li></ul></li></ul><div class='vspace'></div><h1>Extension DLLs</h1>
<ul><li>Two sharedlib extensions are provided:
<ul><li>OpenGl canvas for Tk
</li><li><a class='urllink' href='http://3dcanvas.tcl.tk' rel='nofollow'>http://3dcanvas.tcl.tk</a>
</li><li>Snack sound system
</li></ul></li></ul><div class='vspace'></div><h1>Wize Applications</h1>
<p>Wize now includes the following <em>"test"</em> applications:
</p>
<div class='vspace'></div><ul><li><strong>Slider</strong> : A presentation program
</li><li><strong>Ted</strong> : A Tcl aware editor
</li><li><strong>Ledger</strong> : A finance application
</li><li><strong>Guild</strong> : A <em>Gui</em> builder
</li><li><strong>Gsqlite</strong> : An sqlite frontend
</li><li><strong>Gradient</strong> : A gradient editor
</li><li><strong>Tdb</strong> : A <strong>gdb</strong> frontend
</li></ul><div class='vspace'></div><h1>Tdb</h1>
<p><em>Tdb</em> is a new frontend for an old program (<strong>gdb</strong>) providing:
</p>
<div class='vspace'></div><ul><li>a Stack browser.
</li><li>a Variable tree inspector.
</li><li>a Types tree inspector.
</li><li>Files and Functions tree with searches.
</li><li>Memory, Registers, Threads and Disassembly.
</li><li>a GDB help tree browser with searches.
</li><li>a GDB options tree browse and modify.
</li><li>direct access to the GDB interface.
</li><li>converts <strong>gdb-MI</strong> directly to Tcl list
</li></ul><div class='vspace'></div><h1>Summary</h1>
<p>To summarize, wize:
</p>
<div class='vspace'></div><ul><li>increases power and reduces complexity
</li><li>improves the maintainability of Tcl/Tk
</li><li>has introspection available with: <strong>&lt;Control-Alt-Shift-2&gt;</strong>
</li><li>improves cross-platform look and feel in Tk
</li></ul><div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 26, 2010, at 09:17 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.TclMod.html.

















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / TclMod </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.TclMod' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>TclMod</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>TclMod</h1>
<p><strong>TclMod</strong> packages Tcl/Tk and extensions to
enable rapid development of
portable applications.
</p>
<p class='vspace'>Code can be downloaded from <a class='urllink' href='https://sourceforge.net/project/showfiles.php?group_id=238465' rel='nofollow'>here</a>
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on February 17, 2009, at 10:10 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.TclTk.html.

















































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / TclTk </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.TclTk' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>TclTk</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>Tcl/Tk</h1>
<p>Getting started with Tcl/Tk is easy.
</p>
<div class='vspace'></div><h2>Windows Users</h2>
<p>For Windows users, here is the link to a current
<a class='urllink' href='http://www.equi4.com/pub/tk/tclkit-win32.upx.exe' rel='nofollow'>Windows binary</a>.
</p>
<p class='vspace'>Just download saving as <em>wish.exe</em>,
and move into a directory in your path, eg.  <strong>C:/WINDOWS/SYSTEM</strong>.
</p>
<p class='vspace'>The windows sqlite is: <a class='urllink' href='http://www.sqlite.org/tclsqlite-3_6_2.zip' rel='nofollow'>http://www.sqlite.org/tclsqlite-3_6_2.zip</a>
</p>
<div class='vspace'></div><h2>Unix Users</h2>
<p>For unix users, the Tcl/Tk may well already be installed on your system.
If not, a package is almost certainly available for your distribution.
</p>
<p class='vspace'>Alternatively, an easy way to get started with Tcl/Tk is by downloading the
<a class='urllink' href='http://www.equi4.com/tclkit/download.html' rel='nofollow'>Starkit</a>, which contains a self contained
Tk binary:
</p>
<p class='vspace'>Just download saving as <strong>wish</strong>, set perms with <em>chmod a+rx wish</em>,
and put it somewhere in your the path, eg. <em>/usr/local/bin</em>.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 05, 2008, at 08:54 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.Tnt.html.















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / Tnt </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.Tnt' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>Tnt</h1></div>
<!--PageText-->
<div id='wikitext'>
<h1>TNT</h1>
<p>TNT is an ordered tree data structure for Tcl which provides automatic syncronization of
data to/from an SQLite database.
</p>
<p class='vspace'><a class='urllink' href='http://pdqi.com/man/TclLib/tree.htm' rel='nofollow'>TNT Tree</a>
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on March 18, 2012, at 08:43 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.WikiSandbox.html.





































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Main / WikiSandbox </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Main.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Main.WikiSandbox' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Main.html'>Main</a> /</div>
          <h1 class='pagetitle'>WikiSandbox</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>Feel free to use this page to experiment with the <a class='wikilink' href='PmWiki.TextFormattingRules.html'>Text Formatting Rules</a>.  Just click the "Edit Page" link at the bottom of the page.
</p><hr />
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Main.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on August 26, 2004, at 12:27 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Main.html.













































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Wize / Wize </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Wize.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Wize.Wize' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='http://jsish.sourceforge.net' rel='nofollow'>Jsish</a>
</li><li><a class='selflink' href='Wize.Wize.html'>Wize</a>
<ul><li><a class='wikilink' href='Mod.Demos.html'>Demos</a>
</li><li><a class='wikilink' href='Wize.Features.html'>Features</a>
</li><li><a class='wikilink' href='Wize.Screenshots.html'>Screenshots</a>
</li><li><a class='wikilink' href='Wize.Getting.html'>Download</a>
</li><li><a class='wikilink' href='Wize.Blt.html'>Blt</a>
</li><li><a class='wikilink' href='Wize.Tutorial.html'>Tutorial</a>
</li><li><a class='urllink' href='/man/index.html' rel='nofollow'>Docs</a>
</li><li><a class='wikilink' href='Wize.Faq.html'>Faq</a>
</li><li><a class='wikilink' href='Wize.Sitemap.html'>Sitemap</a>
</li></ul></li><li><a class='wikilink' href='Mod.Mod.html'>Mod</a>
</li><li><a class='wikilink' href='Mod.Apps.html'>Apps</a>
</li><li><a class='createlinktext' rel='nofollow'
    ''>Contact</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Wize.html'>Wize</a> /</div>
          <h1 class='pagetitle'>Wize</h1></div>
<!--PageText-->
<div id='wikitext'>
<p><i>(redirected from <a rel='nofollow' 
    ''>Main.HomePage</a>)</i></p>
<h1>WIZE (Retired)</h1>
<p>Note that WIZE is no longer being worked on and that
<a class='urllink' href='http://jsish.org/jsi' rel='nofollow'>Jsish</a> is the target of all future development.
</p>
<div class='vspace'></div><h2>What is Wize?</h2>
<p><a class='wikilink' href='Wize.Getting.html' title='Click to download wize'>Wize</a> is a simplified application development environment.
It enables scripting of
complex, but portable GUI applications.
Wize is based on a
patched Tcl/Tk 8.5.9 with extensions such as Blt.  Wize uses the <a class='wikilink' href='Wize.License.html'>BSD license</a>.
</p>
<div class='vspace'></div><h2>What is BLT?</h2>
<p><a class='wikilink' href='Wize.Blt.html'>Blt</a> is an extension for Tcl/Tk that
provides a powerful tree widget and a tree data structure, eg.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/tdboptions.gif' rel='nofollow'><img height='100px' src='./w/Download/tdboptions.gif' alt='' /></a> </div>
<p class='vspace'>Blt has been heavily patch and updated for Tcl 8.5, and
is available for download separately from Wize.
</p>
<div class='vspace'></div><h2>What features does Wize provide?</h2>
<table border='1' class='optstbl' ><tr ><td  align='left'><a class='wikilink' href='Mod.Gui.html'>Gui</a></td><td >A User Interface layout and style <em>engine</em></td></tr>
<tr ><td  align='left'><a class='wikilink' href='Wize.Validation.html'>Validation</a></td><td >Builtin code checker</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Debugging.html'>Introspect</a></td><td >Builtin introspection of code and data</td></tr>
</table>
<div class='vspace'></div><h2>What applications does it include?</h2>
<p>The following GUI applications are included with Wize.
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><td  align='left'><a class='wikilink' href='Wize.Tdb.html'>Tdb</a></td><td >a debugger frontend for GDB</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Ted.Ted.html'>Ted</a></td><td >a Tcl-aware editor</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Guild.html'>Guild</a></td><td >a user interface builder for GUI</td></tr>
<tr ><td  align='left'><a class='wikilink' href='Mod.Ledger.html'>Ledger</a></td><td >a home/office accounting app.</td></tr>
</table>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Wize.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on February 19, 2017, at 09:24 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Address.html.





































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Address </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Address' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Address</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Address Book</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/address.gui?view=markup' rel='nofollow'>address.gui</a>
</p>
<p class='vspace'>Address book provides a simple <a class='wikilink' href='Mod.Gui.html'>Gui</a> based implementation of
an address book.  It is used by <a class='wikilink' href='Mod.Mail.html'>Mail</a>, but can also be run
standalone.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/address1.gif' rel='nofollow'><img height='100px' src='./w/Download/address1.gif' alt='' /></a> <a target='_blank'  class='urllink' href='./w/Download/address2.gif' rel='nofollow'><img height='100px' src='./w/Download/address2.gif' alt='' /></a> </div>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 30, 2009, at 05:48 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Apps.html.





































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Apps </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Apps' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Apps</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Applications</h1>
<p>The following applications are available:
</p>
<div class='vspace'></div><ul><li><a class='wikilink' href='Wize.Tdb.html'>Tdb</a> - a debugger frontend for GDB
</li><li><a class='wikilink' href='Ted.Ted.html'>Ted</a> - a Tcl editor
</li><li><a class='wikilink' href='Mod.Guild.html'>Guild</a> - a user interface builder for GUI
</li><li><a class='wikilink' href='Mod.Ledger.html'>Ledger</a> - a home/office accounting app.
</li><li><a class='wikilink' href='Mod.Slider.html'>Slider</a> - an app for giving slide presentations
</li></ul><div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 22, 2010, at 10:52 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Autoimport.html.









































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Autoimport </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Autoimport' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Autoimport</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Autoimport</h1>
<p>Justifiably, Tcl users take pride in it's compactness, simplicity and small command set.
This very attribute however, can contribute Tcl seem apparent clumsiness and
awkward usage for simple, frequently repeated operations.  Moreover, the specifics
of dealing with namespaces, although
wonderful for organizing code, contributes further to Tcl's perception
of verbosity.
Autoimport offers a way to reduce these issues.
</p>
<p class='vspace'>Autoimport is a feature whereby commands are dynamically imports from other
namespaces on-demand, ie. when they are first called.
This works as follows.
When an unknown command is
encountered in a Tcl program, the command [unknown] tries to autoload it.
If this resolution fails,
an error is generated, and the program gets a traceback.
</p>
<p class='vspace'>Autoimport coopts [unknown] at the point of failure and tries
to import a matching subcommand from sets of well-known namespaces.
The namespace set may be specified explicitly using
[Mod <a class='wikilink' href='Mod.Uses.html'>uses</a>] but, by default, Mod will use subcommands
from the main <a class='wikilink' href='Mod.TclMod.html'>Tcl builtins</a> commands.
</p>
<p class='vspace'>Autoimport is implemented and normally used via <a class='wikilink' href='Mod.Uses.html'>Uses</a>, which
takes care of both loading module code (sourcing Tcl and loading shared libraries as required) and importing commands.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 15, 2007, at 02:01 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Backtrace.html.

















































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Backtrace </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Backtrace' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Backtrace</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Backtrace</h1>
<p>Decoding a Tcl error traceback can be very tedious.
This is particularly true
in larger applications involving 
hundreds of lines of backtrace and dozens of stack levels.
Therefore <a class='wikilink' href='Mod.Mod.html'>Mod</a> provides a facility that automatically decodes stack
tracebacks, presenting them in one-level-per-line format.
Th can also optionally stop the program right at an error, before the stack
unwinds in a traceback.
<em>(note: this facility is for handling runtime errors, and presumes program files have already sourced without error.)</em>
</p>
<p class='vspace'>Mod handles background errors by unwinding the stack backtrace
into a one per line listing which can then be used to navigate through source
code involved in an error.
Here a couple of screenshots.  The first is a
<a target='_blank'  class='urllink' href='./w/Download/backtrace.png' rel='nofollow'>real-error screenshot</a> and the
other the
<a target='_blank'  class='urllink' href='./w/Download/tcltrap.png' rel='nofollow'>install demo-error screenshot</a>.
Clicking on any given level, a <strong>M</strong>ini-<strong>ED</strong>itor <em>(Med)</em> will popup 
displaying the file/line of error.
<em>Med</em> provides only rudimentary
capabilities, however, it does support <strong>save</strong>
and so allows immediate editing and fixing of problems.
</p>
<p class='vspace'>One issue with debugging Tcl is that it normally does not collect file or line information
associated with procs.
Mod allows forcing this  collection by adding the following to the top of
your program (or setting it from command-line).
</p>
<div class='vspace'></div><pre class='escaped'>
 set ::env(TCL_WARN) all
</pre>
<p class='vspace'>When not using TCL_WARN or Wize -Wall,
Mod instead falls back to show just the proc definition.
</p>
<p class='vspace'>The backtrace window should look like:
</p>
<div class='vspace'></div><div  style='text-align: center;' class='img'><img src='./w/Download/backtrace.gif' alt='' title='' /></div>
<p class='vspace'>Clicking on any line should open a <em>Mini-Editor</em> window (see below).
</p>
<p class='vspace'><a name='inspect' id='inspect'></a>
</p><h2>Pausing A Program</h2>
<p>It is sometimes desirable to pause a running program 
right inside a <em>proc</em>, to allow inspection of the
runtime variables.  This can be achieved using
the <strong>.Break</strong> directive while running a program while running with -Wall.
</p>
<p class='vspace'>Here is an example:.
</p>
<div class='vspace'></div><pre class='escaped'>
    proc Invoke-Stop {_} {
        # Demo of pausing a program for inspection.
        set j 1
        .Break first
        incr j
        .Break second
    }
</pre>
<p class='vspace'>If run with checking on, this should open a window something like:
</p>
<div class='vspace'></div><div  style='text-align: center;' class='img'><img src='./w/Download/stoppgm.gif' alt='' title='' /></div>
<p class='vspace'>As shown, Tcl commands can be executed in the command input at bottom.
Closing the window will resume execution, pausing again at the next
<strong>.Break</strong>.
</p>
<p class='vspace'><a name='trap' id='trap'></a>
</p><h2>Trap</h2>
<p>Trap deals with
uncaught errors by stopping the program
right at the error to enable the user
to inspect variables.
</p>
<p class='vspace'>To enable it run the program like so:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize -Wlevel=all,trap=1 script.tcl
</pre>
<p class='vspace'>or put the following at the top of the main script
</p>
<div class='vspace'></div><pre class='escaped'>
   set ::env(TCL_WARN) "level=all,trap=1"
   package require Mod
</pre>
<p class='vspace'>Trap stops a program-event right at the point of error,
to allow introspection of the running program.
Commands can then be run within a procs error context,
prior to the unwinding of the stack.
</p>
<p class='vspace'>Another way to use trap
is selecting the <strong>trap</strong> option from <em>Teds</em> Run-Tcl.
</p>
<p class='vspace'><strong>WARNING:</strong> Do not always use the trap option as
it exercises obscure areas of Tcl and can intermittently crash.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 14, 2010, at 08:49 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Bigtable.html.





































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Bigtable </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Bigtable' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Bigtable</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Bigtable</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/bigtable.gui?view=markup' rel='nofollow'>bigtable.gui(View CVS source for bigtable.gui)</a>
</p>
<p class='vspace'>Bigtable is a
demo to display columns of vectors in a Tktable.  It can handle
tens of millions of cells because it does no auto-sizing.
It also demonstrates GUI's builtin Table -edit (uses an entry)
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/bigtable.gif' rel='nofollow'><img height='100px' src='./w/Download/bigtable.gif' alt='' /></a> </div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 11, 2010, at 10:21 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Bitmaps.html.



























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Bitmaps </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Bitmaps' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Bitmaps</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Non-Object Access To Bitmaps</h1>
<p>See <a class='wikilink' href='Mod.Photos.html'>Photos</a>
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 02, 2010, at 12:23 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.CAPI.html.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / CAPI </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.CAPI' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>CAPI</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
(:toc:)
</p><h1>CAPI</h1>
<p>CAPI converts a Tcl module into a <strong>C</strong> extension which
automatically
unloads arguments to C variables,
performs <a class='wikilink' href='Wize.Types.html'>type</a> checking.
and provides <a class='wikilink' href='Wize.Validation.html'>validation</a>
(when used with <a class='wikilink' href='Wize.Wize.html'>Wize</a>).
</p>
<p class='vspace'>CAPI works on modules (namespaces) of commands,
and the emphasis is on Tcl arguments rather
than <strong>C</strong> signatures (unlike
<a class='urllink' href='http://www.equi4.com/starkit/critcl.html' rel='nofollow'>Critcl</a>).
</p>
<div class='vspace'></div><h1>An Inline Example</h1>
<p>Here is an example using <strong>inline-C</strong> in the
body part after the marker <strong>#CBODY:</strong>. 
</p>
<div class='vspace'></div><pre class='escaped'>
# File "math.tcl"

namespace eval ::app::math {

  #Mod export
  namespace ensemble create
  namespace export {[a-z]*}

  proc add {i j} {#TYPES: . Double Double
    # Add two doubles together.
    return [expr {$i+$j}]

    #CBODY:
    Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i + arg_j));

  }

  proc sub {i j} {#TYPES: . Double Double
    # Subtract two doubles.
    return [expr {$i-$j}]

    #CBODY:
    Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i - arg_j));

  }

}
</pre>
<p class='vspace'>Generation of a <strong>.c</strong> file and shared library
is thus:
</p>
<div class='vspace'></div><pre class='escaped'>
  % wize /zvfs/wiz/capi.tcl math.tcl
  Generated: Appmath math.c ::app::math (2 commands)
  % gcc -g -shared -o libAppmath.so math.c
</pre>
<p class='vspace'>The last line compiles the generated file
<em>math.c</em> into a <strong>unix</strong>
shared .so library.
Note the shared library name is based on libname returned from
<em>CAPI</em> (the name after <strong>Generated:</strong>).
</p>
<p class='vspace'>For each proc, commands arguments are unloaded
to the C <em>double</em> variables
<strong>arg_i</strong> and <strong>arg_j</strong>.
If <strong>#TYPES:</strong> weren't specified
they would default to <em>char *</em>.
All argument indexes are stored in opt_NAME,
</p>
<div class='vspace'></div><h1>Library Load</h1>
<p>When a CAPI library is loaded it returns 4 values:
</p>
<div class='vspace'></div><ol><li>The namespace for the module.
</li><li>The library name as appears in [info loaded].
</li><li>The version for the module/package (default 0.0).
</li><li>Various of the non-empty options.
</li></ol><p class='vspace'>Note: these values are also set in the namespace variable
<strong>::app::math::pd(load)</strong>.
</p>
<p class='vspace'>Here is an example:
</p>
<div class='vspace'></div><pre class='escaped'>
  # File "tst.tcl"
  set inf [load ./libAppmath.so]
  puts "LOAD: $inf"
  set ns [lindex $inf 0]
  foreach i [info commands ${ns}::*] {
     puts "$i [extern $i]"
  }
  puts [::app::math::add 9 8]
  puts [$ns add 9 10]
  unload ./libAppmath.so
  exit 0
</pre>
<p class='vspace'>When run this outputs:
</p>
<div class='vspace'></div><pre class='escaped'>
  % wize tst.tcl
  LOAD: ::app::math Appmath 0.0 {-safe True -wize True -capi 1 -modtype 1}
  ::app::math::add {i j} {. Double Double} I {Add two doubles together.}
  ::app::math::sub {i j} {. Double Double} I {Subtract two doubles.}
  17
  19
</pre>
<p class='vspace'>The use of <a class='wikilink' href='Wize.Extern.html'>extern</a> is explained in the next section.
</p>
<div class='vspace'></div><h1>Validation</h1>
<p>Validation refers to using <strong>wize -wall</strong>
to statically check Tcl.
It is available, unless the library
was generated with <strong>-wize False</strong>.
</p>
<p class='vspace'>Following is an example:
</p>
<div class='vspace'></div><pre class='escaped'>
# File "foo.tcl"
load ./libappmath.so

proc Foo {} {
   return [app::math add 8 9 9]
}

proc Bar {} {
   set n [app::math add x 9]
   return [app::math div $n 9]
}
</pre>
<p class='vspace'>And here is a sample run:
</p>
<div class='vspace'></div><pre class='escaped'>
  % wize -Wall foo.tcl
  /tmp/foo.tcl:5: warning: too many args, expected parameters
      {i j} for "app::math add 8 9 9" in proc [::Foo] &lt;args,30&gt;.
  /tmp/foo.tcl:9: warning: for argument #1 "i", the value "x"
      does not match type &lt;Double&gt;  for "app::math add x 9" in
      proc [::Bar] &lt;types,4&gt;.
  /tmp/foo.tcl:10: warning: module sub-cmd "div" is not one of
      "add sub" for "::app::math div $n 9" in proc [::Bar]
       &lt;args,18&gt;.

</pre>
<div class='vspace'></div><h1>Mixing Tcl and C</h1>
<p>It is not uncommon for a module to be implemented
partly in C and partly in Tcl.  The following example
demonstrates not only this, but
also <em>fall-back to Tcl</em>
if the extension is unavailable:
</p>
<div class='vspace'></div><pre class='escaped'>
# File "math.tcl"
namespace eval ::app::math {

  #Mod export
  namespace ensemble create
  namespace export {[a-z]*}

  proc mult {i j} {#TYPES: . Double Double
    # multiply two doubles.
    return [expr {$i*$j}]
  }


  if {![catch { load [file dirname [info script]]/libAppmath.so }]} return
  # BEGIN C-ABLE FUNCTIONS

  proc add {i j} {#TYPES: . Double Double
    # Add two doubles together.
    return [expr {$i+$j}]

    #CBODY:
    Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i + arg_j));

  }

  proc sub {i {j 1}} {#TYPES: . Double Double
    # Subtract two doubles.
    return [expr {$i-$j}]

    #CBODY:
    Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i - arg_j));

  }

}
</pre>
<p class='vspace'>Here is a test file:
</p>
<div class='vspace'></div><pre class='escaped'>
#!/usr/bin/env wize
# File "mathtst.tcl"
source math.tcl
puts [app::math add 9 10]
puts [app::math mult 9 10]
puts "ADD: [expr {[catch {info body ::app::math::add}]?{C}:{Tcl}}]"
exit 0
</pre>
<p class='vspace'>and a script for running the test:
</p>
<div class='vspace'></div><pre class='escaped'>
#!/bin/sh
# File "runtest.sh"
set -x
rm -f libAppmath.so
wize /zvfs/wiz/capi.tcl math.tcl
gcc -g -shared -o libAppmath.so math.c

wize mathtst.tcl
rm libAppmath.so
wize mathtst.tcl
</pre>
<p class='vspace'>Here is the output from <em>runtest.sh</em>:
</p>
<div class='vspace'></div><pre class='escaped'>
+ rm -f libAppmath.so
+ wize /zvfs/wiz/capi.tcl math.tcl
skipping command: ::app::math::mult
Generated: Appmath math.c ::app::math (2 commands)
+ gcc -g -shared -o libAppmath.so math.c
+ wize mathtst.tcl
19.0
90
ADD: C
+ rm libAppmath.so
+ wize mathtst.tcl
19
90
ADD: Tcl
</pre>
<p class='vspace'><strong>Note:</strong> we ensure to remove <em>libAppmath.so</em> before re-running
<strong>capi</strong> or we will get
<strong>0 commands</strong> generated.
</p>
<div class='vspace'></div><h1>Non Inlined Code</h1>
<p>Inline code doesn't play well with validation and will
generate warnings if used with <em>-Wall</em>.
</p>
<p class='vspace'>There are two alternatives to inlining C-code.  
</p>
<p class='vspace'>The first is to use the <strong>-all</strong> option and then
manually editing the resulting <em>math.c</em>.
The problem with this approach
is that later regeneration of <em>math.c</em>
will lose these edits.
</p>
<p class='vspace'>A better alternative provides code bodies in an
<em>implementation file</em>,
specified using the <strong>-impl</strong> option.
The implementation files defines
an input array with one entry per proc.
Here is a simple implementation file
for a non-inlined <em>math.tcl</em>.
</p>
<div class='vspace'></div><pre class='escaped'>
# "File main.inc"
::app::math::add {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i + arg_j));
}
::app::math::sub {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i - arg_j));
}

</pre>
<p class='vspace'>which can be generated with:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize /zvfs/wiz/capi.tcl math.tcl -impl math.inc
</pre>
<p class='vspace'>Other options include:
<em>body load unload cmddelete cmdvars vars excludes</em>.
</p>
<p class='vspace'>Here is an implementation file using all these options:
</p>
<div class='vspace'></div><pre class='escaped'>
# "File main.inc"
::app::math::add {
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i + arg_j));
}
::app::math::sub {
   Subfunc(modPtr, cmdPtr);
   Tcl_SetObjResult(interp, Tcl_NewDoubleObj(arg_i - arg_j));
}
body {
  /* Code for body, eg. static C functions, vars, etc. */
  static int Subfunc(ModData *modPtr, CmdData *cmdPtr) {
     modPtr-&gt;cnt++;
     cmdPtr-&gt;subcnt++;
  }
}
load {
  /* Code for the library Init section. */
  modPtr-&gt;cnt = 1;
}
unload {
  /* Code called at unload of library. */
  printf("MODCNT: %d\n", modPtr-&gt;cnt);
}
cmddelete {
  /* Code called at delete of each proc. */
}
cmdvars {
  /* User vars for CmdData. */
  int subcnt;
}
vars {
  /* User vars for ModData. */
  int cnt;
}
# "One or more exclude patterns"
excludes {
   [A-Z]* _*
}
</pre>
<p class='vspace'><strong>Note 1:</strong> Comments use the <strong>#</strong> option.
</p>
<p class='vspace'><strong>Note 2:</strong> Although the two can be mixed,
<em>-impl</em> entries will override <em>#CBODY:</em>.
</p>
<div class='vspace'></div><h1>Mod export</h1>
<p>By default CAPI detects if you
have used <strong>Mod export</strong> and if so issues this call on load.
</p>
<p class='vspace'>Another advantage of
<em>Mod export</em> is that it defines the <em>pd</em> array
containing elements <em>script</em>, <em>dirname</em>, etc.
</p>
<div class='vspace'></div><h1>Stubs</h1>
<p>Here is how to build a library with
<a class='urllink' href='http://wiki.tcl.tk/285' rel='nofollow'>stubs</a>:
</p>
<div class='vspace'></div><pre class='escaped'>
 % wize /zvfs/wiz/capi.tcl main.tcl -stubs 8.5
 % gcc -g -shared -o libAppmath.so math.c  -ltclstub8.5 -ltkstub8.5
</pre>
<p class='vspace'>The stubs and include files for wize can be extracted using:
</p>
<div class='vspace'></div><pre class='escaped'>
 % wize /zvfs Admin/Headers /DEST/DIR
</pre>
<p class='vspace'>The appropriate -L and -I is then used with gcc.
</p>
<div class='vspace'></div><h1>Options</h1>
<p>Following are the options for the <strong>capi</strong> command.
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><th >Option</th><th >Default</th><th >Description</th></tr>
<tr ><td >-all</td><td >False</td><td >Include commands without #CBODY: or -impl entry</td></tr>
<tr ><td >-capi</td><td >1</td><td >Version of CAPI (read-only)</td></tr>
<tr ><td >-delns</td><td >False</td><td >Delete namespace on module unload</td></tr>
<tr ><td >-impl</td><td >&nbsp;</td><td >Implementation file</td></tr>
<tr ><td >-libname</td><td >&nbsp;</td><td >Library name to use for XXX_Init</td></tr>
<tr ><td >-modtype</td><td >1</td><td >Type of module (reserved for future use)</td></tr>
<tr ><td >-ns</td><td >&nbsp;</td><td >Namespace for output code</td></tr>
<tr ><td >-out</td><td >&nbsp;</td><td >Override default output file XXX.c</td></tr>
<tr ><td >-pkgname</td><td >&nbsp;</td><td >Package name to do a package provide with</td></tr>
<tr ><td >-stubs</td><td >&nbsp;</td><td >Version of stubs library to use</td></tr>
<tr ><td >-version</td><td >0.0</td><td >Version number for module</td></tr>
<tr ><td >-wize</td><td >True</td><td >Use wize typechecking api</td></tr>
</table>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 30, 2009, at 08:50 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Catchall.html.













































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Catchall </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Catchall' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Catchall</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Mod::errors::Catch ?on? ?cmdPattern ...?</h1>
<p>Sets up intermediary handler for commands given by patterns in args.
This can be used to report errors possibly masked by catch.
The command patterns specified in args are used with
[info commands].
</p>
<p class='vspace'>Value of on is as follows:
</p>
<div class='vspace'></div><ul><li>0 - turn off previous Catch 
</li><li>1 - turn on Catch
</li><li>2 - turn on Catch, but map errors to return {}
</li><li>3 - turn on Catch, and silently map errors to return {}
</li></ul>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on October 19, 2009, at 07:17 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Clockold.html.















































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Clockold </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Clockold' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Clockold</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>The Clockold Package </h1>
<p>This package provides the <em>[clockold]</em> command for Tcl 8.5+.
It is based on the older and faster version of <em>clock</em> from Tcl 8.4.19.
This package exists due to Tcl 8.5's <em>[clock]</em> changing from C to Tcl,
resulting in <em>[scan]</em> being 24 times slower, and <em>[format]</em>
being 3 times slower.
For applications performing extensive date manipulations (eg. the <a class='wikilink' href='Mod.Tad.html'>TAD</a> database)
the resulting performance impact can be huge.
</p>
<p class='vspace'>To build <em>clockold</em>, <a class='wikilink' href='Mod.Downloads.html'>download clockold.zip</a>, unpack, edit it's Makefile, and then type:
</p>
<div class='vspace'></div><pre class='escaped'>
  make install
</pre>
<div class='vspace'></div><h2>USAGE</h2>
<p>To use <em>[clockold]</em> in your scripts, do 
</p>
<div class='vspace'></div><pre class='escaped'>
  package require Clockold
</pre>
<p class='vspace'>and try it with <em>[clockold scan now]</em>.
</p>
<p class='vspace'>To make it the default, add the following to your script:
</p>
<div class='vspace'></div><pre class='escaped'>
  if {![catch {package require Clockold}]} {
     clock scan now
     interp alias {} ::clock {} ::clockold
  }
</pre>
<div class='vspace'></div><h2>SYSTEM WIDE INSTALL</h2>
<p>To make <em>clockold</em> the system default, ie. so scripts don't need changing,
append the above to init.tcl, or run "install.tcl" (possibly as root?), eg.
</p>
<div class='vspace'></div><pre class='escaped'>
   tclsh8.5 install.tcl
</pre>
<p class='vspace'>To build the extension into Tcl 8.5, see <a href='#BI'>BUILTIN</a> below.
</p>
<p class='vspace'><em>'NOTE: PLEASE DO NOT REPORT CLOCKOLD BUGS TO THE CORE!!!!</em>
</p>
<div class='vspace'></div><h2>USING BOTH CLOCKS</h2>
<p>The Tcl 8.5 clock is still available via <em>::tcl::clock::scan</em> etc.
It is also easy to switch clocks on a per namespace basis, eg.
</p>
<div class='vspace'></div><pre class='escaped'>
  namespace eval ::tcl::clock { namespace ensemble create }
  interp alias {} ::xx::clock {} ::tcl::clock
  interp alias {} ::yy::clock {} ::clockold
</pre>
<div class='vspace'></div><h2>TESTING</h2>
<p>To test <em>clockold</em>, you can run the script <em>test.tcl</em>.
Typical output is shown below.
</p>
<div class='vspace'></div><pre class='escaped'>
    TEST CLOCK PERFORMANCE (OLD=8.4, NEW=8.5.1)

    INITIAL CALL
    OLD scan:        285 microseconds per iteration
    OLD format:      235 microseconds per iteration
    NEW scan:        23031 microseconds per iteration
    NEW format:      2399 microseconds per iteration
    SPEEDUP: scan=8081%, format=1020%

    TIME 1000 CALLS
    OLD scan:        12.444 microseconds per iteration
    OLD format:      23.319 microseconds per iteration
    NEW scan:        319.821 microseconds per iteration
    NEW format:      83.533 microseconds per iteration
    SPEEDUP: scan=2570%, format=358%


    TEST CLOCK PERFORMANCE (OLD=8.4, NEW=8.6a1)

    INITIAL CALL
    OLD scan:        203 microseconds per iteration
    OLD format:      165 microseconds per iteration
    NEW scan:        27278 microseconds per iteration
    NEW format:      4178 microseconds per iteration
    SPEEDUP: scan=13437%, format=2532%

    TIME 1000 CALLS
    OLD scan:        11.552 microseconds per iteration
    OLD format:      18.926 microseconds per iteration
    NEW scan:        325.661 microseconds per iteration
    NEW format:      72.287 microseconds per iteration
    SPEEDUP: scan=2819%, format=381%
</pre>
<p class='vspace'><a name='BI' id='BI'></a>
</p><h2>STATIC BUILD</h2>
<p>Sometimes it is't possible or convenient
to load a shared library, eg. in embedded.
So the following example compiles <em>[clockold]</em> into the Tcl binary
on unix and automatically changing it to the default clock command.
</p>
<p class='vspace'>These assume you've unpacked all source into your home
directory, and that you've run <strong>./configure --disable-shared</strong>.
</p>
<div class='vspace'></div><pre class='escaped'>

   cd ~/clockold
   make Clockold.o
   cd ~/tcl8.5.3/unix
   patch -p0 ~/clockold/pat.dif
   make
   ar cr libtcl8.5.a  ~/oldclock/Clockold.o
   make

</pre>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on August 31, 2008, at 09:13 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.CookBook.html.





























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / CookBook </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />
<meta name='description' content='Time tested recipes for Mod' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.CookBook' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>CookBook</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h2>Cookbook For Mod.</h2>
<p>This page does or will contain time tested recipes for Mod.
</p><hr />
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on October 01, 2007, at 02:11 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Debugging.html.















































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Debugging </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Debugging' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Debugging</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Debugging Programs</h1>
<p>In Tcl, debugging has traditionally been limited to 
using <strong>puts</strong> or <strong>tclLog</strong>
statements in the code.  Herein we discuss some other alternatives.
</p>
<div class='vspace'></div><h2>Validating Programs</h2>
<p>Wize provides static code checking with:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize -Wall prog.tcl
</pre>
<p class='vspace'>This statically checks Tcl procs for <a class='wikilink' href='Wize.Validation.html'>validation</a>
</p>
<p class='vspace'>Even if a program passes validation, there can still be errors.
Here are a few debugging utilities.
</p>
<div class='vspace'></div><h2>.Break</h2>
<p>You can inspect variables within a running <strong>proc</strong>
vy inserting a <a class='wikilink' href='Mod.Backtrace#inspect.html'>.Break XXX</a> statement.
When this gets executed, the <a class='wikilink' href='Mod.TclInspect.html'>TclInspect</a> console
is invoked allowing the user to view/modify variables,
procs or edit the file.  The <strong>XXX</strong> label is optional
and is only used in locating code with multiple .Breaks.
</p>
<p class='vspace'>For example:
</p>
<div class='vspace'></div><pre class='escaped'>
  # File "foo.tcl"
  package require Mod

  proc Foo {n} {
     incr n
     .Break 1
     set n [expr {$n*2.3}]
     .Break 2
     return $n
  }

  puts [Foo 1]
  exit 0
</pre>
<p class='vspace'>Run this with:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize -Wall foo.tcl
</pre>
<p class='vspace'>This will invoke <a class='wikilink' href='Mod.TclInspect.html'>TclInspect</a> where you can examine
and change variables.
</p>
<div class='vspace'></div><h2>Error Trap</h2>
<p>Sometimes it's desirable to debug a <strong>proc</strong> that is causing a
<em>traceback</em>.  Tracebacks are useful for showing
that an error occurred, but unfortunately the
current state information is lost by the time the
stack unwinds.
</p>
<p class='vspace'>With <strong>Mod</strong> an application can trap errors using
<strong>::env(TCL_TRAP)</strong>.  This
invokes <a class='wikilink' href='Mod.TclInspect.html'>TclInspect</a> right at the error, much like
<strong>.Break</strong>, eg.
</p>
<div class='vspace'></div><pre class='escaped'>
  wize  -Wlevel=all,trap=1 bad.tcl
</pre>
<p class='vspace'>See <a class='wikilink' href='Mod.Backtrace#trap.html'>Trap</a> for more details.
</p>
<div class='vspace'></div><h2>Tracing Proc Calls</h2>
<p>You can trace all commands by calling
<a class='urllink' href='http://pdqi.com/man/mann/bltdebug.html' rel='nofollow'>bltdebug</a>.
</p>
<p class='vspace'>Wize supports tracing of all <strong>proc</strong> calls using:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize -Wproccalls=3 prog.tcl
</pre>
<p class='vspace'>See <a class='wikilink' href='Wize.Analysis.html'>Analysis</a> for details.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 14, 2010, at 08:47 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Demos.html.















































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Demos </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Demos' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Demos</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Demos for Mod/GUI</h1>
<p>Following are a collection
of single file demos that are included with <a class='wikilink' href='Mod.Gui.html'>Gui</a>.
(See also <a class='wikilink' href='Apps.Apps.html'>Apps</a>).
</p>
<p class='vspace'>These provide a representative sample of typical applications
and/or demonstrate specific features.
</p>
<div class='vspace'></div>
<table border='1' class='optstbl' ><tr ><th  align='center'>Application</th><th  align='center'>Description</th></tr>
<tr ><td ><a class='wikilink' href='Mod.Ledger.html'>ledger.tcl</a></td><td >A personal finance application.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Guild.html'>guild.gui</a></td><td >The GUI Layout Designer.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gedit.html'>gedit.tcl</a></td><td >A basic Gui based editor.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Geditor.html'>geditor.tcl</a></td><td >A more sophisticated editor.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gradient.html'>gradient.gui</a></td><td >A gradient image editor.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Top.html'>top.gui</a></td><td >A Gui frontend to unix top.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gpackage.html'>gpackage.gui</a></td><td >A Gui frontend to rpm/dpkg.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gsqlite.html'>gsqlite.tcl</a></td><td >A Gui frontend to sqlite.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Manview.html'>manview.tcl</a></td><td >A unix manpage viewer.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gphoto.html'>gphoto.tcl</a></td><td >Photo viewer.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Bigtable.html'>bigtable.gui</a></td><td >A large table demo.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Gexplore.html'>gexplore.tcl</a></td><td >Start of a filesystem viewer.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Mail.html'>mail.gui</a></td><td >An email user interface demo.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Round.html'>round.gui</a></td><td >Simple rounded frames demo.</td></tr>
<tr ><td ><a class='wikilink' href='Mod.Sframe.html'>sframe.gui</a></td><td >Simple scrolled frames demo.</td></tr>
</table>
<p class='vspace'>Source for all are available from
<a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/' rel='nofollow'>CVS</a>.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on April 02, 2010, at 07:52 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Devel.html.































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Devel </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Devel' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Devel</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Development</h1>
<p>The devel macro commands are used to
simplify debugging when <a class='wikilink' href='Mod.Warnings.html'>warnings</a> are enabled.
If warnings are disabled, these all return the
empty string and do nothing.
</p>
<p class='vspace'>Moreover,
the commands can become Tcl <strong>noops</strong> by calling <a class='wikilink' href='Mod.Ndebug.html'>Mod ndebug</a>:  A noop has zero runtime overhead.
</p>
<p class='vspace'>Here's an example:
</p>
<div class='vspace'></div><pre class='escaped'>
  proc Foo {n m} {
     .Trace
     .Assert {$n&gt;0 &amp;&amp; $n&lt;1000} 1
     if {[.Debug] != {}} {
        CheckRange $m $n
     }
     .Debug {
        if {$n &lt; $m} { .Break BadN1 }
     }
     .Warn "Begin processing"
     return $n.0
  }
</pre>
<p class='vspace'>Note that all commands start with period + capital letter.
</p>
<p class='vspace'>Below are the supported commands.
</p>
<div class='vspace'></div><h2>.Assert expr ?warnonly?</h2>
<p>Evaluate the expression <em>expr</em>.
The expression should use curley braces to avoid a double eval.
If <em>warnonly</em>==1 then calls <em>.Warn</em> instead of causing an error.
If <em>warnonly</em>&gt;1 the output contains detailed
stack info (ie. to help debugging).
</p>
<div class='vspace'></div><pre class='escaped'>
  .Assert {$n&gt;0}
  .Assert {$n&gt;1} 1
  .Assert {$n&lt;-1} 2
</pre>
<div class='vspace'></div><h2>.Break ?str?</h2>
<p>Invoke <a class='wikilink' href='Mod.TclInspect.html'>Tcl inspect</a>, eg.
</p>
<div class='vspace'></div><pre class='escaped'>
  .Break stop1
</pre>
<div class='vspace'></div><h2>.Debug ?script?</h2>
<p>If called with no argument it
returns the current debug level.
Otherwise
evaluate the <em>script</em> and issue a warning
only if an error occurs.
</p>
<p class='vspace'>Usage:
</p>
<div class='vspace'></div><pre class='escaped'>
  if {[.Debug]!=""} {
     if {$m==$n} { error "equal error" }
  }
  .Debug {
     if {$n&lt;$m} { error "range error" }
  }
</pre>
<p class='vspace'><strong>WARNING:</strong> Do not do the following as it can result
in a runtime error:
</p>
<div class='vspace'></div><pre class='escaped'>
if {[.Debug]} { #... }
</pre>
<div class='vspace'></div><h2>.Error str ?subst?</h2>
<p>Kick an error.
If <em>subst</em> is true, evaluate <em>str</em> first.
</p>
<p class='vspace'>The following are roughly equivalent:
</p>
<div class='vspace'></div><pre class='escaped'>
  .Error {bad call: $n} 1
  if {[.Debug] != {}} { error "bad call: $n" }
</pre>
<div class='vspace'></div><h2>.Trace ?-num cnt? ?-fmt bool? ?-prefix str?</h2>
<p>Dump the call-stack info from the current proc.
The default is to dump only the current proc,
with no formatting or prefix.  Using a <em>cnt</em> of
<strong>-1</strong> will dump the whole call-stack.
</p>
<p class='vspace'>If <strong>-fmt</strong> is <em>true</em>, show a in name=value form
</p>
<div class='vspace'></div><pre class='escaped'>
  proc Foo {n} {
     .Trace -num -1 -fmt 1
  }
</pre>
<div class='vspace'></div><h2>.Warn str ?subst?</h2>
<p>Log a warning message using tclLog.
If <em>subst</em> is true, evaluate <em>str</em> first.
</p>
<div class='vspace'></div><pre class='escaped'>
  .Warn "Something bad happened"
  .Warn {Range error: $m&gt;$n} 1
</pre>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 14, 2010, at 08:38 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.DocView.html.



























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / DocView </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.DocView' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>DocView</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Docview</h1>
<p>Docview is a simple document viewer.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on May 18, 2009, at 09:13 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Docgen.html.









































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Docgen </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Docgen' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Docgen</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Docgen</h1>
<div > 
</div>
<p>Docgen is part of Mod that is used mainly via <a class='wikilink' href='Ted.Ted.html'>Teds</a> <em>/File/Development/API-Manual</em>.
It is used to extract information from comments and signatures
in Tcl modules to generate a API reference page.
</p>
<p class='vspace'>The main advantage over just reading the code is that the information 
is sorted, formatted and presented in a concise fashion that does
not require wading through large bodies of code.
</p>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on July 09, 2008, at 08:42 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Downloads.html.











































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Downloads </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />
<meta name='description' content='Download For Mod' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Downloads' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Downloads</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h2>Download Mod</h2>
<p>Mod (including Tod and XTL) is located within the <em>ted/Mod</em> sub-directory in the <a class='wikilink' href='Ted.Downloads.html'>Ted</a> package. 
</p>
<div class='vspace'></div><h2>Download Tabular</h2>
<p><a class='urllink' href='./w/Download/Tabular1_0.zip' rel='nofollow'>Path:./w/Download/Tabular1_0.zip</a> (also contains <em>EdTbl</em>).
</p>
<div class='vspace'></div><h2>Download Clockold</h2>
<p><a class='urllink' href='./w/Download/clockold.zip' rel='nofollow'>Path:./w/Download/clockold.zip</a>
</p>
<p class='vspace'>(:attachlist:)
</p>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 02, 2008, at 07:52 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.EdiTbl.html.



































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / EdiTbl </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.EdiTbl' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>EdiTbl</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h2>EdiTbl</h2>
<p><strong>EdiTbl</strong> is a flat-file database
table manager for <a class='wikilink' href='Main.TclTk.html'>Tcl/Tk</a>.
It's primary purpose is as a <em>test-frame</em> for
<a class='wikilink' href='Mod.Tabular.html'>Tabular</a> (which it uses for table display) and <a class='wikilink' href='Mod.Tad.html'>Tad</a> (which it uses for queries).
It also has support for <a href='#sqlite'><em>sqlite</em> (discussed below)</a>.
</p>
<p class='vspace'>To use it, simply run:
</p>
<div class='vspace'></div><pre class='escaped'>
     wish EdiTcl.tcl FILE
</pre>
<p class='vspace'>If <em>FILE</em> does not exist, the table creation dialog appears, as discussed in <a href='#fields'>Field Definitions</a>.
</p>
<p class='vspace'>If it does exist, and is a database, you should see something like: <a target='_blank'  class='urllink' href='./w/Download/tables.gif' rel='nofollow'><img width='100px' src='./w/Download/tables.gif' alt='' /></a>
</p>
<div class='vspace'></div><h2>Tabular Commands</h2>
<p>EdiTbl enables direct access to Tabular commands. eg:
</p>
<div class='vspace'></div><pre class='escaped'>
col hide 2 True
modify 3,55 "New value"
sub body tag conf #col0 -background blue
</pre>
<div class='vspace'></div><h2>Tad Queries</h2>
<p>Queries are supported via the <strong>query</strong> and <strong>tquery</strong> commands,
eg.
</p>
<div class='vspace'></div><pre class='escaped'>
query $age&lt;10
q {$age&lt;10 &amp;&amp; $age&gt;5} -fmt 1
</pre>
<p class='vspace'>Here are some sample outputs:
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/Tab/stations.gif' rel='nofollow'><img width='100px' src='./w/Download/Tab/stations.gif' alt='' /></a>  Simple results display in the status line.</div>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/Tab/query.gif' rel='nofollow'><img width='100px' src='./w/Download/Tab/query.gif' alt='' /></a> Longer output uses a text popup.</div>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/Tab/tquery.gif' rel='nofollow'><img width='100px' src='./w/Download/Tab/tquery.gif' alt='' /></a>  The command <strong>tquery</strong> works like <strong>query</strong>, except it displays the results in a new table.</div>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/Tab/edittbl.gif' rel='nofollow'><img width='100px' src='./w/Download/Tab/edittbl.gif' alt='' /></a> Here is a screenshot of a full session.</div>
<p class='vspace'><a name='fields' id='fields'></a>
</p><h2>Field Definitions</h2>
<p>If EdiTbl is invoked with a <strong>FILE</strong> name that does not yet exist, the table creation dialog appears: <a target='_blank'  class='urllink' href='./w/Download/Tab/products.gif' rel='nofollow'><img width='100px' src='./w/Download/Tab/products.gif' alt='' /></a> .
</p>
<p class='vspace'>This allows defining field (column) names for a table.
These may simply be entered as a list of names such as:
</p>
<div class='vspace'></div><pre class='escaped'>
    Lastname Firstname Age Sex
</pre>
<p class='vspace'>or be braced to add additional information, such as default value, description
and/or -type options. eg
</p>
<div class='vspace'></div><pre class='escaped'>
    Lastname Firstname {Age {} "Your Age" -type int} {Sex F "Your Gender" -type {Choice F M}}
</pre>
<div class='vspace'></div><ul><li>In "Age" above, the default value is "". and type is "int".
</li><li>In "Sex" above, the default value is "F".
</li></ul><p class='vspace'>Types are used both for validating values, and providing custom
user interface editing dialogs.   Thus, using <em>-type {Choice F M}</em> 
invokes a combo box at editing time.
</p>
<p class='vspace'>Currently recognized types include:
</p>
<div class='vspace'></div><pre class='escaped'>
    int double bool choice string match matchi regexp regexpi
   date is list nlist dict options
</pre>
<p class='vspace'>A type may begin with a capital to imply it is strict, ie. can not be null.
Also note that some types take arguments (eg. choice, match, etc).
</p>
<p class='vspace'>For more information on types see <a class='wikilink' href='Wize.Types.html'>Types</a> and <a class='wikilink' href='Mod.Opt.html'>Opts</a>.
</p>
<p class='vspace'>NOTE: in non-keyint array, the first field is used as the keyname, keytype, etc.
</p>
<p class='vspace'><a name='sqlite' id='sqlite'></a>
</p><h2>Sqlite</h2>
<p>When the Tcl <em>sqlite</em> interface is available,
EdiTbl supports <a class='urllink' href='http://www.sqlite.org/' rel='nofollow'>sqlite</a> tables
Tables may be interactively queried and updated.
Expressions used with <em>query</em>  are automatically converted to 
<em>Sql</em> select statements.
Alternatively, the <em>sql</em> command can be used to directly invoke sql commands.
</p>
<p class='vspace'>To create a new empty database, use:
</p>
<div class='vspace'></div><pre class='escaped'>
   wish EdiTbl.tcl mydb.dat -sql 1
</pre>
<p class='vspace'>Tables can be created with raw 'sql' commands, eg:
</p>
<div class='vspace'></div><pre class='escaped'>
   sql create table mytbl (item, qty int, price float)
</pre>
<p class='vspace'>after which you should exit and restart EdiTbl.
</p>
<p class='vspace'><strong>Note:</strong> unlike flat-file tables, <em>sqlite</em> table updates are instantaneous and do not require an explicit save.
</p>
<div class='vspace'></div><h2>Command Reference</h2>
<p>The following commands are available in <em>EdiTbl</em>.  Note, these can 
be displayed with <strong>help</strong>:
</p>
<div class='vspace'></div><pre class='escaped'>
COMMAND   ARGS                   DESCRIPTION
--------------------------------------------------------------------------------
activate  w cell1 cell2 istitle  Make given cell(s) active and visible.
bbox      w cell leading         Return bounding box of cell
cget      w opt                  Get a config option.
clear     w                      Erase the contents of body view.
col       cmd args               SUBCOMMANDS
conf      w args                 Modify config options.
coords    w cell                 Get char indices for cell at idx.
edit      w cell op              Activate cell and begin editing.
eval      *                      Eval a command in the -variables namespace
find      w string args          Search for string in body and activate cell.
get       w cell args            Get text string for cell given by index.
icfg      w args                 Change internal config.
index     w cell intitle         Return index spec in COL,ROW form.
query     *                      Evaluate expression over variable (using 'tad')
readonly  w cell ro              Get or set cells readonly state of cell.
redraw    w args                 Schedule redraw of cells in visible viewport.
row       cmd args               SUBCOMMANDS
see       w cell redraw          Arrange for the given cell to be made visible.
sql       *                      Relay command to sql for evaluation
sub       w target cmd args      Invoke sub-command on component (body or title).
tad       *                      Relay command to tad for evaluation
tag       cmd args               SUBCOMMANDS
tquery    *                      Same as 'query' but creating a new tmp table
tree      cmd args               SUBCOMMANDS
update    w cell value args      Set or change text, image or window in cell.
xview     w args                 Manage x viewport.
yview     w args                 Manage y viewport.


NOTE: An extension has ARGS == '*'.
</pre>
<div class='vspace'></div><h3>Row Subcommands</h3>
<pre class='escaped'>
COMMAND   ARGS              DESCRIPTION
--------------------------------------------------------------------------------
align     w row aligns     Set or get per row columns alignments.
autofill  w force          Force loading of deferred data now.
delete    w row args       delete 1 or more rows.
get       w row start end  Return list text values for all or part of row.
hide      w row hide args  Set row hidden state or get list of all hidden rows.
index     w row            Translate row name to an row index number.
insert    w args           Insert row of values.
markup    w line1 line2    Add markup (tags) to line.
node      w row row2       Return the #NNN node id for the given row.
offsets   w row embeds     Return list of text indexes for cell end chars in row.
readonly  w row ro         Set or get rows readonly state.
update    w row list args  Update entire text data values for row.
</pre>
<div class='vspace'></div><h3>Col Subcommands</h3>
<pre class='escaped'>
COMMAND   ARGS                DESCRIPTION
--------------------------------------------------------------------------------
align     w row aligns     Set or get per row columns alignments.
autofill  w force          Force loading of deferred data now.
delete    w row args       delete 1 or more rows.
get       w row start end  Return list text values for all or part of row.
hide      w row hide args  Set row hidden state or get list of all hidden rows.
index     w row            Translate row name to an row index number.
insert    w args           Insert row of values.
markup    w line1 line2    Add markup (tags) to line.
node      w row row2       Return the #NNN node id for the given row.
offsets   w row embeds     Return list of text indexes for cell end chars in row.
readonly  w row ro         Set or get rows readonly state.
update    w row list args  Update entire text data values for row.
</pre>
<div class='vspace'></div><h3>Tag Subcommands</h3>
<pre class='escaped'>
COMMAND    ARGS                    DESCRIPTION
--------------------------------------------------------------------------------
add        w tag cell1 cell2 args  Add tag to cells.
conf       w tag args              Configure tag for body; same as [sub body tag conf].
nextrange  w tag cell1 cell2       Return next range of cells with tag.
prevrange  w tag cell1 cell2       Return previous range of cells with tag.
ranges     w tag args              Return list of cells with tag.
remove     w tag cell1 cell2 args  Remove tag from cells.
value      w cell option args      Return value or name of option(s) set at cell.
</pre>
<div class='vspace'></div><h3>Tree Subcommands</h3>
<pre class='escaped'>
COMMAND   ARGS                DESCRIPTION
--------------------------------------------------------------------------------
children  w cell args         Return list of children for cell.
close     w cell1 cell2 args  Close trees if open.
init      w start end         Update raw inserted text with tree tags, image, etc..
isopen    w cell              Return isopen status for row.
istree    w cell              Return 1 if cell has a subtree.
level     w cell              Return nest level of tree (ie. leading spaces/4).
open      w cell1 cell2 args  Open trees if closed.
parent    w cell              upvar #0 [set pns [namespace parent]]::$w {}
path      w cell args         Return the tree path-list down to given cell.
toggle    w cell args         Toggle open/close of subtree  cell.
</pre>
<div class='vspace'></div><h2>Issues</h2>
<p>Tcl 8.4 is recommended for EdiTbl and Tabular,
because Tcl versions 8.5 and above have several <a class='wikilink' href='Mod.TclIssues.html'>scaling issues</a>.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on June 06, 2009, at 06:16 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Export.html.





















































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Export </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Export' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='selflink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Export</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Export</h1>
<p><strong>[Mod export]</strong> is the mechanism used by a namespace to declare
itself as a <em>Module</em> and exporting its commands.
A module is a convienient way of packaging-up a
namespace as a collection of sub-commands, often
used in conjuction with <a class='wikilink' href='Mod.Uses.html'>[Mod uses</a>].
Here is a simple but complete module containing two member sub-commands.
</p>
<div class='vspace'></div><pre class='escaped'>
  package require Mod
  namespace eval ::myns::foobar  {
     Mod export
     proc foo a { return "foo$a" }
     proc bar {a b} { return "bar$a,$b" }
  }
</pre>
<div class='vspace'></div><h2>Using Modules</h2>
<p>Normally a module would be used with [Mod <a class='wikilink' href='Mod.Uses.html'>uses</a>] via <a class='wikilink' href='Mod.Autoimport.html'>Autoimport</a>.
However, traditional Tcl usage is also possible:
</p>
<div class='vspace'></div><pre class='escaped'>
namespace eval ::myapp {
  namespace import ::myns::foobar::* ::myns::foobar
  prod work {args} {
    foo 99
    bar 88
    foobar bar 77
  }
}
</pre>
<p class='vspace'>Mod and uses are intended to address the downsides of namespace
handling in traditonal Tcl, namely:
</p>
<div class='vspace'></div><ol><li>Code for ::myns::foobar must be loaded before it can be imported.
</li><li>All functions normally get imported at once, rather than just the needed ones.
</li></ol><div class='vspace'></div><h2>Ensembles</h2>
<p>A module shares characteristics
of an <a class='urllink' href='/tcl/index.html#ensemble' rel='nofollow'>namespace ensemble</a>  <em>(and in fact when using 8.5 Ensembles are used in the implementation)</em>  but with the
following additional attributes:
</p>
<div class='vspace'></div><ol><li>Command calls under 8.4 or less may not use shortform commands
</li><li>The command created in the parent namespace also gets exported.
</li><li>The [Mod export] command performs various other housekeeping.
</li></ol><p class='vspace'>That's the reason the above example uses a nested sub-namespace:
the <em>foobar</em> comand becomes available as a subcmd of <em>myns</em>.
This allows
users of the module to import and use it without contaminating the :: namespace.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 14, 2008, at 02:07 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Faq.html.



















































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Faq </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Faq' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Faq</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h2>A Tod object call to a subnamespace fails</h2>
<p>The <strong>_</strong> variable must be defined before
calling <strong>Mod export</strong>.  eg.
</p>
<div class='vspace'></div><pre class='escaped'>
namespace eval ::foo::sub1 {
   variable _
   array set _ {}
   Mod export
   # ...
}
</pre>
<div class='vspace'></div><h2>Does GUI Support Conditionals</h2>
<p class='vspace'>Yes, by using <strong>eval</strong>.
</p>
<div class='vspace'></div><pre class='escaped'>
{Toplevel + -title "Simple Editor"} {    

    {Text} {}
    {Frame + -pos _ -subpos l} {
        Button Quit
        eval {
            if {$tcl_version&gt;8.3 &amp;&amp; !$pp(-use83)} {
                return {{Spinbox - -id status -pos *l} {}}
            } else {
                return {{Entry - -id status -pos *l} {}}
            }
        }
    }
}
</pre>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 14, 2010, at 05:06 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Fonts.html.









































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Fonts </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Fonts' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Fonts</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Fonts</h1>
<p>Manage named fonts associated with windows.
Supports the following:
</p>
<div class='vspace'></div><ol><li>resize fonts in a window hierarchy.
</li><li>map font requests to preferred sizes
</li><li>naming service within a window/toplevel.
</li><li>font deletion chained upon destruction of the window.
</li></ol><p class='vspace'>The [winfo id] is uses as a prefix for the name of a tk named font.
</p>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 02, 2010, at 12:28 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gedit.html.



































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gedit </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gedit' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gedit</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Gedit</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/gedit.tcl?view=markup' rel='nofollow'>gedit.tcl</a>
</p>
<p class='vspace'>Gedit is a very simple <a class='wikilink' href='Mod.Gui.html'>Gui</a> program implementing a
editor.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gedit.gif' rel='nofollow'><img height='100px' src='./w/Download/gedit.gif' alt='' /></a> </div>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 23, 2009, at 12:52 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Geditor.html.

























































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Geditor </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Geditor' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Geditor</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Geditor</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/geditor.tcl?view=markup' rel='nofollow'>geditor.tcl</a>
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/geditor.gif' rel='nofollow'><img height='100px' src='./w/Download/geditor.gif' alt='' /></a> <a target='_blank'  class='urllink' href='./w/Download/geditor2.gif' rel='nofollow'><img height='100px' src='./w/Download/geditor2.gif' alt='' /></a> </div>
<p class='vspace'>Geditor is a tabbed editor demonstrating the basic
elements of a <a class='wikilink' href='Mod.Gui.html'>Gui</a> layout, including:
</p>
<div class='vspace'></div><ul><li>styles including key and image maps.
</li><li>menus, both menubar and popup.
</li><li>icons support for menu items.
</li><li>a find dialog launched with &lt;Control-s&gt;.
</li><li>an <em>about</em> dialog lauched from the Help menu.
</li><li>launch of a new Toplevel instance.
</li></ul><p class='vspace'>Here is an example usage:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize / Mod/Geditor *.tcl
</pre>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on May 18, 2010, at 06:06 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gexplore.html.



































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gexplore </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gexplore' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gexplore</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Gexplore</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/gexplore.tcl?view=markup' rel='nofollow'>gexplore.tcl</a>
</p>
<p class='vspace'>Gexplore is a file viewer in the spirit of explorer,
that displays files in a TreeView.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gexplore.gif' rel='nofollow'><img height='100px' src='./w/Download/gexplore.gif' alt='' /></a> </div>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 23, 2009, at 12:53 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gpackage.html.



































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gpackage </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gpackage' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gpackage</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Gpackage</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/gpackage.gui?view=markup' rel='nofollow'>gpackage.gui(View CVS source for gpackage.gui)</a>
</p>
<p class='vspace'>Gpackage displays <strong>rpm</strong> or <strong>dpkg</strong> packages available on
a system.  Currently it is limited to browsing and
uninstalling packages.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gpackage.gif' rel='nofollow'><img height='100px' src='./w/Download/gpackage.gif' alt='' /></a> </div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on January 11, 2010, at 10:20 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gphoto.html.

































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gphoto </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gphoto' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gphoto</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Gphoto</h1>
<p>Source: <a class='urllink' href='http://wize.cvs.sourceforge.net/viewvc/wize/wize2/Mod/gui/demos/gphoto.tcl?view=markup' rel='nofollow'>gphoto.tcl</a>
</p>
<p class='vspace'>A photo viewer.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gphoto.gif' rel='nofollow'><img height='100px' src='./w/Download/gphoto.gif' alt='' /></a> </div>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on November 23, 2009, at 12:55 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gradient.html.









































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gradient </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gradient' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gradient</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Gradient</h1>
<p>Gradient is a <a class='wikilink' href='Mod.Gui.html'>Gui</a> application for experimenting with <a class='wikilink' href='Wize.Gradient.html'>gradients</a>.
Various parameters can be changed. The resulting gradient
value shown in the status line at the bottom may also be edited directly, with
hitting <em>Enter</em> causing it to take effect.
</p>
<p class='vspace'>A gradient value is most commonly used as input into a Gui <a class='wikilink' href='Wize.Gradient#defgradients.html'>@defgradients</a>.
Here is a screenshot.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gradprog.gif' rel='nofollow'><img height='300px' src='./w/Download/gradprog.gif' alt='' /></a> </div>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 20, 2010, at 04:56 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.GroupHeader.html.





















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / GroupHeader </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.GroupHeader' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>GroupHeader</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on June 13, 2007, at 10:45 AM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gsqlite.html.











































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gsqlite </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gsqlite' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='wikilink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gsqlite</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)
</p><h1>Gsqlite</h1>
<p>Gsqlite is a user interface for
<a class='wikilink' href='Wize.Sqlite.html'>Sqlite</a>.
It is modeled somewhat after <em>Sqlite Studio</em>,
but it's main purpose is to demonstrate how <a class='wikilink' href='Mod.Gui.html'>Gui</a>
can enable
single file applications.
</p>
<p class='vspace'>You can run Gsqlite from <a class='wikilink' href='Wize.Wize.html'>Wize</a>, eg:
</p>
<div class='vspace'></div><pre class='escaped'>
  wize / Mod/Gsqlite mydata.db
</pre>
<p class='vspace'>There is currently no documentation other
than a few screenshots:
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gsqlite.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqlite.gif' alt='' /></a>  <a target='_blank'  class='urllink' href='./w/Download/gsqlite2.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqlite2.gif' alt='' /></a> <a target='_blank'  class='urllink' href='./w/Download/gsqlite3.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqlite3.gif' alt='' /></a> <a target='_blank'  class='urllink' href='./w/Download/gsqlite4.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqlite4.gif' alt='' /></a> <a target='_blank'  class='urllink' href='./w/Download/gsqlite5.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqlite5.gif' alt='' /></a> </div>
<h2>Sqlite Server</h2>
<p>Gsqlite can run <a class='wikilink' href='Mod.SqliteSock.html'>SOS</a> in sqlite server mode.
This is launched from the File menu.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gsqlitesrv.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqlitesrv.gif' alt='' /></a> </div>
<h2>Sqlite Client</h2>
<p>Gsqlite can run <a class='wikilink' href='Mod.SqliteSock.html'>SOS</a> in sqlite client mode.
This is launched from the File menu.
</p>
<div class='vspace'></div><div class='img'><a target='_blank'  class='urllink' href='./w/Download/gsqliteclnt.gif' rel='nofollow'><img height='300px' src='./w/Download/gsqliteclnt.gif' alt='' /></a> </div>
<div class='vspace'></div>
</div>

      </td>
    </tr></table>
<!--PageFooterFmt-->
  <div id='wikifoot'>
    <div class='footnav'>
      <a rel="nofollow" ''>Edit</a> -
      <a rel="nofollow" ''>History</a> -
      <a rel="nofollow" '' target='_blank'>Print</a> -
      <a href='Mod.RecentChanges.html'>Recent Changes</a> -
      <a href='Site.Search.html'>Search</a></div>
    <div class='lastmod'>Page last modified on September 20, 2010, at 05:02 PM</div></div>
<!--HTMLFooter-->
</body>
</html>

Added Mod.Gui.html.









































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
<!DOCTYPE html 
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>PmWiki | Mod / Gui </title>
  <meta http-equiv='Content-Style-Type' content='text/css' />
  <link rel='stylesheet' href='pub/skins/pmwiki/pmwiki.css' type='text/css' />
  <!--HTMLHeader--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code.escaped { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  
  .rtl, .rtl * {direction:rtl; unicode-bidi:bidi-override;}
  .ltr, .ltr * {direction:ltr; unicode-bidi:bidi-override;}
  .rtl .indent, .rtl.indent, .rtl .outdent, .rtl.outdent {
    margin-left:0; margin-right: 40px;
  }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border:2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  table.vert td.markup1 { border-bottom:1px solid #ccf; }
  table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
  table.markup caption { text-align:left; }
  div.faq p, div.faq pre { margin-left:2em; }
  div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
  div.faqtoc div.faq * { display:none; }
  div.faqtoc div.faq p.question 
    { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
  div.faqtoc div.faq p.question * { display:inline; }
  td.markup1 pre { white-space: pre-wrap; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none;}

--></style><meta http-equiv='Content-Type' content='text/html; charset=utf-8' />  <meta name='robots' content='index,follow' />

</head>
<body>
<!--PageHeaderFmt-->
  <div id='wikilogo'><a href='index.php'><img src='http://localhost/pmwiki/pub/skins/pmwiki/pmwiki-32.gif'
    alt='PmWiki' border='0' /></a></div>
  <div id='wikihead'>
  <form action='http://localhost/pmwiki/index.php'>
    <span class='headnav'><a href='Mod.RecentChanges.html'
      accesskey='c'>Recent Changes</a> -</span>
    <input type='hidden' name='n' value='Mod.Gui' />
    <input type='hidden' name='action' value='search' />
    <a href='Site.Search.html'>Search</a>:
    <input type='text' name='q' value='' class='inputbox searchbox' />
    <input type='submit' class='inputbutton searchbutton'
      value='Go' /></form></div>
<!--/PageHeaderFmt-->
  <table id='wikimid' width='100%' cellspacing='0' cellpadding='0'><tr>
<!--PageLeftFmt-->
      <td id='wikileft' valign='top'>
        <ul><li><a class='urllink' href='/w/pw/pdqi/' title='Home Page for PDQI' rel='nofollow'>PDQI Home</a>
</li><li><a class='urllink' href='/w/pwc/pdqi/' title='The PDQI development Home Page' rel='nofollow'>PDQI Devel</a>
<ul><li><a class='urllink' href='/w/pwc//' title='The current development group' rel='nofollow'></a>
</li></ul></li></ul><hr />
<ul><li><a class='wikilink' href='Mod.Export.html'>Export</a>
</li><li><a class='selflink' href='Mod.Gui.html'>Gui</a>
</li><li><a class='wikilink' href='Mod.Opt.html'>Opt</a>
</li><li><a class='wikilink' href='Mod.Interface.html'>Interface</a>
</li><li><a class='wikilink' href='Mod.Styles.html'>Styles</a>
</li><li><a class='wikilink' href='Mod.Tod.html'>Tod</a>
</li><li><a class='wikilink' href='Mod.XTL.html'>XTL</a>
</li><li><a class='wikilink' href='THT.HomePage.html'>THT</a>
</li></ul><hr />
<ul><li><a class='createlinktext' rel='nofollow' title='Testing files downloadable for this group'
    ''>Downloads</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Recipes proposed, being testing or under development'
    ''>Recipes</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li><li><a class='createlinktext' rel='nofollow' title='Issue Tracking Bugs, Problems or Feature Requests'
    ''>Issues</a><a rel='nofollow' 
    class='createlink' ''>?</a>
</li></ul><div class='vspace'></div>
</td>
<!--/PageLeftFmt-->
      <td id='wikibody' valign='top'>
<!--PageActionFmt-->
        <div id='wikicmds'><ul><li><a class='wikilink' ''>Search</a>
</li><li class='login'><a accesskey='ak_login'  rel='nofollow'  class='wikilink' ''>Logout</a>
</li></ul>
</div>
<!--PageTitleFmt-->
        <div id='wikititle'>
          <div class='pagegroup'><a href='Mod.html'>Mod</a> /</div>
          <h1 class='pagetitle'>Gui</h1></div>
<!--PageText-->
<div id='wikitext'>
<p>(:toc:)