[Aptitude-svn-commit] r3731 - in branches/aptitude-0.3/aptitude: .
src/mine
Daniel Burrows
dburrows at costa.debian.org
Mon Aug 8 16:53:37 UTC 2005
Author: dburrows
Date: Mon Aug 8 16:53:32 2005
New Revision: 3731
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/mine/cmine.cc
branches/aptitude-0.3/aptitude/src/mine/cmine.h
Log:
Update minesweeper for ref_ptrs.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Mon Aug 8 16:53:32 2005
@@ -1,5 +1,9 @@
2005-08-08 Daniel Burrows <dburrows at debian.org>
+ * src/cmine/cmine.cc, src/cmine/cmine.h:
+
+ Fix the Minesweeper code for ref_ptrs.
+
* src/ui.h:
Use ref_ptrs in interface routines.
Modified: branches/aptitude-0.3/aptitude/src/mine/cmine.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/mine/cmine.cc (original)
+++ branches/aptitude-0.3/aptitude/src/mine/cmine.cc Mon Aug 8 16:53:32 2005
@@ -197,11 +197,16 @@
}
}
-void cmine::do_start_custom_game(vscreen_widget *w,
- vs_editline *heightedit,
- vs_editline *widthedit,
- vs_editline *minesedit)
-{
+void cmine::do_start_custom_game(vscreen_widget &w_bare,
+ vs_editline &heightedit_bare,
+ vs_editline &widthedit_bare,
+ vs_editline &minesedit_bare)
+{
+ // Be ultra-safe and hold strong references to everything.
+ vs_widget_ref w(&w_bare);
+ vs_editline_ref heightedit(&heightedit_bare),
+ widthedit(&widthedit_bare), minesedit(&minesedit_bare);
+
wstring s=heightedit->get_text();
wchar_t *end=const_cast<wchar_t *>(s.c_str());
@@ -252,38 +257,38 @@
void cmine::do_custom_game()
{
- vs_center *center=new vs_center;
+ vs_center_ref center=vs_center::create();
center->set_bg_style(style_attrs_flip(A_REVERSE));
- vs_table *table=new vs_table;
+ vs_table_ref table=vs_table::create();
- vs_label *overalllabel=new vs_label(_("Setup custom game"));
+ vs_label_ref overalllabel=vs_label::create(_("Setup custom game"));
- vs_label *heightlabel=new vs_label(_("Height of board: "));
- vs_editline *heightedit=new vs_editline(L"");
+ vs_label_ref heightlabel=vs_label::create(_("Height of board: "));
+ vs_editline_ref heightedit=vs_editline::create(L"");
- vs_label *widthlabel=new vs_label(_("Width of board: "));
- vs_editline *widthedit=new vs_editline(L"");
+ vs_label_ref widthlabel=vs_label::create(_("Width of board: "));
+ vs_editline_ref widthedit=vs_editline::create(L"");
- vs_label *mineslabel=new vs_label(_("Number of mines: "));
- vs_editline *minesedit=new vs_editline(L"");
+ vs_label_ref mineslabel=vs_label::create(_("Number of mines: "));
+ vs_editline_ref minesedit=vs_editline::create(L"");
- vs_button *okbutton=new vs_button(_("Ok"));
- vs_button *cancelbutton=new vs_button(_("Cancel"));
+ vs_button_ref okbutton=vs_button::create(_("Ok"));
+ vs_button_ref cancelbutton=vs_button::create(_("Cancel"));
table->connect_key("Confirm", &global_bindings, okbutton->pressed.make_slot());
okbutton->pressed.connect(sigc::bind(sigc::mem_fun(*this, &cmine::do_start_custom_game),
- center,
- heightedit,
- widthedit,
- minesedit));
- cancelbutton->pressed.connect(sigc::mem_fun(*center, &vscreen_widget::destroy));
+ center.weak_ref(),
+ heightedit.weak_ref(),
+ widthedit.weak_ref(),
+ minesedit.weak_ref()));
+ cancelbutton->pressed.connect(sigc::mem_fun(*center.unsafe_get_ref(), &vscreen_widget::destroy));
table->connect_key("Cancel", &global_bindings, cancelbutton->pressed.make_slot());
- vs_center *cyes=new vs_center(okbutton);
- vs_center *cno=new vs_center(cancelbutton);
+ vs_center_ref cyes=vs_center::create(okbutton);
+ vs_center_ref cno=vs_center::create(cancelbutton);
table->add_widget(overalllabel, 0, 0, 1, 2, true, false);
@@ -311,7 +316,7 @@
cyes->show();
cno->show();
- vs_frame *frame=new vs_frame(table);
+ vs_frame_ref frame=vs_frame::create(table);
center->add_widget(frame);
popup_widget(center);
@@ -319,20 +324,20 @@
void cmine::do_new_game()
{
- vs_center *center=new vs_center;
+ vs_center_ref center=vs_center::create();
center->set_bg_style(style_attrs_flip(A_REVERSE));
- vs_table *table=new vs_table;
+ vs_table_ref table=vs_table::create();
- vs_label *overalllabel=new vs_label(_("Choose difficulty level"));
+ vs_label_ref overalllabel=vs_label::create(_("Choose difficulty level"));
- vs_radiobutton *easybutton=new vs_radiobutton(_("Easy"), true);
- vs_radiobutton *mediumbutton=new vs_radiobutton(_("Medium"), false);
- vs_radiobutton *hardbutton=new vs_radiobutton(_("Hard"), false);
- vs_radiobutton *custombutton=new vs_radiobutton(_("Custom"), false);
+ vs_radiobutton_ref easybutton=vs_radiobutton::create(_("Easy"), true);
+ vs_radiobutton_ref mediumbutton=vs_radiobutton::create(_("Medium"), false);
+ vs_radiobutton_ref hardbutton=vs_radiobutton::create(_("Hard"), false);
+ vs_radiobutton_ref custombutton=vs_radiobutton::create(_("Custom"), false);
- vs_button *okbutton=new vs_button(_("Ok"));
- vs_button *cancelbutton=new vs_button(_("Cancel"));
+ vs_button_ref okbutton=vs_button::create(_("Ok"));
+ vs_button_ref cancelbutton=vs_button::create(_("Cancel"));
table->connect_key_post("Confirm", &global_bindings, okbutton->pressed.make_slot());
@@ -349,15 +354,15 @@
okbutton->pressed.connect(sigc::bind(sigc::mem_fun(*this, &cmine::do_continue_new_game),
true,
- center,
+ center.weak_ref(),
grp));
cancelbutton->pressed.connect(sigc::bind(sigc::mem_fun(*this, &cmine::do_continue_new_game),
false,
- center,
+ center.weak_ref(),
grp));
- vs_center *cok=new vs_center(okbutton);
- vs_center *ccancel=new vs_center(cancelbutton);
+ vs_center_ref cok=vs_center::create(okbutton);
+ vs_center_ref ccancel=vs_center::create(cancelbutton);
table->add_widget(overalllabel, 0, 0, 1, 2, true, false);
table->add_widget(easybutton, 1, 0, 1, 2, true, false);
@@ -367,16 +372,18 @@
table->add_widget(cok, 6, 0, 1, 1, false, false);
table->add_widget(ccancel, 6, 1, 1, 1, false, false);
- vs_frame *frame=new vs_frame(table);
+ vs_frame_ref frame=vs_frame::create(table);
center->add_widget(frame);
popup_widget(center);
}
void cmine::do_continue_new_game(bool start,
- vscreen_widget *w,
+ vscreen_widget &w_bare,
vs_radiogroup *grp)
{
+ vs_widget_ref w(&w_bare);
+
if(start)
switch(grp->get_selected())
{
@@ -436,36 +443,36 @@
if(rand()<(RAND_MAX/3))
{
if(rand()<(RAND_MAX/2))
- add_status_widget(new vs_label(_("The spikes were poisoned! The poison was deadly.. --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("The spikes were poisoned! The poison was deadly.. --More--"),
+ retr_status_color()));
- add_status_widget(new vs_label(_("You land on a set of sharp iron spikes! --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("You land on a set of sharp iron spikes! --More--"),
+ retr_status_color()));
}
- add_status_widget(new vs_label(_("You fall into a pit! --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("You fall into a pit! --More--"),
+ retr_status_color()));
}
- add_status_widget(new vs_label(_("KABOOM! You step on a land mine. --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("KABOOM! You step on a land mine. --More--"),
+ retr_status_color()));
break;
case 4:
if(rand()<RAND_MAX/2)
- add_status_widget(new vs_label(_("The dart was poisoned! The poison was deadly... --More--"),
- retr_status_color()));
- add_status_widget(new vs_label(_("A little dart shoots out at you! You are hit by a little dart! --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("The dart was poisoned! The poison was deadly... --More--"),
+ retr_status_color()));
+ add_status_widget(vs_label::create(_("A little dart shoots out at you! You are hit by a little dart! --More--"),
+ retr_status_color()));
break;
case 5:
- add_status_widget(new vs_label(_("You turn to stone... --More--"),
- retr_status_color()));
- add_status_widget(new vs_label(_("Touching the cockatrice corpse was a fatal mistake. --More--"),
- retr_status_color()));
- add_status_widget(new vs_label(_("You feel here a cockatrice corpse. --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("You turn to stone... --More--"),
+ retr_status_color()));
+ add_status_widget(vs_label::create(_("Touching the cockatrice corpse was a fatal mistake. --More--"),
+ retr_status_color()));
+ add_status_widget(vs_label::create(_("You feel here a cockatrice corpse. --More--"),
+ retr_status_color()));
break;
case 6:
- add_status_widget(new vs_label(_("Click! You trigger a rolling boulder trap! You are hit by a boulder! --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("Click! You trigger a rolling boulder trap! You are hit by a boulder! --More--"),
+ retr_status_color()));
break;
case 7:
if(rand()<(RAND_MAX/2))
@@ -503,12 +510,12 @@
snprintf(buf, 512, _("Your wand of %s breaks apart and explodes! --More--"));
- add_status_widget(new vs_label(buf,
- retr_status_color()));
+ add_status_widget(vs_label::create(buf,
+ retr_status_color()));
}
- add_status_widget(new vs_label(_("You are jolted by a surge of electricity! --More--"),
- retr_status_color()));
+ add_status_widget(vs_label::create(_("You are jolted by a surge of electricity! --More--"),
+ retr_status_color()));
break;
}
#endif
@@ -636,7 +643,7 @@
encoding="UTF-8";
}
- vscreen_widget *w=vs_dialog_fileview(buf, NULL, NULL, NULL, encoding);
+ vs_widget_ref w=vs_dialog_fileview(buf, NULL, NULL, NULL, encoding);
w->show_all();
popup_widget(w);
Modified: branches/aptitude-0.3/aptitude/src/mine/cmine.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/mine/cmine.h (original)
+++ branches/aptitude-0.3/aptitude/src/mine/cmine.h Mon Aug 8 16:53:32 2005
@@ -59,13 +59,13 @@
void do_save_game(std::wstring s);
void do_new_game();
void do_continue_new_game(bool start,
- vscreen_widget *w,
+ vscreen_widget &w,
vs_radiogroup *grp);
void do_custom_game();
- void do_start_custom_game(vscreen_widget *w,
- vs_editline *heightedit,
- vs_editline *widthedit,
- vs_editline *minesedit);
+ void do_start_custom_game(vscreen_widget &w,
+ vs_editline &heightedit,
+ vs_editline &widthedit,
+ vs_editline &minesedit);
protected:
void paint_header(const style &st);
public:
More information about the Aptitude-svn-commit
mailing list