コード例 #1
0
 static void Main(string[] args)
 {
     Curses.InitScr();
     try
     {
         Main2();
     }
     finally
     {
         Curses.EndWin();
     }
 }
コード例 #2
0
        public static void Main(string[] args)
        {
            // C style from http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/helloworld.html
//			initscr();			/* Start curses mode          */
//			printw("Hello World !!!");	/* Print Hello World		  */
//			refresh();			/* Print it on to the real screen */
//			getch();			/* Wait for user input */
//			endwin();			/* End curses mode		  */

            Curses.InitScr();
            Stdscr.Add("Hello World !!!");
            Stdscr.Refresh();
            Stdscr.GetChar();
            Curses.Beep();
            Curses.EndWin();
        }
コード例 #3
0
        static void Main(string[] args)
        {
            // Init Curses
            Curses.InitScr();
            Stdscr.Blocking = false;
            Curses.Echo     = false;
            Keyboard.Init();
            Stdscr.Keypad = true;
            if (Curses.HasColors)
            {
                Curses.StartColor();
                for (short i = 1; i < 8; ++i)
                {
                    Curses.InitPair(i, color_table[i], Colors.BLACK);
                }
            }
            // Init world.
            StateMachine.Switch(new IntroState());
            bool      running = true;
            Stopwatch time    = new Stopwatch();

            time.Start();
            long spillover = 0;

            while (running)
            {
                if (time.ElapsedMilliseconds + spillover > 100)
                {
                    Keyboard.UpdateKeys();
                    if (Keyboard.KeyDown(27))
                    {
                        running = false;
                    }
                    StateMachine.Update(100);
                    Keyboard.Reset();
                    // Game render
                    StateMachine.Draw();
                    Stdscr.Move(Curses.Lines - 1, Curses.Cols - 1);
                    Stdscr.Refresh();

                    spillover = (time.ElapsedMilliseconds + spillover) - 100;
                    time.Restart();
                }
            }
            // Game end!
            Curses.EndWin();
        }
コード例 #4
0
ファイル: Terminal.cs プロジェクト: zxfdreamfly/CursesSharp
 static void Shutdown()
 {
     Curses.EndWin();;
 }
コード例 #5
0
        public void StartLoop()
        {
            while (true)
            {
                var i = Curses.StdScr.GetChar();
                var c = (char)i;
                switch (c)
                {
                case 'n':
                case 'j':
                    this.tweetIncrement(1);
                    break;

                case 'p':
                case 'k':
                    this.tweetIncrement(-1);
                    break;

                case (char)11:     /* ^K */
                case (char)16:     /* ^P */
                    this.tweetIncrement(-5);
                    break;

                case (char)32:     /* [spacebar] */
                case (char)14:     /* ^N */
                    this.tweetIncrement(5);
                    break;

                case (char)10:     /* ^M */
                    var tweetText = this.tweets[topTweet].Text;
                    var urls      = tweetText.Split(new char[] { ' ' }).Where(token => token.StartsWith("http://"));
                    if (urls.Count() > 0)
                    {
                        System.Diagnostics.Process.Start(urls.First());
                    }
                    break;

                case (char)18:     /* ^R */
                    this.refreshStatusBar("Refreshing...");
                    var tweets = this.refreshTweets();
                    this.refreshStatusBar(string.Format("Refreshed: {0} new tweets", tweets));
                    break;

                case 'c':
                case 'C':
                case 'r':
                case 'R':
                    // turn off highlight
                    this.refreshTimeline();
                    this.refreshStatusBar("Compose");

                    var tweet = this.tweets[topTweet];

                    if (c == 'r')
                    {
                        this.TweetText = string.Format("@{0} ", tweet.User.Identifier.ScreenName);
                    }
                    else if (c == 'R')
                    {
                        this.TweetText = string.Format("RT @{0}: {1}", tweet.User.Identifier.ScreenName, tweet.Text);
                    }
                    this.refreshTweetWindow(true);
                    var sent = this.composeTweet();
                    break;

                case 'q':
                    Curses.EndWin();
                    Environment.Exit(-1);
                    break;
                }
            }
        }
コード例 #6
0
 public void Dispose()
 {
     Curses.EndWin();
 }