Пример #1
0
        public Hello(String [] args)
            : base(args)
        {
            about ("0.1", "hello world",
              "Stephen Tse <*****@*****.**>",
              "http://escher.sourceforge.net/",
              "\nTo quit, press 'q', 'Q', ESCAPE, or any button.");

            if (help_option) return;

            Window.Attributes win_attr = new Window.Attributes ();
            win_attr.set_background (display.default_white);
            win_attr.set_border (display.default_black);
            win_attr.set_event_mask (Event.BUTTON_PRESS_MASK
              | Event.EXPOSURE_MASK | Event.KEY_PRESS_MASK);
            Window window = new Window (display.default_root, 10, 10,
              100, 50, 5, win_attr);

            window.set_wm (this, "main");
            window.set_wm_delete_window ();
            window.map ();

            while (!exit_now) {
              Event evt = display.next_event ();

              switch (evt.code ()) {
              case gnu.x11.xevent.ButtonPress.CODE:
            exit ();
            break;

              case ClientMessage.CODE:
            if (((ClientMessage) evt).delete_window ()) exit ();
            break;

              case Expose.CODE:
            if (((Expose) evt).count () == 0)
              window.text (display.default_gc, 20, 30, "Hello World!");
            break;

              case KeyPress.CODE: {
            KeyPress e = (KeyPress) evt;

            int keycode = e.detail ();
            int keystate = e.state ();
            int keysym = display.input.keycode_to_keysym (keycode, keystate);

            if (keysym == 'q' || keysym == 'Q'
              || keysym == gnu.x11.keysym.Misc.ESCAPE) exit ();
            break;
              }
              }
            }

            display.close ();
        }
Пример #2
0
        public Graphics(String [] args, int width, int height)
            : base(args)
        {
            Window.Attributes win_attr = new Window.Attributes ();
            win_attr.set_background (display.default_white);
            win_attr.set_border (display.default_black);
            win_attr.set_event_mask (Event.BUTTON_PRESS_MASK
              | Event.EXPOSURE_MASK | Event.KEY_PRESS_MASK);
            window = new Window (display.default_root, 10, 10,
              width, height, 5, win_attr);

            window.set_wm (this, "main");
            window.set_wm_delete_window ();
        }
Пример #3
0
        public DisplayHack(String [] args, bool clear, bool erase,
    bool rainbow_color, int default_color_count, int default_delay)
            : base(args)
        {
            this.thread = new Thread (new ThreadStart(this.run));
            this.clear = clear;
            this.erase_ = erase;

            int color_count = option.intt ("color-count",
              "total number of random colors", default_color_count);
            delay = option.longg ("delay",
              "delay between screens in ms", default_delay);

            if (erase) {
              eraser_delay = option.longg ("eraser-delay",
            "delay between iterations of eraser in ms", 10);
              eraser_delta = option.intt ("eraser-delta",
            "granularity of eraser", 5, 1, 10);
              eraser_mode = option.Enum ("eraser-mode",
            "which eraser", Eraser.ALL_STRINGS,
            Eraser.RANDOM_ERASER_INDEX);
            }

            Rectangle geometry = option.rectangle ("geometry",
              "initial geometry of main window",
              new Rectangle (10, 10, 600, 480));

            if (help_option) return;

            gc = gnu.x11.GC.build (display);
            if (erase_) eraser_gc = gnu.x11.GC.build (display);

            colors = new Color [color_count];

            if (rainbow_color)
              for (int i=0; i<color_count; i++)
            colors [i] = display.default_colormap.
              alloc_random_rainbow_color (random);

            else
              for (int i=0; i<color_count; i++)
            colors [i] = display.default_colormap. alloc_random_color (random);

            Window.Attributes win_attr = new Window.Attributes ();
            win_attr.set_background (display.default_black);
            win_attr.set_event_mask (Event.BUTTON_PRESS_MASK
              | Event.STRUCTURE_NOTIFY_MASK
              | Event.EXPOSURE_MASK | Event.KEY_PRESS_MASK);
            window = new Window (display.default_root, geometry, 0, win_attr);

            window.set_wm (this, "main");
            window.set_wm_delete_window ();
        }