Extending Canvas When Object Is Outside Boundaries, and X-Axis Covering Box

{
  TCanvas *c = new TCanvas("c", "My Canvas Title");
  TH1F *h = c->DrawFrame(0., 0., 15., 20., "My Plot Title; My X Axis;My Y Axis");
  h->GetXaxis()->SetTickLength(0.5);
  TF1 *f1 = new TF1("f1","x",0,10);
  f1->Draw("SAME");
  TBox *aBox = new TBox(5,0,15,20);
  aBox->Draw();
  gPad->RedrawAxis();
}