Esempio n. 1
0
        void updateSizing()
        {
            SampleQueue data = debugManager.PowerData;

            vertMax = 10;

            if (data != null)
            {
                drawer.SetSizeRequest(data.Count / scale, -1);

                // Calculate a scale for the vertical axis.
                while (vertMax < data.Max)
                {
                    vertMax *= 10;
                }

                // Calculate a good time-division spacing
                int usPerPx = scale * data.Period;

                hSpacingUs = 1;
                while (hSpacingUs / usPerPx < 20)
                {
                    hSpacingUs *= 10;
                }
            }

            drawer.QueueResize();
            updateStatus();
        }
Esempio n. 2
0
        /// <summary>
        /// Default Constructor
        /// </summary>
        public InteractivePlotSurface2D() : base()
        {
            canvas          = new DrawingArea(); // allocate local DrawingArea
            canvas.CanFocus = true;              // enable to receive the focus

            // Link the event handlers into the DrawingArea events (default is none)
            canvas.SizeAllocated      += new SizeAllocatedHandler(SizeAllocated);
            canvas.ExposeEvent        += new ExposeEventHandler(ExposeEvent);
            canvas.EnterNotifyEvent   += new EnterNotifyEventHandler(EnterNotify);
            canvas.LeaveNotifyEvent   += new LeaveNotifyEventHandler(LeaveNotify);
            canvas.ButtonPressEvent   += new ButtonPressEventHandler(ButtonPress);
            canvas.MotionNotifyEvent  += new MotionNotifyEventHandler(MotionNotify);
            canvas.ButtonReleaseEvent += new ButtonReleaseEventHandler(ButtonRelease);
            canvas.ScrollEvent        += new ScrollEventHandler(ScrollNotify);
            canvas.KeyPressEvent      += new KeyPressEventHandler(KeyPressed);
            canvas.KeyReleaseEvent    += new KeyReleaseEventHandler(KeyReleased);

            // Subscribe to DrawingArea mouse movement and button press events.
            // Enter and Leave notification is necessary to make ToolTips work.
            // Specify PointerMotionHint to prevent being deluged with motion events.
            canvas.AddEvents((int)Gdk.EventMask.EnterNotifyMask);
            canvas.AddEvents((int)Gdk.EventMask.LeaveNotifyMask);
            canvas.AddEvents((int)Gdk.EventMask.ButtonPressMask);
            canvas.AddEvents((int)Gdk.EventMask.ButtonReleaseMask);
            canvas.AddEvents((int)Gdk.EventMask.PointerMotionMask);
            canvas.AddEvents((int)Gdk.EventMask.PointerMotionHintMask);
            canvas.AddEvents((int)Gdk.EventMask.ScrollMask);

            canvas.SetSizeRequest(400, 300);        // Set DrawingArea size

            // Set up ToolTips to show coordinates. NB works via Enter/Leave events
            // TODO: ToolTips do not work well yet - needs review of approach
            this.Canvas.TooltipText = "Coordinates will display here";
        }
Esempio n. 3
0
 private void UpdateDrawingAreaSizeRequests()
 {
     cda.SetSizeRequest(LeftWidth, TopHeight);
     tda.SetSizeRequest(FieldWidth, TopHeight);
     lda.SetSizeRequest(LeftWidth, FieldHeight);
     fda.SetSizeRequest(FieldWidth, FieldHeight);
 }
Esempio n. 4
0
 public LcdDisplay(DrawingArea drawingArea)
 {
     this.drawingArea = drawingArea;
     drawingArea.SetSizeRequest(Width, Height);
     gc      = new Gdk.GC((Drawable)drawingArea.GdkWindow);
     rowSize = ((backGroundPixBuffer.Width * backGroundPixBuffer.NChannels) + backGroundPixBuffer.Rowstride) / 2;
 }
Esempio n. 5
0
        public (string, Widget) DrawCircles()
        {
            DrawingArea drawingArea = new DrawingArea();

            drawingArea.SetSizeRequest(50, 50);
            drawingArea.Drawn += DrawingAreaCirclesOnDrawn;

            return("Draw Circles :", drawingArea);
        }
Esempio n. 6
0
        public (string, Widget) DrawText()
        {
            DrawingArea drawingArea = new DrawingArea();

            drawingArea.SetSizeRequest(200, 100);
            drawingArea.Drawn += DrawingAreaTextOnDrawn;

            return("Draw Pango Text :", drawingArea);
        }
Esempio n. 7
0
        public DemoDrawingArea() : base("Drawing Area")
        {
            BorderWidth = 8;

            VBox vbox = new VBox(false, 8);

            vbox.BorderWidth = 8;
            Add(vbox);

            // Create the checkerboard area
            Label label = new Label("<u>Checkerboard pattern</u>");

            label.UseMarkup = true;
            vbox.PackStart(label, false, false, 0);

            Frame frame = new Frame();

            frame.ShadowType = ShadowType.In;
            vbox.PackStart(frame, true, true, 0);

            DrawingArea da = new DrawingArea();

            // set a minimum size
            da.SetSizeRequest(100, 100);
            frame.Add(da);
            da.Drawn += new DrawnHandler(CheckerboardDrawn);

            // Create the scribble area
            label           = new Label("<u>Scribble area</u>");
            label.UseMarkup = true;
            vbox.PackStart(label, false, false, 0);

            frame            = new Frame();
            frame.ShadowType = ShadowType.In;
            vbox.PackStart(frame, true, true, 0);

            da = new DrawingArea();
            // set a minimum size
            da.SetSizeRequest(100, 100);
            frame.Add(da);

            // Signals used to handle backing pixmap
            da.Drawn          += new DrawnHandler(ScribbleDrawn);
            da.ConfigureEvent += new ConfigureEventHandler(ScribbleConfigure);

            // Event signals
            da.MotionNotifyEvent += new MotionNotifyEventHandler(ScribbleMotionNotify);
            da.ButtonPressEvent  += new ButtonPressEventHandler(ScribbleButtonPress);


            // Ask to receive events the drawing area doesn't normally
            // subscribe to
            da.Events |= EventMask.LeaveNotifyMask | EventMask.ButtonPressMask |
                         EventMask.PointerMotionMask | EventMask.PointerMotionHintMask;

            ShowAll();
        }
Esempio n. 8
0
        public MainWindow()
            : base("Overlaytest")
        {
            VBox vBox = new VBox();

            _da = new DrawingArea();
            _da.ModifyBg(Gtk.StateType.Normal, new Gdk.Color(0, 0, 0));
            _da.SetSizeRequest(400, 300);
            _da.DoubleBuffered = false;
            vBox.PackStart(_da, false, false, 0);

            _scale               = new HScale(0, 1, 0.01);
            _scale.DrawValue     = false;
            _scale.ValueChanged += ScaleValueChanged;
            vBox.PackStart(_scale, false, false, 0);

            HBox hBox = new HBox();

            Button btnOpen = new Button();

            btnOpen.Label    = "Open";
            btnOpen.Clicked += ButtonOpenClicked;

            hBox.PackStart(btnOpen, false, false, 0);

            Button btnPlay = new Button();

            btnPlay.Label    = "Play";
            btnPlay.Clicked += ButtonPlayClicked;

            hBox.PackStart(btnPlay, false, false, 0);

            Button btnPause = new Button();

            btnPause.Label    = "Pause";
            btnPause.Clicked += ButtonPauseClicked;

            hBox.PackStart(btnPause, false, false, 0);

            _lbl      = new Label();
            _lbl.Text = "00:00 / 00:00";

            hBox.PackEnd(_lbl, false, false, 0);

            vBox.PackStart(hBox, false, false, 3);

            Add(vBox);

            WindowPosition = Gtk.WindowPosition.Center;
            DeleteEvent   += OnDeleteEvent;

            GLib.Timeout.Add(1000, new GLib.TimeoutHandler(UpdatePos));
        }
Esempio n. 9
0
 protected virtual void OnDrawingareaExposeEvent(object o, Gtk.ExposeEventArgs args)
 {
     if (designService != null)
     {
         DrawingArea   area = (DrawingArea)o;
         Cairo.Context cr   = Gdk.CairoHelper.Create(area.GdkWindow);
         cr.Antialias = Cairo.Antialias.None;
         designService.RedrawReport(cr);
         area.SetSizeRequest((int)designService.Width, (int)designService.Height);
         (cr as IDisposable).Dispose();
     }
 }
