TVision

 view release on metacpan or  search on metacpan

TVision.xs  view on Meta::CPAN

  hcOMouse               = 27,
  hcORestoreDesktop      = 30,
  hcOSaveDesktop         = 29,
  hcOpenBtn              = 36,
  hcOptions              = 26,
  hcPuzzle               = 3,
  hcSAbout               = 8,
  hcSAsciiTable          = 11,
  hcSystem               = 7,
  hcViewer               = 2,
  hcWCascade             = 22,
  hcWClose               = 25,
  hcWNext                = 23,
  hcWPrevious            = 24,
  hcWSizeMove            = 19,
  hcWTile                = 21,
  hcWZoom                = 20,
  hcWindows              = 18;

const int cmAboutCmd    = 100;
const int cmOpenCmd     = 105;
const int cmChDirCmd    = 106;
const int cmMouseCmd    = 108;
const int cmSaveCmd     = 110;
const int cmRestoreCmd  = 111;
const int cmEventViewCmd= 112;


TMenuBar *TVApp::initMenuBar(TRect r) {
    printf("(%d,%d)-(%d,%d)\n",r.a.x, r.a.y,r.b.x,r.b.y);
    if (default_TMenuBar)
	return default_TMenuBar;
    TSubMenu& sub1 =
      *new TSubMenu( "~\xf0~", 0, hcSystem ) +
        *new TMenuItem( "~A~bout...", cmAboutCmd, kbNoKey, hcSAbout ) +
         newLine() +
        *new TMenuItem( "~E~vent Viewer", cmEventViewCmd, kbAlt0, hcNoContext, "Alt-0" );

    TSubMenu& sub2 =
      *new TSubMenu( "~F~ile", 0, hcFile ) +
        *new TMenuItem( "~O~pen...", cmOpenCmd, kbF3, hcFOpen, "F3" ) +
        *new TMenuItem( "~C~hange Dir...", cmChDirCmd, kbNoKey, hcFChangeDir ) +
         newLine() +
        *new TMenuItem( "~D~OS Shell", cmDosShell, kbNoKey, hcFDosShell ) +
        *new TMenuItem( "E~x~it", cmQuit, kbAltX, hcFExit, "Alt-X" );

    TSubMenu& sub3 =
      *new TSubMenu( "~W~indows", 0, hcWindows ) +
        *new TMenuItem( "~R~esize/move", cmResize, kbCtrlF5, hcWSizeMove, "Ctrl-F5" ) +
        *new TMenuItem( "~Z~oom", cmZoom, kbF5, hcWZoom, "F5" ) +
        *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;
        do  {
            TEvent e;
            tapp->getEvent( e );
            tapp->handleEvent( e );
            if( e.what != evNothing )
                tapp->eventError( e );
        } while( endState == 0 );
    } while( !tapp->valid(endState) );
    return endState;
}

MODULE=TVision PACKAGE=TVision

void spin_loop()
    CODE:
        if(!tapp)
            return;
        TEvent e;
        tapp->getEvent( e );
        tapp->handleEvent( e );
        if( e.what != evNothing )
            tapp->eventError( e );

MODULE=TVision::TApplication PACKAGE=TVision::TApplication

void on_idle(SV *self, CV *c = 0)
    CODE:
        if (cv_on_idle)
            SvREFCNT_dec(cv_on_idle);
        cv_on_idle = c;
        if (c)
            SvREFCNT_inc(c);

void handleEvent(SV *self, CV *c = 0)
    CODE:
        if (cv_handleEvent)
            SvREFCNT_dec(cv_handleEvent);
        cv_handleEvent = c;
        if (c)
            SvREFCNT_inc(c);

void onCommand(SV *self, CV *c = 0)
    CODE:
        if (cv_onCommand)
            SvREFCNT_dec(cv_onCommand);
        cv_onCommand = c;
        if (c)
            SvREFCNT_inc(c);

MODULE=TVision::TButton PACKAGE=TVision::TButton



( run in 0.680 second using v1.01-cache-2.11-cpan-364913b4093 )