src/intro_gui.cpp
branchcpp_gui
changeset 6305 aa0faea50ab5
parent 6303 84c215fc8eb8
equal deleted inserted replaced
6304:38b7e46e2def 6305:aa0faea50ab5
   165 
   165 
   166 	CCountedPtr<gui::Panel> m_panel1;
   166 	CCountedPtr<gui::Panel> m_panel1;
   167 	CCountedPtr<gui::Panel> m_panel2;
   167 	CCountedPtr<gui::Panel> m_panel2;
   168 	CCountedPtr<gui::Panel> m_panel3;
   168 	CCountedPtr<gui::Panel> m_panel3;
   169 	CCountedPtr<gui::Panel> m_panel4;
   169 	CCountedPtr<gui::Panel> m_panel4;
       
   170 	CCountedPtr<gui::Table> m_table1;
       
   171 	CCountedPtr<gui::Table> m_table2;
   170 
   172 
   171 	gui::WidgetPtr m_label1;
   173 	gui::WidgetPtr m_label1;
   172 	gui::WidgetPtr m_button1;
   174 	gui::WidgetPtr m_button1;
   173 	CCountedPtr<gui::TextButton> m_button_add;
   175 	CCountedPtr<gui::TextButton> m_button_add;
   174 	CCountedPtr<gui::TextButton> m_button_remove;
   176 	CCountedPtr<gui::TextButton> m_button_remove;
   176 
   178 
   177 	int m_num_dyn_buttons;
   179 	int m_num_dyn_buttons;
   178 
   180 
   179 	WindowT()
   181 	WindowT()
   180 		: BaseWindow(WC_TEST1, STR_015B_OPENTTD, COLOUR_BROWN, gui::FF_NO_RESIZE_BOX)
   182 		: BaseWindow(WC_TEST1, STR_015B_OPENTTD, COLOUR_BROWN, gui::FF_NO_RESIZE_BOX)
   181 		, m_num_dyn_buttons(5)
   183 		, m_num_dyn_buttons(2)
   182 	{
   184 	{
   183 	}
   185 	}
   184 
   186 
   185 	/*virtual*/ void CreateWidgets()
   187 	/*virtual*/ void CreateWidgets()
   186 	{
   188 	{
   205 
   207 
   206 		m_panel1->AddWidget(new gui::ResizeBox(m_panel1), gui::Panel::RIGHT);
   208 		m_panel1->AddWidget(new gui::ResizeBox(m_panel1), gui::Panel::RIGHT);
   207 		AddWidget(m_panel1, gui::Panel::BOTTOM);
   209 		AddWidget(m_panel1, gui::Panel::BOTTOM);
   208 
   210 
   209 
   211 
       
   212 
       
   213 
       
   214 		m_table2 = new gui::Table(this, gui::FF_NO_FRAME | gui::FF_IGNORE_PARENT_FRAME | gui::FF_SAME_SIZE, 0, COLOUR_TRANSPARENT);
       
   215 
       
   216 		m_button_add = new gui::TextButton(m_table2, STR_NULL, /*gui::FF_MIN_SIZE |*/ gui::FF_ALIGN_HCENTER | gui::FF_ALIGN_VCENTER, STR_0305_QUIT_OPENTTD, COLOUR_YELLOW);
       
   217 		m_button_add->m_text = "Add";
       
   218 		m_button_add->AddReflectHandlerT(&WindowT::ButtonAdd_OnClick);
       
   219 		m_table2->AddWidget(m_button_add, 0, 0);
       
   220 
       
   221 		m_button_remove = new gui::TextButton(m_table2, STR_NULL, /*gui::FF_MIN_SIZE |*/ gui::FF_ALIGN_HCENTER | gui::FF_ALIGN_VCENTER, STR_0305_QUIT_OPENTTD, COLOUR_YELLOW);
       
   222 		m_button_remove->m_text = "Del";
       
   223 		m_button_remove->AddReflectHandlerT(&WindowT::ButtonRemove_OnClick);
       
   224 		m_table2->AddWidget(m_button_remove, 1, 0);
       
   225 
       
   226 		m_button1 = new gui::TextButton(m_table2, STR_0304_QUIT, /*gui::FF_MIN_SIZE |*/ gui::FF_ALIGN_HCENTER | gui::FF_ALIGN_VCENTER, STR_0305_QUIT_OPENTTD, COLOUR_YELLOW);
       
   227 		m_button1->AddReflectHandlerT(&WindowT::Button1_OnClick);
       
   228 		m_table2->AddWidget(m_button1, 2, 0);
       
   229 
       
   230 		AddWidget(m_table2, gui::Panel::BOTTOM);
       
   231 
       
   232 
       
   233 
       
   234 
       
   235 
       
   236 
       
   237 
   210 		m_panel2 = new gui::Panel(this, gui::FF_NONE, 0, COLOUR_GREY);
   238 		m_panel2 = new gui::Panel(this, gui::FF_NONE, 0, COLOUR_GREY);
   211 		for (int i = 0; i < m_num_dyn_buttons; i++) {
   239 		for (int i = 0; i < m_num_dyn_buttons; i++) {
   212 			CCountedPtr<gui::TextButton> bu = new gui::TextButton(m_panel2, STR_000F_PASSENGERS + i, gui::FF_MIN_SIZE | gui::FF_ALIGN_HCENTER | gui::FF_ALIGN_VCENTER, STR_00D0_NOTHING + i, COLOUR_PARENT);
   240 			CCountedPtr<gui::TextButton> bu = new gui::TextButton(m_panel2, STR_000F_PASSENGERS + i, gui::FF_MIN_SIZE | gui::FF_ALIGN_HCENTER | gui::FF_ALIGN_VCENTER, STR_00D0_NOTHING + i, COLOUR_PARENT);
   213 			m_panel2->AddWidget(bu, gui::Panel::TOP);
   241 			m_panel2->AddWidget(bu, gui::Panel::TOP);
   214 		}
   242 		}
   227 		for (int i = 0; i < m_num_dyn_buttons; i++) {
   255 		for (int i = 0; i < m_num_dyn_buttons; i++) {
   228 			CCountedPtr<gui::TextButton> bu = new gui::TextButton(m_panel4, STR_000F_PASSENGERS + i, gui::FF_MIN_SIZE | gui::FF_ALIGN_RIGHT | gui::FF_ALIGN_BOTTOM, STR_00D0_NOTHING + i, COLOUR_PARENT);
   256 			CCountedPtr<gui::TextButton> bu = new gui::TextButton(m_panel4, STR_000F_PASSENGERS + i, gui::FF_MIN_SIZE | gui::FF_ALIGN_RIGHT | gui::FF_ALIGN_BOTTOM, STR_00D0_NOTHING + i, COLOUR_PARENT);
   229 			m_panel4->AddWidget(bu, gui::Panel::TOP);
   257 			m_panel4->AddWidget(bu, gui::Panel::TOP);
   230 		}
   258 		}
   231 		AddWidget(m_panel4, gui::Panel::RIGHT);
   259 		AddWidget(m_panel4, gui::Panel::RIGHT);
       
   260 
       
   261 		//m_table1 = new gui::Table(this, gui::FF_NONE, 0, COLOUR_GREY);
       
   262 		//for (int16 i = 1; i <= 9; i++) {
       
   263 		//	CCountedPtr<gui::TextButton> bu = new gui::TextButton(m_table1, STR_NULL, gui::FF_MIN_SIZE | gui::FF_ALIGN_LEFT | gui::FF_ALIGN_TOP, STR_00D0_NOTHING + i, COLOUR_PARENT);
       
   264 		//	char num_str[16];
       
   265 		//	sprintf(num_str, "%d", i);
       
   266 		//	bu->m_text = num_str;
       
   267 		//	int16 x_pos = (i - 1) % 3;
       
   268 		//	int16 y_pos = 2 - (i - 1) / 3;
       
   269 		//	m_table1->AddWidget(bu, x_pos, y_pos);
       
   270 		//}
       
   271 		static const char *but_text[] = {
       
   272 			"C", "/", "*", "-",
       
   273 			"7", "8", "9", "+",
       
   274 			"4", "5", "6",
       
   275 			"1", "2", "3", "=",
       
   276 			"0",      "."
       
   277 		};
       
   278 		static const int16 but_x_pos[] = {
       
   279 			0, 1, 2, 3,
       
   280 			0, 1, 2, 3,
       
   281 			0, 1, 2,
       
   282 			0, 1, 2, 3,
       
   283 			0,    2
       
   284 		};
       
   285 		static const int16 but_y_pos[] = {
       
   286 			0, 0, 0, 0,
       
   287 			1, 1, 1, 1,
       
   288 			2, 2, 2,
       
   289 			3, 3, 3, 3,
       
   290 			4,    4
       
   291 		};
       
   292 		static const int16 but_x_span[] = {
       
   293 			1, 1, 1, 1,
       
   294 			1, 1, 1, 1,
       
   295 			1, 1, 1,
       
   296 			1, 1, 1, 1,
       
   297 			2,    1
       
   298 		};
       
   299 		static const int16 but_y_span[] = {
       
   300 			1, 1, 1, 1,
       
   301 			1, 1, 1, 2,
       
   302 			1, 1, 1,
       
   303 			1, 1, 1, 2,
       
   304 			1,    1
       
   305 		};
       
   306 		m_table1 = new gui::Table(this, gui::FF_NONE | gui::FF_SAME_SIZE, 0, COLOUR_GREY);
       
   307 		for (int i = 0; i < (int)lengthof(but_text); i++) {
       
   308 			CCountedPtr<gui::TextButton> bu = new gui::TextButton(m_table1, STR_NULL, /*gui::FF_MIN_SIZE |*/ gui::FF_ALIGN_LEFT | gui::FF_ALIGN_TOP, STR_00D0_NOTHING + i, COLOUR_PARENT);
       
   309 			bu->m_text = but_text[i];
       
   310 			m_table1->AddWidget(bu, but_x_pos[i], but_y_pos[i], but_x_span[i], but_y_span[i]);
       
   311 		}
       
   312 		AddWidget(m_table1, gui::Panel::CENTER);
   232 
   313 
   233 
   314 
   234 		///* add controls */
   315 		///* add controls */
   235 		//m_label1 = new gui::Label(this, 22, gui::FF_NONE, Rect16(104, 155, 231, 166), STR_0305_QUIT_OPENTTD, STR_0305_QUIT_OPENTTD, COLOUR_BROWN);
   316 		//m_label1 = new gui::Label(this, 22, gui::FF_NONE, Rect16(104, 155, 231, 166), STR_0305_QUIT_OPENTTD, STR_0305_QUIT_OPENTTD, COLOUR_BROWN);
   236 		//m_label1->SetAnchors(PIN_RIGHT | PIN_BOTTOM);
   317 		//m_label1->SetAnchors(PIN_RIGHT | PIN_BOTTOM);