Esempio n. 10
0
        public VideoWidget()
        {
            Frame frame = new Frame();

            drawing_area = new DrawingArea();
            drawing_area.SetSizeRequest(400, 300);
            drawing_area.DoubleBuffered = false;
            frame.Add(drawing_area);

            Add(frame);
            DeleteEvent += OnDeleteEvent;
            frame.ShowAll();
        }
Esempio n. 11
0
        private Widget CreateCanvasArea()
        {
            var renderTitle = new Label("Rendering")
            {
                Halign = Align.Start
            };

            _canvas = new DrawingArea {
                Name = "canvas"
            };
            _canvas.SetSizeRequest(400, 400);
            _canvas.Drawn += (o, args) =>
            {
                args.Cr.Rectangle(0, 0,
                                  _canvas.AllocatedWidth,
                                  _canvas.AllocatedHeight);
                args.Cr.LineWidth = 3;
                args.Cr.SetSourceRGB(0.2, 0.2, 0.2);
                args.Cr.FillPreserve();
                args.Cr.SetSourceRGB(0, 0, 0);
                args.Cr.Stroke();

                if (_model.ActiveRun.Get()?.ImageData == null)
                {
                    return;
                }

                var surface = new ImageSurface(
                    _model.ActiveRun.Get().ImageData, Format.ARGB32,
                    _model.ActiveRun.Get().RenderWidth,
                    _model.ActiveRun.Get().RenderHeight,
                    4 * _model.ActiveRun.Get().RenderWidth);
                args.Cr.Scale(.5, .5);
                args.Cr.SetSourceSurface(surface, 0, 0);
                args.Cr.Paint();
                surface.Dispose();
            };

            _iterationLbl = new Label("i, e, a")
            {
                Halign      = Align.Start,
                TooltipText = "Iterations, Elapsed time, Average elapsed time"
            };

            var result = new VBox(false, 7)
            {
                renderTitle, _canvas, _iterationLbl
            };

            return(result);
        }
Esempio n. 12
0
    public MainWindow()
        : base(WindowType.Toplevel)
    {
        VBox vBox = new VBox ();

        _da = new DrawingArea ();
        _da.ModifyBg (Gtk.StateType.Normal, new Gdk.Color (0, 0, 0));
        _da.SetSizeRequest (400, 300);
        _da.DoubleBuffered = false;
        vBox.PackStart (_da, true, true, 0);

        _scale = new HScale (0, 1, 0.01);
        _scale.DrawValue = false;
        _scale.ValueChanged += ScaleValueChanged;
        vBox.PackStart (_scale, false, false, 0);

        HBox hBox = new HBox ();

        Button btnOpen = new Button ();
        btnOpen.Label = "Open";
        btnOpen.Clicked += ButtonOpenClicked;

        hBox.PackStart (btnOpen, false, false, 0);

        Button btnPlay = new Button ();
        btnPlay.Label = "Play";
        btnPlay.Clicked += ButtonPlayClicked;

        hBox.PackStart (btnPlay, false, false, 0);

        Button btnPause = new Button ();
        btnPause.Label = "Pause";
        btnPause.Clicked += ButtonPauseClicked;

        hBox.PackStart (btnPause, false, false, 0);

        _lbl = new Label ();
        _lbl.Text = "00:00 / 00:00";

        hBox.PackEnd (_lbl, false, false, 0);

        vBox.PackStart (hBox, false, false, 3);

        Add (vBox);

        WindowPosition = Gtk.WindowPosition.Center;
        DeleteEvent += OnDeleteEvent;

        GLib.Timeout.Add (1000, new GLib.TimeoutHandler (UpdatePos));
    }
