With carbohydrate, two things matter. The first is how much carbohydrate there is and the second is how quickly it absorbs.
You need to work out your carb to insulin ration (which it is very likely will vary depending on the time of day) and bolus according to that ratio.
To give you an example, for my evening meal my insulin to carb ratio is 1:10. If I eat a meal comprising 90g of carbs I would bolus 9 units.
For the 'how fast', I sugest you look up glycemic index and glycemic load. What you have to keep in mind is that the insulin will absorb at a certain rate. The food at another. The glycemic index can give a good idea of foods that get into your system really quickly (pure table sugar, French bread, orange juice for instance) and foods where the carbs absorb more slowly (apples, chick peas etc). Many people find that the slower acting carbs work better for them, but it really is a case of testing frequently and seeing what works for you.
As to the protein, some people on here believe you need to bolus for it, others do not. I do bolus for large amounts of protein, but this is really something that you can only decide on for yourself with extensive blood testing. Eat a high protein, carb free meal without bolusing (which is probably what your Dr would recommend) and blood test every hour for the next 5 hours to see what it does. If you get no rise in BG then you can consider it free for you at the moment but keep in mind that this is a changeable condition....
If you do need to bolus for protein, most people seem to find that it absorbs much more slowly than carbs so IF any insulin is needed for you it may be best to leave it until 2 hours after eating. Again, it is only the blood tests that will tell you whether this is good or bad advice.
I have never heard of anyone bolusing for fat, but as ever my mind is open. I believe that the chemistry tells us that insulin is not needed for the body to absorb fat, but as you can probably tell I'm out of my depth with most things as far as chemistry goes. It's a skill I'm trying to improve but don't do so well at the moment
Gary