One of the more tedious aspects of GUI development is keeping the UI in sync with the state of the application enabling and disabling widgets depending on the current context. For example, if the focus is on a read-only widget you should disable the paste button, once data has been entered you need to enable the File->Save menu item, etc.
Over the years I’ve learned that this can be a maintenance nightmare. For example, your application may start out with just a File->Save menu. Later you add a toolbar and right-click menu. Then you add keyboard accelerators. Each time you do this you have to find the places in your code where you disable the File->Save menu item and add code to disable all the other widgets and menu items.