Esempio n. 13
0
        protected virtual void OnPreviewDrawingareaExposeEvent(object o, Gtk.ExposeEventArgs args)
        {
            DrawingArea area = (DrawingArea)o;

            if (designService.Report.Pages.Count > 0)
            {
                Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow);
                cr.Antialias           = Cairo.Antialias.None;
                reportRenderer.Context = cr;
                Cairo.Rectangle r = new Cairo.Rectangle(0, 0, designService.Report.WidthWithMargins, designService.Report.HeightWithMargins);
                cr.FillRectangle(r, backgroundPageColor);
                cr.Translate(designService.Report.Margin.Left, designService.Report.Margin.Top);
                reportRenderer.RenderPage(designService.Report.Pages [pageNumber]);
                area.SetSizeRequest((int)designService.Report.HeightWithMargins, (int)designService.Report.HeightWithMargins + 5);

                (cr as IDisposable).Dispose();
            }
        }
Esempio n. 14
0
        static void Main(string[] args)
        {
            var assembly    = typeof(Program).Assembly;
            var fileVersion = assembly.GetCustomAttribute <AssemblyFileVersionAttribute>();

#if DEBUG
            var buildType = "Debug";
#else
            var buildType = "Release";
#endif
            Console.WriteLine($"OpenPackage (HydraEd {fileVersion.Version}/{buildType})");

            if (args.Length == 0)
            {
                Console.WriteLine("Error: Run this tool again with the file path specified.");
                return;
            }
            var filename = string.Join(' ', args);
            using var file = File.OpenRead(filename);
            var package = new Package(file);

            Application.Init();

            var app = new Application("com.alex.hydra.devtool", GLib.ApplicationFlags.None);
            app.Register(GLib.Cancellable.Current);

            var win         = new Window(WindowType.Toplevel);
            var drawingArea = new DrawingArea();
            win.SetSizeRequest(256, 256);
            drawingArea.SetSizeRequest(256, 256);

            var actorTree   = new ActorTree(package);
            var gtkRenderer = new GtkRenderer(drawingArea);
            var hydra       = new HydraEngine(actorTree, gtkRenderer);
            gtkRenderer.LinkTo(hydra);
            win.DeleteEvent += (object sender, DeleteEventArgs args) => { Application.Quit(); };

            win.Child = drawingArea;
            app.AddWindow(win);
            win.ShowAll();
            drawingArea.QueueDraw();

            Application.Run();
        }
Esempio n. 15
0
        private void InitializeComponent()
        {
            Title = "Test";

            SetDefaultSize(300, 300);

            //buttonBox = new ButtonBox();
            //buttonBox.Name = "buttonBox";
            //Add(buttonBox);

            layout      = new Layout();
            layout.Name = "layout";

            Add(layout);

            label      = new Label();
            label.Text = "test";
            label.SetMargin(20, 40);

            layout.Add(label);

            drawingArea = new DrawingArea();
            drawingArea.SetSizeRequest(200, 200);
            drawingArea.Draw += DrawingArea_Draw;

            layout.Add(drawingArea);

            button                 = new Button();
            button.Name            = "button";
            button.Label           = "Click me!";
            button.ButtonReleased += Button_Released;
            button.SetMargin(20, 0);

            image = Image.FromFile("Content/gnome-logo.png");
            layout.Add(image);

            layout.Add(button);
        }
