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(); }
/// <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"; }
private void UpdateDrawingAreaSizeRequests() { cda.SetSizeRequest(LeftWidth, TopHeight); tda.SetSizeRequest(FieldWidth, TopHeight); lda.SetSizeRequest(LeftWidth, FieldHeight); fda.SetSizeRequest(FieldWidth, FieldHeight); }
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; }
public (string, Widget) DrawCircles() { DrawingArea drawingArea = new DrawingArea(); drawingArea.SetSizeRequest(50, 50); drawingArea.Drawn += DrawingAreaCirclesOnDrawn; return("Draw Circles :", drawingArea); }
public (string, Widget) DrawText() { DrawingArea drawingArea = new DrawingArea(); drawingArea.SetSizeRequest(200, 100); drawingArea.Drawn += DrawingAreaTextOnDrawn; return("Draw Pango Text :", drawingArea); }
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(); }
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)); }
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(); } }
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(); }
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); }
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)); }
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(); } }
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(); }
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); }
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(); } }
//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); } }
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 }; }