WPF is a great technology, it gives much than we think ability to design creative user interfaces, controls, ... etc. But, since it's a new tech (at least to me ), I spent a lot of time studying it
However, now there are many things I can talk about. So, I'll start with fast and short description about my works and how it's done:
Main Tasks:
The Logic-Gates: I created it as User Control so I can give it the features I want and after that we can simply add it to the project as new control. The point here that if we got any problem with gates we can cover it without changing the whole project and causing any problem with other parts. So here we go to the 1st part called Gate Designer. this section contain all the animations, effects, behaviors ... of the controls!
The Logic-Gates (Code Section): we have abstract class called "Abstract Gate" then the gates like (AND, OR, NOT, .... etc) inherit it. this simple UML here show that classes.
the problem here is: how to make User Control Inherits from my gates too???
Main Window:
main design
shortcuts: ( Delete, Undo/Redo, Open/Save, Copy/Paste/Cut .... etc)
Export to PNG
Current Process:
the main UI and it's commands like (Open/save Undo/redo Selection delete ... etc) P.S: it's taking a lot of time.
Undo/Redo Done.
Selection/ Delete Done.
Copy/Paste/Cut Done.
Open/Save Working On.
thinking of the connector Code Section, and how to implement it P.S: I think it need to edit the gates designer to prepare it to allow connections and create terminals for it.
editing main UI to add more animations and make my custom design.
Current Problems:
Connect gates code and design sections (or make my controls inherit from User control and abstract_gate "the base class of my gates" ). Working On...... almost fixed
when mouse click down on my gates make it get focus (for example when click on and gate on canvas " the container " I need to know that I clicked And_1 children and let it get focus)! Fixed Using Custom Selection property
how to make my controls (gates) selectable children in canvas Done... finally
copy bugs ?? Almost Fixed ..... under testing
how to detect how much Input/output gates available and what it's state ?? Rebuilding new Gate Designer with some new Improvements to allow this
move values between connected gates
latest updates:
Selection .... (Done by Create custom selection process and editing the Gates Designer to allow this operation). I'll add samples soon
Copy/paste fixed and now working on new improvements
How to detect gate(Type, name, ... other info) and (If I'm connecting the output or input of this gate "In basic gates for now"). !!! the problem here that UserControl cannot inherit from abstarct gate class ???
Working on Connections the Code and how to send the value using the wire!
Gates designer: fixed problem (how to access each gate property needed to make selections, connection, change status ... etc!) check code for more info
P.S.1: the full descriptions Will Be Detailed in the Report .....