Esempio n. 16
0
        void OnExpose(object sender, ExposeEventArgs args)
        {
            DrawingArea area = (DrawingArea)sender;

//			area.AddEvents ((int) Gdk.EventMask.ButtonPressMask);
//			area.ButtonPressEvent += delegate(object o, ButtonPressEventArgs arg) {
//				int i,j;
//				area.GetPointer(out i,out j);
//				System.Console.WriteLine(i+" , "+j);
//
//			};
            if (Constantes.simulacion || Constantes.escenario)
            {
                area.SetSizeRequest((int)(Constantes.limites.Width * Constantes.sx), (int)(Constantes.limites.Height * Constantes.sy));

                Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow);
                cr.Scale(Constantes.sx, Constantes.sy);

                if (ventana.calor.Active && !ventana.trayectoria.Active)
                {
                    dibujar_grilla_estadistica(area, cr);
                }

                if (ventana.trayectoria.Active && !ventana.calor.Active)
                {
                    dibujar_trayectorias(area, cr);
                }

                if (ventana.trayectoria.Active && ventana.calor.Active)
                {
                    dibujar_trayectorias(area, cr);
                }

                if (ventana.grilla.Active && !ventana.calor.Active && !ventana.trayectoria.Active)
                {
                    dibujar_grilla(area, cr);
                }

                if (Constantes.escenarioCargado)
                {
                    escenarioCargado(cr);
                }

                if (Constantes.simulacion && !ventana.calor.Active && !ventana.trayectoria.Active)
                {
                    Constantes.sincronizar = true;
                    if (Constantes.simulacionContinua)
                    {
                        play_simulacion_continua2(area, cr);                          //para simulacion continua poner play_simulacion_grilla (area, cr); y cambiar en BoidAutonomo el metodo update_obejtivo()
                    }
                    else
                    {
                        play_simulacion_finita2(area, cr);
                    }
                    Constantes.sincronizar = false;
                }
                if (Constantes.escenario)
                {
                    scene_design(area, cr);
                }


                cr.GetTarget().Dispose();
                ((IDisposable)cr).Dispose();
            }
        }
