Sizer Naming Conventions Topic is solved

This forum can be used to talk about general design strategies, new ideas and questions in general related to wxWidgets. If you feel your questions doesn't fit anywhere, put it here.
Post Reply
Estien77
Knows some wx things
Knows some wx things
Posts: 31
Joined: Tue Jan 13, 2009 8:38 pm
Location: Canada, eh?

Sizer Naming Conventions

Post by Estien77 »

Why kind of naming conventions do you use on your sizers? I have a ton of sizers that I need to use in my program, and I'm having trouble coming up with intelligent names for them. Anyone have any suggestions?

Here is an example:

Code: Select all

/*gs = wxGridSizer
pb = wxButton
sb = wxStaticBoxSizer
eb = wxTextCtrl (derived from anyway)
lb = wxListBox
cb = wxComboBox or derived wxOwnerDrawnComboBox
hs = wxBoxSizer (horizontal)
vs = wxBoxSizer (vertical)
st = wxStaticText
fs = wxFlexGridSizer
ch = wxCheckBox
w = wxPanel, wxFrame, wxWindow, wxScrolledWindow
*/
	gsMainResearchB->Add(pbMainResearchAdd, 1, wxEXPAND);
//	gsMainResearchB->Add(pbMainResearchInsert, 1, wxEXPAND);
	gsMainResearchB->Add(pbMainResearchDelete, 1, wxEXPAND);
//	gsMainResearchB->Add(pbMainResearchDefault, 1, wxEXPAND);
	gsMainResearchB->Add(pbMainResearchCopy, 1, wxEXPAND);
	gsMainResearchB->Add(pbMainResearchPaste, 1, wxEXPAND);

	sbMainResearchList->Add(ebMainResearchSearch, 0, wxEXPAND);
//	sbMainResearchList->Add(ebMainResearchRSearch, 0, wxEXPAND);
	sbMainResearchList->Add(-1, 2);
	sbMainResearchList->Add(lbMainResearchList, 1, wxEXPAND);
	sbMainResearchList->Add(-1, 2);
	sbMainResearchList->Add(gsMainResearchB, 0, wxEXPAND);
//	sbMainResearchList->Add(pbMainResearchRestore, 0, wxEXPAND);
	sbMainResearchList->Add(pbMainResearchExport, 0, wxEXPAND);
	
	vsMainResearchA->Add(-1, 15);
	vsMainResearchA->Add(sbMainResearchList, 1, wxEXPAND);
	vsMainResearchA->Add(-1, 15);

	hsMainResearchSimple[0]->Add(cbMainResearchRequiredTechs[0], 1, wxEXPAND);
	hsMainResearchSimple[0]->Add(ebMainResearchRequiredTechs[0], 1, wxEXPAND);
	hsMainResearchSimple[1]->Add(cbMainResearchRequiredTechs[1], 1, wxEXPAND);
	hsMainResearchSimple[1]->Add(ebMainResearchRequiredTechs[1], 1, wxEXPAND);
	hsMainResearchSimple[2]->Add(cbMainResearchRequiredTechs[2], 1, wxEXPAND);
	hsMainResearchSimple[2]->Add(ebMainResearchRequiredTechs[2], 1, wxEXPAND);
	hsMainResearchSimple[3]->Add(cbMainResearchRequiredTechs[3], 1, wxEXPAND);
	hsMainResearchSimple[3]->Add(ebMainResearchRequiredTechs[3], 1, wxEXPAND);
	hsMainResearchSimple[4]->Add(cbMainResearchRequiredTechs[4], 1, wxEXPAND);
	hsMainResearchSimple[4]->Add(ebMainResearchRequiredTechs[4], 1, wxEXPAND);
	hsMainResearchSimple[5]->Add(cbMainResearchRequiredTechs[5], 1, wxEXPAND);
	hsMainResearchSimple[5]->Add(ebMainResearchRequiredTechs[5], 1, wxEXPAND);

	sbMainResearchRequiredTechs->Add(hsMainResearchSimple[0], 1, wxEXPAND);
	sbMainResearchRequiredTechs->Add(5, -1);
	sbMainResearchRequiredTechs->Add(hsMainResearchSimple[1], 1, wxEXPAND);
	sbMainResearchRequiredTechs->Add(5, -1);
	sbMainResearchRequiredTechs->Add(hsMainResearchSimple[2], 1, wxEXPAND);
	sbMainResearchRequiredTechs->Add(5, -1);
	sbMainResearchRequiredTechs->Add(hsMainResearchSimple[3], 1, wxEXPAND);
	sbMainResearchRequiredTechs->Add(5, -1);
	sbMainResearchRequiredTechs->Add(hsMainResearchSimple[4], 1, wxEXPAND);
	sbMainResearchRequiredTechs->Add(5, -1);
	sbMainResearchRequiredTechs->Add(hsMainResearchSimple[5], 1, wxEXPAND);
	
	hsMainResearchSimple[6]->Add(chMainResearchUsed[0], 1, wxEXPAND);
	hsMainResearchSimple[6]->Add(ebMainResearchUsed[0], 1, wxEXPAND);
	hsMainResearchSimple[7]->Add(chMainResearchUsed[1], 1, wxEXPAND);
	hsMainResearchSimple[7]->Add(ebMainResearchUsed[1], 1, wxEXPAND);
	hsMainResearchSimple[8]->Add(chMainResearchUsed[2], 1, wxEXPAND);
	hsMainResearchSimple[8]->Add(ebMainResearchUsed[2], 1, wxEXPAND);

	fsMainResearchCost[0]->Add(stMainResearchResources[0], 1, wxEXPAND);
	fsMainResearchCost[0]->Add(ebMainResearchResources[0], 1, wxEXPAND);
	fsMainResearchCost[0]->Add(stMainResearchAmount[0], 1, wxEXPAND);
	fsMainResearchCost[0]->Add(ebMainResearchAmount[0], 1, wxEXPAND);
	fsMainResearchCost[0]->Add(stMainResearchUsed[0], 1, wxEXPAND);
	fsMainResearchCost[0]->Add(hsMainResearchSimple[6], 1, wxEXPAND);
	fsMainResearchCost[1]->Add(stMainResearchResources[1], 1, wxEXPAND);
	fsMainResearchCost[1]->Add(ebMainResearchResources[1], 1, wxEXPAND);
	fsMainResearchCost[1]->Add(stMainResearchAmount[1], 1, wxEXPAND);
	fsMainResearchCost[1]->Add(ebMainResearchAmount[1], 1, wxEXPAND);
	fsMainResearchCost[1]->Add(stMainResearchUsed[1], 1, wxEXPAND);
	fsMainResearchCost[1]->Add(hsMainResearchSimple[7], 1, wxEXPAND);
	fsMainResearchCost[2]->Add(stMainResearchResources[2], 1, wxEXPAND);
	fsMainResearchCost[2]->Add(ebMainResearchResources[2], 1, wxEXPAND);
	fsMainResearchCost[2]->Add(stMainResearchAmount[2], 1, wxEXPAND);
	fsMainResearchCost[2]->Add(ebMainResearchAmount[2], 1, wxEXPAND);
	fsMainResearchCost[2]->Add(stMainResearchUsed[2], 1, wxEXPAND);
	fsMainResearchCost[2]->Add(hsMainResearchSimple[8], 1, wxEXPAND);

	fsMainResearchCost[0]->AddGrowableCol(0);
	fsMainResearchCost[0]->AddGrowableCol(1);
	fsMainResearchCost[0]->AddGrowableRow(0);
	fsMainResearchCost[0]->AddGrowableRow(1);
	fsMainResearchCost[0]->AddGrowableRow(2);
	fsMainResearchCost[1]->AddGrowableCol(0);
	fsMainResearchCost[1]->AddGrowableCol(1);
	fsMainResearchCost[1]->AddGrowableRow(0);
	fsMainResearchCost[1]->AddGrowableRow(1);
	fsMainResearchCost[1]->AddGrowableRow(2);
	fsMainResearchCost[2]->AddGrowableCol(0);
	fsMainResearchCost[2]->AddGrowableCol(1);
	fsMainResearchCost[2]->AddGrowableRow(0);
	fsMainResearchCost[2]->AddGrowableRow(1);
	fsMainResearchCost[2]->AddGrowableRow(2);

	sbMainResearchCost[0]->Add(fsMainResearchCost[0], 1, wxEXPAND);
	sbMainResearchCost[1]->Add(fsMainResearchCost[1], 1, wxEXPAND);
	sbMainResearchCost[2]->Add(fsMainResearchCost[2], 1, wxEXPAND);
	
	hsMainResearchCost->Add(sbMainResearchCost[0], 1, wxEXPAND);
	hsMainResearchCost->Add(5, -1);
	hsMainResearchCost->Add(sbMainResearchCost[1], 1, wxEXPAND);
	hsMainResearchCost->Add(5, -1);
	hsMainResearchCost->Add(sbMainResearchCost[2], 1, wxEXPAND);
	
	hsMainResearchSimple[9]->Add(cbMainResearchCiv, 1, wxEXPAND);
	hsMainResearchSimple[9]->Add(ebMainResearchCiv, 1, wxEXPAND);
	hsMainResearchSimple[10]->Add(chMainResearchFullTechMode, 1, wxEXPAND);
	hsMainResearchSimple[10]->Add(ebMainResearchFullTechMode, 1, wxEXPAND);
	hsMainResearchSimple[11]->Add(cbMainResearchResearchLocation, 1, wxEXPAND);
	hsMainResearchSimple[11]->Add(ebMainResearchResearchLocation, 1, wxEXPAND);

	sbMainResearchRequiredTechCount->Add(ebMainResearchRequiredTechCount, 1, wxEXPAND);
	sbMainResearchCiv->Add(hsMainResearchSimple[9], 1, wxEXPAND);
	sbMainResearchFullTechMode->Add(hsMainResearchSimple[10], 1, wxEXPAND);
	sbMainResearchResearchLocation->Add(hsMainResearchSimple[11], 1, wxEXPAND);
	
	hsMainResearchD->Add(sbMainResearchRequiredTechCount, 1, wxEXPAND);
	hsMainResearchD->Add(5, -1);
	hsMainResearchD->Add(sbMainResearchCiv, 1, wxEXPAND);
	hsMainResearchD->Add(5, -1);
	hsMainResearchD->Add(sbMainResearchFullTechMode, 1, wxEXPAND);
	hsMainResearchD->Add(5, -1);
	hsMainResearchD->Add(sbMainResearchResearchLocation, 1, wxEXPAND);

	sbMainResearchLanguageDllName->Add(ebMainResearchLanguageDllName, 0, wxEXPAND);
	sbMainResearchLanguageDllName->Add(-1, 5);
	sbMainResearchLanguageDllName->Add(stMainResearchLanguageDllName, 0, wxEXPAND);
	sbMainResearchLanguageDllDescription->Add(ebMainResearchLanguageDllDescription, 0, wxEXPAND);
	sbMainResearchLanguageDllDescription->Add(-1, 5);
	sbMainResearchLanguageDllDescription->Add(stMainResearchLanguageDllDescription, 0, wxEXPAND);

	hsMainResearchE->Add(sbMainResearchLanguageDllName, 1, wxEXPAND);
	hsMainResearchE->Add(5, -1);
	hsMainResearchE->Add(sbMainResearchLanguageDllDescription, 1, wxEXPAND);

	hsMainResearchSimple[12]->Add(cbMainResearchTechageID, 1, wxEXPAND);
	hsMainResearchSimple[12]->Add(ebMainResearchTechageID, 1, wxEXPAND);

	sbMainResearchResearchTime->Add(ebMainResearchResearchTime, 1, wxEXPAND);
	sbMainResearchTechageID->Add(hsMainResearchSimple[12], 1, wxEXPAND);
	sbMainResearchType->Add(ebMainResearchType, 1, wxEXPAND);
	sbMainResearchIconID->Add(ebMainResearchIconID, 1, wxEXPAND);
	sbMainResearchButtonID->Add(ebMainResearchButtonID, 1, wxEXPAND);

	hsMainResearchF->Add(sbMainResearchResearchTime, 1, wxEXPAND);
	hsMainResearchF->Add(5, -1);
	hsMainResearchF->Add(sbMainResearchTechageID, 1, wxEXPAND);
	hsMainResearchF->Add(5, -1);
	hsMainResearchF->Add(sbMainResearchType, 1, wxEXPAND);
	hsMainResearchF->Add(5, -1);
	hsMainResearchF->Add(sbMainResearchIconID, 1, wxEXPAND);
	hsMainResearchF->Add(5, -1);
	hsMainResearchF->Add(sbMainResearchButtonID, 1, wxEXPAND);

	sbMainResearchPointers[0]->Add(ebMainResearchPointers[0], 1, wxEXPAND);
	sbMainResearchPointers[1]->Add(ebMainResearchPointers[1], 1, wxEXPAND);
	sbMainResearchPointers[2]->Add(ebMainResearchPointers[2], 1, wxEXPAND);
	
	hsMainResearchG->Add(sbMainResearchPointers[0], 1, wxEXPAND);
	hsMainResearchG->Add(5, -1);
	hsMainResearchG->Add(sbMainResearchPointers[1], 1, wxEXPAND);
	hsMainResearchG->Add(5, -1);
	hsMainResearchG->Add(sbMainResearchPointers[2], 1, wxEXPAND);

	sbMainResearchName[0]->Add(ebMainResearchName[0], 1, wxEXPAND);
	sbMainResearchName[1]->Add(ebMainResearchName[1], 1, wxEXPAND);

	hsMainResearchH->Add(sbMainResearchName[0], 1, wxEXPAND);
	hsMainResearchH->Add(5, -1);
	hsMainResearchH->Add(sbMainResearchName[1], 1, wxEXPAND);

	vsMainResearchC->Add(sbMainResearchRequiredTechs, 0, wxEXPAND);
	vsMainResearchC->Add(-1, 10);
	vsMainResearchC->Add(hsMainResearchD, 0, wxEXPAND);
	vsMainResearchC->Add(-1, 10);
	vsMainResearchC->Add(hsMainResearchCost, 0, wxEXPAND);
	vsMainResearchC->Add(-1, 10);
	vsMainResearchC->Add(hsMainResearchE, 0, wxEXPAND);
	vsMainResearchC->Add(-1, 10);
	vsMainResearchC->Add(hsMainResearchF, 0, wxEXPAND);
	vsMainResearchC->Add(-1, 10);
	vsMainResearchC->Add(hsMainResearchG, 0, wxEXPAND);
	vsMainResearchC->Add(-1, 10);
	vsMainResearchC->Add(hsMainResearchH, 0, wxEXPAND);
