Before embarking on any project, we must have at least some idea on what the specifications for the program are going to be. It often helps to have a detailed idea on what you want to implement; and once all of that is done, you can add more features after the 1.0 release. It aids in keeping code clean, projects coherent and most importantly focused.
The specifications for our program in this case is what exactly we can do with our program besides edit text. Unfortunately, when we create an interface with glade, even simple seemingly "built in" functionality like cut, copy, and paste are absent. Not only this, but none of the buttons in the glade interface will start off working properly; the goal is to take the interface and connect the dots to get a finished product that works how we want it to work.
So for our text editor, we want the following: