In this patch you could play the game in fullscreen mode, by click the
button full screen in view menu.
and some issues about coding style are changed a bit(for example, take
tab as 4 blanks).
~/GNU/gmchess-svn/gmchess-sprint1/src$ svn diff
Index: MainWindow.cc
===================================================================
--- MainWindow.cc (版本 183)
+++ MainWindow.cc (工作副本)
@@ -37,6 +37,7 @@
" </menu>"
" <menu action='ViewMenu'>"
" <menuitem action='RevPlay'/>"
+" <menuitem action='FullScreen'/>"
" <menuitem action='ViewPreferences'/>"
" </menu>"
" <menu action='GameMenu'>"
@@ -55,7 +56,8 @@
MainWindow::MainWindow():menubar(NULL)
- ,confwindow(NULL)
+ ,confwindow(NULL)
+ ,is_fullscreen( false )
{
//ui_xml = Gnome::Glade::Xml::create(main_ui,"main_window");
ui_xml = Gtk::Builder::create_from_file(main_ui,"main_window");
@@ -85,16 +87,16 @@
text_comment =
dynamic_cast<Gtk::TextView*>(ui_xml->get_widget("textview_comment"));
m_notebook = dynamic_cast<Gtk::Notebook*>(ui_xml->get_widget("notebook"));
- btn_start = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_start"));
- btn_end = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_end"));
- btn_prev = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_prev"));
- btn_next = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_next"));
+ btn_start = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_start"));
+ btn_end = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_end"));
+ btn_prev = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_prev"));
+ btn_next = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_next"));
- btn_begin = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_begin"));
- btn_lose = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_lose"));
- btn_draw = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_draw"));
- btn_rue = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_rue"));
+ btn_begin = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_begin"));
+ btn_lose = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_lose"));
+ btn_draw = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_draw"));
+ btn_rue = dynamic_cast<Gtk::Button*>(ui_xml->get_widget("button_rue"));
#endif
btn_start->signal_clicked().connect(
@@ -315,6 +317,8 @@
action_group->add(Gtk::Action::create("ViewPreferences",
Gtk::Stock::PREFERENCES),
sigc::mem_fun(*this, &MainWindow::on_menu_view_preferences));
+ action_group->add(Gtk::Action::create("FullScreen",Gtk::Stock::FULLSCREEN,_("Full
Screen")),
+ sigc::mem_fun(*this, &MainWindow::on_menu_fullscreen));
//Game menu:
action_group->add(Gtk::Action::create("GameMenu",_("_Game")));
@@ -354,15 +358,15 @@
filename = dlg.get_filename();
}
if (filename.empty())
- return;
+ return;
//std::ofstream file("/tmp/chess.pgn");
std::ofstream file;
file.open(filename.c_str());
if(!file){
- DLOG("open %s file error\n",filename.c_str());
- return ;
+ DLOG("open %s file error\n",filename.c_str());
+ return ;
}
Gtk::TreeModel::Children children = m_refTreeModel->children();
@@ -535,6 +539,17 @@
confwindow->raise();
}
+void MainWindow::on_menu_fullscreen()
+{
+ if ( !is_fullscreen ) {
+ this->fullscreen();
+ is_fullscreen = true;
+ } else {
+ this->unfullscreen();
+ is_fullscreen = false;
+ }
+}
+
void MainWindow::on_conf_window_close()
{
if(NULL !=confwindow){
@@ -768,7 +783,7 @@
void MainWindow::on_lose_game()
{
- if(board->is_fight_to_robot()){
+ if (board->is_fight_to_robot()) {
Gtk::MessageDialog dialog(*this, _("end game"), false,
Gtk::MESSAGE_QUESTION,
Gtk::BUTTONS_OK_CANCEL);
@@ -780,16 +795,16 @@
m_refTreeModel->clear();
board->free_game();
change_status();
- break;
- }
+ break;
+ }
case (Gtk::RESPONSE_CANCEL): {
break;
- }
+ }
default: {
break;
- }
+ }
}
return;
}
Index: MainWindow.h
===================================================================
--- MainWindow.h (版本 183)
+++ MainWindow.h (工作副本)
@@ -82,6 +82,7 @@
void on_menu_save_file();
void on_menu_file_quit();
void on_menu_view_preferences();
+ void on_menu_fullscreen();
void on_menu_war_to_ai();
void on_menu_free_play();
void on_menu_rev_play();
@@ -144,6 +145,9 @@
Gtk::Button* btn_lose;
Gtk::Button* btn_draw;
Gtk::Button* btn_rue;
+
+ /** variables */
+ bool is_fullscreen;
};
Index: Board.cc
===================================================================
--- Board.cc (版本 183)
+++ Board.cc (工作副本)
@@ -983,7 +983,7 @@
{
switch(sizemode){
case BIG_BOARD:
- this->set_size_default(521,577);
+ // this->set_size_default(521,577);
break;
case SMALL_BOARD:
this->set_size_request(241,200);
thanks.
yalong
这个全屏功能我觉得需要商量一下。棋盘全屏了,似乎没法调菜单恢复啊。
而且全屏后,棋盘会变形啊。
另外,patch最好打成文件的吧。
这个patch需讨论后再收入。
谢谢。
谢谢回复: )
恢复到全屏也是那个按钮。棋盘变形的问题,扼,没大注意。
补丁可以打成文件么?上次看某个文章(貌似是如何提交一个patch)的时候,上面说很多人是不喜欢用附件的。
而且最好是用纯文档mail来发,因为每个人用的邮件客户端不一样。
恩,那么如果要是打成文件的话,是不是这样呢?
$svn diff . >fullscreen.patch
yalong
打成文件,看过后可以直接patch进源里啊。
反正我这里是欢迎的。:-)