view release on metacpan or search on metacpan
tvision.git/source/tvision/nmwindow.cpp
tvision.git/source/tvision/palette.cpp
tvision.git/source/tvision/popupmnu.cpp
tvision.git/source/tvision/prntcnst.cpp
tvision.git/source/tvision/sbkgrnd.cpp
tvision.git/source/tvision/sbutton.cpp
tvision.git/source/tvision/schdrdlg.cpp
tvision.git/source/tvision/scheckbo.cpp
tvision.git/source/tvision/sclrsel.cpp
tvision.git/source/tvision/scluster.cpp
tvision.git/source/tvision/sdesktop.cpp
tvision.git/source/tvision/sdialog.cpp
tvision.git/source/tvision/sdircoll.cpp
tvision.git/source/tvision/sdirlist.cpp
tvision.git/source/tvision/seditors.cpp
tvision.git/source/tvision/sfilcoll.cpp
tvision.git/source/tvision/sfildlg.cpp
tvision.git/source/tvision/sfilelst.cpp
tvision.git/source/tvision/sfinfpne.cpp
tvision.git/source/tvision/sfinputl.cpp
tvision.git/source/tvision/sframe.cpp
tvision.git/source/tvision/sysint.asm
tvision.git/source/tvision/tapplica.cpp
tvision.git/source/tvision/tbkgrnd.cpp
tvision.git/source/tvision/tbutton.cpp
tvision.git/source/tvision/tchdrdlg.cpp
tvision.git/source/tvision/tcheckbo.cpp
tvision.git/source/tvision/tclipbrd.cpp
tvision.git/source/tvision/tcluster.cpp
tvision.git/source/tvision/tcmdset.cpp
tvision.git/source/tvision/tcollect.cpp
tvision.git/source/tvision/tdesktop.cpp
tvision.git/source/tvision/tdialog.cpp
tvision.git/source/tvision/tdircoll.cpp
tvision.git/source/tvision/tdirlist.cpp
tvision.git/source/tvision/teditor1.cpp
tvision.git/source/tvision/teditor2.cpp
tvision.git/source/tvision/teditwnd.cpp
tvision.git/source/tvision/tevent.cpp
tvision.git/source/tvision/textview.cpp
tvision.git/source/tvision/tfildlg.cpp
tvision.git/source/tvision/tfilecol.cpp
*new TMenuItem( "~N~ext", cmNext, kbF6, hcWNext, "F6" ) +
*new TMenuItem( "~C~lose", cmClose, kbAltF3, hcWClose, "Alt-F3" ) +
*new TMenuItem( "~T~ile", cmTile, kbNoKey, hcWTile ) +
*new TMenuItem( "C~a~scade", cmCascade, kbNoKey, hcWCascade );
TSubMenu& sub4 =
*new TSubMenu( "~O~ptions", 0, hcOptions ) +
*new TMenuItem( "~M~ouse...", cmMouseCmd, kbNoKey, hcOMouse ) +
(TMenuItem&) (
*new TSubMenu( "~D~esktop", 0 ) +
*new TMenuItem( "~S~ave desktop", cmSaveCmd, kbNoKey, hcOSaveDesktop ) +
*new TMenuItem( "~R~etrieve desktop", cmRestoreCmd, kbNoKey, hcORestoreDesktop )
);
r.b.y = r.a.y + 1;
return (new TMenuBar( r, sub1 + sub2 + sub3 + sub4 ) );
}
ushort spin_loop() {
ushort endState;
do {
endState = 0;
demo/demo1.pl view on Meta::CPAN
use strict;
use TVision;
my $tapp = tnew 'TVApp';
my $desktop = $tapp->deskTop;
my $w = tnew TWindow=>([1,1,120,15],'Ð¼Ð¾Ñ Ð¾ÐºÐ½Ð¾, ÑоваÑиÑи',5);
my $w2 = tnew TWindow => ([16,1,120,30],'Ð¼Ð¾Ñ Ð¾ÐºÐ½Ð¾, ÑоваÑиÑи',5);
my $d = tnew TDialog => ([52,13,90,19],'dialog');
my $b2 = tnew TButton => ([1,1,30,3],'кнопка2',125,0);
my $b = tnew TButton => ([100,2,118,4],'кнопка',123,0);
my $checkboxes = tnew TCheckBoxes => ([3,3,81,9],['a'..'s']);
my $radiobtns = tnew TRadioButtons => ([3,23,81,29],['z'..'dt']);
my $e = tnew TInputLine => ([3,31,81,32],100);
my $st = tnew TStaticText => ([5,10,100,11],"ÑÑаÑ.ÑекÑÑ");
my $sb1 = tnew TScrollBar => ([51,11,100,11]);
my $sb2 = tnew TScrollBar => ([1,1,20,1]);
my $ind = tnew TIndicator => ([1,21,10,21]);
#my $tedit = tnew TEditor => (50,6,110,36, $TVision::NULL, $TVision::NULL, $TVision::NULL, 1000);
my $tedit = tnew TEditor => ([1,1,110,16], $sb1, $sb2, $ind, 1000);
$desktop->insert($w);
$desktop->insert($w2);
$desktop->insert($e);
$desktop->insert($radiobtns);
$desktop->insert($d);
$w->insert($b2);
$w->insert($checkboxes);
$w->insert($st);
$desktop->insert($b);
$w2->insert($tedit);
$tapp->on_idle(sub {$::e++});
#$tapp->handleEvent(sub {print "handleEvent\n"});
$tapp->onCommand(sub {
my ($cmd, $arg) = @_;
print "command[@_]\n";
if ($cmd == 123) {
#button pressed
$e->setData("[".$e->getData."]");
$b->setTitle("пеÑекнопка");
demo/forms.pl view on Meta::CPAN
$x = $formWd - 1 * ($buttonWd + 2);
$r = TRect($x, $y, $x + $buttonWd, $y + 2);
$f->insert(tnew TButton=>($r, "Cancel", cmCancel, bfNormal));
$f->selectNext(0); #/ Select first field
return $f;
}
my $tapp = tnew('TVApp');
my $desktop = $tapp->deskTop;
$desktop->insert(makeForm($_,$_)) for 1 .. 20;
$tapp->run;
demo/menu.pl view on Meta::CPAN
-> plus ( TVision::TMenuItem::new( "~C~lose", cmClose, kbAltF3, hcWClose, "Alt-F3" ) )
-> plus ( TVision::TMenuItem::new( "~T~ile", cmTile, kbNoKey, hcWTile ) )
-> plus ( TVision::TMenuItem::new( "C~a~scade", cmCascade, kbNoKey, hcWCascade ) )
)
;
print "last mnam is $mnam\n";
my $menubar = tnew TMenuBar=>([0,0,179,1],$sub1);
my $tapp = tnew TVApp => $menubar;
my $desktop = $tapp->deskTop;
$tapp->onCommand(sub {
my ($cmd, $arg) = @_;
print "command[@_]\n";
if ($cmd == 123) {
#button pressed
#$b->locate(15,15,30,17);
}
elsif ($cmd == 125) {
}
});
demo/pack.pl view on Meta::CPAN
use strict;
use TVision('tnew');
$|=1;
my $tapp = tnew('TVApp');
my $desktop = $tapp->deskTop;
$desktop->[1] = '.';
$desktop->[2] = '.';
my $btn = tnew('TButton', [1,2,3,4], 'text on the button', 100,0);
$desktop->insert($btn);
print $btn->[2],"\n";
print TVision::pack($btn, -side => 'left');
#print TVision::pack($btn, 'configure', '.btn', -side => 'left');
#print TVision::pack("rb", -side => 'left');
#$tapp->run;
demo/tdialog.pl view on Meta::CPAN
$d->insert( tnew (TButton=> [ 17, 13, 27, 15 ], "O~K~", cmOK, bfDefault ) );
$d->insert( tnew (TButton => [ 28, 13, 38, 15 ], "Cancel", cmCancel, bfNormal ) );
#$d->selectNext( 0 );
return $d;
}
my $tapp = tnew 'TVApp';
my $desktop = $tapp->deskTop;
$desktop->insert(createFindDialog);
$desktop->insert(createReplaceDialog);
$tapp->run;
demo/tedit.pl view on Meta::CPAN
use strict;
use TVision('tnew');
my $tedit = tnew(TEditor=>[1,1,110,16]); #, $sb1, $sb2, $ind, 1000);
my $sb1 = tnew(TScrollBar=>[51,11,100,11]);
my $sb2 = tnew(TScrollBar=>[1,1,20,1]);
my $ind = tnew(TIndicator=>[1,21,10,21]);
my $tedit2 = tnew(TEditor=>[1,21,110,36], $sb1, $sb2, $ind, 100000);
my $tapp = tnew('TVApp');
my $desktop = $tapp->deskTop;
my $r = $desktop->getExtent;
print "e=[@$r]\n";
$desktop->insert($tedit);
$desktop->insert($tedit2);
$tapp->onCommand(sub {
my ($cmd, $arg) = @_;
print "command[@_]\n";
if ($cmd == 123) {
}
elsif ($cmd == 125) {
}
});
demo/teditwindow.pl view on Meta::CPAN
use strict;
use TVision('tnew');
# TRect r = deskTop->getExtent();
# TView *p = validView( new TEditWindow( r, fileName, wnNoNumber ) );
# if( !visible )
# p->hide();
# deskTop->insert( p );
my $tapp = tnew('TVApp');
my $desktop = $tapp->deskTop;
my $teditw = tnew(TEditWindow=>$desktop->getExtent, '', 0);
my $editor = $teditw->get_editor;
my $s = join("\n",'a'..'zzz');
$editor->insertMultilineText($s,length($s));
$desktop->insert($teditw);
$tapp->onCommand(sub {
my ($cmd, $arg) = @_;
print "command[@_]\n";
if ($cmd == 123) {
}
elsif ($cmd == 125) {
}
elsif ($cmd == 1) {
print("cmd=1, exit");
demo/toutline.pl view on Meta::CPAN
my $node1 = tnew(TNode=>"нодв1");
my $node2 = tnew(TNode=>"нодв2");
my $node3 = tnew1(TNode=>"нодв2",$node1,$node2);
my $noder = tnew1(TNode=>"к",$node1,$node3);
my $sb1 = tnew(TScrollBar=>[51,11,100,11]);
my $sb2 = tnew(TScrollBar=>[1,1,20,1]);
my $to = tnew(TOutline=>[1,1,15,5],$sb1,$sb2,$noder);
my $tapp = tnew('TVApp');
my $desktop = $tapp->deskTop;
$desktop->insert($to);
$tapp->run;
lib/Devel/tvdb.pm view on Meta::CPAN
Vadim Konovalov
=cut
BEGIN {
$Devel::tvdb::linenumber_length = 5;
}
my $tapp;
my $desktop;
my $log_window;
my $log_window_e;
my $cur_editor;
my $evil_window;
my $extent;
sub ::_log($) {
if ($log_window_e) {
$log_window_e->insertMultilineText($_[0]."\n",length($_[0])+1);
$log_window_e->scrollTo(0, 100000);
lib/Devel/tvdb.pm view on Meta::CPAN
TVision::messageBox("program ended.",mfOKButton);
}
my $wnd_cnt=-1;
sub showfile {
my ($self, $filename, $line) = @_;
init1() unless $tapp;
#DEBUG ::_log "$filename $line \$#dbline=$#DB::dbline";
unless ($files{$filename}) {
$wnd_cnt++;
$files{$filename} = TVision::tnew('TEditWindow',
0 ? $desktop->getExtent : [$wnd_cnt,$wnd_cnt,80+$wnd_cnt,50+$wnd_cnt],
"$filename.debug", 0
);
$desktop->insert($files{$filename});
$cur_editor = $files{$filename}->get_editor;
$cur_editor->store_user_value($filename);
my $i0 = "0" x $Devel::tvdb::linenumber_length;
if ($#DB::dbline > -1) {
for (@DB::dbline[1 .. $#DB::dbline]) {
my $str = s/\n$//r;
my $i1 = ++$i0;
my $s = "$i0 " . ($i1==$line? '[*]' : '[ ]') . ($_==0? ' ':'.') . " $str";
$pos{$filename}->[$i1] = $cur_editor->get_curPtr;
$cur_editor->insertBuffer($s, 0, length($s),0,0);
lib/Devel/tvdb.pm view on Meta::CPAN
-> plus ( TVision::TMenuItem::new( "~R~esize/move", cmResize, kbCtrlF5, 0, "Ctrl-F5" ) )
-> plus ( TVision::TMenuItem::new( "~Z~oom", cmZoom, kbF5, 0, "F5" ) )
-> plus ( TVision::TMenuItem::new( "~N~ext", cmNext, kbF6, 0, "F6" ) )
-> plus ( TVision::TMenuItem::new( "~C~lose", cmClose, kbAltF3, 0, "Alt-F3" ) )
-> plus ( TVision::TMenuItem::new( "~T~ile", cmTile, kbNoKey, 0 ) )
-> plus ( TVision::TMenuItem::new( "C~a~scade", cmCascade, kbNoKey, 0 ) )
);
my $menubar = tnew TMenuBar=>([0,0,179,1],$submenu);
$tapp = tnew TVApp => $menubar;
$desktop = $tapp->deskTop;
$extent = $desktop->getExtent;
$log_window = tnew(TEditWindow=> [82,1,162,20], 'log.txt', 0);
$desktop->insert($log_window);
$log_window_e = $log_window->get_editor;
$evil_window = tnew(TEditWindow=> [82,21,162,40], 'evil.txt', 0);
$desktop->insert($evil_window);
$tapp->onCommand(sub {
my ($cmd, $arg) = @_;
if ($cmd == 201) { # step-in
__PACKAGE__->step;
__PACKAGE__->ready;
} elsif ($cmd == 202) { # step-over
__PACKAGE__->next;
__PACKAGE__->ready;
} elsif ($cmd == 203) { # run
$x = $formWd - 1 * ($buttonWd + 2);
$r = TRect($x, $y, $x + $buttonWd, $y + 2);
$f->insert(tnew TButton=>($r, "Cancel", cmCancel, bfNormal));
$f->selectNext(0); #/ Select first field
return $f;
}
my $tapp = tnew 'TVApp';
my $desktop = $tapp->deskTop;
my @f = map {makeForm($_,$_, $data->[$_ % 4])} 1 .. 45;
$desktop->insert($_) for @f;
$tapp->on_idle(sub {
$::e++;
if ($::e % 10 == 0) {
$f[int(rand($#f))]->focus();
}
if ($::e>250) {
$tapp->endModal(42+42+42+42+42);
}
});
tvision.git/README.md view on Meta::CPAN
* Screen writes are buffered and are usually sent to the terminal once for every iteration of the active event loop (see also `TVISION_MAX_FPS`). If you need to update the screen during a busy loop, you may use `TScreen::flushScreen()`.
* `TDrawBuffer` is no longer a fixed-length array and its methods prevent past-the-end array accesses. Therefore, old code containing comparisons against `sizeof(TDrawBuffer)/sizeof(ushort)` is no longer valid; such checks should be removed.
* `TApplication` now provides `dosShell()`, `cascade()` and `tile()`, and handles `cmDosShell`, `cmCascade` and `cmTile` by default. These functions can be customized by overriding `getTileRect()` and `writeShellMsg()`. This is the same behaviour as ...
* Mouse wheel support: new mouse event `evMouseWheel`. The wheel direction is specified in the new field `event.mouse.wheel`, whose possible values are `mwUp`, `mwDown`, `mwLeft` or `mwRight`.
* Middle mouse button support: new mouse button flag `mbMiddleButton`.
* The `buttons` field in `evMouseUp` events is no longer empty. It now indicates which button was released.
* Triple-click support: new mouse event flag `meTripleClick`.
* `TRect` methods `move`, `grow`, `intersect` and `Union` now return `TRect&` instead of being `void` so that they can be chained.
* `TOutlineViewer` now allows the root node to have siblings.
* New function `ushort popupMenu(TPoint where, TMenuItem &aMenu, TGroup *receiver=0)` which spawns a `TMenuPopup` on the desktop. See `source/tvision/popupmnu.cpp`.
* New virtual method `TMenuItem& TEditor::initContextMenu(TPoint p)` that determines the entries of the right-click context menu in `TEditor`.
* `fexpand` can now take a second parameter `relativeTo`.
* New class `TStringView`, inspired by `std::string_view`.
* Many functions which originally had null-terminated string parameters now receive `TStringView` instead. `TStringView` is compatible with `std::string_view`, `std::string` and `const char *` (even `nullptr`).
* New class `TSpan<T>`, inspired by `std::span`.
* New classes `TDrawSurface` and `TSurfaceView`, see `<tvision/surface.h>`.
* The system integration subsystems (`THardwareInfo`, `TScreen`, `TEventQueue`...) are now initialized when constructing a `TApplication` for the first time, rather than before `main`. They are still destroyed on exit from `main`.
* New method `TVMemMgr::reallocateDiscardable()` which can be used along `allocateDiscardable` and `freeDiscardable`.
* New method `TView::textEvent()` which allows receiving text in an efficient manner, see [Clipboard interaction](#clipboard).
* New class `TClipboard`, see [Clipboard interaction](#clipboard).
tvision.git/examples/palette/README.md view on Meta::CPAN
Table I
```
All numbers used in the palettes in this document are in
hexadecimal (it is easier to understand attributes in that base).
Here is a concrete case of a "palette" walk, taken from the code
supplied with this document. Suppose there is a view of type
`TTestView` inserted inside a window of type `TTestWindow`, itself
inserted in the desktop. The palettes for these views are shown
above. To draw something with color `0x01`, simply use `0x01` as the
parameter to the write functions used in `TTestView::draw()`.
`TTestView`'s palette contains the number `0x09` at index `0x01` and
`TTestView`'s owner is `TTestWindow`. Index `0x09` in `TTestWindow`'s
palette contains `0x88`. `TTestWindow`'s owner is `TDesktop` which has
a `NULL` palette and is skipped (see notes). `TDesktop`'s owner is
`TTestApp` and it's palette contains `0x3E` at index `0x88`. So the
color that will be used is `0x3E` or yellow on cyan.
The `writeXXX` functions in TView all take color index values in
tvision.git/examples/palette/palette.h view on Meta::CPAN
TTestView( TRect& r );
virtual ~TTestView() {}
virtual void draw();
virtual TPalette& getPalette() const;
private:
};
//
// TTestWindow - provides encapsulation for TTestView, as well as
// the ability to move the view around the screen and remove it
// from the desktop with little coding (since TWindow's
// automatically call cmClose)
//
// Member functions:
// TTestWindow - constructor
// getPalette -
// sizeLimits - so we can have a smaller than regulation
// TWindow.
//
#define TEST_WIDTH 42
tvision.git/examples/tvdemo/tvdemo.h view on Meta::CPAN
void calculator(); // Calculator
void eventViewer();
void printEvent(const TEvent &);
void chBackground(); // Background pattern
void openFile( const char *fileSpec ); // File Viewer
void changeDir(); // Change directory
void mouse(); // Mouse control dialog box
void colors(); // Color control dialog box
void outOfMemory(); // For validView() function
void loadDesktop(fpstream& s); // Load and restore the
void retrieveDesktop(); // previously saved desktop
void storeDesktop(fpstream& s); // Store the current desktop
void saveDesktop(); // in a resource file
};
#endif // __TVDEMO_H
tvision.git/examples/tvdemo/tvdemo1.cpp view on Meta::CPAN
}
//
// retrieveDesktop() function ( restores the previously stored Desktop )
//
void TVDemo::retrieveDesktop()
{
if (!ifstream("TVDEMO.DST").good())
messageBox("Could not find desktop file", mfOKButton | mfError);
else
{
fpstream *f = new fpstream("TVDEMO.DST", ios::in|ios::binary);
if( !f )
messageBox("Could not open desktop file", mfOKButton | mfError);
else
{
TVDemo::loadDesktop(*f);
if( !f )
messageBox("Error reading desktop file", mfOKButton | mfError);
}
delete f;
}
}
//
// saveDesktop() function ( saves the DeskTop by calling storeDesktop function )
//
void TVDemo::saveDesktop()
tvision.git/examples/tvdemo/tvdemo2.cpp view on Meta::CPAN
break;
case cmMouseCmd: // Mouse control dialog box
mouse();
break;
case cmColorCmd: // Color control dialog box
colors();
break;
case cmSaveCmd: // Save current desktop
saveDesktop();
break;
case cmRestoreCmd: // Restore saved desktop
retrieveDesktop();
break;
default: // Unknown command
return;
}
clearEvent (event);
}
}
tvision.git/examples/tvdemo/tvdemo3.cpp view on Meta::CPAN
&newcolor,
&newblackwhite,
&newmonochrome
};
return *(palettes[appPalette]);
}
*/
//
// isTileable() function ( checks a view on desktop is tileable or not )
//
static Boolean isTileable(TView *p, void * )
{
if( (p->options & ofTileable) != 0)
return True;
else
return False;
}
tvision.git/examples/tvdemo/tvdemo3.cpp view on Meta::CPAN
//
// loadDesktop() function
//
void TVDemo::loadDesktop(fpstream &s)
{
TView *p;
if (deskTop->valid(cmClose))
{
deskTop->forEach(::closeView, 0); // Clear the desktop
do {
s >> p;
deskTop->insertBefore(validView(p), deskTop->last);
}
while (p != 0);
}
}
//
// Menubar initialization.
tvision.git/examples/tvdemo/tvdemo3.cpp view on Meta::CPAN
*new TMenuItem( "~T~ile", cmTile, kbNoKey, hcWTile ) +
*new TMenuItem( "C~a~scade", cmCascade, kbNoKey, hcWCascade );
TSubMenu& sub4 =
*new TSubMenu( "~O~ptions", 0, hcOptions ) +
*new TMenuItem( "~M~ouse...", cmMouseCmd, kbNoKey, hcOMouse ) +
*new TMenuItem( "~C~olors...", cmColorCmd, kbNoKey, hcOColors ) +
*new TMenuItem( "~B~ackground...", cmChBackground, kbNoKey ) +
(TMenuItem&) (
*new TSubMenu( "~D~esktop", 0 ) +
*new TMenuItem( "~S~ave desktop", cmSaveCmd, kbNoKey, hcOSaveDesktop ) +
*new TMenuItem( "~R~etrieve desktop", cmRestoreCmd, kbNoKey, hcORestoreDesktop )
);
r.b.y = r.a.y + 1;
return (new TMenuBar( r, sub1 + sub2 + sub3 + sub4 ) );
}
tvision.git/examples/tvforms/listdlg.cpp view on Meta::CPAN
// Base listbox width on key width. Grow entire dialog if required
if (f->keyWidth > defaultListWd)
{
listWd = f->keyWidth;
growTo((short)(formWd + listWd - defaultListWd), (short)formHt);
}
else
listWd = defaultListWd;
// Move to upper right corner of desktop
TRect r (TProgram::deskTop->getExtent()); // Desktop coordinates
moveTo((short)(r.b.x - size.x), 1);
destroy(f);
// Read data collection into memory
dataCollection = (TDataCollection *)formDataFile->get("FormData");
if (dataCollection != NULL)
{
// Loaded successfully: build ListDialog dialog
tvision.git/examples/tvforms/listdlg.cpp view on Meta::CPAN
if (formDataFile != NULL)
destroy(formDataFile);
if (fileName != NULL)
delete[] fileName;
}
void TListDialog::close(void)
{
if (valid(cmClose))
{
// Stop desktop video update in case there are scores of attached forms
TProgram::deskTop->lock();
message(TProgram::deskTop, evBroadcast, cmCloseForm, this);
TProgram::deskTop->unlock();
destroy(this);
}
}
TForm *TListDialog::editingForm()
{
// Return pointer to the form that is editing the current selection
tvision.git/examples/tvforms/listdlg.cpp view on Meta::CPAN
f->moveTo(topForm->origin.x + 1, topForm->origin.y + 1);
else
{
// Stack right or left of ListDialog
if (origin.x > f->size.x)
f->moveTo(0, origin.y);
else
f->moveTo(origin.x + size.x + 1, origin.y);
}
// Visible on desktop? Make sure at least half of form is visible
TRect r = owner->getExtent(); // Desktop coordinates
if (f->origin.x + size.x / 2 > r.b.x)
f->moveTo(0, 1);
if (f->origin.y + size.y / 2 > r.b.y)
f->moveTo(f->origin.x, 1);
}
Boolean TListDialog::valid(ushort command)
{
Boolean ok;
tvision.git/examples/tvhc/demohelp.txt view on Meta::CPAN
.topic SAsciiTable
ð³ASCII table Ü
ßßßßßßßßßßßßßß
The ASCII menu items opens an {ASCII Table:AsciiTable} that
displays the IBM PC character set.
.topic SCalculator
ð³Calculator Ü
ßßßßßßßßßßßßß
When you choose Calculator, a four-function {Calculator} is
opened on the desktop.
.topic File
File (Alt-F) Ü
ßßßßßßßßßßßßßß
The File menu offers choices for opening files, changing
directories, and exiting the program.
{Open:FOpen} {Change Dir:FChangeDir} {FExit}
.topic FOpen
tvision.git/examples/tvhc/demohelp.txt view on Meta::CPAN
Choose Zoom to resize the active window to the maximum size. If
the window is already zoomed, you can choose this command to
restore it to its previous size.
You can also double-click anywhere on the window's title bar
(except where an icon appears) to zoom or unzoom the window.
.topic WTile
Window³Tile Ü
ßßßßßßßßßßßß
Choose Window³Tile to tile all file viewers on the desktop.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ÉÍÍÍÍÍÍÍÍÍÍÍÍ1ÍÍ»ÚÄÄÄÄÄÄÄÄÄÄÄÄ2ÄÄ¿ ³
³ º º³ ³ ³
³ º º³ ³ ³
³ º º³ ³ ³
³ º º³ ³ ³
³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄ3ÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄÄÄ4ÄÄ¿ ³
³ ³ ³³ ³ ³
³ ³ ³³ ³ ³
³ ³ ³³ ³ ³
³ ³ ³³ ³ ³
³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Tiled Windows
.topic WCascade
Window³Cascade Ü
ßßßßßßßßßßßßßßß
Choose Window³Cascade to stack all file viewers on the desktop.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ1Ä¿
³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ2Ä¿
³³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ3Ä¿
³³³ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ4Í»
³³³º º
³³³º º
³³³º º
³³³º º
³³³º º
ÀÀÀÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Cascaded Windows
.topic WNext
Window³Next Ü
ßßßßßßßßßßßß
Choose Next to cycle forwards through the windows on the desktop.
.topic WPrevious
Window³Previous Ü
ßßßßßßßßßßßßßßßß
Choose Previous to cycle backwards through the windows on the desktop.
.topic WClose
Window³Close Ü (Alt-F3)
ßßßßßßßßßßßßß
Choose Close to close the active window.
You can also click the Close box in the upper right corner to
close a window.
.topic Options
tvision.git/examples/tvhc/demohelp.txt view on Meta::CPAN
On monochrome systems, you use the Colors set of radio buttons
systems to modify the character attributes.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Text Text Text ³
³ Text Text Text ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
On all systems, the display text (above the Help button) shows
the current color or attribute settings.
Changes do not take effect on the desktop until you close the
Colors dialog box by choosing OK.
tvision.git/source/tvision/popupmnu.cpp view on Meta::CPAN
#define Uses_TMenuPopup
#define Uses_TMenu
#define Uses_TProgram
#define Uses_TDeskTop
#include <tvision/tv.h>
/*------------------------------------------------------------------------*/
/* */
/* popupMenu */
/* */
/* Spawns and executes a TMenuPopup on the desktop. */
/* */
/* arguments: */
/* */
/* where - Reference position, in absolute coordinates. */
/* The top left corner of the popup will be placed */
/* at (where.x, where.y+1). */
/* */
/* aMenu - Chain of menu items. This function takes ownership */
/* over the items and the reference becomes dangling */
/* after the invocation. */
tvision.git/source/tvision/popupmnu.cpp view on Meta::CPAN
}
return res;
}
static void autoPlacePopup(TMenuPopup *m, TPoint p)
// Pre: TMenuPopup was constructed with bounds=TRect(p, p).
{
TGroup *app = TProgram::application;
// Initially, the menu is placed above 'p'. So we need to move it.
TRect r = m->getBounds();
// But we must ensure that the popup does not go beyond the desktop's
// bottom right corner, for usability.
{
TPoint d = app->size - p;
r.move(min(m->size.x, d.x),
min(m->size.y + 1, d.y));
}
// If the popup then contains 'p', try to move it to a better place.
if (r.contains(p) && r.b.y - r.a.y < p.y)
r.move(0, -(r.b.y - p.y));
m->setBounds(r);
tvision.git/source/tvision/sdesktop.cpp view on Meta::CPAN
/*------------------------------------------------------------*/
/* filename - sdesktop.cpp */
/* */
/* Registeration object for the class TDeskTop */
/*------------------------------------------------------------*/
/*
* Turbo Vision - Version 2.0
*
* Copyright (c) 1994 by Borland International
* All Rights Reserved.
*
*/
tvision.git/source/tvision/tdesktop.cpp view on Meta::CPAN
/*------------------------------------------------------------*/
/* filename - tdesktop.cpp */
/* */
/* function(s) */
/* TDeskTop member functions */
/*------------------------------------------------------------*/
/*
* Turbo Vision - Version 2.0
*
* Copyright (c) 1994 by Borland International
* All Rights Reserved.
*