Esempio n. 17
0
        //Contains all of the components which are on the window
        private void setupWindow()
        {
            //Vertical box (3 sections) which is the main container
            VBox MainVBox = new VBox(false, 6);

            /*********************Start of menu bar components*********************/

            //Note: Flow of menus are:
            //Menubar contains MenuItems (e.g. File, Edit, About, etc...)
            //MenuItems contains one Menu (i.e. a Submenu)
            //Menu contains multiple MenuItems (e.g. Save, Save As, Load, etc...)
            MenuBar MainMenuBar = new MenuBar();

            Menu     FileMenu = new Menu();
            MenuItem File     = new MenuItem("File");

            File.Submenu = FileMenu;

            MenuItem ExitItem = new MenuItem("Exit");

            ExitItem.Activated += quitProgram;
            FileMenu.Append(ExitItem);

            Menu     GestureMenu = new Menu();
            MenuItem Gesture     = new MenuItem("Gestures");

            Gesture.Submenu = GestureMenu;

            MenuItem LoadGesture = new MenuItem("Load Gesture");

            LoadGesture.Activated += openGesture;
            GestureMenu.Append(LoadGesture);

            MenuItem SaveGestureItem = new MenuItem("Save Gesture");

            SaveGestureItem.Activated += createGesture;
            GestureMenu.Append(SaveGestureItem);

            Menu     PointsMenu = new Menu();
            MenuItem Points     = new MenuItem("Data Points");

            Points.Submenu = PointsMenu;

            MenuItem LoadPointsItem = new MenuItem("Load Points");

            LoadPointsItem.Activated += loadDataPoints;
            PointsMenu.Append(LoadPointsItem);

            MenuItem RecordPointsItem = new MenuItem("Record Points");

            RecordPointsItem.Activated += recordPoints;
            PointsMenu.Append(RecordPointsItem);

            MenuItem BatchRecognizeItem = new MenuItem("Batch Recognize");

            BatchRecognizeItem.Activated += batchRecognize;
            PointsMenu.Append(BatchRecognizeItem);

            Menu     HelpMenu = new Menu();
            MenuItem Help     = new MenuItem("Help");

            Help.Submenu = HelpMenu;

            MenuItem AboutMenuItem = new MenuItem("About");

            HelpMenu.Append(AboutMenuItem);

            MainMenuBar.Append(File);
            MainMenuBar.Append(Gesture);
            MainMenuBar.Append(Points);
            MainMenuBar.Append(Help);

            /*********************End of menu bar components*********************/

            //Drawing area which is the core component of the application
            dArea = new DrawingArea();
            dArea.SetSizeRequest(500, 500);

            //Horizontal box (4 sections) which contains all of the buttons along the
            //bottom of the window
            HBox ButtonHBox = new HBox(false, 6);

            /*********************Start of Buttons*********************/

            Button BtnCreateGesture    = new Button("Create");
            Button BtnRecognizeGesture = new Button("Recognize");
            Button BtnClearScreen      = new Button("Clear");
            Button BtnRecordPoints     = new Button("Record points");
            Button BtnChangeColour     = new Button("Change colour");

            //Button functions
            BtnCreateGesture.Clicked    += new EventHandler(createGesture);
            BtnRecognizeGesture.Clicked += new EventHandler(recognizeGesture);
            BtnClearScreen.Clicked      += new EventHandler(clearScreen);
            BtnRecordPoints.Clicked     += new EventHandler(recordPoints);
            BtnChangeColour.Clicked     += changeColour;

            //Adding buttons to the current horizontal box
            ButtonHBox.PackStart(BtnCreateGesture, true, false, 0);
            ButtonHBox.PackStart(BtnRecognizeGesture, true, false, 0);
            ButtonHBox.PackStart(BtnClearScreen, true, false, 0);
            ButtonHBox.PackStart(BtnRecordPoints, true, false, 0);
            ButtonHBox.PackStart(BtnChangeColour, true, false, 0);
            /*********************End of Buttons*********************/

            //Status bar which shows the score and recognized gesture
            sBar = new Statusbar();
            sBar.Push(1, "Ready");

            //Entry box for batch function name to be used on the files
            batchFunctionName = new Entry("Recorded points function name");
            batchFunctionName.AddEvents(
                (int)Gdk.EventMask.ButtonPressMask
                );
            batchFunctionName.ButtonPressEvent += clearTextBox;

            //Adding all components to the Vertical box
            MainVBox.PackStart(MainMenuBar, false, false, 0);
            MainVBox.PackStart(dArea, false, false, 0);
            MainVBox.PackStart(ButtonHBox, false, false, 0);
            MainVBox.PackStart(batchFunctionName, false, false, 0);
            MainVBox.PackStart(sBar, false, false, 0);

            Add(MainVBox);

            ShowAll();

            //Surface 'pattern' for area to be covered
            surface = new ImageSurface(Format.Argb32, 500, 500);

            //Adding mouse events to the drawing area and assigning functions
            dArea.AddEvents(
                //Mouse Related Events
                (int)Gdk.EventMask.PointerMotionMask
                | (int)Gdk.EventMask.ButtonPressMask
                | (int)Gdk.EventMask.ButtonReleaseMask
                );

            //Repaint the Canvas Internally.
            dArea.ExposeEvent += OnDrawingAreaExposed;
            //Do this on MousePress inside Area
            dArea.ButtonPressEvent += OnMousePress;
            //Do this on MouseReleased inside Area
            dArea.ButtonReleaseEvent += OnMouseRelease;
            //Do this if a Motion Occurs inside the Drawing Area
            dArea.MotionNotifyEvent += OnMouseMotion2;

            //Assigning close function to the window
            DeleteEvent += delegate { Application.Quit(); };

            //Checking to see if bool for using the dot function is true
            //And assigning the required function as the delegate's operation
            //Note: This will always be true, no current way to switch while
            //application is running, has not been needed as of yet
            if (isDot)
            {
                Painter    = new DrawShape(DrawDot);
                myoPainter = new DrawShape(DrawDot);
            }
            else
            {
                Painter = new DrawShape(DrawLine);
            }
        }
Esempio n. 18
0
 HermitePoint CreateHermitePoint(Color col)
 {
     var cp1 = new DrawingArea ();
     cp1.ModifyBg (StateType.Normal, col);
     cp1.SetSizeRequest (20, 20);
     cp1.AddEvents ((int)EventMask.AllEventsMask);
     fixed3.Add (cp1);
     cp1.Show ();
     bool drag = false;
     Point p = new Point();
     cp1.MotionNotifyEvent += (o, args) => {
         if (drag) {
             int x, y;
             cp1.GdkWindow.GetPosition (out x, out y);
             cp1.GdkWindow.Move (
                 (int)args.Event.X + x - p.X,
                 (int)args.Event.Y + y - p.Y
             );
         }
         canvas.QueueDraw ();
     };
     cp1.ButtonPressEvent += (o, args) => {
         drag = true;
         p = new Point ((int)args.Event.X, (int)args.Event.Y);
     };
     cp1.ButtonReleaseEvent += (o, args) => {
         drag = false;
     };
     return new HermitePoint (){Area = cp1 };
 }