public override void MuisLos(SchetsControl s, Point p) { base.MuisLos(s, p); //Gebruik de methode muislos van startpunttool Boolean hasErased = false; //Zet de bool hasErased op false zodat er nog niet gegumt is int i; //Declareer int i voor een latere for-loop if(s.schets.actionEraseLimit == -1) { i = s.schets.actions.Count - 1; //Zetten van int i } else { i = s.schets.actionEraseLimit; //Zetten van int i } for (; i >= 0; i--) { if (!(s.schets.actions[i] is FancyEraserAction) && s.schets.actions[i].isInClick(p.X, p.Y)) //Zeggen wat er moet gebeuren als je ergens op klikt en dit geen fancyEraser object is { if (!s.schets.actions[i].drawAction) //Kijken of het een tekenactie is of niet, indien niet dan continue { continue; } s.schets.actions[i].drawAction = false; //Zet drawaction op false ((FancyEraserAction)s.currentAction).erasedAction = s.schets.actions[i]; //Gum deze action weg hasErased = true; //Zet hasErased op true, dus er is gegumt break; //Break uit de loop } } if (!hasErased) //Als hasErased nog valt is, dan zet currentAction = null { s.currentAction = null; } }
//Functie die bij indrukken muis variabelen zet public void onMouseDown(SchetsControl s, int x, int y, int lineT, Color color) { startPoint[0] = x; startPoint[1] = y; lineThickness = lineT; actionColor = color; }
// Constructor aangeroepen wanneer een tab in een nieuw window geopend wordt. public SchetsWindow(SchetsControl control) { InitializeComponent(); tabControl.ItemsSource = tabItems; addExistingSchetsControl(control); App.schetsWindows.Add(this); }
public override void MuisDrag(SchetsControl s, Point p) { }
public override void Letter(SchetsControl s, char c) { }
// Nieuwe schets aanmaken en toevoegen private void addNewSchets() { currentSchetsControl = new SchetsControl("new(" + schetsControls.Count + ").schep"); addCurrentSchetsControl(); }
//Functie waarmee wordt bepaald waar er getekend moet worden public override void draw(SchetsControl s) { base.draw(s); App.availableTools[4].MuisVast(s, new Point(startPoint[0], startPoint[1])); App.availableTools[4].MuisLos(s, new Point(endPoint[0], endPoint[1])); }
//Functie waarmee wordt bepaald waar er getekend moet worden public override void draw(SchetsControl s) { base.draw(s); s.schets.Roteer(cw); }
public virtual void MuisLos(SchetsControl s, Point p) { }
public abstract void MuisDrag(SchetsControl s, Point p);
protected Point startpunt; //Aanmaken van het startpunt en van de kleur waarmee getekent wordt #endregion Fields #region Methods public abstract void Letter(SchetsControl s, char c);
//Teken kleine lijntjes tussen de losse punten van de pen public override void MuisDrag(SchetsControl s, Point p) { this.MuisLos(s, p); //Gebruik de methode muislos van lijntool -> dus van tweepunttool this.MuisVast(s, p); //Gebruik de methode muisvast van lijntool -> dus van tweepunttool }
// A user changed tabs, set current control private void tabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) { // and resize it, just in case. if(tabControl.SelectedIndex != -1) // -1 == no tabs { currentSchetsControl = schetsControls[tabControl.SelectedIndex]; currentHost = hosts[tabControl.SelectedIndex]; MetroWindow_SizeChanged_1(null, null); App.colorPickerWindow.refreshColors(); App.historyWindow.updateHistoryListSource(); } }
public override void MuisVast(SchetsControl s, Point p) { base.MuisVast(s, p); //Gebruik de methode muisvast uit tweepunttool }
public virtual void MuisVast(SchetsControl s, Point p) { kwast = new SolidBrush(s.schets.primaryColor); //Zeggen welke kleur de kwast is startpunt = p; //Zeggen wat het startpunt is, dus het punt waarop muis ingedrukt wordt }
public int[] startPoint = new int[2]; //Het declareren van de waarde die als punt wordt gebruikt bij indrukken muis #endregion Fields #region Methods //Functie die de kleur waarmee getekend wordt zet public virtual void draw(SchetsControl s) { s.schets.primaryColor = actionColor; }
string enteredText; //Declareren van de ingevoerde tekst #endregion Fields #region Methods public override void Letter(SchetsControl s, char c) { enteredText += c; //Zeggen dat de ingevoerde tekst een char erbij krijgt Graphics g = s.MaakBitmapGraphics(); //Aanmaken graphics voor het tekenen Font font = new Font("Tahoma", 40); //Zeggen welk lettertyp en grootte string tekst = c.ToString(); SizeF sz = g.MeasureString(enteredText, font, this.startpunt, StringFormat.GenericTypographic); //De grootte berekenen g.DrawString(enteredText, font, kwast, this.startpunt, StringFormat.GenericTypographic); //De string tekenen op het scherm s.currentAction.endPoint[0] = (int) (s.currentAction.startPoint[0] + sz.Width); //De endpoint.X variabel maken aan de hoeveelheid ingevulde tekst s.currentAction.endPoint[1] = (int)(s.currentAction.startPoint[1] + sz.Height); //De endpoint.Y variabel maken aan de hoeveelheid ingevulde tekst s.Invalidate(); //Teken het scherm opnieuw }
public List<int[]> points = new List<int[]>(); //Aanmaken van de list waarin de punten staan waarover de lijn is gegaan #endregion Fields #region Methods //Functie waarmee wordt bepaald waar er getekend moet worden public override void draw(SchetsControl s) { base.draw(s); App.availableTools[0].MuisVast(s, new Point(startPoint[0], startPoint[1])); for(int i = 1; i < points.Count; i++) { App.availableTools[0].MuisDrag(s, new Point(points[i][0], points[i][1])); } App.availableTools[0].MuisLos(s, new Point(endPoint[0], endPoint[1])); }
public override void MuisVast(SchetsControl s, Point p) { base.MuisVast(s, p); //Aanroepen van de muisvastmethode van startpunttool enteredText = ""; //Zetten dat ingevoerde tekst standaard niks is }
public string enteredText = ""; //Het declareren en op leeg zetten van de ingevoerde text #endregion Fields #region Methods //Functie waarmee wordt bepaald waar er getekend moet worden public override void draw(SchetsControl s) { App.availableTools[6].MuisVast(s, new Point(startPoint[0], startPoint[1])); for (int i = 0; i < enteredText.Length; i++ ) { App.availableTools[6].Letter(s, enteredText[i]); } }
public override void MuisLos(SchetsControl s, Point p) { base.MuisLos(s, p); //Gebruik de methode muislos van startpunttool s.MaakOverlayBitmapGraphics().Clear(Color.Transparent); this.Bezig(s.MaakBitmapGraphics(), startpunt, p); //Roep de methode bezig aan s.Invalidate(); //Teken het scherm opnieuw }
// Tekenen via acties public void TekenFromActions(SchetsControl s) { Color tempPrimary = primaryColor; // Tijdelijke primaire kleur vastleggen, zodat deze naderhand weer teruggezet kan worden App.currentSchetsWindow.currentSchetsControl.Schoon(); for (int i = 0; i < actions.Count; i++) // Starten met alles tekenen { actions[i].drawAction = true; } for (int i = 0; i <= actionDrawLimit && i < actions.Count; i++) // Weggegumde objecten binnen bereik niet tekenen { if (actions[i] is FancyEraserAction) { s.currentAction = actions[i]; s.schets.actionEraseLimit = i; ((FancyEraserAction)actions[i]).draw(s); s.schets.actionEraseLimit = -1; } } for (int i = 0; i <= actionDrawLimit && i < actions.Count; i++) // Overgebleven objecten wèl tekenen { s.currentAction = actions[i]; if (actions[i].drawAction && !(actions[i] is FancyEraserAction)) { actions[i].draw(s); } } }
// bestaande schets toe laten voegen aan lijst private void addExistingSchetsControl(SchetsControl schetsControl) { currentSchetsControl = schetsControl; addCurrentSchetsControl(); }