//	vsMainResearchC->Add(-1, -1);
	
	hsMainResearchJ->Add(10, -1);
	hsMainResearchJ->Add(vsMainResearchC, 1, wxEXPAND);
	hsMainResearchJ->Add(10, -1);
	
	wResearchScroller->SetSizer(hsMainResearchJ);
	wResearchScroller->SetScrollRate(0, 15);

	vsMainResearchI->Add(-1, 15);
	vsMainResearchI->Add(wResearchScroller, 1, wxEXPAND);
	vsMainResearchI->Add(-1, 15);

	hsMainResearch->Add(15, -1);
	hsMainResearch->Add(vsMainResearchA, 1, wxEXPAND);
	hsMainResearch->Add(15, -1);
	hsMainResearch->Add(vsMainResearchI, 3, wxEXPAND);
	hsMainResearch->Add(5, -1);
It's incredibly hard to understand when you've been away from it for awhile, though all it does is arrrange and group different controls together. The static box sizers are relatively easy, as they only contain one variable or a group of one type of variable.
Attachments
Screenshot of the resulting GUI for above code
Screenshot of the resulting GUI for above code
if(work == fun)
{
pigsCanFly = true;
}
Auria
Site Admin
Site Admin
Posts: 6695
Joined: Thu Sep 28, 2006 12:23 am
Contact:

Post by Auria »

use a GUI builder and load that screen from XRC, then you have no problem anymore :D

Another solution I use is to not declare sizers as members, use them temporarily and scope them :

Code: Select all


wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);

// some label
mainSizer->Add( ... );

// some button
mainSizer->Add( ... );

// some line
{
wxBoxSizer* lineSizer = new wxBoxSizer(wxHORIZONTAL);
lineSizer->Add( ... );
lineSizer->Add( ... );
mainSizer->Add( lineSizer );
}

// another line
{
wxBoxSizer* lineSizer = new wxBoxSizer(wxHORIZONTAL);
lineSizer->Add( ... );
lineSizer->Add( ... );
mainSizer->Add( lineSizer );
}

"Keyboard not detected. Press F1 to continue"
-- Windows
Estien77
Knows some wx things
Knows some wx things
Posts: 31
Joined: Tue Jan 13, 2009 8:38 pm
Location: Canada, eh?

Post by Estien77 »

That's an interesting concept (scoping them). I don't usually use GUI builders, but I might try it.
if(work == fun)
{
pigsCanFly = true;
}
Post Reply